首页 > 解决方案 > 具有多播和单播的 DDS 配置

问题描述

我仍在尝试了解 DDS 及其概念。我有一个配置,其中 2 台笔记本电脑运行基于 dds 的应用程序。我的环境不允许多播,所以我决定进行点对点连接(单播)。为了将两台笔记本电脑放在同一个网络中,我使用以太网电缆连接它们(不确定是否有必要)。

现在我没有更改 QoS 中的任何内容,即我没有为单播做任何设置。但现在我的应用程序正在相互通信。

问题 :

  1. 参与者是如何被发现的?多播?因为我没有为单播做任何设置。
  2. 如果我想使用单播,是否有必要将它们置于一个网络下,即用以太网电缆连接?

编辑 :

配置如下:

标签: multicastdata-distribution-serviceros2unicast

解决方案


开箱即用,DDS 需要支持多播和单播发现。匿名连接通过多播处理。如果您知道收件人的 IP 地址,您可以手动将这些地址配置到单播发现列表中(每个供应商都有自己的方式来命名/处理此列表)。

在大多数情况下,“我们的网络上不允许多播”意味着您的 IT 部门已在定义您的网络的结构的交换机(或多个交换机)上关闭了多播数据包转发。

但是,出厂时符合标准的 DDS 配置不了解此本地策略(怎么可能?)。如果您没有根据当地政策更改配置,DDS 参与者仍将尝试通过多播进行连接,因为您尚未将其关闭。

如果使用 DDS 的机器连接到同一个集线器或非托管交换机(此处定义为您的 IT 部门不关心或配置错误的交换机),并且网络拓扑不跨越托管交换机,并且他们使用默认配置,他们找到彼此,然后他们使用多播匿名发现

弄清楚如何配置您的 DDS 实现,以添加需要通信的机器的单播 IP 地址。因为发现通常只需要在一个方向上(如果 A 发现 B,那么 B 确实发现了 A,假设 A 和 B 都没有配置为忽略另一个 [1])。

一旦您配置了单播发现,您就可以配置为无组播。如果机器在 IP 跳跃网络(WiFi 等)上,除非 DDS 实现理解多路径,否则会很困难。与供应商交谈,看看是否是这种情况。

[1] 如果不是过度可配置,DDS 什么都不是。


推荐阅读