TCP协议报头及各个字段的作用

目录

​编辑

TCP报头结构概览

各字段详解

1. 源端口与目的端口(各16位)

2. 序列号(32位)

3. 确认号(32位)

4. 数据偏移(4位)

5. 保留字段(4位)

6. 控制标志(8位)

7. 窗口大小(16位)

8. 校验和(16位)

9. 紧急指针(16位)

10. 选项(可变长度)

11. 填充(可变长度)

示例:TCP三次握手

总结


TCP协议报头及各个字段的作用_第1张图片

TCP报头结构概览

TCP报头通常为20字节(不含选项字段),最大可扩展至60字节。其结构如下:

  1. 源端口(Source Port) - 16位

  2. 目的端口(Destination Port) - 16位

  3. 序列号(Sequence Number) - 32位

  4. 确认号(Acknowledgment Number) - 32位

  5. 数据偏移(Data Offset) - 4位

  6. 保留(Reserved) - 4位(原设计保留,部分位被后续RFC扩展使用)

  7. 控制标志(Control Flags) - 8位(含6个传统标志位及扩展标志)

  8. 窗口大小(Window Size) - 16位

  9. 校验和(Checksum) - 16位

  10. 紧急指针(Urgent Pointer) - 16位

  11. 选项(Options) - 可变长度(可选)

  12. 填充(Padding) - 确保报头长度为32位整数倍


各字段详解

1. 源端口与目的端口(各16位)
  • 作用:标识发送端和接收端的应用程序端口号(如HTTP:80、SSH:22),实现多路复用/解复用。

  • 示例:客户端源端口为随机端口(如50000),目的端口为80表示访问Web服务。

2. 序列号(32位)
  • 作用:标识数据段的第一个字节的序号,确保数据按序重组。在连接建立时,双方随机生成初始序列号(ISN)。

  • 示例:若序列号为100,数据长度为100字节,则下一段的序列号为200。

3. 确认号(32位)
  • 作用:接收方期望收到的下一个字节的序号,用于确认数据已成功接收。仅在ACK标志置1时有效。

  • 示例:若确认号为300,表示已正确接收序号299及之前的数据。

4. 数据偏移(4位)
  • 作用:指示TCP报头的长度(以4字节为单位)。取值范围为5(20字节)至15(60字节)。

  • 计算:报头长度 = 数据偏移值 × 4。

5. 保留字段(4位)
  • 作用:原设计保留为0,后续RFC扩展用于新功能(如显式拥塞通知ECN)。

6. 控制标志(8位)
  • 作用:管理连接状态和数据传输行为,包括以下标志位:

    • URG(紧急):紧急指针有效,指示优先处理数据。

    • ACK(确认):确认号字段有效。

    • PSH(推送):要求接收方立即将数据提交给应用层。

    • RST(重置):强制终止异常连接。

    • SYN(同步):发起连接,同步序列号。

    • FIN(结束):正常关闭连接。

    • CWR/ECE(扩展):用于显式拥塞通知(RFC 3168)。

7. 窗口大小(16位)
  • 作用:接收方通告当前可接收的字节数,用于流量控制。可通过窗口缩放选项(RFC 7323)扩展为32位。

8. 校验和(16位)
  • 作用:校验TCP报头、数据及伪头部(含IP地址)的完整性,检测传输错误。

9. 紧急指针(16位)
  • 作用:当URG=1时,指示紧急数据的结束位置(相对于序列号的偏移量)。

10. 选项(可变长度)
  • 作用:扩展TCP功能,常见选项包括:

    • MSS(最大报文段长度):协商双方能接受的最大数据段大小。

    • 窗口缩放因子:将窗口大小扩展至32位。

    • 时间戳:计算往返时间(RTT)和防止序号回绕(PAWS)。

    • SACK(选择性确认):高效确认非连续数据块。

11. 填充(可变长度)
  • 作用:确保选项字段的总长度是4字节的倍数,补齐报头长度。


示例:TCP三次握手

  1. SYN:客户端发送SYN=1, Seq=X

  2. SYN-ACK:服务端回复SYN=1, ACK=1, Seq=Y, Ack=X+1

  3. ACK:客户端确认ACK=1, Ack=Y+1,连接建立。


总结

TCP报头通过精细设计的字段协同工作,实现了可靠传输、流量控制、拥塞控制及连接管理。理解各字段的作用是掌握TCP协议运作机制的基础,尤其在网络调试和优化中至关重要。

你可能感兴趣的:(tcp/ip,网络协议,网络)