3

我正在使用基于 java 的 UDP 套接字与 3G 模块进行通信;但是每次接收到的数据包的端口(有时是IP地址)都会发生变化,这非常令人惊讶。这表明我无法为 3G 模块分配固定的 IP/端口并与之通信,而只能依靠传入的数据包来获取目标信息。谁能告诉我为什么?3G 上的 TCP/UDP 连接与一般 Internet 有什么区别?提前致谢!

4

1 回答 1

9

移动运营商通常有 NAT 防火墙。尝试通过发送您的应用程序可能忽略的 UDP 数据包来保持您的 UDP“会话”处于活动状态。可能需要每 30 秒发送一次以保持 NAT 映射处于活动状态。

如果移动运营商的 NAT 防火墙没有收到来自 UDP 源 IP/端口目标 IP/端口四倍的数据包,它将删除它并在您的应用程序的下一个数据包到达时分配一个新的 IP/端口。

于 2010-11-05T13:02:25.610 回答