TCP报文格式

1、源端口(Source Port):发送方的TCP端口号;

2、目的端口(Destination port):接收方的端口号;

3、序号(Sequence Number):该报文数据在发送方的数据流中的位置,使用当前时间值计算出一个数值作为起始序号;

4、确认号(Acknowledgment Number):包含发送确认的一端所期望接收到的下一个序号。因此,确认序号应该是上次已成功收到的数据字节序列号加1(也就是序号+1)。

5、首部长度(Data Offset):表示TCP报文首部信息的长度。由于首部可能含有选项内容,因为TCP首部的长度是不确定的。首部长度指示了数据区在报文段中的起始偏移值。没有任何选项字段的TCP头部长度为20字节,做多可以有60字节的TCP头部。

6、保留(Reserved):6位保留字段,值通常为0;

7、标志位:占6比特。各比特的含义如下:

◆URG:紧急指针(urgent pointer)有效。

◆ACK:确认序号有效。

◆PSH:接收方应该尽快将这个报文段交给应用层。

◆RST:重建连接。

◆SYN:发起一个连接。

◆FIN:释放一个连接。

8、窗口(window):占16比特。此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。例如Windows size=3, 表示一次可以发送三个数据包。

9、校验和(CheckSum):占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。

10、     紧急指针(Urgent Pointer):如果TCP通信中,一方有紧急的数据需要尽快发送给接收方,并且让接收方的TCP协议尽快通知相应的应用程序,可以将URG置位,并通过紧急指针指示紧急数据在报文段中的结束位置。占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

11、     选项(可选)(Options):填充字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。

12、     填充(Padding):为了使选项字段对齐32位,可能采用若干位0作为填充数据。

13、     数据(Data):应用程序的数据。

posted on 2017-10-26 14:54  小夏coding  阅读(853)  评论(0编辑  收藏  举报

导航