白曉東, 郭 菊
(1. 陽泉師范高等??茖W(xué)校(電教中心), 山西 陽泉 045000; 2. 西南交通大學(xué) 經(jīng)濟與管理學(xué)院, 成都 610031)
近年來,隨著計算機網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,異構(gòu)性在其所呈現(xiàn)的特性中變得越來越突出。為了靈活有效的開發(fā)、集成、制定和部署網(wǎng)絡(luò)業(yè)務(wù),異構(gòu)網(wǎng)絡(luò)的通信成為下一代網(wǎng)絡(luò)的發(fā)展趨勢[1-3]。目前為止,TCP/IP技術(shù)已經(jīng)成功地應(yīng)用于異構(gòu)網(wǎng)絡(luò)的通信,IP技術(shù)和TCP協(xié)議已經(jīng)成為下一代網(wǎng)絡(luò)技術(shù)的核心。TCP協(xié)議用于Internet的關(guān)鍵在于TCP擁塞控制[4-7]。對擁塞控制的研究主要有:Jacobson于1988年首次提出了擁塞避免(Congestion Avoidance)和慢啟動(Slow Start)算法;為了提高TCP傳輸?shù)念B健性,1990年出現(xiàn)了Reno TCP版本;近幾年,又出現(xiàn)了NewReno、SACK等改進版本。迄今為止,TCP協(xié)議的傳輸性能在不斷地得到提升,同時也有多個改進版本應(yīng)用于TCP擁塞控制算法[8-11]。
然而,在有線/無線網(wǎng)絡(luò)異構(gòu)環(huán)境下[12-13],對TCP性能增加技術(shù)只進行了初級階段的研究。不同網(wǎng)絡(luò)之間的路徑改變稱為垂直切換,常常存在于異構(gòu)的網(wǎng)絡(luò)環(huán)境中,相同網(wǎng)絡(luò)內(nèi)的路徑改變稱為水平切換[14-15]。就目前而言,對于異構(gòu)環(huán)境中垂直切換下的TCP性能增強技術(shù)還需做進一步研究。
擁塞現(xiàn)象是指到達通信子網(wǎng)中某一部分的分組數(shù)量過多,使得該部分網(wǎng)絡(luò)來不及處理,以致引起這部分乃至整個網(wǎng)絡(luò)性能下降的現(xiàn)象,嚴重時甚至?xí)?dǎo)致網(wǎng)絡(luò)通信業(yè)務(wù)陷入停頓,即出現(xiàn)死鎖現(xiàn)象,目前的擁塞控制不能較好的滿足實際通信的需求,以下將就其反饋進行改進。
根據(jù)丟失率來判斷某時刻無線網(wǎng)絡(luò)的網(wǎng)絡(luò)狀況,這是由于丟失率的連接吞吐量比利用RTT反饋信息的連接吞吐量要大。發(fā)送端的發(fā)送速率可表示為:
式中:Li和Twindow分別為傳輸窗口中第i幀的數(shù)據(jù)大小和數(shù)據(jù)發(fā)送出去的時間;P=Nresend/Nsend,其中Nresend和Nsend分別為需要重傳的幀數(shù)和傳輸窗口的大小。這里我們采用了低通濾波來避免QOS波動,其丟包率P的表達式為:
P=(1-a)P+ab
(1)
式中:a(0〈a〈1)為濾波參數(shù),b為最新的丟包率。a值越小,就會使新值越接近原有的值;a值越大,則會越增強對最終結(jié)果的影響。參數(shù)a是丟包率的方式對網(wǎng)絡(luò)狀況自適應(yīng)性的主要影響因素:如果a值過大,則對丟包率的反應(yīng)較快,發(fā)生擁塞時,其反應(yīng)較快,但是會造成傳輸速率的不必要抖動;如果a值過小,則對擁塞的反應(yīng)較慢,不能及時地進行調(diào)整。因此,為了提高預(yù)測的準(zhǔn)確性,a值的選取應(yīng)該視情況而定,試驗中a=0.3時,適應(yīng)能力最好。圖1為網(wǎng)絡(luò)負載估測模型。
圖1網(wǎng)絡(luò)負載估測模型
在圖1中設(shè)置了Ph和Pl兩個閾值。經(jīng)過低通濾波器對丟包率P進行了平滑處理:如果P值小于Pl,則認為網(wǎng)絡(luò)處于空閑狀態(tài);如果P值大于Ph,則認為網(wǎng)絡(luò)處于擁塞狀態(tài);如果P值處于Ph和Pl之間,則認為網(wǎng)絡(luò)處于負載中。基于端到端自適應(yīng)的反饋控制機制能夠很好降低包的丟失率和動態(tài)調(diào)整數(shù)據(jù)傳輸速率來適應(yīng)網(wǎng)絡(luò)狀況。假設(shè)發(fā)送速率為R,發(fā)送端的最小速率和最大速率分別為MinRate和MaxRate,初始速率為IR,線性增量為AIR。
區(qū)分擁塞和非擁塞丟包是改進無線環(huán)境下TFRC性能的最基本的辦法,也是最直接的辦法。這種差錯率失真模型能夠分別對無線差錯丟包和擁塞丟包進行高精度的判決,其主要原因是它可以創(chuàng)建非常高的精確度。這里將一個丟包模式?jīng)Q議函數(shù)定義為:
F(x,r,k)=1-(k×x/r)
式中:k和x分別表示所有包中和丟失包中打了“out”標(biāo)記的包占所有包的比例,而r則表示丟失包數(shù)占所有包數(shù)的比例。為了找到合適有效的判決因子,在實際的網(wǎng)絡(luò)情況中,需要對原始判決思路進行修正。
與基于丟包的擁塞控制機制(如BIC和CUBIC)不同,Switch-TCP是通過計算期望值的吞吐量與實際吞吐量的,差值來估計網(wǎng)絡(luò)瓶頸處的可用帶寬。這樣Switch-TCP不用依靠丟包就能檢測到網(wǎng)絡(luò)擁塞,從而在丟包之前進行其基本思想:當(dāng)期望的吞吐量與實際的吞吐量相差超過一定值時,就認為網(wǎng)絡(luò)擁塞程度嚴重,應(yīng)該減小發(fā)送窗口;而當(dāng)兩者之間的差小于一定值時,則認為連接沒有完全有效的利用帶寬,應(yīng)該要增大發(fā)送窗口。圖2為改進的Switch-TCP算法流程圖。
在圖3的網(wǎng)絡(luò)拓撲圖中,網(wǎng)絡(luò)2為快速網(wǎng)絡(luò),網(wǎng)絡(luò)1和3為慢速網(wǎng)絡(luò),并且快速網(wǎng)絡(luò)的帶寬是慢速網(wǎng)絡(luò)帶寬的8倍。該網(wǎng)絡(luò)拓撲由快速網(wǎng)絡(luò)和慢速網(wǎng)絡(luò)異構(gòu)而成。
該網(wǎng)絡(luò)拓撲共有5個TCP 連接,整個過程的仿真時間為160 s。網(wǎng)絡(luò)中所有的TCP流全部從0時刻開始,在0~40 s內(nèi)由路由器經(jīng)慢速網(wǎng)絡(luò)1到達目的端。40 s時通過垂直切換的方式進入快速網(wǎng)絡(luò)2,在40~120 s內(nèi)由路由器經(jīng)快速網(wǎng)絡(luò)2到達目的端。120 s時再次以同樣的方式切換到慢速網(wǎng)絡(luò)3,160 s時仿真全部結(jié)束。
仿真采用了圖3的網(wǎng)絡(luò)拓撲,TCP1~TCP5為發(fā)送方,Sink1~Sink5為接受方。實驗中,TCP源端分別使用TCP Switch-TCP和TCP Reno算法。多個數(shù)據(jù)流存在的情況下Switch-TCP流的性能為此次仿真的考察目的。其主要性能指標(biāo)包括擁塞窗口,用符號CWND表示;瞬時吞吐量,用符號Instant Throughput表示;丟包數(shù),也可稱之為慢速切換暫態(tài);和重傳率。
圖2Switch-TCP算法流程圖
圖3 網(wǎng)絡(luò)拓撲
2.1.1擁塞窗口
圖4和圖5分別為拓撲2的環(huán)境下,Reno和Switch-TCP的擁塞窗口變化值。由兩個圖的對比可得:在40~120 s的時間內(nèi),即快速網(wǎng)絡(luò)狀態(tài)下,Switch-TCP有很好的網(wǎng)絡(luò)可用資源的利用率。在相同通信量的情況下,Switch-TCP流發(fā)生的擁塞要明顯少于Reno流。同時,Switch-TCP流之間也能夠維持較高的擁塞窗口。這充分說明了Switch-TCP不僅能夠提高網(wǎng)絡(luò)可用資源的利用率,而且還能有效的控制了擁塞窗口的變化,同時減少擁塞的發(fā)生次數(shù)。
圖4 Reno擁塞窗口
圖5 Switch-TCP擁塞窗口
2.1.2瞬時吞吐量
圖6、7所示分別為Reno流和Switch-TCP流瞬時吞吐量。
圖6 Reno瞬時吞吐量
從兩圖的對比中,可以得出:
(1) 整個過程中,Reno流的瞬時吞吐量的波動較大,而Switch-TCP流的瞬時吞吐量不僅收斂性好,而且一直維持在一個較高值。
圖7 Switch-TCP瞬時吞吐量
(2) 由于Switch-TCP在控制擁塞窗口采用的機制存在很大的優(yōu)勢,故在快速網(wǎng)絡(luò)狀態(tài)中,其瞬時吞吐量的波動范圍明顯高于Reno流,Reno流和Switch-TCP流的瞬時吞吐量的波動范圍分別為0~3.5 Mb/s和2~4 Mb/s。由此不僅減少了擁塞的發(fā)生次,同時也提高了網(wǎng)絡(luò)的利用率。
2.1.3重傳率
表1所示為Reno流與Switch-TCP流重傳率的對比,由該表可見:
(1) 多個數(shù)據(jù)流存在的情況下,Switch-TCP流和Reno流的平均重傳率分別為:9.252 017 2×10-4和29.638 824×10-4。與Reno數(shù)據(jù)流相比,Switch-TCP數(shù)據(jù)流的重傳率明顯要小。
(2) 這說明:Switch-TCP發(fā)送端能夠使不必要的重傳有效減少,從而有效降低發(fā)送端的能量消耗。
表1 Reno與Switch-TCP的重傳率
2.1.4丟包數(shù)
表2為Reno流與Switch-TCP流切換到慢速網(wǎng)絡(luò)階段的丟包統(tǒng)計表。該階段又稱之慢速切換暫態(tài),是一段非常短的過程。由該表可見:由于Switch-TCP對切換到慢速網(wǎng)絡(luò)這一階段進行了擁塞窗口的控制,所以Reno數(shù)據(jù)流的丟包數(shù)是Switch-TCP數(shù)據(jù)流的8.5倍,分別為34packets和4packets。這一措施能夠大大降低數(shù)據(jù)流的丟包數(shù),從而有效地減少了不必要的重傳,并提高了網(wǎng)絡(luò)的利用率。
表2 切換到慢速網(wǎng)絡(luò)階段的丟包數(shù)
依然采用圖3的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。只是TCP所采用的協(xié)議不同:除了TCP4和TCP5采用了Switch-TCP協(xié)議外,剩下的均采用了TCP Reno協(xié)議。以考察TCP Switch-TCP與Reno之間是否能夠友好的共存為此次實驗的主要目的。擁塞窗口和瞬時吞吐量為此次考察的主要性能指標(biāo),分別用符號CWND和Instant Throughput表示。
2.2.1擁塞窗口和瞬時吞吐量
圖8~10分別為拓撲2環(huán)境下的兩個數(shù)據(jù)流各性能指標(biāo)的變化曲線圖。
圖8 Reno與Switch-TCP共存下的擁塞窗口
(1) 從圖8中可見,Reno數(shù)據(jù)流對網(wǎng)絡(luò)資源的競爭要稍稍弱于Switch-TCP數(shù)據(jù)流。
(2) 從圖10中可見,Reno數(shù)據(jù)流在瞬時吞吐量方面也稍稍遜色于Switch-TCP數(shù)據(jù)流。
(3) 從圖8和圖9的對比中可見,不僅Reno與Switch-TCP共存的窗口收斂性比Reno窗口的收斂性要好,而且Reno與Switch-TCP共存還可以緩解網(wǎng)絡(luò)的擁塞情況。因此,Switch-TCP數(shù)據(jù)流與Reno數(shù)據(jù)流具有友好的共存性。
圖9 Reno擁塞窗口
圖10 Reno與Switch-TCP共存下的瞬時吞吐量
在有線自身異構(gòu)的網(wǎng)絡(luò)環(huán)境下,TCP進行切換時會產(chǎn)生一系列問題。本文將這些問題與TCP協(xié)議的優(yōu)點相結(jié)合,提出了一種基于帶寬估計和雙重AIMD算法的改進的TCP擁塞控制機制。Switch-TCP具有實現(xiàn)簡單,系統(tǒng)額外開銷小等特點,在該設(shè)計方案中,不需要改變TCP端到端的語義,只需要在發(fā)送端進行部分修改足以。另外,在與TCP Reno算法同時使用時,除了能夠提高網(wǎng)絡(luò)資源的利用率之外,還能夠與TCP之間實現(xiàn)資源的公平競爭。通過理論分析和實驗數(shù)據(jù)可以得出:與TCP Reno相比,Switch-TCP不僅平均吞吐量和重傳率有了很大的改善:平均吞吐量提高了16.34%,重傳率約降低了2/3;且在快速和慢速切換態(tài)時也有很大的優(yōu)勢:在慢速切換態(tài)時,Switch-TCP比TCP Reno降低了7/8的丟包數(shù),在快速切換態(tài)時,Switch-TCP達到網(wǎng)絡(luò)最佳利用率的時間比TCP Reno大約早了4 s。
參考文獻(References):
[1]王志明,曾孝平,劉學(xué),等.一種異構(gòu)網(wǎng)絡(luò)TCP擁塞控制算法[J].電子與信息學(xué)報,2016,38(4):780-786.
[2]孔金生,張浩.異構(gòu)網(wǎng)絡(luò)下TCP擁塞控制疏導(dǎo)方法的研究與仿真[J].計算機仿真,2016,33(9):284-287.
[3]靳玉寶,董育寧.異構(gòu)網(wǎng)絡(luò)中的丟包區(qū)分和擁塞控制機制[J].應(yīng)用科學(xué)學(xué)報,2015,33(3):234-242.
[4]苑野,于永澔.基于異構(gòu)網(wǎng)絡(luò)機群環(huán)境下NPB性能分析[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2016,32(2):75-78.
[5]黃宏程,陸衛(wèi)金,劉建星,等.基于丟包區(qū)分及共享瓶頸的MPTCP擁塞控制算法[J].計算機工程與設(shè)計,2016,37(3):571-576.
[6]葛鴿,張國清.一種適用于異構(gòu)網(wǎng)絡(luò)的TCP協(xié)議設(shè)計及其仿真[J].系統(tǒng)仿真學(xué)報,2004,16(12):2875-2879.
[7]曲大鵬,黃東軍.一種新的適用于異構(gòu)網(wǎng)絡(luò)的TCP算法[J].計算機應(yīng)用,2007,27(10):2437-2439.
[8]晉伊燦,陳立云,高秀峰,等.基于TCP Veno算法的異構(gòu)網(wǎng)絡(luò)邊界代理改進機制研究[J].軍械工程學(xué)院學(xué)報,2013,25(3):53-57.
[9]蘇放,FAN Ying-lei.一種基于Fuzzy丟包區(qū)分的TCP擁塞控制算法[J].系統(tǒng)仿真學(xué)報,2008,20(7):1904-1908.
[10]王凌云,王輝.TCP性能增強代理包處理策略的研究[J].計算機工程與設(shè)計,2009,30(4):858-861.
[11]胡飛飛,李云,劉期烈,等.TCP-BM:一種適用于異構(gòu)網(wǎng)絡(luò)的TCP協(xié)議改進策略[J].電子技術(shù)應(yīng)用,2010,36(4):115-118.
[12]楊軍,張和生,潘成,等.一種交通信息采集傳感器網(wǎng)絡(luò)的IP互連方法[J].儀器儀表學(xué)報,2011,32(11):2596-2601.
[13]肖鍇,章國安.無線異構(gòu)網(wǎng)絡(luò)TCP性能研究與改進[J].計算機應(yīng)用與軟件,2013,30(5):41-43.
[14]畢元梅,徐昌彪,尤齊,等.異構(gòu)網(wǎng)絡(luò)中TCP面臨的問題及解決方案[J].數(shù)據(jù)通信,2008(2):39-43.
[15]李慶華,陳志剛,鄧曉衡,等.基于線性均方誤差的無線自組網(wǎng)TCP定時器改進[J].中南大學(xué)學(xué)報(自然科學(xué)版),2012,43(5):1780-1786.