增加 TCP 套接字超时与手动重试套接字连接之间有区别吗?



我继承了尝试建立TCP套接字以诊断设备与某些URL的连接的代码。在某些情况下,TCP 套接字将在我们设置的超时阈值后超时。我的问题是手动重试套接字连接与仅增加超时阈值之间是否有区别?

请记住,这是在安装和配置的设备上使用的诊断工具,因此其网络配置可能会在套接字连接过程中发生更改。TCP 套接字是否考虑网络更改(如网关、DNS 或本地 IP(并在超时之前建立连接(假设网络更改在套接字通常超时之前完成(,还是有必要建立新的套接字连接?或者增加超时与手动重试套接字连接之间没有真正的区别吗?

超时

可能由于多种原因而发生,但想象一下下一个情况:

  1. 数据包已发送
  2. 您的主机和设备之间发生了一些奇怪的故障,数据包完全丢失(丢弃(
  3. 您超时

现在,您增加了超时 - 这不会改变情况

如果您有重试 - 在超时时将发送数据包,如果失败是暂时的,那么您最终将建立连接

结论 - 超时应设置为某个合理但相当小的值,并且您应该多次重试,再次是合理的数量。

最新更新