1
我正在寫一個需要在多臺機器上運行(每次3-4個)的軟件,並顯示相同的數據。可以從每臺機器修改數據,並且更改將立即發送到其他機器。用於多路通信的網絡協議
沒有中央服務器,但所有機器都很友善,並且位於同一個本地網絡上。
最重要的事情在這裏是(1)低延遲和(2)消息(總是能夠知道哪一個先)的串行化 - 基本上就是我在尋找我的一個聊天室,但程序的消息。什麼是最好的網絡協議來使用它?
我正在寫一個需要在多臺機器上運行(每次3-4個)的軟件,並顯示相同的數據。可以從每臺機器修改數據,並且更改將立即發送到其他機器。用於多路通信的網絡協議
沒有中央服務器,但所有機器都很友善,並且位於同一個本地網絡上。
最重要的事情在這裏是(1)低延遲和(2)消息(總是能夠知道哪一個先)的串行化 - 基本上就是我在尋找我的一個聊天室,但程序的消息。什麼是最好的網絡協議來使用它?
在第四層中,您將使用TCP來可靠地傳遞消息。如果你在談論3-4臺機器應該是好的。在TCP上面,你可以使用你自己的應用程序特定的協議。我不知道XMPP是否會讓你在分散的環境中工作。
您需要解決的一個問題是,所有人都以相同的順序看到消息。爲此,您可以使用矢量時鐘算法或某種方式解決衝突,以防兩個消息同時發送。
在局域網中,任何協議都應該適用於低延遲。
關於您需要的連接數量,這取決於您的設計。始終考慮少數幾個同伴:
你必須考慮的其他事情:團隊管理。你怎麼知道一個同伴離開了這個小組,或者一個新的同伴加入了這個小組?這是另一個考慮因素。
所以我會創建一個TCP連接從每臺機器到每臺機器?對於4臺機器,我必須同步12個連接,以確保它們都以相同的順序顯示相同的數據。 – configurator
我編輯了我的回覆來回答你的問題 – rodolk