【发布时间】:2023-12-31 20:55:01
【问题描述】:
我目前正试图弄清楚我编写的 DDS 应用程序。
我的作者和读者目前已启用可靠性,因此如果读者错过了一条消息,作者将重新发布该消息。我也在使用默认的多播,而不是使用单播来发现发布者和订阅者。
根据多播协议,我只使用端口7000 和7001 需要打开。然而,当我使用wireshark 进行分析时,我看到端口7010 和7011(单播)端口也是打开的。
经过一番挖掘,我发现了这个link,似乎要为读取器和写入器使用可靠性,您需要启用单播,这就是为什么单播端口也打开并被使用的原因。
是否真的必须启用单播才能可靠地传递消息?如果需要,为什么需要这样做,以及为什么多播不能执行此功能?
【问题讨论】:
-
我认为使用可靠协议时对单播的要求是一个实现细节。当然可以实现该协议,使得可靠性消息(Heartbeat 和 AckNack)通过多播传送;但这可能不是大多数情况下的最佳配置。
-
@CTucker 说了什么。
标签: publish-subscribe multicast data-distribution-service unicast