摘要:P2P已經徹底統治了當今的Internet,然而,P2P病毒防御技術的研究卻相對滯后,如果P2P網絡病毒大規模爆發,其影響和破壞將是巨大的。針對病毒文件的傳播,充分考慮網絡的諸多因素,如:用戶到達率,在線(共享)時間,網絡節點免疫力等對病毒文件傳播的影響,并通過P2P網絡仿真工具-PeerSim進行仿真分析。
關鍵詞:P2P網絡,PeerSim,仿真設計,Napster
1 引言
P2P網絡作為一種分布式網絡應用,它的用戶共享著各自所擁有的資源,以達到資源的擴大化及信息交流的自由化。P2P網絡中的用戶通過向P2P網絡發布自己的資源信息,并通過網絡所提供的服務,能讓其他對等節點(Peer)直接訪問而無需經過中間實體(也說是傳統c/s模式中的服務器)。在P2P網絡中,用戶既是資源的提供者(server),電是資源的獲得者(client)。P2P技術打破傳統c/s模式,充分發揮網絡當中每個節點的能力,讓每個節點的地位是對等的,不僅能提供隱私保護與匿名通信,還能提高網絡的健壯性和抗毀性[1-3]。本文主要且綜合考慮各種因素(如:下載時間,到達率,在線時間以及網絡免疫力等)對病毒傳播的影響,通過仿真實驗,系統地得出相應的數據圖,并對得到的數據圖進行分析研究。
2 P2P網絡仿真協議及仿真工具的介紹
由于本論文的課題是基于在線時間(共享時間)異常的P2P網絡病毒發現與傳播抑制研究。因此,我們如何實時地收集用戶節點的在線時間(共享時間)將會是關健所在,這將涉及到我們P2P網絡仿真協議的選擇。由P2P網絡介紹所知,我們可以選擇Napster協議作為P2P仿真所需的協議,因為,根據RFC文檔對Napster協議的介紹,Napster網絡中是有一個中心服務器(就是我們平時所說的tracker),因此我們就可以從該服務器當中,實時地獲得我們所需的用戶節點的在線時間(共享時間)數據[4]。
Napster網站是一個服務器機群。每個服務器保存一部分用戶的共享文件索引信息,所有的服務器互聯、整合起來對網站外面的Napster用戶提供統一的訪問接口,在每個用戶看來他們訪問的都是同一個服務器。每個Napster用戶連接到機群中的一臺服務器,他將愿意與其他用戶共享的文件信息發送給服務器,服務器記錄這些信息以及該用戶的位置(覆蓋網絡中的位置),并將它們做成一條索引添加到原有索引表中。當用戶想要查詢一個文件時,首先將“查詢\"消息發送給與其相連的服務器,該服務器收到Q以后,與其他服務器協作處理查詢消息,處理完成后將“回復”返回給用戶,這條信息包含一個表單,列出所有查到的匹配文件的索引。收到R以后,用戶在表單中選擇他想要的文件,根據文件索引中對應的位置與其他用戶直接建立連接下載文件。
P2P網絡仿真工具-PeerSim相關內容分析如下。在PeerSim的框架中,先通過調用Simulator類讀取配置文件中的初始化信息(如:節點數、仿真運行的循環數等),控制類(如:init類,contr01類等)。具體的步驟如下:(1)選擇一個網絡規模(通過配置文件中的network.size語句設定網絡節點數)(2)選擇一個或多個協議(通過在配置文件中的protoc01前綴引入相應的協議類)進行實驗,并對它們進行初始化(3)選擇一個或多個的控制類(通過在配置文件中的control前綴引入相應的協議類)來對仿真實驗過程實施控制與數據的紀錄工作。(4)調用Simulator類,進行仿真實驗。實驗過程中所創建的對象都是通過實現一個或多個接口來完成相應的功能的
PeerSim的程序調度過程主要包括以下幾個方面:(1)PeerSim會通過仿真程序的主函數simulation.java中的main()讀取仿真實驗執行的次數(通過配置文件中的simulation.experiments設置)。(2)通過函數getSimID()來判斷PeerSim的模擬引擎是使基于循環驅動的(CDSimulator)還是基于事件驅動的(EDSimulator);具體是通過讀取配置文件中是否含有相應的參數來決定。如果配置文件中配置了參數simulation.cycles則使用基于循環驅動的模擬引擎;如果配置文件中配置了參數simulation.endtime則使用基于事件驅動的模擬引擎。(3) 過上述第二步的模擬引擎判斷后,就可以進行相應的模擬引擎的主函數進行相應的操作。如果是使用CDSimulator模擬引擎的,則進入方法體CDSimulator.nextExperiment()進行讀取相應的初始化類、控制類與協議類等操作,然后按照讀取配置文件的信息進行相應的仿真操作;如果使用EDSimulator模擬引擎,則進行方法體EDSimulator.nextExperiment()進行相應的操作。
3 P2P網絡病毒傳播仿真分析
通過介紹,我們已經合理地架構了仿真實驗所需的開發平臺以及相應的P2P協議。在這一節里,將選擇相應的條件參數,進行具體的編程。在本論文中,選擇了Napster協議作為P2P網絡仿真的協議,并針對用戶下載時間、到達率、在線時問以及用戶對病毒的免疫力等參數,對病毒傳播的影響進行了比較深入的分析。因為網絡仿真實驗當中選擇了基于PeerSim的循環模式(設PeerSim每執行一個循環(cycle)為一個單位時間,這里我們選擇每一單位時間的時間長為2分鐘,即1 cycle=2 min)進行仿真實驗;所以,我們要對仿真實驗當中出現的時間進行取整化、離散化。
3.1 下載時間對病毒傳播的影響
用戶的下載時間取決于自己以及所連接種子的帶寬,因此有必要了解一下在真實網絡當中用戶各自的帶寬情況,并根據該數據設定相應的仿真實驗參數值,仿真得到的數據才真實可靠。
我們就可以設定實驗條件:網絡節點數為5000,PeerSim執行仿真的循環數為400,進行仿真實驗,得到的數據圖如圖1所示。它是在不同下載時間情況下,下載時間對病毒傳播的影響,其中(1,2,3)代表下載時間的三個等級,縱坐標表示感染的節點數,橫坐標表示PeerSim執行的循環數。
從上圖分析可知,在下載文件時間比較長的情況下(下載時間的三個等級為(10,20,30)的情況下),會對病毒傳播前期產生影響,但隨著時間的推移,這種影響會慢慢減弱;當下載時間比較短的情況下,如下載時間三個等級為(1,2,3)的情況下,基本上對病毒傳播沒什么影響。
3.2 到達率對感染率的影響
對一個真實的P2P網絡來說,它可提供的文件信息是海量的,有些文件剛發布不久,是很熱門的,很多用戶想下載;有些文件發布已經很久了,用戶的需求比較少,因此相應也就比較少人下載;針對這一點,仿真實驗當中要涉及文件流行度的問題,這里可以用針對每個文件,在每一個單位時間內,到達率多少來衡量。
假設1:網絡節點數為5000,PeerSim執行仿真的循環數為400;一開始的源文件是病毒文件。圖3—5中的cycle表示PeerSim執行的循環數,nodes表示感染節點的個數。
由圖2可知,當到達率比較大的情況下(如:到達率大于150后),到達率的對感染率的影響已經不太重要,網絡將會在60個單位時間(120分鐘)內,達到9096多的感染率;同時,當到達率大于50后,網絡的最終感染率在800分鐘(400 cycle)內,將會達到100%。
假設2:網絡節點數為5000,PeerSim執行仿真的循環數為400;病毒是從下載過程中,從其它節點是感染的,而不是一開始的源文件是有病毒的。圖3中縱坐標表示感染的節點數,橫坐標表示PeerSim執行的循環數:并且假設網絡當中具有一定比例的節點對病毒沒有免疫能力(易染節點),即只要該節點為初始化節點集的一員,那么只要該節點下載文件,則認為該節點已經被染毒了。由圖3可知,當初始化的易染節點的比例大于40%以后,易染節點所占網絡節點數的比例,對病毒傳播的影響已經不那么顯著,對網絡感染率的影響已經沒有當易染節點比例小于40%那么顯著,只在小范圍內影響網絡的感染率。
3.3在線時間對網絡感染率的影響
P2P網絡系統當中,用戶是不可能一直在線的,當用戶的下載任務完成后,用戶應該會在隨后的時間內離開系統,不再參與共享文件。因些,在線時間是將會是影響病毒傳播的另一重要參數。可以通過仿真程序,引入相應的初始化類來初始化網絡當中節點的在線時間,圖4是仿真實驗得到的數據圖,圖中的縱坐標表示感染的節點數,橫坐標表示PeerSim執行的循環數。
由圖4可見,在線時間對傳播的影響是比較嚴重的。我們可以設想在線時間比較短時,下載文件的大小應該比較小。其中,E(x)的單位為單位時間的個數(即多少個cycle)。我們設1個單位時間長為2分鐘(1 cycle=2 min),網絡的總節點數為5000,PeerSim執行仿真的循環數為400。
由圖4所示,針對流行度比較高的情況(到達率為100),隨著在線時間的增加,網絡的最終感染率將會快速的提高,網絡最終感染率快速提升的區間為:在線時間均值在(O,100)內。并且當在線時間均值大于150個單位時間以后,網絡的最終感染率已經很接近10096了,因此,再增加在線時間均值,對網絡的最終感染率影響已經不大了。
并且,根據圖4所提到的Napster用戶的在線時間情況(超過50%的用戶在線時間小于1小時(60分鐘=30個單位時間),我們可以設想,當用戶的到達率小于20時,我們不做任何防范措施,依靠網絡自身的自愈能力,網絡將自我修復(這里我們假設網絡的自愈力為10%,其中網絡自愈力的定義為:當網絡發生失效時,網絡依靠自身的冗余度、調整網絡拓撲以及網絡自身的智能性,在不需要人工干預的情況下,能進行自我修復)當用戶的到達率大于20以后,我們通過設計的檢測器,對用戶的在線時間實行統計分析。對這些用戶的在線時間進行統計分析,來決定是否采取措施來抑制病毒傳播。
3.4 節點對病毒的刪除率(免疫力)
本論文中免疫力的定義為:P2P網絡中節點的操作系統能對病毒的入侵行為具有防御能力,能及早地發現病毒,并對病毒進行有效地查殺的能力。一個真實的網絡是對病毒具有一定的防御能力的。因此,我們所研究的網絡是具有一定病毒防御能力的P2P網絡。為了得到一定的網絡防御能力,我們設想把P2P下載工具與病毒進行相關聯,讓殺毒軟件能對P2P下載工具所下載的文件進行及時的查殺毒處理。因此,我們可以設定一定的網絡免疫能力,并隨機地初始化網絡當中的節點是否具有對該病毒的查殺能力。當免疫節點下載該文件時,能及時地對剛下載的文件進行查殺毒;并且如果文件有毒,能及時把文件從系統中刪除。
通過比較發現,網絡節點的刪除率對病毒文件傳播的影響是很大的,當網絡具有比較高的刪除率時,病毒將受到比較強的抑制,如:當網絡的刪除率大于85%以后,網絡節點的感染率會控制在10%以內。我們假設網絡自身的自愈能力為1096,當網絡中節點對病毒的刪除率大于85%以后,我們不用做任何處理,依靠網絡自身的愈能力,就能進行自我的修復。
4 結語
并且通過仿真所得的數據圖發現,我們如果想控制網絡的病毒感染率,用戶的在線時間,網絡的刪除率與用戶的到達率將會是關健所在。但用戶的到達率是人的行為,P2P網絡中的tracker是無法控制的;同樣,網絡的刪除率也是P2P網絡自身無法控制。因此,抑制病毒傳播的重點就在于通過定位病毒文件,并使系統對該病毒文件進行相應的隔離,從而減少別的用戶連接到受感染節點的機率,達到有效地抑制病毒傳播的目的
參考文獻:
[1] 田春岐, 江建慧, 胡治國, 等. 一種基于聚集超級節點的P2P網絡信任模型[J]. 計算機學報, 2010,33(2): 1602-1616.
[2] 代戰鋒, 溫巧燕, 李小標. 基于分布式PKI的P2P網絡認證技術[J]. 電子學報, 2009,37(11):2561-2564.
[3] 馮朝勝, 秦志光, 勞倫斯#8226;庫珀特, 等. P2P網絡中沉默型蠕蟲傳播建模與分析[J]. 計算機研究與發展, 2010,47(3): 500-507.
[4] 王一煒, 楊可揚. 淺談P2P技術[J]. 忻州師范學院學報, 2007,23(5): 43-46.
作者簡歷
鄭景 單位:福建江夏學院 信息技術系通訊地址:福建福州鼓樓區江厝路70號省直湖前小區17-308 郵編:350012聯系電話:15859087139電子信箱:1160714207@qq.com