gpt4 book ai didi

Java Tcp Socket 管理数据包重传

转载 作者:行者123 更新时间:2023-12-02 01:10:55 25 4
gpt4 key购买 nike

是否可以获取java Socket当前的重传超时时间?

假设地球两端有两台主机通过 java Socket(一次 ping 通常需要 450 毫秒)连接,连续传输数据。

据我所知,重传是由底层平台的 TCP 堆栈(例如 Windows 操作系统)管理的。

我希望发送方的 OS/tcp 堆栈开始重新传输在 3 秒内未收到确认的数据包

如何做到这一点?是否可以查询给定套接字当前配置的 tcp 重传计时器设置是什么?

最佳答案

无法从 Java 调整重传超时。事实上,我认为从用任何编程语言编写的任何用户空间程序中都不可能做到这一点。

重传超时由 TCP 流量控制算法确定。超时是自适应的;即算法根据网络状况上下调整它们。事实上,在过去 50 年中,已经尝试了许多版本的 TCP 流量控制算法。维基百科中有一个总结TCP congestion control

根据操作系统(以及您的管理员访问权限),可以让操作系统使用不同的流量控制算法。以下是一些链接:

但最重要的是,您不能(也不应该)从 Java 应用程序中对此进行调整。

关于Java Tcp Socket 管理数据包重传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59419068/

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