0%

计网运输层L3

  • TCP详解

★★★5.9 TCP报文段的首部格式

  • 一个 TCP 报文段由首部和数据载荷两部分构成

    TCP 的全部功能都体现在它首部中各字段的作用上。

  • TCP 报文段的首部格式由 20 字节的固定首部和最大 40 字节的扩展首部构成。

★源端口和目的端口字段

  • 源端口字段:占 16 比特,写入源端口号,用来标识发送该 TCP 报文段的应用进程

    目的端口字段:占 16 比特,写入目的端口号,用来标识接收该 TCP 报文段的应用进程

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-77.jpg)

★序号、确认号字段以及确认标志位ACK

  • 序号字段:占 32 比特,取值范围 [0 , 2^32 - 1],序号增加到最后一个后,下一个序号就又回到 0。

    序号字段用来指出本 TCP 报文段数据载荷的第一个字节的序号

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-78.jpg)

  • 确认号字段:占 32 比特,取值范围 [0 , 2^32 - 1],序号增加到最后一个后,下一个序号就又回到 0。

    确认号字段的值指出期望收到对方下一个 TCP 报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。若确认号 = n,则表明到序号 n-1 为止的所有数据都已正确接收,期望接收序号为 n 的数据。

  • 确认标志位 ACK:占 1 比特,取值为 1 时确认号字段有效,取值为 0 时确认号字段无效。

    TCP 规定,在连接建立后所有传送的 TCP 报文段都必须把 ACK 置 1。

数据偏移字段

  • 数据偏移字段:占 4 比特,并以 4 个字节为单位。用来指出 TCP 报文段的数据载荷部分的起始处距离 TCP 报文段的起始处有多远

    该字段实际上是指出了 TCP 报文段的首部长度。首部固定长度为 20 字节,因此数据偏移字段的最小值为二进制的 (0101);首部最大长度为 60 字节,因此数据偏移字段的最大值为二进制的 (1111)。

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-79.jpg)

保留字段

  • 保留字段:占 6 比特,保留为今后使用,但目前应置为 0。

★窗口字段

  • 窗口字段:占 16 比特以字节为单位,指出发送本报文段的一方的接收窗口

    窗口值作为接收方让发送方设置其发送窗口的依据,这是以接收方的接收能力来控制发送方的发送能力,称为流量控制

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-80.jpg)

  • 注意:发送窗口的大小应该从接收窗口和拥塞窗口中取小者

校验和字段

  • 校验和字段:占 16 比特,用来检查整个 TCP 报文段在传输过程中是否出现了误码,检查范围包括 TCP 报文段的首部和数据载荷两部分。在计算校验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-81.jpg)

★同步标志位SYN

  • 同步标志位 SYN:占 1 比特,该标志位在 TCP 连接建立时用来同步序号

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-82.jpg)

★终止标志位FIN

  • 终止标志位 FIN:占 1 比特,该标志位用来释放 TCP 连接

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-83.jpg)

复位标志位RST

  • 复位标志位 RST:用来复位 TCP 连接。当 RST = 1 时,表明 TCP 连接出现了异常,必须释放连接,然后再重新建立连接。RST 置 1 还用来拒绝一个非法的报文段或拒绝打开一个 TCP 连接。

推送标志位PSH

  • 推送标志位 PSH:接收方的 TCP 收到该标志位为 1 的报文段会尽快上交应用进程,而不必等到接收缓存都填满后再向上交付。

紧机标志位URG和紧急指针字段

  • 紧机标志位:取值为 1 时紧急指针字段有效;取值为 0 时紧急指针字段无效。

  • 紧急指针字段:占 16 比特以字节为单位,用来指明紧急数据的长度

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Computer_Network_micro-classroom/img/计网微课堂/计网微课堂C5-84.jpg)

    接收方收到紧急标志 URG 为 1 的报文段后,会按照紧急指针字段的值,从报文段数据载荷部分中取出紧急数据,并直接上交应用进程,而不必在接收缓存中排队

---------------The End---------------