标准的TCP header长度为20字节,为上图中的前五行,每行有4个字节。
- source port & destination port:源端口号和目的端口号,如80
- sequence number:代表了该packet的数据区中第一个字节在传输中的***
- acknowledgment number:ACK消息填写它,表示对刚接收的packet的确认,它的值为已接收packet的数据区字节序列的最后一个字节的***+1,也等于已接收的packet的sequence number + 它的数据区字节长度。例如,该ACK消息是为了确认刚刚接收的一个***为4000的packet,这个packet的数据区长度为500字节,那么该ACK消息的ack number就为4500。
- checksum:校验和,计算了包括TCP header,IP header和数据区的值。
- window:消息发送方的接收缓冲区大小,表明已确认的字节数的上限。
- U:紧急消息
- P:告诉接收方将数据发给接收的应用程序
- A:ACK位,当acknowledgment number有效时该位置1
- S:SYN位,表明希望接收方同步自己的***,比如开启一个连接的消息中该位置1
- F:表明没有数据需要发送了
- R:表明发生了一些错误,需要重新连接
- urgent pointer:当U置位时,该指针指出了紧急消息在数据区中的位置
- offset:options的大小