陳瓊冰,白 勇,宗 亮
(海南大學 信息科學技術學院,海南 海口570228)
隨著衛星組網技術的發展,衛星網絡已經逐漸成為互聯網不可缺少的一個部分。衛星融合網絡通過衛星網關與其他無線網絡連接用來支持新的服務。例如,海洋漁業船舶之間建立的移動自組織網絡通過衛星網關與衛星網絡連接。衛星網絡在與地面網絡連接,形成一個異構融合網絡[1-2],它可以支持船舶與船舶之間以及船舶與陸地之間的通信。
傳統的TCP 協議并不適合衛星網絡的特點。目前,適用于衛星網絡的傳輸層協議已成為世界各國的研究熱點[3-6]。傳輸控制協議(TCP)為應用層提供可靠的數據流傳輸,TCP協議最初設計主要考慮地面有線網絡。當TCP 協議應用在衛星網絡時,衛星網絡的特點使得TCP 協議傳輸性能面臨新的挑戰。首先,網絡長時延的出現主要是由于衛星鏈路的長傳播時延,當一個連接傳輸通過衛星網絡時,發送一個數據包的往返時間一般會超過500 ms。其次,高的比特錯誤率導致網絡出現隨機丟包。如果沒有對隨機丟包信息進行區分,TCP 將每個隨機丟包作為擁塞控制指示,并在TCP 發送端將減小其滑動窗口大小,以避免擁塞崩潰,從而大幅度地減少了TCP 整體吞吐量。第三,移動終端的移動性可能會造成網絡間歇性中斷,這是由于信號的堵塞、干擾以及衛星網關的掛起。這種間歇性中斷導致數據包的丟失,TCP 仍然認為是網絡擁塞的征兆并減少擁塞窗口來限制數據發送到網絡中。此外,TCP 會對重傳超時計算器(RTO)采用指數退避算法,當重傳超時計算器到期就會增大一倍的時間。頻繁的丟失導致非常小的滑動窗口以及很大的RTO,這意味著每次試探網絡連接時有較少量的數據被發送到網絡和較長的時間間隔。
為了處理衛星網絡的上述負面特點,近年來,許多學者提出了用于改衛星網絡TCP 性能的方案,所提出的解決方案大致可以分為以下3 類:端到端的改進方案、鏈路層改進方案以及TCP 分離連接改進方案。具體來說,為了解決長時延問題,可以在發送端增加擁塞窗口的初始值,使得網絡更快地進入擁塞避免階段。為了解決隨機丟包和間歇性中斷問題,例如采用M-TCP,Veno 以及Vegas,M-TCP 的半分離思想能夠很好解決間歇性中斷的問題。當移動終端移動中斷時,發送方不會遭受擁塞控制的影響。TCP Vegas 通過估計瓶頸鏈路中緩存器的數據包,并選擇最小的RTT 為基準來算出網絡可以容納的最佳吞吐量。TCP Veno 采用與類似Vegas 方式來估計網絡中的積壓報文,并且可區分隨機丟包和擁塞丟包,對于擁塞丟包,TCP Veno 采用標準Reno 算法。對于隨機丟包,增加一個保守分方式。
在現有提高TCP 性能的方法中,仍缺乏一種可以同時解決高比特錯誤率引起的隨機丟包和移動終端間歇性中斷的技術方案。本文提出了TCP M-Veno 方法來實現這個雙重任務。該算法在發送端提出一種自適應與網絡時延的方法來解決衛星網絡的長時延。在網關結M-TCP(可以處理移動終端的頻繁中斷)和Veno(可以區分隨機丟包和擁塞丟包)的優勢來解決異構衛星網絡移動終端間歇性中斷。
M-TCP[7]是標準TCP 的一個改進版本,M-TCP 把連接區分為無線連接和有線連接。當出現連接中斷時,M-TCP 生成的保持數據包迫使發送端進入保持狀態。在保持狀態,發送端不會執行重傳超時,也不會以指數形式后退重傳定時器,并且保持擁塞窗口的大小。因此,當連接恢復時,發送端能以一個較大的傳輸速率傳輸數據,從而提高TCP 傳輸性能。
圖1 是一個簡單的M-TCP 網絡模型,TCP 連接在協議網關被分離,在協議網關中與服務器連接通信的被叫做SHTCP,接收來自服務器端的數據包,它通過這些數據包將MTCP 客戶交付給移動終端(MH)。GW 與TCP 客戶端連接,稱為M-TCP,接收由移動端MH 發送的確認數據包。當移動終端短暫中斷或數據包在MH 和SH 丟失時協議需要發送端不觸發擁塞控制算法。在標準的TCP 版本中只有當一個新的ACK 中rwnd 的值為0 才能迫使發送端進入保持狀態。MTCP 通過保存最新的ACK 數,每次確認ack-1 個數據包,當移動端數據包丟失或中斷時,利用最后一個ACK 生成一個保持數據包發送給發送端,迫使發送端進入保持狀態。
TCP Veno 通過使用與TCP Vegas[8]相類似的機制估計當前連接所處的狀態,判斷數據包的丟失是擁塞丟包還是隨機丟包。如果當連接處于擁塞階段,TCP Veno 認為是由于網絡擁塞引起的丟包,而其他的階段認為是隨機丟包。

