计算机网络(六)--运输层 | TCP 报文段结构

TCP 报文段结构

序号 & 确认号

  • 各数各的
  • 序号:指出了“我发出的我这里我编号是第几的数据段”
  • 数据载荷长度:指出了“这个数据段的长度”,单位是字节
  • 确认号:指出了“我想要收到的你那边你编号是第几的数据段”
    • 确认号(返回) = 序号(发送)+ 数据载荷长度(发送)
      image

数据偏移

  • 数据偏移:4bit,指示出“数据载荷从哪个字节开始”
  • 最小值 0101=5,最大值 1111=15,
  • 单位 4字节,因此 对应的最小值 20字节(基础固定长度),最大值 60字节(说明有“扩展首部选项 Option”字段)
    image

标志符 ACK / SYN / FIN / RST / PSH / URG

  • ACK 置1:说明报文段中包含了一个对前面接受数据进行确认的报文数据
  • SYN / FIN / RST 用于表示 连接
    • SYN 用于 握手 建立连接
    • FIN 用于 挥手 断开连接
    • RST 用于 断开并重新建立连接,比如:有非法连接、连接出错
  • PSH / URG
    • PSH 置1:整个 TCP报文段 立刻 通知 应用程序来取数据,不需要排队等待BUFFER区填满
    • URG 置1:与 紧急指针 字段搭配使用
      • TCP报文段中的 紧急数据 立刻 通知 应用程序来取 紧急数据其他数据 进入BUFFER排队,等待满了之后再通知应用程序取数
      • 紧急(偏移)指针:指向了紧急数据的尾字节,尾字节 = 序号 + 紧急指针
      • 紧急数据,会放在整个 TCP报文段的最前端
      • 通过 数据偏移紧急指针 可以获得紧急数据的 头和尾