network-programming - nat遍历: UPnP/IGD vs NAT-PMP

标签 network-programming p2p nat upnp portforwarding

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

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

最佳答案

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

关于network-programming - nat遍历: UPnP/IGD vs NAT-PMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601904/

相关文章:

c# - 计算 TcpClient 通过 NetworkStream BinaryReader/BinaryWriter 传输的字节数

java - 在 Android 中获取网络连接警告

c++ - 源码中的防火墙绕过技术

python - 将 Pandas 数据帧中的所有 NaT 值更改为 Timedelta 00 :00:00

Azure 应用服务出站请求不通过 Vnet 集成 NAT 网关路由

c# - 如果在使用 ConnectionMode.Direct 时不设置 ConnectionPolicy.ConnectionProtocol 会发生什么?

java - 在 Java 中扭曲

c - C语言网络编程中的读取函数

webrtc - 对称 NAT 有什么优点(就 ISP 而言)?

java - TCP 打洞 - 如何进行此步骤