我试图对TCP进行高层次的理解,并且陷入了一个令人困惑的地步。
假设我们有连接的服务器S和客户端C.
如果S将消息推送到C并且在C实现之前发送了消息,它也会向S推送消息。
现在处于S等待它的消息ACK并且C也在等待它的ACK的状态。
规范如何避免这种僵局?很多在线资源很快就会详细介绍具体的实现细节,但我试图找到一个关于如何处理这些死锁的高级解释。
(我假设答案与缓冲有关,但没有找到关于该主题的具体信息。)
答案 0 :(得分:1)
什么僵局?它是一种全双工(双向)协议。具体来说,在您描述的情况下,没有任何内容可以阻止双方发送其ACK。行为在RFC 793中完全指定,并且比您想象的要复杂得多。