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_数据报文首部格式的主要内容,如果未能解决你的问题,请参考以下文章