【问题标题】:How to know the keep alive interval needed for most router?如何知道大多数路由器所需的保持活动间隔?
【发布时间】:2013-03-26 06:33:08
【问题描述】:

现在大多数设备都在 NAT 之后。当我们与服务器建立连接时,路由器将为该连接创建映射并保持该映射活动一段时间。为了保持这个映射,我们必须定期主动发送keep alive包。

如何知道需要的存活时间间隔?这个间隔在协议(UDP,TCP,...)之间是否不同?有文件吗?

【问题讨论】:

    标签: connection router intervals nat keep-alive


    【解决方案1】:

    我看到这篇论文TCP Wake-Up 给出了一个一般性的答案

    The connection state timeout values vary from product to 
    product, but typical values are 30…180 seconds for UDP and 
    30…60 minutes for TCP [8]. This implies that applications 
    using UDP need to send keep-alive messages much more 
    frequently than those based on TCP
    

    【讨论】:

    • 那篇论文已经过时了。 4.5 - 5 分钟现在是更正确的值。
    【解决方案2】:

    这变化很大,但我从来没有遇到过一个标准的 ISP 家庭路由器,它保持开放 TCP 超过 10m 或一个开放 UDP 超过 3m,所以我不会接受 4.5-5m 的建议全部。

    值得考虑的是,大多数 WebSockets 实现都使用 20 秒的 keep-alive,尽管这适用于路由器和 Web 服务器超时,因此它可能比您真正需要的 NAT keepalive 更保守。

    我在一些基于移动和家庭的 UDP 应用程序中使用了 60s,并收到了有关偶尔失败的反馈。切换到 30 秒没有看到,切换到 45 秒只看到最少的重新连接失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-24
      • 2018-03-24
      • 2018-12-09
      • 2018-04-09
      • 2021-05-18
      • 2018-09-14
      • 2023-02-09
      • 2017-03-01
      相关资源
      最近更新 更多