TCP 报文格式详解

TCP由以下所列的这几个字段所组成。

1 .端口号:用来标识同一台计算机的不同的应用进程。

2 .源端口:源端口和ip地址的作用是标识报文的返回地址。

3 .目的端口:端口指明接受方计算机上的应用程序接口。

 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。

4 . 序号和确认号:是TCP可靠传输的关键部分,序号是本报文段发送段发送的数据组的第一个字节的序号。

5 数据偏移:由于首部可能含有可选项内容,因此TCP报文头的长度是不确定的。,

6.保留:为将来定义新的用途保留。

7. 控制位:URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能。

(1) URG:紧急指针标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

(2)ACK:确认序号标志,为1时表示确认号有效,为0表示报文不含确认信息,忽略确认号字段。

(3)PSH:push 标志,为1表示是带有push 标志的数据,指示接受方在接受到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

(4):重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

(5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN和ACK=1/

(6) FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

8. 窗口:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端接受端缓存的大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小为一个16bit字段,因而窗口大小最大为65535。

9. 校验和:奇偶校验,此校验和.是对整个的TCP报文段,包括TCP头部和TCP数据,以16位字进行计算所得。由发送端计算和存储,并由接受端进行验证。

10. 紧急指针:只有当URG标志位置1时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。

11.选项和填充:最常见的可选字段是最长报文大小,又称为MSS,每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度,选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入另外的0。以保证TCP头是32的整数倍。

10. 数据部分: TCP报文段中的数据部分是可选的,在一个连接建立和另一个大连接终止时,双方交换的报文段仅有TCP首部,如果一方没有数据要发送,也使用没有任何首部来确认收到的数据,在处理超时的许多情况中,也会发送不带任何数据的报文段。

猜你喜欢

转载自blog.csdn.net/weixin_40797414/article/details/81212723
今日推荐