Udp 基于DDS的通信是否需要多播?

Udp 基于DDS的通信是否需要多播?,udp,multicast,data-distribution-service,ros2,unicast,Udp,Multicast,Data Distribution Service,Ros2,Unicast,我有一个配置,其中3个应用程序在3个不同的虚拟机上运行,它们必须通过DDS(即RTPS协议)进行通信。 配置如下: 基于ROS2的ADAS函数 模拟工具 基于Python/Tensorflow的机器学习函数 所有3个都需要在不同的虚拟机上 我们不可能允许MS AZURE VM和我们的网络进行多播。 以下是一些问题: 仍然可以通过DDS进行通信吗? 如果是,通过单播,即对等连接? 如果我已经有了基本UDP套接字编程选项,那么在这种情况下使用DDS通信是否有益? 您认为在使用DDS进行这种配置时有什

我有一个配置,其中3个应用程序在3个不同的虚拟机上运行,它们必须通过DDS(即RTPS协议)进行通信。 配置如下:

基于ROS2的ADAS函数 模拟工具 基于Python/Tensorflow的机器学习函数 所有3个都需要在不同的虚拟机上

我们不可能允许MS AZURE VM和我们的网络进行多播。 以下是一些问题:

仍然可以通过DDS进行通信吗? 如果是,通过单播,即对等连接? 如果我已经有了基本UDP套接字编程选项,那么在这种情况下使用DDS通信是否有益? 您认为在使用DDS进行这种配置时有什么限制/进一步的问题吗? 仍然可以通过DDS进行通信吗

是的。现成的DDS参与者仅在启动时使用多播来发现其他DDS参与者。可以通过多种方式配置此发现机制。有关如何实现这一点的解释,请参阅此RTI社区知识库文章:

如果是,通过单播,即对等连接

是的,在并没有多播设置的情况下,所有通信都是通过UDP单播、对等、无连接完成的

如果我已经有了基本UDP套接字编程选项,那么在这种情况下使用DDS通信是否有益

与UDP相比,无法使用多播并不会消除DDS的任何优势。使用DDS时,传输/发现配置通常对应用程序不可见,并且所有发布/订阅概念保持不变

如果您想了解使用DDS与UDP相比的优势,我认为这本身就是一个新问题。答案相当广泛:-

您认为在使用DDS进行这种配置时有什么限制/进一步的问题吗

使用此配置,您的配置设置将取决于您正在运行的网络。这意味着迁移到不同的网络可能需要重新配置,例如提供不同的主机名或IP地址。这很不方便,但并不难

由于您的环境限制了多播的使用,如果您没有提到或发现更多的限制,我也不会感到惊讶。例如,您是否了解防火墙或网络带宽限制?同样,DDS可以配置为处理这些事情,但您需要首先了解它们。

您能解释一下吗