李 璞,潘莉麗,丁 銳
(中國電子科技集團(tuán)公司 第三十研究所,成都 610041)
隨著無線通信網(wǎng)絡(luò)技術(shù)的快速發(fā)展,無線通信網(wǎng)絡(luò)已逐漸成為通信行業(yè)中的主流發(fā)展趨勢.但相比有線網(wǎng)絡(luò),無線通信鏈路仍然存在著高時(shí)延、高抖動(dòng)與高丟包率等諸多問題,無線通信效果,尤其是TCP協(xié)議在無線通信網(wǎng)絡(luò)上的傳輸效果,仍不盡如人意.由于TCP協(xié)議本身設(shè)計(jì)時(shí)主要考慮在有線網(wǎng)絡(luò)中的應(yīng)用,因此協(xié)議本身的特征導(dǎo)致TCP協(xié)議在無線通信網(wǎng)絡(luò)中的傳輸效果不太理想.但TCP協(xié)議能夠提供可靠的端到端的傳輸功能,且網(wǎng)絡(luò)中諸多應(yīng)用都依賴于TCP協(xié)議傳輸,比如FTP、HTTP等文件或文本傳輸協(xié)議,而用戶在無線高時(shí)延網(wǎng)絡(luò)中使用上述網(wǎng)絡(luò)協(xié)議進(jìn)行通信時(shí),面臨著通信體驗(yàn)較差的問題.因此,無線網(wǎng)絡(luò)環(huán)境下的TCP協(xié)議傳輸優(yōu)化技術(shù)引起了科研人員廣泛的關(guān)注.目前,針對(duì)TCP協(xié)議傳輸優(yōu)化技術(shù)的研究主要涉及3個(gè)方面.
1)TCP協(xié)議優(yōu)化.TCP協(xié)議優(yōu)化主要針對(duì)無線鏈路環(huán)境特點(diǎn),研究人員提出了快速啟動(dòng)和擁塞控制的優(yōu)化算法[1-2],其中,文獻(xiàn)[2]從路徑MTU和擁塞控制算法兩方面入手,提出了一種面向?qū)>W(wǎng)的并基于大包與快速啟動(dòng)的擁塞控制算法TCP_ SAI,但該算法需要對(duì)通信終端的操作系統(tǒng)協(xié)議棧進(jìn)行修改,實(shí)現(xiàn)部署復(fù)雜,難以大規(guī)模推廣應(yīng)用.
2)TCP協(xié)議網(wǎng)關(guān).TCP協(xié)議網(wǎng)關(guān)是指在通信的源端和目的端之間插入2個(gè)TCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān),源端與目的端和它們各自的網(wǎng)關(guān)之間使用TCP協(xié)議連接,而從源端網(wǎng)關(guān)到目的端網(wǎng)關(guān)之間則采用其他私有協(xié)議[3-4].通常,這類私有協(xié)議根據(jù)空間通信的特點(diǎn)對(duì)TCP/IP協(xié)議進(jìn)行相應(yīng)地裁剪、修改和擴(kuò)充,并不通用,而且在通信過程中要求將該協(xié)議進(jìn)行對(duì)稱部署,導(dǎo)致其應(yīng)用不夠靈活且具有一定的局限性.
3)TCP協(xié)議代理.TCP協(xié)議代理是指在不改變TCP語義的情況下,在TCP協(xié)議通信源端和目的端之間部署TCP協(xié)議代理,TCP協(xié)議代理和源端以及目的端之間仍采用標(biāo)準(zhǔn)的TCP協(xié)議.TCP協(xié)議代理的部署完全不影響現(xiàn)有網(wǎng)絡(luò)的應(yīng)用與配置,相比TCP協(xié)議網(wǎng)關(guān)方式,TCP協(xié)議代理部署方便且靈活性高[5-6].其典型做法是通過控制ACK欺騙的發(fā)送速率來控制TCP協(xié)議源端的數(shù)據(jù)發(fā)送速率[7],ACK欺騙的發(fā)送速率依賴于具體信道帶寬及接收窗口大小.但在實(shí)際傳輸過程中,多數(shù)信道并不是專用信道,存在多個(gè)用戶同時(shí)搶占信道的情況.因此,發(fā)送速率會(huì)存在較大的偏差,導(dǎo)致TCP協(xié)議加速效果較差.
針對(duì)上述問題,本研究提出一種能夠自適應(yīng)無線鏈路帶寬的TCP協(xié)議傳輸優(yōu)化方法,該方法綜合利用了ACK欺騙、基于改進(jìn)的TCP Vegas算法的動(dòng)態(tài)發(fā)送控制以及通告窗口調(diào)整等方式,能夠在數(shù)據(jù)傳輸過程中,對(duì)無線鏈路的可用帶寬進(jìn)行動(dòng)態(tài)測量,從而實(shí)現(xiàn)數(shù)據(jù)傳輸速率的自適應(yīng)調(diào)整.與無線通信鏈路上原始TCP協(xié)議傳輸效果相比,本方法可以有效地提升TCP協(xié)議傳輸?shù)男Ч?
由于無線通信鏈路存在高時(shí)延、高抖動(dòng)與高丟包率等特點(diǎn),TCP協(xié)議傳輸應(yīng)用于無線通信環(huán)境中存在如下幾個(gè)問題:
1)慢啟動(dòng)過長.標(biāo)準(zhǔn)的TCP協(xié)議采用慢啟動(dòng)機(jī)制,擁塞窗口初始值設(shè)置為1個(gè)報(bào)文段,每經(jīng)過一個(gè)傳輸輪次,即假定TCP源端都成功地接收到TCP目的端的確認(rèn),然后擁塞窗口加倍,直至達(dá)到鏈路能夠容忍的最大擁塞窗口.
通常,一個(gè)傳輸輪次都需要經(jīng)歷一個(gè)往返時(shí)延RTT,由于無線通信鏈路傳輸時(shí)延大,這就意味著TCP源端需要經(jīng)歷很長的慢啟動(dòng)時(shí)間,才能達(dá)到鏈路所能承載的傳輸速率.而過長的慢啟動(dòng)時(shí)間,會(huì)導(dǎo)致在進(jìn)行短文件傳輸?shù)臅r(shí)候,傳輸時(shí)間過長,平均傳輸速率較低.
2)頻繁啟動(dòng)擁塞避免機(jī)制.標(biāo)準(zhǔn)的TCP協(xié)議采用擁塞避免算法來降低鏈路擁塞情況的發(fā)生,當(dāng)鏈路上出現(xiàn)重復(fù)ACK或者是重傳時(shí),TCP源端就認(rèn)為鏈路發(fā)生擁塞,則會(huì)啟動(dòng)降低擁塞窗口,并開始進(jìn)行加性增加,直至達(dá)到鏈路所能容忍的最大擁塞窗口.由于無線通信鏈路存在高丟包率的情況,每當(dāng)鏈路出現(xiàn)丟包,TCP源端都會(huì)誤認(rèn)為鏈路發(fā)生擁塞.而過于頻繁地啟動(dòng)擁塞避免機(jī)制,則會(huì)導(dǎo)致TCP協(xié)議傳輸速率下降.
3)通告窗口過小.TCP協(xié)議的理論傳輸速率可通過如下公式進(jìn)行計(jì)算,
(1)
式中,R為TCP協(xié)議理論傳輸速率,W為目的端通告窗口,RTT為鏈路往返時(shí)延.
從式(1)可以看出,當(dāng)RTT確定的情況下,R與W呈正比,W越小,R也就越小.例如,在典型的衛(wèi)星通信鏈路下,RTT=1 400 ms,當(dāng)W=64 KB時(shí),TCP協(xié)議理論傳輸速率僅為0.36 Mbps.隨著衛(wèi)星通信技術(shù)的發(fā)展,寬帶高通量衛(wèi)星應(yīng)用已經(jīng)普及,其帶寬可達(dá)8Mbps.因此,TCP協(xié)議傳輸速率遠(yuǎn)遠(yuǎn)小于可用的衛(wèi)星信道帶寬.
針對(duì)上述問題,本研究采用ACK欺騙、基于改進(jìn)的TCP Vegas算法的動(dòng)態(tài)發(fā)送控制以及通告窗口調(diào)整等方式來提升TCP協(xié)議傳輸?shù)男Ч?
本研究提出的TCP協(xié)議傳輸優(yōu)化方案主要應(yīng)用于TCP源端和目的端之間的網(wǎng)絡(luò)設(shè)備上,分為TCP源端代理功能和目的端代理功能,在連接TCP源端的網(wǎng)絡(luò)設(shè)備上可部署TCP源端代理功能,在連接TCP目的端的網(wǎng)絡(luò)設(shè)備上可部署TCP目的端代理功能,并可實(shí)現(xiàn)支持單端部署和對(duì)稱部署2種方式,即支持單TCP協(xié)議和多TCP協(xié)議連接同時(shí)傳輸,并同時(shí)支持TCP協(xié)議單向應(yīng)用和交互式應(yīng)用.具體應(yīng)用場景如圖1所示.
圖1 TCP協(xié)議傳輸優(yōu)化應(yīng)用場景示意圖
本研究的TCP協(xié)議傳輸優(yōu)化功能包括ACK欺騙、發(fā)送控制與通告窗口調(diào)整,其步驟是:利用ACK欺騙手段提升TCP源端數(shù)據(jù)發(fā)送速率;利用改進(jìn)的TCP Vegas算法的發(fā)送控制機(jī)制實(shí)現(xiàn)對(duì)可用信道帶寬的預(yù)測評(píng)估;利用通告窗口調(diào)整消除TCP目的端通告窗口大小對(duì)TCP傳輸速率的限制.具體的優(yōu)化方案原理如圖2所示.
圖2 TCP協(xié)議傳輸優(yōu)化方案原理示意圖
1.2.1 ACK欺騙
對(duì)于TCP源端來說,在一個(gè)RTT時(shí)間段內(nèi),發(fā)送到鏈路上的數(shù)據(jù)量受限于源端的擁塞窗口和目的端的通告窗口大小.要提升TCP協(xié)議傳輸速率,首先要增加源端在一個(gè)RTT時(shí)間內(nèi)發(fā)送出來的數(shù)據(jù)量,而標(biāo)準(zhǔn)的TCP協(xié)議是在收到目的端的ACK后,才能繼續(xù)發(fā)送新數(shù)據(jù)到鏈路上.因此,TCP源端代理向源端主機(jī)發(fā)送自己構(gòu)造的ACK確認(rèn)信息,源端主機(jī)在收到ACK欺騙后,會(huì)認(rèn)為前面的數(shù)據(jù)已經(jīng)順利到達(dá)了目的主機(jī),便會(huì)立即發(fā)送后續(xù)數(shù)據(jù),從而提升傳輸速率.
1.2.2 發(fā)送控制機(jī)制
TCP源端代理設(shè)置了控制數(shù)據(jù)包的發(fā)送窗口,源端代理將從源端主機(jī)接收到的數(shù)據(jù)進(jìn)行緩存,并根據(jù)源端代理的發(fā)送窗口向鏈路上發(fā)送數(shù)據(jù).發(fā)送窗口表示在某一時(shí)刻發(fā)送到無線鏈路中且未被目的端確認(rèn)的數(shù)據(jù)總長度.發(fā)送控制根據(jù)鏈路實(shí)時(shí)傳輸反饋信息,進(jìn)行發(fā)送窗口的動(dòng)態(tài)調(diào)整,從而實(shí)現(xiàn)數(shù)據(jù)傳輸速率能夠有效地適應(yīng)實(shí)際信道帶寬.本研究在發(fā)送窗口采用改進(jìn)的TCP Vegas算法.
TCP Vegas算法[8]是一個(gè)基于時(shí)延變化的擁塞控制算法,其基本思路是通過比較實(shí)際吞吐量和期望吞吐量來調(diào)節(jié)擁塞窗口的大小,具體包括:
(1)期望吞吐量的計(jì)算為,
(2)
(2)實(shí)際吞吐量的計(jì)算為,
(3)
(3)差值的計(jì)算為,
diff=(Expected-Actual)×BaseRTT
(4)
式中,BaseRTT是所有觀測來回響應(yīng)時(shí)間的最小值,一般是建立連接后所發(fā)的第一個(gè)數(shù)據(jù)包的RTT;cwnd是目前的擁塞窗口的大小.
定義閾值a、b:當(dāng)diffb,擁塞窗口縮?。划?dāng)a<=diff<=b,擁塞窗口不變.通常,a=1,b=3,意味著該連接至少保留一個(gè)包在隊(duì)列中.
TCP Vegas算法是完全基于RTT來對(duì)擁塞窗口進(jìn)行調(diào)整,BaseRTT是TCP協(xié)議連接初始化的RTT的測量值,擁塞避免階段所使用的RTT為所有RTT的平均值.
由于無線鏈路的抖動(dòng)性,BaseRTT和RTT并不能準(zhǔn)確地反映鏈路的實(shí)際傳輸情況.對(duì)此,本研究擬通過改進(jìn)的TCP Vegas算法進(jìn)行發(fā)送窗口的計(jì)算.改進(jìn)的TCP Vegas算法主要針對(duì)BaseRTT和RTT選值進(jìn)行了改進(jìn),其BaseRTT由最小值修改為所有RTT加權(quán)值,RTT的取值由平均值改為實(shí)時(shí)值,使其能夠更準(zhǔn)確地反映網(wǎng)絡(luò)的實(shí)時(shí)狀況,其計(jì)算式為,
BaseRTT=BaseRTT×m+RTT×(1-m)
(5)
式中,m為0~1的加權(quán)因子,m值越小,BaseRTT隨RTT的變化越及時(shí).此時(shí),
(1)期望吞吐量的計(jì)算為,
(6)
(2)實(shí)際吞吐量的計(jì)算為,
(7)
(3)差值的計(jì)算為,
diff=(Expected-Actual)×BaseRTT
(8)
式中,swd為TCP源端代理的發(fā)送窗口.
同時(shí),當(dāng)diffb時(shí),發(fā)送窗口減“1”;當(dāng)a<=diff<=b,發(fā)送窗口不變.在仿真實(shí)驗(yàn)中,其取值為,a=1,b=3.
此外,為加快慢啟動(dòng)過程,改進(jìn)的TCP Vegas算法中設(shè)置初始慢啟動(dòng)門限為64 KB.當(dāng)收到重復(fù)的ACK時(shí),立即重傳數(shù)據(jù)包,可認(rèn)為是鏈路傳輸誤碼導(dǎo)致的數(shù)據(jù)包丟失,發(fā)送窗口不變化,而當(dāng)數(shù)據(jù)包重傳超時(shí)時(shí),則認(rèn)為鏈路發(fā)生擁塞,此時(shí)發(fā)送窗口減半.
1.2.3 通告窗口調(diào)整
針對(duì)TCP目的端通告窗口過小而導(dǎo)致TCP協(xié)議傳輸速率較低的問題,本研究中的TCP目的端代理在獲取到TCP目的端的建鏈報(bào)文后,可根據(jù)需要對(duì)建鏈報(bào)文中的窗口擴(kuò)大因子選項(xiàng)進(jìn)行優(yōu)化調(diào)整.在TCP連接建鏈報(bào)文中,通信雙方會(huì)通告自身使用的窗口擴(kuò)大因子.假設(shè)TCP頭部中通告窗口大小為N,窗口擴(kuò)大因子為M,那么TCP報(bào)文端實(shí)際的通告窗口大小為N*(2M),M的取值為0~14,通告窗口最大約為1 GB.在典型的衛(wèi)星信道環(huán)境中,當(dāng)往返時(shí)延為1 400 ms時(shí),根據(jù)式(1)計(jì)算可知,TCP協(xié)議的理論傳輸速率為5 714 Mbps,完全能夠滿足無線通信需求.對(duì)此,本研究在實(shí)驗(yàn)中將窗口擴(kuò)大因子調(diào)整為4.
本研究利用MATLAB分析軟件對(duì)所提出的TCP協(xié)議傳輸優(yōu)化方法和標(biāo)準(zhǔn)TCP協(xié)議在傳輸速率方面進(jìn)行了性能仿真測試.
在仿真測試中,設(shè)定鏈路可用帶寬為2 Mbps,丟包率為10-5的無線網(wǎng)絡(luò)環(huán)境,信道往返時(shí)延為600~1 400 ms之間.TCP源端向目的端傳送大小約為100 M的文件,經(jīng)過TCP協(xié)議傳輸優(yōu)化后和對(duì)標(biāo)準(zhǔn)TCP協(xié)議的傳輸速率進(jìn)行對(duì)比測試,結(jié)果如圖3所示.
圖3 專用信道環(huán)境下TCP業(yè)務(wù)傳輸速率
由圖3仿真結(jié)果可知:隨著信道往返時(shí)延的增加,標(biāo)準(zhǔn)TCP協(xié)議下的傳輸速率迅速下降,而經(jīng)過TCP協(xié)議傳輸優(yōu)化后的傳輸速率則相對(duì)保持穩(wěn)定;當(dāng)信道往返時(shí)延為1 400 ms時(shí),標(biāo)準(zhǔn)TCP協(xié)議下的傳輸速率為342 Kbps,經(jīng)過TCP協(xié)議傳輸優(yōu)化后的傳輸速率為1 842 Kbps,提升了4.3倍.同時(shí),經(jīng)過TCP協(xié)議傳輸優(yōu)化后的傳輸速率達(dá)到了信道帶寬的92%.
為進(jìn)一步驗(yàn)證TCP協(xié)議傳輸優(yōu)化方法在自適應(yīng)通信鏈路帶寬方面的效果,在上述仿真測試的基礎(chǔ)上,本研究分別在無線網(wǎng)絡(luò)中注入背景流量,模擬可用帶寬為0.5 Mbps、1.0 Mbps和1.5 Mbps的無線網(wǎng)絡(luò)環(huán)境,然后重復(fù)進(jìn)行標(biāo)準(zhǔn)TCP協(xié)議傳輸和TCP協(xié)議傳輸優(yōu)化后的TCP文件傳輸速率對(duì)比測試,結(jié)果如圖4所示.此外,當(dāng)信道往返時(shí)延為1 400 ms時(shí),標(biāo)準(zhǔn)TCP協(xié)議下的傳輸速率和TCP協(xié)議傳輸優(yōu)化后的傳輸速率的統(tǒng)計(jì)數(shù)據(jù)如表1所示.
圖4 共享信道環(huán)境下TCP業(yè)務(wù)傳輸速率
表1 共享信道環(huán)境下TCP業(yè)務(wù)傳輸速率統(tǒng)計(jì)表
由圖4與表1的結(jié)果可知,隨著可用信道帶寬的增大,標(biāo)準(zhǔn)TCP協(xié)議下的傳輸速率提升并不明顯,而經(jīng)過TCP協(xié)議傳輸優(yōu)化后的傳輸速率具有顯著提升,完全能夠達(dá)到可用理論信道帶寬的90%以上.此也表明,本研究提出的TCP協(xié)議傳輸優(yōu)化方法具備自適應(yīng)信道帶寬的功能.
本研究探討了無線高時(shí)延通信環(huán)境下TCP協(xié)議傳輸優(yōu)化方法,其基本思路是,基于協(xié)議代理的方式,利用ACK欺騙,并通過改進(jìn)TCP Vegas算法的動(dòng)態(tài)發(fā)送控制以及通告窗口調(diào)整等方式,實(shí)現(xiàn)自適應(yīng)無線鏈路信道帶寬的TCP協(xié)議傳輸優(yōu)化方法.同時(shí),在仿真分析中,把本研究所提方法與標(biāo)準(zhǔn)TCP協(xié)議傳輸進(jìn)行了仿真測試.結(jié)果表明,相比于標(biāo)準(zhǔn)TCP協(xié)議傳輸,TCP協(xié)議傳輸優(yōu)化方法能夠有效提升無線通信鏈路環(huán)境下的傳輸速率,在時(shí)延為1 400 ms,帶寬為1 Mbps的典型衛(wèi)星信道環(huán)境下,其能夠達(dá)到理論可用信道帶寬的90%以上.此外,本研究提出的TCP協(xié)議傳輸優(yōu)化方法支持單端部署和對(duì)稱部署2種方式,支持單TCP協(xié)議和多TCP協(xié)議連接同時(shí)傳輸,并同時(shí)支持TCP協(xié)議單向應(yīng)用和交互式應(yīng)用,其使用靈活,部署方便,完全能夠充分滿足目前無線通信網(wǎng)絡(luò)的通信需求.