圖1 M-TCP 網絡結構
1.2.1 TCP Veno 狀態區分原理
TCP Veno 主要根據源端期望發送速率和實際發送速率來區分丟包情況

其中,BaseRTT 為測量到的最小RTT。cwnd 為當前TCP的擁塞窗口。定義Diff 為二者之差,N 為報文積壓數

TCP Veno 設置一個門限值β(β 一般取3),通過比較N和β 來區分連接所處的狀態。當N≤β 時,則認為連接處于正常工作狀態,此時如果發生丟包均認為是隨機丟包,而不是由于擁塞所致,故采用改進的擁塞算法。如果N >β 時,連接處于擁塞階段,Veno 認為丟包是由于網絡發生了擁塞,相應地采用Reno 的窗口調整算法。
1.2.2 TCP Veno 的擁塞控制機制
TCP Veno 在擁塞避免階段,TCP Veno 對原有的算法進行改進。考慮連接所處的狀態,當連接處于擁塞階段時,降低窗口的增加速度,使TCP Veno 能更長時間處于較大的窗口數目。因此,每收到2 個新的ACK 使擁塞窗口加1,提高了效率和吞吐量。在快速重傳和快速恢復階段,當判定出網絡的丟包是隨機丟包時,就設置擁塞窗口的閾值為ssthresh=cwnd×4/5 而不是原來的1/2;相反,當網絡的狀態處于擁塞時,就采用傳統的擁塞控制機制來處理丟包。TCP Veno 在擁塞避免階段區分了擁塞和非擁塞情況,并在快速重傳時區分隨機丟失和擁塞丟失的情況,前者能更長時間處于較大的窗口數目,增加了吞吐量;后者保證了在隨機丟失時,在一個高的閾值開始擁塞避免,同樣提高了吞吐量。
傳統的TCP 擁塞控制應用于異構衛星網絡時存在一些問題。衛星網絡的長時延使得發送方cwnd 增長過于緩慢,從而導致TCP 的帶寬利用率不高。高誤碼率導致高丟包率被TCP 發送端錯誤的判斷為擁塞,從而進行不必要的擁塞控制導致TCP 數據吞吐量不高。移動終端的間歇性中斷也會導致發送方重復的發送不必要的數據報,導致網絡發生擁塞。為了解決衛星網絡中的高的隨機丟包率、長的傳播時延以及同時存在終端間歇性中斷的情況,本文提出了一種TCP MVeno,M-Veno 算法結合了M-TCP 和TCP Veno 的優勢,當移動終端出現中斷時利用M-TCP 機制防止發送端觸發擁塞控制算法。為了進一步減少長時延和高BER 的影響,筆者對TCP Veno 進行改進使它適應于長時延的衛星網絡。如圖2所示,TCP M-Veno 在服務器采用TCP Veno+算法,在協議網關實現M-TCP 機制。

