杜龍海,吳雄君
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081; 2.中國航天科技集團公司第八研究院第八○二研究所,上海 200090)
基于SCPS-TP的TCP協議加速器的研究與實現
杜龍海1,吳雄君2
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081; 2.中國航天科技集團公司第八研究院第八○二研究所,上海 200090)
TCP協議是目前Internet中應用最為廣泛的傳輸層協議,已經成為端到端可靠數據傳輸的事實標準。但是由于衛星鏈路的長傳輸時延、高誤碼率和鏈路帶寬不對稱等特性,使得衛星鏈路上TCP傳輸性能極大下降。針對衛星鏈路影響TCP性能的因素和SCPS-TP對衛星鏈路上TCP的改進,總結了衛星鏈路TCP加速器的幾種實現方式,并給出一種基于SCPS-TP的TCP代理加速器的實現方案。測試結果表明,使用基于SCPS-TP的TCP代理能夠明顯提高TCP協議性能。
衛星鏈路;TCP加速;SCPS-TP;TCP代理
衛星通信系統承載了大量的基于TCP的網絡應用,TCP協議是針對地面有線網絡設計的,衛星鏈路的長延時、高誤碼等特點導致TCP性能的嚴重下降。
文獻[1]對衛星鏈路的特點及其對TCP性能的影響進行了分析,并采用TCP端到端協議改進方案與TCP代理確認算法相結合的方式對TCP性能進行了改進,但沒有將SCPS-TP協議與TCP代理確認相結合。文獻[2]針對長時延、高誤碼的特點設計了發送端ACK欺騙、限制接收端ACK及接收端發送NACK的機制提高TCP性能,但沒有針對擁塞窗口進行改進,沒有充分利用衛星鏈路大帶寬、長時延的特點。文獻[3]設計了增大初始窗口、擁塞窗口快速恢復等機制改善TCP的性能,但使用了探測數據包的方式來加速擁塞窗口恢復,增加了額外的開銷。
基于SCPS-TP的TCP協議加速方式使用SCPS協議,采用分裂連接的實現方式,通過代理網關實現衛星鏈路下TCP協議的性能增強。這種加速方式不增加額外的協議開銷,充分利用了衛星鏈路大帶寬、長時延等特點。地面終端和衛星終端可使用標準協議棧,協議加速過程對終端透明,不影響終端上現有的基于標準TCP協議的應用[4]。
1.1 長時延影響
對于GEO衛星,單向傳播時延大約為250~280 ms,MEO衛星為110~150 ms,LEO為20~25 ms。長時延對TCP的影響包括以下兩方面:
① 通告的接收窗口限制傳輸速率,在標準TCP協議中,最大接收通告窗口是64 KB,衛星鏈路下若單向傳播時延為20 ms時,RTT為40 ms,則整個信道的最大吞吐量率為(64×8)÷40×1 000÷1 024=12.5 Mbit/s。這表明,即使衛星信道的發送速率超過12.5 Mbit/s,實際的最大吞吐率也只能被限制在12.5 Mbit/s。
② 長時延的另一個影響是降低了擁塞窗口打開的速度。在連接建立之初的慢啟動階段,發送方是根據接收到的確認報文的數量來增加擁塞窗口大小的,因此鏈路時延越大,擁塞窗口達到最大值所用的時間就越長,從而降低了數據吞吐量。
1.2 高誤碼影響
衛星鏈路上的誤碼率遠高于地面網絡,加上衛星信道各種隨機因素,使得信道出現突發錯誤,導致數據丟失。但由于傳統TCP協議不區分數據丟失是由于傳輸錯誤還是由于網絡擁塞造成的,丟包原因都被解釋為網絡擁塞。因此,在發送端發現丟包后就會降低擁塞窗口,啟動慢啟動機制,從而影響數據傳輸速率。
1.3 非對稱鏈路影響
地面網絡常用的信道一般是對稱的,也就是連接的前向信道和反向信道的信道容量大致相等。而在衛星鏈路中則情況不同,在衛星鏈路中通常反向信道(從地面到衛星)帶寬會比前向信道(從衛星到地面)帶寬小許多,通常前向信道帶寬與反向信道帶寬比值大約為1 000∶1。前向和反向鏈路帶寬不對稱的情況下,發送端在前向鏈路發送大量數據分組時,接收端產生的ACK分組會使反向鏈路飽和,從而造成ACK分組大量丟失或有較大排隊延時。因為基于TCP的數據傳輸是依賴于穩定的ACK應答的,ACK分組丟失或大延時,會造成發送方的數據減緩,慢啟動的擁塞窗口始終保持為1,快速重傳的有效性大大減少。因此,帶寬的不對稱性會導致TCP吞吐量的降低。
TCP協議加速是在標準TCP協議的基礎上進行修改或擴展,使得修改后的協議適合于衛星鏈路傳輸。SCPS-TP是空間數據咨詢委員會提出的傳輸層協議,根據衛星鏈路的特點對標準的TCP進行了改進。
針對長時延問題SCPS-TP規定增加窗口擴大選項[5],通過窗口擴大選項使得通告的接收窗口域從16 bit擴大到了32 bit[6],從而增加了數據的吞吐量。但大窗口機制增加了一個窗口內丟失多個報文的概率,因此需要增加SACK機制[7]或SNACK機制進行選擇確認機制來應對丟失多個報文的問題。增加事務TCP處理,減少交互過程,提高TCP處理效率[8]。
針對高誤碼問題,修改擁塞窗口初始值,加快擁塞窗口打開速度[9]。增加快速重傳和快速回復機制[10],加快報文重傳速度和窗口的恢復速度。
針對前向和反向鏈路不對稱問題,解決非對稱鏈路問題的方法包括:采用頭部壓縮機制,減小ACK報文的長度,降低反向鏈路的帶寬占用[11];采用延遲確認,并改進擁塞窗口擴大機制,減少ACK報文的數量;采用顯示擁塞通知機制,對反向鏈路的ACK進行擁塞控制[12]。
3.1 TCP代理實現方式
TCP協議加速的實現方式包括端到端協議加速、欺騙確認等方式。其中,端到端協議加速是根據衛星鏈路的特點,對地面終端和星載終端的TCP協議棧進行改造,網關之間運行適應衛星信道的鏈路層及物理層協議,從而達到提高協議傳輸效率的目的。欺騙確認方式下,地面終端和衛星終端運行標準TCP協議,網關之間運行根據衛星信道特點自定義的傳輸協議,網關接收并緩存源終端的數據包,并對源終端發送確認包,然后使用自定義傳輸協議將數據包送到目的端的網關,再由目的端網關將數據發送至目的終端[13]。欺騙確認方式是依靠網關發送一個欺騙ACK來代替從目的主機發送過來的實際ACK信息,從而消除ACK信息回傳消耗的時間,提高了TCP性能[14]。
端到端的實現方式需要對現有終端的協議棧進行改造,這在現實條件下無法實施[15]。欺騙確認方式,由網關代替終端對數據包進行確認,破壞了TCP端到端的語義,有可能破壞數據的傳輸。
基于SCPS-TP的TCP協議加速方式不需要對現有終端進行改造,只要增加網關代理就能夠實現TCP加速。使用網關將TCP連接分成3段,如圖1所示,星載終端和星載網關之間、地面終端和地面網關之間使用標準TCP連接,星載網關和地面網關之間使用改進的TCP連接。星載終端和地面終端的協議棧不需修改,通過網關實現TCP加速。與欺騙確認方式不同的是,網關不針對終端發送的數據包進行確認,保持了TCP連接的語義。另外,SCPS已經被國際化標準組織采納為國際標準[16],因此基于SCPS-TP實現TCP加速有利于不同廠家生產的設備間的互聯互通[17]。

