一種基于阻塞切換服務(wù)器的p2p下載算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種基于阻塞切換服務(wù)器的P2P下載算 法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的高速發(fā)展,用戶對互聯(lián)網(wǎng)的訪問質(zhì)量要求越來越高。在 P2P(peer-to-peer對等)網(wǎng)絡(luò)中。用戶下載文件的方式就是選擇帶寬性能最佳的節(jié)點(diǎn)服務(wù) 器。但是,P2P網(wǎng)絡(luò)的多變性導(dǎo)致服務(wù)器性能非常不穩(wěn)定,影響用戶的下載速度以及下載剩 余時(shí)間預(yù)估。在目前的研宄中,提升用戶下載速率的方式有在服務(wù)器性能下降時(shí)最大化利 用逐漸減小的帶寬,還有通過改變連接到的服務(wù)器的方法,選取最優(yōu)服務(wù)器下載。這兩種方 法實(shí)施的前提是采用計(jì)算平均下載速度方式對網(wǎng)絡(luò)進(jìn)行評估。
[0003] 在決定平均下載性能的時(shí)候研宄者們都有一個(gè)普遍的誤解,阻塞點(diǎn)一般在網(wǎng)絡(luò)的 自治系統(tǒng)的邊界產(chǎn)生。然而,在一篇文章(Bustamante,F.E.,&Qiao,Y.Friendshipsthat last:peerlifespananditsroleinP2Pprotocols. [J]proceedingsofthe8th internationalworkshopRetrieved11/28, 2007)中說明只有 40%的阻塞點(diǎn)發(fā)生在一個(gè) 自治網(wǎng)絡(luò)中。這些信息說明了P2P協(xié)議并不是依賴于節(jié)點(diǎn)的位置相近也不依賴于阻塞點(diǎn)解 決的。一個(gè)阻塞點(diǎn)可能會(huì)發(fā)生在下載過程中的整個(gè)網(wǎng)絡(luò)鏈路的任何地方。并且節(jié)點(diǎn)服務(wù)器 有可能會(huì)因?yàn)樽约贺?fù)載的增加而導(dǎo)致性能上的變化和網(wǎng)絡(luò)連接的變化。所以網(wǎng)絡(luò)帶寬的平 均性能計(jì)算和理想情況并不相同,對于用戶下載速度的改進(jìn)也在此遇到了瓶頸。
[0004] 有文獻(xiàn)(鄭煒民,胡進(jìn)鋒,代亞非等.對等計(jì)算研宄概論.[R]中國計(jì)算機(jī)學(xué)會(huì) 文集:中國計(jì)算機(jī)科學(xué)技術(shù)發(fā)展報(bào)告,2004 :121. 142)假設(shè)了用戶在下載過程中是隨機(jī)的 選擇新的節(jié)點(diǎn)服務(wù)器并定期進(jìn)行隨機(jī)的更換節(jié)點(diǎn)。而選擇新的節(jié)點(diǎn)服務(wù)器緩和了因?yàn)橛?戶駐留在性能不佳的節(jié)點(diǎn)服務(wù)器而造成的下載時(shí)間延長的問題。在文中,期望下載時(shí)間 IE(Tran)是由文件大小F和平均網(wǎng)絡(luò)性能來決定的,表示如公式(1):
[0005]
[0006] 在隨機(jī)的選擇節(jié)點(diǎn)服務(wù)器時(shí),連接狀態(tài)的變化雖然對用戶的下載速度不會(huì)產(chǎn)生影 響,但是在下載過程中,由于阻塞節(jié)點(diǎn)的產(chǎn)生會(huì)給網(wǎng)絡(luò)和節(jié)點(diǎn)服務(wù)器帶來更多的負(fù)擔(dān),并且 還會(huì)讓節(jié)點(diǎn)服務(wù)器降級。如果用戶一直連接在一個(gè)阻塞的服務(wù)器上,那么這些阻塞點(diǎn)將一 直存在。
[0007] 通過現(xiàn)有的研宄可以看出,現(xiàn)有的下載算法都不如基于時(shí)間周期轉(zhuǎn)換下載服務(wù)器 算法。并且在研宄基于時(shí)間周期轉(zhuǎn)換下載服務(wù)器算法的研宄者們還發(fā)現(xiàn)平均網(wǎng)絡(luò)性能并不 能精確的描述下載時(shí)間。因?yàn)樵谑褂闷骄W(wǎng)絡(luò)性能評估選擇算法時(shí)其下載時(shí)間度量使用單 一節(jié)點(diǎn)服務(wù)器的下載時(shí)間,影響整個(gè)度量精確性,或者用戶卡在某一個(gè)文件塊延長了下載 時(shí)間,從而對下載網(wǎng)絡(luò)帶寬的評估就會(huì)根據(jù)性能最差的節(jié)點(diǎn)服務(wù)器的平均值來計(jì)算。所以 根據(jù)平均網(wǎng)絡(luò)性能計(jì)算出的下載時(shí)間就會(huì)比預(yù)期的長很多。公式(2)就是的平均網(wǎng)絡(luò)性能 計(jì)算式:
[0008]
[0009] 在理想狀態(tài)下,一個(gè)大小為F的文件在平均帶寬為]的情況下,下載時(shí)間的確是 時(shí)間T。然而公式(2)忽略了一個(gè)問題,節(jié)點(diǎn)服務(wù)器的網(wǎng)絡(luò)帶寬性能在下載過程中是一直變 化的。導(dǎo)致這種節(jié)點(diǎn)服務(wù)器網(wǎng)絡(luò)帶寬不斷變化的原因有很多,包括一個(gè)現(xiàn)存連接到網(wǎng)絡(luò)的 節(jié)點(diǎn)服務(wù)器所接受的連接數(shù)量,根據(jù)節(jié)點(diǎn)服務(wù)器承載性能所作的流量限制,還有節(jié)點(diǎn)服務(wù) 器和用戶之間一般情況下存在的擁塞。根據(jù)對公式(2)的完整評價(jià)之后,提出要減少下載 時(shí)間,首先必須要能準(zhǔn)確的評估下載時(shí)間,所以本文提出了一個(gè)新的評估下載過程模型,這 個(gè)模型較公式(1-2)更為精確。
【發(fā)明內(nèi)容】
[0010] 針對現(xiàn)有技術(shù)存在的上述問題,本發(fā)明的目的是提供一種基于阻塞切換服務(wù)器提 升下載效率的P2P下載算法。
[0011] 為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:一種基于阻塞切換服務(wù)器的P2P下 載算法,包括如下步驟:
[0012]S1:用戶進(jìn)入網(wǎng)絡(luò)后,掃描得到整個(gè)網(wǎng)絡(luò)中用戶能連接上的節(jié)點(diǎn)所有服務(wù)器的帶 寬日志,然后采用公式(3)計(jì)算網(wǎng)絡(luò)中所有節(jié)點(diǎn)服務(wù)器的上傳平均帶寬CP:
[0013]
[0014] 其中,N表示用戶連接上的節(jié)點(diǎn)服務(wù)器的數(shù)量,Q表示用戶連接上的節(jié)點(diǎn)服務(wù)器的 上傳帶寬;
[0015]S2:將用戶待下載文件Q分解成若干固定大小的文件塊q」,j= 1,2, 3, . . .,N,N表 示構(gòu)成待下載文件的文件塊的總數(shù);
[0016]S3:當(dāng)用戶任意連接到一個(gè)節(jié)點(diǎn)服務(wù)器時(shí),開始下述網(wǎng)絡(luò)承載均值算法:
[0017] 1)設(shè)置用戶最多可連接節(jié)點(diǎn)服務(wù)器的數(shù)量P;
[0018] 2)搜索網(wǎng)絡(luò),遍歷每個(gè)擁有組成待下載文件的文件塊的所有節(jié)點(diǎn)服務(wù)器;
[0019] 3)判斷當(dāng)前用戶要下載的文件塊+是否下載完成,如果是返回步驟2),否則執(zhí)行 下一步;
[0020] 4)掃描當(dāng)前用戶能連接上的節(jié)點(diǎn)服務(wù)器,所有能連接上的節(jié)點(diǎn)服務(wù)器構(gòu)成服務(wù)器 池;
[0021] 5)判斷服務(wù)器池中每個(gè)節(jié)點(diǎn)服務(wù)器的上傳帶寬與上傳平均帶寬的CP的關(guān)系,所 有上傳帶寬小于上傳平均帶寬CP的節(jié)點(diǎn)服務(wù)器構(gòu)成待阻塞服務(wù)器池,所有上傳帶寬不小 于上傳平均帶寬CP的節(jié)點(diǎn)服務(wù)器構(gòu)成可連接服務(wù)器池;
[0022] 6)判斷可連接服務(wù)器池中節(jié)點(diǎn)服務(wù)器的數(shù)量是否為0,如果不為0則執(zhí)行步驟 10),否則掃描待阻塞服務(wù)器池,得到待阻塞服務(wù)器池中所有節(jié)點(diǎn)服務(wù)器的帶寬日志,根據(jù) 公式(4)計(jì)算待阻塞服務(wù)器池中所有節(jié)點(diǎn)服務(wù)器的上傳平均寬帶CP';
[0023]
[0024] 其中,M表示待阻塞服務(wù)器池中節(jié)點(diǎn)服務(wù)器的數(shù)量,Ck表示待阻塞服務(wù)器池中節(jié)點(diǎn) 服務(wù)器的上傳帶寬;
[0025] 7)根據(jù)公式(5)計(jì)算調(diào)整系數(shù)g:
[0026]
[0027] 8)將待阻塞服務(wù)器池中每個(gè)節(jié)點(diǎn)服務(wù)器的上傳寬帶乘調(diào)整系數(shù),得到調(diào)整后待阻 塞服務(wù)器池;
[0028] 9)判斷調(diào)整后待阻塞服務(wù)器池中每個(gè)節(jié)點(diǎn)服務(wù)器的上傳寬帶與上傳平均帶寬的 CP的關(guān)系,將上傳寬帶小于上傳平均帶寬CP的節(jié)點(diǎn)服務(wù)器設(shè)為阻塞點(diǎn),斷開其與當(dāng)前用戶 的連接,然后返回步驟3);
[0029] 10)判斷下載比率與可連接服務(wù)器池中服務(wù)器數(shù)量的關(guān)系,如果下載比率不小于 連接服務(wù)器池中服務(wù)器數(shù)量,則保持其他用戶將當(dāng)前用戶作為節(jié)點(diǎn)服務(wù)器,連接當(dāng)前用戶 進(jìn)行下載的數(shù)量,并保持當(dāng)前用戶的上傳帶寬;
[0030] 否則,降低其他用戶將當(dāng)前用戶作為節(jié)點(diǎn)服務(wù)器,連接當(dāng)前用戶進(jìn)行下載的數(shù)量, 并降低當(dāng)前用戶的上傳帶寬;
[0031] 11)設(shè)可連接服務(wù)器池中共有B個(gè)節(jié)點(diǎn)服務(wù)器b,bf表示可連接服務(wù)器池中第f?個(gè) 節(jié)點(diǎn)服務(wù)器;
[0032] 12)采用公式(6)計(jì)算當(dāng)前用戶從節(jié)點(diǎn)服務(wù)器bf下載的下載承載均值Dfn:
[0033]
[0034] 其中,Efn表示從第f?個(gè)節(jié)點(diǎn)服務(wù)器bf所下載n個(gè)文件塊的總大小,采用公式(7) 計(jì)算得到,Tfn表示從第f個(gè)節(jié)點(diǎn)服務(wù)器下載n個(gè)文件塊的下載用時(shí),采用公式(8)計(jì) 算得到:
[0037] 其中,e#表示從第f個(gè)節(jié)點(diǎn)服務(wù)器bf下載第j個(gè)文件塊的大小,t#表示從第f?個(gè) 節(jié)點(diǎn)服務(wù)器bf下載第j個(gè)文件塊的下載用時(shí),n= 1,2, 3,...且n彡N;
[0038] 13)根據(jù)所有承載均值Dfn由大到小的順序,對承載均值Dfn對應(yīng)的節(jié)點(diǎn)服務(wù)器bf 進(jìn)行排序,形成候選節(jié)點(diǎn)服務(wù)器列表;
[0039]14)當(dāng)時(shí)間周期到下一輪時(shí),優(yōu)先連接候選節(jié)點(diǎn)服務(wù)器列表中首位的節(jié)點(diǎn)服務(wù)器, 并返回步驟3)。
[0040] 相對于現(xiàn)有技術(shù),本發(fā)明具有如下優(yōu)點(diǎn):
[0041] 1、本發(fā)明算法減小了整體網(wǎng)絡(luò)的歸一化標(biāo)準(zhǔn)差,而歸一化標(biāo)準(zhǔn)差的減小表示整個(gè) 覆蓋網(wǎng)絡(luò)的帶寬波動(dòng)變小了,從而能更精確的預(yù)測下載剩余時(shí)間。
[0042] 2、隨著整體覆蓋網(wǎng)絡(luò)的歸一化標(biāo)準(zhǔn)差的降低,用戶的平均下載時(shí)間也會(huì)逐步降 低。仿真實(shí)驗(yàn)證明本發(fā)明算法在無競爭環(huán)境下平均性能提升為傳統(tǒng)算法的113%,在競爭環(huán) 境中平均性能提升雖然僅1%,但預(yù)估下載時(shí)間的準(zhǔn)確性提升了 44%。
【附圖說明】
[0043] 圖1為本發(fā)明算法的基本流程圖。
[0044] 圖2為網(wǎng)絡(luò)承載均值算法的流程圖。
[0045] 圖3為PeerSim仿真實(shí)驗(yàn)環(huán)境部署圖。
[0046] 圖4為無競爭條件下下載時(shí)間隨非均質(zhì)等級變化圖。
[0047] 圖5為本發(fā)明算法與現(xiàn)有技術(shù)的對比結(jié)果。
[0048] 圖6無競爭下載時(shí)間、阻塞以及非均質(zhì)程度結(jié)果圖。
【具體實(shí)施方式】
[0049] 在本發(fā)明中涉及的技術(shù)詞匯的含義解釋如下:
[0050] 網(wǎng)絡(luò)非均質(zhì)程度是指整個(gè)對等覆蓋網(wǎng)絡(luò)中服務(wù)器帶寬性能的差異性,即帶寬最大 的服務(wù)器和帶寬最小的服務(wù)器的帶寬差異。非均質(zhì)程度越高,帶寬差異越大。
[0051] 歸一化標(biāo)準(zhǔn)差:指用戶的下載帶寬波動(dòng)情況。標(biāo)準(zhǔn)差越小,帶寬波動(dòng)越小。
[0052] 下載比率:擁有文件塊的節(jié)點(diǎn)服務(wù)器數(shù)量/用戶的數(shù)量,下載比率越小證明網(wǎng)