2016-09-16 61 views
1

我目前正試圖找出有關我寫的一個DDS應用程序的內容。OMG DDS標準中可以使用可靠的消息傳遞多播嗎,還是需要單播?

我的作家和讀者目前有可靠性,所以如果讀者錯過了一條消息,作者將重新發布消息。我也使用默認多播,並且不使用單播來發現發佈者和訂閱者。

根據組播協議,我只使用端口70007001需要打開。但是,當我使用wireshark進行分析時,我看到端口70107011(單播)端口也處於打開狀態。

經過一番挖掘,我發現了這個link,看來要使用可靠性讀者和作家,你需要啓用單播,這就是爲什麼單播端口也打開和使用。

單播是否必須真正啓用郵件傳遞可靠,如果是這樣,爲什麼這需要,以及爲什麼不能組播這個功能?

+1

我認爲使用可靠協議時對單播的要求是一個實現細節。當然可以實現協議,以便可靠性消息(Heartbeat和AckNack)通過組播傳遞;但對於大多數情況來說,這可能不是最佳配置。 –

+1

@CTucker說。 –

回答

2

在這種情況下,發生的情況是大多數流量將通過MC發出。偶爾,可靠性協議會發送一條消息,實際上說,「我有可用的序號N到M」。每個讀者都會(並且這在不同的實現中是可調的)響應某些事物(通過單播!)「ok」或「我沒有得到x或z」。

如果只有一個讀者沒有得到x,那麼MC對於修復樣本x是沒有意義的,因爲只有一個讀者需要它。所以作者會將它單播給吱吱的讀者。

簡而言之,我可以花10個段落談論配置選項並調整行爲。

但是,是的,博士:預期的行爲。

+0

謝謝!這是我的想法,但我不想只是猜測技術報告。 – jgr208

相關問題