TCP_数据报文首部格式

本文详细解析了TCP报文首部的各个字段,包括源/目标端口、序列号、确认序列号、首部长度、URG、ACK、PSH、RST、SYN和FIN等,以及它们在网络通信中的作用。同时,介绍了TCP三次握手和四次挥手过程中这些标志位的状态变化,帮助理解TCP连接的建立与关闭过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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抓包的视频学习

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值