套接字连接超时是如何工作的?

5
据我了解,套接字连接超时是由TCP传输控制的,它使用重新传输超时(RTO)来控制。如果确认信息在计时器到期之前未返回,则连接请求(同步)将被重新传输,并且RTO将加倍。
因此,在Java套接字中调用Socket.connect(endpoint, connectTimeout)时,连接超时的功能是什么?
1个回答

5

当我们调用Socket.connect(endpoint, connectTimeout)时,连接超时在Java socket中的功能是什么?

它设置了建立连接的总超时时间;也就是说,它规定了应用程序在放弃之前愿意等待数据包级超时、重传等操作是否成功的时间。

换句话说,它决定了应用程序在多长时间内能够建立连接。


1
这也是我猜测的,但你有参考资料吗?另外,如果我们在尝试连接时没有明确设置超时时间,那么在多少次重试后,TCP会放弃连接设置? - Alfred
这在 Socket.connect(...) 的 javadoc 中有说明。重试次数和时间间隔取决于操作系统实现的 TCP/IP,Java 既不提供查找这些值的方法,也不提供更改这些值的方式。(也没有必要这样做。) - Stephen C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接