發布時間:2023-01-05 文章來源:深度系統下載 瀏覽:
網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 要完成有用的工作,P2P 應用程序中的對等點必須能夠彼此發現對方并與對方交互。本文提供了一種基于 IP 多播的發現的實現。 在軟件實體能夠參與具有 P2P 應用程序特征的直接的對等交互之前,該實體必須發現將要與之交互的適當的對等點。所有可行的 P2P 體系結構都提供一種針對發現問題的解決方案。在本文我將描述其中一種機制的實現。讓我們通過回顧來開始今天的討論。再訪發現 對等點發現使 P2P 應用程序中的對等點能夠彼此定位以便相互之間可以交互。實現對等點發現服務有多種方法。最簡單的機制是顯式點到點配置。這種機制通過要求每個對等點知道所有它可能與之交互的其它對等點,并與它們相連,來進行工作。點到點配置的主要優點是簡單。它的主要缺點是缺乏靈活性并且缺少擴展到對等點的大型網絡的能力。 發現的另一個公共模型是使用中央目錄作為中介。該模型在許多傳統的、非 P2P 分布式類型的應用程序中間很流行,其優點是很好理解。對等點向中央目錄注冊自己的存在,并使用中央目錄定位其它對等點。這種模型的主要優點是易于管理和擴展的能力。但是,其集中化設計會導致單點故障,因此它對自然力或網上沖浪人數增加所帶來的危害缺乏抵御能力。 許多流行的 P2P 應用程序使用網絡模型而不是中央目錄,在網絡模型中,單個對等點只知道局域網絡上的對等點身份。每個對等點都作為那些與之相連的對等點的目錄。對等點通過向相鄰對等點傳播目錄查詢并返回相關的響應來進行合作。這種模型的主要優點是沒有集中化。它的主要缺點是由于傳播查詢耗費了大量的網絡和處理能力。 上面三種機制有無數種變體。不討論這些變體了,讓我們繼續前進并研究另一種發現機制。 IP 多播發現 就每個對等點維護自己的目錄這點而言,多播模型類似于網絡模型。但是,對等點不通過合作來實現大規模網絡查詢。另外,對等點利用網絡本身提供的特性(IP 多播)來定位和標識其它對等點。 IP 多播是無連接和不可靠的(不象 TCP/IP 是面向連接和可靠的)。雖然它使用 IP 數據報;但是不象單播 IP 數據報那樣是從一臺主機發送到另一臺主機,多播 IP 數據報可以同時發往多臺主機。 對等點定期使用 IP 多播來宣布自己的存在。宣布包含了它們的主機名和一個用于正常通信的端口。對此消息感興趣的對等點檢測這個消息后,抽取出主機名和端口號,并使用該消息建立一個通信通道。 回顧已經足夠了。讓我們開始研究代碼吧。 簡單的客戶機與服務器 我們將從一個簡單的示例開始,該示例演示了兩個進程如何使用 IP 多播進行通信。為了簡化演示,我將分別從客戶機和服務器進程這兩個方面來介紹示例。P2P 應用程序通常會實現這兩個進程,將它們劃分為客戶機或服務器并不容易。 在本例中,服務器進程進行循環并等待數據報包的到來。每接收到一個包,服務器就會向控制臺打印一條簡短的診斷消息。客戶機角色要簡單得多 — 它多播單個數據報包并退出。 清單 1 和 2 說明了這兩部分是如何組合在一起的。代碼中的注釋說明了正在發生的事情。 清單 1. 簡單服務器 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |