王占偉 孟祥宇 杜倩倩 王云飛 高二東 朱珊
【摘 要】目前,我國高通量衛(wèi)星系統(tǒng)進入快速發(fā)展期,TCP業(yè)務(wù)作為主要承載業(yè)務(wù),在高延遲/高丟包率傳輸環(huán)境下的傳輸性能成為瓶頸,而新型擁塞控制算法能夠有效解決該問題。本文在加速網(wǎng)關(guān)中引入BBR擁塞控制算法,做相應(yīng)改進,并與傳統(tǒng)CUBIC擁塞控制算法進行測試對比,驗證BBR擁塞控制算法在高通量衛(wèi)星通信系統(tǒng)中的適用性。
【關(guān)鍵詞】BBR;擁塞控制;寬帶衛(wèi)星通信;TCP加速網(wǎng)關(guān)
中圖分類號: TN927.2文獻標(biāo)識碼: A文章編號: 2095-2457(2019)21-0227-002
DOI:10.19694/j.cnki.issn2095-2457.2019.21.105
Application Research of BBR Congestion Control Algorithm in Acceleration Gateway of High-throughput Satellite Communication System
WANG Zhan-wei MENG Xiang-yu DU Qian-qian WANG Yun-fei GAO Er-dong ZHU Shan
(Space star technology co.,ltd., Beijing 100095, China)
【Abstract】At present, China's high-throughput satellite system has entered a period of rapid development. TCP service is the main service of the system. The transmission performance becomes the bottleneck in the transmission environment of high delay/high packet loss rate, and the new congestion control algorithm can effectively solve this problem. In this paper, the modified BBR congestion control algorithm is introduced in the acceleration gateway. And BBR is compared with the traditional CUBIC congestion control algorithm to verify the applicability of BBR congestion control algorithm in high-throughput satellite communication system.
【Key words】BBR; Congestion control; Broadband satellite communications;TCP gateway
0 引言
2017年4月,中星16衛(wèi)星成功入軌。這是中國航天科技集團第五研究院研制的我國首顆高通量衛(wèi)星,通信容量超過20Gbps,超過我國此前研制的所有通信衛(wèi)星容量綜合。中國衛(wèi)星通信正式邁入高通量時代[1]。
目前網(wǎng)絡(luò)中的數(shù)據(jù)90%以上都是TCP業(yè)務(wù),而TCP業(yè)務(wù)在高延時、髙誤碼的環(huán)境中傳輸效率較低。特別地在高通量通信系統(tǒng)中,長肥軌道效應(yīng)(高延時/高帶寬)愈加明顯,從而造成帶寬利用率低,用戶體驗差的問題。在高通量衛(wèi)星通信系統(tǒng)中通過引入加速網(wǎng)關(guān)解決上述問題,而加速網(wǎng)關(guān)上運行的擁塞控制算法是解決這些問題的核心所在。
1 傳統(tǒng)協(xié)議棧工作原理
TCP協(xié)議作為一個面向連接的可靠傳輸協(xié)議,通過應(yīng)答方式維持?jǐn)?shù)據(jù)傳輸可靠性的同時利用其滑動窗口機制,一次發(fā)送一組數(shù)據(jù),來提高數(shù)據(jù)傳輸?shù)耐掏铝?。發(fā)送方在特定的時間RTO內(nèi)未收到某數(shù)據(jù)段的應(yīng)答或重復(fù)收到對端對該報文段的請求時會立即對此報文段進行重傳來保證數(shù)據(jù)傳輸?shù)耐暾驼_。傳統(tǒng)地面網(wǎng)絡(luò)中,由于傳輸媒介多為光纖或雙絞線等誤碼率低于10e-6的媒介,丟包更多是由于鏈路容量達到飽和,鏈路媒介的緩沖區(qū)無法承載更多的數(shù)據(jù)包而主動丟棄。這種丟棄行為被稱為擁塞丟包。當(dāng)發(fā)生擁塞丟包時,不顧一切地重傳這些被丟棄的數(shù)據(jù)包只會進一步加劇網(wǎng)絡(luò)環(huán)境的惡化。傳統(tǒng)TCP協(xié)議棧通過添加擁塞控制算法,在發(fā)生擁塞丟包時主動降低發(fā)送窗口,來控制網(wǎng)絡(luò)中的數(shù)據(jù)流量,并指導(dǎo)發(fā)送窗口按照一定的方法在擁塞恢復(fù)后繼續(xù)進行增長,以不斷探測可能空閑的帶寬資源,實現(xiàn)帶寬資源的最大化利用。
2 衛(wèi)星網(wǎng)絡(luò)環(huán)境特點
相比于傳統(tǒng)地面網(wǎng)絡(luò),高延遲是衛(wèi)星網(wǎng)絡(luò)顯著特點之一,一組數(shù)據(jù)傳輸后要經(jīng)過相當(dāng)長的延遲后才能得到確認,之后才能進行新的數(shù)據(jù)包的傳輸。圖1為加速網(wǎng)關(guān)典型應(yīng)用場景。為保障高延遲特性下的傳輸帶寬,加速網(wǎng)關(guān)將進入到衛(wèi)星網(wǎng)絡(luò)中TCP連接進行代理式拆分,在下行網(wǎng)關(guān)中提供較大的發(fā)送緩存,而在上行網(wǎng)關(guān)中提供大的接收緩存。無丟包的情況下,較大的接收和發(fā)送緩存可以提供較大的滑動窗口,使在衛(wèi)星鏈路中一次發(fā)送可以發(fā)出地面小延遲網(wǎng)絡(luò)中多輪傳輸才能傳送完的數(shù)據(jù)量,從而達到帶寬守恒,保障數(shù)據(jù)的快速傳輸。而高誤碼卻是衛(wèi)星通信網(wǎng)絡(luò)的另外一個特點,當(dāng)丟包以誤碼形式出現(xiàn),傳統(tǒng)TCP協(xié)議棧由于不能判別丟包是由于誤碼還是擁塞引起,只能進行保守的按比例降窗。在加速網(wǎng)關(guān)的拓撲結(jié)構(gòu)中,為維持帶寬而保持較大的發(fā)送窗口被按比例降窗的影響是巨大的。因此傳統(tǒng)TCP協(xié)議的擁塞控制算法在高延時高誤碼率的環(huán)境下的帶寬利用率很低。
3 BBR擁塞控制處理流程
BBR[2]通過主動探測鏈路帶寬來最大化地利用衛(wèi)星網(wǎng)絡(luò)帶寬資源。當(dāng)網(wǎng)絡(luò)中數(shù)據(jù)包不多,還沒有填滿瓶頸鏈路的管道時,隨著投遞率的增加,往返時延不發(fā)生變化。當(dāng)數(shù)據(jù)包數(shù)量超出鏈路傳輸能力,還沒有被收端接收的數(shù)據(jù)包會慢慢填滿鏈路媒介緩存區(qū)直到緩存區(qū)溢出而發(fā)生擁塞丟包。在數(shù)據(jù)填滿緩存區(qū)的這一過程中,RTT時間會隨著數(shù)據(jù)包在緩存區(qū)中等待排隊處理的時間變長而變長。BBR根據(jù)這種現(xiàn)象,設(shè)計了自己的擁塞控制流程[3]。
(1)當(dāng)連接建立時,BBR采用類似傳統(tǒng)TCP協(xié)議棧慢啟動方式,呈指數(shù)形式增加擁塞窗口,經(jīng)過三次發(fā)現(xiàn)計算出的帶寬相對恒定(窗口加大的同時rtt周期也變長),說明此時媒介緩沖區(qū)正在被填滿,鏈路帶寬已經(jīng)探測到當(dāng)前環(huán)境的最大帶寬的邊緣,之后進入排空階段。
(2)在排空階段,通過降低發(fā)送窗口,在維持計算的帶寬不變的情況下,緩慢降低RTT值,之后進入帶寬探測階段。
(3)在探測階段,BBR以8個RTT周期為一組進行帶寬探測:先在首個RTT時間內(nèi)按比例增加發(fā)送窗口,如果RTT沒有變化,則在第二個rtt內(nèi)維持當(dāng)前擁塞窗口;若RTT上升,則在第二個RTT周期內(nèi)減去上輪rtt中額外增加的發(fā)送窗口,以達到排干前一個RTT多發(fā)出的數(shù)據(jù)包,后面6個周期維持更新的窗口發(fā)包。圖2給出了探測階段窗口增長示意圖。
(4)最小RTT更新階段:BBR每過10秒,為了確保鏈路環(huán)境不發(fā)生大的改動,進入延遲探測階段,為了探測最小延遲,BBR在這段時間內(nèi)發(fā)送窗口固定為4個包,即幾乎不發(fā)包,占整個過程2%的時間(無誤碼情況下2%的帶寬流失)。
根據(jù)BBR的擁塞控制流程,只要網(wǎng)絡(luò)拓撲環(huán)境不發(fā)生劇烈變化,幾乎不會引起擁塞丟包而發(fā)起數(shù)據(jù)重傳,衛(wèi)星加速網(wǎng)關(guān)中的拓撲結(jié)構(gòu)中很好地做到了這一點,在衛(wèi)星鏈路的兩側(cè)是采用BBR擁塞控制算法的代理網(wǎng)關(guān)。而網(wǎng)關(guān)與服務(wù)器或客戶端之間的復(fù)雜而多變的環(huán)境則由他們之間短延遲的TCP傳統(tǒng)協(xié)議棧來處理。
雖然丟失數(shù)據(jù)包產(chǎn)生的數(shù)據(jù)重傳和ACK丟失帶來的探測RTT時間的細微增加在一定程度上會降低BBR在丟包環(huán)境中的吞吐量,但由于數(shù)據(jù)包和ACK的丟失不會顯著影響RTT的探測,也就不會顯著的影響當(dāng)前探測帶寬的計算。
4 測試環(huán)境及測試結(jié)果
CUBIC算法和BBR算法對比測試拓撲結(jié)構(gòu)如圖3所示。
在延遲設(shè)備下增設(shè)600ms延遲,設(shè)置不同丟包率加速網(wǎng)關(guān)采用不同擁塞控制算法,100M測試文件傳輸時間比對圖如圖4所示。
在丟包率低于1e-5時,由于BBR在探測最小RTT周期的開銷,此時使用CUBIC擁塞算法[4]鏈路吞吐量會更大一些。當(dāng)丟包率逐漸上升時,CUBIC擁塞控制算法的吞吐量呈指數(shù)型下降,BBR則對丟包率不是特別敏感,在百分之一丟包環(huán)境下,依然可以維持一半的吞吐量。
5 總結(jié)
BBR擁塞控制算法可以有效地區(qū)分擁塞丟包和誤碼丟包,在高延遲高丟包的衛(wèi)星網(wǎng)絡(luò)中可以顯著的提升吞吐量。證明BBR擁塞控制算法在高通量衛(wèi)星通信系統(tǒng)中有較好的適用性,后續(xù)會繼續(xù)改進BBR算法,進一步提高高延時髙誤碼條件下的衛(wèi)星帶寬利用率,形成系列文章。
【參考文獻】
[1]鄧恒.高通量衛(wèi)星的發(fā)展與應(yīng)用前景 空間通信技術(shù)與未來網(wǎng)絡(luò)發(fā)展高峰論壇 2018.7.
[2]Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh, Van Jacobson ?BBR: Congestion-Based Congestion Control (Measuring bottleneck bandwidth and round-trip propagation time). ACM Queue vol. 14 2016.10.
[3]TCP BBR Quic-Start: Building and Running TCP BBR https://github.com/google/bbr 2017.6.
[4]Sangtae Ha; Injong Rhee; Lisong Xu; Lars Eggert; Richard Scheffenegger CUBIC for Long-Distance Networks. Doi:10.17487/RFC8321 2018.2.