gpt4 book ai didi

networking - 如果其中一台机器死机,TCP 连接如何终止?

转载 作者:可可西里 更新时间:2023-11-01 02:30:31 25 4
gpt4 key购买 nike

如果在两台主机(A 和 B)之间建立了 TCP 连接,假设主机 A 向主机 B 发送了 5 个八位字节,然后主机 B 崩溃(由于未知原因)。主机 A 将等待确认,但如果没有收到,将重新发送八位字节并减小发送方窗口大小。这将重复几次,直到窗口大小由于数据包丢失而缩小为零。我的问题是,接下来会发生什么?

最佳答案

在这种情况下,TCP 最终会超时等待 ack,并向应用程序返回一个错误。应用程序必须从 TCP 套接字读取/接收以了解该错误,随后的写入/发送调用也会失败。在 TCP 确定连接断开之前,写入/发送调用不会失败,它们会从应用程序中看到成功,或者如果套接字缓冲区已满则阻塞。

如果您的主机 B 在发送完其 ACK 后消失,主机 A 将不会知道这一点,直到它向 B 发送一些内容,这最终也会超时,或导致 ICMP 错误。 (通常第一个写/发送调用不会失败,因为 TCP 不会立即使连接失败,请记住写/发送调用不会等待 ACK 直到完成)。

另请注意,重传不会减小窗口大小。

关于networking - 如果其中一台机器死机,TCP 连接如何终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com