TCP报文格式
TCP首部格式
字段释义
Source Port-源端口号
长度:16比特
含义:源端口,标识哪个应用程序发送,通过端口确定应用层应用。
Destination Port -目标端口号
长度:16比特
含义:目的端口号,标识由哪个应用程序接收。
Sequence Number 序列号
长度:32比特
含义:序号字段,TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值,指的是本报文段所发送的数据的第一个字节的序号。在连接建立(三次握手)后,该字段包含一个32位随机初始序列号/起始数据位,随后增加传输的字节数。
Acknowledgment Number 确认号
长度:32比特
含义:确认号,是期望收到对方的下一个报文段的数据的第一个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。
Data Offset 数据偏移(首部长度)
长度:4比特
含义:数据偏移,即首部长度,指出TCP报文段的数据起始处距离TCP报文段起始处有多远,以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。
Reserved 保留
长度:6比特
含义:保留,必须填0
URG 紧急指针有效标识
长度:1比特
含义:紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
ACK 确认序号有效标识
长度:1比特
含义:确认序号有效标识。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。
PSH 推送标识
长度:1比特
含义:标识接收方应尽快将这个报文段交给应用层。接收到PSH=1的TCP报文段,应尽快的交付接收应用进程,而不再等待整个缓存都填满了后在向上交付。
RST 重建连接标识
长度:1比特
含义:重建连接标识。当SET=1时,表明TCP连接中出现严重错误(如由于主机奔溃或其他原因),必须释放连接,然后在重新建立连接。
SYN 同步序号标识
长度:1比特
含义:同步序号标识,用来发起一个连接。SYN=1表示这是一个连接请求或连接接受请求。
FIN 发送端完成发送任务标识
长度:1比特
含义:发送端完成发送任务标识。用来释放一个连接。FIN=1表明此报文的发送端的数据已发送完毕,并要求释放连接。
Window 窗口
长度:16比特
含义:窗口:TCP的流量控制,窗口起始于确认序列号字段指明的值,这个值是接收端正期望接收的字节数。窗口最大为65535字节。
Checksum 效验字段
长度:16比特
含义:效验字段,包括TCP首部和TCP数据,是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
Urgent Point 紧急指针
长度:16比特
含义:紧急指针,只有当URG标志置1时,紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
Options 选项字段
长度:可变
含义:选项字段。TCP协议最初只规定了一种选项,即最长报文段长度(数据字段加上TCP首部),又称MSS。MSS告诉对方TCP“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。
新的RFC规定有以下几种选型:选项表结束,无操作,最大报文段长度,窗口扩大因子,时间戳。
- 窗口扩大因子:3字节,其中一个字节表示偏移值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。
- 时间戳:10字节,其中最主要的字段是时间戳值(4字节)和时间戳回送应答字段(4字节)。
- 选项确认选项
Padding 填充字段
长度:可变
含义:填充字段,用来补位,使整个首部长度是4字节的整数倍。
Data
长度:可变
含义:TCP负载
__EOF__

本文链接:https://www.cnblogs.com/xuxiaowei/p/17191414.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)