首页 文章

TCP / IP无法 Build 传出连接

提问于
浏览
1

我们在Web和SQL服务器(启用了IPv6的Win 2008 SP1)上看到TCP / IP警告和相当多的连接失败,当工作进程/ SQL服务器进程连续运行几天时,它会更频繁地发生 . 我想知道导致这些警告的原因是什么?允许的TCP连接的默认数量是多少?我们如何将其提升?

TCP / IP无法 Build 传出连接,因为最近使用所选本地 endpoints 连接到同一远程 endpoints . 当以高速率打开和关闭传出连接时,通常会发生此错误,从而导致使用所有可用的本地端口,并强制TCP / IP重用本地端口以进行传出连接 . 为了最大限度地降低数据损坏的风险,TCP / IP标准要求从给定本地 endpoints 到给定远程 endpoints 的连续连接之间经过最短时间 .

4 回答

  • 0

    这听起来有点像你的连接开始失败然后自动重试 . 如果重试发生得足够快,TCP可以在整个端口范围内循环,并且所有端口都处于TIME-WAIT状态(IIRC就是状态所谓的状态,自从我详细调试TCP以来已经有一段时间了) .

    首先要了解的几件事:

    • 谁发起了连接以及它们应该用于什么?

    • 验证连接失败率,我倾向于使用Wireshark来做这类事情 .

    然后你必须找到关于连接失败的原因的线索 . 传出连接可能是服务器,服务器是否正常运行?为什么服务器不接受连接 - 进程/线程负责接受死锁,阻塞某些内容或退出连接?发起者和服务器之间的网络是否正常工作?

  • 2

    这是该错误的TechNet page .

  • 0

    你在用类似的东西吗?

    setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)
    

    它允许您重复使用相同的套接字两次而不会发出警告

  • 0

    这看起来就像错误消息所暗示的那样...您的端口正在耗尽 . 这意味着很多传出连接 .

    默认情况下不限制tcp连接数(我想你只受端口数限制,可能是端口1024到65534)

    我会开始研究为什么你会在如此短的时间内看到如此多的传出连接 .

相关问题