所有 NAT 类型的 P2P 连接
P2P connection over all NAT types
最近我正在开发一个 p2p 应用程序,我发现了如何使用 C# 使用 ICE 和 STUN 协议对 UDP 打洞进行编程。
很好,但是对称 NAT 和使用对称 NAT 的路由器有一些限制。\
我正在寻找一种通过任何 NAT 类型连接两个系统的方法。
无论如何,我也尝试过 UPNP 和端口转发,但是由于防火墙和路由器黑名单,这个选项不在我的脑海中,如果它是你的答案,请描述我应该如何正确使用这个方法。
提前致谢。
Upnp 和 NAT-PMP 对那些支持这些协议的路由器非常有用,我还没有遇到任何类似“防火墙和路由器黑名单”的问题。
在路由器不支持这些协议的情况下,我使用 ICE。正如你所说,对称NAT是一种保持最高安全性的类型,如果端口随机增加很难打洞。使用服务器作为中继(ICE 可以做到)比克服随机算法要容易得多。
如果您对对称 NAT 的源代码感兴趣,它在像 nf_nat_core.c 这样的文件中,很容易跟踪和理解它是如何工作的。
最近我正在开发一个 p2p 应用程序,我发现了如何使用 C# 使用 ICE 和 STUN 协议对 UDP 打洞进行编程。
很好,但是对称 NAT 和使用对称 NAT 的路由器有一些限制。\
我正在寻找一种通过任何 NAT 类型连接两个系统的方法。
无论如何,我也尝试过 UPNP 和端口转发,但是由于防火墙和路由器黑名单,这个选项不在我的脑海中,如果它是你的答案,请描述我应该如何正确使用这个方法。
提前致谢。
Upnp 和 NAT-PMP 对那些支持这些协议的路由器非常有用,我还没有遇到任何类似“防火墙和路由器黑名单”的问题。
在路由器不支持这些协议的情况下,我使用 ICE。正如你所说,对称NAT是一种保持最高安全性的类型,如果端口随机增加很难打洞。使用服务器作为中继(ICE 可以做到)比克服随机算法要容易得多。
如果您对对称 NAT 的源代码感兴趣,它在像 nf_nat_core.c 这样的文件中,很容易跟踪和理解它是如何工作的。