TCP_数据报文首部格式

Posted x1angzeeD.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP_数据报文首部格式相关的知识,希望对你有一定的参考价值。

TCP报文首部格式

字段说明
源/目标端口分别写入源端口号和目标端口号
序列号也就是我们tcp三次握手中的seq,表示的是我们tcp数据段发送的第一个字节的序号,范围[0,2^32 - 1],例如,我们的seq = 201,携带的数据有100,那么最后一个字节的序号就为300,那么下一个报文段就应该从301开始
确认序列号也就是ack(假设为y),它的值是seq+1,表示的意义是y之前的数据我都收到了,下一个我期望收到的数据是y.也就是我回过去的seq = y
首部长度占4位.也叫数据偏移,因为tcp中的首部中有长度不确定的字段
URG紧急指针标志位,当URG=1时,表明紧急指针字段有效.它告诉系统中有紧急数据,应当尽快传送,这时不会按照原来的排队序列来传送.而会将紧急数据插入到本报文段数据的最前面
ACK当ACK=1时,我们的确认序列号ack才有效,当ACK=0时,确认序号ack无效,TCP规定:所有建立连接的ACK必须全部置为1
PSH推送操作,指数据不要缓存,将数据直接传输给应用
RST当RST=1时,表明TCP连接出现严重错误,此时必须释放连接,之后重新连接,又叫重置位
SYN同步序列号标志位,tcp三次握手中,第一次会将SYN=1,ACK=0,此时表示这是一个连接请求报文段,对方会将SYN=1,ACK=1,表示同意连接,连接完成之后将SYN=0
FIN在tcp四次挥手时第一次将FIN=1,表示此报文段的发送方数据已经发送完毕,这是一个释放链接的标志
窗口大小win的值是作为接收方让发送方设置其发送窗口大小的依据,报文长度超过窗口限制需将报文拆片
紧急指针只有当URG=1时的时候,紧急指针才有效,它指出紧急数据的字节数

可以参照TCP三次握手WireShark抓包的视频学习

以上是关于TCP_数据报文首部格式的主要内容,如果未能解决你的问题,请参考以下文章

TCP_数据报文首部格式

TCP_数据报文首部格式

TCP之报文首部格式

计算机网络—— 运输层:TCP报文段的首部格式

TCP报文段的首部格式

UDP与TCP报文格式,字段意义