專(zhuān)利名稱(chēng):P2p流量?jī)?yōu)化方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)編碼領(lǐng)域,尤其涉及P2P流量?jī)?yōu)化方法及其系統(tǒng)。
背景技術(shù):
P2P技術(shù)已經(jīng)被廣泛地應(yīng)用于文件共享、實(shí)時(shí)媒體流分發(fā)等各類(lèi)網(wǎng)絡(luò)應(yīng)用中。由于P2P技術(shù)具有可擴(kuò)展性、高性價(jià)比、健壯性、負(fù)載均衡等眾多優(yōu)點(diǎn),并且終端能力的增強(qiáng)和網(wǎng)絡(luò)帶寬的增加使得P2P技術(shù)能更加充分利用網(wǎng)絡(luò)終端的計(jì)算能力、存儲(chǔ)能力以及傳輸能力,從而使P2P應(yīng)用吸引了越來(lái)越多的互聯(lián)網(wǎng)用戶。如今P2P應(yīng)用產(chǎn)生的流量已成為網(wǎng)絡(luò)流量的主要部分。測(cè)量數(shù)據(jù)顯示,P2P流量現(xiàn)已占用了 50%以上的網(wǎng)絡(luò)帶寬。
造成網(wǎng)絡(luò)流量巨大消耗的主要原因在于網(wǎng)絡(luò)資源利用率低。P2P網(wǎng)絡(luò)是建立在應(yīng)用層的一個(gè)覆蓋(Overlay)網(wǎng)絡(luò),構(gòu)建時(shí)大都不考慮底層的拓?fù)浣Y(jié)構(gòu),因而造成覆蓋網(wǎng)絡(luò)結(jié)構(gòu)及路由的低效性。舉例而言,同屬于一個(gè)AS域的節(jié)點(diǎn)在覆蓋網(wǎng)中可能并不直接接鄰,而是通過(guò)若干其它AS(AutonomousSystem,自治系統(tǒng))域中的節(jié)點(diǎn)相連,這樣既影響應(yīng)用程序的性能,還會(huì)占用很多域間帶寬。對(duì)于網(wǎng)絡(luò)運(yùn)營(yíng)商而言,問(wèn)題是包括(1)P2P流量的動(dòng)態(tài)性使得網(wǎng)絡(luò)運(yùn)營(yíng)商難以管理和進(jìn)行有效的流量工程;(2)P2P流量往往多次跨越網(wǎng)絡(luò)邊界,可能導(dǎo)致域間流量成本增加,或是引發(fā)對(duì)等AS節(jié)點(diǎn)之間的流量不平衡,從而潛在的違反了運(yùn)營(yíng)商之間的對(duì)等條約。除上述兩點(diǎn)外,域間流量的增加會(huì)導(dǎo)致更嚴(yán)重的網(wǎng)絡(luò)擁塞。測(cè)量表明,超過(guò)50%的網(wǎng)絡(luò)瓶頸鏈路是ISP之間的域間鏈路,而非ISP內(nèi)部骨干網(wǎng)的鏈路。
網(wǎng)絡(luò)運(yùn)營(yíng)商和網(wǎng)絡(luò)管理者希望盡量減少網(wǎng)絡(luò)之間或ISP之間的P2P流量,使得P2P流量不過(guò)度消耗域間帶寬。目前解決P2P應(yīng)用占據(jù)大量帶寬這一現(xiàn)狀的主要辦法包括(l)P2P應(yīng)用程序通過(guò)探測(cè)獲取粗粒度的拓?fù)渲R(shí),并依此建立拓?fù)湮恢酶兄母采w網(wǎng)絡(luò);(2)網(wǎng)絡(luò)運(yùn)營(yíng)商在邊緣網(wǎng)絡(luò)部署Cache對(duì)P2P流量進(jìn)行緩存;(3)網(wǎng)絡(luò)運(yùn)營(yíng)商和P2P內(nèi)容提供商進(jìn)行合作,由網(wǎng)絡(luò)運(yùn)營(yíng)商提供網(wǎng)絡(luò)位置和狀態(tài)信息服務(wù),而P2P應(yīng)用程序通過(guò)該服務(wù)來(lái)優(yōu)化鄰居節(jié)點(diǎn)選擇和下載決策。 隨著網(wǎng)絡(luò)運(yùn)營(yíng)商為P2P內(nèi)容提供商提供網(wǎng)絡(luò)位置和狀態(tài)信息服務(wù),網(wǎng)絡(luò)的拓?fù)浜蜖顟B(tài)信息的準(zhǔn)確度得到了提高,從而由拓?fù)湮恢酶兄夹g(shù)帶來(lái)的P2P流量本地化效應(yīng)將達(dá)到其極限能力。但在傳統(tǒng)的P2P數(shù)據(jù)傳輸模式下,P2P節(jié)點(diǎn)僅能依靠局部信息做出數(shù)據(jù)下載決策,如local rarest下載策略,這可能導(dǎo)致網(wǎng)絡(luò)中的數(shù)據(jù)塊分布不均勻。因此,傳統(tǒng)的數(shù)據(jù)傳輸模式限制了 P2P流量本地化程度的進(jìn)一步提升。若在P2P數(shù)據(jù)傳輸時(shí)采用網(wǎng)絡(luò)編碼則可以解決該問(wèn)題,能夠大幅降低域間流量。 網(wǎng)絡(luò)編碼改變了傳統(tǒng)網(wǎng)絡(luò)中路由器或網(wǎng)絡(luò)中間節(jié)點(diǎn)簡(jiǎn)單的數(shù)據(jù)轉(zhuǎn)發(fā)模式,中間節(jié)點(diǎn)不僅接收、復(fù)制并轉(zhuǎn)發(fā)數(shù)據(jù)包,還可以編碼數(shù)據(jù)包。在P2P中應(yīng)用網(wǎng)絡(luò)編碼,網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)塊不再是原始數(shù)據(jù)塊,而是對(duì)多個(gè)原始數(shù)據(jù)塊進(jìn)行隨機(jī)編碼后的編碼數(shù)據(jù)塊,接收端在接收到足夠數(shù)量的數(shù)據(jù)包后可解碼出原始數(shù)據(jù)。網(wǎng)絡(luò)編碼已經(jīng)部分用于P2P內(nèi)容傳輸和P2P流媒體應(yīng)用,它的優(yōu)點(diǎn)主要在于能夠簡(jiǎn)化傳統(tǒng)的數(shù)據(jù)塊調(diào)度算法,從而加速數(shù)據(jù)的分發(fā),很好地適應(yīng)網(wǎng)絡(luò)的動(dòng)態(tài)性,解決由于部分節(jié)點(diǎn)離開(kāi)導(dǎo)致的最后一塊無(wú)法下載的問(wèn)題。但是,網(wǎng)絡(luò)編碼也會(huì)增加節(jié)點(diǎn)的計(jì)算:應(yīng)用的原因。
:,這也是基于網(wǎng)絡(luò)編碼的P2P應(yīng)用遲遲得不到廣泛
發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明提供了P2P流量?jī)?yōu)化方法及其系統(tǒng),能夠減少網(wǎng)絡(luò)間數(shù)據(jù)流量節(jié)約帶寬資源。
本發(fā)明公開(kāi)了一種P2P流量?jī)?yōu)化方法,包括 步驟l,獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)所述網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),所述覆蓋網(wǎng)絡(luò)中初始時(shí)由應(yīng)用文件的源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)向所述源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù); 步驟2,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)所述節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和所述編碼塊對(duì)應(yīng)的全局編碼系數(shù),將所述編碼塊和所述全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn); 步驟3,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得所述數(shù)據(jù)包中的全局編碼系數(shù),將所述全局編碼系數(shù)添加到所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,所述節(jié)點(diǎn)將所述全局編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn); 步驟4,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)在請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)所述網(wǎng)絡(luò)狀態(tài)、所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣和所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載點(diǎn),并向所述下載點(diǎn)發(fā)送請(qǐng)求。
所述步驟4進(jìn)一步為, 步驟21,對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略所述鄰居節(jié)點(diǎn),否則,計(jì)算如下公式的值,草)
數(shù)矩陣,
草)
其中,A(X)為所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣,A(Y)為所述鄰居節(jié)點(diǎn)的全局編碼系
草)
為A(X)和A(Y)的并置,r[]表示求矩陣的秩;
步驟22,根據(jù)所得值確定是否將鄰居節(jié)點(diǎn)加入候選鄰居集合;步驟23,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)為下載點(diǎn),并
發(fā)送請(qǐng)求。 所述步驟22進(jìn)一步為, 步驟31,如果所得值等于0,則忽略所得值對(duì)應(yīng)的鄰居節(jié)點(diǎn); 步驟32,如果所得值不等于0,則判斷所得值是否小于等于所述節(jié)點(diǎn)同對(duì)應(yīng)鄰居節(jié)點(diǎn)間正在傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略所述鄰居節(jié)點(diǎn),否則,將所述鄰居節(jié)點(diǎn)加入候選集合。 所述步驟23進(jìn)一步為, 步驟41,從候選集合中選擇同所述節(jié)點(diǎn)在同一個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn)為下載點(diǎn),如果沒(méi)有同一個(gè)自治系統(tǒng)的節(jié)點(diǎn),則從所述候選集合中選擇同所述節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰居節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求; 步驟42,如果候選集合為空,則放棄本次下載嘗試。
所述步驟1中獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)進(jìn)一步為, 步驟51,通過(guò)節(jié)點(diǎn)之間的主動(dòng)延遲探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP和AS號(hào)映射方法、IP位置解析服務(wù)方法或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)。 每個(gè)所述節(jié)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)坐標(biāo),所述步驟23進(jìn)一步為,
步驟61,從候選集合中選擇同所述節(jié)點(diǎn)網(wǎng)絡(luò)坐標(biāo)的歐式距離最近的鄰居節(jié)點(diǎn)為下
載點(diǎn);
步驟62,如果候選集合為空,則放棄本次下載嘗試。所述步驟23進(jìn)一步為,
步驟71,由位置服務(wù)對(duì)請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)同候選集合中鄰居節(jié)點(diǎn)的網(wǎng)絡(luò)距離進(jìn)行排序,所述節(jié)點(diǎn)按排序選擇下載點(diǎn);
步驟72,如果候選集合為空,則放棄本次下載嘗試。
所述步驟23進(jìn)一步為, 步驟81,節(jié)點(diǎn)通過(guò)主動(dòng)探測(cè)的方式獲取自身到候選集合中鄰居節(jié)點(diǎn)的延遲信息,選擇延遲最小的鄰居節(jié)點(diǎn)作為下載點(diǎn); 步驟82,如果候選集合為空,則放棄本次下載嘗試。本發(fā)明還公開(kāi)了一種P2P流量?jī)?yōu)化系統(tǒng),包括初始化模塊和節(jié)點(diǎn) 所述初始化模塊,用于獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)所述網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),并在初始時(shí),僅允許應(yīng)用文件的源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)向所述源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù);
所述節(jié)點(diǎn)包括 請(qǐng)求響應(yīng)模塊,用于在節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)所屬節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和所述編碼塊對(duì)應(yīng)的全局編碼系數(shù),將所述編碼塊和所述全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn); 系數(shù)添加模塊,用于在節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得所述數(shù)據(jù)包中的全局編碼系數(shù),將所述全局編碼系數(shù)添加到所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,并將所述全局編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn); 下載選擇模塊,用于在節(jié)點(diǎn)請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)所述網(wǎng)絡(luò)狀態(tài)、所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣和所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載點(diǎn),并向所述下載點(diǎn)發(fā)送請(qǐng)求。
下載選擇模塊進(jìn)一步包括, 數(shù)值計(jì)算子模塊,用于對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定所述節(jié)點(diǎn)的'卩居節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略所述鄰居節(jié)點(diǎn),否則,計(jì)算如下公式的值,
數(shù)矩陣,
単)單)
其中,A(X)為所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣,A(Y)為所述鄰居節(jié)點(diǎn)的全局編碼系
單)
為A(X)和A(Y)的并置,r[]表示求矩陣的秩;
候選集合生成子模塊,用于根據(jù)所得值確定是否將鄰居節(jié)點(diǎn)加入候選鄰居集合;
下載點(diǎn)確定子模塊,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求。 所述候選集合生成子模塊進(jìn)一步用于判斷如果所得值等于0,則忽略所得值對(duì)應(yīng)的鄰居節(jié)點(diǎn);如果所得值不等于O,則判斷所得值是否小于等于所述節(jié)點(diǎn)同對(duì)應(yīng)鄰居節(jié)點(diǎn)間正在傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略所述鄰居節(jié)點(diǎn),否則,將所述鄰居節(jié)點(diǎn)加入候選集合。 所述下載點(diǎn)確定子模塊進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)在同一個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn)為下載點(diǎn),如果沒(méi)有同一個(gè)自治系統(tǒng)的節(jié)點(diǎn),則從所述候選集合中選擇同所述節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰居節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求;如果候選集合為空,則放棄本次下載嘗試。 所述初始化模塊在獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)時(shí)進(jìn)一步用于通過(guò)節(jié)點(diǎn)之間的主動(dòng)延遲探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP和AS號(hào)映射方法、IP位置解析服務(wù)方法或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)。
每個(gè)所述節(jié)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)坐標(biāo), 所述下載點(diǎn)確定子模塊進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)網(wǎng)絡(luò)坐標(biāo)的歐式距離最近的鄰居節(jié)點(diǎn)為下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
所述系統(tǒng)還包括位置服務(wù)器, 所述位置服務(wù)器用于對(duì)接收到的請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)同候選集合中鄰居節(jié)點(diǎn)的網(wǎng)絡(luò)距離進(jìn)行排序,返回排序結(jié)果; 所述下載點(diǎn)確定子模塊進(jìn)一步用于向位置服務(wù)器發(fā)送請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)和候選集合中鄰居節(jié)點(diǎn),按排序結(jié)果選擇下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
所述下載點(diǎn)確定子模塊進(jìn)一步用于通過(guò)主動(dòng)探測(cè)的方式獲取自身到候選集合中鄰居節(jié)點(diǎn)的延遲信息,選擇延遲最小的鄰居節(jié)點(diǎn)作為下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。 本發(fā)明的有益效果是通過(guò)在鄰居節(jié)點(diǎn)間交互全局編碼系數(shù)矩陣和利用位置感知技術(shù),能夠選擇更優(yōu)的鄰居節(jié)點(diǎn)作為下載點(diǎn),進(jìn)而減少網(wǎng)絡(luò)中數(shù)據(jù)流量;通過(guò)網(wǎng)絡(luò)編碼能使得數(shù)據(jù)塊在網(wǎng)絡(luò)中的分布更隨機(jī)和均勻;通過(guò)位置感知技術(shù),P2P節(jié)點(diǎn)能夠以較高的概率從鄰居節(jié)點(diǎn)發(fā)現(xiàn)并下載對(duì)自己有用的數(shù)據(jù)塊,從而有效地優(yōu)化P2P流量;通過(guò)優(yōu)選同一個(gè)AS中的鄰居節(jié)點(diǎn)為下載點(diǎn),能夠減少AS間的流量,節(jié)省帶寬資源。
圖1是本發(fā)明P2P流量?jī)?yōu)化方法流程圖; 圖2是本發(fā)明P2P流量?jī)?yōu)化方法具體實(shí)施方式
的流程圖; 圖3(a)是現(xiàn)有技術(shù)中隨機(jī)下載決策的P2P流量示意圖,圖3(b)是現(xiàn)有技術(shù)中本地最稀缺下載決策的P2P流量示意圖,圖3(c)是本發(fā)明的P2P流量示意 圖4是本發(fā)明的方法同本地稀缺優(yōu)先的效果比較 圖5是本發(fā)明的P2P流量?jī)?yōu)化系統(tǒng)結(jié)構(gòu) 圖6是本發(fā)明節(jié)點(diǎn)的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖,對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
本發(fā)明的P2P流量?jī)?yōu)化方法流程如圖1所示。 步驟S100,獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)該網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)初始時(shí)向應(yīng)用文件的源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)。 通過(guò)節(jié)點(diǎn)之間的主動(dòng)延遲探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP和AS號(hào)映射方法、IP位置解析服務(wù)方法或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)。 步驟S200,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)該節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和該編碼塊對(duì)應(yīng)的全局編碼系數(shù),將該編碼塊和該全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn)。 隨機(jī)網(wǎng)絡(luò)編碼具體為覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到發(fā)送給自身的數(shù)據(jù)塊請(qǐng)求后,隨機(jī)選擇m個(gè)自己擁有的編碼數(shù)據(jù)塊lvlv…,bm,并隨機(jī)生成m個(gè)局部編碼系數(shù)cp(v…,Cm,
生成編碼數(shù)據(jù)塊b = (^Xb,C2Xb2 +…+CmXbm,并計(jì)算全局編碼系數(shù)
<formula>formula see original document page 9</formula> 其中,(gil,gi2,... ,gin)是編碼數(shù)據(jù)塊bi中包含的全局編碼系數(shù),n是原始文件劃分的總數(shù)據(jù)塊個(gè)數(shù)。節(jié)點(diǎn)然后將編碼塊b和該編碼塊對(duì)應(yīng)的全局編碼系數(shù)g封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn)。 步驟S300,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得該數(shù)據(jù)包中的全局編碼系數(shù),將該全局編碼系數(shù)添加到該節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,該節(jié)點(diǎn)將該全局編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn)。
具體實(shí)施方式
中,節(jié)點(diǎn)周期性的將自身的全局編碼系數(shù)矩陣發(fā)送給該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。 步驟S400,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)在請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)網(wǎng)絡(luò)狀態(tài)、該節(jié)點(diǎn)
的全局編碼系數(shù)矩陣和該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載點(diǎn),
并向該下載點(diǎn)發(fā)送請(qǐng)求。 較佳的,所述步驟S400進(jìn)一步為, 步驟S410,對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略該鄰居節(jié)點(diǎn),否則,計(jì)算
草)
的值,其中,A(X)為該節(jié)點(diǎn)的編碼系數(shù)矩陣,A(Y)為該鄰居節(jié)點(diǎn)的編碼系數(shù)矩陣,草)一
單)
為A(X)和A(Y)的并置,r[]表示求矩陣的秩;
步驟S420,根據(jù)所得值決定是否將該鄰居節(jié)點(diǎn)加入候選集合.
如果所得值等于0,則忽略所得值對(duì)應(yīng)的鄰居節(jié)點(diǎn); 如果所得值不等于O,則判斷所得值是否小于等于該節(jié)點(diǎn)同對(duì)應(yīng)鄰居節(jié)點(diǎn)間正在 傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略該鄰居節(jié)點(diǎn),否則,將該鄰居節(jié)點(diǎn)加入候選集合;
步驟S430,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)為下載點(diǎn), 并發(fā)送請(qǐng)求。 從候選集合中選擇同該節(jié)點(diǎn)在同一個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn)為下載點(diǎn),如果沒(méi)有同 一個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn),則從候選集合中選擇同該節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰居節(jié)點(diǎn)為 下載點(diǎn),并發(fā)送請(qǐng)求。 如果候選集合為空,則放棄本次下載嘗試。 除了基于自治系統(tǒng)的位置感知技術(shù),節(jié)點(diǎn)還可以依據(jù)其它的位置感知技術(shù)來(lái)判斷 兩個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)距離遠(yuǎn)近。 根據(jù)IP前綴匹配的方式,節(jié)點(diǎn)將與自身的IP地址具有最長(zhǎng)前綴匹配的節(jié)點(diǎn)認(rèn)為 是與自己網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)。 基于網(wǎng)絡(luò)坐標(biāo)的方式,網(wǎng)絡(luò)坐標(biāo)系統(tǒng)由第三方提供,每個(gè)節(jié)點(diǎn)將被賦予一個(gè)網(wǎng)絡(luò)
坐標(biāo),利用兩個(gè)坐標(biāo)節(jié)點(diǎn)之間的歐氏距離來(lái)近似兩個(gè)節(jié)點(diǎn)之間的網(wǎng)絡(luò)距離。從而,當(dāng)需要比
較兩對(duì)節(jié)點(diǎn)之間的網(wǎng)絡(luò)距離時(shí),利用坐標(biāo)之間的歐氏距離大小進(jìn)行比較。 基于運(yùn)營(yíng)商提供的位置服務(wù),當(dāng)一個(gè)節(jié)點(diǎn)需要進(jìn)行下載點(diǎn)決策時(shí),將源節(jié)點(diǎn)和目
標(biāo)候選節(jié)點(diǎn)發(fā)送給運(yùn)營(yíng)商提供的位置服務(wù),由該位置服務(wù)來(lái)決定源節(jié)點(diǎn)和這組目標(biāo)候選節(jié)
點(diǎn)之間的網(wǎng)絡(luò)距離排序,并將排序結(jié)構(gòu)返回給請(qǐng)求節(jié)點(diǎn)。請(qǐng)求節(jié)點(diǎn)根據(jù)返回結(jié)果選擇下載點(diǎn)。 基于節(jié)點(diǎn)自身的探測(cè),節(jié)點(diǎn)可以通過(guò)主動(dòng)探測(cè)的方式獲取自身到一組候選目標(biāo)節(jié) 點(diǎn)之間的延遲信息,并依據(jù)延遲信息對(duì)候選目標(biāo)節(jié)點(diǎn)進(jìn)行排序,從而選擇延遲最小的節(jié)點(diǎn) 作為下載點(diǎn)。 本發(fā)明P2P流量?jī)?yōu)化方法具體實(shí)施方式
的流程如圖2所示。 步驟S201,利用網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)構(gòu)建拓?fù)湮恢酶兄母采w網(wǎng)絡(luò)。 在一個(gè)節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),以概率p選擇網(wǎng)絡(luò)中已有的與該節(jié)點(diǎn)位于同一自治系統(tǒng)
的節(jié)點(diǎn)作為鄰居節(jié)點(diǎn),以概率1-P選擇與該節(jié)點(diǎn)不屬于同一 自治系統(tǒng)的節(jié)點(diǎn)作為鄰居節(jié)
點(diǎn)。通過(guò)控制類(lèi)似Tracker實(shí)體的初始鄰居節(jié)點(diǎn)分配、切換鄰居節(jié)點(diǎn)時(shí)的選擇算法、以及
ISP的proxy-tracker的鄰居節(jié)點(diǎn)分配算法來(lái)實(shí)現(xiàn)。 步驟S202,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)基于PULL模式的網(wǎng)絡(luò)編碼數(shù)據(jù)傳輸模式,初始時(shí)由源 節(jié)點(diǎn)的鄰居向應(yīng)用文件的源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)。 覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)該節(jié)點(diǎn)已有的 數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和該編碼塊對(duì)應(yīng)的全局編碼系數(shù),將該編碼塊和該全局編碼 系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn)。 步驟S203,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得該數(shù)據(jù)包對(duì)應(yīng)的全局編碼 系數(shù),將該全局編碼系數(shù)添加到該節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,該節(jié)點(diǎn)將該全局編碼系數(shù) 矩陣定期發(fā)送給鄰居節(jié)點(diǎn)。 步驟S204,當(dāng)節(jié)點(diǎn)要請(qǐng)求數(shù)據(jù)時(shí),對(duì)于該節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定 該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略該鄰居節(jié)點(diǎn),否則,計(jì)算
単) 單)
的值,其中,A(X)為該節(jié)點(diǎn)的編碼系數(shù)矩陣,A(Y)為該鄰居節(jié)點(diǎn)的編碼系數(shù)矩陣,
草)
為A(X)和A(Y)的并置,r[]表示求矩陣的秩,執(zhí)行步驟S205,
步驟S205,根據(jù)計(jì)算的值,選擇鄰居節(jié)點(diǎn),組成候選集合, —草)—
如果〃<formula>formula see original document page 11</formula> 如果r
則表示鄰居節(jié)點(diǎn)的數(shù)據(jù)塊對(duì)節(jié)點(diǎn)無(wú)用,均是線性相關(guān)的,故略過(guò)該節(jié)點(diǎn)'
草)
"[草)]二k〉0, 則表示鄰居節(jié)點(diǎn)可對(duì)自身數(shù)據(jù)通過(guò)k次隨機(jī)編碼生成k個(gè)編碼塊,該k個(gè)數(shù)據(jù)塊 將以較大的概率和節(jié)點(diǎn)已有的數(shù)據(jù)塊線性無(wú)關(guān)。鄰居節(jié)點(diǎn)和該節(jié)點(diǎn)之間正在傳輸?shù)臄?shù)據(jù)塊 個(gè)數(shù)為q,則如果k《q,表示節(jié)點(diǎn)已經(jīng)向鄰居節(jié)點(diǎn)請(qǐng)求了至少k個(gè)數(shù)據(jù)塊了 ,新的請(qǐng)求將得 不到有用數(shù)據(jù),故略過(guò)該鄰居節(jié)點(diǎn);如果k > q,則將該鄰居節(jié)點(diǎn)加入候選集合。
步驟S206,從候選集合中選擇下載點(diǎn)。 若候選集合為空,則表明當(dāng)前鄰居節(jié)點(diǎn)不存在有用數(shù)據(jù)可以下載,節(jié)點(diǎn)放棄本次 數(shù)據(jù)請(qǐng)求嘗試; 如果候選集合不為空,則采用基于位置感知機(jī)制下載數(shù)據(jù)。 基于位置感知機(jī)制下載數(shù)據(jù)具體為確定擁有可用數(shù)據(jù)塊的鄰居節(jié)點(diǎn)中與節(jié)點(diǎn)處 在同一個(gè)AS中的下載點(diǎn),如果不存在該下載點(diǎn),則選擇距離節(jié)點(diǎn)具有最短AS跳數(shù)的鄰居節(jié) 點(diǎn)作為下載點(diǎn)。 步驟S207,向下載點(diǎn)發(fā)送請(qǐng)求,請(qǐng)求該節(jié)點(diǎn)傳輸一個(gè)編碼數(shù)據(jù)塊。
仿真效果比較。 圖3(a)表示現(xiàn)有技術(shù)中隨機(jī)下載決策的P2P流量;圖3(b)表示現(xiàn)有技術(shù)中采用 本地最稀缺優(yōu)先(local rarest f irst)下載決策的P2P流量;圖3 (c)表示本發(fā)明的P2P 橢圓表示ISP,A-E表示參與下載的節(jié)點(diǎn)。假設(shè)初始時(shí)刻只有節(jié)點(diǎn)A擁有數(shù)據(jù)塊a、數(shù)
流]
據(jù)塊b、數(shù)據(jù)塊c、數(shù)據(jù)塊d。圖3(a)中,由于采用隨機(jī)下載決策,節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié) 點(diǎn)E可能都向節(jié)點(diǎn)A請(qǐng)求同一個(gè)數(shù)據(jù)塊,如數(shù)據(jù)塊a,這將導(dǎo)致節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E 之間的連接在接下來(lái)的數(shù)據(jù)傳輸周期內(nèi)無(wú)法被利用,數(shù)據(jù)依然需要經(jīng)過(guò)域間鏈路傳輸。圖 3(b)中,節(jié)點(diǎn)采用local rarest first策略進(jìn)行下載決策,但即使如此,也會(huì)導(dǎo)致數(shù)據(jù)分 布的不均勻。例如,節(jié)點(diǎn)B先向節(jié)點(diǎn)A請(qǐng)求數(shù)據(jù)塊a,然后節(jié)點(diǎn)C向節(jié)點(diǎn)A請(qǐng)求數(shù)據(jù)塊,根 據(jù)local rarest f irst策略,則節(jié)點(diǎn)C可以向節(jié)點(diǎn)A請(qǐng)求數(shù)據(jù)塊b,然后節(jié)點(diǎn)D向A請(qǐng)求 數(shù)據(jù),根據(jù)localrarest first策略,節(jié)點(diǎn)D可能會(huì)向節(jié)點(diǎn)A請(qǐng)求數(shù)據(jù)塊a,同樣,節(jié)點(diǎn)E可 能向節(jié)點(diǎn)A請(qǐng)求數(shù)據(jù)塊b,這樣,節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E只擁有數(shù)據(jù)塊a和數(shù)據(jù)塊b, 在經(jīng)過(guò)另一個(gè)傳輸周期后,節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E之間的域內(nèi)鏈路將無(wú)法利用,新數(shù) 據(jù)只能從節(jié)點(diǎn)A獲取。圖3(c)是采用網(wǎng)絡(luò)編碼的情況,在這種情況下,節(jié)點(diǎn)A分別向節(jié)點(diǎn) B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E發(fā)送進(jìn)行隨機(jī)編碼的編碼數(shù)據(jù)塊,當(dāng)有限域足夠大時(shí),如F(28)或F(216),即可保證傳輸給節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E的四個(gè)數(shù)據(jù)塊以很高的概率是線性無(wú) 關(guān),這樣,節(jié)點(diǎn)B、節(jié)點(diǎn)C、節(jié)點(diǎn)D、節(jié)點(diǎn)E之間可以通過(guò)域內(nèi)鏈路完成數(shù)據(jù)的傳輸從而解碼出 原始數(shù)據(jù)塊,實(shí)現(xiàn)最優(yōu)化的資源利用。 圖4是采用本發(fā)明進(jìn)行仿真實(shí)驗(yàn)的結(jié)果,其中仿真實(shí)驗(yàn)的配置如下覆蓋網(wǎng)平均
節(jié)點(diǎn)連接度為10;域內(nèi)與域外邊之比為7 : 3 ;節(jié)點(diǎn)帶寬采用對(duì)稱(chēng)帶寬;源文件僅存在于一
個(gè)節(jié)點(diǎn)上;源文件大小為IOO個(gè)數(shù)據(jù)塊;仿真中不考慮網(wǎng)絡(luò)的動(dòng)態(tài)性。圖4中顯示的是在同
樣的拓?fù)湮恢酶兄畔⒅С窒?即相同的Overlay拓?fù)浜拖嗤挠糜谧鱿螺d決策的拓?fù)湫?br>
息),傳統(tǒng)的采用了 localrarest first下載策略的P2P系統(tǒng)與使用網(wǎng)絡(luò)編碼的P2P系統(tǒng)分
發(fā)相同大小文件時(shí)造成的域間流量。 本發(fā)明的P2P流量?jī)?yōu)化系統(tǒng)如圖5所示。 初始化模塊100和節(jié)點(diǎn)200。 初始化模塊IOO,用于獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)所述網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)
絡(luò),并在初始時(shí),僅運(yùn)行源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)向應(yīng)用文件的源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)。
節(jié)點(diǎn)200結(jié)構(gòu)如圖6所示。 請(qǐng)求響應(yīng)模塊210,用于在節(jié)點(diǎn)200接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編
碼對(duì)所屬節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和所述編碼塊對(duì)應(yīng)的全局編碼系數(shù),將
所述編碼塊和所述全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn)200。 系數(shù)添加模塊220,用于在節(jié)點(diǎn)200接收到請(qǐng)求的數(shù)據(jù)包,獲得所述數(shù)據(jù)包中的全
局編碼系數(shù),將所述全局編碼系數(shù)添加到所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,并將所述全局
編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn)。 下載選擇模塊230,用于在節(jié)點(diǎn)200請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)所述網(wǎng)絡(luò)狀 態(tài)、所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣和所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn) 中選擇下載點(diǎn),并向所述下載點(diǎn)發(fā)送請(qǐng)求。
較佳的,下載選擇模塊230進(jìn)一步包括, 數(shù)值計(jì)算子模塊231,用于對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定所述節(jié)點(diǎn) 的鄰居節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略所述鄰居節(jié)點(diǎn),否則,計(jì)算如下公式的值, <formula>formula see original document page 12</formula>
數(shù)矩陣,
貞X)
卓)
其中,A(X)為所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣,A(Y)為所述鄰居節(jié)點(diǎn)的全局編碼系 樞)—
草)
為A(X)和A(Y)的并置,r[]表示求矩陣的秩c 候選集合生成子模塊232,用于根據(jù)所得值確定是否將鄰居節(jié)點(diǎn)加入候選鄰居集合。 下載點(diǎn)確定子模塊233,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié) 點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求。 較佳的,候選集合生成子模塊232進(jìn)一步用于判斷如果所得值等于O,則忽略所得 值對(duì)應(yīng)的鄰居節(jié)點(diǎn);如果所得值不等于O,則判斷所得值是否小于等于所述節(jié)點(diǎn)同對(duì)應(yīng)鄰 居節(jié)點(diǎn)間正在傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略所述鄰居節(jié)點(diǎn),否則,將所述鄰居節(jié)點(diǎn) 加入候選集合。
較佳的,下載點(diǎn)確定子模塊233進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)在同一 個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn)為下載點(diǎn),如果沒(méi)有同一個(gè)自治系統(tǒng)的節(jié)點(diǎn),則從所述候選集合中 選擇同所述節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰居節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求;如果候選集合為空, 則放棄本次下載嘗試。 較佳的,每個(gè)所述節(jié)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)坐標(biāo), 下載點(diǎn)確定子模塊233進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)網(wǎng)絡(luò)坐標(biāo)的歐 式距離最近的鄰居節(jié)點(diǎn)為下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
較佳的,系統(tǒng)還包括位置服務(wù)器, 位置服務(wù)器用于對(duì)接收到的請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)同候選集合中鄰居節(jié)點(diǎn)的網(wǎng) 絡(luò)距離進(jìn)行排序,返回排序結(jié)果; 下載點(diǎn)確定子模塊233進(jìn)一步用于向位置服務(wù)器發(fā)送請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)和 候選集合中鄰居節(jié)點(diǎn),按排序結(jié)果選擇下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
較佳的,下載點(diǎn)確定子模塊進(jìn)一步用于通過(guò)主動(dòng)探測(cè)的方式獲取自身到候選集合 中鄰居節(jié)點(diǎn)的延遲信息,選擇延遲最小的鄰居節(jié)點(diǎn)作為下載點(diǎn);如果候選集合為空,則放棄 本次下載嘗試。 較佳的,初始化模塊100在獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)時(shí)進(jìn)一步用于通過(guò)節(jié)點(diǎn)之間 的主動(dòng)延遲探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP和AS號(hào)映射方法、IP位置解 析服務(wù)方法或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)。 本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書(shū)確定的本發(fā)明的精神和范圍的條件下,還 可以對(duì)以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限于以上的說(shuō)明,而是由 權(quán)利要求書(shū)的范圍來(lái)確定的。
權(quán)利要求
一種P2P流量?jī)?yōu)化方法,其特征在于,包括步驟1,獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)所述網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),所述覆蓋網(wǎng)絡(luò)中初始時(shí)由應(yīng)用文件的源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)向所述源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù);步驟2,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)所述節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和所述編碼塊對(duì)應(yīng)的全局編碼系數(shù),將所述編碼塊和所述全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn);步驟3,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得所述數(shù)據(jù)包中的全局編碼系數(shù),將所述全局編碼系數(shù)添加到所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,所述節(jié)點(diǎn)將所述全局編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn);步驟4,覆蓋網(wǎng)絡(luò)中節(jié)點(diǎn)在請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)所述網(wǎng)絡(luò)狀態(tài)、所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣和所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載點(diǎn),并向所述下載點(diǎn)發(fā)送請(qǐng)求。
2. 根據(jù)權(quán)利要求1所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟4進(jìn)一步為,步驟21,對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)帶寬是否 已被占滿,如果是,則忽略所述鄰居節(jié)點(diǎn),否則,計(jì)算如下公式的值, —草)單)陣,其中,A(X)為所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣,A(Y)為所述鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩 草,草)為A(X)和A(Y)的并置,r[]表示求矩陣的秩;步驟22,根據(jù)所得值確定是否將鄰居節(jié)點(diǎn)加入候選鄰居集合;步驟23,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)為下載點(diǎn),并發(fā)送 請(qǐng)求。
3. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟22進(jìn)一步為,步驟31,如果所得值等于O,則忽略所得值對(duì)應(yīng)的鄰居節(jié)點(diǎn);步驟32,如果所得值不等于0,則判斷所得值是否小于等于所述節(jié)點(diǎn)同對(duì)應(yīng)鄰居節(jié)點(diǎn) 間正在傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略所述鄰居節(jié)點(diǎn),否則,將所述鄰居節(jié)點(diǎn)加入候 選集合。
4. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟23進(jìn)一步為,步驟41,從候選集合中選擇同所述節(jié)點(diǎn)在同一個(gè)自治系統(tǒng)的鄰居節(jié)點(diǎn)為下載點(diǎn),如果 沒(méi)有同一個(gè)自治系統(tǒng)的節(jié)點(diǎn),則從所述候選集合中選擇同所述節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰 居節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求;步驟42,如果候選集合為空,則放棄本次下載嘗試。
5. 根據(jù)權(quán)利要求1所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟1中獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)進(jìn)一步為,步驟51,通過(guò)節(jié)點(diǎn)之間的主動(dòng)延遲探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP 和AS號(hào)映射方法、IP位置解析服務(wù)方法或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng) 絡(luò)狀態(tài)。
6. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化方法,其特征在于, 每個(gè)所述節(jié)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)坐標(biāo), 所述步驟23進(jìn)一步為,步驟61,從候選集合中選擇同所述節(jié)點(diǎn)網(wǎng)絡(luò)坐標(biāo)的歐式距離最近的鄰居節(jié)點(diǎn)為下載點(diǎn);步驟62,如果候選集合為空,則放棄本次下載嘗試。
7. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟23進(jìn)一步為,步驟71,由位置服務(wù)對(duì)請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)同候選集合中鄰居節(jié)點(diǎn)的網(wǎng)絡(luò)距離進(jìn)行 排序,所述節(jié)點(diǎn)按排序選擇下載點(diǎn);步驟72,如果候選集合為空,則放棄本次下載嘗試。
8. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化方法,其特征在于, 所述步驟23進(jìn)一步為,步驟81,節(jié)點(diǎn)通過(guò)主動(dòng)探測(cè)的方式獲取自身到候選集合中鄰居節(jié)點(diǎn)的延遲信息,選擇 延遲最小的鄰居節(jié)點(diǎn)作為下載點(diǎn);步驟82,如果候選集合為空,則放棄本次下載嘗試。
9. 一種P2P流量?jī)?yōu)化系統(tǒng),其特征在于,包括初始化模塊和節(jié)點(diǎn) 所述初始化模塊,用于獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)所述網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),并在初始時(shí),僅允許應(yīng)用文件的源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)向所述源節(jié)點(diǎn)請(qǐng)求數(shù)據(jù); 所述節(jié)點(diǎn)包括請(qǐng)求響應(yīng)模塊,用于在節(jié)點(diǎn)接收到發(fā)送給自身的請(qǐng)求后,利用隨機(jī)網(wǎng)絡(luò)編碼對(duì)所屬節(jié) 點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和所述編碼塊對(duì)應(yīng)的全局編碼系數(shù),將所述編碼塊 和所述全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn);系數(shù)添加模塊,用于在節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得所述數(shù)據(jù)包中的全局編碼系數(shù), 將所述全局編碼系數(shù)添加到所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,并將所述全局編碼系數(shù)矩陣 發(fā)送給鄰居節(jié)點(diǎn);下載選擇模塊,用于在節(jié)點(diǎn)請(qǐng)求獲得應(yīng)用文件的數(shù)據(jù)時(shí),根據(jù)所述網(wǎng)絡(luò)狀態(tài)、所述節(jié)點(diǎn) 的全局編碼系數(shù)矩陣和所述節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載 點(diǎn),并向所述下載點(diǎn)發(fā)送請(qǐng)求。
10. 根據(jù)權(quán)利要求9所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于, 下載選擇模塊進(jìn)一步包括,數(shù)值計(jì)算子模塊,用于對(duì)于節(jié)點(diǎn)的每個(gè)鄰居節(jié)點(diǎn),根據(jù)網(wǎng)絡(luò)狀態(tài)確定所述節(jié)點(diǎn)的鄰居 節(jié)點(diǎn)帶寬是否已被占滿,如果是,則忽略所述鄰居節(jié)點(diǎn),否則,計(jì)算如下公式的值,網(wǎng) 單)其中,A(X)為所述節(jié)點(diǎn)的全局編碼系數(shù)矩陣,A(Y)為所述鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣,[A(X)A(Y)]為A(X)和A(Y)的并置,r[]表示求矩陣的秩;候選集合生成子模塊,用于根據(jù)所得值確定是否將鄰居節(jié)點(diǎn)加入候選鄰居集合; 下載點(diǎn)確定子模塊,根據(jù)網(wǎng)絡(luò)拓?fù)鋸暮蜻x鄰居集合中選擇網(wǎng)絡(luò)距離最近的節(jié)點(diǎn)為下載 點(diǎn),并發(fā)送請(qǐng)求。
11. 根據(jù)權(quán)利要求10所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于,所述候選集合生成子模塊進(jìn)一步用于判斷如果所得值等于O,則忽略所得值對(duì)應(yīng)的鄰 居節(jié)點(diǎn);如果所得值不等于O,則判斷所得值是否小于等于所述節(jié)點(diǎn)同對(duì)應(yīng)鄰居節(jié)點(diǎn)間正 在傳輸?shù)臄?shù)據(jù)塊的個(gè)數(shù),如果是,則忽略所述鄰居節(jié)點(diǎn),否則,將所述鄰居節(jié)點(diǎn)加入候選集合。
12. 根據(jù)權(quán)利要求10所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于,所述下載點(diǎn)確定子模塊進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)在同一個(gè)自治系統(tǒng) 的鄰居節(jié)點(diǎn)為下載點(diǎn),如果沒(méi)有同一個(gè)自治系統(tǒng)的節(jié)點(diǎn),則從所述候選集合中選擇同所述 節(jié)點(diǎn)最短自治系統(tǒng)跳數(shù)的鄰居節(jié)點(diǎn)為下載點(diǎn),并發(fā)送請(qǐng)求;如果候選集合為空,則放棄本次 下載嘗試。
13. 根據(jù)權(quán)利要求9所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于,所述初始化模塊在獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)時(shí)進(jìn)一步用于通過(guò)節(jié)點(diǎn)之間的主動(dòng)延遲 探測(cè)方法、IP地址前綴匹配方法、BGP路由表的IP和AS號(hào)映射方法、IP位置解析服務(wù)方法 或運(yùn)營(yíng)商提供的位置信息服務(wù)獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài)。
14. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于, 每個(gè)所述節(jié)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)坐標(biāo),所述下載點(diǎn)確定子模塊進(jìn)一步用于從候選集合中選擇同所述節(jié)點(diǎn)網(wǎng)絡(luò)坐標(biāo)的歐式距 離最近的鄰居節(jié)點(diǎn)為下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
15. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于, 所述系統(tǒng)還包括位置服務(wù)器,所述位置服務(wù)器用于對(duì)接收到的請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)同候選集合中鄰居節(jié)點(diǎn)的網(wǎng) 絡(luò)距離進(jìn)行排序,返回排序結(jié)果;所述下載點(diǎn)確定子模塊進(jìn)一步用于向位置服務(wù)器發(fā)送請(qǐng)求應(yīng)用文件的源節(jié)點(diǎn)和候選 集合中鄰居節(jié)點(diǎn),按排序結(jié)果選擇下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
16. 根據(jù)權(quán)利要求2所述的P2P流量?jī)?yōu)化系統(tǒng),其特征在于,所述下載點(diǎn)確定子模塊進(jìn)一步用于通過(guò)主動(dòng)探測(cè)的方式獲取自身到候選集合中鄰居 節(jié)點(diǎn)的延遲信息,選擇延遲最小的鄰居節(jié)點(diǎn)作為下載點(diǎn);如果候選集合為空,則放棄本次下載嘗試。
全文摘要
本發(fā)明涉及P2P流量?jī)?yōu)化方法及其系統(tǒng),方法包括步驟1,獲得網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)狀態(tài),根據(jù)網(wǎng)絡(luò)拓?fù)錁?gòu)造覆蓋網(wǎng)絡(luò),初始時(shí)由應(yīng)用文件的源節(jié)點(diǎn)的鄰居節(jié)點(diǎn)請(qǐng)求數(shù)據(jù);步驟2,節(jié)點(diǎn)接收到請(qǐng)求后,對(duì)節(jié)點(diǎn)已有的數(shù)據(jù)塊進(jìn)行編碼,生成編碼塊和全局編碼系數(shù),將編碼塊和全局編碼系數(shù)封裝成數(shù)據(jù)包發(fā)送給請(qǐng)求的節(jié)點(diǎn);步驟3,節(jié)點(diǎn)接收到請(qǐng)求的數(shù)據(jù)包,獲得全局編碼系數(shù),將全局編碼系數(shù)添加到節(jié)點(diǎn)的全局編碼系數(shù)矩陣中,將全局編碼系數(shù)矩陣發(fā)送給鄰居節(jié)點(diǎn);步驟4,節(jié)點(diǎn)在請(qǐng)求獲得應(yīng)用文件數(shù)據(jù)時(shí),根據(jù)網(wǎng)絡(luò)狀態(tài)、節(jié)點(diǎn)的全局編碼系數(shù)矩陣和鄰居節(jié)點(diǎn)的全局編碼系數(shù)矩陣從鄰居節(jié)點(diǎn)中選擇下載點(diǎn),并向下載點(diǎn)發(fā)送請(qǐng)求。本發(fā)明能夠減少網(wǎng)絡(luò)間數(shù)據(jù)流量節(jié)約帶寬資源。
文檔編號(hào)H04L29/08GK101710904SQ20091024279
公開(kāi)日2010年5月19日 申請(qǐng)日期2009年12月21日 優(yōu)先權(quán)日2009年12月21日
發(fā)明者張國(guó)強(qiáng), 張國(guó)清, 程蘇琦 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所