我尝试为我的应用程序实现 UDP 打孔算法。当两个对等方联系服务器以显示其公共 IP 时,3G 蜂窝 NAT 为相同的内部 UDP 端口分配了恒定的外部端口,但是,3G 蜂窝 NAT根据目标更改了内部->外部端口映射。
因此,例如,如果 C 是静态 IP 服务器 A->C 映射到端口 1234,而 A->B 映射到端口 5678。这样 UDP 打孔失败。
由于那些蜂窝 NAT 使用 CGN,因此不支持 UPnP/NAT-PMP。我已经阅读了有关 CGN 的 PCP 的信息,其功能类似于这些,但是,我没有在 PCP 上找到任何协议信息。
有谁知道是否有办法克服这个目的地变量端口映射问题?
通过端口转发(如 PCP)或遍历(PREFFERED)。
最后一件事。有一些概念证明,例如skype、viber和最重要的torrent 下载器,例如那些依赖于 vuze-core(frostwire) 的下载器,这些下载器在 android over 3G 和其他蜂窝网络上运行。所以他们显然必须找到解决方案......
提前致谢!