崔弘珂
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
在航天通信領(lǐng)域,采用IP協(xié)議傳輸測(cè)控業(yè)務(wù)和科學(xué)數(shù)據(jù)業(yè)務(wù)的研究早在20世紀(jì)90年代中期就開(kāi)始了,Internet網(wǎng)絡(luò)技術(shù)的飛速發(fā)展推動(dòng)著航天通信技術(shù)的革新,如何利用IP TCP協(xié)議可靠傳輸數(shù)據(jù)也成為測(cè)控通信研究的一個(gè)熱點(diǎn)。
航天通信網(wǎng)的空間鏈路與地面鏈路相比,在帶寬、時(shí)延以及丟包率等許多方面存在差異。因此采用TCP傳輸技術(shù)用于航天通信網(wǎng)的空間數(shù)據(jù)傳輸協(xié)議,需要充分考慮空間信道特點(diǎn)的影響:
①高誤碼率:在高誤碼率的衛(wèi)星環(huán)境中,鏈路差錯(cuò)帶來(lái)的丟包非常嚴(yán)重,如果不能區(qū)分是丟失還是擁塞,就會(huì)造成系統(tǒng)吞吐量下降,造成了網(wǎng)絡(luò)帶寬的浪費(fèi);
②長(zhǎng)時(shí)延:空間信道傳播延時(shí)長(zhǎng),以地球靜止軌道(GEO)衛(wèi)星為例,往返時(shí)間(RTT)在550 ms左右,長(zhǎng)延時(shí)特性進(jìn)一步加重了空間信道高誤碼率對(duì)傳輸協(xié)議的影響;
③差異性:航天數(shù)據(jù)的各個(gè)接收者可能經(jīng)歷不同的信道條件(誤碼率和傳播時(shí)延),這導(dǎo)致了接收差異性問(wèn)題,瓶頸接收者將嚴(yán)重制約著整個(gè)系統(tǒng)的性能;
④帶寬不對(duì)稱性:航天系統(tǒng)在前向和反向數(shù)據(jù)信道間往往有較大的帶寬不對(duì)稱性,反向信道一般帶寬比較低,會(huì)降低吞吐量,且吞吐量隨非對(duì)稱性呈指數(shù)減小。
TCP協(xié)議是在Internet環(huán)境下可靠、有序地傳送協(xié)議,當(dāng)TCP協(xié)議應(yīng)用于空間鏈路上時(shí),空間鏈路的傳播時(shí)延和誤碼特性會(huì)對(duì)TCP性能產(chǎn)生負(fù)面影響,且降低了網(wǎng)絡(luò)資源的利用率。
當(dāng)TCP協(xié)議用于長(zhǎng)傳播時(shí)延衛(wèi)星信道時(shí),將面臨3個(gè)主要的問(wèn)題:擁塞窗口增長(zhǎng)較慢、丟失數(shù)據(jù)包的恢復(fù)時(shí)間較長(zhǎng)和接收窗口受限。
2.1.1 擁塞窗口增長(zhǎng)較慢
往返時(shí)間是擁塞窗口增長(zhǎng)的重要參數(shù),在擁塞避免期間,每個(gè)往返時(shí)間,擁塞窗口增加1。由于往返時(shí)間和擁塞窗口增長(zhǎng)之間存在著一定的相關(guān)性,因此,往返時(shí)間越長(zhǎng),擁塞窗口增長(zhǎng)得越慢。如果往返時(shí)間長(zhǎng),連接就要在慢啟動(dòng)期間滯留很長(zhǎng)一段時(shí)間,短連接將無(wú)法充分利用可用的信道帶寬。
2.1.2 檢測(cè)和恢復(fù)丟失的時(shí)間較長(zhǎng)
由于丟失檢測(cè)是以確認(rèn)的交換為基礎(chǔ)的,因此,發(fā)送端總是至少花費(fèi)一個(gè)往返時(shí)間去檢測(cè)數(shù)據(jù)包的丟失并進(jìn)行重傳。重傳超時(shí)值也是以往返時(shí)間和往返時(shí)間采樣的偏量為基礎(chǔ)的,所以,這些值中的任何一個(gè)值較大的話,重傳超時(shí)都將很高。較高的重傳超時(shí)值意味著可能有較長(zhǎng)的閑置時(shí)間,在這段時(shí)間內(nèi),連接等待重傳定時(shí)器超時(shí),重新開(kāi)始傳輸數(shù)據(jù)。
2.1.3 接收窗口受限
連接的帶寬時(shí)延確定了連接在填滿整個(gè)網(wǎng)絡(luò)管道之前需要傳送數(shù)據(jù)包的數(shù)量,對(duì)于長(zhǎng)傳播時(shí)延(或大帶寬)鏈路來(lái)說(shuō),這個(gè)值相當(dāng)大,TCP不可能充分利用可用的鏈路帶寬,這主要是由于接收窗口受限造成的。以GEO衛(wèi)星系統(tǒng)為例,即使衛(wèi)星信道的發(fā)送速率大于1.024 Mbps,它實(shí)際最大吞吐量也只能被限制在1.024Mbps,而不考慮實(shí)際可得到的帶寬有多大。
當(dāng)TCP協(xié)議運(yùn)行于高誤碼率(BER)的衛(wèi)星信道時(shí),存在的問(wèn)題有:
①無(wú)法區(qū)分擁塞丟失和受損丟失:TCP協(xié)議面向較低BER(大約為10-9)的可靠地面信道環(huán)境應(yīng)用,由于數(shù)據(jù)包受損的概率低,因此所有TCP擁塞控制策略都將丟失的數(shù)據(jù)包看作是擁塞的指示。對(duì)于每個(gè)丟失的數(shù)據(jù)包,TCP發(fā)送端至少將其傳輸速率減少一半。在丟失非常嚴(yán)重出現(xiàn)超時(shí)時(shí),數(shù)據(jù)傳輸返回到每個(gè)RTT只傳送一個(gè)數(shù)據(jù)包。對(duì)于數(shù)據(jù)包因受損而丟失的情況,很顯然這是一個(gè)錯(cuò)誤的響應(yīng),因?yàn)榫W(wǎng)絡(luò)并沒(méi)有真正的發(fā)生擁塞,根本不應(yīng)該減小發(fā)送端的傳送速率;
②不能很好地處理每個(gè)擁塞窗口中多個(gè)丟失的數(shù)據(jù)包:當(dāng)每個(gè)擁塞窗口有多個(gè)數(shù)據(jù)包丟失時(shí),TCP協(xié)議(特別是TCP Reno)不能很好地處理這些丟失的數(shù)據(jù)包。連續(xù)丟失導(dǎo)致?lián)砣翱诘倪B續(xù)減半。
TCP協(xié)議在衛(wèi)星環(huán)境中的傳輸性能問(wèn)題已經(jīng)成為國(guó)內(nèi)外研究人員的研究熱點(diǎn),這里的設(shè)計(jì)思想有2點(diǎn):一是如何削弱衛(wèi)星鏈路對(duì)TCP協(xié)議不利的特點(diǎn),或者使協(xié)議看不到空間信道的特點(diǎn);二是如何修改TCP協(xié)議使其不容易被衛(wèi)星鏈路的特點(diǎn)所影響。本著這2項(xiàng)原則可將方案大致分為2種:鏈路層解決方案、端到端的解決方案。
3.1.1 可靠鏈路層協(xié)議
隱藏鏈路層損壞的方法是執(zhí)行可靠鏈路層協(xié)議,采用這種方法是必須對(duì)鏈路層協(xié)議進(jìn)行非常精細(xì)的設(shè)計(jì)才能與TCP一起很好的工作。當(dāng)TCP的重復(fù)確認(rèn)傳送到TCP發(fā)送端時(shí),錯(cuò)誤很可能觸發(fā)鏈路層重傳,并使TCP將其擁塞窗口減為原來(lái)的一半,同時(shí)重傳同一個(gè)數(shù)據(jù)包。因此使用UDP不需要可靠的數(shù)據(jù)傳輸。
3.1.2 自適應(yīng)前向糾錯(cuò)
自適應(yīng)前向糾錯(cuò)(AFEC)的基本思想是找到一個(gè)(K,N)碼,使得有效吞吐量等于可獲得的吞吐量(實(shí)際上是TCP連接的最大吞吐量)。
3.2.1 TCP協(xié)議增強(qiáng)方法
(1)增大初始窗口
采用一個(gè)較大的擁塞窗口(cwnd)初始值,在發(fā)生超時(shí)重傳時(shí)才將cwnd設(shè)置為一個(gè)數(shù)據(jù)包大小,這樣就能提高慢啟動(dòng)開(kāi)始時(shí)的網(wǎng)絡(luò)帶寬利用率。TCP協(xié)議允許cwnd的初始值可以從一個(gè)數(shù)據(jù)包大小增加到下式所給出的值:
式中,WI為初始窗口大小,MSS是網(wǎng)絡(luò)能夠傳輸?shù)淖畲髷?shù)據(jù)單元的字節(jié)數(shù)。通過(guò)增大cwnd的初始值,可以在數(shù)據(jù)傳輸?shù)牡?個(gè)RTT內(nèi)發(fā)送更多的數(shù)據(jù)包,觸發(fā)更多的ACK,使cwnd打開(kāi)得更迅速一些,從而縮減了達(dá)到接收端通告窗口尺寸所需的時(shí)間。采用大的初始窗口后,慢啟動(dòng)所需的時(shí)間將變?yōu)椋?/p>
(不采用時(shí)延確認(rèn),每個(gè)數(shù)據(jù)包給出一個(gè)確認(rèn))
(采用時(shí)延確認(rèn),每2個(gè)數(shù)據(jù)包給出一個(gè)確認(rèn))
由于增大初始窗口以后,慢啟動(dòng)開(kāi)始時(shí)至少要發(fā)送2個(gè)數(shù)據(jù)包,因此,接收端就不需要等待時(shí)延確認(rèn)超時(shí)以后才發(fā)送一個(gè)ACK,這樣就節(jié)省了3RTT和一個(gè)時(shí)延確認(rèn)時(shí)間。
(2)字節(jié)計(jì)數(shù)
在慢啟動(dòng)階段,若使用標(biāo)準(zhǔn)的ACK計(jì)數(shù),對(duì)于每個(gè)接收到的ACK,cwnd都要增加一個(gè)數(shù)據(jù)包;若使用字節(jié)計(jì)數(shù),cwnd的增加數(shù)量則是由每個(gè)ACK所涵蓋的數(shù)據(jù)字節(jié)數(shù)來(lái)決定的,而不是由ACK的數(shù)量決定的,這樣就能加快cwnd增加的速度,減少慢啟動(dòng)所需的時(shí)間。采用2種類型的字節(jié)計(jì)數(shù)算法:第1種是無(wú)限字節(jié)計(jì)數(shù)(Unlimited Byte Counting,UBC),該機(jī)制在每次ACK到達(dá)時(shí),僅使用以前未確認(rèn)的字節(jié)來(lái)增大cwnd;第2種類型是受限字節(jié)計(jì)數(shù)(Limited Byte Counting,LBC),LBC把cwnd增加的數(shù)量限制在2個(gè)數(shù)據(jù)包,試驗(yàn)證明LBC可以避免了較大的線速率突發(fā),提供了較好的性能,但也稍微增加了一些數(shù)據(jù)丟失率。
(3)慢啟動(dòng)后時(shí)延確認(rèn)
在慢啟動(dòng)階段后才使用慢啟動(dòng)后時(shí)延確認(rèn)(Delayed Acknowledgement After Slow Start,DAASS),而在慢啟動(dòng)過(guò)程中仍使用普通確認(rèn)方式,這樣加快了慢啟動(dòng)過(guò)程。而在TCP連接穩(wěn)定后,減少確認(rèn)的數(shù)目,以節(jié)約網(wǎng)絡(luò)資源。使用DAASS比一直使用時(shí)延確認(rèn)在傳輸時(shí)間上有所改善,但是也稍微提高了一點(diǎn)丟失率,這是因?yàn)閏wnd的快速增長(zhǎng)造成的。
(4)選擇性確認(rèn)
使用選擇性確認(rèn)(Selective Acknowledgement,SACK)接收端可以通知發(fā)送端所有接收成功的數(shù)據(jù)包序列號(hào),從而使發(fā)送端只重發(fā)那些確實(shí)丟失的數(shù)據(jù)包,并在一個(gè)RTT內(nèi)重發(fā)多個(gè)丟失的數(shù)據(jù)包,提高了TCP傳輸?shù)男阅堋?/p>
(5)前向確認(rèn)
前向確認(rèn)(Forward Acknowledgement,FACK)算法是一種更高效的算法,能夠獲得傳輸過(guò)程中“前進(jìn)最多”的數(shù)據(jù)信息,所謂“前進(jìn)最多”指的是接收端成功接收的序列號(hào)最大的數(shù)據(jù)包,FACK從TCP SACK選項(xiàng)中獲取有關(guān)鏈路擁塞情況的附加信息,對(duì)于差錯(cuò)恢復(fù)期間輸入到網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)行更精確的控制。FACK削弱了標(biāo)準(zhǔn)差錯(cuò)恢復(fù)算法中的擁塞控制算法,提供了一個(gè)簡(jiǎn)單、直接地利用SACK來(lái)改善擁塞控制的方法。
3.2.2 TCP-Peach方案
TCP-Peach包括2種新算法:突然啟動(dòng)和迅速恢復(fù),分別代替了TCP Reno中的慢啟動(dòng)和快速恢復(fù)算法。
TCP-Peach有2個(gè)信道,一個(gè)用于數(shù)據(jù)傳輸,另一個(gè)用于網(wǎng)絡(luò)帶寬探測(cè)。TCP-Peach使用低優(yōu)先級(jí)的偽段來(lái)探測(cè)網(wǎng)絡(luò)的帶寬,偽段是最后被傳送的數(shù)據(jù)段,而且不傳送任何新信息,沿路徑的所有路由器都應(yīng)該執(zhí)行某種優(yōu)先級(jí)機(jī)制。在連接建立時(shí)的突然啟動(dòng)期間,發(fā)送端發(fā)送一個(gè)數(shù)據(jù)包和(rwnd-1)個(gè)偽段,發(fā)送這些段的時(shí)間安排被均勻地分布在一個(gè)RTT內(nèi)。如果沿路徑?jīng)]有擁塞,偽段的確認(rèn)將返回到發(fā)送端,用來(lái)增加cwnd,這樣cwnd能在一個(gè)RTT以后達(dá)到cwnd。如果發(fā)生擁塞,那么就丟棄低優(yōu)先級(jí)的偽段,這樣就不會(huì)影響數(shù)據(jù)信道的帶寬。迅速恢復(fù)采用同樣的思想能夠把鏈路錯(cuò)誤損壞從擁塞丟失中區(qū)分開(kāi)來(lái)。在快速重傳之后,發(fā)送端發(fā)送偽段去探測(cè)信道帶寬。如果丟失是由鏈路層造成的,那么大部分偽段都應(yīng)該到達(dá)目的地,并且使用它們的ACKs來(lái)增加cwnd。如果丟失是由擁塞造成的,那么將丟棄所有偽段,同時(shí)迅速恢復(fù)像快速恢復(fù)一樣運(yùn)行。
仿真場(chǎng)景是模擬一種航天通信網(wǎng)絡(luò),目的是驗(yàn)證采用的改進(jìn)TCP協(xié)議后的傳輸性能評(píng)估,衛(wèi)星軌道高度為343 km的衛(wèi)星子網(wǎng)通過(guò)具有非對(duì)稱性的衛(wèi)星中繼轉(zhuǎn)發(fā)連接到地面網(wǎng)關(guān),為了協(xié)議性能,仿真時(shí)僅考慮衛(wèi)星與地面局域網(wǎng)BeijingLAN 的服務(wù)器之間建立的多次FTP業(yè)務(wù)傳輸情況。
仿真結(jié)果如圖1、圖2和圖3所示,證明采用改進(jìn)TCP協(xié)議網(wǎng)絡(luò)性能是原來(lái)的8~25倍,能夠明顯提高空間鏈路條件下的TCP傳輸性能,保證整個(gè)網(wǎng)絡(luò)通信質(zhì)量。
圖1 窗口尺寸與吞吐量的關(guān)系
圖2 鏈路往返時(shí)間與吞吐量的關(guān)系(ber=0,BW=10 Mbps)
圖3 誤碼率與吞吐量的關(guān)系(DBW =10Mbps,ntt=560 ms)
該文研究了空間鏈路條件下的TCP傳輸控制協(xié)議,顯著提高了數(shù)據(jù)鏈路傳輸協(xié)議的吞吐率,提高了衛(wèi)星網(wǎng)絡(luò)鏈路帶寬利用率,預(yù)計(jì)隨著航天工程的大力推進(jìn),這一研究成果也會(huì)得以廣泛應(yīng)用。
[1]郝巖.航天測(cè)控網(wǎng)[M].北京:國(guó)防工業(yè)出版社,2004.
[2]趙軍,術(shù)雷鳴.中國(guó)航天測(cè)控網(wǎng)的發(fā)展[J].現(xiàn)代軍事,2003,23(2):24-25.
[3]XA Hui-zhong.Discussion on the Networking Technology for TT&C Information Networks[J].Telecommunication Engineering,2007,47(3):4-9.
[4]吳祖民,胡卓宇.衛(wèi)星通信中Internet業(yè)務(wù)接入[J].通信與廣播電視,2005(4):21-27.
[5]盧潔,張淑清,應(yīng)啟戛.幾種網(wǎng)絡(luò)擁塞控制算法比較分析[J].自動(dòng)化儀表,2006(27):23-26.