相關(guān)鏈接: 中國(guó)安全網(wǎng) 中國(guó)質(zhì)量網(wǎng) 中國(guó)論文網(wǎng) 中國(guó)資訊網(wǎng)
作者:張毅
1引言
隨著空間技術(shù)的迅猛發(fā)展,火星探測(cè)等深空任務(wù)成為現(xiàn)實(shí)。未來的空間探測(cè)任務(wù)需要在行星、衛(wèi)星、空間站、登陸車等之間進(jìn)行通信,這種通信需要安全及時(shí)地傳輸數(shù)據(jù)。
深空通信網(wǎng)絡(luò)存在重大挑戰(zhàn)。深空通信鏈路一個(gè)重要的特點(diǎn)是往返時(shí)延相當(dāng)長(zhǎng)且變化較大,長(zhǎng)時(shí)延會(huì)對(duì)以數(shù)據(jù)確認(rèn)和超時(shí)重傳為基礎(chǔ)的擁塞控制帶來很大的影響。數(shù)據(jù)確認(rèn)返回的時(shí)間越長(zhǎng),信源端對(duì)擁塞的發(fā)生就越不敏感,擁塞發(fā)生的持續(xù)時(shí)間增長(zhǎng),數(shù)據(jù)分組丟失也就越多。另外,由于空間環(huán)境的影響,深空通信鏈路極易出現(xiàn)突發(fā)性錯(cuò)誤而且鏈路誤碼率極高,這些都會(huì)大大降低信道利用率。
本文提出一種基于分組丟失率判定(packet loss ratemeasurement,PLRM)的差錯(cuò)容忍式擁塞控制算法。首先將數(shù)據(jù)發(fā)送形式定義為數(shù)據(jù)塊,并根據(jù)返回?cái)?shù)據(jù)塊中的分組丟失數(shù)計(jì)算分組丟失率,根據(jù)不同的分組丟失率進(jìn)行鏈路擁塞狀況的分段判斷,從而進(jìn)行不同處理,實(shí)現(xiàn)數(shù)據(jù)塊的大小和窗口增長(zhǎng)規(guī)律的合理控制。算法的核心是差錯(cuò)容
忍,根據(jù)深空通信的高誤碼率的特點(diǎn),將一定的分組丟失率作為正常情況處理,此時(shí)發(fā)送數(shù)據(jù)塊仍以一定的比例進(jìn)行增大。若擁塞狀態(tài)正在加劇,則發(fā)送數(shù)據(jù)塊將以一定的比例減小,為了對(duì)PLRM算法進(jìn)行進(jìn)一步的理論分析,利用數(shù)學(xué)建模方法,簡(jiǎn)化并模擬實(shí)際的網(wǎng)絡(luò)通信,對(duì)算法進(jìn)行了理論分析和仿真對(duì)比。
2相關(guān)工作
網(wǎng)絡(luò)擁塞是影響網(wǎng)絡(luò)性能的重要因素之一,近年來空間網(wǎng)絡(luò)中的擁塞控制問題引起了廣泛的關(guān)注。相比傳統(tǒng)網(wǎng)絡(luò),由于鏈路環(huán)境復(fù)雜、突發(fā)錯(cuò)誤率高以及網(wǎng)絡(luò)的時(shí)延不確定,傳輸控制協(xié)議(transmission control protocol,TCP)中基于端到端反饋的擁塞控制策略無法應(yīng)用于深空通信網(wǎng)絡(luò)環(huán)境。在已有的研究工作中,研究人員從不同的角度出發(fā),尋求衛(wèi)星網(wǎng)絡(luò)環(huán)境下的擁塞問題的解決方案,并相應(yīng)地提出了許多擁塞控制策略。
TCP-Westwood算法的關(guān)鍵思想是一直在發(fā)送端對(duì)TCP鏈接的可用帶寬進(jìn)行估計(jì),估計(jì)的方法是觀察返回ACK的速度,估計(jì)得出的數(shù)據(jù)傳輸速率用于計(jì)算擁塞窗口和慢啟動(dòng)門限值。
TCP Vegas機(jī)制改變了以往根據(jù)分組丟失來改變擁塞窗口大小的處理模式,而是通過對(duì)一段時(shí)間內(nèi)端到端傳輸速率的變化進(jìn)行判斷來實(shí)現(xiàn)擁塞控制。Vegas機(jī)制不斷測(cè)量RTT值的變化來比較實(shí)際吞吐量與預(yù)期吞吐量,可以靈活調(diào)整擁塞窗口大小,并不一味地將窗口增大。
TCP-Peach算法的思想如下:針對(duì)長(zhǎng)時(shí)延對(duì)傳輸效率的影響,通過快速發(fā)送較多的虛報(bào)文段,更快地獲得確認(rèn)ACK,從而加快TCP啟動(dòng)和重傳后的恢復(fù)速率。在這里,虛報(bào)文段指的是由發(fā)送端產(chǎn)生的優(yōu)先級(jí)較低的數(shù)據(jù)分組。對(duì)接收端來說,虛報(bào)文段不包含任何新的信息。TCP發(fā)送端使用虛報(bào)文段來探測(cè)可用網(wǎng)絡(luò)資源。TCP-Swift是在TCP-Peach的基礎(chǔ)上改進(jìn)的,使用未確認(rèn)的數(shù)據(jù)分組代替TCP-Peach中的虛報(bào)文段。虛報(bào)文段僅僅是最后一個(gè)發(fā)送分組的備份,而未確認(rèn)的數(shù)據(jù)分組是從已經(jīng)發(fā)送但還沒有收到確認(rèn)的數(shù)據(jù)分組中隨機(jī)選擇出來的,因此,它可以作為已經(jīng)發(fā)送的數(shù)據(jù)分組的備份,有利于在已發(fā)送的數(shù)據(jù)分組出現(xiàn)丟失時(shí)減少重傳次數(shù),進(jìn)而增強(qiáng)網(wǎng)絡(luò)性能。
TCP-Planet協(xié)議用于在星際互聯(lián)網(wǎng)內(nèi)傳輸數(shù)據(jù)。TCP-Planet使用了一種新穎的初始狀態(tài)啟動(dòng)算法代替了原來效率低下的慢啟動(dòng)算法,使其能夠更快地占用帶寬。在經(jīng)過初始狀態(tài)啟動(dòng)算法后,TCP-Planet協(xié)議就進(jìn)入所謂穩(wěn)定算法狀態(tài),算法中,協(xié)議采用了新的擁塞檢測(cè)和控制機(jī)制,該機(jī)制可以區(qū)分單個(gè)數(shù)據(jù)分組的丟失和擁塞導(dǎo)致的數(shù)據(jù)分組丟失,可以將由于鏈路錯(cuò)誤而導(dǎo)致的錯(cuò)誤擁塞決策率降低到最小。
TCP Jersey協(xié)議在發(fā)送端采用了可變帶寬估計(jì)(available bandwidth estimation,ABE)算法和一種類ECN的擁塞通告(congestion waming,CW)。發(fā)送端采用ABE算法可以通過接收到的ACK速率更精確地估計(jì)網(wǎng)絡(luò)可用帶寬,從而可以優(yōu)化ownd(擁塞窗口)的大小,并且可以用較差的網(wǎng)絡(luò)負(fù)載對(duì)發(fā)送數(shù)據(jù)速率進(jìn)行調(diào)節(jié)。帶寬計(jì)算方法如式(1)所示。
其中,Rn是n-1時(shí)刻的估計(jì)帶寬,RTT是往返時(shí)延,Ln是第n時(shí)刻數(shù)據(jù)分段的大小。通過帶寬估計(jì),優(yōu)化的ownd由式(2)計(jì)算。
CW是類似于ECN的擁塞通告,在數(shù)據(jù)分組頭包含擁塞信息,從而能夠通知終端數(shù)據(jù)分組丟失的原因,進(jìn)而將擁塞和鏈路錯(cuò)誤區(qū)分開來。
Split-TCP算法通過將跨越多跳的過長(zhǎng)TCP連接分割為短一些的本地連接段來解決跨越多跳的過長(zhǎng)TCP連接的性能惡化問題。這樣,原來完整的、端到端的差錯(cuò)控制,流量控制和擁塞控制,都被分裂成多個(gè)局部的、較短的差錯(cuò)控制、流量控制和擁塞控制,因此TCP性能得到了提高。在衛(wèi)星網(wǎng)絡(luò)中,該方法一般是將上行鏈路和下行鏈路分別處理。當(dāng)然,分割TCP連接的解決方法也存在一些缺點(diǎn),網(wǎng)關(guān)站需要大量的緩存和處理資源,而且會(huì)隨著所支持的TCP連接數(shù)量的增加而增長(zhǎng),容易成為新的瓶頸而降低網(wǎng)絡(luò)性能,為網(wǎng)絡(luò)引入了單點(diǎn)失效危險(xiǎn),這是因?yàn)橐粋(gè)TCP連接的所有數(shù)據(jù)分組都必須經(jīng)過特定網(wǎng)關(guān)站的路由而沒有其他可替代的路由選擇。如果使用IP安全機(jī)制(IPSec),將會(huì)制約分割TCP連接方法的使用,網(wǎng)關(guān)站可能無法獲知經(jīng)過加密的TCP分組頭中的有關(guān)信息,如端口號(hào)和序列號(hào)等,或者需要具備相應(yīng)的解密和認(rèn)證能力,但這也會(huì)降低網(wǎng)關(guān)站對(duì)數(shù)據(jù)處理和協(xié)議轉(zhuǎn)換的效率。
上述6種方法大體上分為3類:通過鏈路層差錯(cuò)控制來減小無線網(wǎng)絡(luò)鏈路錯(cuò)誤對(duì)TCP的影響、分割TCP連接以及端到端的增強(qiáng)和改進(jìn)。這些類別的劃分并非絕對(duì)的,在實(shí)際應(yīng)用中也不是孤立存在的.通常多種方法同時(shí)使用,相互配合補(bǔ)充。雖然對(duì)于傳統(tǒng)的TCP有較大改動(dòng),但都要求對(duì)RTT進(jìn)行較為精確的測(cè)量,這在深空通信中難以實(shí)現(xiàn)。另外,上述方案并沒有針對(duì)衛(wèi)星鏈路高突發(fā)錯(cuò)誤率的特點(diǎn)進(jìn)行優(yōu)化,鏈路的利用率較低。
3 PLRM算法
3.1 算法基本原理
該算法針對(duì)深空通信的高誤碼環(huán)境實(shí)施差錯(cuò)容忍的處理方式,即在一定的分組丟失率范圍內(nèi),仍然執(zhí)行正常的窗口增長(zhǎng)策略,并對(duì)不同的分組丟失率進(jìn)行鏈路擁塞狀況的劃分,從而合理控制數(shù)據(jù)塊的大小和窗口的增長(zhǎng)規(guī)律。另外,將發(fā)送單位重新定義為數(shù)據(jù)塊,數(shù)據(jù)塊由發(fā)送數(shù)據(jù)段和重傳數(shù)據(jù)段組成,而每個(gè)數(shù)據(jù)段又由1個(gè)或多個(gè)數(shù)據(jù)分組組成,從而簡(jiǎn)化衛(wèi)星通信鏈路資源分配的復(fù)雜性,使發(fā)送窗口和擁塞窗口的大小轉(zhuǎn)化為數(shù)據(jù)塊中數(shù)據(jù)分組的個(gè)數(shù),保證鏈路的通信量。
3 .1.1數(shù)據(jù)傳輸單位重新定義
(1)發(fā)送數(shù)據(jù)塊
定義發(fā)送數(shù)據(jù)塊的結(jié)構(gòu)為發(fā)送數(shù)據(jù)段長(zhǎng)度為Mi、編號(hào)為1到M,的發(fā)數(shù)據(jù)段、編號(hào)為1到Ni的重傳數(shù)據(jù)段,如圖1所示。其中,初始發(fā)送數(shù)據(jù)塊中M,為發(fā)送端緩存中的最大窗口值M,且不包含重傳數(shù)據(jù)段。
(2)確認(rèn)數(shù)據(jù)塊
確認(rèn)數(shù)據(jù)塊的格式如圖2所示,包括分組丟失起始序號(hào)S、數(shù)據(jù)接收指示隊(duì)列(長(zhǎng)度為Mi)及分組丟失數(shù)Nio其中,數(shù)據(jù)段接收指示隊(duì)列是由接收端進(jìn)行差錯(cuò)判斷所形成的長(zhǎng)度為Mi的01序列(正確接收的數(shù)據(jù)分組置為0.未正確接收的數(shù)據(jù)分組置為1)。假設(shè)重傳數(shù)據(jù)段中的數(shù)據(jù)重傳后不會(huì)再出現(xiàn)錯(cuò)誤,故該01序列均只進(jìn)行1到Mi的排列。
3.1.2基于分組丟失率判定的差錯(cuò)容忍擁塞控制
算法根據(jù)深空通信環(huán)境進(jìn)行一定的差錯(cuò)容忍,根據(jù)分組丟失率對(duì)網(wǎng)絡(luò)環(huán)境進(jìn)行情況劃分,分別進(jìn)行不同的數(shù)據(jù)段長(zhǎng)度調(diào)整,從而實(shí)現(xiàn)鏈路利用率較高的擁塞控制。
首先根據(jù)確認(rèn)數(shù)據(jù)塊中的分組丟失數(shù)Ni和發(fā)送窗口Mi得到分組丟失率Xi,如式(3)所示。記下一次發(fā)送數(shù)據(jù)段的長(zhǎng)度Mi+l,如式(4)所示,根據(jù)Xi的不同范圍對(duì)Mi+1進(jìn)行不同程度的調(diào)整。
其中,a、β、ε為預(yù)設(shè)的固定值,O<a<ε<1,1<β<2。其具體取值是根據(jù)長(zhǎng)期的歷史數(shù)據(jù)訓(xùn)練得到,取值范圍如式(5)所示,“為正常通信時(shí)的分組丟失率,ε為通信狀況較差時(shí)的分組丟失率,口為鏈路狀況參考值。當(dāng)Xi≤a時(shí),進(jìn)行差錯(cuò)容忍處理,發(fā)送數(shù)據(jù)段的長(zhǎng)度增大p倍,并不進(jìn)行普通擁塞情況下的縮小窗口處理;當(dāng)a<Xi≤ε時(shí),鏈路惡化但程度較輕,發(fā)生輕微擁塞狀況,從而使發(fā)送數(shù)據(jù)段的長(zhǎng)度減;當(dāng)Xi>ε時(shí),鏈路狀況極度惡化,擁塞嚴(yán)重,發(fā)送數(shù)據(jù)段長(zhǎng)度與分組丟失率成反比進(jìn)行調(diào)整,分組丟失率越大,發(fā)送數(shù)據(jù)段長(zhǎng)度越短,窗口越小。
PLRM算法的流程如圖3所示。終端A為發(fā)送端,終端B為接收端。
3.2算法實(shí)現(xiàn)與測(cè)試
Vegas算法是基于時(shí)延進(jìn)行擁塞處理,而PLRM算法是基于分組丟失進(jìn)行擁塞處理,在仿真中,采用同是分組丟失處理的TCP經(jīng)典算法進(jìn)行對(duì)比更具有一致性和說服力。故分別對(duì)TCP Tahoe算法、TCP Reno算法和PLRM算法進(jìn)行數(shù)學(xué)建模仿真對(duì)比。
3.2.1 經(jīng)典算法與PLRM算法的數(shù)學(xué)模型測(cè)試
TCP Tahoe算法簡(jiǎn)化成數(shù)學(xué)模型為數(shù)列1,2,4,8,16(16為原門限窗口),17,18,19,20,21,22,23,24(發(fā)生超時(shí),即網(wǎng)絡(luò)發(fā)生擁塞,更新的門限窗口為12),1,2,4,8,12,13,14,15…
TCP Reno算法簡(jiǎn)化成數(shù)學(xué)模型為數(shù)列1,2,4,8,16(16為原門限窗口),17,18,19,20,21,22,23,24(發(fā)生超時(shí),即網(wǎng)絡(luò)發(fā)生擁塞,更新的門限窗口為12),12,13,14,15…假設(shè)初始參數(shù)M=16,a=0.1,β=i.s,ε=0.5。PLRM算法可簡(jiǎn)化為數(shù)學(xué)模型為數(shù)列16(16為原門限窗口),24 (16x1.5=24),15(分組丟失3個(gè)得到分組丟失率為12.5%,故24x(1.5-1)+3=15),18 (12x1.5=18),28(分組丟失1個(gè)得到分組丟失率為5.6%,故18x1.5+1=28),27(分組丟失15個(gè)得到分組丟失率為55.6%,故27x(l-0.556)+15≈27),18 (12x1.5=18) ,27 (18x1.5=27) ,24(分組丟失10個(gè)得到分組丟失率為37010,故27x(1.5-1)+10≈24) ,21( 14x1.5=21),32 (21x1.5≈32) ,26 (32x(1.5-1) +10=26) ,24 (16 x1.5 =24),32,26,24,20…3種算法模型測(cè)試結(jié)果對(duì)比如圖4所示。
從圖4中可以明顯看出,PLRM算法在吞吐量上遠(yuǎn)遠(yuǎn)高于其他兩種算法。
3.2.2性能分析
通過建立數(shù)學(xué)模型來簡(jiǎn)化模擬實(shí)際的網(wǎng)絡(luò),比較各算法穩(wěn)定循環(huán)階段內(nèi)的期望和方差。期望體現(xiàn)信道利用率水平,方差體現(xiàn)通信流量的穩(wěn)定性。
TCP Tahoe算法穩(wěn)定循環(huán)階段等同于1~13階段,循環(huán)階段整體期望為15、方差為7.937。
TCP Reno算法穩(wěn)定循環(huán)階段等同于5~18階段,循環(huán)階段整體期望為18、方差為3.742。
PLRM算法穩(wěn)定循環(huán)階段等同于1~13階段,循環(huán)階段整體期望為23、方差為4.899。
計(jì)算可得,PLRM算法的期望相比TCP Tahoe算法提高34%,相比TCPReno算法提高22%。直觀的性能對(duì)比如圖5所示。
TCP Reno算法在網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),所有通信擁塞窗口都置為更新的門限窗口的一半,在信道利用率上有較大提高。但PLRM算法在信道利用率方面具有較大優(yōu)勢(shì),比TCP Tahoe算法約提高34%,比TCP Reno算法提高22%。
由于深空通信中時(shí)延及分組丟失的可變性.PLRM算法也相應(yīng)呈現(xiàn)出容許范圍內(nèi)的波動(dòng),這極大抑制了通信狀況的惡化,保證了極高的吞吐量和較為穩(wěn)定的環(huán)境。
4結(jié)束語
本文首先介紹了多種應(yīng)用于空間通信的TCP擁塞控制算法,然后提出了PLRM算法,最后對(duì)PLRM算法與傳統(tǒng)算法進(jìn)行了性能對(duì)比,仿真結(jié)果證明了新算法的傳輸效率比TCP Tahoe算法約提高34%,比TCP Reno算法提高22%。
綜合全文分析,PLRM算法采用數(shù)據(jù)塊為發(fā)送單位,直接采用歷史最大窗口值啟動(dòng),并且將每次需要重傳的數(shù)據(jù)加入下次發(fā)送數(shù)據(jù)塊中,再通過算法的反饋特性,使窗口快速逼近臨界值,大大加快了算法的啟動(dòng)速度。同時(shí),通過對(duì)分組丟失率的計(jì)算進(jìn)行差錯(cuò)容忍式的擁塞情況判斷,按不同比例對(duì)發(fā)送窗口進(jìn)行調(diào)整,大大提高了深空通信的傳輸效率,確認(rèn)數(shù)據(jù)塊的結(jié)構(gòu)體現(xiàn)了分組丟失的位置和順序,發(fā)送端易于對(duì)下次需要重傳的數(shù)據(jù)分組進(jìn)行識(shí)別和重組,降低了算法的復(fù)雜度。
5摘要:
空間通信的TCP大多數(shù)是基于Vegas算法,該算法需要對(duì)往返時(shí)延進(jìn)行較為精確的測(cè)量,這在具有極長(zhǎng)且可變時(shí)延的信道特征的深空通信環(huán)境中很難實(shí)現(xiàn)。提出一種基于分組丟失率測(cè)量的差錯(cuò)容忍式擁塞控制算法,該算法采用數(shù)據(jù)塊的形式發(fā)送數(shù)據(jù),依據(jù)歷史數(shù)據(jù)設(shè)定差錯(cuò)容忍度,利用分組丟失率測(cè)量值進(jìn)行擁塞狀態(tài)判斷及發(fā)送窗口大小調(diào)整,從而使用較小的開銷達(dá)到較高的傳輸效率。最后,利用數(shù)學(xué)建模方法,證明基于分組丟失率測(cè)量的差錯(cuò)容忍式擁塞控制算法的吞吐量比傳統(tǒng)TCP的Tahoe算法提高34%,比Reno算法提高22%。