沈麗娜,白 勇,宗 亮
(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 ???,570228)
一種面向衛(wèi)星網(wǎng)絡(luò)的TCP改進(jìn)算法研究
沈麗娜,白 勇,宗 亮
(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 海口,570228)
提出了一種改進(jìn)的ADaLR 算法(TCP ADaLR+),將Veno區(qū)分隨機丟包和擁塞丟包的思想引入來改變擁塞窗口的值,并且將ADaLR慢啟動不同的子階段中擁塞窗口進(jìn)行區(qū)別增加,使TCP更好的適應(yīng)衛(wèi)星鏈路的高丟包率和長時延的特點.仿真結(jié)果表明改進(jìn)算法可提升衛(wèi)星網(wǎng)絡(luò)中的TCP傳輸性能.
衛(wèi)星網(wǎng)絡(luò); TCP; ADaLR; 擁塞控制
隨著Internet和移動互聯(lián)網(wǎng)的高速發(fā)展,無線網(wǎng)絡(luò)在通信網(wǎng)絡(luò)中的地位越來越重要.在難以架構(gòu)地面網(wǎng)絡(luò)設(shè)施的地域,如遠(yuǎn)航的海上船只、軍事戰(zhàn)場和邊遠(yuǎn)農(nóng)村地區(qū)等,衛(wèi)星網(wǎng)絡(luò)成為與外界聯(lián)系的唯一的選擇.衛(wèi)星網(wǎng)絡(luò)是一種非常特殊的無線網(wǎng)絡(luò),具有傳播時延長,誤碼率高和上下行鏈路不對稱等特點.這些特點使得傳統(tǒng)的TCP協(xié)議不再適合衛(wèi)星網(wǎng)絡(luò)中運行,因此對適用于衛(wèi)星網(wǎng)絡(luò)的TCP協(xié)議的研究具有重要的意義,已成為研究的一個熱點[1-6].
目前國內(nèi)外針對衛(wèi)星網(wǎng)絡(luò)TCP 的改進(jìn)方案主要包括3類:端到端方案、鏈路層解決方案和TCP 分段連接方案.端到端協(xié)議改進(jìn)方案[7-8]僅僅需要修改端節(jié)點,簡單易行,能很好的兼顧原有的網(wǎng)絡(luò)協(xié)議,對其他層協(xié)議影響小;鏈路層設(shè)計方案包括Snoop技術(shù)和可靠鏈路層協(xié)議方案[9-10];分段連接方案分為TCP-Spoofing[11]和TCP-Splitting[12-14], TCP-Spoofing 保持了TCP端到端連接的完整性;TCP-Splitting 把一個TCP連接分割成2個或2個以上的獨立TCP連接.
傳統(tǒng)的TCP協(xié)議(TCP Tahoe, Reno, NewReno)設(shè)計主要考慮是在有線信道的狀況,誤碼率低,網(wǎng)絡(luò)擁塞是引起數(shù)據(jù)包丟失的主要原因.當(dāng)出現(xiàn)丟包時,TCP 會通過調(diào)整cwnd(擁塞窗口)來降低數(shù)據(jù)發(fā)送速率,從而減輕網(wǎng)絡(luò)載荷保持網(wǎng)絡(luò)的穩(wěn)定性.在無線網(wǎng)絡(luò)的環(huán)境下,由于無線信道特殊性,無線鏈路可靠性不夠穩(wěn)定,會造成較高的誤比特率,導(dǎo)致數(shù)據(jù)包的隨機丟失,特別在長時延的衛(wèi)星鏈路上,誤碼率(BER)甚至能高達(dá)10-4.傳統(tǒng)的TCP協(xié)議會將高誤碼率引起的隨機丟包誤認(rèn)為是網(wǎng)絡(luò)擁塞,盲目啟動擁塞控制,導(dǎo)致TCP性能下降.
1.1 TCP ADaLRTCP ADaLR(Adaptive Delay and Loss Response)[15]是針對地球同步軌道GEO衛(wèi)星網(wǎng)絡(luò)的一種端到端TCP算法.ADaLR通過測量RTT來計算得到變化因子 ,并通過ρ來控制擁塞窗口的大小,僅需要在TCP發(fā)送方的TCP做出修改.具體而言,修改了自適應(yīng)擁塞窗口cwnd的增加過程和自適應(yīng)的接收窗口rwnd增加過程.
首先根據(jù)測量的RTT計算變化因子ρ,
ρ=(sampleRTT s/1 s)× 60,
(1)
規(guī)定ρ上下限分別為60和1,ρ的默認(rèn)閾值為15.sampleRTT為實際測量數(shù)據(jù)包的RTT,根據(jù)數(shù)據(jù)包的丟失與否及ρ的值,在慢啟動和擁塞避免階段來自適應(yīng)調(diào)整擁塞窗口cwnd增加的大小.
慢啟動階段 如果數(shù)據(jù)沒有發(fā)生丟失,ρ≥ 15時,SMSS是發(fā)送方的最大數(shù)據(jù)報文段,
(2)
擁塞避免階段 1)如果數(shù)據(jù)沒有發(fā)生丟失,ρ≥ 15時,未確認(rèn)字節(jié)大小小于(rwnd / 2),
(3)
2)如果數(shù)據(jù)發(fā)生丟失,ρ≥ 15時,未確認(rèn)字節(jié)大小大于(rwnd / 2),
cwnd = cwnd + SMSS × SMSS /cwnd.
(4)
自適應(yīng)的接收窗口rwnd增加過程中,TCP發(fā)送方發(fā)送的字節(jié)數(shù)是cwnd和rwnd的最小值.為了提高長時延衛(wèi)星鏈路上的利用效率,TCP ADaLR除了對cwnd采用自適應(yīng)增加外,也對rwnd進(jìn)行了自適應(yīng)增加.當(dāng)無丟包時,可以適當(dāng)增加rwnd,從而更好地利用衛(wèi)星鏈路的帶寬,減少長時延的影響.
1.2 TCP VenoTCP Veno[16]在TCP Reno 基礎(chǔ)上進(jìn)行改進(jìn).TCP Veno主要是根據(jù)往返時間RTT和擁塞窗口cwnd區(qū)分擁塞丟包和隨機丟包,定義了
期望速率
EXPECTED=cwnd/BASERTT ,
實際速率
ACTUAL=cwnd/RTT,
其中,RTT 為平滑的往返時間,而BASERTT為實際觀測到的最小的RTT,2個速率的差為DIFF=EXPECTED-ACTUAL.設(shè)置參數(shù)N=ACTUAL×(RTT-BASERTT)=DIFF×BASERTT.假設(shè)BASERTT=1/2×RTT,則N=1/2×cwnd;假設(shè)BASERTT=1/3×RTT,則N=2/3×cwnd.可見,如果N越大,表示BASERTT與RTT 差距越大,即網(wǎng)絡(luò)越擁塞.因此,可以用N值的大小來代表擁塞的程度.
在檢測到數(shù)據(jù)包丟失時,如果N<β,N值較小,TCP Veno認(rèn)為本次數(shù)據(jù)包丟失是隨機丟失;如果N≥β,則認(rèn)為是擁塞丟失.其中β的默認(rèn)值為3.
在Veno中,修改了Reno 快速重傳
ifN<βthen ssthresh=cwnd×4/5 ∥可能發(fā)生了隨機丟失
else ifN≥βthen ssthresh=cwnd/2 ∥擁塞丟失
TCP Veno在擁塞避免階段區(qū)分了不擁塞和擁塞的情況,減少了TCP的振蕩,增加了發(fā)送的數(shù)據(jù)量.在快速重傳時區(qū)分了隨機丟失和擁塞丟失的情況,使得數(shù)據(jù)隨機丟失時,TCP會在一個較高的閾值開始擁塞避免,提高數(shù)據(jù)發(fā)送量.通過對擁塞狀態(tài)的區(qū)分,改善了網(wǎng)絡(luò)中隨機丟失的問題.衛(wèi)星網(wǎng)絡(luò)中存在大量隨機丟失,TCP Veno應(yīng)用于衛(wèi)星網(wǎng)絡(luò)環(huán)境中將有效改善TCP的傳輸性能.
改進(jìn)算法TCP ADaLR+主要從丟包的檢測,慢啟動階段改善和閾值增加3個方面進(jìn)行改進(jìn),使其更好地適用衛(wèi)星鏈路的特點,從而改善TCP的性能.
丟包的檢測 ADaLR算法從窗口和相關(guān)序號的角度考慮,對慢啟動和擁塞避免的擁塞窗口值進(jìn)行了不同的增加.由于沒有考慮無線環(huán)境下的隨機丟包,TCP會認(rèn)為所有的丟包均是擁塞導(dǎo)致,頻繁的慢啟動,造成TCP性能的下降.ADaLR+在慢啟動、擁塞避免和快速恢復(fù)階段均進(jìn)行丟包的檢查,從而有效區(qū)分了隨機丟包和擁塞丟包,最大限度降低隨機丟包對TCP性能的影響.對于隨機丟包的檢測,可以采用TCP Veno的思想,具體如下
圖1 慢啟動分為4個子階段流程圖
ADaLR中對擁塞窗口的處理沒有區(qū)分擁塞丟包和隨機丟包,另外對閾值的設(shè)置采用傳統(tǒng)的設(shè)為擁塞窗口一半,會極大的降低TCP的性能.ADaLR+ 采用TCP Veno的處理方法,首先對擁塞進(jìn)行區(qū)分,其次當(dāng)隨機丟包造成的擁塞時,設(shè)閾值為[cwnd×4/5],具體為
ifN<βthen ssthresh=cwnd×4/5 ∥可能發(fā)生了隨機丟失
else ifN≥βthen ssthresh=cwnd/2 ∥擁塞丟失
圖2 仿真模型結(jié)構(gòu)圖
實驗仿真在仿真軟件OPNET 14.5中完成,仿真的基本結(jié)構(gòu)如圖2所示.服務(wù)器Server是地面發(fā)送方,連接到網(wǎng)關(guān)Gateway,Gateway連接到衛(wèi)星,衛(wèi)星連接到客戶端Client.Server到Gateway鏈路速率設(shè)置為10 Mb·s-1. Gateway 到 Client 的下行鏈路速率設(shè)置為2 Mb·s-1,Client 到 Gateway的上行鏈路速率設(shè)置為256 kb·s-1.由于衛(wèi)星鏈路的雙向傳播延遲,衛(wèi)星連接的單向傳播時間設(shè)置為250 ms(GEO衛(wèi)星鏈路),實驗中衛(wèi)星鏈路的誤碼率(BER)設(shè)置為10-9~10-5.Server發(fā)送一個50 M的文件到Client,實驗中主要統(tǒng)計Client文件下載完成時間以及衛(wèi)星鏈路的吞吐量的結(jié)果.實驗分為2個場景:地面網(wǎng)關(guān)存在擁塞丟失和地面網(wǎng)關(guān)不存在擁塞丟失.在OPNET中將網(wǎng)關(guān)的屬性中的IP模塊中的IP進(jìn)程信息(IP processing Information)的緩存(Memory size)設(shè)置為37 500 byte來實現(xiàn)網(wǎng)絡(luò)擁塞的場景.通過仿真比較了TCP NewReno,Veno,ADaLR和 ADaLR+的傳輸性能.
圖3 下載響應(yīng)時間 圖4 吞吐量
在只有BER,沒有擁塞的情況,從圖3可以看出響應(yīng)時間隨著BER的逐漸增大,不同的TCP版本完成下載響應(yīng)時間逐漸增大.在BER從10-9變化到10-6的過程中,4種不同的TCP版本完成下載的響應(yīng)時間維持在0.5×103s~2×103s區(qū)間,差別不大.但是在信道誤碼率BER從10-6變化到10-5的過程中,完成下載響應(yīng)時間急劇增加,TCP New Reno,Veno的響應(yīng)時間明顯高于ADaLR和ADaLR+.在BER為10-5時Veno的完成下載響應(yīng)的時間略微低于New Reno,ADaLR+同樣比ADaLR略微好一些.
在只有BER,沒有擁塞的情況,從圖4可以看出來衛(wèi)星鏈路的吞吐量隨著BER的逐漸增大,不同的TCP版本衛(wèi)星鏈路的吞吐量逐漸減小.ADaLR+性能更好,NewReno的性能最差.ADaLR+與ADaLR的對比可知,性能均超過后者.
ADaLR+衛(wèi)星下行鏈路的利用率從76%(BER為10-9)變化到16%(BER為10-6),ADaLR衛(wèi)星下行鏈路的利用率從70%(BER為10-9)變化到13%(BER為10-6).在高BER(為10-5)時,Veno的衛(wèi)星鏈路的吞吐量和New Reno相當(dāng),ADaLR+的衛(wèi)星鏈路吞吐量最高,比ADaLR提高了近20%.整體上在只有BER,沒有擁塞的情況下,衛(wèi)星鏈路的吞吐量ADaLR+比ADaLR更高.
圖5 下載響應(yīng)時間 圖6 吞吐量
在既有BER也有擁塞的情況,從圖5可以看出來完成下載響應(yīng)時間,隨著BER的逐漸增大,不同的TCP版本完成下載響應(yīng)時間逐漸增大.在BER從10-6變化到10-5的過程中,完成下載響應(yīng)時間急劇增加.BER從10-9變化到10-6的過程中,4種不同的TCP版本完成下載的響應(yīng)時間維持在1.2×103s~2.3×103s區(qū)間,區(qū)別不是很大.從10-6變化到10-5的過程中,從圖示可以看到,完成下載響應(yīng)的時間快速增加.在BER為10-5時,New Reno完成下載響應(yīng)的時間最長,Veno其次,ADaLR+在4種TCP中性能最好(7.542 ×103s),比ADaLR(8.936 ×103s)提高了大約18%.
在既有BER也有擁塞的情況下,從圖6可以看出衛(wèi)星鏈路的吞吐量隨著BER的逐漸增大,不同的TCP版本衛(wèi)星鏈路的吞吐量逐漸減小.BER 從10-9到10-7時,4種不同TCP版本性能大體上近似,ADaLR+與Veno性能相當(dāng),比其他2種TCP性能略好.BER 從10-7到10-5時,4種TCP版本的吞吐量急劇下降,ADaLR的吞吐量比其他3種TCP版本都好.
ADaLR+衛(wèi)星下行鏈路的利用率從55%(BER為10-9)變化到15%(BER為10-6),ADaLR衛(wèi)星下行鏈路的利用率從48%(BER為10-9)變化到12%(BER為10-6).在高BER(為10-5)時,Veno的衛(wèi)星鏈路的吞吐量和New Reno高,ADaLR+的衛(wèi)星鏈路吞吐量最高,比ADaLR提高了近13%.整體上在既有BER也有擁塞的情況下,衛(wèi)星鏈路的吞吐量ADaLR+比ADaLR更高.
在TCP ADaLR的基礎(chǔ)上,提出了一種改進(jìn)的算法TCP ADaLR+.該算法從丟包的檢測,慢啟動階段改善和閾值增加3個方面進(jìn)行改進(jìn),使之更好地適應(yīng)衛(wèi)星鏈路高丟包率和長時延的特點,提高TCP的性能.將ADaLR+與ADaLR,New Reno和Veno進(jìn)行了仿真對比,實驗結(jié)果表明相對其他3種TCP版本,ADaLR+明顯減少了完成下載的響應(yīng)時間,在衛(wèi)星下行鏈路的吞吐量上ADaLR+也有較大的提升,整體上ADaLR+能有效地改善TCP在衛(wèi)星網(wǎng)絡(luò)的傳輸效率,提高TCP的性能.與ADaLR一樣,ADaLR+同樣采用端到端的設(shè)計,只需修改發(fā)送方的TCP,避免了中間節(jié)點和接收方的修改.
[1] Allman M, Glover D, Sanchez L. Enhancing TCP over satellite channels links using standard mechanisms[R]. [S.l.]: RFC, 1999.
[2] Luglio M, Roseti C, Zampognaro F. Transport layer enhancements on a satellite-based mobile broadband system for high-speed trains[J]. International Journal of Satellite Communications and Networking, 2012, 30(6): 235-249.
[3] Allman M, Dawkins S, Glover D, et al. Ongoing TCP research related to satellites[R]. [S.l.]: RFC 2760, 2000.
[4] Peng F, Cardona A S, Shafiee K, et al. TCP performance evaluation over GEO and LEO satellite links between performance enhancement proxies: proceedings of Vehicular Technology Conference 2012(VTC Fall), Québec City, September 3-6, 2012[C]. [S.l.]: IEEE, 2012.
[5] Pirovano A, Garcia F. A new survey on improving TCP performances over geostationary satellite link [J]. Network & Communication Technologies, 2013, 2(1):1-18.
[6] Park J, Park D, Hong S, et al. Preventing TCP performance interference on asymmetric links using ACKs-first variable-size queuing[J]. Computer Communications, 2011, 34(6): 730-742.
[7] Caini C, Firrincieli R. End-to-end TCP enhancements performance on satellite links: proceedings of the 11th IEEE Symposium on Computers and Communications 2006 (ISCC), Cagliari, June 26-29, 2006[C]. [S.l.]: IEEE, 2012.
[8] Trivedi S, Jaiswal S, Kumar R, et al. Comparative performance evaluation of TCP Hybla and TCP Cubic for satellite communication under low error conditions: proceedings of Internet Multimedia Services Architecture and Application 2010(IMSAA), Bangalore, December 17, 2010[C]. [S.l.]: IEEE, 2010: 1-5.
[9] Sing J, Soh B. On the use of snoop with geostationary satellite links: proceedings of Information Technology and Applications 2005(ICITA), Sydney, July 4-7, 2005[C]. [S.l.]: IEEE, 2005: 689-694.
[10] Rendon J, Casadevall F, Serarols D. Snoop TCP performance over GPRS: proceedings of Vehicular Technology Conference 2001(VTC Spring), Atlantic City, October 7-11, 2001[C]. [S.l.]: IEEE, 2001: 2 103-2 107.
[11] Ishac J, Allman M. On the performance of TCP spoofing in satellite networks: proceedings of Military Communications for Network-Centric Operations Conference 2001(MILCOM), Washington D.C., October 28-31, 2001[C]. [S.l.]: IEEE, 2001: 700-704.
[12] Border J, Griner J, Montenegro G, et al. Performance enhancing proxies intended to mitigate link-related degradations[J]. [S.l.]:RFC 3135, 2001.
[13] Bisio I, Marchese M, Mongelli M. Performance enhanced proxy solutions for satellite networks: State of the Art, Protocol Stack and Possible Interfaces [J]. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, 2009(15):61-67.
[14] Caini C, Cruickshank H, Farrell S, et al. Delay and disruption-tolerant networking (DTN): an alternative solution for future satellite networking applications [J]. Proceedings of the IEEE, 2011, 99(11): 1 980-1 997.
[15] Omueti M, Trajkovi'c L. OPNET Model of TCP with adaptive delay and loss response for broadband GEO satellite networks [EB/OL]. [2015-03-10]. http://www2.ensc.sfu.ca/~ljilja/papers/opnetwork2007_omueti_trajkovic_final.pdf.
[16] Fu C P, Liew S C. TCP Veno: TCP enhancement for transmission over wireless access networks[J]. Selected Areas in Communications, 2003, 21(2): 216-228.
One Enhanced TCP Algorithm for Satellite Network
Shen Lina, Bai Yong, Zong Liang
(College of Information Science and Technology, Hainan University, Haikou 570228, China)
In our report, an improved TCP ADaLR algorithm (TCP ADaLR+) was proposed, which introduced the idea of Veno to distinguish the random packet loss and congestion loss for adjusting the value of the congestion window, and increased the congestion window to make it adapted to the different growth in the sub-phases of slow start. The TCP ADaLR+ also enables TCP to better adapt to the characteristics of long propagation delay and high bit error rate. The simulation results demonstrated that the proposed algorithm can enhance the transmission performance of TCP over satellite network.
Satellite Networks; TCP; ADaLR; congestion control
2015-05-11
國家自然科技基金(61261024,61162010)
沈麗娜(1990-),女,湖南永州人, 2012級碩士研究生,研究方向:移動通信, E-mail: xtshen@163.com
白勇(1970-),男,河南商丘人,博士,教授,研究方向:移動通信, E-mail: bai@hainu.edu.cn
1004-1729(2015)04-0327-06
TN 927
A DOl:10.15886/j.cnki.hdxbzkb.2015.0057