首页 文章

UDP打孔可能吗?

提问于
浏览
4

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

谢谢

3 回答

  • 0

    不必要 . 路由器可能愿意响应IGD .

  • 1

    这意味着你的NaT Symetric,如果你的NaT是Symetric,它为每个连接提供了不同的外部端口 . 并且不可能从两个方向连接打孔但是仍然可以连接p2p . 但只有当代理方使用圆锥形Nat时才有可能 . 搜索它 .

    但如果两个位置使用Symetric NaT,则无法将p2p连接与Udp Hole Punching连接 .

    • a:Symetric => b:symetric ----不可能

    • a:圆锥曲线=> b:圆锥曲线------------可能很容易

    • a:Symetric => b:Coinc ---------可能/只有单向握手4:a:圆锥曲线=> b:对称---------不可能/但可以连接单向握手

    但您仍然可以使用端口预测方法 . 这意味着你必须猜测哪个端口可以连接使用并尝试连接它(Tcp Hole Punch)

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

    那还在发展,但现在我希望它有所帮助

  • 1

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

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

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

    但由于您已经知道端口分配是随机的,因此无法进行UDP打孔 . 使用UPnP是另一种方式,但在嵌套NAT后面不起作用 .

相关问题