我尝试为我的应用程序实现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和MOST重要的洪流下载器,如那些依赖于vuze-core(frostwire),可以通过3G和其他蜂窝网络在Android上运行.所以他们显然必须找到解决方案......
提前致谢!