圖2 TCP M-Veno 網絡結構
TCP M-Veno 發送端的改進是通過改進TCP Veno,使之成為TCP Veno+。在發送端通過增加一個自適應擁塞窗口增長機制,主要是引入一個增益因子ρ 使它能夠適應于衛星鏈路的長傳播時延。
2.1.1 增益因子ρ
在Veno 協議中,cwnd 以固定的速度增加。在慢啟動階段,窗口依據數據包的確認以固定增長速度成倍增長。當進入擁塞避免后,cwnd 以線性速度增加。在穩定低延時的有線網絡以這種速度增加可以滿足網絡的需要。但是在衛星網絡,由于往返時間長,這樣增長的速度是比較慢的。所以要想快速地達到較高的發送速率,使得在長時延下的衛星網絡能更快地達到比較高的發送速率。在TCP M-Veno 算法中引入一個增益變量ρ,用變量ρ 來反映網絡的傳輸情況和擁塞窗口的變化,變量ρ 的值計算如下

其中,sampleRTT 為平滑往返時間;ρ 的變化范圍為1 ~60。固定值60 是最大RTO 通過1 s 歸一化的最小推薦值。ρ下限設置為1,以確保TCP 使用標準算法用于與極短RTT 的連接。相反地,設置ρ 上限為60,以確保ρ 的值不會太大。變量ρ 能減緩長傳播時間的消極影響并迅速地增加擁塞窗口,窗口的增加取決于變量ρ。因此,每接收一個ACK,擁塞窗口的增加速度要比傳統TCP 擁塞窗口的增加速度快。
2.1.2 自適應擁塞窗口增長機制
標準的TCP 協議擁塞窗口都是以固定速率增長,這種機制對于短時延的有線網絡效果很好。隨著往返時間RTT 的增加,完成慢開始進入擁塞避免所需要的時間越長。所以這種增長機制并不適用于長時延的衛星通信系統。因此,筆者的想法是當往返時間越大,cwnd 的增加速度越快,cwnd 的增加速度能夠自適應網絡傳輸時延。在默認的TCP 實現中,當延遲ACK 選項被啟用時,擁塞窗口增長可能不是指數,因為該接收器可以延遲發送ACK 即用一個ACK 確認一個以上的報文段。這種延遲確認加劇長傳播時延對GEO 衛星網絡的影響。選擇增益因子ρ 的斷點為15,對應于250 ms 的平滑往返時間。當ρ >15 并且沒有出現丟包時,擁塞窗口的增長是以MSS 的整數倍增加,這樣能更好地利用網絡的可用帶寬。
2.1.3 慢啟動和擁塞避免的改進
經過3 次握手完成后,基于當前的cwnd 和flightsize(在網絡中未被確認的總報文數)將慢啟動分為2 個階段,分段算法描述如下:

如果ρ <15,在慢啟動階段cwnd 以1 倍的速度增加。當ρ≥15,發送方沒有出現丟包,TCP 擁塞窗口是以/4 倍的速度增長。2 個突然的報文段啟用延遲ACK 將導致傳送4 個連續的報文段,這樣可能導致微突發的傳輸情況。因此/4被選擇以適應于衛星鏈路長時延而非線性增加。需要注意的是/4×MSS 值的范圍在(1 ~2)×MSS。最大值只有2×MSS 將防止大線速突發在TCP 發送端探測網絡時,并建議以適應延遲ACK 選項的連接開始啟用?;讦?60)的最大值,為增量/4)×MSS 也保持適度的突發大小小于10 段與丟失段的概率很低。
如果cwnd <ssthresh,并且網絡中未被確認的數大于rwnd/2,其擁塞窗口是以標準TCP 算法增長。當cwnd >ssthresh,并且TCP 在快速恢復或網絡中未確認的數大于rwnd/2,TCP 擁塞窗口以線性增加。由于在擁塞避免階段線性增加比較保守,當網絡中未被確認的數小于rwnd/2 時,擁塞窗口是以/2)×MSS 遞增。注意,如果/4)或/2)的值小于1,它被向上舍入為1。因此,在慢開始階段,其cwnd 增加速度是在1 MSS 和/4)×MSS 之間變化,發送端平滑其傳輸速率,這樣比TCP Veno 能更好地使用網絡的可用帶寬。自適應增加機制,TCP 發送端在慢開始階段可以更快地獲得更高的傳輸速率,特別是在RTT 很大的GEO 衛星鏈路的情況。
異構衛星網絡中船舶之間的移動會導致TCP 間歇性中斷。中斷會引起發送方出現一系列的超時,從而重傳所有認為已經丟失的數據包。并且會對發送方的重傳超時器進行指數退避算法直到其到達64 s,嚴重影響了TCP 的數據吞吐量。為了解決這個問題,筆者在網關實現M-TCP 算法,該算法在網關處分離為2 個TCP 鏈接,圖3 所示。發送方與網關之間使用Veno+算法,而在網關與移動終端使用M-TCP算法。

