專(zhuān)利名稱(chēng):一種優(yōu)化城域網(wǎng)內(nèi)p2p傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)傳輸優(yōu)化技術(shù),尤其是一種在城域網(wǎng)的P2P應(yīng)用中降低對(duì)網(wǎng)絡(luò)主干帶寬占用,防止網(wǎng)絡(luò)沖突的方法。
背景技術(shù):
P2P是目前網(wǎng)絡(luò)傳輸中的一個(gè)重要技術(shù),為實(shí)現(xiàn)網(wǎng)絡(luò)資源共享提供了新的技術(shù)支持。P2P技術(shù)是通過(guò)盡其所能利用的網(wǎng)絡(luò)帶寬,獲得較高的傳輸性能,因此在網(wǎng)絡(luò)應(yīng)用中得到迅速的普及。P2P技術(shù)和傳統(tǒng)的客戶(hù)機(jī)/服務(wù)器模式相比,實(shí)現(xiàn)了對(duì)等網(wǎng)下的分布式存儲(chǔ)和共享能力,每個(gè)節(jié)點(diǎn)計(jì)算機(jī)既是向其它節(jié)點(diǎn)進(jìn)行下載的客戶(hù)端,又是一個(gè)存儲(chǔ)服務(wù)器,能與其它節(jié)點(diǎn)共享其存儲(chǔ)內(nèi)容,因此能夠提供更海量和更豐富的內(nèi)容,成為寬帶網(wǎng)的重要吸引力之一。
隨著P2P技術(shù)的發(fā)展和應(yīng)用的深入,基于P2P的文字、語(yǔ)音和視頻通信,以及多種多媒體服務(wù)開(kāi)始出現(xiàn)和蓬勃發(fā)展,人們更加重視P2P技術(shù)的開(kāi)發(fā)與應(yīng)用。
但是人們?cè)赑2P技術(shù)應(yīng)用的同時(shí),發(fā)現(xiàn)其存在的不足是,P2P技術(shù)對(duì)網(wǎng)絡(luò)帶寬搶占式應(yīng)用,其占用了網(wǎng)絡(luò)的大部分帶寬,一般能夠占到總帶寬的60%以上,從而嚴(yán)重影響了其它業(yè)務(wù)的正常運(yùn)行,這種結(jié)果導(dǎo)致寬帶運(yùn)營(yíng)商對(duì)P2P技術(shù)一般采用抵制甚至遭到封殺,封殺P2P會(huì)大幅度降低寬帶網(wǎng)對(duì)用戶(hù)的吸引力,運(yùn)營(yíng)商一方面希望能夠在其網(wǎng)絡(luò)上提供P2P服務(wù),彌補(bǔ)自己提供的內(nèi)容資源的不足,以與其它的寬帶運(yùn)營(yíng)商進(jìn)行競(jìng)爭(zhēng);另一方面,運(yùn)營(yíng)商又不希望P2P的應(yīng)用占用大量的帶寬,進(jìn)而影響其它業(yè)務(wù)的正常進(jìn)行。因而,使得運(yùn)營(yíng)商對(duì)P2P技術(shù)的應(yīng)用處于進(jìn)退兩難的地步。
在現(xiàn)有技術(shù)的寬帶運(yùn)營(yíng)商的城域網(wǎng)中,用戶(hù)計(jì)算機(jī)一般接入樓宇交換機(jī),再連接到小區(qū)交換機(jī),然后連接到接入層交換機(jī)或路由器,以下稱(chēng)為接入交換機(jī),進(jìn)而接入?yún)R聚層交換機(jī)或路由器,以下稱(chēng)為匯聚交換機(jī),最后連接到核心交換機(jī)或路由器,一般由一臺(tái)到多臺(tái)核心交換機(jī)或路由器構(gòu)成城域網(wǎng)的核心網(wǎng)。圖1是一個(gè)城域網(wǎng)的模型,整個(gè)構(gòu)成一個(gè)樹(shù)形結(jié)構(gòu)。通常情況一個(gè)樓宇交換機(jī)構(gòu)成一個(gè)子網(wǎng)。
對(duì)于采用ADSL或者Cable Modem技術(shù)構(gòu)成的城域網(wǎng),則用戶(hù)通過(guò)ADSL接入設(shè)備或者Cable Modem一般直接接入到接入層設(shè)備,仍然保持樹(shù)形結(jié)構(gòu)。
目前的P2P文件傳輸軟件會(huì)造成P2P流量大部分經(jīng)過(guò)主干網(wǎng)絡(luò),越接近核心層,P2P流量越大,占用帶寬問(wèn)題越嚴(yán)重,最終造成網(wǎng)絡(luò)阻塞,影響了正常業(yè)務(wù)的開(kāi)展。這種問(wèn)題出現(xiàn)的根源在于P2P軟件在尋找服務(wù)節(jié)點(diǎn)時(shí),認(rèn)為各節(jié)點(diǎn)完全相同,沒(méi)有考慮城域網(wǎng)的層次結(jié)構(gòu),在城域網(wǎng)內(nèi),近似隨機(jī)地選擇服務(wù)節(jié)點(diǎn),導(dǎo)致大部分的流量經(jīng)過(guò)主干網(wǎng)絡(luò)。
如圖1所示,假定城域網(wǎng)共有n1個(gè)匯聚交換機(jī),每個(gè)匯聚交換機(jī)下有n2個(gè)接入交換機(jī),每個(gè)接入交換機(jī)下有n3個(gè)小區(qū)交換機(jī),每個(gè)小區(qū)交換機(jī)下有n4個(gè)樓宇交換機(jī),每個(gè)樓宇交換機(jī)連接n5臺(tái)用戶(hù)計(jì)算機(jī),則整個(gè)城域網(wǎng)擁有的計(jì)算機(jī)臺(tái)數(shù)為N=n1*n2*n3*n4*n5。以下把樓宇計(jì)算機(jī)接入小區(qū)交換機(jī)的鏈路簡(jiǎn)稱(chēng)樓宇上聯(lián)小區(qū)鏈路,把小區(qū)計(jì)算機(jī)接入交換機(jī)的鏈路簡(jiǎn)稱(chēng)小區(qū)上聯(lián)接入鏈路,把接入計(jì)算機(jī)接入?yún)R聚交換機(jī)的鏈路簡(jiǎn)稱(chēng)接入上聯(lián)匯聚鏈路,把匯聚計(jì)算機(jī)接入核心網(wǎng)的鏈路簡(jiǎn)稱(chēng)匯聚上聯(lián)核心鏈路。
我們對(duì)常規(guī)P2P流量負(fù)載作以下分析當(dāng)P2P節(jié)點(diǎn)要下載m字節(jié)的文件時(shí),稱(chēng)之為請(qǐng)求P2P節(jié)點(diǎn),假定有x%的計(jì)算機(jī)上有該資源,稱(chēng)之為資源P2P節(jié)點(diǎn),即共有N*x%個(gè)資源P2P節(jié)點(diǎn)。按照統(tǒng)計(jì)規(guī)律,這些節(jié)點(diǎn)會(huì)均勻分布在整個(gè)網(wǎng)絡(luò)中。
請(qǐng)求P2P節(jié)點(diǎn)隨機(jī)選擇資源P2P節(jié)點(diǎn),將會(huì)從每個(gè)資源P2P節(jié)點(diǎn)獲得m/(N*x%)字節(jié)的文件內(nèi)容。
因此用戶(hù)節(jié)點(diǎn)從自己樓宇交換機(jī)上相鄰的計(jì)算機(jī)下載 字節(jié)的文件內(nèi)容,約等于m/(n1*n2*n3*n4)字節(jié),僅占整個(gè)文件的1/(n1*n2*n3*n4),剩余的內(nèi)容需要經(jīng)過(guò)樓宇上聯(lián)小區(qū)鏈路從小區(qū)交換機(jī)下載,比例為 一個(gè)用戶(hù)節(jié)點(diǎn)能夠從自己小區(qū)的計(jì)算機(jī)下載 字節(jié)的文件內(nèi)容,約等于m/(n1*n2*n3)字節(jié),僅占整個(gè)文件的1/(n1*n2*n3),剩余的內(nèi)容需要經(jīng)過(guò)小區(qū)上聯(lián)接入鏈路從接入交換機(jī)下載,比例為 一個(gè)用戶(hù)節(jié)點(diǎn)能夠從自己所在接入網(wǎng)內(nèi)計(jì)算機(jī)下載 字節(jié)的文件內(nèi)容,約等于m/(n1*n2)字節(jié),僅占整個(gè)文件的1/(n1*n2),剩余的內(nèi)容需要經(jīng)過(guò)接入上聯(lián)匯聚鏈路從匯聚交換機(jī)下載,比例為 一個(gè)用戶(hù)節(jié)點(diǎn)能夠從自己所在匯聚網(wǎng)內(nèi)計(jì)算機(jī)下載 字節(jié)的文件內(nèi)容,約等于m/n1字節(jié),僅占整個(gè)文件的1/n1,剩余的內(nèi)容需要經(jīng)過(guò)匯聚上聯(lián)核心鏈路從核心網(wǎng)絡(luò)下載,比例為 當(dāng)網(wǎng)絡(luò)上有y臺(tái)請(qǐng)求P2P節(jié)點(diǎn),每個(gè)都下載m字節(jié)的內(nèi)容,在網(wǎng)絡(luò)上產(chǎn)生的流量情況為每個(gè)匯聚上聯(lián)核心鏈路上從核心網(wǎng)下載的P2P流量為 在核心網(wǎng)絡(luò)上總共產(chǎn)生的流量為 每個(gè)接入上聯(lián)匯聚鏈路上的P2P下行流量為 約等于y*m/(n1*n2)每個(gè)小區(qū)上聯(lián)接入鏈路上的P2P下行流量為 約等于y*m/(n1*n2*n3)每個(gè)樓宇上聯(lián)小區(qū)鏈路上的P2P下行流量為 約等于y*m/(n1*n2*n3*n4)在每個(gè)樓宇內(nèi)計(jì)算機(jī)間產(chǎn)生的P2P流量為y*m/(n1*n2*n3*n4)2因此P2P產(chǎn)生的總流量y*m、核心網(wǎng)流量、匯聚上聯(lián)核心鏈路下行流量、接入上聯(lián)匯聚鏈路下行流量、小區(qū)上聯(lián)接入鏈路下行流量、樓宇上聯(lián)小區(qū)鏈路下行流量和樓宇內(nèi)計(jì)算機(jī)間的P2P流量的比例為1∶(n1-1)/n1∶(n1-1)/n12∶1/(n1*n2)∶1/(n1*n2*n3)∶1/(n1*n2*n3*n4)∶1/(n1*n2*n3*n4)2。在這個(gè)城域網(wǎng)模型中,取n1=8,n2=8,n3=8,n4=8,n5=20,即城域網(wǎng)擁有N=81920個(gè)計(jì)算機(jī),計(jì)算得到的各級(jí)網(wǎng)絡(luò)P2P流量負(fù)載比例如圖2和圖3的“-◆-”折線(xiàn),其中圖2縱坐標(biāo)采用線(xiàn)性坐標(biāo),圖3采用對(duì)數(shù)坐標(biāo)。顯然P2P產(chǎn)生的網(wǎng)絡(luò)流量絕大部分流經(jīng)核心網(wǎng),這就是P2P造成網(wǎng)絡(luò)阻塞的原因。而越接近網(wǎng)絡(luò)的邊緣,流量負(fù)載越輕。
發(fā)明內(nèi)容
目前在P2P技術(shù)的應(yīng)用中,占用帶寬的主要是文件共享應(yīng)用,大量的文件在網(wǎng)絡(luò)上反復(fù)傳遞,造成了網(wǎng)絡(luò)堵塞問(wèn)題,因?yàn)榻^大部分的P2P流量會(huì)流經(jīng)骨干網(wǎng),所以主要的堵塞是發(fā)塵在骨干網(wǎng)上。為了解決P2P技術(shù)的應(yīng)用中存在的阻塞問(wèn)題,本發(fā)明提出以下解決的技術(shù)方案。
本發(fā)明的優(yōu)化城域網(wǎng)內(nèi)P2P傳輸?shù)姆椒ㄊ莂、當(dāng)一個(gè)P2P節(jié)點(diǎn)需要下載某資源時(shí),以下稱(chēng)之為請(qǐng)求P2P節(jié)點(diǎn);b、首先通過(guò)P2P索引服務(wù)器查詢(xún)到擁有該資源的P2P節(jié)點(diǎn)列表,這些節(jié)點(diǎn)稱(chēng)之為資源P2P節(jié)點(diǎn);c、在資源P2P節(jié)點(diǎn)中尋找出與請(qǐng)求P2P節(jié)點(diǎn)在網(wǎng)絡(luò)上最近鄰的節(jié)點(diǎn);d、資源通過(guò)網(wǎng)絡(luò)上從最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn)下載,使P2P流量盡量遠(yuǎn)離核心網(wǎng),在網(wǎng)絡(luò)邊緣傳輸,從而降低流經(jīng)核心網(wǎng)和匯聚網(wǎng)等骨干網(wǎng)絡(luò)的P2P流量。
(1)在資源P2P節(jié)點(diǎn)中尋找與請(qǐng)求P2P節(jié)點(diǎn)在網(wǎng)絡(luò)上最近鄰的節(jié)點(diǎn)的步驟如下a、首先尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)樓宇交換機(jī)的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);b、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)小區(qū)交換機(jī)或路由器的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);c、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)接入交換機(jī)或路由器的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);d、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)匯聚交換機(jī)或路由器的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);e、否則所有的資源P2P節(jié)點(diǎn)都認(rèn)為是最近鄰的資源P2P節(jié)點(diǎn)。
(2)查找最近鄰資源P2P節(jié)點(diǎn)所進(jìn)行的交換機(jī)或路由器編碼的步驟如下a、匯聚交換機(jī)或路由器的編碼s1為從1到n1;b、每個(gè)匯聚交換機(jī)或路由器下的接入交換機(jī)或路由器的編碼s2為從1到n2;c、每個(gè)接入交換機(jī)或路由器下的小區(qū)交換機(jī)或路由器的編碼s3為從1到n3;d、每個(gè)小區(qū)交換機(jī)下的樓宇交換機(jī)的編碼s4為從1到n4;e、從核心網(wǎng)到每個(gè)計(jì)算機(jī),所經(jīng)過(guò)的匯聚交換機(jī)或路由器、接入交換機(jī)和路由器、小區(qū)交換機(jī)和路由器和樓宇交換機(jī)的編碼構(gòu)成了描述這臺(tái)計(jì)算機(jī)拓?fù)渚W(wǎng)絡(luò)位置的位置向量S=(s1,s2,s3,s4),同一個(gè)樓宇交換機(jī)下的計(jì)算機(jī)具有相同的位置向量。
(3)查找最近鄰資源P2P節(jié)點(diǎn)的計(jì)算方法如下a、定義2個(gè)位置向量S=(s1,s2,s3,s4)和S′=(s′1,s′2,s′3,s′4)的距離向量D為D=(d1,d2,d3,d4)=(s1,s2,s3,s4)-(s′1,s′2,s′3,s′4)=(s1-s′1,s2-s′2,s3-s′3,s4-s′4)其中各分量的減法定義為di=0,si=s′i1,si≠s′i]]>b、定義2個(gè)距離向量D=(d1,d2,d3,d4)和D′=(d′1,d′2,d′3,d′4)的大小比較方法為 距離向量小,表示在網(wǎng)絡(luò)上更近鄰。
(4)在城域網(wǎng)中增設(shè)的拓?fù)浞?wù)器用于存儲(chǔ)各子網(wǎng)與位置向量的對(duì)應(yīng)關(guān)系,存儲(chǔ)內(nèi)容為各樓宇交換機(jī)的子網(wǎng)地址和掩碼,以及位置向量,拓?fù)浞?wù)器的工作步驟如下a、根據(jù)IP地址,與存儲(chǔ)的各子網(wǎng)進(jìn)行比對(duì),尋找出所屬子網(wǎng),從而得到該IP地址計(jì)算機(jī)的位置向量;
b、根據(jù)一個(gè)請(qǐng)求P2P節(jié)點(diǎn)的IP地址和多個(gè)資源P2P節(jié)點(diǎn)IP地址,計(jì)算出請(qǐng)求P2P節(jié)點(diǎn)與各資源P2P節(jié)點(diǎn)的距離向量,并進(jìn)行距離向量的比較,找出距離向量最小的資源P2P節(jié)點(diǎn)。
c、所存儲(chǔ)的數(shù)據(jù)反映城域網(wǎng)當(dāng)前的拓?fù)浣Y(jié)構(gòu),是計(jì)算最近鄰資源節(jié)點(diǎn)的判斷依據(jù)。
(5)P2P索引服務(wù)器查詢(xún)出資源P2P節(jié)點(diǎn)后,由拓?fù)浞?wù)器計(jì)算出最近鄰節(jié)點(diǎn),具體計(jì)算步驟如下a、P2P索引服務(wù)器接收請(qǐng)求P2P節(jié)點(diǎn)的資源查詢(xún)請(qǐng)求,查詢(xún)出擁有該資源的資源P2P節(jié)點(diǎn);b、把請(qǐng)求P2P節(jié)點(diǎn)的IP地址和查詢(xún)出的各資源P2P節(jié)點(diǎn)IP地址發(fā)送給拓?fù)浞?wù)器;或者把資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn),請(qǐng)求P2P節(jié)點(diǎn)把自己的IP地址和各資源P2P節(jié)點(diǎn)的IP地址發(fā)送給拓?fù)浞?wù)器;c、拓?fù)浞?wù)器計(jì)算出與請(qǐng)求P2P節(jié)點(diǎn)最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn),然后返回給索引服務(wù)器,索引服務(wù)器把最近鄰的資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn);e、該請(qǐng)求P2P節(jié)點(diǎn)與最近連的資源P2P節(jié)點(diǎn)進(jìn)行連接和下載。
(6)請(qǐng)求P2P節(jié)點(diǎn)獲得的所有資源P2P節(jié)點(diǎn)列表中包含各節(jié)點(diǎn)的位置向量,請(qǐng)求P2P節(jié)點(diǎn)直接計(jì)算最近鄰的資源P2P節(jié)點(diǎn)的具體步驟如下a、計(jì)算機(jī)上的P2P軟件啟動(dòng)時(shí),首先向拓?fù)浞?wù)器請(qǐng)求自己的位置向量;b、拓?fù)浞?wù)器根據(jù)計(jì)算機(jī)的IP地址,在拓?fù)鋽?shù)據(jù)表中查詢(xún)所屬的子網(wǎng),從而得到該計(jì)算機(jī)的位置向量,并返回給該計(jì)算機(jī);c、各P2P節(jié)點(diǎn)計(jì)算機(jī)向P2P的索引服務(wù)器上報(bào)自己所擁有的資源時(shí),同時(shí)上報(bào)自己的位置向量;d、當(dāng)請(qǐng)求P2P節(jié)點(diǎn)計(jì)算機(jī)要下載某資源時(shí),首先查詢(xún)得到擁有該資源的節(jié)點(diǎn)列表,其中包含各資源節(jié)點(diǎn)的位置向量;e、請(qǐng)求P2P節(jié)點(diǎn)分別把自己的位置向量與各資源節(jié)點(diǎn)的位置向量相減得到相應(yīng)的距離向量,從中選擇距離最小的一個(gè)或多個(gè)資源節(jié)點(diǎn),進(jìn)行資源的下載。
圖1是城域網(wǎng)模型圖;圖2是縱坐標(biāo)采用線(xiàn)性坐標(biāo)的城域網(wǎng)P2P流量分布圖;圖3是采用對(duì)數(shù)坐標(biāo)的城域網(wǎng)P2P流量分布圖;圖4是給交換機(jī)或路由器編碼后的城域網(wǎng)模型圖;圖5是拓?fù)浞?wù)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
實(shí)施方式優(yōu)化P2P的實(shí)現(xiàn)方案首先對(duì)城域網(wǎng)的匯聚交換機(jī)、接入交換機(jī)、小區(qū)交換機(jī)和樓宇交換機(jī)進(jìn)行編碼,如圖4匯聚交換機(jī)的編碼s1為從1到n1,每個(gè)匯聚交換機(jī)下的接入交換機(jī)的編碼s2為從1到n2,每個(gè)接入交換機(jī)下的小區(qū)交換機(jī)的編碼s3為從1到n3,每個(gè)小區(qū)交換機(jī)下的樓宇交換機(jī)的編碼s4為從1到n4。這樣每個(gè)子網(wǎng)或樓宇交換機(jī)都可以用一個(gè)向量表示S=(s1,s2,s3,s4),也是這個(gè)交換機(jī)下的各計(jì)算機(jī)共同的位置向量。顯然位置向量相同的2臺(tái)計(jì)算機(jī)必定接入同一臺(tái)樓宇交換機(jī)。
當(dāng)請(qǐng)求P2P節(jié)點(diǎn)計(jì)算機(jī)可以從多個(gè)資源計(jì)算機(jī)下載時(shí),首先用自己的位置向量S=(s1,s2,s3,s4)分別減去各資源P2P節(jié)點(diǎn)的位置向量S′=(s′1,s′2,s′3,s′4),得到與各資源P2P節(jié)點(diǎn)的距離向量D=(d1,d2,d3,d4)(d1,d2,d3,d4)=(s1,s2,s3,s4)-(s′1,s′2,s′3,s′4)=(s1-s′1,s2-s′2,s3-s′3,s4-s′4)其中各分量的減法定義為di=0,si=s′i1,si≠s′i]]>并且定義距離向量D=(d1,d2,d3,d4)和D′=(d′1,d′2,d′3,d′4)比較大小的方法 按照上述算法,比較與各資源P2P節(jié)點(diǎn)的距離向量,找出距離最小的資源P2P節(jié)點(diǎn),從其進(jìn)行下載,就可以達(dá)到優(yōu)化P2P傳輸?shù)慕Y(jié)果。
在城域網(wǎng)中設(shè)置一臺(tái)服務(wù)器,存儲(chǔ)著整個(gè)城域網(wǎng)拓?fù)浣Y(jié)構(gòu)數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)如圖5,存儲(chǔ)內(nèi)容是各子網(wǎng)與位置向量的對(duì)應(yīng)。該服務(wù)器用于根據(jù)計(jì)算機(jī)的IP地址計(jì)算出位置向量,以下稱(chēng)之為拓?fù)浞?wù)器。
具體應(yīng)用中,進(jìn)行距離比較計(jì)算可以在P2P節(jié)點(diǎn)或者拓?fù)浞?wù)器上進(jìn)行。
在P2P節(jié)點(diǎn)進(jìn)行距離比較的工作過(guò)程A、計(jì)算機(jī)上的P2P軟件啟動(dòng)時(shí),首先向拓?fù)浞?wù)器請(qǐng)求自己的位置向量;B、拓?fù)浞?wù)器根據(jù)計(jì)算機(jī)的IP地址,在拓?fù)鋽?shù)據(jù)表中查詢(xún)所屬的子網(wǎng),從而得到該計(jì)算機(jī)的位置向量,并返回給該計(jì)算機(jī);C、計(jì)算機(jī)上的P2P軟件啟動(dòng)時(shí),首先向拓?fù)浞?wù)器請(qǐng)求自己的位置向量;D、各P2P節(jié)點(diǎn)計(jì)算機(jī)向P2P的索引服務(wù)器上報(bào)自己所擁有的資源時(shí),同時(shí)上報(bào)自己的位置向量;
E、當(dāng)請(qǐng)求P2P節(jié)點(diǎn)計(jì)算機(jī)要下載某資源時(shí),首先查詢(xún)得到擁有該資源的節(jié)點(diǎn)列表,其中包含各資源節(jié)點(diǎn)的位置向量;F、請(qǐng)求P2P節(jié)點(diǎn)分別把自己的位置向量與各資源節(jié)點(diǎn)的位置向量相減得到相應(yīng)的距離向量,從中選擇距離最小的一個(gè)或多個(gè)資源節(jié)點(diǎn),進(jìn)行資源的下載。
拓?fù)浞?wù)器進(jìn)行距離比較的工作過(guò)程A、當(dāng)請(qǐng)求P2P節(jié)點(diǎn)要下載某資源時(shí),首先向P2P索引服務(wù)器發(fā)送該資源的查詢(xún)請(qǐng)求;B、P2P索引服務(wù)器接收請(qǐng)求P2P節(jié)點(diǎn)的資源查詢(xún)請(qǐng)求,查詢(xún)出擁有該資源的資源P2P節(jié)點(diǎn);C、把請(qǐng)求P2P節(jié)點(diǎn)的IP地址和查詢(xún)出的各資源P2P節(jié)點(diǎn)IP地址發(fā)送給拓?fù)浞?wù)器;或者把資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn),請(qǐng)求P2P節(jié)點(diǎn)把自己的IP地址和各資源P2P節(jié)點(diǎn)的IP地址發(fā)送給拓?fù)浞?wù)器;D、按照權(quán)利要求4所述,拓?fù)浞?wù)器計(jì)算出與請(qǐng)求P2P節(jié)點(diǎn)最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn)。然后返回給索引服務(wù)器,索引服務(wù)器把最近鄰的資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn);或者直接發(fā)送給請(qǐng)求P2P節(jié)點(diǎn);E、該請(qǐng)求P2P節(jié)點(diǎn)與最近連的資源P2P節(jié)點(diǎn)進(jìn)行連接和下載。
實(shí)施例優(yōu)化的P2P訪(fǎng)問(wèn)策略如果能夠?qū)2P的流量盡量限制在網(wǎng)絡(luò)邊緣,則能夠有效降低主干網(wǎng)絡(luò)的帶寬壓力。因此對(duì)P2P訪(fǎng)問(wèn)模式進(jìn)行改造,采用以下新的下載策略當(dāng)一個(gè)節(jié)點(diǎn)要下載某一資源時(shí),當(dāng)所在樓宇交換機(jī)下的其它計(jì)算機(jī)擁有該資源時(shí),只從本樓宇交換機(jī)下的計(jì)算機(jī)下載;否則,如果本小區(qū)網(wǎng)絡(luò)內(nèi)的其它計(jì)算機(jī)擁有該資源時(shí),只從本小區(qū)網(wǎng)絡(luò)內(nèi)的計(jì)算機(jī)下載;否則,如果本接入網(wǎng)絡(luò)內(nèi)的其它計(jì)算機(jī)擁有該資源時(shí),只從本接入網(wǎng)絡(luò)內(nèi)的計(jì)算機(jī)下載;否則,如果本匯聚網(wǎng)絡(luò)內(nèi)的其它計(jì)算機(jī)擁有該資源時(shí),只從本匯聚網(wǎng)絡(luò)內(nèi)的計(jì)算機(jī)下載;如果本匯聚網(wǎng)絡(luò)內(nèi)的計(jì)算機(jī)都沒(méi)有該資源,則通過(guò)核心網(wǎng)絡(luò),到別的匯聚網(wǎng)絡(luò)進(jìn)行下載。這樣的P2P下載策略能夠盡量把P2P流量推向網(wǎng)絡(luò)邊緣,降低主干網(wǎng)絡(luò)的負(fù)載。下面在統(tǒng)計(jì)規(guī)律下分析采用策略的P2P的流量分布特性一個(gè)請(qǐng)求P2P節(jié)點(diǎn)要下載m字節(jié)的文件,在城域網(wǎng)上的N臺(tái)計(jì)算機(jī)中,其中擁有該資源的資源P2P節(jié)點(diǎn)比例為x%。
如果在本樓宇交換機(jī)下存在一個(gè)或者更多的資源P2P節(jié)點(diǎn),下載流量將只在本樓宇交換機(jī)內(nèi)部發(fā)生,在樓宇上聯(lián)小區(qū)鏈路上不產(chǎn)生下行流量;如果本樓宇交換機(jī)下一個(gè)資源節(jié)點(diǎn)也沒(méi)有,全部m字節(jié)都要通過(guò)樓宇上聯(lián)小區(qū)鏈路下載。本樓宇交換機(jī)下不存在資源節(jié)點(diǎn)的幾率p5為
p5=(N-n5N)N*x%=(n1*n2*n3*n4-1n1*n2*n3*n4)N*x%]]>則在統(tǒng)計(jì)情況下在樓宇上聯(lián)小區(qū)鏈路上產(chǎn)生的P2P下行流量為p5*m字節(jié),而從本樓宇其它計(jì)算機(jī)下載的流量為(1-p5)*m字節(jié)。
同樣在本小區(qū)網(wǎng)絡(luò)內(nèi)不存在資源P2P節(jié)點(diǎn)的幾率p4為p4=(N-n4*n5N)N*x%=(n1*n2*n3-1n1*n2*n3)N*x%]]>從而在與小區(qū)上聯(lián)接入鏈路上產(chǎn)生的P2P下載流量為p4*m字節(jié)。
在本接入網(wǎng)絡(luò)內(nèi)不存在資源P2P節(jié)點(diǎn)的幾率p3為p3=(N-n3*n4*n5N)N*x%=(n1*n2-1n1*n2)N*x%]]>從而接入上聯(lián)匯聚鏈路上產(chǎn)生的P2P下載流量為p3*m字節(jié)。
在本匯聚網(wǎng)絡(luò)內(nèi)不存在資源P2P節(jié)點(diǎn)的幾率p2為p2=(N-n2*n3*n4*n5N)N*x%=(n1-1n1)N*x%]]>從而在匯聚上聯(lián)核心鏈路上產(chǎn)生的P2P下載流量為p2*m字節(jié)。
如果城域網(wǎng)中有均勻分布的y個(gè)請(qǐng)求P2P節(jié)點(diǎn)要下載該資源,則在每個(gè)樓宇交換機(jī)內(nèi)部的P2P流量為 字節(jié),在每個(gè)樓宇上聯(lián)小區(qū)鏈路上產(chǎn)生的P2P下行流量為 字節(jié),在每個(gè)小區(qū)上聯(lián)接入鏈路上產(chǎn)生的P2P下行流量為 字節(jié),在每個(gè)接入上聯(lián)匯聚鏈路上產(chǎn)生的P2P下行流量為 字節(jié),在每個(gè)匯聚上聯(lián)核心鏈路上產(chǎn)生的P2P下行流量為 字節(jié),所有流經(jīng)核心的P2P流量為y*p2*m字節(jié)。
因此在這種優(yōu)化策略下,因此P2P產(chǎn)生的總流量y*m、核心網(wǎng)流量、匯聚上聯(lián)核心鏈路下行流量、接入上聯(lián)匯聚鏈路下行流量、小區(qū)上聯(lián)接入鏈路下行流量、樓宇上聯(lián)小區(qū)鏈路下行流量和樓宇內(nèi)計(jì)算機(jī)間的P2P流量的比例為1∶p2∶p2/n1∶p3/(n1*n2)∶p4/(n1*n2*n3)∶p5/(n1*n2*n3*n4)∶(1-p5)/(n1*n2*n3*n4)。按照前面的城域網(wǎng)模型參數(shù),分別計(jì)算在x為0.1%、0.05%、0.02%和0.01%時(shí)P2P產(chǎn)生的流量負(fù)載,結(jié)果如圖2和圖3的實(shí)折線(xiàn)。顯然在接入交換機(jī)以?xún)?nèi)的核心網(wǎng)絡(luò)上的P2P負(fù)載明顯降低,實(shí)現(xiàn)方法是把這些流量轉(zhuǎn)移到了網(wǎng)絡(luò)的最邊緣——樓宇交換機(jī)內(nèi)部。例如在擁有資源的計(jì)算機(jī)占整個(gè)網(wǎng)絡(luò)的萬(wàn)分之一(x=0.01%)時(shí),核心網(wǎng)負(fù)載約有常規(guī)P2P模式下的1/3,而樓宇內(nèi)的P2P流量約提高了一個(gè)數(shù)量級(jí),提高了用戶(hù)的傳輸速度。
權(quán)利要求
1.一種優(yōu)化城域網(wǎng)內(nèi)P2P傳輸?shù)姆椒?,其特征在于在城域網(wǎng)內(nèi)增設(shè)拓?fù)浞?wù)器和P2P索引服務(wù)器,把P2P流量盡量限制在網(wǎng)絡(luò)的邊緣發(fā)生,降低骨干網(wǎng)的傳輸負(fù)載,避免P2P造成網(wǎng)絡(luò)堵塞,具體步驟如下a、當(dāng)一個(gè)P2P節(jié)點(diǎn)需要下載某資源時(shí),以下稱(chēng)之為請(qǐng)求P2P節(jié)點(diǎn);b、首先通過(guò)P2P索引服務(wù)器查詢(xún)到擁有該資源的P2P節(jié)點(diǎn)列表,這些節(jié)點(diǎn)稱(chēng)之為資源P2P節(jié)點(diǎn);c、在資源P2P節(jié)點(diǎn)中尋找出與請(qǐng)求P2P節(jié)點(diǎn)在網(wǎng)絡(luò)上最近鄰的節(jié)點(diǎn);d、資源通過(guò)網(wǎng)絡(luò)上從最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn)下載,使P2P流量盡量遠(yuǎn)離核心網(wǎng),在網(wǎng)絡(luò)邊緣傳輸,從而降低流經(jīng)核心網(wǎng)和匯聚網(wǎng)等骨干網(wǎng)絡(luò)的P2P流量。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在資源P2P節(jié)點(diǎn)中尋找與請(qǐng)求P2P節(jié)點(diǎn)在網(wǎng)絡(luò)上最近鄰的節(jié)點(diǎn)的步驟如下a、首先尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)樓宇交換機(jī)的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);b、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)小區(qū)交換機(jī)或路由器的瓷源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);c、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)接入交換機(jī)或路由器的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);d、否則尋找是否有與請(qǐng)求P2P節(jié)點(diǎn)接入同一個(gè)匯聚交換機(jī)或路由器的資源P2P節(jié)點(diǎn),如果有則是最近鄰的資源P2P節(jié)點(diǎn);e、否則所有的資源P2P節(jié)點(diǎn)都認(rèn)為是最近鄰的資源P2P節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,查找最近鄰資源P2P節(jié)點(diǎn)所進(jìn)行的交換機(jī)或路由器編碼的步驟如下a、匯聚交換機(jī)或路由器的編碼s1為從1到n1;b、每個(gè)匯聚交換機(jī)或路由器下的接入交換機(jī)或路由器的編碼s2為從1到n2;c、每個(gè)接入交換機(jī)或路由器下的小區(qū)交換機(jī)或路由器的編碼s3為從1到n3;d、每個(gè)小區(qū)交換機(jī)下的樓宇交換機(jī)的編碼s4為從1到n4;e、從核心網(wǎng)到每個(gè)計(jì)算機(jī),所經(jīng)過(guò)的匯聚交換機(jī)或路由器、接入交換機(jī)和路由器、小區(qū)交換機(jī)和路由器和樓宇交換機(jī)的編碼構(gòu)成了描述這臺(tái)計(jì)算機(jī)拓?fù)渚W(wǎng)絡(luò)位置的位置向量S=(s1,s2,s3,s4),同一個(gè)樓宇交換機(jī)下的計(jì)算機(jī)具有相同的位置向量。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,查找最近鄰資源P2P節(jié)點(diǎn)的計(jì)算方法如下a、定義2個(gè)位置向量S=(s1,s2,s3,s4)和S′=(s′1,s′2,s′3,s′4)的距離向量D為D=(d1,d2,d3,d4)=(s1,s2,s3,s4)-(s′1,s′2,s′3,s′4)=(s1-s′1,s2-s′2,s3-s′3,s4-s′4)其中各分量的減法定義為di=0,si=s'i1,si≠s'i]]>b、定義2個(gè)距離向量D=(d1,d2,d3,d4)和D′=(d′1,d′2,d′3,d′4)的大小比較方法為 距離向量小,表示在網(wǎng)絡(luò)上更近鄰。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在城域網(wǎng)中增設(shè)的拓?fù)浞?wù)器用于存儲(chǔ)各子網(wǎng)與位置向量的對(duì)應(yīng)關(guān)系,存儲(chǔ)內(nèi)容為各樓宇交換機(jī)的子網(wǎng)地址和掩碼,以及位置向量,拓?fù)浞?wù)器的工作步驟如下a、根據(jù)IP地址,與存儲(chǔ)的各子網(wǎng)進(jìn)行比對(duì),尋找出所屬子網(wǎng),從而得到該IP地址計(jì)算機(jī)的位置向量;b、根據(jù)一個(gè)請(qǐng)求P2P節(jié)點(diǎn)的IP地址和多個(gè)資源P2P節(jié)點(diǎn)IP地址,計(jì)算出請(qǐng)求P2P節(jié)點(diǎn)與各資源P2P節(jié)點(diǎn)的距離向量,并進(jìn)行距離向量的比較,找出距離向量最小的資源P2P節(jié)點(diǎn)。c、所存儲(chǔ)的數(shù)據(jù)反映城域網(wǎng)當(dāng)前的拓?fù)浣Y(jié)構(gòu),是計(jì)算最近鄰資源節(jié)點(diǎn)的判斷依據(jù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,P2P索引服務(wù)器查詢(xún)出資源P2P節(jié)點(diǎn)后,由拓?fù)浞?wù)器計(jì)算出最近鄰節(jié)點(diǎn),具體計(jì)算步驟如下a、P2P索引服務(wù)器接收請(qǐng)求P2P節(jié)點(diǎn)的資源查詢(xún)請(qǐng)求,查詢(xún)出擁有該資源的資源P2P節(jié)點(diǎn);b、把請(qǐng)求P2P節(jié)點(diǎn)的IP地址和查詢(xún)出的各資源P2P節(jié)點(diǎn)IP地址發(fā)送給拓?fù)浞?wù)器;或者把資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn),請(qǐng)求P2P節(jié)點(diǎn)把自己的IP地址和各資源P2P節(jié)點(diǎn)的IP地址發(fā)送給拓?fù)浞?wù)器;c、拓?fù)浞?wù)器計(jì)算出與請(qǐng)求P2P節(jié)點(diǎn)最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn),然后返回給索引服務(wù)器,索引服務(wù)器把最近鄰的資源P2P節(jié)點(diǎn)列表發(fā)送給請(qǐng)求P2P節(jié)點(diǎn);d、該請(qǐng)求P2P節(jié)點(diǎn)與最近連的資源P2P節(jié)點(diǎn)進(jìn)行連接和下載。
7.根據(jù)權(quán)利要求1所述方法,其特征在于,請(qǐng)求P2P節(jié)點(diǎn)獲得的所有資源P2P節(jié)點(diǎn)列表中包含各節(jié)點(diǎn)的位置向量,請(qǐng)求P2P節(jié)點(diǎn)直接計(jì)算最近鄰的資源P2P節(jié)點(diǎn)的具體步驟如下a、計(jì)算機(jī)上的P2P軟件啟動(dòng)時(shí),首先向拓?fù)浞?wù)器請(qǐng)求自己的位置向量;b、拓?fù)浞?wù)器根據(jù)計(jì)算機(jī)的IP地址,在拓?fù)鋽?shù)據(jù)表中查詢(xún)所屬的子網(wǎng),從而得到該計(jì)算機(jī)的位置向量,并返回給該計(jì)算機(jī);c、各P2P節(jié)點(diǎn)計(jì)算機(jī)向P2P的索引服務(wù)器上報(bào)自己所擁有的資源時(shí),同時(shí)上報(bào)自己的位置向量;d、當(dāng)請(qǐng)求P2P節(jié)點(diǎn)計(jì)算機(jī)要下載某資源時(shí),首先查詢(xún)得到擁有該資源的節(jié)點(diǎn)列表,其中包含各資源節(jié)點(diǎn)的位置向量;e、請(qǐng)求P2P節(jié)點(diǎn)分別把自己的位置向量與各資源節(jié)點(diǎn)的位置向量相減得到相應(yīng)的距離向量,從中選擇距離最小的一個(gè)或多個(gè)資源節(jié)點(diǎn),進(jìn)行資源的下載。
全文摘要
本發(fā)明是一種針對(duì)城域網(wǎng)的P2P應(yīng)用的優(yōu)化方法,具體優(yōu)化步驟是a.當(dāng)一個(gè)P2P節(jié)點(diǎn)需要下載某資源時(shí),以下稱(chēng)之為請(qǐng)求P2P節(jié)點(diǎn);b.首先通過(guò)P2P索引服務(wù)器查詢(xún)到擁有該資源的P2P節(jié)點(diǎn)列表,這些節(jié)點(diǎn)稱(chēng)之為資源P2P節(jié)點(diǎn);c.在資源P2P節(jié)點(diǎn)中尋找出與請(qǐng)求P2P節(jié)點(diǎn)在網(wǎng)絡(luò)上最近鄰的節(jié)點(diǎn);d.資源通過(guò)網(wǎng)絡(luò)上從最近鄰的一個(gè)或多個(gè)資源P2P節(jié)點(diǎn)下載,使P2P流量盡量遠(yuǎn)離核心網(wǎng),在網(wǎng)絡(luò)邊緣傳輸,從而降低流經(jīng)核心網(wǎng)和匯聚網(wǎng)等骨干網(wǎng)絡(luò)的P2P流量。本發(fā)明的方法和現(xiàn)有技術(shù)相比,通過(guò)增加拓?fù)浞?wù)器和索引服務(wù)器,把P2P流量盡量限制在網(wǎng)絡(luò)的邊緣發(fā)生,降低骨干網(wǎng)的傳輸負(fù)載,以此避免P2P造成網(wǎng)絡(luò)堵塞。因而具有很好的推廣使用價(jià)值。
文檔編號(hào)H04L12/02GK101018172SQ200710013549
公開(kāi)日2007年8月15日 申請(qǐng)日期2007年2月9日 優(yōu)先權(quán)日2007年2月9日
發(fā)明者李曉峰, 莊文君, 崔衛(wèi), 劉永輝, 劉劍, 趙亞偉 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司