5

我实际上想知道,在 tcp 握手中,为什么客户端需要 ack back 才能完成握手。在 syn 和 syn-ack 之后,双方都有足够的信息来启动数据,仍然 tcp 要求客户端的 ack 移动到建立状态。

问题是,为什么这种三向握手是实现可靠性的充分必要条件,即使我们有序列号同步后第二条消息本身也是如此。

有什么见解吗?

4

1 回答 1

4

服务器如何知道客户端收到了 SYN-ACK?服务器无法知道这一点,除非客户端显式发送 ACK 以确认它得到了 syn-ack。

如果这第三个 ACK​​ 被丢弃,服务器将重新发送一个 SYN-ACK,当客户端收到那个重复的 SYN-ACK 时,它会说“哦,嘿,我之前的 ACK 肯定已经被丢弃了,所以我将重新发送确认”。这将一直持续到服务器获得 AKC。

于 2012-06-07T15:09:18.190 回答