1,Source Port(源端口号):
字段长16位,表示发送端端口号。
2,Destination Port(目标端口号):
字段长16位,表示接收端端口号。
3,Sequence Number(序列号):
字段长32位,表示发送数据的位置,每发送一次数据,就累加一次该数据字节数的大小。
序列号不会从0或1开始,而是在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端。然后再将每次转发过去的字节数累加到初始值上表示数据的位置。此外,在建立连接和断开连接时发送的SYN包和FIN包虽然并不携带数据,但也作为一个字节增加对应的序列号。
4,Acknowledgement Number(确认应答号):
字段长32位,表示下一次应该收到的数据的序列号。实际上,是指已收到确认应答号减1为止的数据。发送端收到这个确认应答号以后可以认为在这个序列号之前的数据都已经被正常接收。
5,Data Offset(数据偏移):
字段长4位,单位为4字节。该字段表示TCP所传输的数据部分应该从TCP包的哪个位开始计算,也可以将其看作TCP首部的长度。不包括选项字段的话,上图所示的TCP首部为20字节长,因此数据偏移字段可以设置为5。反之,如果该字段的值为5,则说明从TCP包的起始位置至20字节为止都是TCP首部,余下的部分为TCP数据。
6,Reserved(保留):
字段长4位,该字段主要是为了以后扩展使用。一般设置为0,但即使收到的TCP包的该字段不为0,此包也不会被丢弃。