圖3 TCP M-Veno 網關分離連接
網關實現的主要功能凍結TCP 發送方,讓它不會觸發擁塞控制算法。當移動終端恢復鏈接后,以保持狀態的發送速度繼續傳輸數據。當終端發生中斷,發送方會收到網關的一個特殊確認包,確認包會把它的接收窗口設置為零,從而迫使發送方進入保持狀態。在保持狀態時,TCP發送方不會觸發擁塞控制算法并且凍結所有定時器。為了實現M-TCP,需要在網關分別處理發送方與移動終端數據包。
基于北京市水土保持規劃管理的需要,北京市劃分了1 085條小流域,每條小流域都有其明確的邊界范圍。通過將治理措施與小流域及三道防線劃分數據進行疊加,可以檢查各項治理措施是否全部布設在小流域范圍內,并及時發現了未按照“生態修復區、生態治理區、生態保護區”三道防線規劃原則布設措施的現象。
2.2.1 處理來自發送方的數據
當網關收到發送方的報文段后,轉發給移動終端,但并不會對此包進行確認直到收到終端的確認ACK。這樣做以確保TCP 端到端語義。當移動終端發生中斷,發送方會進入保持狀態,具體算法如下描述:
1)用W 表示網關的緩存大小,其接收窗口為w。毫無疑問,w 肯定要小于或等于W。假設移動終端已經確認w'<w報文段,當沒有中斷的情況下,網關只會確認w'-1 個報文段。
2)當確認w'后移動終端發生中斷。這時網關收不到移動終端的確認包,經過一段時間后(這個時間可以自己根據網絡合理設置)網關如果還沒有收到確認,這時就判斷移動終端已經中斷。這時網關就會對w'發送一個特殊ACK 給發送方,這個確認包把接收窗口設置為零,迫使發送方進入保持狀態。在保持狀態,發送方不會觸發擁塞控制算法,也不會利用指數退避算法重設超時時間間隔RTO。
3)當移動終端重新恢復鏈接。它會發送一個恢復包給網關,收到恢復包后網關會發送一個確認給發送方。收到網關的確認后發送方會退出保持狀態并繼續發送數據。因此,在中斷期間,發送方從來就沒有發生超時和觸發慢開始。
2.2.2 處理來自移動端的數據
網關實現M-TCP 機制目的是當終端中斷時使TCP 發送方不會觸發擁塞控制算法,并且能很快地從中斷恢復鏈接。設計M-TCP 協議能夠感知鏈路中斷使用的與用戶端基本上相同。在M-TCP 中檢測移動終端的ACK,經過一段時間還沒有收到ACK 流就會認為鏈路已經中斷,網關中M-TCP 可以感知到并且會做出相應的措施,M-TCP 在網關所具有的功能如下描述:
1)當出現超時。M-TCP 不會重傳丟失的報文段也不會減少擁塞窗口,而是進入保持狀態,直到移動終端通知鏈路重新鏈接。
仿真中使用一個集成的海上異構網絡,模擬現實場景如圖4 所示。網絡模型是由地面網絡、衛星網絡以及由船舶組成的移動自組織網絡。移動用戶可以通過衛星連接地面網絡進行遠程通信,船舶用戶(客戶端)連接到第一個接入點,然后連接到船載衛星網關,從地面服務器下載數據。地面網關與服務器之間的鏈路速率采用10 Mbit/s 鏈路。在所有仿真場景中,以太網鏈路是無差錯的。衛星網絡的下行鏈路數據速率為2 048 kbit/s。上行鏈路速率為256 kbit/s。上行鏈路與下行鏈路具有相同的傳播時延,設置為250 ms。客戶端每5 min 中斷30 s,衛星鏈路的BER 是從10-9~10-5。在應用層使用FTP 應用程序。地面服務器發送一個50 Mbyte 大小的文件到移動客戶端,在衛星網關實現M-TCP 機制,在發送方實現TCP Veno+算法,比較TCP M-Veno,M-TCP,TCP Veno 和TCP NewReno 的傳輸性能。

