杜龍海,吳雄君
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081; 2.中國航天科技集團(tuán)公司第八研究院第八○二研究所,上海 200090)
基于SCPS-TP的TCP協(xié)議加速器的研究與實(shí)現(xiàn)
杜龍海1,吳雄君2
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081; 2.中國航天科技集團(tuán)公司第八研究院第八○二研究所,上海 200090)
TCP協(xié)議是目前Internet中應(yīng)用最為廣泛的傳輸層協(xié)議,已經(jīng)成為端到端可靠數(shù)據(jù)傳輸?shù)氖聦?shí)標(biāo)準(zhǔn)。但是由于衛(wèi)星鏈路的長傳輸時(shí)延、高誤碼率和鏈路帶寬不對稱等特性,使得衛(wèi)星鏈路上TCP傳輸性能極大下降。針對衛(wèi)星鏈路影響TCP性能的因素和SCPS-TP對衛(wèi)星鏈路上TCP的改進(jìn),總結(jié)了衛(wèi)星鏈路TCP加速器的幾種實(shí)現(xiàn)方式,并給出一種基于SCPS-TP的TCP代理加速器的實(shí)現(xiàn)方案。測試結(jié)果表明,使用基于SCPS-TP的TCP代理能夠明顯提高TCP協(xié)議性能。
衛(wèi)星鏈路;TCP加速;SCPS-TP;TCP代理
衛(wèi)星通信系統(tǒng)承載了大量的基于TCP的網(wǎng)絡(luò)應(yīng)用,TCP協(xié)議是針對地面有線網(wǎng)絡(luò)設(shè)計(jì)的,衛(wèi)星鏈路的長延時(shí)、高誤碼等特點(diǎn)導(dǎo)致TCP性能的嚴(yán)重下降。
文獻(xiàn)[1]對衛(wèi)星鏈路的特點(diǎn)及其對TCP性能的影響進(jìn)行了分析,并采用TCP端到端協(xié)議改進(jìn)方案與TCP代理確認(rèn)算法相結(jié)合的方式對TCP性能進(jìn)行了改進(jìn),但沒有將SCPS-TP協(xié)議與TCP代理確認(rèn)相結(jié)合。文獻(xiàn)[2]針對長時(shí)延、高誤碼的特點(diǎn)設(shè)計(jì)了發(fā)送端ACK欺騙、限制接收端ACK及接收端發(fā)送NACK的機(jī)制提高TCP性能,但沒有針對擁塞窗口進(jìn)行改進(jìn),沒有充分利用衛(wèi)星鏈路大帶寬、長時(shí)延的特點(diǎn)。文獻(xiàn)[3]設(shè)計(jì)了增大初始窗口、擁塞窗口快速恢復(fù)等機(jī)制改善TCP的性能,但使用了探測數(shù)據(jù)包的方式來加速擁塞窗口恢復(fù),增加了額外的開銷。
基于SCPS-TP的TCP協(xié)議加速方式使用SCPS協(xié)議,采用分裂連接的實(shí)現(xiàn)方式,通過代理網(wǎng)關(guān)實(shí)現(xiàn)衛(wèi)星鏈路下TCP協(xié)議的性能增強(qiáng)。這種加速方式不增加額外的協(xié)議開銷,充分利用了衛(wèi)星鏈路大帶寬、長時(shí)延等特點(diǎn)。地面終端和衛(wèi)星終端可使用標(biāo)準(zhǔn)協(xié)議棧,協(xié)議加速過程對終端透明,不影響終端上現(xiàn)有的基于標(biāo)準(zhǔn)TCP協(xié)議的應(yīng)用[4]。
1.1 長時(shí)延影響
對于GEO衛(wèi)星,單向傳播時(shí)延大約為250~280 ms,MEO衛(wèi)星為110~150 ms,LEO為20~25 ms。長時(shí)延對TCP的影響包括以下兩方面:
① 通告的接收窗口限制傳輸速率,在標(biāo)準(zhǔn)TCP協(xié)議中,最大接收通告窗口是64 KB,衛(wèi)星鏈路下若單向傳播時(shí)延為20 ms時(shí),RTT為40 ms,則整個(gè)信道的最大吞吐量率為(64×8)÷40×1 000÷1 024=12.5 Mbit/s。這表明,即使衛(wèi)星信道的發(fā)送速率超過12.5 Mbit/s,實(shí)際的最大吞吐率也只能被限制在12.5 Mbit/s。
② 長時(shí)延的另一個(gè)影響是降低了擁塞窗口打開的速度。在連接建立之初的慢啟動階段,發(fā)送方是根據(jù)接收到的確認(rèn)報(bào)文的數(shù)量來增加擁塞窗口大小的,因此鏈路時(shí)延越大,擁塞窗口達(dá)到最大值所用的時(shí)間就越長,從而降低了數(shù)據(jù)吞吐量。
1.2 高誤碼影響
衛(wèi)星鏈路上的誤碼率遠(yuǎn)高于地面網(wǎng)絡(luò),加上衛(wèi)星信道各種隨機(jī)因素,使得信道出現(xiàn)突發(fā)錯(cuò)誤,導(dǎo)致數(shù)據(jù)丟失。但由于傳統(tǒng)TCP協(xié)議不區(qū)分?jǐn)?shù)據(jù)丟失是由于傳輸錯(cuò)誤還是由于網(wǎng)絡(luò)擁塞造成的,丟包原因都被解釋為網(wǎng)絡(luò)擁塞。因此,在發(fā)送端發(fā)現(xiàn)丟包后就會降低擁塞窗口,啟動慢啟動機(jī)制,從而影響數(shù)據(jù)傳輸速率。
1.3 非對稱鏈路影響
地面網(wǎng)絡(luò)常用的信道一般是對稱的,也就是連接的前向信道和反向信道的信道容量大致相等。而在衛(wèi)星鏈路中則情況不同,在衛(wèi)星鏈路中通常反向信道(從地面到衛(wèi)星)帶寬會比前向信道(從衛(wèi)星到地面)帶寬小許多,通常前向信道帶寬與反向信道帶寬比值大約為1 000∶1。前向和反向鏈路帶寬不對稱的情況下,發(fā)送端在前向鏈路發(fā)送大量數(shù)據(jù)分組時(shí),接收端產(chǎn)生的ACK分組會使反向鏈路飽和,從而造成ACK分組大量丟失或有較大排隊(duì)延時(shí)。因?yàn)榛赥CP的數(shù)據(jù)傳輸是依賴于穩(wěn)定的ACK應(yīng)答的,ACK分組丟失或大延時(shí),會造成發(fā)送方的數(shù)據(jù)減緩,慢啟動的擁塞窗口始終保持為1,快速重傳的有效性大大減少。因此,帶寬的不對稱性會導(dǎo)致TCP吞吐量的降低。
TCP協(xié)議加速是在標(biāo)準(zhǔn)TCP協(xié)議的基礎(chǔ)上進(jìn)行修改或擴(kuò)展,使得修改后的協(xié)議適合于衛(wèi)星鏈路傳輸。SCPS-TP是空間數(shù)據(jù)咨詢委員會提出的傳輸層協(xié)議,根據(jù)衛(wèi)星鏈路的特點(diǎn)對標(biāo)準(zhǔn)的TCP進(jìn)行了改進(jìn)。
針對長時(shí)延問題SCPS-TP規(guī)定增加窗口擴(kuò)大選項(xiàng)[5],通過窗口擴(kuò)大選項(xiàng)使得通告的接收窗口域從16 bit擴(kuò)大到了32 bit[6],從而增加了數(shù)據(jù)的吞吐量。但大窗口機(jī)制增加了一個(gè)窗口內(nèi)丟失多個(gè)報(bào)文的概率,因此需要增加SACK機(jī)制[7]或SNACK機(jī)制進(jìn)行選擇確認(rèn)機(jī)制來應(yīng)對丟失多個(gè)報(bào)文的問題。增加事務(wù)TCP處理,減少交互過程,提高TCP處理效率[8]。
針對高誤碼問題,修改擁塞窗口初始值,加快擁塞窗口打開速度[9]。增加快速重傳和快速回復(fù)機(jī)制[10],加快報(bào)文重傳速度和窗口的恢復(fù)速度。
針對前向和反向鏈路不對稱問題,解決非對稱鏈路問題的方法包括:采用頭部壓縮機(jī)制,減小ACK報(bào)文的長度,降低反向鏈路的帶寬占用[11];采用延遲確認(rèn),并改進(jìn)擁塞窗口擴(kuò)大機(jī)制,減少ACK報(bào)文的數(shù)量;采用顯示擁塞通知機(jī)制,對反向鏈路的ACK進(jìn)行擁塞控制[12]。
3.1 TCP代理實(shí)現(xiàn)方式
TCP協(xié)議加速的實(shí)現(xiàn)方式包括端到端協(xié)議加速、欺騙確認(rèn)等方式。其中,端到端協(xié)議加速是根據(jù)衛(wèi)星鏈路的特點(diǎn),對地面終端和星載終端的TCP協(xié)議棧進(jìn)行改造,網(wǎng)關(guān)之間運(yùn)行適應(yīng)衛(wèi)星信道的鏈路層及物理層協(xié)議,從而達(dá)到提高協(xié)議傳輸效率的目的。欺騙確認(rèn)方式下,地面終端和衛(wèi)星終端運(yùn)行標(biāo)準(zhǔn)TCP協(xié)議,網(wǎng)關(guān)之間運(yùn)行根據(jù)衛(wèi)星信道特點(diǎn)自定義的傳輸協(xié)議,網(wǎng)關(guān)接收并緩存源終端的數(shù)據(jù)包,并對源終端發(fā)送確認(rèn)包,然后使用自定義傳輸協(xié)議將數(shù)據(jù)包送到目的端的網(wǎng)關(guān),再由目的端網(wǎng)關(guān)將數(shù)據(jù)發(fā)送至目的終端[13]。欺騙確認(rèn)方式是依靠網(wǎng)關(guān)發(fā)送一個(gè)欺騙ACK來代替從目的主機(jī)發(fā)送過來的實(shí)際ACK信息,從而消除ACK信息回傳消耗的時(shí)間,提高了TCP性能[14]。
端到端的實(shí)現(xiàn)方式需要對現(xiàn)有終端的協(xié)議棧進(jìn)行改造,這在現(xiàn)實(shí)條件下無法實(shí)施[15]。欺騙確認(rèn)方式,由網(wǎng)關(guān)代替終端對數(shù)據(jù)包進(jìn)行確認(rèn),破壞了TCP端到端的語義,有可能破壞數(shù)據(jù)的傳輸。
基于SCPS-TP的TCP協(xié)議加速方式不需要對現(xiàn)有終端進(jìn)行改造,只要增加網(wǎng)關(guān)代理就能夠?qū)崿F(xiàn)TCP加速。使用網(wǎng)關(guān)將TCP連接分成3段,如圖1所示,星載終端和星載網(wǎng)關(guān)之間、地面終端和地面網(wǎng)關(guān)之間使用標(biāo)準(zhǔn)TCP連接,星載網(wǎng)關(guān)和地面網(wǎng)關(guān)之間使用改進(jìn)的TCP連接。星載終端和地面終端的協(xié)議棧不需修改,通過網(wǎng)關(guān)實(shí)現(xiàn)TCP加速。與欺騙確認(rèn)方式不同的是,網(wǎng)關(guān)不針對終端發(fā)送的數(shù)據(jù)包進(jìn)行確認(rèn),保持了TCP連接的語義。另外,SCPS已經(jīng)被國際化標(biāo)準(zhǔn)組織采納為國際標(biāo)準(zhǔn)[16],因此基于SCPS-TP實(shí)現(xiàn)TCP加速有利于不同廠家生產(chǎn)的設(shè)備間的互聯(lián)互通[17]。
圖1 基于SCPS-TP的網(wǎng)關(guān)代理方式的連接劃分
基于SCPS-TP的TCP協(xié)議加速方式主要通過網(wǎng)關(guān)代理實(shí)現(xiàn)協(xié)議加速,網(wǎng)關(guān)代理的邏輯結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)關(guān)代理的邏輯結(jié)構(gòu)
網(wǎng)關(guān)代理各模塊的功能描述如下:
偽裝服務(wù)器:運(yùn)行在消息發(fā)送端的網(wǎng)關(guān)上,偽裝消息接收終端與消息發(fā)送終端建立TCP連接并交互數(shù)據(jù)。
網(wǎng)關(guān)客戶端:運(yùn)行在消息發(fā)送端的網(wǎng)關(guān)上,是網(wǎng)關(guān)間通信的客戶端,與消息接收端網(wǎng)關(guān)建立TCP連接并交互數(shù)據(jù)。
網(wǎng)關(guān)服務(wù)器端:運(yùn)行在消息接收端的網(wǎng)關(guān)上,是網(wǎng)關(guān)間通信的服務(wù)器,與消息發(fā)送端網(wǎng)關(guān)建立TCP連接并交互數(shù)據(jù)。
偽裝客戶端:運(yùn)行在消息接收端的網(wǎng)關(guān)上,偽裝消息發(fā)送終端與實(shí)際消息接收終端建立TCP連接并交互數(shù)據(jù)。
數(shù)據(jù)轉(zhuǎn)發(fā)模塊:維護(hù)處于連接建立狀態(tài)的TCP連接,在同一條連接的偽裝服務(wù)器端和網(wǎng)關(guān)客戶端之間或網(wǎng)關(guān)服務(wù)器和偽裝客戶端之間轉(zhuǎn)發(fā)數(shù)據(jù)。
邏輯終端管理模塊:負(fù)責(zé)創(chuàng)建和刪除偽裝服務(wù)器、網(wǎng)關(guān)客戶端、網(wǎng)關(guān)服務(wù)器和偽裝客戶端。
消息捕獲模塊:捕獲在消息發(fā)送終端和消息接收終端之間傳遞的控制消息和數(shù)據(jù)消息。
3.2 TCP代理處理流程
通過TCP代理進(jìn)行TCP加速時(shí),網(wǎng)關(guān)代理將TCP連接分成3段,網(wǎng)關(guān)代理和終端之間運(yùn)行標(biāo)準(zhǔn)TCP連接,網(wǎng)關(guān)代理之間運(yùn)行增強(qiáng)的TCP連接。TCP加速處理流程包括連接建立、數(shù)據(jù)傳輸和連接拆除等操作[18]。
3.2.1 連接建立處理流程
消息發(fā)送端發(fā)起TCP連接時(shí),發(fā)送端網(wǎng)關(guān)代理截獲握手報(bào)文,根據(jù)握手報(bào)文向接收端網(wǎng)關(guān)代理發(fā)起改進(jìn)的TCP連接,網(wǎng)關(guān)代理之間建立增強(qiáng)TCP連接之后,再與終端建立標(biāo)準(zhǔn)TCP連接,連接建立流程如圖3所示。
圖3 連接建立處理流程
3.2.2 數(shù)據(jù)傳輸處理流程
基于SCPS-TP的網(wǎng)關(guān)代理進(jìn)行數(shù)據(jù)傳輸時(shí),網(wǎng)關(guān)代理截獲終端發(fā)送的數(shù)據(jù)包,匹配數(shù)據(jù)包所在的連接,使用增強(qiáng)的TCP協(xié)議轉(zhuǎn)發(fā)截獲的數(shù)據(jù)包。數(shù)據(jù)傳輸流程如圖4所示。
圖4 數(shù)據(jù)傳輸處理流程
3.2.3 連接拆除處理流程
數(shù)據(jù)傳輸完畢后,發(fā)送終端發(fā)送FIN報(bào)文拆除連接,網(wǎng)關(guān)代理截獲FIN報(bào)文,匹配要拆除的連接,向接收端網(wǎng)關(guān)代理發(fā)送FIN報(bào)文,收端網(wǎng)關(guān)代理向接收終端發(fā)送FIN報(bào)文拆除連接。連接拆除過程如圖5所示。
圖5 連接拆除處理流程
使用衛(wèi)星信道模擬器模擬LEO衛(wèi)星鏈路,設(shè)置誤碼率為10-4[19],時(shí)延為20 ms[20],標(biāo)準(zhǔn)TCP端到端傳輸曲線如圖6所示。
圖6 端到端傳輸速率曲線
使用衛(wèi)星信道模擬器模擬LEO衛(wèi)星鏈路,設(shè)置誤碼率為10-4,時(shí)延為20 ms,使用基于SCPS-TP的網(wǎng)關(guān)代理進(jìn)行TCP加速后的傳輸曲線如圖7所示。
圖7 使用基于SCPS-TP的網(wǎng)關(guān)代理的傳輸曲線
對比圖3和圖4可以看出,在模擬LEO衛(wèi)星鏈路上運(yùn)行標(biāo)準(zhǔn)TCP協(xié)議時(shí),業(yè)務(wù)傳輸速率在10 kByte/s左右,使用基于SCPS-TP的網(wǎng)關(guān)代理對TCP加速后,業(yè)務(wù)傳輸速率在1.4 MByte/s左右,大大提高了業(yè)務(wù)傳輸速率。
本文分析了衛(wèi)星鏈路長時(shí)延、高誤碼和鏈路非對稱等固有的特點(diǎn)對TCP傳輸性能的影響以及TCP加速的原理,給出了一種基于SCPS-TP的TCP網(wǎng)關(guān)代理實(shí)現(xiàn)方案,測試表明使用網(wǎng)關(guān)代理對TCP加速后,業(yè)務(wù)傳輸速率得到明顯改善。
基于SCPS-TP的TCP協(xié)議加速方式,通過擴(kuò)大發(fā)送窗口機(jī)制,充分利用衛(wèi)星鏈路大帶寬的特點(diǎn);采用SACK機(jī)制,處理發(fā)送窗口內(nèi)多個(gè)報(bào)文丟失問題;采用擁塞窗口快速恢復(fù)、數(shù)據(jù)包快速重傳等機(jī)制,適應(yīng)衛(wèi)星鏈路高誤碼的特點(diǎn);采用頭部壓縮、延遲確認(rèn)等機(jī)制應(yīng)對鏈路非對稱問題。基于SCPS-TP的TCP協(xié)議加速方式不增加額外的開銷,充分利用衛(wèi)星鏈路特點(diǎn)提高TCP性能。SCPS已經(jīng)被國際化標(biāo)準(zhǔn)組織采納為國際標(biāo)準(zhǔn),基于SCPS-TP實(shí)現(xiàn)TCP加速利于系統(tǒng)間的互聯(lián)互通,具有標(biāo)準(zhǔn)化、通用性好的優(yōu)點(diǎn),在衛(wèi)星鏈路上采用基于SCPS-TP的協(xié)議加速具有重要意義[21]。
[1] 何成林.衛(wèi)星網(wǎng)絡(luò)中的TCP傳輸控制研究[D].武漢:華中科技大學(xué),2007.
[2] 張亞生,彭華,谷聚娟.衛(wèi)星TCP加速技術(shù)研究[J].無線電通信技術(shù),2010,36(5):29-31.
[3] 崔弘珂.一種空間環(huán)境下的TCP傳輸技術(shù)研究[J].無線電通信技術(shù),2011,37(4):21-24.
[4] 李牧,張勇丁,向東蕾,等.無線網(wǎng)絡(luò)環(huán)境中傳輸控制協(xié)議的改進(jìn)機(jī)制[J].計(jì)算機(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協(xié)議在衛(wèi)星鏈路上的應(yīng)用研究[J].無線電工程,2010,36(1):47-50.
[14] 邱金蕙,孫玉偉,錢煜哲.基于XTP的衛(wèi)星協(xié)議網(wǎng)關(guān)設(shè)計(jì)[J].無線電工程,2013,43(9):10-13.[15] 梁金山.衛(wèi)星IP 通信網(wǎng)設(shè)計(jì)技術(shù)[J].無線電通信技術(shù),2010,36(6):10-13.
[16] 何辭,孫晨華,陳祺云.基于TDMA衛(wèi)星通信系統(tǒng)的TCP增強(qiáng)技術(shù)研究[J].無線電通信技術(shù),2011,37(3):11-13.
[17] 劉雨杭.基于寬帶衛(wèi)星網(wǎng)絡(luò)的TCP協(xié)議傳輸性能的研究[D].長春:吉林大學(xué),2015.
[18] 張金磊.基于微小衛(wèi)星編隊(duì)的TCP協(xié)議研究[D].哈爾濱:哈爾濱工程大學(xué),2013.
[19] 余騰,劉志敏.基于NS-3的衛(wèi)星鏈路TCP仿真研究[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(22):90-94.
[20] 高靜.衛(wèi)星網(wǎng)絡(luò)中TCP協(xié)議的研究及改進(jìn)[D].西安:西安電子科技大學(xué),2013.
[21] 郝志安.衛(wèi)星鏈路TCP協(xié)議的跨層設(shè)計(jì)[J].計(jì)算機(jī)與網(wǎng)絡(luò),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協(xié)議加速器的研究與實(shí)現(xiàn)[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—),高級工程師。主要研究方向:網(wǎng)絡(luò)技術(shù)。
吳雄君 男,(1983—),博士,高級工程師。主要研究方向:約束控制、多智能體協(xié)同。