2011-11-03 137 views
4

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

据我了解,它发生在几个阶段,涉及三个主机。

主机A和主机B位于端口受限锥形NAT后面。

主机C是可从主机甲接收分组和B.服务器

  1. A发送数据包C.
  2. C来自A接收分组并且确定A的外部地址:端口对
  3. B发送分组到C.
  4. C来自B接收分组,并确定B的外部地址:端口对
  5. C发送外部地址:B的端口至A
  6. C发送的外部地址:A的端口到B
  7. A发送packet_1到B的外部地址
  8. B发送packet_2到A的外部地址

的问题是:

怎么能落后受限锥形NAT从B收到一个数据包,这个数据包也位于受限锥形NAT后面?

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

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

因此packet_1将丢失,但packet_2到达B.我是对吗?

预先感谢您。

回答

2

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

1

首先,限制锥nat意味着如果A与C通话,则B不能使用在A和C之间穿孔的通信与A通信,假设B是而不是在nat后面。意思是,在这种情况下nat遍历不起作用。

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

在这种情况下,它是一种不同的情况,称为发夹状态。换句话说,B可以在nat后面使用A的翻译地址吗?一些nats正确处理这种情况,其他人则没有。

就您而言,即使您的nat正确处理发夹条件,B的数据包也不会因为“限制锥”而被转发。所以,结果是一样的。

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

他们不会在你的情况。

0
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如何,这是你在寻找什么