本發(fā)明涉及無線網(wǎng)絡(luò)通信領(lǐng)域,特別是解決無線網(wǎng)絡(luò)傳輸中的擁塞問題,具體講,涉及基于garch(廣義自回歸條件異方差)時間序列算法的擁塞控制機制。
背景技術(shù):
隨著無線網(wǎng)絡(luò)的盛行,互聯(lián)網(wǎng)的崛起,移動終端更是數(shù)不勝數(shù),pc機、移動手機、mac等終端設(shè)備對網(wǎng)絡(luò)的依賴越來越高,因此網(wǎng)絡(luò)擁塞現(xiàn)象隨處可見。如何解決網(wǎng)絡(luò)擁堵現(xiàn)象一直成為困擾網(wǎng)絡(luò)提供商的難題。在確保不增大帶寬的前提下如何充分利用現(xiàn)有帶寬,減少網(wǎng)絡(luò)擁塞是每個網(wǎng)絡(luò)提供商非常關(guān)注的話題,也是給公司或企業(yè)帶來更高效益的發(fā)展目標。如果一味增大帶寬會帶來技術(shù)、研發(fā)以及設(shè)備上的更多的投入以至于增大成本,而網(wǎng)絡(luò)利用率也并不一定會因為帶寬的增大有所提高。那么,如何去解決這一網(wǎng)絡(luò)擁塞現(xiàn)象呢?傳統(tǒng)的tcp(傳輸控制協(xié)議)在有線網(wǎng)絡(luò)方面有著較少的數(shù)據(jù)包丟失率和較高的傳輸穩(wěn)定性,但是在無線網(wǎng)絡(luò)上表現(xiàn)平平。傳統(tǒng)的tcp(傳輸控制協(xié)議)不能辨別數(shù)據(jù)包丟失的類別,容易造成錯誤的判斷。大多數(shù)擁塞控制算法在發(fā)送端實現(xiàn),如pi(比例積分控制)率控制算法,但是該算法需要發(fā)送端和所有中間節(jié)點做相應的改變,打破了傳統(tǒng)tcp(傳輸控制協(xié)議)的語義,因此不被廣泛應用。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,本發(fā)明旨在提出一種基于arch(自回歸條件異方差)算法的擁塞控制機制,解決無線網(wǎng)絡(luò)通信擁堵問題。本發(fā)明采用的技術(shù)方案是,基于garch時間序列算法的擁塞控制方法,以廣義自回歸條件異方差garch算法為基礎(chǔ),以發(fā)送端接受到的正確命令到達的時間間隔為一時間序列,建立garch(p,q)自回歸條件異方差預測模型,其中p自回歸的階數(shù),q是arch項的階數(shù),對發(fā)送端發(fā)送數(shù)據(jù)包的延遲時間進行預測,得到預測值;然后用數(shù)據(jù)包的大小比上這一預測值,得到的這一比值可以用來衡量此時網(wǎng)絡(luò)中的帶寬,若實際帶寬大于這一值,則說明此時的傳輸不會出現(xiàn)擁塞現(xiàn)象,否則,此時網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象,那么就需要對發(fā)送端擁塞的數(shù)據(jù)發(fā)送窗口的大小進行相應的調(diào)整,如果某一時刻,發(fā)送端收到的命令正確響應的時間超過了某一預設(shè)值,即響應超時,此時視為數(shù)據(jù)包丟失,需要重新發(fā)送丟失數(shù)據(jù)包,并減小擁塞窗口的大小,以便數(shù)據(jù)包能在現(xiàn)有網(wǎng)絡(luò)中順利地傳輸。
具體步驟進一步細化為:
第一步:確定正確命令正確應答ack指令到達的時間,然后根據(jù)這個時間求出響應的時間間隔序列;
第二步:根據(jù)第一步產(chǎn)生的這一時間序列建立arch(p,q),p自回歸的階數(shù),q是arch項的階數(shù),并確定最優(yōu)的p,q參數(shù)值;
第三步:利用第二步中建立的arch(p,q)預測模型對下一ack到達的時間的延遲進行預測,并記錄真實值,根據(jù)擁塞窗口的大小與這一預測延遲值之比與當前帶寬進行比較,根據(jù)比較結(jié)果來動態(tài)調(diào)整發(fā)送端發(fā)送數(shù)據(jù)包的速率;
第四步:對響應超時的處理:當正確命令的響應時間超過某一閾值時,此時認定為響應超時,會造成數(shù)據(jù)包的丟失,發(fā)送端收到超時信號后會對丟失的那一數(shù)據(jù)包進行再次發(fā)送,并記錄發(fā)送次數(shù),當次數(shù)超過3次時說明網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象,解決辦法是減小擁塞窗口的大小為原來的一半;否則,根據(jù)計算的延遲方差來動態(tài)調(diào)控擁塞窗口的大小;
第五步:檢測網(wǎng)絡(luò)中是否有足夠可用的帶寬,如果有,則可以適當?shù)脑黾訑?shù)據(jù)包的發(fā)送速率來充分利用現(xiàn)有的帶寬。
第三步具體的調(diào)控策略為,當擁塞窗口的大小與這一預測延遲值之比小于當前網(wǎng)絡(luò)中可用帶寬時,說明網(wǎng)絡(luò)中有足夠可用的帶寬,此時可以適當?shù)脑龃髷?shù)據(jù)包的發(fā)送速率,擁塞窗口的大小與這一預測延遲值之比大于當前網(wǎng)絡(luò)可用帶寬時,說明此時出現(xiàn)網(wǎng)絡(luò)擁塞,減小發(fā)送端擁塞窗口的大小,并將記錄的真實值作為下一次建立garch(p,q)預測模型的數(shù)據(jù)。
根據(jù)時間序列xt建立garch(p,q)預測模型,具體建立過程如下:
將xt序列表示為
xt=βxt+εt
其中εt為噪音,β為系數(shù),滿足εt~n(0,1)的獨立同分布,并且σt標準差,滿足
為確保方差
設(shè)ωt-1=σ(xt-1,xt-2,…)表示
garch(p,q)模型表示如下:
本發(fā)明的特點及有益效果是:
1、本發(fā)明能夠通過命令到達時間辨別出數(shù)據(jù)包的丟失類型,比如是因為網(wǎng)絡(luò)擁塞導致的還是由于網(wǎng)絡(luò)鏈接不穩(wěn)定導致的,以便更準確的實施調(diào)控。
2、本發(fā)明通過實時預測網(wǎng)絡(luò)延遲,根據(jù)預測結(jié)果動態(tài)調(diào)整發(fā)送端數(shù)據(jù)的發(fā)送速率,以便更好的利用現(xiàn)有帶寬。
3、本發(fā)明能夠在數(shù)據(jù)包的發(fā)送超過現(xiàn)有帶寬承載能力時自動地減少數(shù)據(jù)包發(fā)送速率以避免網(wǎng)絡(luò)擁塞現(xiàn)象的發(fā)生。
4、本發(fā)明能提高數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)姆€(wěn)定性。
附圖說明:
圖1為本發(fā)明中終端設(shè)備訪問無線網(wǎng)絡(luò)示意圖;
圖2為正確命令到達的時間間隔的時間序列;
圖3為本發(fā)明根據(jù)預測延遲動態(tài)調(diào)節(jié)擁塞窗口大小流程圖。
具體實施方式
為了解決上述問題,本發(fā)明是基于發(fā)送端的擁塞控制算法。該算法以garch(廣義自回歸條件異方差)算法為基礎(chǔ),以發(fā)送端接受到的正確命令到達的時間間隔為一時間序列,建立garch(p,q)(廣義自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù))自回歸條件異方差預測模型,對發(fā)送端發(fā)送數(shù)據(jù)包的延遲時間進行預測,得到預測值。然后用數(shù)據(jù)包的大小比上這一預測值,得到的這一比值可以用來衡量此時網(wǎng)絡(luò)中的帶寬。若實際帶寬大于這一值,則說明此時的傳輸不會出現(xiàn)擁塞現(xiàn)象,否則,此時網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象,那么就需要對發(fā)送端的數(shù)據(jù)發(fā)送窗口(擁塞窗口)的大小進行相應的調(diào)整。如果某一時刻,發(fā)送端收到的命令正確響應的時間超過了某一預設(shè)值,即響應超時,此時視為數(shù)據(jù)包丟失,需要重新發(fā)送丟失數(shù)據(jù)包,并減小擁塞窗口的大小,以便數(shù)據(jù)包能在現(xiàn)有網(wǎng)絡(luò)中順利地傳輸。
當網(wǎng)絡(luò)擁堵導致數(shù)據(jù)包丟失時,網(wǎng)絡(luò)的吞吐量會迅速地減小,往返時間會迅速增大,此時會帶來一個很大的延遲方差,因此需要減小擁塞窗口的大小來緩解這一擁塞現(xiàn)象。
當數(shù)據(jù)包的丟失是由于無線網(wǎng)絡(luò)鏈接不穩(wěn)定導致的,而網(wǎng)絡(luò)沒有出現(xiàn)擁塞現(xiàn)象,此時的帶寬比較穩(wěn)定,會帶來一個比較小的延遲方差,因此不需要調(diào)整擁塞窗口的大小。
當某段時間內(nèi),網(wǎng)絡(luò)帶寬足夠可用的時候,該機制根據(jù)實時預測的延遲動態(tài)調(diào)整數(shù)據(jù)包的發(fā)送率,以便充分的利用網(wǎng)絡(luò)帶寬。
本發(fā)明設(shè)計出了一種基于arch(自回歸條件異方差)算法的擁塞控制機制,該機制包括以下步驟:
第一步:確定正確ack(命令正確應答)指令到達的時間,然后根據(jù)這個時間求出響應的時間間隔序列,如圖2為正確指令到達的時間間隔的時間序列示意圖。
第二步:根據(jù)第一步產(chǎn)生的這一時間序列建立arch(p,q)(自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù)),并確定最優(yōu)的p,q參數(shù)值。
第三步:利用第二步中建立的arch(p,q)(自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù))預測模型對下一ack(命令正確應答)到達的時間的延遲進行預測,并記錄真實值。根據(jù)擁塞窗口的大小與這一預測延遲值之比與當前帶寬進行比較,根據(jù)比較結(jié)果來動態(tài)調(diào)整發(fā)送端發(fā)送數(shù)據(jù)包的速率。具體的調(diào)控策略為,當擁塞窗口的大小與這一預測延遲值之比小于當前網(wǎng)絡(luò)中可用帶寬時,說明網(wǎng)絡(luò)中有足夠可用的帶寬,此時可以適當?shù)脑龃髷?shù)據(jù)包的發(fā)送速率。擁塞窗口的大小與這一預測延遲值之比大于當前網(wǎng)絡(luò)可用帶寬時,說明此時出現(xiàn)網(wǎng)絡(luò)擁塞,減小發(fā)送端擁塞窗口的大小。并將記錄的真實值作為下一次建立garch(p,q)(廣義自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù))預測模型的數(shù)據(jù),這樣可以動態(tài)建立預測模型,能得到更加精確的預測模型。
第四步:對響應超時的處理。當正確命令的響應時間超過某一閾值時,此時認定為響應超時,會造成數(shù)據(jù)包的丟失。發(fā)送端收到超時信號后會對丟失的那一數(shù)據(jù)包進行再次發(fā)送,并記錄發(fā)送次數(shù)。當次數(shù)超過3次時說明網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象,解決辦法是減小擁塞窗口的大小為原來的一半;否則,根據(jù)計算的延遲方差來動態(tài)調(diào)控擁塞窗口的大小。
第五步:檢測網(wǎng)絡(luò)中是否有足夠可用的帶寬,如果有,則可以適當?shù)脑黾訑?shù)據(jù)包的發(fā)送速率來充分利用現(xiàn)有的帶寬。
下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
如圖1是終端設(shè)備鏈接無線網(wǎng)絡(luò)訪問點示意圖,當移動終端的數(shù)量越來越多時,每個鏈接的帶寬會減少,如果在發(fā)送數(shù)據(jù)包速率不變的情況下就很容易造成網(wǎng)絡(luò)擁塞現(xiàn)象,造成大量數(shù)據(jù)包丟失。不僅會影響數(shù)據(jù)包的傳送速率而且還會影響用戶的上網(wǎng)體驗。需要采取措施解決這一問題。
首先,記錄數(shù)據(jù)包t在發(fā)送端的發(fā)送時間dst和接收端的接收時間drt,然后根據(jù)發(fā)送時間dst和接收時間drt得到ack的時間間隔序列xt=drt-dst,如圖2所示。
然后根據(jù)計算得到的這一時間序列xt建立garch(p,q)(廣義自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù))預測模型,具體建立過程如下:
將xt序列表示為
將xt序列表示為
xt=βxt+εt
其中εt為噪音,β為系數(shù),滿足εt~n(0,1)的獨立同分布,并且σt標準差,滿足
為確保方差
設(shè)ωt-1=σ(xt-1,xt-2,…)表示
garch(p,q)(廣義自回歸條件異方差,p自回歸的階數(shù),q是arch項的階數(shù))模型表示如下:
其中,σt2為方差,p自回歸的階數(shù),q是arch項的階數(shù),αi和βi為系數(shù),xt為時間序列。
根據(jù)以上建立的garch預測模型對ack(命令正確應答)進行預測,然后動態(tài)調(diào)整擁塞窗口的大小進而充分利用網(wǎng)絡(luò)帶寬。調(diào)節(jié)窗口的具體過程如下:
首先在接收到一個新的ack(命令正確應答)后對下一個ack(命令正確應答)進行預測,得到預測延遲p_delay,然后通過預測延遲p_delay計算出可利用的帶寬,計算公式為:
bandwidth=packet_size/p_delay,其中packet_size為數(shù)據(jù)包的大小,bandwidth為可用帶寬,p_delay為預測延遲。如果這一預測的帶寬大于實際帶寬,則此時很可能網(wǎng)絡(luò)中出現(xiàn)了擁塞現(xiàn)象,發(fā)送端會減小擁塞窗口的大小;如果這一預測的帶寬小于實際帶寬,則說明此時網(wǎng)絡(luò)中還有可用帶寬,此時發(fā)送端需要適當增大數(shù)據(jù)包的發(fā)送速度來充分利用網(wǎng)絡(luò)帶寬。
接著,如果接收端測量到的實際延遲大于設(shè)定的某一值時,此時出現(xiàn)響應超時現(xiàn)象,該現(xiàn)象是由于網(wǎng)絡(luò)擁堵導致的,致使數(shù)據(jù)包丟失,所以此時需要重新發(fā)送數(shù)據(jù)包,并記錄重復發(fā)送的次數(shù)。如果在數(shù)據(jù)包發(fā)送成功時,發(fā)送的次數(shù)沒有達到三次,則只需要將擁塞窗口的大小減小到2,并進入下一個ack(命令正確應答)的接收與預測;如果在數(shù)據(jù)包發(fā)送成功時,發(fā)送的次數(shù)大于等于三次,則需要計算網(wǎng)絡(luò)中的延遲方差
接下來需要進行比較。判斷是否