gpt4 book ai didi

networking - TCP 写错误但不是真的

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

我一直在测试一个程序,它可以通过 1Gbps 线路在两台机器之间进行简单的通信。当通过线路运行 TCP 通信时,当网络完全被淹没时(运行在或接近 100% 使用率),我偶尔会在客户端收到写入错误(由于超时)。当我运行同一个程序的多个实例到不同的端口时,通常会发生这种情况。

我的问题是,是否有可能出现写入错误但仍然在服务器端收到消息。看来这就是正在发生的事情,我不太确定为什么。会不会是返回给客户端的ACK超时了?

最佳答案

是的,这是可能的。 TCP 不保证你发送成功的数据一定能收到,发送失败的数据一定不会收到。这个问题无解。它被称为将军问题。总有一种方法可以丢失消息/数据包,从而使发送者得出错误的结论。 TCP 保证接收方接收到发送方发送的相同字节流,但可能在任意点中断。

这种不可靠性也有性能方面的原因。 TCP 数据在主机和网络上都被缓冲。确认延迟。

你必须忍受这个。如果您使场景更具体,我可以建议一些处理此问题的策略。

关于networking - TCP 写错误但不是真的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329563/

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