首页 文章

udp打孔和端口限制锥NAT

提问于
浏览
4

我想了解当两个主机每个后面的端口限制锥形NAT Build 连接时,udp打孔是如何工作的 .

据我所知,它发生在几个阶段,涉及三个主机 .

主机A和主机B位于端口限制锥NAT之后 .

主机C是可以从主机A和B接收数据包的服务器 .

  • A向C发送数据包 .

  • C从A接收数据包并确定A的外部地址:端口对

  • B向C发送数据包 .

  • C从B接收数据包并确定B的外部地址:端口对

  • C将外部地址:B的端口发送给A

  • C将外部地址:A的端口发送给B.

  • A将packet_1发送到B的外部地址

  • B将packet_2发送到A的外部地址

问题是:

限制锥形NAT后面的A如何接收来自B的数据包,该数据包也位于受限锥形NAT后面?

端口限制锥形NAT不允许数据包,其中源地址:端口对与要发送的目标地址:端口对的数据包不匹配 . 为什么在A和B之间发送的其他数据包到达A和B?

是因为端口限制锥形NAT认为packet_2是来自B的响应吗?

所以packet_1会丢失但是packet_2会到达B.我是对的吗?

先感谢您 .

4 回答

  • 0

    仅供参考,这是一个paper,可以解决您的问题,并提供NAT的详细概述 . pdf版本可用here .

  • 0

    首先,受限锥体意味着如果A与C对话,则B不能使用在A和C之间打孔的孔与A进行通信,假设B在nat后面是 not . 意思是,nat遍历在这种情况下不起作用 .

    Resctricted锥形NAT后面的A如何接收来自B的数据包,该数据包也位于受限锥形NAT后面?

    在这种情况下,它是一种不同的情况,称为发夹条件 . 换句话说,nat背后的B可以从nat后面使用A的翻译地址吗?有些nat正确处理这种情况,有些则没有 .

    在您的情况下,即使您的nat正确处理发夹条件,B的数据包也不会因为“受限锥”而被转发 . 所以,结果是一样的 .

    为什么A和B之间的其他数据包到达A和B?

    他们不会在你的情况下 .

  • 2
    A sends packet_1 to B's external address
    B sends packet_2 to A's external address
    
    
    How can A behind the restricted cone NAT receive a packet from B which is also behind the restricted cone NAT?
    
    Is it because the port restricted cone NAT considers packet_2 as the response from B?
    
    So packet_1 will be lost but packet_2 arrives to B. Am I right?
    

    你是对的,请阅读skype works,这就是你要找的

  • 1

    我写了一篇:PyPunchP2P . 看看是否有人可以使用它 .

相关问题