我想了解当端口受限锥形 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 如何接收来自同样在受限锥形 NAT 后面的 B 的数据包?
端口受限的锥形 NAT 不允许接收源地址:端口对与它发送的目标地址:端口对的数据包不匹配的数据包。为什么在 A 和 B 之间发送的其他数据包到达 A 和 B?
是不是因为端口受限的锥形 NAT 将 packet_2 视为来自 B 的响应?
所以 packet_1 会丢失,但 packet_2 会到达 B。我说的对吗?
先感谢您。