-1

我试图对 TCP 有一个高层次的理解,但遇到了一个令人困惑的点。

假设我们有一个连接的服务器 S 和一个客户端 C。

如果 S 向 C 推送消息,并且在 C 意识到有消息发送之前,它也会向 S 推送消息。

现在处于 S 正在等待它的消息 ACK 而 C 也在等待它的 ACK 的状态。

规范如何避免这种死锁?网上的很多资源很快就进入了具体的实现细节,但我试图找到一个关于如何处理这些死锁的高级解释。

(我假设答案与缓冲有关,但没有找到关于该主题的具体信息。)

4

1 回答 1

1

什么僵局?这是一个全双工(双向)协议。具体来说,在您描述的情况下,没有什么可以阻止双方发送他们的 ACK。该行为完全在RFC 793中指定,它比您想象的要复杂得多。

于 2012-11-30T01:20:15.663 回答