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):应用程序的数据。
转载于:https://www.cnblogs.com/laoxia/p/7736814.html