通过Internet在分布式系统中的ZMQ套接字之间进行通信

时间:2018-04-28 04:26:46

标签: sockets client-server zeromq

我一直致力于分布式系统项目,我的系统部分是p2p。我的问题非常简单,我不知道人们通常如何解决它,因为我没有这个领域的经验,我对这一切都很陌生。

我想通过互联网在两个客户端之间进行通信,这两个客户端都有ZMQ套接字

在我的本地网络或我的机器上,它们似乎工作正常,但在通过互联网进行通信时,我从未收到我的消息。我将此列入候选名单有两个原因:

1) NAT - 它不是让我的消息到达客户端主机,有没有人知道如何解决ZMQ中的NAT问题,我听说过TCP打孔等等,如何网络开发人员和其他处理此事的人经常管理这个吗?

2) ZMQ套接字不能通过互联网进行通信,即使通信严格地在两个ZMQ套接字之间而不是BSD套接字等。我不确定这个。但是/ p >

如果有人在这方面有专业知识,我将不胜感激,这将有助于我前进谢谢!

1 个答案:

答案 0 :(得分:2)

  

2)ZMQ套接字无法通过互联网进行通信,即使通信严格在两个ZMQ套接字之间

嗯,2)很简单,ZeroMQ套接字显然可以通过互联网工作。

没有太多可补充的内容。

  

1)NAT - 它不会让我的消息到达客户端主机,

1)值得更多关注:

是的,当本地LAN(s)路由器连接到单个公共(已注册的,协调的IPv4 / IPv6地址)时,NAT可能就位。

接下来,游戏中可能会有另一个显示停止点,FireWall,放在一个或多个地方(!) - 无论是本地操作(操作系统操作,可以检查,如果有管理员 - 等级登录到localhost)或一个,集成到任何网关/代理/策略实施中。

在任何情况下,都应该与您的本地管理员进行彻底的设计审核,负责localhost-O / S和网络基础架构元素以及负责网络的安全管理员/工程师。

" 如何?"部分:

这种(主要)复杂性正是Game Studios试图避免用户解决这些复杂问题并试图提供一些逃避策略的原因。

对于一个简单的案例1对1:
实际上可以使用一组规则进行端口转发设置(如果FireWall +网关工程允许),并且您的ZeroMQ连接可能会被引导到 tcp://<public-IP>:<_a_port#_known_to_be_FWDed_to_a_target_HOST_> 地址。

更多,但仍然是单位:
对于单个连接设置来说,这种情况似乎很容易,但如果需要有单位或数十个目标主机,那么来自网关(路由器)/防火墙管理员的意愿相当有限,无法在野外打开越来越多的端口安全边界的一面。这里的另一个技巧可能有所帮助 - 使用标准的 ssh - 工具,其中连接可以利用所谓的本地端口转发和远程端口转发,并且互连享受单端口通过防火墙+网关,加上内容受加密保护。当然,双方都需要更多的管理工作,但是,如果这些努力和稍微增加的延迟(加密+解密处理)不会破坏您的游戏内UX延迟计划,那么这是一种已知且聪明的方法。

更多,超过几个单位:
有一种选择可以重新使用ad-hoc,但是一种安全威胁的双面剑 - 一个多玩家共享(!)VPN,它可以解决全球性的可视性问题。问题(最常见的是一些中心(无论是否已发布)服务供应映射和身份验证服务协调员)。 localhost端应用程序只是开始看到另一个&#34;本地&#34; - 接口,与其IPv4 / IPv6地址不协调,但这个私有共享VPN似乎加入了所有玩家以便看起来好像所有这些共享一个共同的IP网络,有效地绕过了共同网络实践的所有安全/防火墙工作 - 这同时也是实施最强风险(没有提到风险)远程,中央,授权/制图服务提供商的主要SPOF,是他们发布或隐藏的一系列动机。

自从多人游戏开始出售以来,游戏行业对所有这些问题感到恐慌(2018年/ Q2游戏玩家可能看起来像一样)并且业界正试图避免所有这些复杂性相关的痛苦,作为游戏购买青少年的主要部分,预计也不会同时获得患者的持久性(系统地制定正确的设置)和足够深入的知识(以便了解所有系统范围内的细节)在何处以及如何设置或重新配置,以便解锁安全的端到端在线游戏内可见性。)

对于确实多对多的案例:
一个很好的例子是在1990年代末期/ 2000年初开始的,当时IL-2 Sturmovik的飞行员和虚拟中队社区24/7/365全天投入运营&#34;从那时起#34;他们使用社区赞助的 HyperLobby Mediating Node ,让所有感兴趣的会员一劳永逸地解决所有这些复杂问题。 HyperLobby轻量级客户端/服务器服务基础架构正在进行所有端口转发映射设置和其他服务器端中介脏操作,这些操作对于Pilot都是不可见的,并且提供了额外的方法来管理IL-2的许多连接的多玩家游戏影院,F / A-18,苏-27侧卫,CFS,荣誉勋章等等,比我今天想要记住的那样(在高峰时段超过成千上万的连接飞行员IIRC)。几十年来真正的全球在线社区(荣幸地服务于伪历史VFSQ,成员遍布13个时区 - 从夏威夷,巴西,美国,英国,法国,德国,意大利,希腊到土耳其 - 与来自日本,澳大利亚,新西兰和许多其他地方的同样志同道合的朋友一起飞往全球 - 无论是东/西前线+太平洋剧院全球协调的周末活动 - 任务重建直至历史细节或享受纪念馆V-Day-s&#39;纪念日上的游行天桥 - 〜致敬〜 Jiri Fojtasek,确实做得很好! - 其中的想法有助于说明前进/后续的方式(因为许多年轻的游戏门户确实遵循了这条道路)。