圖4 網絡仿真場景
3.2.1 業務傳輸時間比較
從圖5 可以看出,完成下載響應時間隨著BER 的逐漸增大,不同的TCP 版本完成下載響應時間逐漸增大,尤其是BER 從10-6變化到10-5的過程中,完成下載響應時間急劇增加。BER 從10-9變化到10-6的過程中,4 種不同的TCP 版本完成下載的響應時間維持在1.2×103到2.3×103這個區間,而且它們的區別不是很大。從10-6變化到10-5的過程中,從圖示可以看到,完成下載響應的時間快速增加。在BER為10-5時,TCP NewReno 完成下載響應的時間最長,其次是M-TCP,TCP M-Veno 在4 種TCP 中性能最好(7.542×103s),比TCP Veno(8.936×103s)提高了大約18%。
3.2.2 TCP 平均吞吐量的比較
從圖6 可以看出,衛星鏈路的吞吐量隨著BER 的逐漸增大,不同的TCP 版本衛星鏈路的吞吐量逐漸減小,BER 從10-9變化到10-7時,4 種不同TCP 版本性能大體上近似,TCP M-Veno 與TCP Veno 性能相當,比其他2 種TCP 性能略好,BER 從10-7變化到10-5時,4 種TCP 版本的吞吐量急劇下降,TCP M-Veno 的吞吐量比其他3 種TCP 版本都好。TCP M-Veno 衛星下行鏈路的利用率從55%(BER 為10-9時)變化到15%(BER 為10-6時),M-TCP 衛星下行鏈路的利用率從48%(BER 為10-9時)變化到12%(BER 為10-6時)。

圖5 下載時間比較

圖6 平均吞吐量比較
衛星融合網絡可成為互聯網應用的一個重要組成部分,需要針對該網絡特點研究TCP 傳輸性能的提高方法。本文通過改進和結合傳統的TCP Veno 和M-TCP 算法提出了TCP M-Veno 算法。TCP M-Veno 算法在發送端擁塞窗口的增加方面進行改進,能夠自適應傳播長時延,并通過估算網絡中積壓數據包的數量來區分隨機丟包和擁塞丟包,從而減少了衛星網絡高誤碼率的影響。另外,在衛星網關實現M-TCP 機制來解決移動終端間歇性中斷??偟膩碚f,TCP M-Veno 算法在保持TCP 語義的基礎上可同時減少長傳播時延、高誤碼率引起的隨機丟包和移動終端的間歇性中斷對衛星網絡TCP性能的不利影響。
[1]BAI Y,DU W.VoIP services for ocean fishery vessels over integrated wireless and wireline networks[C]//Proc. 2013 IEEE 24th International Symposium on Personal Indoor and Mobile Radio Communications(PIMRC).[S.l.]:IEEE Press,2013:3461-3465.
[2]DU W,ZHENG X M,BAI Y,et al. Integrated wireless networking architecture for maritime communications[C]// Proc. 2010 11th ACIS International Conference on Software Engineering Artificial Intelligence Networking and Parallel/Distributed Computing(SNPD).[S.l.]:IEEE Press,2010:134-138.
[3]ALLMAN M,GLOVER D,SANCHEZ L. Enhancing TCP over satellite links using standard mechanisms[S].1999.
[4]ALLMAN M,DAWKINS S,GLOVER D,et al. Ongoing TCP research related to satellites[S].2000.
[5]PENG F,CARDONA A S,SHAFIEE K,et al. TCP Performance Evaluation over GEO and LEO Satellite Links between Performance Enhancement Proxies[C]//Proc.Vehicular Technology Conference(VTC Fall).[S.l.]:IEEE Press,2012:1-5.
[6]PIROVANO A,GARCIA F. A new survey on improving TCP performances over geostationary satellite link[J].Network&Communication Technologies,2013,2(1):1-18.
[7]BROWN K,SINGH S. M-TCP:TCP for mobile cellular networks[J].ACM SIGCOMM Computer Communication Review,1997,27(5):19-43.
[8]王云濤,方建安,張曉輝,等. 基于TCP Vegas 的網絡擁塞控制改進算法[J].計算機應用研究,2009,26(12):4645-4647.