【发布时间】:2011-12-21 00:29:47
【问题描述】:
我想了解当端口受限锥形 NAT 后面的两台主机分别建立连接时 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 的数据包,而 B 也位于受限锥形 NAT 后面 受限锥形 NAT?
端口受限的锥形 NAT 不允许接收源地址:端口对与它发送的数据包的目标地址:端口对不匹配的数据包。为什么 A 和 B 之间发送的其他数据包到达 A 和 B?
是不是因为端口受限的锥形NAT认为packet_2是来自B的响应?
所以 packet_1 会丢失,但 packet_2 会到达 B。我说的对吗?
提前谢谢你。
【问题讨论】:
标签: udp nat hole-punching