【问题标题】:When is an UDP connection treated as UDP stream何时将 UDP 连接视为 UDP 流
【发布时间】:2019-03-01 09:32:00
【问题描述】:

在 NAT 中,UDP 会话有两种不同的超时时间。

  • UDP 超时
  • UDP 流超时

在大多数 NAT 配置中,UDP timeout 设置为 30 seconds。但是,UDP stream timeout 设置为 180 seconds。我了解网络管理员可能会更改配置。但是,UDP 会话由一对源端点和目标端点标识。并且 NAT 应该将连接分类为流。

我的问题是NAT 如何以及何时将连接分类为流,何时不分类?尽管似乎一对连续的双向send() 和receive() 将UDP 连接分类为流,但我没有找到书面证据。

另外,我认为不同的 NAT 策略应用不同的算法。但是是否有任何 RFC 或任何已发表的论文记录了这些算法?

在下面的link 流中定义为双向通信的会话。但是需要多少发送和接收?这在不同的 NAT 中会有所不同吗?

在此上下文中,“流”表示连接跟踪机制具有 在“双向”中看到数据包,因此默认超时时间更长。如果 只看到一个方向,“其他”超时适用。

【问题讨论】:

    标签: networking udp firewall nat


    【解决方案1】:

    通常,当 LAN 客户端将 UDP 数据报发送到 WAN 时,NAT 会将 UDP 流(又名 端口状态)与用于将数据报发送到 WAN 的端口相关联。当 NAT 在特定端口上从 WAN 接收到 UDP 数据报时,它会查看是否有与该端口关联的 UDP 流,如果有,它将数据报转发给关联的 LAN 客户端。否则数据报被丢弃。

    当两个不同的 LAN 客户端想要通过 WAN 相互发送 UDP 数据报时,遍历它们的 NAT 的常见做法是UDP hole punching:两个客户端开始从/向同一个端口相互发送数据报,以便它们的 NAT关联 UDP 流并开始转发数据报。

    【讨论】:

    • 但我的问题是 NAT 何时决定将 UDP 连接视为流?
    • @AkashChowdhury 当它收到一个从 LAN 到 WAN 的 UDP 数据报时。
    • 在我做过的几个实验中没有。然而,经过几次双向 LAN WAN 通信后,它决定该连接为流。只有单个 LAN 到 WAN 数据报不会将其标记为流,并且路由器使用 30 秒的空闲时间。请检查更新后的问题。
    • @AkashChowdhury 你完全重写了你的问题。我建议您查看 NAT 的文档。
    • 是的,以前不清楚,我在问什么。我想现在更清楚了。
    猜你喜欢
    • 1970-01-01
    • 2014-01-11
    • 2013-11-13
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多