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