專利名稱:基于互反饋結構的分布式特定點對點網絡主動探測方法
技術領域:
本發明涉及一種對特定點對點網絡實施探測的方法,更具體的是對特定點對點網絡實施主動爬行和測量的方法。
背景技術:
點對點(P2P)網絡的出現在很大程度上改變了互聯網的發展模式,許多網絡應用程序依托P2P網絡技術得到迅猛發展。目前,P2P應用技術主要有如下4類P2P文件共享技術、P2P實時通信技術、P2P協同計算技術以及P2P流媒體傳輸技術。其中P2P文件共享技術的應用最為廣泛。P2P文件共享技術如同一把雙刃劍,在給hternet用戶共享資源帶來方便的同時,也給網絡運營商和內容提供商帶來了棘手的挑戰。同時,P2P文件共享技術對用戶共享的內容缺乏有效的管理,大量的影音文件被非法傳播,給內容提供商帶來了巨大的經濟損失。近年來,關于封殺P2P的呼聲此起彼伏。但是,簡單的封殺并不能最終解決問題,最終需要實現對P2P網絡的有效管理,抑制其弊端,發揚其長處。利用網絡測量技術從不同角度對P2P文件共享網絡進行全面的測量和分析是實現對P2P網絡有效管理的重要前提,值得深入研究解決。P2P網絡測量是建立在進行P2P流量監控和網絡行為學分析的基礎上的。根據測量方式的不同,P2P網絡的測量方法可以分為被動測量方法和主動測量方法兩種。現有測量方式大多采用被動測量方法,被動測量方法屬于非侵擾性的,既不會增加網絡負載,也不會對Peer本身造成影響。該方法可以用于測量多種P2P應用,通用性較好。但無法深入了解P2P網絡行為,而且對測量設備的軟、硬件要求較高。此外,被動測量的基礎是對數據包進行檢測,隨著網絡流量的高速增長,如何實現準確、高效的實時測量則變得更加困難。主動測量方法能夠直接探測獲取P2P網絡的特征信息,具有可信度高、準確性好的特點。P2P網絡的主動測量方法是使用網絡爬蟲(Crawler)主動加入P2P網絡,獲取相關的網絡特性和對等體的屬性。該技術通過修改普通的P2P客戶端來進行P2P測量,Crawler 像普通節點一樣加入P2P系統,然后盡可能多地收集相關信息。這些信息通常包括Peer 的IP地址、端口號以及所有可以通過P2P協議獲取的元數據(metadata)信息。由于P2P網絡的動態特性,節點上下線頻繁,這要求測量系統具有較快的節點信息獲取速度。同時,網絡環境影響測量系統的性能,這使得單一的測量策略不能有效反映真實的對等網絡拓撲,需要新的測量方法。因此,采用主動爬蟲技術對P2P文件共享網絡行為進行測量是很有必要的,而且是一種準確、有效的方式。
發明內容
本發明所要解決的技術問題是,克服現有技術的缺點,提供一種可信度高,準確性好,并且具有較快的節點信息獲取速度的基于互反饋結構的分布式特定點對點網絡主動探測方法。為了解決以上技術問題,本發明提供基于互反饋結構的分布式特定點對點網絡主動探測方法,該方法采用客戶端/服務器結構的方式,包含如下步驟
(1)節點信息采集器初始化網絡入口文件,讀取文件中的靜態服務器地址,分別連接 eDonkey2000覆蓋網絡和kademlia覆蓋網絡,采集網絡中的服務器信息和網絡節點信息, 存入網絡信息數據庫;
(2)數據分析模塊提取網絡信息數據庫的信息進行處理,如果信息錯誤則刪除,如果信息正確,則保留;
(3)數據分析模塊提取網絡信息數據庫中服務器信息和節點信息,根據服務器當前所擁有的節點數對服務器進行排名,根據網絡連接的成功率對節點進行排名,并將排名信息發送給系統反饋模塊;
(4)系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合,生成新的網絡入口文件,循環步驟(1)進行主動探測。本發明進一步限定的技術方案是步驟(1)中所述的采集網絡中的服務器信息和網絡節信息采用多機并行的方法。進一步的,步驟(1)中采集網絡中的服務器信息和網絡節點信息使用網絡爬蟲 (Crawler)主動加入點對點網絡的方法,其中使用的網絡爬蟲(Crawler)包括基于ec^k協議實現的網絡爬蟲1 (crawlerl)、網絡爬蟲2 (craWler2)和基于kad協議實現的網絡爬蟲 3 (crawler3)。進一步的,所述的基于ec^k協議開發的網絡爬蟲1 (crawlerl)向服務器發送請求服務器列表請求,將服務器返回的服務器列表地址緩存入網絡信息數據庫中,不斷的更新網絡信息數據庫中服務器列表,同時將服務器中查詢到的共享文件索引數對應存入網絡信息數據庫。進一步的,所述的基于ec^k協議開發的網絡爬蟲2 (crawlerf)讀取網絡信息數據庫中的服務器地址信息,與ec^k網絡連接通信,讀取數據庫中文件名詞庫,選擇一個文件名詞庫,向服務器發送文件搜索請求,以獲得相關的共享文件的具體信息(文件hash值、 大小及源地址信息等),將服務器返回的文件信息和文件源地址信息,存入網絡信息數據庫中。進一步的,所述的基于kad網絡協議開發的網絡爬蟲3 (crawlerf)從網絡信息數據庫中讀取節點信息,將其作為引導節點,與kad網絡進行通信,采用廣度優先策略,不斷搜索 kad網絡中的新節點,并更新網絡信息數據庫中節點地址信息。進一步的,步驟(3)中數據分析模塊提取網絡信息數據庫中服務器信息和節點信息進行分析,對服務器信息進行排名后,將服務器IP地址與IP數據庫進行比對,分析服務器的地理分布狀況。進一步的,步驟(3)中數據分析模塊提取網絡信息數據庫中服務器信息和節點信息進行分析,對節點信息進行排名后,將節點IP地址與IP數據庫進行比對,分析節點的地理分布狀況。
進一步的,為了提高網絡信息采集的效率和準確率,步驟(4)中系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合的方法為,將步驟(3)中得到的服務器排名前十的服務器信息和節點排名前十的節點信息反饋給網絡入口節點集合。本發明的有益效果是本發明采用系統反饋的方式,可以解決單一測量策略不能有效反映真實的對等網絡拓撲的問題;同時,本發明為點對點網絡拓撲特性描述和分析、加強對等網絡監管、提高網絡利用率、優化點對點網絡應用等提供了一個技術平臺;另外,本發明可信度高,準確性好,并且具有高效精確的節點信息獲取速度。
圖1為本發明的工作流程圖2為本發明中網絡信息采集器的客戶端/服務器的結構圖; 圖3為本發明中采集網絡中的服務器信息和網絡節點信息的功能圖。
具體實施例方式本實施例提供的基于互反饋結構的分布式特定點對點網絡主動探測方法,該方法采用客戶端/服務器結構的方式,方法的流程圖如圖1所示,包含如下步驟
(1)節點信息采集器初始化網絡入口文件,讀取文件中的靜態服務器地址,分別連接 eDonkey2000覆蓋網絡和kademlia覆蓋網絡,采用多機并行的方法采集網絡中的服務器信息和網絡節點信息,存入網絡信息數據庫。其中,采集網絡中的服務器信息和網絡節點信息使用網絡爬蟲(Crawler)主動加入點對點網絡的方法,如圖3所示,使用的網絡爬蟲(Crawler)包括基于ec^k協議實現的網絡爬蟲1 (crawlerl)、網絡爬蟲2 (crawler2)和基于kad協議實現的網絡爬蟲3 (crawler3),網絡爬蟲的工作方法為
①網絡爬蟲1 (crawlerl)向服務器發送請求服務器列表請求,將服務器返回的服務器列表地址緩存入網絡信息數據庫中,不斷的更新網絡信息數據庫中服務器列表,同時將服務器中查詢到的共享文件索引數對應存入網絡信息數據庫。②網絡爬蟲2 (crawlerf)讀取網絡信息數據庫中的服務器地址信息,與ed2k網絡連接通信,讀取數據庫中文件名詞庫,向服務器發送文件請求,將服務器返回的文件信息和文件源地址信息,存入網絡信息數據庫中。③網絡爬蟲3 (crawlerf)從網絡信息數據庫中讀取節點信息,將其作為引導節點,與kad網絡進行通信,采用廣度優先策略,不斷搜索kad網絡中的新節點,并更新網絡信息數據庫中節點地址信息。(2)數據分析模塊提取網絡信息數據庫的信息進行處理,如果信息錯誤則刪除,如果信息正確,則保留。(3)數據分析模塊提取網絡信息數據庫中服務器信息和節點信息,根據服務器當前所擁有的節點數對服務器進行排名,根據網絡連接的成功率對節點進行排名,并將排名信息發送給系統反饋模塊。同時,將服務器IP地址與IP數據庫進行比對,分析服務器的地理分布狀況;將節點IP地址與IP數據庫進行比對,分析節點的地理分布狀況。
(4)系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合,調整方法為選取服務器排名前十的服務器信息和節點排名前十的節點信息,生成新的網絡入口文件,循環步驟(1)進行主動探測。本發明的方法采用客戶端/服務器的結構方式,如圖2所示,客戶端實現對eMule 網絡的主動探測功能,通過ec^k協議和kad協議實現與網絡中的服務器和節點通信,獲取拓撲信息;服務器端負責任務消息分配、任務隊列管理工作。除上述實施例外,本發明還可以有其他實施方式。凡采用等同替換或等效變換形成的技術方案,均落在本發明要求的保護范圍。
權利要求
1.基于互反饋結構的分布式特定點對點網絡主動探測方法,該方法采用客戶端/服務器結構的方式,其特征在于按以下步驟進行(1)節點信息采集器初始化網絡入口文件,讀取文件中的靜態服務器地址,分別連接 eDOnkey2000覆蓋網絡和kademlia覆蓋網絡,采集網絡中的服務器信息和網絡節點信息, 存入網絡信息數據庫;(2)數據分析模塊提取網絡信息數據庫的信息進行處理,如果信息錯誤則刪除,如果信息正確,則保留;(3)數據分析模塊提取網絡信息數據庫中服務器信息和節點信息,根據服務器當前所擁有的節點數對服務器進行排名,根據網絡連接的成功率對節點進行排名,并將排名信息發送給系統反饋模塊;(4)系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合,生成新的網絡入口文件,循環步驟(1)進行主動探測。
2.根據權利要求1所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,步驟(1)中所述的采集網絡中的服務器信息和網絡節點信息采用多機并行的方法。
3.根據權利要求1所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,步驟(1)中采集網絡中的服務器信息和網絡節點信息使用網絡爬蟲(Crawler) 主動加入點對點網絡的方法,其中使用的網絡爬蟲(Crawler)包括基于ec^k協議實現的網絡爬蟲Kcrawlerl )、網絡爬蟲2(crawler2)和基于kad協議實現的網絡爬蟲3(crawler3)。
4.根據權利要求3所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,所述的基于ec^k協議開發的網絡爬蟲1 (crawlerl)向服務器發送請求服務器列表請求,將服務器返回的服務器列表地址緩存入網絡信息數據庫中,不斷的更新網絡信息數據庫中服務器列表,同時將服務器中查詢到的共享文件索引數對應存入網絡信息數據庫。
5.根據權利要求3所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,所述的基于⑶業協議開發的網絡爬蟲2 (crawler2)讀取網絡信息數據庫中的服務器地址信息,與⑶業網絡連接通信,讀取數據庫中文件名詞庫,選擇一個文件名詞庫, 向服務器發送文件搜索請求,將服務器返回的文件信息和文件源地址信息,存入網絡信息數據庫中。
6.根據權利要求3所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,所述的基于kad網絡協議開發的網絡爬蟲3 (crawlerf)從網絡信息數據庫中讀取節點信息,將其作為引導節點,與kad網絡進行通信,采用廣度優先策略,不斷搜索kad網絡中的新節點,并更新網絡信息數據庫中節點地址信息。
7.根據權利要求1所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,步驟(3)中數據分析模塊提取網絡信息數據庫中服務器信息和節點信息進行分析,對服務器信息進行排名后,將服務器IP地址與IP數據庫進行比對,分析服務器的地理分布狀況。
8.根據權利要求1所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,步驟(3)中數據分析模塊提取網絡信息數據庫中服務器信息和節點信息進行分析,對節點信息進行排名后,將節點IP地址與IP數據庫進行比對,分析節點的地理分布狀況。
9.根據權利要求1所述的基于互反饋結構的分布式特定點對點網絡主動探測方法,其特征在于,步驟(4)中系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合的方法為,將步驟(3)中得到的服務器排名前十的服務器信息和節點排名前十的節點信息反饋給網絡入口節點集合。
全文摘要
本發明公開了一種基于互反饋結構的分布式特定點對點網絡主動探測方法,該方法采用客戶端/服務器結構的方式,包含如下步驟(1)節點信息采集器初始化網絡入口文件,讀取文件中的靜態服務器地址,與特定網絡通信,采集網絡信息,存入網絡信息數據庫;(2)數據分析模塊提取網絡信息數據庫的信息進行處理;(3)數據分析模塊根據服務器當前所擁有的節點數對服務器進行排名,根據網絡節點連接成功率對網絡節點進行排名,并將排名信息發送給系統反饋模塊;(4)系統反饋模塊根據服務器信息和節點信息調整網絡入口節點集合,循環步驟(1)進行主動探測。該方法可信度高,準確性好,并且具有較快的節點信息獲取速度。
文檔編號H04L29/06GK102316106SQ20111026336
公開日2012年1月11日 申請日期2011年9月7日 優先權日2011年9月7日
發明者周旭, 唐暉, 唐朝偉, 李俊, 杜欣慧, 肖健, 苗光勝 申請人:中國科學院聲學研究所, 南京天地同寬網絡技術有限公司