本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其是一種基于價格機制的跨層p2p資源共享網(wǎng)絡(luò)帶寬公平分配算法。
背景技術(shù):
p2p網(wǎng)絡(luò)是一種通過整合網(wǎng)絡(luò)邊緣的存儲、計算、文件等各類資源從而實現(xiàn)資源共享的系統(tǒng)。不同于傳統(tǒng)的客戶/服務(wù)器模式,p2p采取了分布式資源共享的工作模式,網(wǎng)絡(luò)中每個節(jié)點都可以為整個網(wǎng)絡(luò)貢獻資源,如提供文件共享與下載。因此,隨著網(wǎng)絡(luò)中節(jié)點的增多,網(wǎng)絡(luò)可提供的服務(wù)能力也會增加,系統(tǒng)規(guī)模的增大反而容易滿足用戶獲取資源的需求。
p2p資源共享網(wǎng)絡(luò)中,一個需求資源的節(jié)點可以由多個其他節(jié)點提供服務(wù),從而克服了集中式服務(wù)器的局限性,極大地提高了網(wǎng)絡(luò)資源的使用效率,改善了需求網(wǎng)絡(luò)資源的用戶的服務(wù)質(zhì)量。目前,已有成熟的軟件實現(xiàn)了p2p網(wǎng)絡(luò)資源共享與下載,如bt(bittoitent)、emuie(verycd)、迅雷(thunder)等軟件通過提供豐富的影像、文件、圖書資料等資源以及良好的用戶體驗,吸引了龐大的用戶群體,從而實現(xiàn)了大范圍內(nèi)的資源共享。
p2p資源共享網(wǎng)絡(luò)中,每個節(jié)點在獲取其他節(jié)點提供的服務(wù)時,都想最大化自己的下載帶寬,從而提高自己的用戶體驗和滿意度。因此,如何將提供資源服務(wù)的節(jié)點的上傳帶寬在服務(wù)請求者之間進行公平分配就變得非常重要。目前也有相關(guān)文獻提出p2p資源共享網(wǎng)絡(luò)的帶寬分配方案。例如,中國專利申請?zhí)?01510778746.x,公開日2016.03.30,名稱為“一種基于價格機制的p2p文件共享網(wǎng)絡(luò)中帶寬分配算法”的專利,設(shè)計了一類基于價格機制的p2p文件共享網(wǎng)絡(luò)中帶寬分配算法,用于實現(xiàn)資源提供者的上傳帶寬在資源需求者間的公平分配。中國專利申請?zhí)?016100813716,公開日2016.06.29,名稱為“基于效用優(yōu)化的p2p文件共享網(wǎng)絡(luò)帶寬公平分配算法”的專利,設(shè)計了基于效用優(yōu)化的p2p文件共享網(wǎng)絡(luò)帶寬公平分配算法,可以實現(xiàn)耦合型和非耦合型的帶寬資源分配效用優(yōu)化問題的最優(yōu)點。
在學術(shù)論文方面,《東南大學學報(自然科學版)》2008第s1期“一種基于博弈論的對等網(wǎng)絡(luò)帶寬分配方案”為解決對等網(wǎng)絡(luò)中多個異構(gòu)下載節(jié)點從多個源節(jié)點下載的帶寬分配問題,提出一種基于注水算法及能夠容納自私節(jié)點的對等網(wǎng)絡(luò)帶寬分配方案?!队嬎銠C應(yīng)用》2015第6期“基于網(wǎng)絡(luò)編碼的對等網(wǎng)流媒體網(wǎng)絡(luò)中優(yōu)化的帶寬分配策略”針對采用了網(wǎng)絡(luò)編碼技術(shù)的p2p流媒體系統(tǒng)應(yīng)用,提出一種基于負載轉(zhuǎn)移的節(jié)點帶寬資源均衡策略,盡可能避免節(jié)點選擇鄰居節(jié)點并請求帶寬資源的隨意性形成的節(jié)點過載?!队嬎銠C應(yīng)用》2015第9期“基于納什議價的對等網(wǎng)絡(luò)資源分配”提出了保證節(jié)點最小服務(wù)質(zhì)量的一種基于納什議價的資源分配方案,得到合作節(jié)點比非合作節(jié)點獲得更多的資源,而且證明了合作博弈中節(jié)點的相對議價權(quán)力越大,節(jié)點獲得的資源越多,收益越大。
上述文獻基本上都是從對等網(wǎng)絡(luò)應(yīng)用層角度設(shè)計帶寬分配算法、流量控制算法和資源管理算法等,并沒有考慮這些帶寬分配算法如何與現(xiàn)有骨干網(wǎng)絡(luò)如ip網(wǎng)絡(luò)融合,即沒有將應(yīng)用層的帶寬分配算法與ip網(wǎng)絡(luò)中流量控制結(jié)合起來。實際上,p2p應(yīng)用已經(jīng)成為ip網(wǎng)絡(luò)資源的最大消耗者,很大程度上超過了web、e-mail、ftp等的數(shù)據(jù)流量而成為骨干網(wǎng)絡(luò)的主要負擔,甚至會引起網(wǎng)絡(luò)擁塞,從而降低和影響其它業(yè)務(wù)的性能。本專利將對等網(wǎng)絡(luò)的帶寬公平分配和ip網(wǎng)絡(luò)鏈路帶寬分配結(jié)合起來,實現(xiàn)了p2p網(wǎng)絡(luò)和ip網(wǎng)絡(luò)的跨層帶寬分配,在滿足對等網(wǎng)絡(luò)中節(jié)點資源共享和下載的同時,有效控制骨干網(wǎng)中的流量,避免骨干網(wǎng)絡(luò)擁塞,提高網(wǎng)絡(luò)性能。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于提供一種分配公平合理、節(jié)點資源有效共享和下載、同時又能控制骨干網(wǎng)絡(luò)流量的跨層p2p資源共享網(wǎng)絡(luò)帶寬公平分配算法。
為實現(xiàn)上述目的,采用了以下技術(shù)方案:本發(fā)明算法主要包括p2p對等網(wǎng)絡(luò)、服務(wù)請求者s、服務(wù)提供者p及ip網(wǎng)絡(luò)鏈路l:
本發(fā)明所述算法步驟如下:
步驟1,在p2p對等網(wǎng)絡(luò)中,提供下載業(yè)務(wù)的服務(wù)提供者p初始化帶寬分配,在t時刻為每一個服務(wù)請求者s初始化分配的帶寬xps[t];
步驟2,若此時帶寬分配xps[t]已經(jīng)是資源分配模型的最優(yōu)點,則算法結(jié)束,服務(wù)提供者p按照此速率向服務(wù)請求者s傳輸數(shù)據(jù);若此時帶寬分配xps[t]不是資源分配模型的最優(yōu)點,則進行下一步驟;
步驟3,在t時刻,每一個服務(wù)請求者s根據(jù)各個服務(wù)提供者p為其分配的帶寬xps[t],計算服務(wù)請求者s得到的聚合帶寬ys[t];
式中,s是服務(wù)請求者;p是服務(wù)提供者;p(s)是為服務(wù)請求者s提供下載業(yè)務(wù)的服務(wù)提供者集合;
步驟4,在t時刻,每一個服務(wù)請求者s根據(jù)其得到的聚合帶寬ys[t],計算其應(yīng)該支付給整個網(wǎng)絡(luò)的價格λs[t];
式中,ws是服務(wù)請求者s支付的費用;ε>0是一個小的正數(shù),避免服務(wù)請求者s支付的價格λs[t]過大;
步驟5,在t時刻,ip網(wǎng)絡(luò)中的鏈路l初始化鏈路l收取的價格μl[t];
步驟6,ip網(wǎng)絡(luò)中的鏈路l根據(jù)途經(jīng)鏈路的流量xps[t]計算得到該鏈路上的聚合流量zl[t];
式中,s(p)是服務(wù)提供者p提供下載業(yè)務(wù)的所有服務(wù)請求者的集合;p是所有服務(wù)提供者的集合;xps[t]是服務(wù)提供者p為服務(wù)請求者s分配的帶寬,
步驟7,鏈路l根據(jù)該鏈路上的聚合流量zl[t]與其本身的鏈路帶寬cl,調(diào)整在t+1時刻其收取的價格μl[t+1];
式中,β>0是迭代步長;cl是鏈路l的帶寬;
若μl[t]>0,則
若μl[t]=0,則
步驟8,服務(wù)請求者s根據(jù)支付給網(wǎng)絡(luò)的價格λs[t]和ip網(wǎng)絡(luò)中鏈路l收取的價格μl[t],計算得到應(yīng)支付給服務(wù)提供者p的實際價格γps[t];
式中,l(p,s)是從服務(wù)提供者p到服務(wù)請求者s的路徑,該路徑是鏈路集合l的非空子集,若鏈路l在路徑l(p,s)上,則
步驟9,服務(wù)提供者p根據(jù)為每一個服務(wù)請求者d分配的帶寬xpd[t],及每一個服務(wù)請求者d支付給服務(wù)提供者p的價格γpd[t],計算得到服務(wù)提供者p的期望價格ξp[t];
式中,s(p)是服務(wù)提供者p提供下載業(yè)務(wù)的所有服務(wù)請求者的集合;xpd[t]是服務(wù)提供者p為服務(wù)請求者d分配的帶寬;γpd[t]是服務(wù)請求者d支付給服務(wù)提供者p的實際價格;cp是服務(wù)提供者p的上傳帶寬;
步驟10,服務(wù)提供者p根據(jù)為每一個服務(wù)請求者s分配的帶寬xps[t],及每一個服務(wù)請求者s支付給服務(wù)提供者p的價格γps[t],及服務(wù)提供者p的期望價格ξp[t],調(diào)整t+1時刻為服務(wù)請求者s分配的帶寬xps[t+1]
式中,α>0是迭代步長;xps[t]是服務(wù)提供者p為服務(wù)請求者s分配的帶寬;
若xps[t]>0,則
若xps[t]=0,則
步驟11,各個服務(wù)提供者p根據(jù)上述步驟迭代直至達到最優(yōu)點,即服務(wù)提供者上傳帶寬在服務(wù)請求者間的最優(yōu)分配;
步驟12,如果網(wǎng)絡(luò)中有新的服務(wù)提供者或服務(wù)請求者加入,或者原有的服務(wù)提供者或服務(wù)請求者退出,則上述迭代過程重新進行直至達到新的最優(yōu)點。
與現(xiàn)有技術(shù)相比,本發(fā)明方法具有如下優(yōu)點:
1、能夠有效收斂到p2p資源共享網(wǎng)絡(luò)中服務(wù)提供者的上傳帶寬分配的最優(yōu)點,實現(xiàn)服務(wù)提供者的上傳帶寬在服務(wù)請求者之間的公平分配。
2、考慮了p2p網(wǎng)絡(luò)與ip骨干網(wǎng)絡(luò)的融合,實現(xiàn)了基于跨層優(yōu)化思想的帶寬最優(yōu)分配,在滿足對等網(wǎng)絡(luò)中節(jié)點資源共享和下載的同時,有效控制骨干網(wǎng)中的流量,避免骨干網(wǎng)絡(luò)擁塞,提高網(wǎng)絡(luò)性能。
附圖說明
圖1是本發(fā)明算法的步驟流程圖。
圖2本發(fā)明算法的6個用戶網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖。
圖3是圖2中服務(wù)請求者s1獲得的最優(yōu)帶寬分配圖。
圖4是圖2中服務(wù)請求者s2獲得的最優(yōu)帶寬分配圖。
圖5是圖2中服務(wù)請求者s3獲得的最優(yōu)帶寬分配圖。
圖6是圖2中服務(wù)請求者s4獲得的最優(yōu)帶寬分配圖。
圖7是不同網(wǎng)絡(luò)規(guī)模時的網(wǎng)絡(luò)聚合效用圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步說明:
本發(fā)明算法主要包括p2p對等網(wǎng)絡(luò)、服務(wù)請求者s、服務(wù)提供者p及ip網(wǎng)絡(luò)鏈路l,在p2p對等網(wǎng)絡(luò)中,服務(wù)請求者s要獲得服務(wù)提供者p提供的服務(wù),如文件共享與下載等,為此服務(wù)提供者p就要為服務(wù)請求者s分配其上傳帶寬,并通過現(xiàn)有ip網(wǎng)絡(luò)完成數(shù)據(jù)傳輸服務(wù)。服務(wù)提供者p根據(jù)服務(wù)請求者s支付的價格和鏈路l收取的價格,計算得到服務(wù)提供者p為服務(wù)請求者s分配的最優(yōu)帶寬。
所述算法步驟如下:
步驟1,在p2p對等網(wǎng)絡(luò)中,提供下載業(yè)務(wù)的服務(wù)提供者p初始化帶寬分配,在t時刻為每一個服務(wù)請求者s初始化分配的帶寬xps[t];
步驟2,若此時帶寬分配xps[t]已經(jīng)是資源分配模型的最優(yōu)點,則算法結(jié)束,服務(wù)提供者p按照此速率向服務(wù)請求者s傳輸數(shù)據(jù);若此時帶寬分配xps[t]不是資源分配模型的最優(yōu)點,則進行下一步驟;
步驟3,在t時刻,每一個服務(wù)請求者s根據(jù)各個服務(wù)提供者p為其分配的帶寬xps[t],計算其得到的聚合帶寬ys[t];
式中,s是服務(wù)請求者;p是服務(wù)提供者;p(s)是為服務(wù)請求者s提供下載業(yè)務(wù)的服務(wù)提供者集合。
步驟4,在t時刻,每一個服務(wù)請求者s根據(jù)其得到的聚合帶寬ys[t],計算其應(yīng)該支付給整個網(wǎng)絡(luò)的價格λs[t];
式中,ws是服務(wù)請求者s支付的費用;ε>0是一個小的正數(shù),從而避免服務(wù)請求者s支付的價格λs[t]過大。
步驟5,在t時刻,ip網(wǎng)絡(luò)中的鏈路l初始化其收取的價格μl[t];
步驟6,ip網(wǎng)絡(luò)中的鏈路l根據(jù)途經(jīng)其鏈路的流量xps[t]計算得到該鏈路上的聚合流量zl[t];
式中,s(p)是服務(wù)提供者p提供下載業(yè)務(wù)的所有服務(wù)請求者的集合;p是所有服務(wù)提供者的集合;xps[t]是服務(wù)提供者p為服務(wù)請求者s分配的帶寬,
步驟7,鏈路l根據(jù)該鏈路上的聚合流量zl[t]與其本身的鏈路帶寬cl,調(diào)整在t+1時刻其收取的價格μl[t+1];
式中,β>0是迭代步長;cl是鏈路l的帶寬;
若μl[t]>0,則
若μl[t]=0,則
步驟8,服務(wù)請求者s根據(jù)其支付給網(wǎng)絡(luò)的價格λs[t]和ip網(wǎng)絡(luò)中鏈路l收取的價格μl[t],計算得到應(yīng)支付給服務(wù)提供者p的實際價格γps[t];
式中,l(p,s)是從服務(wù)提供者p到服務(wù)請求者s的路徑,該路徑是鏈路集合l的非空子集,若鏈路l在路徑l(p,s)上,則
步驟9,服務(wù)提供者p根據(jù)為每一個服務(wù)請求者d分配的帶寬xpd[t],及每一個服務(wù)請求者d支付給服務(wù)提供者p的價格γpd[t],計算得到服務(wù)提供者p的期望價格ξp[t];
式中,s(p)是服務(wù)提供者p提供下載業(yè)務(wù)的所有服務(wù)請求者的集合;xpd[t]是服務(wù)提供者p為服務(wù)請求者d分配的帶寬;γpd[t]是服務(wù)請求者d支付給服務(wù)提供者p的實際價格;cp是服務(wù)提供者p的上傳帶寬。
步驟10,服務(wù)提供者p根據(jù)為每一個服務(wù)請求者s分配的帶寬xps[t],及每一個服務(wù)請求者s支付給服務(wù)提供者p的價格γps[t],及服務(wù)提供者p的期望價格ξp[t],調(diào)整t+1時刻為服務(wù)請求者s分配的帶寬xps[t+1]
式中,α>0是迭代步長;xps[t]是服務(wù)提供者p為服務(wù)請求者s分配的帶寬;
若xps[t]>0,則
若xps[t]=0,則
步驟11,各個服務(wù)提供者p根據(jù)上述步驟迭代直至達到最優(yōu)點,即服務(wù)提供者上傳帶寬在服務(wù)請求者間的最優(yōu)分配;
步驟12,如果網(wǎng)絡(luò)中有新的服務(wù)提供者或服務(wù)請求者加入,或者原有的服務(wù)提供者或服務(wù)請求者退出,則上述迭代過程重新進行直至達到新的最優(yōu)點。
本發(fā)明方法將應(yīng)用層的帶寬分配算法與ip網(wǎng)絡(luò)中流量控制結(jié)合起來。實際上,p2p應(yīng)用已經(jīng)成為ip網(wǎng)絡(luò)資源的最大消耗者,很大程度上超過了web、e-mail、ftp等的數(shù)據(jù)流量而成為骨干網(wǎng)絡(luò)的主要負擔,甚至會引起網(wǎng)絡(luò)擁塞,從而降低和影響其它業(yè)務(wù)的性能。本發(fā)明方法將對等網(wǎng)絡(luò)的帶寬公平分配和ip網(wǎng)絡(luò)鏈路帶寬分配結(jié)合起來,實現(xiàn)基于跨層優(yōu)化的網(wǎng)絡(luò)帶寬公平分配方案,在滿足對等網(wǎng)絡(luò)中節(jié)點資源共享和下載的同時,有效控制骨干網(wǎng)中的流量,避免骨干網(wǎng)絡(luò)擁塞,提高網(wǎng)絡(luò)性能。
跨層p2p資源分配模型實際上是一個跨層優(yōu)化問題,同時研究了應(yīng)用層的流量控制和傳輸層的擁塞控制兩個問題。這里包含了三個不同實體,分別為服務(wù)請求者(即客戶端)、服務(wù)提供者(即服務(wù)器)和服務(wù)承載者(即鏈路)。
跨層p2p資源分配模型為:
p2p+ip:
式中,s是服務(wù)請求者(即客戶端);p是服務(wù)提供者(即服務(wù)器);l是網(wǎng)絡(luò)中的服務(wù)承載者(即鏈路);s是服務(wù)請求者的集合;p是服務(wù)提供者的集合;l是網(wǎng)絡(luò)中鏈路的集合;p(s)是為服務(wù)請求者s提供下載業(yè)務(wù)的服務(wù)提供者集合;s(p)是服務(wù)提供者p提供下載業(yè)務(wù)的所有服務(wù)請求者的集合;xps是服務(wù)請求者s從服務(wù)提供者p處獲得的帶寬,則服務(wù)請求者s獲得的總帶寬就是ys,同時,服務(wù)提供者p為所有服務(wù)請求者提供的帶寬之和不超過其自身的上傳帶寬cp;而cl是鏈路l的帶寬,
在多源下載的p2p業(yè)務(wù)中,一個服務(wù)請求者可以從多個服務(wù)提供者處下載同一文件,因此形成了目的地是同一個服務(wù)請求者的多個數(shù)據(jù)流,而每個數(shù)據(jù)流都有自己的傳輸路徑。為此,定義從服務(wù)提供者p到服務(wù)請求者s的路徑為l(p,s),該路徑是鏈路集合l的非空子集,若鏈路l在路徑l(p,s)上,則
這里,最大化所有服務(wù)請求者的聚合效用是整個p2p網(wǎng)絡(luò)的目標,該問題存在服務(wù)提供者的上傳帶寬和網(wǎng)絡(luò)鏈路的傳輸帶寬的約束條件,對于上述的效用函數(shù)us(ys)=wslogys,則該資源分配問題對于變量ys是嚴格凸優(yōu)化問題,每個服務(wù)請求者s均存在全局最優(yōu)的聚合帶寬值
上述資源分配問題的拉格朗日函數(shù)為
式中,λs、νp和μl都是拉格朗日因子,np和ml是松弛變量。此處,拉格朗日因子可解釋為網(wǎng)絡(luò)中單位帶寬的價格,則λs是服務(wù)請求者s所支付的單位帶寬價格,νp是服務(wù)提供者p收取的單位帶寬價格,μl是鏈路l收取的單位帶寬價格。
對上述拉格朗日函數(shù)分解可以得到三個子問題:
client(s)
maxus(ys)-λsys
overys≥0,s∈s
server(p)
overxps≥0,s∈s,p∈p
link(l)
maxμl(cl-ml)
overμl≥0,l∈l
可以從經(jīng)濟學的角度給出上述三個子問題的實際含義:
子問題client(s):由于p2p網(wǎng)絡(luò)中每個服務(wù)請求者都是自私的,都想使得自己的效用達到最大,而效用的大小依賴于它所獲得的聚合帶寬ys。同時,服務(wù)請求者在獲得相應(yīng)帶寬時,要支付其使用該帶寬的費用。由于λs可以理解為用戶支付的每單位帶寬的費用,那么us(ys)-λsys就是服務(wù)請求者s獲得的收益,即用戶獲得的效用與支付的費用之間的差值。
子問題server(p):λsxps是服務(wù)請求者s在獲得服務(wù)提供者p提供的帶寬為xps時而支付的費用?!苐:l∈l(p,s)μl是從服務(wù)提供者p到服務(wù)請求者s的路徑l(p,s)收取的價格,xps∑l:l∈l(p,s)μl就是該路徑為服務(wù)請求者s承載傳輸服務(wù)而收取的費用。該子問題的實際含義就是,在自身上傳帶寬一定的前提下,最大化為服務(wù)請求者提供文件下載服務(wù)而獲得的收益。
子問題link(l):松弛因子ml是鏈路l的剩余帶寬,則cl-ml就是已經(jīng)分配給各個服務(wù)請求者s用于傳輸數(shù)據(jù)而使用的帶寬。由于μl是鏈路l收取的每單位帶寬的價格,因此μl(cl-ml)就是鏈路l的收益。
收斂性分析
收斂性是衡量算法性能的重要指標。本發(fā)明方法首先考慮了2個服務(wù)提供者p1、p2,4個服務(wù)請求者s1、s2、s3、s4的情形,如圖2所示,服務(wù)提供者p1、p2的上傳帶寬分別為20mbps,25mbps,ip骨干網(wǎng)絡(luò)中鏈路帶寬為1000mbps,服務(wù)請求者s1、s2、s3、s4的支付費用分別為5,10,15,20,算法步長α=β=0.05,濾波因子θ=0.2,參數(shù)ε=0.01。
本發(fā)明分析了服務(wù)提供者的上傳帶寬在服務(wù)請求者之間的公平分配,各仿真結(jié)果如圖3、4、5、6所示,例如在圖6中,當?shù)螖?shù)僅為50次時,算法就已經(jīng)收斂到了最優(yōu)點,此時服務(wù)提供者p1為服務(wù)請求者s4分配的最優(yōu)帶寬為8.1704mbps,服務(wù)提供者p2為服務(wù)請求者s4分配的最優(yōu)帶寬為9.8296mbps,而服務(wù)請求者s4獲得的最優(yōu)總帶寬為18mbps。因此,算法能夠在有限的迭代次數(shù)內(nèi)有效的收斂到資源分配模型的最優(yōu)點。
接下來分析當網(wǎng)絡(luò)中節(jié)點數(shù)量增多時算法的性能,此時服務(wù)提供者的上傳帶寬均為20mbps,服務(wù)請求者提供的支付費用均為10,仿真結(jié)果如圖7所示。可以發(fā)現(xiàn),隨著網(wǎng)絡(luò)規(guī)模(網(wǎng)絡(luò)中服務(wù)請求者和服務(wù)提供者數(shù)量)的增大,算法仍能有效收斂到資源分配模型的最優(yōu)點。
以上所述的實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設(shè)計精神的前提下,本領(lǐng)域普通技術(shù)人員對本發(fā)明的技術(shù)方案做出的各種變形和改進,均應(yīng)落入本發(fā)明權(quán)利要求書確定的保護范圍內(nèi)。