-
源端口(Source Port):标识哪个应用程序发送,长度为16比特。
-
目的端口(Destination Number):标识哪个应用程序接收,长度为16比特。
-
序号字段(Sequence Number):TCP链接中传输的数据流每个字节都编上一个序号,序号字段的值指的是本报文段所发送数据的第一个字节的序号,长度为32比特。
-
确认序列号(Acknowledgment Number):是期望收到对方下一个报文段数据的第1个字节的序号,即上次已经成功接收到的数据段的最后一个字节数据的序号加1,只有控制位中的ACK标识为1,此字段才有效,长度为32比特。
-
头部长度(Header Length):长度为4比特,指出TCP报文头部长度,以32比特(4字节)为计算单位,若无选项内容,则该字段为5,即头部为20字节,4比特最大标识15,即TCP头部最长为60字节。
-
保留(Reserved):必须填0,长度为6比特。
-
控制位(Control bits):包含以下六种标志位
-
窗口(Window):这个值表明当前接收端可接受的最大的数据总数(以字节为单位),窗口最大为65535字节,长度为16比特。
-
校验和(Checksum):是一个强制性的字段,由发端计算和存储,并由收端进行验证,在计算校验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部,长度为16比特。
-
紧急指针(Urgent):只有URG标志置1时紧急指针才有效,TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面),长度为16比特。
-
选项字段(Options):可选字段,长度为0-40字节。
TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。如图所示: