基于DDS的通信需要多播吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于DDS的通信需要多播吗?相关的知识,希望对你有一定的参考价值。
我有一个配置,其中3个应用程序在3个不同的虚拟机上运行,它们必须通过DDS,即RTPS协议进行通信。配置如下:
- 基于ROS2的ADAS功能
- 模拟工具
- 基于Python / Tensorflow的机器学习功能
所有3个都需要在不同的VM上。
我们不可能允许MS AZURE VM和我们的网络进行多播。以下是一些问题:
- 是否仍然可以通过DDS进行通信?
- 如果是,通过UNICAST,即点对点连接?
- 如果我已经可以选择基本的UDP套接字编程,那么在这种情况下使用DDS通信是否有益?
- 你能想到使用DDS进行这种配置的任何限制/进一步的问题吗?
是否仍然可以通过DDS进行通信?
是的。开箱即用,DDS参与者仅在启动时使用多播来发现其他DDS参与者。可以通过多种方式配置此发现机制。有关如何实现这一点的解释,请参阅此社区知识库文章:Configure RTI Connext DDS to not use Multicast。
如果是,通过UNICAST,即点对点连接?
是的,通过无多播设置,所有通信都通过UDP单播,点对点,无连接完成。
如果我已经可以选择基本的UDP套接字编程,那么在这种情况下使用DDS通信是否有益?
在将其与UDP进行比较时,无法使用多播不会消除任何DDS优势。使用DDS时,传输/发现配置通常对应用程序不可见,并且所有发布/订阅概念保持不变。
如果您在询问使用DDS与UDP的优势,我认为这可以保证一个新的问题。答案将非常广泛:-)
你能想到使用DDS进行这种配置的任何限制/进一步的问题吗?
使用此配置,您的配置设置将取决于您运行的网络。这意味着迁移到其他网络可能需要重新配置,例如提供不同的主机名或IP地址。这很不方便,但并不难。
由于您的环境限制了多播的使用,如果您没有提及或发现更多限制,我不会感到惊讶。例如,您对防火墙或网络带宽限制有何了解?同样,DDS可以配置为处理这些事情,但您需要首先了解它们。
以上是关于基于DDS的通信需要多播吗?的主要内容,如果未能解决你的问题,请参考以下文章