專利名稱:一種衛(wèi)星網(wǎng)絡(luò)中跨層擁塞控制方法
技術(shù)領(lǐng)域:
本發(fā)明是一種面向衛(wèi)星網(wǎng)絡(luò)中傳輸層協(xié)議的性能解決方案。主要用于提高TCP協(xié)議在衛(wèi)星網(wǎng)絡(luò)中的性能,屬于衛(wèi)星網(wǎng)絡(luò)傳輸層擁塞控制的技術(shù)領(lǐng)域。
背景技術(shù):
隨著hternet的普及,Internet上用戶和應(yīng)用的數(shù)量都在迅速增長,當(dāng)多個用戶對網(wǎng)絡(luò)的需求總量大于網(wǎng)絡(luò)實際傳輸能力時,必然會導(dǎo)致網(wǎng)絡(luò)擁塞的發(fā)生。雖然擁塞源于資源短缺,但增加資源并不能避免擁塞的發(fā)生,有時甚至?xí)又負砣潭?。例如,增加網(wǎng)關(guān)緩存表面上看可以防止或緩解由于擁塞引起的分組丟棄,但隨著緩存的增加,端到端的時延也相應(yīng)增大。因為分組的持續(xù)時間是有限的,超時的分組同樣需要重傳。因此,過大的緩存空間有可能使總延遲超過端系統(tǒng)重傳時鐘的值從而導(dǎo)致分組重傳。這些分組白白浪費了網(wǎng)絡(luò)的可用帶寬,反而加重了擁塞。目前互聯(lián)網(wǎng)上使用的擁塞控制機制基本上都是TCP擁塞控制機制,它是一種基于端系統(tǒng)的控制機制。在^ternet發(fā)展初期,主要是通過TCP協(xié)議中端到端基于滑動窗口的流量控制完成的,TCP的流量算法中也逐步增加了慢啟動、擁塞避免、快速重傳與快速恢復(fù)等算法,以期對網(wǎng)絡(luò)流量進行控制。隨著應(yīng)用需求的豐富和技術(shù)的發(fā)展,研究者開始認識到想完全依賴實現(xiàn)在終端系統(tǒng)上的策略與算法很難滿足越來越多的復(fù)雜應(yīng)用需求。于是,人們把注意力轉(zhuǎn)向網(wǎng)絡(luò)中的路由器等中間節(jié)點設(shè)備,期望通過增強它們的功能來實現(xiàn)主機終端無法達到的目標。就擁塞控制而言,網(wǎng)絡(luò)中間節(jié)點有可能更及時,甚至提前準確了解網(wǎng)絡(luò)的擁塞狀態(tài),并依此實施有效的資源管理策略,使網(wǎng)絡(luò)能有效地避免擁塞,或盡早從嚴重的擁塞狀態(tài)中恢復(fù)過來。目前在網(wǎng)絡(luò)節(jié)點中使用的擁塞控制機制主要有兩類隊列管理和隊列調(diào)度,其中隊列管理又可分為被動隊列管理(Passive Queue Management, PQM)和主動隊列管理 (Active Queue Management,AQM)。傳統(tǒng)的路由器采用被動隊列算法中最為典型的“去尾 (Drop-Tail)”管理策略,當(dāng)分組到達時,如果緩沖隊列己滿,路由器則丟棄該分組。“去尾” 策略雖然簡單,但很容易產(chǎn)生持續(xù)的滿隊列狀態(tài),甚至導(dǎo)致業(yè)務(wù)流對緩存的死鎖和業(yè)務(wù)流的全局同步。Floyd于1993年提出了著名的隨機早期檢測(Random Early Detection, RED) 算法,有效地改進了路由器上的“去尾”算法,同時也成為路由器設(shè)計的唯一候選算法。RED 算法的有效性雖然經(jīng)過了一些實踐的驗證,但是依舊存在一些缺陷,如公平性和穩(wěn)定性問題,而且其算法的性能敏感于參數(shù)的選擇等。針對RED算法存在的這些問題,國內(nèi)外的眾多學(xué)者對其進行了大量的研究,并出現(xiàn)了許多比較優(yōu)秀的派生算法,其中比較典型的有BLUE、 REM、Stabilized-RED, Active RED、以及GREEN等,盡管這些算法相比較RED算法有了一些改進,但是將他們直接應(yīng)用在衛(wèi)星網(wǎng)絡(luò)中來進行擁塞控制,仍有很多不足。因此,針對衛(wèi)星網(wǎng)絡(luò)的動態(tài)性和高誤碼率、大傳播時延、帶寬不對稱等特點,需要結(jié)合跨層資源優(yōu)化的思想,設(shè)計一種靈活的擁塞控制機制使得TCP層能夠根據(jù)網(wǎng)絡(luò)實時狀況準確地預(yù)測擁塞并能區(qū)分出誤碼與擁塞造成的丟包,從而采取相應(yīng)的擁塞調(diào)整策略,保證網(wǎng)絡(luò)資源的利用率,提高衛(wèi)星網(wǎng)絡(luò)中TCP的傳輸性能。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的是提供一種衛(wèi)星網(wǎng)絡(luò)中結(jié)合跨層設(shè)計的擁塞控制方法, 解決衛(wèi)星網(wǎng)絡(luò)中TCP不能準確地預(yù)測擁塞和判斷網(wǎng)絡(luò)擁塞和誤碼造成的數(shù)據(jù)包丟失,從而提高衛(wèi)星網(wǎng)絡(luò)中TCP協(xié)議的性能。技術(shù)方案本方法是一種策略性的方法,基于衛(wèi)星網(wǎng)絡(luò)的環(huán)境,通過跨層設(shè)計的方法和策略,結(jié)合鏈路層協(xié)議,改進TCP的擁塞控制算法,使其減少因鏈路傳輸出錯丟包而導(dǎo)致TCP發(fā)送窗口縮減、吞吐量降低。目前的協(xié)議棧機制是某一層協(xié)議通過下面層所提供的服務(wù),轉(zhuǎn)而向更高層提供服務(wù),但這種方式存在很多的缺點。在TCP層,無線信道中的信息擁塞所產(chǎn)生的錯誤將導(dǎo)致IP 包的丟失,致使比特率降低。在丟失事件發(fā)生后將花費很長的時間去修復(fù),尤其是大量信息丟失后可能導(dǎo)致TCP的中斷。此時系統(tǒng)將耗費幾個往返時間(RTT)才能恢復(fù)到中斷事件發(fā)生前的水平。為了解決這些問題,提出了一種TCP層跨層設(shè)計的方法,使其與鏈路層之間傳遞特定的信息,從而與衛(wèi)星通信環(huán)境相適應(yīng),從而使系統(tǒng)能夠滿足各種業(yè)務(wù)的需求。本方法實現(xiàn)的是鏈路層與TCP層的跨層設(shè)計,鏈路層中使用報文速率和RED相結(jié)合的隊列管理方法,將實時的隊列狀態(tài)傳遞給TCP層,TCP層通過接收的信息調(diào)整擁塞控制策略。衛(wèi)星網(wǎng)絡(luò)中跨層擁塞控制設(shè)計方法實現(xiàn)傳輸層TCP與鏈路層的跨層設(shè)計,使TCP 能夠預(yù)測擁塞并能正確判斷出誤碼和擁塞產(chǎn)生的丟包以及時地調(diào)整發(fā)送窗口,其中TCP層設(shè)計步驟如下
步驟1.當(dāng)傳輸層收到一個新包時,對確認報文ack類型進行判斷,如果不是ack包則退出,
步驟2.判斷收到的新包是否是上次連接的尸體包,如果是尸體分組,釋放該分組內(nèi)存并退出,
步驟3.收到的如果是ack包,將ack包數(shù)加1,并記錄對端發(fā)此ack包時的時間, 步驟4.如果本ack包的序號大于上次記錄的ack序號,表示是新的ack,將擁塞窗口加1,然后開始下一次傳輸,擁塞窗口隨著傳輸次數(shù)按指數(shù)規(guī)律增長;當(dāng)擁塞窗口增長到慢開始門限值時,就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長,
步驟5.如果收到一個或兩個重復(fù)的ack,只采用重傳策略,即當(dāng)計時器設(shè)置的重傳時間到時還沒有收到確認,就重傳這一報文段,
步驟6.當(dāng)收到三個或以上重復(fù)的ack時,如果鏈路層傳來的擁塞標志顯示為鏈路擁塞,即擁塞標志位為1時,調(diào)用快速重傳策略,即源端不必等待RTO超時,立即重傳丟失的數(shù)據(jù)包,同時將慢啟動閾值設(shè)置為當(dāng)前擁塞窗口大小的一半,并且將擁塞窗口減為原來的一半,否則只采用重傳策略,
鏈路層中實現(xiàn)跨層設(shè)計的步驟如下
步驟7.在收到數(shù)據(jù)包的時候,判斷平均隊列長度Qavg的值,當(dāng)小于隨機早期檢測算法RED預(yù)先設(shè)定的門限Qmin的時候,繼續(xù)判斷總的報文到達速率A,若總的報文速率A小于輸出鏈路的帶寬C,將分組放入隊列,并將擁塞標志設(shè)置為非擁塞;否則,以概率P=1_C/A丟棄數(shù)據(jù)包和設(shè)置擁塞標志為擁塞,
步驟8. 當(dāng)Qavg的值大于等于Qmin,并小于Qmax時,若總的報文速率A小于輸出鏈路的帶寬C,調(diào)用函數(shù)計算概率P,以概率
^(g^g-grxm)丟棄分組,并將擁塞標志設(shè)置為非擁塞;否則,P取i和 K/
y max-y IXiuti
A+ f4QaVg:Qmm)中較小值,然后以概率P丟棄數(shù)據(jù)包和設(shè)置擁塞標志位, Q max — Q mm
步驟9.當(dāng)Qavg的值大于等于RED預(yù)先設(shè)定的門限Qmax的時候,若總的報文速率A小
^ ^ v (Oav^ — Dmax) ^
于輸出鏈路的帶寬C,調(diào)用函數(shù)計算概率P,以概率P=丟棄
Qma — Qmdx
分組和設(shè)置擁塞標志位;否則,直接丟棄到達的數(shù)據(jù)包,并將擁塞標志設(shè)置為擁塞。有益效果本方法基于跨層設(shè)計,將鏈路層的隊列狀態(tài)信息傳遞給TCP層,使得 TCP層在收到重復(fù)ack的時候能夠根據(jù)鏈路層的隊列狀態(tài)信息判斷出鏈路的擁塞狀況,使得TCP能夠及時地預(yù)測擁塞并能正確判斷出網(wǎng)絡(luò)擁塞和誤碼造成的數(shù)據(jù)包丟失,提高了通信鏈路的吞吐率和帶寬利用率。
圖1是鏈路層收到數(shù)據(jù)包后的流程示意圖。圖2是TCP層收到數(shù)據(jù)包后的流程示意圖。
具體實施例方式方法流程
1.鏈路層的跨層設(shè)計方案
傳統(tǒng)的隊列管理采用尾丟棄算法,容易造成全局同步和緩沖區(qū)易被填滿等問題。RED擁塞控制機制的基本思想是通過監(jiān)控路由器輸出端口隊列的平均長度來探測擁塞,一旦發(fā)現(xiàn)擁塞逼近,就隨機地選擇連接來通知擁塞,使他們在隊列溢出導(dǎo)致丟包之前減小擁塞窗口, 降低發(fā)送數(shù)據(jù)速度,從而緩解網(wǎng)絡(luò)擁塞。由于RED是基于FIFO隊列調(diào)度策略的,并且只是丟棄正進入路由器的數(shù)據(jù)包,因此其實施起來也較為簡單。RED算法主要包括兩個部分計算平均隊列長度和計算丟棄包的概率。(1)平均隊列長度的計算
= (1 — Wi ) χ Qavgt + x qmr
其中Swgi表示ι時刻的平均隊列長度,qmr表示當(dāng)前隊列長度,Wf表示平均隊列長度
的權(quán)重值、的大小決定了 RED對輸入數(shù)據(jù)流變化的敏感程度,O ^% Sl。(2)丟包概率的計算
當(dāng)分組到達隊列時,如果平均隊列長度小于最小門限值gram ,分組安全進入隊列;當(dāng)偽vg大于最大門限值gmax ,丟棄所有到達報文;如果平均隊列長度位于β·和之間,則按如下公式計算分組丟棄概率
權(quán)利要求
1. 一種衛(wèi)星網(wǎng)絡(luò)中跨層擁塞控制設(shè)計方法,其特征在于實現(xiàn)傳輸層TCP與鏈路層的跨層設(shè)計,使TCP能夠預(yù)測擁塞并能正確判斷出誤碼和擁塞產(chǎn)生的丟包以及時地調(diào)整發(fā)送窗口,其中TCP層設(shè)計步驟如下步驟1.當(dāng)傳輸層收到一個新包時,對確認報文ack類型進行判斷,如果不是ack包則退出,步驟2.判斷收到的新包是否是上次連接的尸體包,如果是尸體分組,釋放該分組內(nèi)存并退出,步驟3.收到的如果是ack包,將ack包數(shù)加1,并記錄對端發(fā)此ack包時的時間, 步驟4.如果本ack包的序號大于上次記錄的ack序號,表示是新的ack,將擁塞窗口加1,然后開始下一次傳輸,擁塞窗口隨著傳輸次數(shù)按指數(shù)規(guī)律增長;當(dāng)擁塞窗口增長到慢開始門限值時,就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長,步驟5.如果收到一個或兩個重復(fù)的ack,只采用重傳策略,即當(dāng)計時器設(shè)置的重傳時間到時還沒有收到確認,就重傳這一報文段,步驟6.當(dāng)收到三個或以上重復(fù)的ack時,如果鏈路層傳來的擁塞標志顯示為鏈路擁塞,即擁塞標志位為1時,調(diào)用快速重傳策略,即源端不必等待RTO超時,立即重傳丟失的數(shù)據(jù)包,同時將慢啟動閾值設(shè)置為當(dāng)前擁塞窗口大小的一半,并且將擁塞窗口減為原來的一半,否則只采用重傳策略,鏈路層中實現(xiàn)跨層設(shè)計的步驟如下步驟7.在收到數(shù)據(jù)包的時候,判斷平均隊列長度Qavg的值,當(dāng)小于隨機早期檢測算法RED預(yù)先設(shè)定的門限Qmin的時候,繼續(xù)判斷總的報文到達速率A,若總的報文速率A小于輸出鏈路的帶寬C,將分組放入隊列,并將擁塞標志設(shè)置為非擁塞;否則,以概率P=1_C/A丟棄數(shù)據(jù)包和設(shè)置擁塞標志為擁塞,步驟8. 當(dāng)Qavg的值大于等于Qmin,并小于Qmax時,若總的報文速率A小于輸出鏈路的帶寬C,調(diào)用函數(shù)計算概率P,以概率丟棄分組,并將擁塞標志設(shè)置為非擁塞;否則,P取i和 K/β max-β 腿a+ f^qavs-q^)中較小值,然后以概率ρ丟棄數(shù)據(jù)包和設(shè)置擁塞標志位, ymax-ymm步驟9.當(dāng)Qavg的值大于等于RED預(yù)先設(shè)定的門限Qmax的時候,若總的報文速率A小于輸出鏈路的帶寬C,調(diào)用函數(shù)計算概率P,以概率P=丟棄Qimi — qm^k分組和設(shè)置擁塞標志位;否則,直接丟棄到達的數(shù)據(jù)包,并將擁塞標志設(shè)置為擁塞。
全文摘要
衛(wèi)星網(wǎng)絡(luò)中跨層擁塞控制的設(shè)計方法是一種衛(wèi)星網(wǎng)絡(luò)中使用跨層設(shè)計增強TCP性能的解決方案。主要用于解決因衛(wèi)星網(wǎng)絡(luò)的高誤碼環(huán)境對TCP的影響,使得TCP能夠及時地預(yù)測擁塞并能正確判斷網(wǎng)絡(luò)擁塞和誤碼造成的數(shù)據(jù)包丟失,屬于衛(wèi)星網(wǎng)絡(luò)的擁塞控制領(lǐng)域。它應(yīng)具有如下特征本發(fā)明是使TCP層與鏈路層實現(xiàn)跨層交互,使得鏈路層中的隊列狀態(tài)能夠傳遞給TCP層,使得TCP層能夠根據(jù)隊列的狀態(tài)來判斷鏈路的擁塞狀況,從而采取相應(yīng)的策略,最終達到提高TCP性能的效果。
文檔編號H04L12/56GK102291389SQ201110197030
公開日2011年12月21日 申請日期2011年7月14日 優(yōu)先權(quán)日2011年7月14日
發(fā)明者劉林峰, 葉曉國, 呂康蒙, 孫力娟, 李鵬, 王汝傳, 肖甫, 鄒志強 申請人:南京郵電大學(xué)