2013-02-14 50 views
0

有一個問題我無法找到的解決方案:如何識別純對等系統中的節點?

如何識別在一個純粹的對等節點以對等方都 運行同一應用程序Foobar的系統?

enter image description here

在上面的圖片,讓我們假設所有節點運行的是基於pure peer to peer networking相同的應用程序。

注:我這個標記在Java中,因爲這是語言我要工作爲由那些已經在做,圖書館的名稱with.Instead,請解釋一下我的算法/辦法,我該怎麼辦搜索。我想了很多,但沒有明白如何進行搜索?爲了瞭解什麼是純p2p系統,我想編寫一個基於p2p系統的小應用程序,它可以是一個簡單的聊天應用程序。

回答

0

這取決於您的應用程序的規模。在局域網上,這很簡單:你廣播你的存在(通常通過預定的多播地址)。

在更大的Internet上,路由器阻止廣播和多播流量,所以無法宣佈您的存在。相反,你至少需要一個同伴作爲種子,才能發現其他人。當每個同伴都瞭解他人時,他們就會與他們交流知識。

1

如果您在詢問如何找到節點,那麼這是目錄服務的用途 - 節點在這些服務器上註冊自己。

如果您詢問應如何命名節點 - GUID工作正常,或者您可以再次使用目錄服務進行命名。

+0

能否請您詳細說明你的答案。我還沒完全理解它 – 2013-02-15 03:14:01

+0

@SuhailGupta首先,您需要在問題中定義「識別」單詞的含義。你需要找到節點或名稱節點嗎? – 2013-02-15 07:25:03

+0

查找運行相同應用程序的節點 – 2013-02-15 08:17:54

0

如上目錄服務提的是流行的P2P網絡,如洪流網絡等

更多的「純粹」的P2P,你可以閱讀關於Gnutella項目。

...在初次啓動時,客戶端軟件必須引導並至少找到一個其他節點。爲此,已經使用了各種方法,包括軟件附帶的可能工作節點的預先存在地址列表,使用已知節點的更新Web緩存(稱爲Gnutella Web緩存),UDP主機緩存,甚至很少使用甚至IRC。

一些其他的解決方案可能涉及組播爲同一網絡P2P