top
Loading...
Java對等計算實踐:基于IP多播的發現

要完成有用的工作,P2P 應用程序中的對等點必須能夠彼此發現對方并與對方交互。本文提供了一種基于 IP 多播的發現的實現。

在軟件實體能夠參與具有 P2P 應用程序特征的直接的對等交互之前,該實體必須發現將要與之交互的適當的對等點。所有可行的 P2P 體系結構都提供一種針對發現問題的解決方案。在本文我將描述其中一種機制的實現。讓我們通過回顧來開始今天的討論。再訪發現 對等點發現使 P2P 應用程序中的對等點能夠彼此定位以便相互之間可以交互。實現對等點發現服務有多種方法。最簡單的機制是顯式點到點配置。這種機制通過要求每個對等點知道所有它可能與之交互的其它對等點,并與它們相連,來進行工作。點到點配置的主要優點是簡單。它的主要缺點是缺乏靈活性并且缺少擴展到對等點的大型網絡的能力。

發現的另一個公共模型是使用中央目錄作為中介。該模型在許多傳統的、非 P2P 分布式類型的應用程序中間很流行,其優點是很好理解。對等點向中央目錄注冊自己的存在,并使用中央目錄定位其它對等點。這種模型的主要優點是易于管理和擴展的能力。但是,其集中化設計會導致單點故障,因此它對自然力或網上沖浪人數增加所帶來的危害缺乏抵御能力。

許多流行的 P2P 應用程序使用網絡模型而不是中央目錄,在網絡模型中,單個對等點只知道局域網絡上的對等點身份。每個對等點都作為那些與之相連的對等點的目錄。對等點通過向相鄰對等點傳播目錄查詢并返回相關的響應來進行合作。這種模型的主要優點是沒有集中化。它的主要缺點是由于傳播查詢耗費了大量的網絡和處理能力。

上面三種機制有無數種變體。不討論這些變體了,讓我們繼續前進并研究另一種發現機制。

IP 多播發現

就每個對等點維護自己的目錄這點而言,多播模型類似于網絡模型。但是,對等點不通過合作來實現大規模網絡查詢。另外,對等點利用網絡本身提供的特性(IP 多播)來定位和標識其它對等點。

IP 多播是無連接和不可靠的(不象 TCP/IP 是面向連接和可靠的)。雖然它使用 IP 數據報;但是不象單播 IP 數據報那樣是從一臺主機發送到另一臺主機,多播 IP 數據報可以同時發往多臺主機。

對等點定期使用 IP 多播來宣布自己的存在。宣布包含了它們的主機名和一個用于正常通信的端口。對此消息感興趣的對等點檢測這個消息后,抽取出主機名和端口號,并使用該消息建立一個通信通道。

回顧已經足夠了。讓我們開始研究代碼吧。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