5

我正在编写一个 P2P 应用程序,并希望避免用户手动设置端口转发的需要。

我有点困惑,因为似乎有两种不同的协议来配置 NAT,UPnP/IGD 和 NAT-PMP。我应该使用哪一个?所有 NAT 都支持它们吗?还是我应该同时支持两者以确保 NAT 至少支持其中一个?

4

3 回答 3

5

NAT-PMP(现在的 PCP)是一个 ietf 草案,所以应该是你实施的那个。但是,为了兼容性,您应该允许您的应用程序静默回退到 UPnP/IGD,因为并非所有 NAT 设备都支持 PCP/NAT-PMP,而且许多旧设备仅支持 UPnP/IGD。

于 2013-08-08T06:26:31.750 回答
1

Consider using STUN instead of either NAT-PMP or UPnP-IGD. It generally works everywhere, and will almost certainly work through large-scale service-provider NAT and NAT64.

于 2011-01-12T01:07:46.093 回答
0

坚持UDP打孔。它适用于几乎所有路由器,除非两个客户端都位于 4G LTE 网络(这些通常具有随机端口分配)和阻止所有 UDP 流量的路由器之后。如果需要可靠地发送数据,可以使用可靠的 UDP。

于 2015-09-24T23:52:55.983 回答