Networking 对称NAT遍历
假设有2个对等点,A和B,每个对等点位于具有随机端口分配的对称NAT下 如果A向B在特定端口上的地址发送数据包,NAT将把请求映射到它的公共IP地址和随机端口Networking 对称NAT遍历,networking,udp,nat,hole-punching,nat-traversal,Networking,Udp,Nat,Hole Punching,Nat Traversal,假设有2个对等点,A和B,每个对等点位于具有随机端口分配的对称NAT下 如果A向B在特定端口上的地址发送数据包,NAT将把请求映射到它的公共IP地址和随机端口 A'private: A'public: B: 192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000 如果A继续在同一端口上向B的地址发送数据包,NAT将继续使用相同的IP地址和端口组合 A'private:
A'private: A'public: B:
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
如果A继续在同一端口上向B的地址发送数据包,NAT将继续使用相同的IP地址和端口组合
A'private: A'public: B:
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
如果A决定将数据包发送到B在不同端口上的地址,NAT将随机分配另一个端口来发送数据包
A'private: A'public: B:
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
192.168.0.7:8000 --> 94.109.0.76:27650 --> 35.232.76.41:5001
当A向B发送数据包时,如果从A发送消息的端口发送,并且A的NAT将地址/端口映射为目的地,则NAT将允许B的回复通过
A'private: A'public: B:
192.168.0.7:8000 --> 94.109.0.76:43576 --> 35.232.76.41:5000
B: A'public: A's private
35.232.76.41:5000 --> 94.109.0.76:43576 --> 192.168.0.7:8000
理论上,如果A在其每个端口(0-65535)上向B发送数据包,A允许来自B的任何端口的回复通过,但只有当B在发送65535数据包的同时向A的NAT映射的地址/端口之一发送数据包时,回复才会通过
如果B向a的每个端口(0-65535)发送一个数据包,B很可能会找到a的NAT映射的一个端口,从而通过a的防火墙
这对你们有意义吗?还是我漏掉了一点?我一直在尝试使用这种技术连接对称NAT下的两个对等点,但还没有成功