计算机网络之---TCP报文段

TCP报文段

TCP报文段是TCP协议中传输数据的基本单位。TCP协议基于流控制、顺序控制和错误校验等机制,以确保数据的可靠传输。TCP报文段结构由多个字段组成,每个字段在TCP的工作中都有特定的作用

一个典型的TCP报文段由两部分组成:

  1. TCP头部(Header):包含了控制信息,如源端口、目标端口、序列号、确认号、标志位、窗口大小等。
  2. 数据部分(Data):也称为负载部分,承载实际传输的数据。

TCP头部长度

TCP头部的最小长度是20字节,最大长度为60字节。头部长度由"数据偏移"字段决定,表示头部的长度(单位为32位字,即4字节)。如果没有选项字段,头部长度为20字节;如果有选项,头部长度会相应增加。

TCP报文段格式

javascript 复制代码
| 0    | 4    | 8    | 12   | 16   | 20   | 24   | 28   | 32   | 36   |
|---------------------------------------------------------------|
| Source Port | Destination Port | Sequence Number               |
|---------------------------------------------------------------|
| Acknowledgment Number | Data Offset | Reserved | Flags | Window Size |
|---------------------------------------------------------------|
| Checksum | Urgent Pointer | Options (if any) | Data (Payload)  |
主要字段说明
  1. 源端口号(Source Port)(16位):

    • 表示发送方的端口号,用于标识通信的进程。
  2. 目的端口号(Destination Port)(16位):

    • 表示接收方的端口号,用于标识通信的进程。
  3. 序列号(Sequence Number)(32位):

    • 用于标识发送的数据流中的字节序列,确保数据的顺序。首次发送数据时,序列号是一个初始值,后续的每个字节的序列号依此递增。
  4. 确认号(Acknowledgment Number)(32位):

    • 用于确认接收到的字节流的序列号。它表示期望接收的下一个字节的序列号。如果ACK标志位为1,该字段有效。
  5. 数据偏移(Data Offset)(4位):

    • 表示TCP头部的长度(以32位字为单位)。该字段告诉接收方,TCP头部的结束位置,从而确定数据部分的起始位置。
  6. 保留字段(Reserved)(3位):

    • 为将来扩展保留,当前值必须为0。
  7. 标志位(Flags)(9位):

    • URG (Urgent Pointer field):紧急标志,若为1,则表明此报文段包含紧急数据。此时,Urgent Pointer字段有效。
    • ACK (Acknowledgment flag):确认标志,若为1,则表明该报文段中包含确认号(Acknowledgment Number)字段。
    • PSH (Push Function flag):推送标志,若为1,表示接收方应立即将数据推送给应用层,而不需等待缓冲区满。
    • RST (Reset the connection flag):重置标志,若为1,表示连接由于某些原因应立即被重置,通常是由于异常终止。
    • SYN (Synchronize flag):同步标志,若为1,表示连接请求,用于TCP连接的三次握手。
    • FIN (Finish flag):结束标志,若为1,表示发送方已经完成数据发送,准备关闭连接。
  8. 窗口大小(Window Size)(16位):

    • 表示接收端的可用缓冲区大小,用于流量控制。它告诉发送方可以发送多少字节的数据而不需要等待确认。
  9. 校验和(Checksum)(16位):

    • 用于检测数据在传输过程中是否发生错误。包括TCP头部和数据部分的校验和。
  10. 紧急指针(Urgent Pointer)(16位):

    • 当URG标志位为1时,该字段表示紧急数据的偏移量。
  11. 选项(Options)(可选,长度可变):

    • 用于扩展TCP协议的功能,如最大报文段大小(MSS)和时间戳等。选项长度可变,通常用于性能优化或增加控制功能。
  12. 数据部分(Data)(可选,长度可变):

    • 承载实际的应用数据,是报文段的负载部分。长度根据数据量的大小而变化。
相关推荐
稳联技术7 分钟前
实践提炼,EtherNet/IP转PROFINET网关实现乳企数字化工厂增效
网络·网络协议·tcp/ip
红米饭配南瓜汤30 分钟前
WebRTC中的几个Rtp*Sender
网络·网络协议·音视频·webrtc·媒体
WhoisXMLAPI32 分钟前
利用 DNS 情报缓解报税季的网络威胁
运维·网络·安全·web安全
dessler1 小时前
代理服务器-LVS的3种模式与调度算法
运维·服务器·网络·算法·nginx·tomcat·lvs
moppol2 小时前
SSL/TLS握手全流程拆解:从“Hello“到“安全通道“的每一个字节
网络·安全·ssl
九转苍翎2 小时前
计算机网络(6)——局域网
计算机网络·局域网
Oliverro4 小时前
人脸识别技术成为时代需求,视频智能分析网关视频监控系统中AI算法的应用
网络·人工智能
hao_wujing4 小时前
攻击模型的恶意行为检测
网络·数据库·php
MarkHD4 小时前
第十四天 设计一个OTA升级AB测试方案
网络·人工智能·ab测试
PH_modest5 小时前
【Linux跬步积累】—— 网络编程套接字(二)
linux·运维·网络