圖1 基于SCPS-TP的網關代理方式的連接劃分
基于SCPS-TP的TCP協議加速方式主要通過網關代理實現協議加速,網關代理的邏輯結構如圖2所示。

圖2 網關代理的邏輯結構
網關代理各模塊的功能描述如下:
偽裝服務器:運行在消息發送端的網關上,偽裝消息接收終端與消息發送終端建立TCP連接并交互數據。
網關客戶端:運行在消息發送端的網關上,是網關間通信的客戶端,與消息接收端網關建立TCP連接并交互數據。
網關服務器端:運行在消息接收端的網關上,是網關間通信的服務器,與消息發送端網關建立TCP連接并交互數據。
偽裝客戶端:運行在消息接收端的網關上,偽裝消息發送終端與實際消息接收終端建立TCP連接并交互數據。
數據轉發模塊:維護處于連接建立狀態的TCP連接,在同一條連接的偽裝服務器端和網關客戶端之間或網關服務器和偽裝客戶端之間轉發數據。
邏輯終端管理模塊:負責創建和刪除偽裝服務器、網關客戶端、網關服務器和偽裝客戶端。
消息捕獲模塊:捕獲在消息發送終端和消息接收終端之間傳遞的控制消息和數據消息。
3.2 TCP代理處理流程
通過TCP代理進行TCP加速時,網關代理將TCP連接分成3段,網關代理和終端之間運行標準TCP連接,網關代理之間運行增強的TCP連接。TCP加速處理流程包括連接建立、數據傳輸和連接拆除等操作[18]。
3.2.1 連接建立處理流程
消息發送端發起TCP連接時,發送端網關代理截獲握手報文,根據握手報文向接收端網關代理發起改進的TCP連接,網關代理之間建立增強TCP連接之后,再與終端建立標準TCP連接,連接建立流程如圖3所示。

