NAT穿越的rabbitmq底层机制

NAT穿越的rabbitmq底层机制,rabbitmq,nat,mqtt,Rabbitmq,Nat,Mqtt,我正在寻找rabbitmq用于NAT遍历的底层机制 假设: 1.服务器S部署在云上 许多客户机C1-CN都是作为客户部署的,他们支持NAT 服务器需要通知客户端 我想知道服务器如何找到客户端的IP/端口?它依赖于一种ICE服务器吗?或者,它将每个客户端的IP/ID保存在一个大的查找表(LUT)中。或者客户端发送大量数据包,服务器将消息放入响应数据包中 tnx @哈迪尔布: 谢谢,我明白了,但这种方法可能会给我带来严重的问题。原因是我想把它部署在超低功耗微控制器中。因此,如果我的micro持续向服

我正在寻找rabbitmq用于NAT遍历的底层机制

假设:

  • 1.服务器S部署在云上
  • 许多客户机C1-CN都是作为客户部署的,他们支持NAT
  • 服务器需要通知客户端
  • 我想知道服务器如何找到客户端的IP/端口?它依赖于一种ICE服务器吗?或者,它将每个客户端的IP/ID保存在一个大的查找表(LUT)中。或者客户端发送大量数据包,服务器将消息放入响应数据包中

    tnx

    @哈迪尔布:
    谢谢,我明白了,但这种方法可能会给我带来严重的问题。原因是我想把它部署在超低功耗微控制器中。因此,如果我的micro持续向服务器发送保持活动的数据包,它将很快放电,因此我需要很快更换电池。但在我的申请中,它应该至少持续1年。我想知道是否有任何方法可以阻止发送此类数据包,并将micro置于睡眠模式。只要有命令,它就能醒过来?我听说过CoAP(micro成为服务器),但它仍然存在NAT遍历问题。我想知道你是否知道克服这个问题的方法

    客户端通过nat网关打开与服务器的TCP连接。nat网关保留一个表,将客户端的入站连接映射到服务器的出站连接,这允许将返回数据包返回到客户端

    假设客户机纯粹是订户(不发布任何消息),它会定期发送一个保持活动的数据包,让服务器知道它仍在连接(这也有通过nat网关保持连接活动的好处)


    当服务器收到客户机订阅的主题消息时,它只需通过现有连接将该消息转发到该客户机。

    事实上,客户机建立到服务器的连接,而不是服务器到客户机的连接。纳特照常工作。