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