70 likes | 303 Views
TCP 报文格式. TCP 报文. TCP 报文是 TCP 层传输的数据单元,也称为报文段. 0 4 10 16 24 31. 源端口. 目的端口. 序号. 确认号. 首部长度. 保留. 码元比特. 窗口. 校验和. 紧急指针. 填充. 选项(可选). 数据. ……. TCP 报文首部格式.
E N D
TCP报文 • TCP报文是TCP层传输的数据单元,也称为报文段
0 4 10 16 24 31 源端口 目的端口 序号 确认号 首部长度 保留 码元比特 窗口 校验和 紧急指针 填充 选项(可选) 数据 …… TCP报文首部格式
0 4 10 16 24 31 源端口 目的端口 序号 确认号 首部长度 保留 码元比特 窗口 校验和 紧急指针 填充 选项(可选) 数据 …… TCP报文首部格式 • 源端口和目的端口:发送方和接收方的TCP端口号。 • 序号:该报文数据在发送方的数据流中的位置。当前时间值计算出一个数值作为起始序号。 • 首部长度:表示TCP报文首部信息的长度。由于首部可能含有选项内容,因此TCP首部的长度是不确定的。首部长度的单位是32比特或4个八位组。首部长度实际上也指示了数据区在报文段中的起始偏移值。
0 4 10 16 24 31 源端口 目的端口 序号 确认号 首部长度 保留 码元比特 窗口 校验和 紧急指针 填充 选项(可选) 数据 …… TCP报文首部格式 码元比特:6比特 • URG、ACK、PSH、RST、SYN、FIN。 • URG表示紧急指针字段有效; • ACK置位表示确认号字段有效; • PSH表示当前报文需要请求推(push)操作; • RST置位表示复位TCP连接; • SYN用于建立TCP连接时同步序号; • FIN用于释放TCP连接时标识发送方比特流结束
0 4 10 16 24 31 源端口 目的端口 序号 确认号 首部长度 保留 码元比特 窗口 校验和 紧急指针 填充 选项(可选) 数据 …… TCP报文首部格式 • 窗口:窗口通告值。发送方根据接收的窗口通告值调整窗口大小。 • 紧急指针:如果TCP通信中,一方有紧急的数据(例如中断或退出命令)需要尽快发送给接收方,并且让接收方的TCP协议尽快通知相应的应用程序,可以将URG置位,并通过紧急指针指示紧急数据在报文段中的结束位置。 • 校验和:与UDP校验和计算方法相同,同样需要包含伪首部。伪首部中的协议类型值为6。 • 选项:用于TCP连接双方在建立连接时协商最大的报文段长度MSS(Maximum Segment Size)。 • 填充:为了使选项字段对齐32比特,可能采用若干位0作为填充数据。