劉衍珩,唐伯浩,李松江,王愛民
(吉林大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,長春130012)
BitTorrent(BT)作為一種文件分發(fā)協(xié)議,解決了在傳統(tǒng)FTP、HTTP協(xié)議中占用過多服務(wù)器帶寬資源、下載者上行帶寬資源卻幾乎全部浪費的問題,使同一資源的下載者之間可以進(jìn)行文件共享,極大地緩解了服務(wù)器的壓力。BT 網(wǎng)絡(luò)中每一個節(jié)點都扮演兩個角色:服務(wù)端、客戶端[1]。BT 下載與傳統(tǒng)的Client-Server結(jié)構(gòu)相比,具有以下幾個優(yōu)勢:自擴(kuò)展性、可靠性、公平性以及成本低、效率高的特性[2]。隨著BT 網(wǎng)絡(luò)的發(fā)展,越來越多的人在使用BT 網(wǎng)絡(luò)下載資源時限制上傳帶寬,不愿上傳資源,這種行為就叫做free-riding行為。該行為占用其他節(jié)點的上傳帶寬,自己不提供或提供極少的上傳帶寬[3]。同時,還有各種有害節(jié)點利用BT 協(xié)議的這一缺陷,對BT 網(wǎng)絡(luò)進(jìn)行攻擊[4-5]。激勵機(jī)制作為BT 網(wǎng)絡(luò)中的重要組成部分,可以在一定程度上鼓勵用戶上傳資源。但研究證明[6-8],基本的BT 協(xié)議不足以抵制freeriding行為。實現(xiàn)激勵機(jī)制還可以采用信任管理的方式,激勵機(jī)制下表現(xiàn)越好的節(jié)點擁有越高的信任度。在一定時間內(nèi),對節(jié)點i進(jìn)行資源上傳越多的節(jié)點,i就越信任該節(jié)點。該信任僅僅表達(dá)了節(jié)點i對其的看法,不能正確體現(xiàn)該節(jié)點在BT網(wǎng)絡(luò)中的表現(xiàn)情況,文獻(xiàn)[9]提出局部信任值和全局信任值的概念。
針對free-riding行為,Ge等[10]提出通過給予每個新加入的節(jié)點足夠的啟動時間,關(guān)閉optimistic unchoke機(jī)制。缺點是當(dāng)非新節(jié)點更新鄰居列表后,由于沒有啟動時間,與新鄰居之間發(fā)生死鎖。Manoharan[11]提出“缺點策略”:資源上傳節(jié)點期待資源接受節(jié)點以一定的速率回饋資源,如果接受者沒有回饋足夠的資源,上傳節(jié)點將永遠(yuǎn)拒絕向其發(fā)送數(shù)據(jù),這就存在如果某一節(jié)點在一段時間內(nèi)出現(xiàn)網(wǎng)絡(luò)不穩(wěn)定的情況,即使之后網(wǎng)絡(luò)通暢,仍不能從已經(jīng)將其屏蔽了的節(jié)點處獲得資源的問題。陳綿書等[12]提出了改進(jìn)的基于推薦證據(jù)的P2P網(wǎng)絡(luò)信任模型,基于概率Gossip算法的證據(jù)搜索策略可以以較小的搜索成本獲得推薦證據(jù)。Bhakuni等[13]提出一種快速檢測具有free-riding行為節(jié)點的方法:如果節(jié)點在下載一定數(shù)據(jù)量α之后仍沒有任何數(shù)據(jù)上傳,則被認(rèn)為是有害節(jié)點,不足之處在于如果該節(jié)點以極小速率上傳資源,則不會被識別,且不足以鼓勵節(jié)點分享資源。
本文采用經(jīng)過迭代計算的聲望值來表示某節(jié)點的全局信任值,對節(jié)點行為進(jìn)行評價,鼓勵節(jié)點主動上傳資源。
如果將BT 網(wǎng)絡(luò)中的資源傳輸行為看作是一種交易,那么現(xiàn)有的信任管理機(jī)制多是根據(jù)節(jié)點歷史交易行為對節(jié)點信任值進(jìn)行評估的,而對交易行為進(jìn)行統(tǒng)計和計算則成為信任機(jī)制中獲得節(jié)點信任值的主要方式。這些模型普遍過度依賴節(jié)點評價的真實性。但是存在這樣一種不誠實的有害節(jié)點i,它像正常節(jié)點一樣,為所有節(jié)點提供上傳服務(wù),但是在從特定free-riding節(jié)點處獲得極少的資源后,對其給出過高的、不真實的信任評價,使得這些free-riding節(jié)點的信任值虛高,不易被其他節(jié)點識別出來,影響B(tài)T 網(wǎng)絡(luò)的效率和穩(wěn)定性。所以,關(guān)注節(jié)點與哪些節(jié)點進(jìn)行了交易行為以及這些節(jié)點的信任值有多高是十分必要的。例如,一個節(jié)點經(jīng)常從信任值較低的節(jié)點處下載資源,并給出較高的評價,有理由相信該節(jié)點很有可能是不誠實節(jié)點。該方法可以暴露那些隱藏著的、不誠實的有害節(jié)點,如果不想使這些隱藏節(jié)點暴露,free-riding節(jié)點必須做出有效上傳,保證擁有一個可靠的信任值。
該方法的重要意義在于將free-riding節(jié)點和不誠實節(jié)點關(guān)聯(lián)在一起,如果其中一部分沒有正常進(jìn)行資源上傳或提供真實評價,則會使其他非正常節(jié)點暴露,從而達(dá)到將其與正常節(jié)點區(qū)分開的目的。
此外,即使節(jié)點做出同樣的資源上傳,獲得的信任評價也不應(yīng)完全相同。當(dāng)為一個聲望值較高的節(jié)點做出同樣流量的資源上傳時,與為其他節(jié)點上傳相比,認(rèn)為該節(jié)點的這次上傳更有利于BT 網(wǎng)絡(luò)資源的分享,這是現(xiàn)有其他模型對交易量進(jìn)行計算時所忽略的地方。
在BT 網(wǎng)絡(luò)中,當(dāng)節(jié)點經(jīng)過一定數(shù)量的交易后,可以用帶權(quán)有向圖G =(V,E,W)來表示節(jié)點間的信任關(guān)系。其中,V 表示當(dāng)前網(wǎng)絡(luò)中的所有節(jié)點;E={(i,j)|對于V 中的任意兩個不同節(jié)點i和j,i和j有過交易行為},表示節(jié)點間存在信任關(guān)系;W ={w|w =Rij},表示節(jié)點i對j的信任值。顯然,Rij的計算直接影響該模型的質(zhì)量。
每當(dāng)節(jié)點i從節(jié)點j下載一個piece,則認(rèn)為i和j產(chǎn)生了一次交易行為。如果i的下載是成功的并且獲得了需要的piece,那么這次交易就是成功的,否則就是失敗的。如果把所有成功和失敗的交易次數(shù)分別加在一起,記作s(i,j)和f(i,j),可以得到i對j 的直接信任值d(i,j)=s(i,j)-f(i,j)。通過統(tǒng)計直接信任值可以得出節(jié)點j 對于節(jié)點i的信任值比重b(i,j):
令Rij=b(i,j)或Rij=d(i,j),該方法可以對部分free-riding節(jié)點起到屏蔽作用,但僅體現(xiàn)了節(jié)點i對節(jié)點j的“個人”看法,不能體現(xiàn)節(jié)點j在整個網(wǎng)絡(luò)中的關(guān)鍵程度(本文認(rèn)為能夠提高整個BT 網(wǎng)絡(luò)下載速率的節(jié)點為關(guān)鍵節(jié)點),對不誠實節(jié)點的欺騙行為很難做到較好的屏蔽。
如圖1所示,設(shè)節(jié)點1、2、3、4、7為正常節(jié)點,節(jié)點6為隱藏的不誠實節(jié)點,即與正常節(jié)點一樣下載和上傳資源,節(jié)點5、8、9為free-riding節(jié)點,在這里只為節(jié)點6 上傳少量資源換取虛高的評價,不為整個網(wǎng)絡(luò)服務(wù)。節(jié)點5、8、9 可以通過optimistic unchoke機(jī)制從正常節(jié)點處獲得資源,然后發(fā)送給節(jié)點6,再從節(jié)點6那里獲得虛假的信任評價,繼續(xù)從正常節(jié)點處下載資源。這顯然不利于BT 網(wǎng)絡(luò)的公平性,不能保證資源以最快速度在網(wǎng)絡(luò)中傳播。
圖1 有害節(jié)點與正常節(jié)點Fig.1 Malicious peers and honest peers
節(jié)點的交易行為并不局限于為其他節(jié)點進(jìn)行資源上傳以得到相應(yīng)的信任值,同時還下載其所需的資源并對其他節(jié)點做出信任評價。所以,在關(guān)注節(jié)點資源上傳的同時,也需要關(guān)注該節(jié)點從哪些節(jié)點處獲得資源下載,這關(guān)系到該節(jié)點給出的評價是否可信。為了防止出現(xiàn)圖1 中freeriding節(jié)點與不誠實節(jié)點通過發(fā)送極少的資源來實現(xiàn)合伙欺騙的情況,本文將信任值比重b(i,j)加入到信任管理模型當(dāng)中。
模型采用Ts(i)和Tf(i)分別代表節(jié)點i的“上傳信任值”以及“評價信任值”。對Ts(i)和Tf(i)遞歸定義如下:
由定義可以看出,當(dāng)j的評價信任值Tf(j)越高且j從i下載的資源占其總下載量的比例b(j,i)越高時,Ts(i)的值越高,從而說明i提供相同的資源時,評價可信度高的節(jié)點可以更多地影響Ts(i);當(dāng)j的上傳信任值Ts(j)越高且i從j下載的資源占其總下載量的比例b(i,j)越高時,Tf(i)就越高,從而說明節(jié)點i與重要節(jié)點的交易行為更為密切,其評價可信度更高。Ts(j)和Tf(j)的值隨著時間在不斷地變化,逐步趨于穩(wěn)定。
為了模型穩(wěn)定,本文在Ts(i)和Tf(i)每次迭代運算之前對Ts(i)和Tf(i)進(jìn)行標(biāo)準(zhǔn)化處理,保證其收斂性,必要的初始化操作使剛加入網(wǎng)絡(luò)的新節(jié)點能夠更公平地與其他節(jié)點競爭資源。算法偽代碼如下所示:
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é)點的同時,還必須鼓勵正常節(jié)點更多地上傳自己擁有的資源,利用Rij=αb(i,j)+(1-α)Ts(i)的值作為在tit-for-tat中對節(jié)點排序的依據(jù)(這里,節(jié)點i為資源請求者),替代原算法中使用類似b(i,j)等簡單依據(jù),其中α為屬于(0,1)的常量。在現(xiàn)有模型中,如果僅使用類似b(i,j)的值作為排序依據(jù),則沒有考慮到節(jié)點i 對整體網(wǎng)絡(luò)中的貢獻(xiàn)度。本文加入Ts(i)變量,將節(jié)點i對整個網(wǎng)絡(luò)的貢獻(xiàn)值納入考慮范圍,同時兼顧了節(jié)點i對當(dāng)前節(jié)點的“個人”看法。如果節(jié)點的“上傳信任值”或“評價信任值”有一個過低,則該節(jié)點為free-riding節(jié)點或不誠實節(jié)點的可能性大大增加,所以應(yīng)在執(zhí)行optimistic unchoke機(jī)制時,將這些節(jié)點排除在外,使其沒有繼續(xù)獲得資源、占用帶寬的資格。
該模型能夠有效使有害節(jié)點和正常節(jié)點分離,逐步形成分級。由于分級邊界的模糊性,使那些因與上傳信任值較低的節(jié)點有過交易而被誤認(rèn)為是不誠實節(jié)點的節(jié)點,或因從不誠實節(jié)點處獲得較高評價而被誤認(rèn)為是free-riding節(jié)點的正常節(jié)點在離開這些有害節(jié)點后,可以繼續(xù)獲得下載資源的機(jī)會。
針對上述提出的模型,本文基于PeerSim 模擬器對該模型進(jìn)行仿真模擬。仿真環(huán)境參數(shù)設(shè)置如表1所示。
表1 仿真環(huán)境參數(shù)設(shè)置Table 1 Default value of parameters in simulation
在實驗中,設(shè)置有500 個初始節(jié)點,對一個500 MB文件進(jìn)行分享,模擬現(xiàn)實中2 個小時的下載,在分別擁有20%、40%以及60%的freeriding節(jié)點情況下,對是否使用該模型進(jìn)行對比,結(jié)果如圖2所示。
圖2 完成資源下載的節(jié)點數(shù)量Fig.2 Number of nodes which finish downloading
從圖2中不難發(fā)現(xiàn),對于free-riding節(jié)點比例越低的情況,使用該模型對下載速率的提高越大。因為該模型能夠?qū)⒂泻?jié)點與正常節(jié)點隔離,當(dāng)free-riding節(jié)點比例過高時,網(wǎng)絡(luò)中可上傳帶寬減小,即使將正常節(jié)點與有害節(jié)點隔離,由于正常節(jié)點數(shù)量過少,有害節(jié)點不斷占用與正常節(jié)點的連接,導(dǎo)致文件分享效率提高不大。3 種情況下平均用時分別減少17%、15%和2%。
如圖3所示,使用本模型后,free-riding節(jié)點的下載完成比例明顯降低,其中在擁有20%freeriding節(jié)點的情況下,有害節(jié)點的屏蔽效果不明顯是由于正常節(jié)點下載完成后將空閑的上傳帶寬分配給了free-riding節(jié)點。而圖2中使用本模型處理擁有20%free-riding節(jié)點的情況下,在5500 s左右時正常節(jié)點基本全部完成下載,有足夠的剩余帶寬為free-riding節(jié)點提供資源,使圖3中free-riding節(jié)點的完成比例上升。實驗證明,該模型能夠有效防止在正常節(jié)點沒有完成下載時free-riding節(jié)點占用正常節(jié)點的下載帶寬,提高文件分享速率。
圖3 Free-riding節(jié)點下載完成比例Fig.3 Completion rate of free-riding nodes
如圖4所示,在擁有20%free-riding節(jié)點的情況下,當(dāng)不存在不誠實節(jié)點時,僅擁有上傳信任值的模型可以大幅提高文件分享的速率;當(dāng)存在不誠實節(jié)點時,僅擁有上傳信任值的模型對文件分享速率的提高十分有限,但本文提出的模型受不誠實節(jié)點的影響較小,可以屏蔽掉不誠實節(jié)點對BT 網(wǎng)絡(luò)的影響。
圖4 與僅有上傳信任值模型對比Fig.4 Compared with upload trust model
經(jīng)實驗?zāi)M分析可知,該模型對女巫攻擊、勾結(jié)攻擊以及部分欺騙攻擊同樣具有一定的屏蔽效果。在保證500個正常節(jié)點的同時,分別加入上述3 種有害節(jié)點,使用該模型后,分別可以減少7%、12%以及5%的性能降低。
本文提出的模型能夠在一定范圍內(nèi)有效提高BT 網(wǎng)絡(luò)中的文件分享速度,減少節(jié)點的平均下載時間。在鼓勵用戶主動上傳數(shù)據(jù)的同時,有效屏蔽free-riding行為在內(nèi)的多種針對BT 網(wǎng)絡(luò)的攻擊,提升BT 網(wǎng)絡(luò)的穩(wěn)定性。但當(dāng)有害節(jié)點數(shù)量明顯多于正常節(jié)點時,該模型雖然對BT 網(wǎng)絡(luò)性能提升不大,但對有害節(jié)點仍具有一定的屏蔽效果。
下一步研究工作將以本文成果為基礎(chǔ),提升有害節(jié)點多于正常節(jié)點情況下的系統(tǒng)性能,并實現(xiàn)對包括Lying-piece攻擊、Chatty-peer攻擊以及內(nèi)容污染攻擊在內(nèi)的多種現(xiàn)有針對BT 網(wǎng)絡(luò)的攻擊進(jìn)行屏蔽,進(jìn)一步提高BT 網(wǎng)絡(luò)的穩(wěn)定性與可用性,為用戶提供一個更好、更公平的資源分享平臺。
[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ù)的對等網(wǎng)絡(luò)信任模型[J].吉林大學(xué)學(xué)報:工學(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.