陳 宇,孟 新,卞春江,張 磊,周 海
(中國科學(xué)院空間科學(xué)與應(yīng)用研究中心,北京100190)
隨著航天技術(shù)的發(fā)展,研究并建設(shè)天地一體化航天互聯(lián)網(wǎng)勢在必行[1]。互聯(lián)網(wǎng)技術(shù)應(yīng)用于載人航天工程,能為長期留軌的航天員與地面工作人員、朋友、家人進(jìn)行交流溝通提供更便捷的服務(wù),也為科學(xué)家在地面實(shí)驗(yàn)室直接操作空間站上的儀器進(jìn)行交互式的空間科學(xué)實(shí)驗(yàn)操作提供了強(qiáng)有力的技術(shù)手段。目前地面互聯(lián)網(wǎng)上98%的數(shù)據(jù)傳輸使用TCP/IP協(xié)議棧,但由于衛(wèi)星網(wǎng)絡(luò)的一些特性,如傳播延時(shí)長、誤碼率高的和帶寬不對稱性等造成了基于地面網(wǎng)絡(luò)開發(fā)的TCP協(xié)議在空間鏈路中的性能嚴(yán)重下降[2]。為了解決該問題,空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)專為空間通信“量身定制”了空間通信協(xié)議傳輸協(xié)議SCPS-TP(Space Communications Protocol Specification-Transport Protocol,SCPS-TP)[3]。SCPS-TP 通過對 TCP 的擴(kuò)展,提高了航天通信網(wǎng)空間鏈路中TCP協(xié)議的傳輸性能。
本文研究SCPS-TP對TCP的改進(jìn)方法,搭建空間通信仿真環(huán)境,并對SCPS-TP和TCP在高誤碼高延時(shí)的仿真環(huán)境中的傳輸性能進(jìn)行仿真和對比分析。
為了克服空間鏈路對TCP性能的影響,SCPSTP協(xié)議針對空間通信中誤碼率高、傳輸時(shí)延長、鏈路帶寬不對稱、間斷性連接等問題,改進(jìn)了標(biāo)準(zhǔn)TCP協(xié)議中的部分機(jī)制。下面詳細(xì)介紹SCPS-TP改進(jìn)方法。
在空間通信中,導(dǎo)致數(shù)據(jù)丟失的三個(gè)原因是網(wǎng)絡(luò)擁塞、誤碼、鏈路中斷。SCPS-TP提高TCP性能的關(guān)鍵在于識別數(shù)據(jù)丟失原因并進(jìn)行相應(yīng)的處理操作。SCPS-TP對數(shù)據(jù)丟失原因的識別方法和相應(yīng)處理操作如下。
2.1.1 SCPS-TP對網(wǎng)絡(luò)擁塞的識別和處理
SCPS-TP利用RFC3168[4]定義的主動(dòng)隊(duì)列管理(Active Queue Management,AQM)和顯式擁塞通知機(jī)制(explicit congestion notification,ECN)來識別網(wǎng)絡(luò)是否處于擁塞狀態(tài)。AQM檢查隊(duì)列是否將要溢出,以此判斷網(wǎng)絡(luò)是否即將發(fā)生擁塞。在擁塞即將出現(xiàn)時(shí),ECN在尚未丟失數(shù)據(jù)報(bào)文的情況下通知SCPS-TP發(fā)送端網(wǎng)絡(luò)即將出現(xiàn)擁塞。ECN路由器在數(shù)據(jù)報(bào)文的IP首部中設(shè)置特殊標(biāo)志并把該數(shù)據(jù)報(bào)文向前發(fā)送,在收到有特殊標(biāo)志的數(shù)據(jù)報(bào)文后,接收端SCPS-TP利用ACK把擁塞信號回送到發(fā)送端SCPS-TP。收到該擁塞信號的SCPS-TP使用Vegas擁塞控制算法來降低丟包率并設(shè)置較大的通信窗口,快速恢復(fù)網(wǎng)絡(luò)。
2.1.2 SCPS-TP對誤碼的識別和處理
空間通信中導(dǎo)致數(shù)據(jù)丟失的主要原因是誤碼。SCPS-TP將數(shù)據(jù)丟失的默認(rèn)處理方式設(shè)置為針對誤碼的處理方式。
SCPS-TP針對誤碼的識別和處理過程分為四個(gè)階段:識別、通知、響應(yīng)、終止識別??臻g鏈路的接收終點(diǎn)即地面接收器執(zhí)行下行鏈路的識別操作。地面接收器從鏈路層獲取接收到的受損幀的個(gè)數(shù)(如通過CRC校驗(yàn))。地面接收器維護(hù)一個(gè)最近接收分組目的地址的緩存器,并根據(jù)受損幀總數(shù)計(jì)算受損幀加權(quán)流動(dòng)平均值。當(dāng)該平均值超過門限值時(shí),地面接收器進(jìn)入鏈路出錯(cuò)狀態(tài),接收器的網(wǎng)絡(luò)層調(diào)用空間網(wǎng)絡(luò)控制報(bào)文協(xié)議SCMP(類似于TCP/IP中的ICMP協(xié)議)向使用該空間鏈路的終端主機(jī)發(fā)送標(biāo)示為“鏈路已出錯(cuò)”的SCMP報(bào)文。終端主機(jī)接收到該SCMP報(bào)文后,立即通過ACK報(bào)文(報(bào)文首部包含鏈路出錯(cuò)選項(xiàng))向其對應(yīng)的SCPS-TP數(shù)據(jù)源發(fā)送數(shù)據(jù)損壞消息。當(dāng)SCPS-TP數(shù)據(jù)源接收到該ACK后,不啟動(dòng)擁塞控制,也不減小擁塞窗口,發(fā)送速率和重傳間隔時(shí)間保持不變,直到發(fā)送端接收到未帶有鏈路出錯(cuò)信息的ACK時(shí),進(jìn)入終止識別階段。
2.1.3 SCPS-TP對鏈路中斷的識別和處理
在處理鏈路中斷過程中,有類似處理誤碼的四個(gè)階段:識別、通知、響應(yīng)、終止識別。識別鏈路中斷的方法,是和具體鏈路有關(guān)的。通常,地面站檢測到載波同步信號丟失或者檢測到接收信號強(qiáng)度低于某一門限值時(shí),認(rèn)為鏈路中斷。一旦地面站(或航天器)檢測到鏈路中斷,它會(huì)向鏈路同一側(cè)的所有主機(jī)發(fā)送“鏈路中斷”SCMP報(bào)文,它包括丟失包的SCPS-TP首部。發(fā)送端SCPS-TP對鏈路中斷信號的響應(yīng)是:進(jìn)入持續(xù)模式,停止發(fā)送新數(shù)據(jù),停止重傳定時(shí)器,周期發(fā)送嗅探報(bào)文檢查鏈路是否恢復(fù)。SCPS-TP在收到鏈路恢復(fù)SCMP報(bào)文或者嗅探報(bào)文順利到達(dá)接收端并被確認(rèn)時(shí),回到正常工作模式。發(fā)送端SCPSTP會(huì)根據(jù)先前收到的鏈路中斷SCMP報(bào)文中的SCPS-TP首部中的序號,來決定數(shù)據(jù)流從何處恢復(fù)傳輸。
針對空間鏈路帶寬容量有限而使網(wǎng)絡(luò)性能受限的情況,SCPS-TP提供兩種改善機(jī)制:頭部壓縮技術(shù)和選擇性否定確認(rèn)(SNACK)選項(xiàng)。
2.2.1 SCPS-TP頭部壓縮技術(shù)
SCPS-TP的頭部壓縮技術(shù)[6]在傳輸層實(shí)現(xiàn)端到端操作。SCPS-TP頭部壓縮將頭部減少了大約50%,極大節(jié)約了確認(rèn)報(bào)文的開銷。SCPS-TP頭部壓縮技術(shù)將連接期間不變化的信息進(jìn)行摘要處理。經(jīng)過壓縮的SCPS-TP頭部是可變長的,但必須包含連接標(biāo)識符、用以指明哪些可選字段被使用和哪些標(biāo)志位被置位的比特域,還要包含校驗(yàn)和。SCPS-TP僅壓縮SCPS-TP頭部而不壓縮IP頭部。
2.2.2 SCPS-TP的SNACK選項(xiàng)
傳統(tǒng)的TCP使用ACK報(bào)文進(jìn)行確認(rèn),一個(gè)ACK報(bào)文最多能夠識別接收緩沖區(qū)中的一個(gè)缺失數(shù)據(jù)塊。SNACK允許SCPS-TP接收方通知發(fā)送方在接收方隊(duì)列有一個(gè)或一個(gè)以上的缺失數(shù)據(jù)塊。這樣,SNACK選項(xiàng)可以加速丟失數(shù)據(jù)的重傳并避免了發(fā)送方達(dá)到窗口極限。
SCPS-TP中,通過兩個(gè)技術(shù)措施解決長往返延遲(RTT)對數(shù)據(jù)傳輸所帶來的影響:窗口縮放和定時(shí)器修改。
2.3.1 SCPS-TP的窗口縮放
窗口縮放功能[7]允許SCPS-TP處理多于64K字節(jié)的未收到應(yīng)答的數(shù)據(jù)。在數(shù)據(jù)丟失主要是由誤碼造成的情況下,采用更大的窗口尺寸有助于提高網(wǎng)絡(luò)性能,這樣就可以在恢復(fù)丟失期間不斷地傳送新的數(shù)據(jù)。
2.3.2 SCPS-TP的定時(shí)器修改
SCPS-TP修改了TCP定時(shí)器的超時(shí)時(shí)間,允許往返延遲從秒級增加到小時(shí)級,符合深層空間傳輸往返延時(shí)實(shí)際情況。在建立連接時(shí),SCPS-TP將重傳定時(shí)器設(shè)置成一個(gè)合適的往返延時(shí)估計(jì)值,從而避免在連接的開始階段就出現(xiàn)多次重傳超時(shí)。另外,SCPS-TP協(xié)議利用TCP時(shí)間戳選項(xiàng),有助于比較精確地估計(jì)在有分組丟失情況下的RTT值。
信道的寬度不對稱性導(dǎo)致反向鏈路上TCP的ACK報(bào)文擁塞,進(jìn)而使TCP通信的鏈路利用率降低。SCPS-TP采用兩種改善方法:降低確認(rèn)應(yīng)答頻率、速率控制。
2.4.1 降低確認(rèn)應(yīng)答頻率
TCP協(xié)議規(guī)定每接收一個(gè)數(shù)據(jù)報(bào)文時(shí)向發(fā)送端至少回應(yīng)一個(gè)確認(rèn)報(bào)文,并且規(guī)定當(dāng)出現(xiàn)接收數(shù)據(jù)報(bào)文亂序時(shí)對每個(gè)數(shù)據(jù)報(bào)文立即給予確認(rèn),SCPS-TP取消了以上兩項(xiàng)規(guī)定,而是改成了SCPS-TP接收方以固定速率給予確認(rèn),減輕了對確認(rèn)信道的帶寬壓力。
2.4.2 SCPS-TP的速率控制
SCPS-TP采用開環(huán)速率控制機(jī)制以避免過度占用鏈路帶寬。開環(huán)速率控制機(jī)制允許在每個(gè)端點(diǎn)上基于每個(gè)SCPS-TP連接,配置傳輸速率參數(shù)。該機(jī)制在整個(gè)傳輸過程中把分組的發(fā)送速率控制在用戶指定值并限制突發(fā)傳輸數(shù)據(jù)的尺寸。
為了進(jìn)行協(xié)議性能驗(yàn)證和比較,本文利用信道仿真器,對空間環(huán)境中的TCP和SCPS-TP通信進(jìn)行仿真。如圖1所示,使用2臺(tái)主機(jī)和1臺(tái)信道仿真器搭建仿真環(huán)境,在不同誤碼和延時(shí)條件下對TCP協(xié)議和SCPS-TP協(xié)議的數(shù)據(jù)傳輸吞吐量進(jìn)行測試,并進(jìn)行比較分析。其中,兩臺(tái)主機(jī)安裝兩個(gè)應(yīng)用測試程序:用于測試TCP性能的測試工具Linux TTCP、用于測試SCPS-TP性能的測試工具SCPS TTCP。主機(jī)和信道仿真器配置百兆網(wǎng)卡。信道仿真器設(shè)置下行鏈路帶寬為100Mbps,上行鏈路帶寬為10Mbps。
圖1 SCPS-TP、TCP性能測試仿真環(huán)境
在測試中,使用測試工具利用SCPS-TP和TCP傳輸文件,文件大小為100M。兩臺(tái)主機(jī)上SCPS-TP參數(shù)配置見表1。
使用信道仿真器,測試SCPS-TP和TCP在不同延時(shí)和誤碼條件下的吞吐量,仿真結(jié)果列于表2。
通過表2中仿真結(jié)果可以看出:
(1)當(dāng)誤碼率小于10-8并且單向延時(shí)小于5ms時(shí),SCPS-TP和TCP的性能差別很小。
(2)當(dāng)誤碼率大于10-7或單向延時(shí)大于5ms時(shí),SCPS-TP的傳輸性能明顯優(yōu)于TCP。隨著誤碼率和傳輸時(shí)延的增大,SCPS-TP和TCP的傳輸性能差距加大,SCPS-TP的優(yōu)勢越來越明顯。
表1 SCPS-TP參數(shù)配置
表2 不同時(shí)延和誤碼率條件下的SCPS-TP和TCP吞吐量(單位:Mbps)
載人空間站和地面互聯(lián)網(wǎng)的連接方式分兩種情況:
(1)載人空間站和地面互聯(lián)網(wǎng)之間直接通信。載人空間站和地球之間距離為400km左右,傳輸單向延時(shí)為1.5ms。
(2)載人空間站和地面互聯(lián)網(wǎng)通過中繼星通信。中繼星和地球之間距離為36000km,載人空間站通過中繼星和地面互聯(lián)網(wǎng)通信的傳輸單向延時(shí)約為250ms。
從表2中單向時(shí)延1.5ms和單向時(shí)延250ms對應(yīng)數(shù)據(jù)可以看出,載人空間站接入地面互聯(lián)網(wǎng)時(shí),SCPS-TP的傳輸性能明顯優(yōu)于TCP。
空間鏈路的高誤碼、高延時(shí)、不對稱等特性,導(dǎo)致TCP傳輸性能下降。SCPS-TP針對空間鏈路特性對TCP進(jìn)行了改進(jìn),有效提高了TCP傳輸性能。本文利用信道仿真器搭建空間通信的仿真環(huán)境,測試SCPS-TP和TCP在高誤碼高延時(shí)的空間鏈路中的吞吐量性能。仿真結(jié)果表明在空間鏈路中SCPS-TP比TCP具有明顯優(yōu)勢。在空間站和地面互聯(lián)網(wǎng)之間通信環(huán)境中,在空間鏈路上使用SCPS-TP能夠很大程度增強(qiáng)傳輸性能,具體有兩種應(yīng)用方式:①地面終端和空間站終端安裝SCPS協(xié)議棧;②地面終端和空間站終端安裝TCP/IP協(xié)議棧,空間站和地面分別安裝TP-TCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān),在兩個(gè)網(wǎng)關(guān)之間的空間鏈路傳輸層使用SCPS-TP。
綜上所述,SCPS-TP協(xié)議適用于空間鏈路傳輸。特別是在載人空間站與地面互聯(lián)網(wǎng)之間的空間通信中,在SCPS-TP協(xié)議的基礎(chǔ)上進(jìn)行傳輸協(xié)議研究具有十分重要的意義。 ◇
[1]沈榮駿.我國天地一體化航天互聯(lián)網(wǎng)構(gòu)想.中國工程科學(xué),2006年10月第8卷第10期.
[2]吳詩其,李興.衛(wèi)星通信導(dǎo)論.電子工業(yè)出版社,2002.
[3]CCSDS 714.0-B-2 Space Communications Protocol Specification(SCPS)—Transport Protocol(SCPS-TP).Recommendation for Space Data System Standards [S].Blue Book,Issue 2,Washington,DC:CCSDS,October 2006.
[4]K.Ramakrishnan.The Addition of Explicit Congestion Notification(ECN)to IP.IETF RFC3168,September 2001.
[5]Jacobson V.Congestion Avoidance and Control[C].Proceedings of ACM SIGCOMM’88,Stanford,CA,August 1988:314—329.
[6]Jacobson V.compressing TCP/IP Headers for Low-Speed Serial Links.RFC 1144 Berkeley:LBL,F(xiàn)ebruary 1990:4—12.
[7] Borman D.,Braden R.,Jacobson V..TCP extensions for high performance.IETF RFC l323,l992.