TCP报文头部结构

时间:2024-04-08 07:15:49

 

TCP报文头部如下图所示:

TCP报文头部结构
TCP报文头部

 

16位端口号:告知主机该报文来自哪里以及来自哪个上层协议或应用程序的。

32位序号:一次TCP通信过程中一个传输方向上字节流的编号。如果A向B发报文,报文中数据初始值会产生一个随机值ISN(初始序值号),如果A前一次发送了1024个字节,那么本次发送报文段的序号为ISN+1024

32位确认号:用于表示接收方对发送方的回应。数值为收到发送方发来报文的序号值+1。如A对B发送报文段序号值为ISN+024,那么B回应A时,确认号为1024+ISN+1;

4位头部长度:表示该TCP头部所占多少个4字节。由于4位2进制能表示0-15,所以TCP头部长度最长为4*15=60字节。

6位保留用于后续版本长度扩充

6位标志位:

URG标志:如果这一位时1,表示紧急指针有效

ACK标志:如果为1,表示该报文为确认报文

PSH标志:表示提醒接收缓冲区已满,如果应用程序不加以处理,它们将一直在接收缓冲区中

RST标志:表示要求对方重新建立连接。带RST标记的报文段称为复位报文段

SYN标记:表示请求建立连接。带此标记为同步报文段。

FIN标志:表示通知对象本端已关闭。带此标记的报文段为结束报文段。

16位窗口大小:用于TCP流量控制。告诉对方本端还能容纳多少字节数据。

16位校验和:用于CRC循环冗余算法检验数据在传输过程中是否损坏。

16位应急指针:用于发送紧急数据。