圖3 連接建立處理流程
3.2.2 數據傳輸處理流程
基于SCPS-TP的網關代理進行數據傳輸時,網關代理截獲終端發送的數據包,匹配數據包所在的連接,使用增強的TCP協議轉發截獲的數據包。數據傳輸流程如圖4所示。

圖4 數據傳輸處理流程
3.2.3 連接拆除處理流程
數據傳輸完畢后,發送終端發送FIN報文拆除連接,網關代理截獲FIN報文,匹配要拆除的連接,向接收端網關代理發送FIN報文,收端網關代理向接收終端發送FIN報文拆除連接。連接拆除過程如圖5所示。

圖5 連接拆除處理流程
使用衛星信道模擬器模擬LEO衛星鏈路,設置誤碼率為10-4[19],時延為20 ms[20],標準TCP端到端傳輸曲線如圖6所示。

圖6 端到端傳輸速率曲線
使用衛星信道模擬器模擬LEO衛星鏈路,設置誤碼率為10-4,時延為20 ms,使用基于SCPS-TP的網關代理進行TCP加速后的傳輸曲線如圖7所示。

圖7 使用基于SCPS-TP的網關代理的傳輸曲線
對比圖3和圖4可以看出,在模擬LEO衛星鏈路上運行標準TCP協議時,業務傳輸速率在10 kByte/s左右,使用基于SCPS-TP的網關代理對TCP加速后,業務傳輸速率在1.4 MByte/s左右,大大提高了業務傳輸速率。
本文分析了衛星鏈路長時延、高誤碼和鏈路非對稱等固有的特點對TCP傳輸性能的影響以及TCP加速的原理,給出了一種基于SCPS-TP的TCP網關代理實現方案,測試表明使用網關代理對TCP加速后,業務傳輸速率得到明顯改善。
基于SCPS-TP的TCP協議加速方式,通過擴大發送窗口機制,充分利用衛星鏈路大帶寬的特點;采用SACK機制,處理發送窗口內多個報文丟失問題;采用擁塞窗口快速恢復、數據包快速重傳等機制,適應衛星鏈路高誤碼的特點;采用頭部壓縮、延遲確認等機制應對鏈路非對稱問題。基于SCPS-TP的TCP協議加速方式不增加額外的開銷,充分利用衛星鏈路特點提高TCP性能。SCPS已經被國際化標準組織采納為國際標準,基于SCPS-TP實現TCP加速利于系統間的互聯互通,具有標準化、通用性好的優點,在衛星鏈路上采用基于SCPS-TP的協議加速具有重要意義[21]。
[1] 何成林.衛星網絡中的TCP傳輸控制研究[D].武漢:華中科技大學,2007.
[2] 張亞生,彭華,谷聚娟.衛星TCP加速技術研究[J].無線電通信技術,2010,36(5):29-31.
[3] 崔弘珂.一種空間環境下的TCP傳輸技術研究[J].無線電通信技術,2011,37(4):21-24.
[4] 李牧,張勇丁,向東蕾,等.無線網絡環境中傳輸控制協議的改進機制[J].計算機工程,2016(1):103-108.
[5] CCSDS 714,0-B-2,Space Communications Protocol Specification-Transport Protocol(SCPS-TP)[S],2006.
[6] JACOBSON V,BRADEN R,BORMAN D.TCP Extensions for High Performance[S],1992.
[7] MATHIS M,MAHDAVI J,FLOYD S,et al.TCP Selective Acknowledgment Options[S],IETF RFC2018,1996.
[8] BRADEN R.T/TCP-TCP Extensions for Transactions Functional Specification[S].IETF RFC1644,1994.
[9] ALLMAN M,FLOYD S,PARTRIDGE C.Increasing TCP’s Initial Window[S].IETF RFC2414,1998.
[10] ALLMAN M,PAXSON V,STEVENS W.TCP Congestion Control[S].IETF RFC2581,1999.
[11] JACOBSON V.Compressing TCP/IP Headers for Low-Speed Serial Links[S].IETF RFC1144,1990.
[12] RAMAKRISHNAN K,FLOYD S,BLACK D.The Addition of Explicit Congestion Notification(ECN) to IP[S].IETF RFC3168,2001.
[13] 周兆清,陳立軍.TCP/IP協議在衛星鏈路上的應用研究[J].無線電工程,2010,36(1):47-50.
[14] 邱金蕙,孫玉偉,錢煜哲.基于XTP的衛星協議網關設計[J].無線電工程,2013,43(9):10-13.[15] 梁金山.衛星IP 通信網設計技術[J].無線電通信技術,2010,36(6):10-13.
[16] 何辭,孫晨華,陳祺云.基于TDMA衛星通信系統的TCP增強技術研究[J].無線電通信技術,2011,37(3):11-13.
[17] 劉雨杭.基于寬帶衛星網絡的TCP協議傳輸性能的研究[D].長春:吉林大學,2015.
[18] 張金磊.基于微小衛星編隊的TCP協議研究[D].哈爾濱:哈爾濱工程大學,2013.
[19] 余騰,劉志敏.基于NS-3的衛星鏈路TCP仿真研究[J].計算機工程與應用,2015,51(22):90-94.
[20] 高靜.衛星網絡中TCP協議的研究及改進[D].西安:西安電子科技大學,2013.
[21] 郝志安.衛星鏈路TCP協議的跨層設計[J].計算機與網絡,2011,37(12):43-46.
Study and Implementation of TCP Protocol Accelerator Based on SCPS-TP
DU Long-hai1,WU Xiong-jun2
(1.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China; 2.The802thResearchInstituteofShanghaiAcademyofSpaceFlightTechnology,The8thAcademyofChinaAerospaceScienceandTechnologyCorporation,Shanghai200090,China)
The Internet TCP protocol is the most widely used data transfer protocol,and it has become the actual standard for data transmission,but the TCP performance is seriously affected by the long delay,high bit error rate and network asymmetry of satellite links.The factors affecting TCP performance due to satellite links and methods to improve TCP performance by SCPS-TP are analyzed.By analyzing a variety of different common implementations of TCP protocol accelerators that run on satellite links,an implementation scheme for TCP protocol accelerator based on SCPS-TP is proposed.The test result indicates that the performance of TCP protocol is improved by using the proposed technique.
satellite link;TCP acceleration;SCPS-TP;TCP proxy
10.3969/j.issn.1003-3106.2017.09.03
杜龍海,吳雄君.基于SCPS-TP的TCP協議加速器的研究與實現[J].無線電工程,2017,47(9):12-15,20.[DU Longhai,WU Xiongjun.Study and Implementation of TCP Protocol Accelerator Based on SCPS-TP[J].Radio Engineering,2017,47(9):12-15,20.]
TP919.3
A
1003-3106(2017)09-0012-04
2016-11-23
杜龍海 男,(1978—),高級工程師。主要研究方向:網絡技術。
吳雄君 男,(1983—),博士,高級工程師。主要研究方向:約束控制、多智能體協同。