本發(fā)明屬于計算機網(wǎng)絡(luò)領(lǐng)域,具體的涉及一種適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法
背景技術(shù):
當(dāng)前的因特網(wǎng)已經(jīng)演變成為巨大的、復(fù)雜的系統(tǒng),它由各種各樣的終端用戶、傳輸線路及眾多的路由器連接而成,承載著多樣化的應(yīng)用。在網(wǎng)絡(luò)規(guī)模和用戶數(shù)量不斷膨脹、業(yè)務(wù)環(huán)境日趨復(fù)雜的這一背景之下,調(diào)用更多的網(wǎng)絡(luò)資源來盡力做好分組信息的傳遞,極端的考慮是使用網(wǎng)絡(luò)中所有的鏈路資源來完成到目的節(jié)點的數(shù)據(jù)分組的傳輸,從而達到“盡力傳送”的網(wǎng)絡(luò)設(shè)計目標。多路徑網(wǎng)絡(luò)傳輸是實現(xiàn)這種盡力傳送的重要手段。
在多路徑網(wǎng)絡(luò)中,各用戶使用多條路徑進行數(shù)據(jù)傳輸。一般情況下,用戶的多條路徑?jīng)]有節(jié)點不相交的限制,也就是說,不同的路徑間可能會使用相同的一條或幾條鏈路。數(shù)據(jù)傳輸時,會出現(xiàn)一條路徑流量過載,被長時間過多占用,形成所謂的熱點鏈路,這些熱點鏈路上傳輸負載過大,導(dǎo)致出現(xiàn)局部網(wǎng)絡(luò)擁塞,而在這些鏈路負載過大甚至擁塞的同時,其它路徑傳輸資源空閑或者負載較輕的情況,這種現(xiàn)象稱為多路徑網(wǎng)絡(luò)通信中的擁塞。
針對多路徑網(wǎng)絡(luò)通信這種擁塞現(xiàn)象,設(shè)計一種適用于這種網(wǎng)絡(luò)擁塞控制的方法很有必要。
在多路徑通信網(wǎng)絡(luò)中,可通過調(diào)整數(shù)據(jù)傳輸路徑,通過自適應(yīng)的調(diào)整源端的數(shù)據(jù)發(fā)送速率,利用空閑路徑發(fā)送數(shù)據(jù),合理的在多個源端用戶間分配網(wǎng)絡(luò)資源,可降低網(wǎng)絡(luò)擁塞發(fā)生,提高網(wǎng)絡(luò)帶寬資源利用率,改善用戶上網(wǎng)體驗,實現(xiàn)源端用戶間某種準則上的公平具有重要意義。
多路徑網(wǎng)絡(luò)通信的擁塞控制問題直觀的理解為多個網(wǎng)絡(luò)傳輸路徑的帶寬資源利用率問題,需要掌握鏈路負載和源端用戶發(fā)送速率等大量的參數(shù)信息,因而需要集中化控制。而集中化控制過于復(fù)雜又影響了擁塞控制方法的可擴展性。因此,多路徑網(wǎng)絡(luò)擁塞控制方法要具備簡單易實現(xiàn),可擴展性強的特性。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)中存在不同的路徑間可能會使用相同的一條或幾條鏈路。數(shù)據(jù)傳輸時,會出現(xiàn)一條路徑流量過載,被長時間過多占用,形成所謂的熱點鏈路,這些熱點鏈路上傳輸負載過大,導(dǎo)致出現(xiàn)局部網(wǎng)絡(luò)擁塞等問題,提出一種適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法。
本發(fā)明的技術(shù)方案是:.一種適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,包括以下步驟:
步驟1:從網(wǎng)絡(luò)用戶的角度出發(fā),將多路徑網(wǎng)絡(luò)通信的擁塞控制轉(zhuǎn)化為多路徑帶寬資源利用率最大化方法;
步驟2:將鏈路價格和源端數(shù)據(jù)發(fā)送速率引入帶寬利用率最大化方法中,簡化為多路徑網(wǎng)絡(luò)帶寬利用方法的數(shù)學(xué)求解形式;
步驟3:構(gòu)建鏈路價格和源端數(shù)據(jù)發(fā)送速率之間的關(guān)系;
步驟4:根據(jù)鏈路價格和源端發(fā)送速率之間的關(guān)系,確定速率調(diào)整策略,進而控制源端發(fā)送速率,實現(xiàn)網(wǎng)絡(luò)通信中的擁塞控制。
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,所述步驟2中具體包括定義帶寬利用方法的數(shù)學(xué)規(guī)劃函數(shù)一:
tl(t)≤cl
ε≥0,γ≥0,wl≥0
其中,us()為網(wǎng)絡(luò)帶寬資源利用率函數(shù),xsp(t)為用戶s在路徑p上的傳輸速率,ts(t)為用戶s在各條路徑上的總的傳輸速率,tl(t)為在鏈路l上的所有用戶的傳輸速率,cl為網(wǎng)絡(luò)中鏈路l的帶寬,ε是一個無窮小的正數(shù),wl為鏈路l的控制參數(shù),而
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,為了求解帶寬利用方法的數(shù)學(xué)規(guī)劃函數(shù),引入拉格朗日函數(shù)l(x,t,μ),則
上述函數(shù)包括發(fā)送速率xsp的函數(shù)和鏈路l上的總的數(shù)據(jù)傳輸量tl(t)的函數(shù);由初始問題的函數(shù)l(x,t,μ),得到數(shù)學(xué)規(guī)劃一對偶問題的目標函數(shù)為:
其中
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,引入鏈路l價格μl,依據(jù)對偶理論將網(wǎng)絡(luò)帶寬資源利用率最大化問題轉(zhuǎn)化為最小化整個網(wǎng)絡(luò)系統(tǒng)中的鏈路價格問題,即數(shù)學(xué)規(guī)劃函數(shù)二:
s.t.μl≥0,l∈l
也即:
s.t.μl≥0,l∈l,
其中,
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,所述鏈路端算法和源端算法,利用凸優(yōu)化理論,將需要集中式求解的多路徑擁塞控制問題轉(zhuǎn)化為分布式的鏈路端和源端流量控制算法,
利用數(shù)學(xué)規(guī)劃函數(shù)二求得其導(dǎo)數(shù)為
利用梯度投影算法,得到各條鏈路的價格更新算法:
其中,βu是迭代步長,在得到各條鏈路的價格后,利用數(shù)學(xué)規(guī)劃函數(shù)二得各源端的數(shù)據(jù)發(fā)送速率表達式:
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,所述鏈路端價格生成算法步驟如下:
步驟201:在任一采樣時刻,針對某一傳輸鏈路,收集經(jīng)過該鏈路的所有源端發(fā)送速率xsp(t);
步驟202:基于步驟201得到的發(fā)送速率,計算當(dāng)前鏈路負載
步驟203:基于鏈路負載,更新當(dāng)前周期的鏈路價格,得到新的鏈路價格
步驟204:將新的鏈路價格分別發(fā)送給所有使用當(dāng)前鏈路的源端。
所述的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,所述源端發(fā)送速率生成算法步驟如下:
步驟301:在任一采樣時刻,針對任一源端用戶,從網(wǎng)絡(luò)中接收該用戶某一傳輸路徑上經(jīng)過的所有鏈路的價格信息
步驟302,根據(jù)收集到的鏈路價格信息,得到下一個周期在該路徑上新的數(shù)據(jù)發(fā)送速率
步驟303,以更新的速率xsp(t+1)為源端在當(dāng)前路徑上的發(fā)送數(shù)據(jù)速率。
本發(fā)明的有益效果是:與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
1、簡單易實現(xiàn),將多路徑網(wǎng)絡(luò)的擁塞控制問題轉(zhuǎn)化為多路徑網(wǎng)絡(luò)資源利用率最大化問題,引入源端發(fā)送速率和鏈路價格兩個變量,簡化了資源利用率最大化問題,簡單易實現(xiàn);
2、具有經(jīng)濟含義,更具實際意義,將鏈路價格考慮進資源利用率問題,使用戶和網(wǎng)絡(luò)服務(wù)商從經(jīng)濟的角度來體驗和提供服務(wù),更具實際意義。
3、擴展性強,資源利用率最大化問題等價轉(zhuǎn)化后,分解成兩個子問題,提供了分布式控制的基礎(chǔ),由此設(shè)計的鏈路端算法和源端算法,在實際網(wǎng)絡(luò)中具有較好的可擴展性。
附圖說明
圖1為本發(fā)明實施例提供的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法實現(xiàn)步驟流程示意圖;
圖2為本發(fā)明實施例提供的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法的鏈路端價格生成算法的步驟流程示意圖;
圖3為本發(fā)明實施例提供的適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法的源端發(fā)送速率生成算法的步驟流程示意圖;
圖4為本發(fā)明實施例提供的基于時間窗口的實際實現(xiàn)步驟流程示意圖。
具體實施方式
實施例1:結(jié)合圖1-圖4,一種適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法,對于網(wǎng)絡(luò)中的用戶,在多條路徑的發(fā)送速率滿足一定的關(guān)系。對于固定帶寬的鏈路,在該鏈路上傳輸?shù)臄?shù)據(jù)流量總和不應(yīng)該超過鏈路自身的帶寬。
步驟1,進行多路徑網(wǎng)絡(luò)通信擁塞控制問題初始化,將多路徑擁塞控制問題轉(zhuǎn)化為網(wǎng)絡(luò)帶寬資源利用率最大化問題,即數(shù)學(xué)規(guī)劃函數(shù)一。
在數(shù)學(xué)規(guī)劃函數(shù)一的表達式中,第一項是網(wǎng)絡(luò)資源利用率的表達式,第二項中ε是一個無窮小的正數(shù),加入此項是為了保證數(shù)學(xué)規(guī)劃是嚴格的凹函數(shù),第三項是流量工程的表達式,當(dāng)γ取非常小的正數(shù)時,數(shù)學(xué)規(guī)劃的目標主要是基于網(wǎng)絡(luò)鏈路利用率的擁塞控制;而當(dāng)γ取非常大的正數(shù)時,數(shù)學(xué)規(guī)劃的目標主要是從流量工程的角度出發(fā),避免鏈路過載。參數(shù)wl可被視作鏈路l的控制參數(shù),當(dāng)鏈路l為瓶頸鏈路或關(guān)鍵鏈路時,wl可以被設(shè)置的非常大,來保證在此瓶頸鏈路上可以處理一些流量突發(fā),盡量避免瓶頸鏈路上出現(xiàn)流量擁塞;當(dāng)鏈路l為非瓶頸鏈路或非關(guān)鍵鏈路時,wl可以被設(shè)為零值或非常小的值。
數(shù)學(xué)規(guī)劃函數(shù)一:
tl(t)≤cl
ε≥0,γ≥0,wl≥0
其中,us()為網(wǎng)絡(luò)帶寬資源利用率函數(shù),xsp(t)為用戶s在路徑p上的傳輸速率,ts(t)為用戶s在各條路徑上的總的傳輸速率,tl(t)為在鏈路l上的所有用戶的傳輸速率,cl為網(wǎng)絡(luò)中鏈路l的帶寬,而
為了求解數(shù)學(xué)規(guī)劃函數(shù)一,引入拉格朗日函數(shù)l(x,t,μ),定義其為如下形式:
上述的lagrange函數(shù)包含了兩項內(nèi)容,第一項是關(guān)于用戶的發(fā)送速率xsp的函數(shù),而第二項是關(guān)于鏈路l上的總的數(shù)據(jù)傳輸量tl(t)的函數(shù)。由初始問題的lagrange函數(shù)l(x,t,μ),可以得到數(shù)學(xué)規(guī)劃函數(shù)一對偶問題的目標函數(shù)為:
其中
步驟3,引入鏈路l價格μl,根據(jù)步驟1中函數(shù)的凸優(yōu)化本質(zhì),依據(jù)對偶理論將網(wǎng)絡(luò)帶寬資源利用率最大化問題轉(zhuǎn)化為最小化整個網(wǎng)絡(luò)系統(tǒng)中的鏈路價格問題,即數(shù)學(xué)規(guī)劃函數(shù)二。可以理解為是在網(wǎng)絡(luò)中各用戶獲得一定滿意度的前提下,最小化網(wǎng)絡(luò)中的鏈路價格。
數(shù)學(xué)規(guī)劃函數(shù)二:
s.t.μl≥0,l∈l
也即:
s.t.μl≥0,l∈l
其中,
至此,數(shù)學(xué)規(guī)劃函數(shù)一被分解成了兩個子問題。也就是說,給定一個拉格朗日乘子μl,可以得到兩個子問題:源端的速率控制子問題和鏈路的速率控制子問題。而拉格朗日乘子μl可以看作是調(diào)節(jié)兩個子問題的影子價格。
對偶問題的目標函數(shù)d(μ)被分解為獨立的源端的速率控制子問題
其中,源端的速率控制子問題
鏈路端的速率控制子問題bl(μl)對應(yīng)于網(wǎng)絡(luò)的傳輸層,將用戶、路徑與鏈路聯(lián)系起來,決定了用戶在路徑上的傳輸速率和價格。
基于上述兩個子問題,設(shè)計鏈路端算法和源端算法,由此,利用凸優(yōu)化理論,將需要集中式求解的多路徑擁塞控制問題轉(zhuǎn)化為分布式的鏈路端和源端流量控制算法。
由數(shù)學(xué)規(guī)劃函數(shù)二可求得其導(dǎo)數(shù)為
由梯度投影算法,可以得到各條鏈路的價格更新算法:
在上式中,βu是迭代步長,在得到各條鏈路的價格后,由數(shù)學(xué)規(guī)劃函數(shù)二可得各源端的數(shù)據(jù)發(fā)送速率表達式。
適用于多路徑網(wǎng)絡(luò)通信的擁塞控制方法中,分布式計算方法分為鏈路端算法和源端算法。其中鏈路端價格生成算法步驟如下:
步驟201,在任一采樣時刻,針對某一傳輸鏈路,收集經(jīng)過該鏈路的所有源端發(fā)送速率xsp(t);
步驟202,基于步驟1得到的發(fā)送速率,計算當(dāng)前鏈路負載
步驟203,基于鏈路負載,更新當(dāng)前周期的鏈路價格,得到新的鏈路價格
步驟204,將新的鏈路價格分別發(fā)送給所有使用當(dāng)前鏈路的源端。
源端發(fā)送速率生成算法步驟如下:
步驟301,在任一采樣時刻,針對任一源端用戶,從網(wǎng)絡(luò)中接收該用戶某一傳輸路徑上經(jīng)過的所有鏈路的價格信息
步驟302,根據(jù)收集到的鏈路價格信息,得到下一個周期在該路徑上新的數(shù)據(jù)發(fā)送速率
步驟303,以更新的速率xsp(t+1)為源端在當(dāng)前路徑上的發(fā)送數(shù)據(jù)速率;
所述步驟4具體包括,基于窗口的實際算法實現(xiàn)過程步驟如下:
步驟1:計算周期t開始;
步驟2:利用周期內(nèi)時延帶來的負載變化來評估鏈路負載;
步驟3:根據(jù)新評估出的鏈路負載更新鏈路價格;
步驟4:利用鏈路價格和源端發(fā)送速率的關(guān)系式,判斷源端發(fā)送速率是否過大;若發(fā)送速率過大,則進入步驟5;否則,發(fā)送速率不更新,進入步驟6;
步驟5:將二者關(guān)系式生成的差值作為更新源端發(fā)送速率的一個變量,用新生成的源端發(fā)送速率更新;
步驟6:等待下一個周期,進入步驟1。
所述步驟4具體為:假定源端s到目的端d有三條傳輸路徑path1,path2,path3,其中路徑path1由鏈路l1、l2、l3組成,路徑path2由鏈路l4、l5、l6組成,路徑path3由鏈路l7、l8、l9組成。各鏈路對應(yīng)的時延分別為d1、d2、...、d9。以路徑path1為例,由時延d1、d2、d3計算出path1的反饋時延,然后由此設(shè)定path1的源端發(fā)送速率更新周期t。在周期t內(nèi),獲得鏈路l1、l2、l3在這段時間內(nèi)新收到的比特數(shù)值b1,b2,b3。由b1,b2,b3計算出時刻t,path1的鏈路負載load_path1,其中l(wèi)oad_path1=b1+b2+b3?;趌oad_path1更新path1的鏈路價格p_new,其中