组播是否可以与OMG DDS标准中的可靠消息一起使用,还是需要单播?

时间:2016-09-16 14:51:36

标签: publish-subscribe multicast data-distribution-service unicast

我目前正试图弄清楚我写的DDS应用程序。

我的作家和读者目前具有可靠性,因此如果读者错过了一条消息,作者将重新发布该消息。我也使用默认的多播,而不是使用uni-cast来发现发布者和订阅者。

根据多播协议,我只使用端口70007001需要打开。但是,当我使用wireshark进行分析时,我发现端口70107011(单播)端口也是打开的。

经过一番挖掘后,我遇到了这个link,似乎要为读者和作者使用可靠性,你需要启用单播,这就是为什么单播端口也是开放和使用的。< / p>

是否必须真正启用uni-cast才能可靠地传递消息,如果是这样,为什么需要这样做,以及为什么多播不能执行此功能?

1 个答案:

答案 0 :(得分:2)

在这种情况下,发生的事情是大多数流量将通过MC传出。有时候,可靠性协议会发送一条消息,说明实际上&#34;我有序号N到M可用。&#34;

每个读者都会(并且在不同的实现中可以调整很多)用某些东西做回应(通过单播!)&#34; ok&#34;或者&#34;我没有得到x或z&#34;。

如果只有一个读者没有得到x,那么MC修复样本x是没有意义的,因为只有一个读者需要它。所以作者会将它单播给那个吱吱作响的读者。

简而言之,我可以花费另外10段来讨论配置选项和调整行为。

但是,是的,博士:预期的行为。