udp打孔器和端口限制锥NAT

Art*_*sky 5 udp nat hole-punching

我想了解当端口限制锥NAT后面的两台主机分别建立连接时,udp打孔的工作原理。

据我了解,它分为几个阶段,涉及三个主机。

主机A和主机B在端口受限锥形NAT的后面。

主机C是可以从主机A和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将数据包_1发送到B的外部地址
  8. B将数据包_2发送到A的外部地址

问题是:

受限锥NAT后面的A如何从也位于受限锥NAT后面的B接收数据包?

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

是否因为端口受限锥NAT将packet_2视为来自B的响应?

因此,数据包_1将丢失,但数据包_2到达B。我是对的吗?

先感谢您。

Ral*_*alf 4

仅供参考,这里有一篇论文解决了您的问题并提供了 NAT 的详细概述。此处提供 pdf 版本。