謝永鋒,趙吉英,胡 俊
(中電科航空電子有限公司,四川 成都 611731)
近年來,隨著衛(wèi)星通信技術(shù)和Internet 網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,衛(wèi)星網(wǎng)與IP 網(wǎng)的結(jié)合成為當今衛(wèi)星通信領(lǐng)域最熱門的話題之一。由于TCP 協(xié)議主要是針對低誤碼率、短時延地面網(wǎng)絡(luò)設(shè)計的,采用應答確認、慢啟動和重傳等機制,能夠較好地適應地面網(wǎng)絡(luò)環(huán)境。然而,在中低速的衛(wèi)星鏈路上進行數(shù)據(jù)業(yè)務(wù)的TCP 傳輸時,由于衛(wèi)星信道具有誤碼率高、時延長以及收發(fā)信道非對稱性等特點,導致TCP 協(xié)議運行效率的降低,特別是衛(wèi)星信道長時延的特點對TCP 協(xié)議性能的影響最為明顯,它將導致衛(wèi)星信道利用率非常低,無法充分利用衛(wèi)星信道的有效帶寬。如何在兼容現(xiàn)有衛(wèi)星通信系統(tǒng)的情況下充分發(fā)揮TCP/IP 協(xié)議在衛(wèi)星通信網(wǎng)絡(luò)中的優(yōu)勢,以期最大限度地發(fā)揮系統(tǒng)性能已經(jīng)成為衛(wèi)星通信系統(tǒng)中急需解決的問題。
Inmarsat 衛(wèi)星系統(tǒng)是目前國際上應用最廣的衛(wèi)星通信系統(tǒng),是全球業(yè)務(wù)發(fā)展最快、技術(shù)最先進、可靠性最高的衛(wèi)星移動通信系統(tǒng),全面提供海事、航空、陸地移動衛(wèi)星通信和信息服務(wù)。Inmarsat 衛(wèi)星通信系統(tǒng)目前已發(fā)展到第五代,海事衛(wèi)星從第四代BGAN 系統(tǒng)開始基于IP 技術(shù)傳輸,海事衛(wèi)星第四代寬帶通信按3GPP 技術(shù)體制設(shè)計,實現(xiàn)了強大的IP 數(shù)據(jù)交換功能,海事衛(wèi)星第四代衛(wèi)星系統(tǒng)是IP 技術(shù)與衛(wèi)星通信技術(shù)結(jié)合的典范。本文將重點研究TCP 通信加速技術(shù)以及TCP 通信加速技術(shù)在海事衛(wèi)星系統(tǒng)的應用,并應用國產(chǎn)BGAN 終端進行了實驗和驗證。實驗結(jié)果表明,使用TCP 加速算法,衛(wèi)星通信效率大大提高。
目前主流的TCP 通信加速關(guān)鍵技術(shù)主要可以分為以下三類:底層解決方案、端到端解決方案和分割TCP 連接解決方案。
底層解決方案采用一種對傳輸層透明的方法,在底層鏈路中進行檢測和糾錯,不用觸發(fā)TCP 協(xié)議中的丟失恢復機制,減少了相應數(shù)據(jù)的丟失。
現(xiàn)有差錯控制技術(shù)主要分為前向糾錯(Forward Error Correction,F(xiàn)EC) 技術(shù)和自動重傳請求(Automatic Repeat-reQuest,ARQ)協(xié)議。在ARQ 中,采用接收方請求發(fā)送方重傳出錯的數(shù)據(jù)報文來恢復出錯的報文,接收方通過CRC 校驗判斷數(shù)據(jù)報文是否出錯。在FEC 中,通過連同數(shù)據(jù)發(fā)送冗余信息進行錯誤恢復,使數(shù)據(jù)接收端能夠檢測和糾正錯誤。對于TCP 機制,衛(wèi)星信道固有的高誤碼率、長時延特性會降低ARQ 差錯控制機制的性能:因出錯被丟棄的數(shù)據(jù)再次傳輸增加了衛(wèi)星信道帶寬資源的消耗,發(fā)送端將數(shù)據(jù)被丟棄理解為網(wǎng)絡(luò)擁塞導致傳輸速率降低,反向鏈路上的確認報文丟失會導致已成功接收到的報文超時重傳。因此,具有高冗余度的FEC 方法能夠減少數(shù)據(jù)重傳次數(shù),提高衛(wèi)星信道資源利用率,在衛(wèi)星通信系統(tǒng)中得到了廣泛的使用。
現(xiàn)有端到端的解決方案,主要有以下幾種方法:
(1)增大初始窗口。TCP 慢啟動算法中初始窗口很小,使慢啟動時間較長。一種縮短慢啟動所需時間的有效方法是在慢啟動時采用一個較大的擁塞窗口(cwnd)初始值,以便發(fā)送端在第一個往返時間內(nèi)可以發(fā)送更多的報文段,觸發(fā)更多的確認報文,使得擁塞窗口(cwnd)的增加更快,從而提高慢啟動階段的網(wǎng)絡(luò)帶寬利用率。
(2)字節(jié)計數(shù)。字節(jié)計數(shù)是一種TCP 確認計算方式。在標準TCP 確認計算方式中,發(fā)送端每接收到一個確認(ACK)報文,擁塞窗口(cwnd)就會以最大報文段長度為單位加1;在字節(jié)計數(shù)方式中,擁塞窗口(cwnd)的增加數(shù)量是由確認(ACK)報文所覆蓋的此前未確認的字節(jié)數(shù)目決定的。通常情況下確認(ACK)報文所覆蓋的未確認的字節(jié)數(shù)遠大于確認(ACK)報文數(shù),這就使得字節(jié)計數(shù)方式中擁塞窗口(cwnd)增加速度更快,慢啟動所需時間相應減少。
(3)慢啟動后的延時確認。延時確認方式中,接收端不會對每一個接收到的TCP 數(shù)據(jù)報文進行確認,而是在收到第二個完整的報文時才發(fā)送確認。在慢啟動過程中TCP 發(fā)送端根據(jù)接收到的確認(ACK)數(shù)目來增加擁塞窗口(cwnd),延時確認將接收端發(fā)出的確認(ACK)數(shù)減少了一半,因此發(fā)送端擁塞窗口(cwnd)大小增加的速度也相應降低了。慢啟動后的延時確認技術(shù),就是在慢啟動過程中不使用延時確認,慢啟動后才使用延時確認,這樣在TCP 連接需要通過增加擁塞窗口(cwnd)大小加速時提供了足夠多的確認(ACK)減少了慢啟動時間,而在慢啟動后TCP 連接穩(wěn)定時減少確認(ACK)數(shù)目以節(jié)約網(wǎng)絡(luò)資源。
(4)選擇確認。TCP 協(xié)議中的累積確認對接收到的報文是這樣處理的:如果接收到的報文位于接收窗口的最左邊,則予以確認,如果不位于接收窗口的最左邊,則不予確認。衛(wèi)星信道的誤碼率比地面信道高,發(fā)生多個報文丟失的概率更大,將使TCP 連接丟失基于確認的時鐘,從而降低TCP 性能。選擇確認是一種糾正發(fā)生多個報文丟失時的TCP 處理技術(shù),接收端通過告訴發(fā)送端所有成功接收的數(shù)據(jù)序列號,可以使發(fā)送端只需重傳那些確實丟失了的數(shù)據(jù),從而提高TCP 傳輸?shù)男阅堋?/p>
(5)顯式擁塞通告(Explicit Congestion Notification,ECN)。在檢測到網(wǎng)絡(luò)擁塞時,顯式擁塞通告機制把IP 包頭中定義的1 bit ECN 設(shè)置為1 來通知終端節(jié)點網(wǎng)絡(luò)出現(xiàn)擁塞。收到擁塞通告后,終端節(jié)點相應地減少其傳輸速率,因此可以避免TCP 連接出現(xiàn)嚴重的擁塞現(xiàn)象,減少大量不必要的報文丟失重傳。
分割TCP 連接是在網(wǎng)關(guān)處對具有高度不同特性的鏈路或鏈路群進行分離,該方法增加了網(wǎng)絡(luò)實現(xiàn)的復雜性,但卻簡化了用戶終端和服務(wù)器使用的協(xié)議,目前主要有以下幾種方法:
(1)TCP 欺騙(spoofing)。TCP 欺騙技術(shù)主要用來解決衛(wèi)星鏈路的長時延特點引起的發(fā)送端TCP 慢啟動時間較長的問題。TCP 欺騙的工作原理是在衛(wèi)星網(wǎng)絡(luò)中引入一個分割TCP 連接的網(wǎng)關(guān),將長時延鏈路分離出來。在TCP 報文從源端發(fā)送出去后,目的端還沒有收到數(shù)據(jù)和返回確認(ACK)報文之前,網(wǎng)關(guān)作為虛擬的目的端立即在本地網(wǎng)絡(luò)產(chǎn)生一個欺騙確認(ACK)報文,并把欺騙確認(ACK)報文發(fā)送給源端,使得源端認為到目的端的傳輸時延很短,當真正的確認(ACK)被接收時在本地網(wǎng)絡(luò)網(wǎng)關(guān)處予以攔截,防止報文重復確認。通過欺騙減少源端收到確認(ACK)報文所耗費的時間可以使得發(fā)送端滑動窗口快速增加,提高了TCP 發(fā)送端的數(shù)據(jù)傳輸速率,達到TCP 加速的目的。
(2)TCP 劃分(splitting)。與TCP 欺騙不同,TCP 劃分將TCP 連接分段,提供了一種既能充分適應衛(wèi)星網(wǎng)絡(luò)環(huán)境,又不需修改原有客戶端和服務(wù)器協(xié)議的有效方法。TCP 劃分的工作原理是在衛(wèi)星網(wǎng)絡(luò)網(wǎng)關(guān)入口處截取源端發(fā)送的TCP 報文,將數(shù)據(jù)轉(zhuǎn)換成適合衛(wèi)星傳輸?shù)膶S脜f(xié)議,然后在衛(wèi)星鏈路的另一端,即衛(wèi)星網(wǎng)絡(luò)網(wǎng)關(guān)出口處將數(shù)據(jù)還原為TCP報文,用于與目的端通信。在整個轉(zhuǎn)換過程中,網(wǎng)關(guān)將端到端的TCP 連接劃分為兩個獨立的部分,衛(wèi)星段可以在衛(wèi)星鏈路上使用最適合于衛(wèi)星通信的協(xié)議,而地面段則繼續(xù)使用標準TCP 協(xié)議,以保證與Internet 的兼容性。TCP 劃分這種連接分段方式既實現(xiàn)了對最終用戶的完全透明,又能達到TCP/IP 加速的目的。
(3)TCP 連接加速。在標準TCP 中,客戶端開始發(fā)送數(shù)據(jù)之前必須完成三次握手。TCP 連接加速在本地端立即響應連接請求,同時通過衛(wèi)星信道發(fā)送連接請求,以加速三次握手過程。若實際TCP連接建立失敗,則向本地主機發(fā)送TCP 重置請求釋放TCP 連接。
(4)TCP 壓縮。通過交換具有完整報頭的多個TCP 報文了解其中不變的部分、變化的部分及其變化規(guī)律,可以壓縮TCP 報文頭大小,減少占用的衛(wèi)星信道帶寬資源。TCP 報文載荷部分也可以使用壓縮算法減少長度,節(jié)省帶寬占用。
(5)Web 緩存(caching)。Web 緩存方法借助衛(wèi)星網(wǎng)絡(luò)中的Web 高速緩存對TCP 連接進行分割,是一種能同時改善地面網(wǎng)絡(luò)性能和衛(wèi)星網(wǎng)絡(luò)性能的技術(shù)。Web 緩存技術(shù)將用戶經(jīng)常訪問的網(wǎng)頁數(shù)據(jù)副本存儲在本地服務(wù)器上,使得用戶能夠在本地就可以得到訪問常用網(wǎng)頁的快捷服務(wù)。如果用戶需要訪問的網(wǎng)頁內(nèi)容可以從本地Web 高速緩存中得到,那么衛(wèi)星網(wǎng)絡(luò)中與該Web 高速緩存本地連接的用戶就不需要建立到外部服務(wù)器的TCP 連接,也就避免了衛(wèi)星鏈路長時延所帶來的問題,從而有效減少了連接延時和網(wǎng)絡(luò)帶寬資源的浪費,達到TCP/IP 加速的目的。
(6)DNS 緩存。DNS 將域名解析為IP 地址,DNS 緩存把DNS 解析結(jié)果在本地緩存下來,維護域名和IP 地址之間的映射關(guān)系。DNS 緩存和Web緩存配合使用,可以加快查找網(wǎng)頁中的對象,無須每次查找都通過衛(wèi)星信道傳輸,有效減少了衛(wèi)星信道長時延傳輸?shù)拇螖?shù)和時間,加快了TCP 連接和網(wǎng)頁訪問速度。
Inmarsat 于2005 年發(fā)布第四代BGAN 衛(wèi)星通信網(wǎng),目前該系統(tǒng)是全球應用最廣的衛(wèi)星系統(tǒng),海事衛(wèi)星寬帶網(wǎng)絡(luò)具備3G 移動通信業(yè)務(wù)特點,可提供高速數(shù)據(jù)服務(wù)。第四代海事衛(wèi)星寬帶網(wǎng)絡(luò)的設(shè)計采用了3GPP UMTS 系統(tǒng)架構(gòu)和接口協(xié)議棧,根據(jù)衛(wèi)星鏈路長時延、非周期性干擾、衛(wèi)星帶寬資源有限等特點,在標準UMTS 空中接口協(xié)議的基礎(chǔ)上開發(fā)了新的協(xié)議,并在其地面關(guān)口站引入了公共移動通信網(wǎng)絡(luò)的3G 技術(shù),采用3GPP 標準,可實現(xiàn)高達492 kbps 的數(shù)據(jù)帶寬,支持3G 電路交換語音、數(shù)據(jù)和視頻傳輸?shù)裙δ堋=K端產(chǎn)品有三種形態(tài),海上寬帶業(yè)務(wù)Fleet Broadband(FBB)終端、陸地寬帶業(yè)務(wù)Broadband Global Area Network(BGAN)終端、航空寬帶業(yè)務(wù)Swift Broadband(SBB)終端。
Inmarsat 衛(wèi)星通信系統(tǒng)應用TCP 通信加速技術(shù)提高基于Inmarsat 衛(wèi)星網(wǎng)絡(luò)的TCP 連接性能,綜合應用以下幾種方式以實現(xiàn)TCP 加速功能[1]。
(1)快速啟動:適用于傳輸小數(shù)據(jù)量的情況,解決傳統(tǒng)TCP 在傳輸小數(shù)據(jù)量時,速度非常慢的問題。
(2)增大發(fā)送窗口大?。涸诟邘拺脮r,可提高TCP 性能;
(3)基于擁塞控制的時延:確保高傳輸速率和低延時;
(4)分割TCP 連接:應用TCP PEP 技術(shù),綜合應用TCP 欺騙(spoofing)技術(shù)和TCP 劃分(splitting)技術(shù)。
在Inmarsat 第四代衛(wèi)星系統(tǒng)中,應用TCP 通信加速技術(shù)將端到端TCP 連接分成兩部分,用來提高BGAN 終端的TCP 性能,一個連接是高延時、無線/衛(wèi)星分組數(shù)據(jù)鏈路,另外一個是地面鏈路。TCP 加速器分別控制每個鏈路,使用內(nèi)嵌算法來優(yōu)化使用的物理媒介的鏈路。由于鏈路類型和帶寬不同,TCP 加速器能緩存中間報文并控制兩個鏈路上的流。TCP 加速器通過透傳方式實現(xiàn)端到端連接。
整個TCP 加速的應用示意圖如圖1 所示。
圖1 基于Inmarsat 的通信加速應用
實際應用中,在Inmarsat 系統(tǒng)用戶終端側(cè)和地面關(guān)口站側(cè)進行軟件加載配置方式來實現(xiàn)TCP 通信加速功能。用戶終端側(cè)使用TCP Accelerator,地面關(guān)口站側(cè)使用PEP(Performances Enhancing Proxies)技術(shù)實現(xiàn)通信加速的功能[2],在關(guān)口站的SGSN(Serving GPRS Support Node,GPRS 服務(wù)支持節(jié)點)和GGSN(Gateway GPRS Support Node,GPRS 網(wǎng)關(guān)支持節(jié)點)之間新加了一個節(jié)點叫作TCP PEP。該節(jié)點的主要作用是針對衛(wèi)星鏈路往返時延大的特點,對TCP 協(xié)議做了優(yōu)化,使終端能夠最大限度地利用帶寬,提高傳輸速率。終端TCP Accelerator 軟件與核心網(wǎng)里的TCP PEP 硬件節(jié)點協(xié)同工作,實現(xiàn)了TCP 連接的分段、TCP 數(shù)據(jù)的壓縮,最終達到通信網(wǎng)絡(luò)加速。
為了對海事衛(wèi)星系統(tǒng)的通信加速性能有更清晰的認識,對海事TCP 通信加速性能進行了測試,TCP 通信加速算法測試需要配置客戶端和服務(wù)器端,按照圖1 搭建測試環(huán)境。
客戶端:配置Windows XP 操作系統(tǒng)的PC,TCP Accelerator 軟件,天奧BGAN 設(shè)備;
服務(wù)器:北京地面關(guān)口站配置TCP PEP 硬件節(jié)點。
試驗內(nèi)容和方法:在PC 機上安裝TCP 加速軟件,連接天奧BGAN 設(shè)備,天奧BGAN 設(shè)備最大數(shù)據(jù)傳輸速率為384kbps,使用DOS 環(huán)境下的FTP 命令,PC端作為客戶端向指定的FTP服務(wù)器上傳文件,驗 證1MB、3MB、5MB、7MB、10MB、15MB、25MB 不同大小文件在使用和不使用TCP 加速軟件時的上傳和下載速率。為了確保測試結(jié)果的準確性,每個測試文件均在TCP 加速軟件有效和無效時分別測試多次,最后分別取平均值。試驗統(tǒng)計數(shù)據(jù)結(jié)果如表1 所示。
表1 實驗結(jié)果
圖2 TCP 加速對比
從實驗結(jié)果可以看出,在相同的實驗環(huán)境下,在TCP 通信加速軟件使能有效的情況下,文件上傳和下載速度比不使用TCP 通信加速時得到了明顯提高,使用TCP 加速技術(shù)可以有效提高衛(wèi)星鏈路的通信效率。
近年來,IP 技術(shù)與衛(wèi)星通信技術(shù)的結(jié)合越來越緊密,由于衛(wèi)星信道具有誤碼率高、時延長以及上下行鏈路的非對稱性等特點,導致衛(wèi)星IP 網(wǎng)絡(luò)通信效率的降低(特別是衛(wèi)星信道長時延的特點對TCP 協(xié)議性能的影響最為明顯)。針對這些特點,本文重點研究海事衛(wèi)星第四代通信網(wǎng)絡(luò)系統(tǒng)以及海事衛(wèi)星系統(tǒng)采用的通信加速方案,并應用國產(chǎn)BGAN 終端進行了實驗和驗證。實驗結(jié)果表明,衛(wèi)星系統(tǒng)應用TCP 加速算法,通信效率大大提高,該研究結(jié)果為我國自主寬帶衛(wèi)星通信系統(tǒng)的發(fā)展和應用提供了參考。