DDS Fast-RTPS 支持跨网络通信吗?
Posted
技术标签:
【中文标题】DDS Fast-RTPS 支持跨网络通信吗?【英文标题】:DDS Fast-RTPS support communication across networks? 【发布时间】:2019-10-21 03:54:36 【问题描述】:我是 DDS/Fast-RTPS 的新手。 根据我的理解,发现是基于 LAN 的。它未能发现不在同一 LAN 中的节点。对吗?
我想知道我们是否可以使用 fast-rtps 跨网络通信? 附言。让我们忽略 NAT/防火墙问题。假设我们有一个 IP/TCP 完全可达的网络环境。
【问题讨论】:
【参考方案1】:DDS 使用多播 UDP。如果您的交换机和其他网络基础设施设置为吞咽多播数据包,或者 TTL 设置得太低,则 DDS 的默认发现实现将无法完成/可见。
您可以提高基础架构上的 TTL,也可以告诉 DDS 库以特定地址为目标(请参阅您的提供商库的文档)。
【讨论】:
感谢您的回复。我不太明白。例如,node1 位于 140.1.1.1,node2 位于 180.2.2.2,我们假设没有任何防火墙/NAT 问题。您的意思是我应该在 node2 中指定(添加初始对等方)140.1.1.1 并在 node1 中指定 180.2.2.2? 设置初始对等体告诉参与者他们应该尝试直接到达该地址,而不是依赖多播。请记住,它仍然是 UDP,因此拓扑中的任何交换机或集线器都有权丢弃数据包。实际上,您只需要在一侧设置一个初始对等点(当它到达另一个节点时,另一个节点会知道它的存在)。但是在两者上设置初始对等点,指向另一个,会缩短发现时间。 我明白了。谢谢!以上是关于DDS Fast-RTPS 支持跨网络通信吗?的主要内容,如果未能解决你的问题,请参考以下文章