首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用TCP SYN重传

禁用TCP SYN重传
EN

Stack Overflow用户
提问于 2016-02-10 05:38:35
回答 1查看 6.4K关注 0票数 1

我正在开发一个通过TCP连接到服务器的客户端。服务器被配置为,如果一台服务器停机,则与另一台服务器建立连接。

我的要求是,如果在2s内没有与第一台服务器建立TCP连接,客户端需要与第二服务器建立连接。

下面是我基于测试的观察-- TCP消息由客户端发送到第一台服务器以建立连接。由于第一服务器关闭,在1s后,TCP SYN重传被发送到第一服务器。经过2S(由于处理和网络延迟),TCP消息由客户端发送到第二服务器。所以需要3s (1s + 2s)才能将SYN消息发送到第二台服务器,这不是我想要的。我希望TCP消息在2s内被发送到第二台服务器。

为了在2s内将TCP消息发送到第二台服务器,我希望避免TCP重传。

我尝试在/etc/sysctl.conf中设置net.ipv4.tcp_syn_retries=0。但是我得到了一个TCP SYN重传。

那么,有什么方法可以在不改变内核源代码的情况下从用户空间禁用TCP重传呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 05:46:56

我的要求是,如果在2s内没有与第一台服务器建立TCP连接,客户端需要与第二服务器建立连接。

在本例中,只需在客户端执行超时2秒的连接,如果连接不成功,请重试与另一台服务器。一旦关闭了套接字,内核将停止尝试连接到第一个服务器。这比篡改TCP的内置可靠性行为和时间更好,而且更独立于特定的平台。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35307651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档