繁体   English   中英

公共网络服务器与NAT后的服务器之间的双向通信解决方案

[英]Solution for 2-way communcation between public network server and servers behind NATs

我有以下情况,并希望找到解决方案:

专用服务器A位于NAT之后,它没有固定的公用IP地址。

公用服务器B具有公用IP。

因此,根据业务需求,公共服务器B将需要向私有服务器A发送消息。

我想知道是否有用于此类通信的Java解决方案?

由于私有服务器A没有固定的IP地址,因此它首先必须具有一种方法来告知公共服务器B其IP /端口等,或者首先启动类似websocket的连接。 然后使连接保持活动状态,然后公共服务器B可以将数据发送回服务器A。

这种情况与UDP打孔相似但不完全相同。 由于我是Java新手,所以我想知道是否存在针对这种情况的现有Java库?

限制是:

  1. 我们不允许配置NAT网络,这意味着端口转发不适用。

  2. 将会有许多NAT。 在每个NAT内,将有一个服务器(或群集)与公用服务器通信。 因此,websocket解决方案可能不是最佳解决方案,因为它将使公共服务器保持内存中的许多连接。

谢谢

NAT配置基本上会迫使您从位于NAT后面的服务器A到服务器B建立连接。如果您不想保持连接打开,则服务器A需要定期轮询以获取信息,然后断开连接。 显然,这会导致延迟。 服务器A在大部分时间内都断开连接,并且仅在连接后才接收更新。

如果您有如此多的服务器而无法保持套接字连接打开,我会感到惊讶。

Java是附带问题。 您将用Java打开的任何套接字或websocket都具有其他语言的直接类似物。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM