如何理解 TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) 中 TCP 终止过程中段的序列号?

网络工程 通讯协议 协议理论
2021-07-06 17:09:21

我读了TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) 13.2 TCP连接建立和终止,下图是TCP连接和终止的过程,让我困惑的是客户端在终止时发送的ACK序列号过程,如图所示: 在此处输入图片说明 当服务器向客户端发送FIN+ACK, Seq=L, ACK=K+1,(options)时,这意味着服务器需要一个序列号为 K+1 的段,所以我认为客户端应该发送ACK, Seq= K+1 , ACK=L+1, (options)到服务器,对吗?

1个回答

它在RFC 793 传输控制协议的第 3.5 节关闭连接中有明确说明

      TCP A                                                TCP B

  1.  ESTABLISHED                                          ESTABLISHED

  2.  (Close)
      FIN-WAIT-1  --> <SEQ=100><ACK=300><CTL=FIN,ACK>  --> CLOSE-WAIT

  3.  FIN-WAIT-2  <-- <SEQ=300><ACK=101><CTL=ACK>      <-- CLOSE-WAIT

  4.                                                       (Close)
      TIME-WAIT   <-- <SEQ=300><ACK=101><CTL=FIN,ACK>  <-- LAST-ACK

  5.  TIME-WAIT   --> <SEQ=101><ACK=301><CTL=ACK>      --> CLOSED

  6.  (2 MSL)
      CLOSED

                         Normal Close Sequence

                               Figure 13.

RFC是TCP的定义,教科书可能有错误(经常发生)。研究您正在学习的任何协议的 RFC 也是一个好主意。