我试图从Forouzan 的书中了解 TCP 连接建立和终止步骤。
在连接建立的三次握手的第三步中,它说如下
客户端发送第三个段。这只是一个 ACK 段。它用 ACK 标志和确认号字段确认第二个段的接收。请注意,如果 ACK 段不携带数据,则它不会消耗任何序列号,但某些实现允许连接阶段的第三段携带来自客户端的第一块数据。在这种情况下,该段消耗的序列号与数据字节数一样多。
Q1。 我没有得到大胆的面对句子。它说如果第三段只是ACK并且不携带任何数据,则不消耗序列号。但是,在图中,显示的第一段和第二段都有不同的序列号 8000 和 8001。我觉得两者都应该是 8000。
在连接终止的三次握手的第三步中,它说:
客户端 TCP 发送最后一个段,一个 ACK 段,以确认收到来自 TCP 服务器的 FIN 段。该段包含确认号,它是从服务器接收到的 FIN 段中的序列号加一。该段不能携带数据并且不消耗序列号。
Q2。我再一次没有得到大胆的面对句子。它表示如果 ACK 段不携带数据,则不会消耗序列号。但在图中,第一段和第三段的序号不同:x 和 x+1。我觉得两者都应该是x。
我在这里犯了一些错误来理解图表吗?
在本书后面的某个地方,在解释如何计算重传定时器时,它显示了连接建立阶段如下:
注意第一段和第三段有相同的序号,1400。那么为什么第一段和第二段的第一段和第三段有不同的序号呢?他们应该有相同的序列号还是我错过了解释“不消耗序列号”?