【问题标题】:UDP hole punch possible?UDP打孔可能吗?
【发布时间】:2011-04-01 22:20:17
【问题描述】:

我正在尝试查看在某个 NAT 后面是否可以进行 UDP 打孔,但我发现当 NAT 后面的计算机将 UDP 数据包发送到同一个端口的两个不同 IP 并绑定到同一个端口时端口,NAT 分配两个不同的外部端口号。所以在这个特定的 NAT 背后,我认为 UDP 打洞是不可能的,这是正确的吗?

谢谢

【问题讨论】:

    标签: sockets udp


    【解决方案1】:

    不一定。路由器可能愿意回复IGD

    【讨论】:

    • 谢谢,试过了,不行。毫不奇怪,它实际上是一个蜂窝数据连接。至少值得一试。我唯一想不到的另一件事是端口猜测,但它们似乎是随机分配的。坚果。
    【解决方案2】:

    这意味着你的 NaT 是对称的,如果你的 NaT 是对称的,它会为每个连接提供不同的外部端口。并且不可能从两种方式连接打孔,但仍然可以连接 p2p。但只有在代理端使用圆锥 Nat 时才有可能。搜索那个。

    但如果两个位置使用对称 NaT,则无法将 p2p 连接与 Udp 打孔连接。

    1. a:Symetric => b:symetric ---- 不可能
    2. a:Conic => b:Conic ------------ 很容易实现
    3. a:Symetric => b:Coinc --------- 可能/只有一种方式握手 4: a:Conic => b:symetric --------- 不可能/但可以连接一种方式握手

    但是您仍然可以使用端口预测方法。这意味着您必须猜测可以在连接中使用的端口并尝试连接它(Tcp Hole Punch)

    对于圆锥 NaT 可以看到关于 UDP 打孔请在https://github.com/turapulku/NaT-Traversal-UDP-Hole-punch.git查看示例

    这仍在开发中,但现在我希望它会有所帮助

    【讨论】:

      【解决方案3】:

      您可以使用此网站来确认此特定 NAT 的行为。

      http://nattest.net.in.tum.de/test.php

      它将检查您的 NAT 类型并测试是否可以进行 UDP/TCP 打孔。

      但是由于您已经知道端口分配是随机的,所以 UDP 打孔是不可能的。使用 UPnP 是另一种方式,但不适用于嵌套 NAT。

      【讨论】:

        猜你喜欢
        • 2011-06-14
        • 2014-10-17
        • 2019-04-11
        • 2012-11-30
        • 2019-01-13
        • 2011-06-05
        • 2013-01-29
        • 2012-02-26
        • 2011-10-11
        相关资源
        最近更新 更多