劉衍珩,唐伯浩,李松江,王愛民
(吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,長(zhǎng)春130012)
BitTorrent(BT)作為一種文件分發(fā)協(xié)議,解決了在傳統(tǒng)FTP、HTTP協(xié)議中占用過多服務(wù)器帶寬資源、下載者上行帶寬資源卻幾乎全部浪費(fèi)的問題,使同一資源的下載者之間可以進(jìn)行文件共享,極大地緩解了服務(wù)器的壓力。BT 網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)都扮演兩個(gè)角色:服務(wù)端、客戶端[1]。BT 下載與傳統(tǒng)的Client-Server結(jié)構(gòu)相比,具有以下幾個(gè)優(yōu)勢(shì):自擴(kuò)展性、可靠性、公平性以及成本低、效率高的特性[2]。隨著BT 網(wǎng)絡(luò)的發(fā)展,越來越多的人在使用BT 網(wǎng)絡(luò)下載資源時(shí)限制上傳帶寬,不愿上傳資源,這種行為就叫做free-riding行為。該行為占用其他節(jié)點(diǎn)的上傳帶寬,自己不提供或提供極少的上傳帶寬[3]。同時(shí),還有各種有害節(jié)點(diǎn)利用BT 協(xié)議的這一缺陷,對(duì)BT 網(wǎng)絡(luò)進(jìn)行攻擊[4-5]。激勵(lì)機(jī)制作為BT 網(wǎng)絡(luò)中的重要組成部分,可以在一定程度上鼓勵(lì)用戶上傳資源。但研究證明[6-8],基本的BT 協(xié)議不足以抵制freeriding行為。實(shí)現(xiàn)激勵(lì)機(jī)制還可以采用信任管理的方式,激勵(lì)機(jī)制下表現(xiàn)越好的節(jié)點(diǎn)擁有越高的信任度。在一定時(shí)間內(nèi),對(duì)節(jié)點(diǎn)i進(jìn)行資源上傳越多的節(jié)點(diǎn),i就越信任該節(jié)點(diǎn)。該信任僅僅表達(dá)了節(jié)點(diǎn)i對(duì)其的看法,不能正確體現(xiàn)該節(jié)點(diǎn)在BT網(wǎng)絡(luò)中的表現(xiàn)情況,文獻(xiàn)[9]提出局部信任值和全局信任值的概念。
針對(duì)free-riding行為,Ge等[10]提出通過給予每個(gè)新加入的節(jié)點(diǎn)足夠的啟動(dòng)時(shí)間,關(guān)閉optimistic unchoke機(jī)制。缺點(diǎn)是當(dāng)非新節(jié)點(diǎn)更新鄰居列表后,由于沒有啟動(dòng)時(shí)間,與新鄰居之間發(fā)生死鎖。Manoharan[11]提出“缺點(diǎn)策略”:資源上傳節(jié)點(diǎn)期待資源接受節(jié)點(diǎn)以一定的速率回饋資源,如果接受者沒有回饋?zhàn)銐虻馁Y源,上傳節(jié)點(diǎn)將永遠(yuǎn)拒絕向其發(fā)送數(shù)據(jù),這就存在如果某一節(jié)點(diǎn)在一段時(shí)間內(nèi)出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定的情況,即使之后網(wǎng)絡(luò)通暢,仍不能從已經(jīng)將其屏蔽了的節(jié)點(diǎn)處獲得資源的問題。陳綿書等[12]提出了改進(jìn)的基于推薦證據(jù)的P2P網(wǎng)絡(luò)信任模型,基于概率Gossip算法的證據(jù)搜索策略可以以較小的搜索成本獲得推薦證據(jù)。Bhakuni等[13]提出一種快速檢測(cè)具有free-riding行為節(jié)點(diǎn)的方法:如果節(jié)點(diǎn)在下載一定數(shù)據(jù)量α之后仍沒有任何數(shù)據(jù)上傳,則被認(rèn)為是有害節(jié)點(diǎn),不足之處在于如果該節(jié)點(diǎn)以極小速率上傳資源,則不會(huì)被識(shí)別,且不足以鼓勵(lì)節(jié)點(diǎn)分享資源。
本文采用經(jīng)過迭代計(jì)算的聲望值來表示某節(jié)點(diǎn)的全局信任值,對(duì)節(jié)點(diǎn)行為進(jìn)行評(píng)價(jià),鼓勵(lì)節(jié)點(diǎn)主動(dòng)上傳資源。
如果將BT 網(wǎng)絡(luò)中的資源傳輸行為看作是一種交易,那么現(xiàn)有的信任管理機(jī)制多是根據(jù)節(jié)點(diǎn)歷史交易行為對(duì)節(jié)點(diǎn)信任值進(jìn)行評(píng)估的,而對(duì)交易行為進(jìn)行統(tǒng)計(jì)和計(jì)算則成為信任機(jī)制中獲得節(jié)點(diǎn)信任值的主要方式。這些模型普遍過度依賴節(jié)點(diǎn)評(píng)價(jià)的真實(shí)性。但是存在這樣一種不誠(chéng)實(shí)的有害節(jié)點(diǎn)i,它像正常節(jié)點(diǎn)一樣,為所有節(jié)點(diǎn)提供上傳服務(wù),但是在從特定free-riding節(jié)點(diǎn)處獲得極少的資源后,對(duì)其給出過高的、不真實(shí)的信任評(píng)價(jià),使得這些free-riding節(jié)點(diǎn)的信任值虛高,不易被其他節(jié)點(diǎn)識(shí)別出來,影響B(tài)T 網(wǎng)絡(luò)的效率和穩(wěn)定性。所以,關(guān)注節(jié)點(diǎn)與哪些節(jié)點(diǎn)進(jìn)行了交易行為以及這些節(jié)點(diǎn)的信任值有多高是十分必要的。例如,一個(gè)節(jié)點(diǎn)經(jīng)常從信任值較低的節(jié)點(diǎn)處下載資源,并給出較高的評(píng)價(jià),有理由相信該節(jié)點(diǎn)很有可能是不誠(chéng)實(shí)節(jié)點(diǎn)。該方法可以暴露那些隱藏著的、不誠(chéng)實(shí)的有害節(jié)點(diǎn),如果不想使這些隱藏節(jié)點(diǎn)暴露,free-riding節(jié)點(diǎn)必須做出有效上傳,保證擁有一個(gè)可靠的信任值。
該方法的重要意義在于將free-riding節(jié)點(diǎn)和不誠(chéng)實(shí)節(jié)點(diǎn)關(guān)聯(lián)在一起,如果其中一部分沒有正常進(jìn)行資源上傳或提供真實(shí)評(píng)價(jià),則會(huì)使其他非正常節(jié)點(diǎn)暴露,從而達(dá)到將其與正常節(jié)點(diǎn)區(qū)分開的目的。
此外,即使節(jié)點(diǎn)做出同樣的資源上傳,獲得的信任評(píng)價(jià)也不應(yīng)完全相同。當(dāng)為一個(gè)聲望值較高的節(jié)點(diǎn)做出同樣流量的資源上傳時(shí),與為其他節(jié)點(diǎn)上傳相比,認(rèn)為該節(jié)點(diǎn)的這次上傳更有利于BT 網(wǎng)絡(luò)資源的分享,這是現(xiàn)有其他模型對(duì)交易量進(jìn)行計(jì)算時(shí)所忽略的地方。
在BT 網(wǎng)絡(luò)中,當(dāng)節(jié)點(diǎn)經(jīng)過一定數(shù)量的交易后,可以用帶權(quán)有向圖G =(V,E,W)來表示節(jié)點(diǎn)間的信任關(guān)系。其中,V 表示當(dāng)前網(wǎng)絡(luò)中的所有節(jié)點(diǎn);E={(i,j)|對(duì)于V 中的任意兩個(gè)不同節(jié)點(diǎn)i和j,i和j有過交易行為},表示節(jié)點(diǎn)間存在信任關(guān)系;W ={w|w =Rij},表示節(jié)點(diǎn)i對(duì)j的信任值。顯然,Rij的計(jì)算直接影響該模型的質(zhì)量。
每當(dāng)節(jié)點(diǎn)i從節(jié)點(diǎn)j下載一個(gè)piece,則認(rèn)為i和j產(chǎn)生了一次交易行為。如果i的下載是成功的并且獲得了需要的piece,那么這次交易就是成功的,否則就是失敗的。如果把所有成功和失敗的交易次數(shù)分別加在一起,記作s(i,j)和f(i,j),可以得到i對(duì)j 的直接信任值d(i,j)=s(i,j)-f(i,j)。通過統(tǒng)計(jì)直接信任值可以得出節(jié)點(diǎn)j 對(duì)于節(jié)點(diǎn)i的信任值比重b(i,j):
令Rij=b(i,j)或Rij=d(i,j),該方法可以對(duì)部分free-riding節(jié)點(diǎn)起到屏蔽作用,但僅體現(xiàn)了節(jié)點(diǎn)i對(duì)節(jié)點(diǎn)j的“個(gè)人”看法,不能體現(xiàn)節(jié)點(diǎn)j在整個(gè)網(wǎng)絡(luò)中的關(guān)鍵程度(本文認(rèn)為能夠提高整個(gè)BT 網(wǎng)絡(luò)下載速率的節(jié)點(diǎn)為關(guān)鍵節(jié)點(diǎn)),對(duì)不誠(chéng)實(shí)節(jié)點(diǎn)的欺騙行為很難做到較好的屏蔽。
如圖1所示,設(shè)節(jié)點(diǎn)1、2、3、4、7為正常節(jié)點(diǎn),節(jié)點(diǎn)6為隱藏的不誠(chéng)實(shí)節(jié)點(diǎn),即與正常節(jié)點(diǎn)一樣下載和上傳資源,節(jié)點(diǎn)5、8、9為free-riding節(jié)點(diǎn),在這里只為節(jié)點(diǎn)6 上傳少量資源換取虛高的評(píng)價(jià),不為整個(gè)網(wǎng)絡(luò)服務(wù)。節(jié)點(diǎn)5、8、9 可以通過optimistic unchoke機(jī)制從正常節(jié)點(diǎn)處獲得資源,然后發(fā)送給節(jié)點(diǎn)6,再從節(jié)點(diǎn)6那里獲得虛假的信任評(píng)價(jià),繼續(xù)從正常節(jié)點(diǎn)處下載資源。這顯然不利于BT 網(wǎng)絡(luò)的公平性,不能保證資源以最快速度在網(wǎng)絡(luò)中傳播。
圖1 有害節(jié)點(diǎn)與正常節(jié)點(diǎn)Fig.1 Malicious peers and honest peers
節(jié)點(diǎn)的交易行為并不局限于為其他節(jié)點(diǎn)進(jìn)行資源上傳以得到相應(yīng)的信任值,同時(shí)還下載其所需的資源并對(duì)其他節(jié)點(diǎn)做出信任評(píng)價(jià)。所以,在關(guān)注節(jié)點(diǎn)資源上傳的同時(shí),也需要關(guān)注該節(jié)點(diǎn)從哪些節(jié)點(diǎn)處獲得資源下載,這關(guān)系到該節(jié)點(diǎn)給出的評(píng)價(jià)是否可信。為了防止出現(xiàn)圖1 中freeriding節(jié)點(diǎn)與不誠(chéng)實(shí)節(jié)點(diǎn)通過發(fā)送極少的資源來實(shí)現(xiàn)合伙欺騙的情況,本文將信任值比重b(i,j)加入到信任管理模型當(dāng)中。
模型采用Ts(i)和Tf(i)分別代表節(jié)點(diǎn)i的“上傳信任值”以及“評(píng)價(jià)信任值”。對(duì)Ts(i)和Tf(i)遞歸定義如下:
由定義可以看出,當(dāng)j的評(píng)價(jià)信任值Tf(j)越高且j從i下載的資源占其總下載量的比例b(j,i)越高時(shí),Ts(i)的值越高,從而說明i提供相同的資源時(shí),評(píng)價(jià)可信度高的節(jié)點(diǎn)可以更多地影響Ts(i);當(dāng)j的上傳信任值Ts(j)越高且i從j下載的資源占其總下載量的比例b(i,j)越高時(shí),Tf(i)就越高,從而說明節(jié)點(diǎn)i與重要節(jié)點(diǎn)的交易行為更為密切,其評(píng)價(jià)可信度更高。Ts(j)和Tf(j)的值隨著時(shí)間在不斷地變化,逐步趨于穩(wěn)定。
為了模型穩(wěn)定,本文在Ts(i)和Tf(i)每次迭代運(yùn)算之前對(duì)Ts(i)和Tf(i)進(jìn)行標(biāo)準(zhǔn)化處理,保證其收斂性,必要的初始化操作使剛加入網(wǎng)絡(luò)的新節(jié)點(diǎn)能夠更公平地與其他節(jié)點(diǎn)競(jìng)爭(zhēng)資源。算法偽代碼如下所示:
1.for i from 1to n do
2.initialize(Tf(i))
3.initialize(Ts(i))
4.initialize(Rij)
5.end for
6.while(BT running correctly)do
7.for i from 1to n do
8.for j from 1to n do
9.Ts(i)=b(j,i)*Tf(j)
10.end for
11.end for
12.normalize(Ts(i))
13.for i from 1to n do
14.for j from 1to n do
15.Tf(i)=b(i,j)*Ts(j)
16.end for
17.end for
18.normalize(Tf(i))
19.Rij=α*b(i,j)+(1-α)*Ts(i)
20.end while
在屏蔽free-riding節(jié)點(diǎn)的同時(shí),還必須鼓勵(lì)正常節(jié)點(diǎn)更多地上傳自己擁有的資源,利用Rij=αb(i,j)+(1-α)Ts(i)的值作為在tit-for-tat中對(duì)節(jié)點(diǎn)排序的依據(jù)(這里,節(jié)點(diǎn)i為資源請(qǐng)求者),替代原算法中使用類似b(i,j)等簡(jiǎn)單依據(jù),其中α為屬于(0,1)的常量。在現(xiàn)有模型中,如果僅使用類似b(i,j)的值作為排序依據(jù),則沒有考慮到節(jié)點(diǎn)i 對(duì)整體網(wǎng)絡(luò)中的貢獻(xiàn)度。本文加入Ts(i)變量,將節(jié)點(diǎn)i對(duì)整個(gè)網(wǎng)絡(luò)的貢獻(xiàn)值納入考慮范圍,同時(shí)兼顧了節(jié)點(diǎn)i對(duì)當(dāng)前節(jié)點(diǎn)的“個(gè)人”看法。如果節(jié)點(diǎn)的“上傳信任值”或“評(píng)價(jià)信任值”有一個(gè)過低,則該節(jié)點(diǎn)為free-riding節(jié)點(diǎn)或不誠(chéng)實(shí)節(jié)點(diǎn)的可能性大大增加,所以應(yīng)在執(zhí)行optimistic unchoke機(jī)制時(shí),將這些節(jié)點(diǎn)排除在外,使其沒有繼續(xù)獲得資源、占用帶寬的資格。
該模型能夠有效使有害節(jié)點(diǎn)和正常節(jié)點(diǎn)分離,逐步形成分級(jí)。由于分級(jí)邊界的模糊性,使那些因與上傳信任值較低的節(jié)點(diǎn)有過交易而被誤認(rèn)為是不誠(chéng)實(shí)節(jié)點(diǎn)的節(jié)點(diǎn),或因從不誠(chéng)實(shí)節(jié)點(diǎn)處獲得較高評(píng)價(jià)而被誤認(rèn)為是free-riding節(jié)點(diǎn)的正常節(jié)點(diǎn)在離開這些有害節(jié)點(diǎn)后,可以繼續(xù)獲得下載資源的機(jī)會(huì)。
針對(duì)上述提出的模型,本文基于PeerSim 模擬器對(duì)該模型進(jìn)行仿真模擬。仿真環(huán)境參數(shù)設(shè)置如表1所示。
表1 仿真環(huán)境參數(shù)設(shè)置Table 1 Default value of parameters in simulation
在實(shí)驗(yàn)中,設(shè)置有500 個(gè)初始節(jié)點(diǎn),對(duì)一個(gè)500 MB文件進(jìn)行分享,模擬現(xiàn)實(shí)中2 個(gè)小時(shí)的下載,在分別擁有20%、40%以及60%的freeriding節(jié)點(diǎn)情況下,對(duì)是否使用該模型進(jìn)行對(duì)比,結(jié)果如圖2所示。
圖2 完成資源下載的節(jié)點(diǎn)數(shù)量Fig.2 Number of nodes which finish downloading
從圖2中不難發(fā)現(xiàn),對(duì)于free-riding節(jié)點(diǎn)比例越低的情況,使用該模型對(duì)下載速率的提高越大。因?yàn)樵撃P湍軌驅(qū)⒂泻?jié)點(diǎn)與正常節(jié)點(diǎn)隔離,當(dāng)free-riding節(jié)點(diǎn)比例過高時(shí),網(wǎng)絡(luò)中可上傳帶寬減小,即使將正常節(jié)點(diǎn)與有害節(jié)點(diǎn)隔離,由于正常節(jié)點(diǎn)數(shù)量過少,有害節(jié)點(diǎn)不斷占用與正常節(jié)點(diǎn)的連接,導(dǎo)致文件分享效率提高不大。3 種情況下平均用時(shí)分別減少17%、15%和2%。
如圖3所示,使用本模型后,free-riding節(jié)點(diǎn)的下載完成比例明顯降低,其中在擁有20%freeriding節(jié)點(diǎn)的情況下,有害節(jié)點(diǎn)的屏蔽效果不明顯是由于正常節(jié)點(diǎn)下載完成后將空閑的上傳帶寬分配給了free-riding節(jié)點(diǎn)。而圖2中使用本模型處理擁有20%free-riding節(jié)點(diǎn)的情況下,在5500 s左右時(shí)正常節(jié)點(diǎn)基本全部完成下載,有足夠的剩余帶寬為free-riding節(jié)點(diǎn)提供資源,使圖3中free-riding節(jié)點(diǎn)的完成比例上升。實(shí)驗(yàn)證明,該模型能夠有效防止在正常節(jié)點(diǎn)沒有完成下載時(shí)free-riding節(jié)點(diǎn)占用正常節(jié)點(diǎn)的下載帶寬,提高文件分享速率。
圖3 Free-riding節(jié)點(diǎn)下載完成比例Fig.3 Completion rate of free-riding nodes
如圖4所示,在擁有20%free-riding節(jié)點(diǎn)的情況下,當(dāng)不存在不誠(chéng)實(shí)節(jié)點(diǎn)時(shí),僅擁有上傳信任值的模型可以大幅提高文件分享的速率;當(dāng)存在不誠(chéng)實(shí)節(jié)點(diǎn)時(shí),僅擁有上傳信任值的模型對(duì)文件分享速率的提高十分有限,但本文提出的模型受不誠(chéng)實(shí)節(jié)點(diǎn)的影響較小,可以屏蔽掉不誠(chéng)實(shí)節(jié)點(diǎn)對(duì)BT 網(wǎng)絡(luò)的影響。
圖4 與僅有上傳信任值模型對(duì)比Fig.4 Compared with upload trust model
經(jīng)實(shí)驗(yàn)?zāi)M分析可知,該模型對(duì)女巫攻擊、勾結(jié)攻擊以及部分欺騙攻擊同樣具有一定的屏蔽效果。在保證500個(gè)正常節(jié)點(diǎn)的同時(shí),分別加入上述3 種有害節(jié)點(diǎn),使用該模型后,分別可以減少7%、12%以及5%的性能降低。
本文提出的模型能夠在一定范圍內(nèi)有效提高BT 網(wǎng)絡(luò)中的文件分享速度,減少節(jié)點(diǎn)的平均下載時(shí)間。在鼓勵(lì)用戶主動(dòng)上傳數(shù)據(jù)的同時(shí),有效屏蔽free-riding行為在內(nèi)的多種針對(duì)BT 網(wǎng)絡(luò)的攻擊,提升BT 網(wǎng)絡(luò)的穩(wěn)定性。但當(dāng)有害節(jié)點(diǎn)數(shù)量明顯多于正常節(jié)點(diǎn)時(shí),該模型雖然對(duì)BT 網(wǎng)絡(luò)性能提升不大,但對(duì)有害節(jié)點(diǎn)仍具有一定的屏蔽效果。
下一步研究工作將以本文成果為基礎(chǔ),提升有害節(jié)點(diǎn)多于正常節(jié)點(diǎn)情況下的系統(tǒng)性能,并實(shí)現(xiàn)對(duì)包括Lying-piece攻擊、Chatty-peer攻擊以及內(nèi)容污染攻擊在內(nèi)的多種現(xiàn)有針對(duì)BT 網(wǎng)絡(luò)的攻擊進(jìn)行屏蔽,進(jìn)一步提高BT 網(wǎng)絡(luò)的穩(wěn)定性與可用性,為用戶提供一個(gè)更好、更公平的資源分享平臺(tái)。
[1]Fan X,Li M,Ma J,et al.Behavior-based reputation management in P2Pfile-sharing networks[J].Journal of Computer and System Sciences,2012,78(6):1737-1750.
[2]Sarjaz B S,Abbaspour M.Securing BitTorrent using a new reputation-based trust management system[J].Peer-to-Peer Networking and Applications,2013,6(1):86-100.
[3]Shin K,Reeves D S,Rhee I.Treat-before-trick:Free-riding prevention for BitTorrent-like peer-topeer networks[C]∥Parallel &Distributed Processing,IEEE,2009:1-12.
[4]Gheorghe G,Cigno R L,Montresor A.Security and privacy issues in P2Pstreaming systems:a survey[J].Peer-to-Peer Networking and Applications,2011,4(2):75-91.
[5]Douceur J R.The Sybil Attack[M].Berlin:Springer Berlin Heidelberg,2002:251-260.
[6]Locher T,Moor P,Schmid S,et al.Free riding in BitTorrent is cheap[C]∥Proc Workshop on Hot Topics in Networks(HotNets),California,USA,2006:85-90.
[7]Piatek M,Isdal T,Anderson T,et al.Do incentives build robustness in BitTorrent[C]∥Proc of NSDI,Cambridge,2007:1-14.
[8]Levin D,LaCurts K,Spring N,et al.Bittorrent is an auction:analyzing and improving bittorrent's incentives[C]∥ACM SIGCOMM Computer Communication Review,ACM,2008,38(4):243-254.
[9]Shah P,ParisJF.Incorporating trust in the BitTorrent protocol[C]∥International Symposium on Performance Evaluation of Computer and Telecommunication Systems,San Diego,USA,2007:586-593.
[10]Ge T,Manoharan S.Mitigating free-riding on bittorrent networks[C]∥Digital Telecommunications(ICDT),2010 Fifth International Conference on,IEEE,2010:52-56.
[11]Manoharan S,Ge T.A demerit point strategy to reduce free-riding in BitTorrent[J].Computer Communications,2013,36(8):875-880.
[12]陳綿書,王世朋,陳賀新,等.改進(jìn)的基于推薦證據(jù)的對(duì)等網(wǎng)絡(luò)信任模型[J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2013,43(6):1666-1674.Chen Mian-shu,Wang Shi-peng,Chen He-xin,et al.Improved trust model based on recommendation evidence for P2Pnetworks[J].Journal of Jilin University(Engineering and Technology Edition),2013,43(6):1666-1674.
[13]Bhakuni A,Sharma P,Kaushal R.Free-rider detection and punishment in BitTorrent based P2P networks[C]∥ Advance Computing Conference(IACC),2014IEEE International,IEEE,2014:155-159.