我正在编写一个P2P应用程序,希望避免用户手动设置端口转发。
我有点困惑,因为似乎有两种不同的协议来配置NAT,UPnP/IGD和NAT-PMP。我应该使用哪一个?它们是否都受到所有NAT的支持?或者我应该同时支持两者,以确保NAT至少支持其中之一?
发布于 2013-08-08 14:26:32
NAT-PMP (现在的PCP)是ietf草案,因此应该是您实现的草案。然而,出于兼容性的考虑,您应该允许您的应用程序静默地回退到UPnP/IGD,因为并非所有NAT设备都支持PCP/NAT-PMP,并且许多较旧的设备仅支持UPnP/IGD。
发布于 2011-01-12 09:07:46
考虑使用STUN而不是NAT-PMP或UPnP-IGD。它通常适用于所有地方,并且几乎肯定会通过大规模服务提供商NAT和NAT64发挥作用。
发布于 2015-09-25 07:52:56
坚持UDP打孔。它适用于几乎所有路由器,除非两个客户端都在4G LTE网络(这些网络通常具有随机端口分配)和阻止所有UDP流量的路由器之后。如果您需要可靠地发送数据,您可以使用可靠的UDP。
https://stackoverflow.com/questions/4601904
复制相似问题