馬琛璐, 唐俊勇
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,西安710021)
隨著網(wǎng)絡(luò)技術(shù)在能源裝備、工業(yè)互聯(lián)、邊緣與云計(jì)算中的發(fā)展與融合,極大地促進(jìn)了智能化生產(chǎn)、運(yùn)維服務(wù)和供應(yīng)鏈的集成。傳統(tǒng)單一的網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)無法滿足高速發(fā)展的網(wǎng)絡(luò)環(huán)境,隨之產(chǎn)生的是由有線、WiFi、無線傳感、LTE和衛(wèi)星網(wǎng)絡(luò)等多種異構(gòu)網(wǎng)絡(luò)結(jié)合而成的混合網(wǎng)絡(luò)[1-2],作為一種新型網(wǎng)絡(luò)形式,以其覆蓋面廣、網(wǎng)絡(luò)兼容性好和轉(zhuǎn)發(fā)靈活等優(yōu)勢,被廣泛應(yīng)用在各個領(lǐng)域?;旌暇W(wǎng)絡(luò)由于具備有線、無線信道和高速、低速網(wǎng)絡(luò)結(jié)合的特點(diǎn),決定了其各鏈路的延遲并不均衡,尤其是存在衛(wèi)星網(wǎng)絡(luò)這種高時延鏈路,使得網(wǎng)絡(luò)帶寬被低時延鏈路大量搶占,不僅造成了混合鏈路傳輸不公平,還導(dǎo)致與高時延鏈路所在的全部路徑傳輸利用率不足。解決高時延混合網(wǎng)絡(luò)的傳輸不均衡問題成為近年來研究的熱點(diǎn)。
目前研究主要是提出新的擁塞控制算法[3-5]來解決傳統(tǒng)TCP協(xié)議在混合網(wǎng)絡(luò)中的傳輸問題,在解決高時延混合網(wǎng)絡(luò)傳輸?shù)墓叫院团c其他擁塞機(jī)制共存的友好性問題上取得較好的效果,并開始應(yīng)用在相應(yīng)的傳輸環(huán)境中。其中TCP Hybla[6]算法以其明顯的優(yōu)越被應(yīng)用在高延遲衛(wèi)星網(wǎng)絡(luò)中。避免了以TCP NewReno為代表的丟包觸發(fā)機(jī)制激進(jìn)的數(shù)據(jù)發(fā)送模式,從而占用高延時鏈路帶寬的不公平性;提高了以TCP Vegas[7]為代表的延遲擁塞機(jī)制的響應(yīng)靈敏性,較好地解決了高時延混合網(wǎng)絡(luò)各鏈路傳輸?shù)牟挥押眯浴?/p>
TCP Hybla已經(jīng)應(yīng)用在實(shí)際環(huán)境中,現(xiàn)實(shí)中混合網(wǎng)絡(luò)的搭建費(fèi)用昂貴且TCP擁塞控制理論復(fù)雜抽象,難以直觀地在課堂教學(xué)中表現(xiàn)出來。針對這些問題,本文利用NS-3(Network Simulator-3)[8]網(wǎng)絡(luò)仿真軟件靈活、便捷地設(shè)計(jì)高時延混合網(wǎng)絡(luò)仿真實(shí)驗(yàn),在節(jié)約實(shí)驗(yàn)成本的基礎(chǔ)上,采用NS-3中的追蹤機(jī)制和流量監(jiān)測機(jī)制高效,便捷地將TCP擁塞控制中擁塞窗口(Congestion Window,CWND)和吞吐量(Throughput)的變化過程記錄下來,并通過模塊調(diào)用以文件的形式保存,便于進(jìn)行實(shí)驗(yàn)研究。
相較于傳統(tǒng)的教學(xué)實(shí)驗(yàn)在擁塞控制部分黑板式教學(xué)[9-10]的缺陷,NS-3能夠針對高時延混合網(wǎng)絡(luò)的各鏈路時延不同的特點(diǎn),觀察在混合網(wǎng)絡(luò)結(jié)構(gòu)中,傳統(tǒng)的TCP擁塞控制機(jī)制與TCP Hybla機(jī)制的性能優(yōu)劣以及細(xì)節(jié)變化,突破了原有實(shí)驗(yàn)教學(xué)難以直觀分析抽象難懂的TCP理論的局限性。同時,該實(shí)驗(yàn)可用于混合網(wǎng)絡(luò)的相關(guān)教學(xué)和研究,并可進(jìn)一步開展TCP擁塞控制協(xié)議的一系列實(shí)驗(yàn)教學(xué)。
NS-3旨在提高實(shí)驗(yàn)效率,節(jié)省實(shí)驗(yàn)成本,通過忽略底層細(xì)節(jié)進(jìn)行大規(guī)模網(wǎng)絡(luò)的相關(guān)研究,縮小現(xiàn)實(shí)網(wǎng)絡(luò)與實(shí)驗(yàn)結(jié)果的差距。利用該軟件進(jìn)行混合網(wǎng)絡(luò)的擁塞控制相關(guān)教學(xué)實(shí)驗(yàn),可以幫助學(xué)生更好的理解理論知識,并有助于相關(guān)研究人員對新的網(wǎng)絡(luò)協(xié)議進(jìn)行實(shí)驗(yàn)和驗(yàn)證,方便研究人員及時對新的協(xié)議進(jìn)行改進(jìn)、調(diào)整。該軟件用于實(shí)驗(yàn)教學(xué)中,可有效提升教學(xué)質(zhì)量,培養(yǎng)學(xué)生獨(dú)立思維能力。
圖1所示為NS-3仿真[11]實(shí)驗(yàn)平臺的基本搭建流程,根據(jù)相關(guān)網(wǎng)絡(luò)結(jié)構(gòu)編寫模塊源碼,若滿足仿真需求直接運(yùn)行腳本文件,否則根據(jù)需求修改合適的源碼和模塊,并重新編譯運(yùn)行,并將仿真結(jié)果以文件的形式輸出,收集相應(yīng)的數(shù)據(jù),對仿真結(jié)果進(jìn)行分析。
圖1 NS-3仿真平臺的基本搭建流程
本文采用NS-3中的Internet模塊設(shè)計(jì)傳輸層TCP協(xié)議性能分析仿真實(shí)驗(yàn)[12]。在仿真中需要為網(wǎng)絡(luò)中的各節(jié)點(diǎn)設(shè)置相應(yīng)的參數(shù),在NS-3中節(jié)點(diǎn)被視為裸機(jī),需要添加相應(yīng)的網(wǎng)卡、TCP/IP協(xié)議棧以及Application。圖2所示為NS-3中的Internet模塊架構(gòu)。
圖2 NS-3中Internet模塊架構(gòu)
各模塊的具體含義:
Internet 在NS-3中的TCP/IP協(xié)議棧,包含了所有傳輸層以及網(wǎng)絡(luò)層的協(xié)議算法,是網(wǎng)絡(luò)仿真的核心模塊;
TcpSocket 主要用來定義基本的TCP屬性,是一個虛擬類變量;
TcpSocketBase TCP協(xié)議的擁塞控制和窗口管理算法的核心類,是NS-3中實(shí)現(xiàn)擁塞控制仿真模擬的關(guān)鍵;
TcpTx 獲取TcpSocketBase產(chǎn)生的Tx trace變量,并接收應(yīng)用層傳遞的數(shù)據(jù)分組;
TcpRx 通過TcpL4Protocol接收來自網(wǎng)絡(luò)層的Rx trace變量;
TcpL4Protocol 用于創(chuàng)建TcpSocketBase對象,是傳輸層與網(wǎng)絡(luò)層的接口,負(fù)責(zé)把TcpTx產(chǎn)生的數(shù)據(jù)傳遞給網(wǎng)絡(luò)層。
在NS-3中,當(dāng)仿真程序開始時,由客戶端應(yīng)用程序通過配置了跟蹤變量的SendApplication協(xié)議發(fā)送TCP分組,傳遞給Internet模塊的TcpSocket類,通過與IP地址對應(yīng)的端口號中的TcpTx變量繼續(xù)發(fā)送TCP分組,在TcpL4Protocol創(chuàng)建的TcpSocketBase類的擁塞機(jī)制控制下,將下層所能容納的最大TCP分組傳遞下去,最終在接收端回調(diào)函數(shù)的作用下,通過配置接收跟蹤變量TcpRx將所接收的分組信息回傳給PacketSink。
在異構(gòu)網(wǎng)絡(luò)中,網(wǎng)絡(luò)資源的可用性通過CWND來探測評估。理想狀態(tài)下(即不丟包),每當(dāng)發(fā)送方發(fā)送一個最大報(bào)文段(Maximum Segment Size,MSS),接收方會反饋一個確認(rèn)號(Acknowledge character,ACK)作為響應(yīng)。標(biāo)準(zhǔn)的TCP擁塞控制算法TCP NewReno在慢啟動(Slow Start,SS)階段,CWND 值呈指數(shù)變化,而在擁塞避免(Congestion Avoid,CA)階段,CWND值呈線性變化。
為便于觀察往返時延(Round-Trip Time,RTT)的變化對擁塞窗口的影響,將TCP NewReno的離散動態(tài)模型進(jìn)行連續(xù)化處理,得到CWND隨時間變化的評估模型式:[13]
式中:tλ= RTT lbλ;λ 為慢啟動閾值(Slow Start Threshold,ssthresh),也是進(jìn)入CA階段的起點(diǎn)。由此可以看出,在TCP NewReno中受RTT的影響,較長的RTT會使W(t)減小,使CWND數(shù)量減少,降低吞吐量。為使較長的RTT獲得與短的RTT相同的吞吐量,TCP Hybla算法原理通過平衡因子ρ使CWND擺脫對RTT的依賴,使得在高時延的網(wǎng)絡(luò)中,TCP Hybla仍然具有良好的性能。
其中ρ=RTT/RTT0,RTT0默認(rèn)為25 ms,在NS中默認(rèn)為50 ms。引入平衡因子ρ后的TCP Hybla的CWND 表達(dá)式[14]為:
由BH(t)=WH(t)/RTT 可得TCP Hybla的動態(tài)吞吐量模型[15-16]:
從式(2)、(3)可以看出,TCp Hybla算法的CWND和吞吐量與RTT無關(guān),只與RTT0這一參考常量相關(guān)。
此外,由式(1)、(2)對比可知,在高時延的網(wǎng)絡(luò)中,TCP Hybla比TCP NewReno算法更容易獲得更大的CWND,也可更快地獲得較高的吞吐量。這表明,在相同傳輸時間下,TCP Hybla擁有更好的調(diào)控性能,同時也說明了TCP Hybla更適用于包含衛(wèi)星網(wǎng)絡(luò)在內(nèi)的高時延的混合網(wǎng)絡(luò)。
為了驗(yàn)證TCP Hybla算法原理優(yōu)于傳統(tǒng)的TCP NewReno算法并提供其吞吐量和CWND變化的相關(guān)實(shí)驗(yàn)結(jié)果,本文使用NS-3模擬器進(jìn)行仿真。仿真網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,由8個節(jié)點(diǎn)和R1,R2兩個路由組成的啞鈴狀混合網(wǎng)絡(luò)拓?fù)洹?/p>
圖3 混合網(wǎng)絡(luò)結(jié)構(gòu)
啞鈴狀網(wǎng)絡(luò)結(jié)構(gòu)符合混合網(wǎng)絡(luò)多鏈路共享瓶頸帶寬的特點(diǎn),可有效地模擬混合網(wǎng)絡(luò)有線、無線并存爭用網(wǎng)絡(luò)帶寬的情況。其各鏈路結(jié)構(gòu)具體仿真參數(shù)見表1。
表1 網(wǎng)絡(luò)結(jié)構(gòu)仿真參數(shù)
仿真的主要目的是通過追蹤機(jī)制和流量監(jiān)測機(jī)制追蹤數(shù)據(jù)來觀察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的變化,以此驗(yàn)證TCP Hybla算法在高時延混合網(wǎng)絡(luò)中的公平性、友好性及響應(yīng)靈敏性。在NS-3中添加追蹤和流量監(jiān)測機(jī)制設(shè)置高時延混合網(wǎng)絡(luò)仿真場景的基本流程為:
(1)搭建高時延混合網(wǎng)絡(luò)結(jié)構(gòu);
(2)為各網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)置變量屬性和參數(shù),具體參數(shù)見表1;
(3)分配IP地址給各個節(jié)點(diǎn);
(4)配置MyApp函數(shù),并添加Trace變量用于記錄CWND的變化;
(5)為追蹤變量設(shè)置回調(diào)函數(shù),將CWND的變化以文件的形式保存下來;
(6)添加流量監(jiān)測和事件調(diào)度函數(shù),統(tǒng)計(jì)相同時間間隔內(nèi)?;旌暇W(wǎng)絡(luò)各鏈路吞吐量變化;
(7)為各個節(jié)點(diǎn)設(shè)置運(yùn)行的始末時間,實(shí)時調(diào)控各鏈路的流量。
完成上述設(shè)計(jì)流程,可以建立一個完整的高時延混合網(wǎng)絡(luò)場景用于實(shí)驗(yàn)教學(xué),使學(xué)生可以更好地理解復(fù)雜抽象的TCP擁塞控制機(jī)制,并通過修改仿真時間、信道時延等仿真參數(shù)以獲得不同的仿真結(jié)果。通過設(shè)置追蹤變量和流量監(jiān)測機(jī)制將仿真結(jié)果進(jìn)行相關(guān)計(jì)算并寫入相關(guān)的文件中,利用Oringin軟件對仿真結(jié)果繪圖分析。
為直觀觀察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的變化并評估TCP Hybla的性能,采用7.5 Mb/s的瓶頸帶寬和1 Mb/s的4條支路帶寬,并設(shè)置時延為2.5 ms的3條鏈路和時延為100 ms的一條高時延鏈路,構(gòu)造混合網(wǎng)絡(luò)結(jié)構(gòu),模擬高時延衛(wèi)星鏈路和普通網(wǎng)絡(luò)鏈路的狀態(tài)。
在RTT 分別為25、50、100、200 ms的狀態(tài)下,由TCP Hybla理論可得CWND隨時間變化的趨勢如圖4所示。
圖4 理論Hybla算法CWND
理論上是每經(jīng)過一個傳輸輪次增大發(fā)送窗口數(shù),而NS-3仿真中發(fā)送窗口數(shù)量由具體仿真的網(wǎng)絡(luò)容量決定,在NS-3中仿真可得TCP Hybla的CWND隨時間變化的仿真結(jié)果如圖5所示。
圖5 NS-3仿真Hybla算法CWND
仿真結(jié)果表明,在高時延混合網(wǎng)絡(luò)里,TCP Hybla算法不會受RTT的影響而降低CWND,而且隨著RTT的增大,CWND越大,仿真結(jié)果與理論結(jié)果基本一致。
時延差異是混合網(wǎng)絡(luò)的一個重要特點(diǎn),主要影響TCP擁塞控制算法的公平性,本節(jié)利用啞鈴網(wǎng)絡(luò)結(jié)構(gòu)評估Hybla算法和NewReno算法,為了確保公平性,仿真設(shè)定在丟包率為零(即僅有擁塞丟包)的理想狀態(tài)下,4條TCP流同時啟動,共享瓶頸帶寬,仿真時間持續(xù)50 s。
圖6為在NewReno算法下,3條低時延流與1條高時延流的對比,可以清晰的看到,從啟動開始,1、2、3號低時延流快速搶占瓶頸鏈路,分別占帶寬的0.27、0.28、0.30,幾乎均分瓶頸鏈路,而4號高時延流的帶寬幾乎為零。從圖中可以看出,只有當(dāng)1、2、3號流逐漸減小,并趨于穩(wěn)態(tài)時,4號流才有機(jī)會分享帶寬,并且緩慢的增長,直到最后1,2,3號流均穩(wěn)定在吞吐量為0.30附近,4號高時延流的吞吐量才增長到0.11。恰好驗(yàn)證了在標(biāo)準(zhǔn)的TCP擁塞協(xié)議下,較大的RTT會遭受TCP連接的嚴(yán)重懲罰,體現(xiàn)了NewReno算法在不同RTT的鏈路下的不公平性。
圖6 New Reno算法不同時延吞吐量
為了驗(yàn)證Hybla算法不受RTT影響的特性,與圖6的標(biāo)準(zhǔn)TCP擁塞控制協(xié)議進(jìn)行對比,圖7是在Hybla算法下,4條TCP流同時啟動的吞吐量分布情況,由對比可見,4號高時延流一開始就快速搶占帶寬,同時1、2、3號低時延流均逐漸減小,吞吐量都保持在0.28~0.325之間,并在第10 s快速的達(dá)到吞吐量為0.25的穩(wěn)定狀態(tài)。而4號高時延流在第10 s時也迅速增長至0.25,并在10 s之后逐漸穩(wěn)定在0.26附近。
圖7 Hybla算法不同時延吞吐量
這是由于Hybla算法里的擁塞系數(shù)ρ,使得Hybla算法公平地?cái)[脫了RTT的依賴,大大優(yōu)化了因受RTT困擾而處于劣勢的高時延鏈路的性能,這也表明了在高時延鏈路中Hybla算法的公平性更好。
圖8則是為體現(xiàn)Hybla算法的優(yōu)越性,設(shè)置仿真時間為150 s,在1、2、3號低時延流啟動20 s后,逐漸進(jìn)入穩(wěn)定狀態(tài)時再啟動4號高時延流。由圖可見,4號高時延流并未打破原有3條流的穩(wěn)定狀態(tài),而是快速增長至吞吐量為0.25附近,與其他3條流一起趨于穩(wěn)定,并均分帶寬。
圖8 Hybla穩(wěn)態(tài)吞吐量
圖9 為容錯率為0.1%,時延為100 ms的高時延鏈路中TCP Hybla算法和TCP Vegas算法的CWND變化,可見在高時延鏈路中TCP Hybla的CWND發(fā)送量遠(yuǎn)高于TCP Vegas算法,由此可說明,在高時延鏈路中,TCP Hybla的響應(yīng)靈敏性。
圖9 TCP Vegas和TCP Hybla算法CWND
為反映TCP Hybla算法的混合網(wǎng)絡(luò)中與其他算法之間的友好性,在混合網(wǎng)絡(luò)結(jié)構(gòu)中令1、2、3號低時延流為TCP NewReno,4號高時延流分別為TCP Hybla和TCP Vegas,將2次運(yùn)行結(jié)果進(jìn)行對比,如圖10所示。雖然TCP Vegas在高時延鏈路中的性能低于TCP Hybla,但是帶寬并沒有被完全搶占,稍低于適應(yīng)高時延鏈路的TCP Hybla,約占20%,而TCP Hybla和TCP NewReno算法均穩(wěn)定在25%左右,這恰好說明了TCP Hybla算法友好性。
圖10 不同TCP算法的吞吐量
本文對在NS-3中搭建高時延混合網(wǎng)絡(luò)結(jié)構(gòu)仿真的過程進(jìn)行了詳細(xì)描述,在仿真過程中運(yùn)用追蹤機(jī)制和流量監(jiān)測機(jī)制對仿真結(jié)果進(jìn)行輸出保存。實(shí)驗(yàn)不僅仿真了TCP Hybla算法在高時延混合網(wǎng)絡(luò)中的吞吐量和CWND的變化,還設(shè)計(jì)實(shí)驗(yàn)對TCP Hybla在混合網(wǎng)絡(luò)中的公平性,友好性以及響應(yīng)靈敏性進(jìn)行了評估,仿真結(jié)果與理論貼合度較高,實(shí)驗(yàn)設(shè)計(jì)成功??稍诖藢?shí)驗(yàn)的基礎(chǔ)上進(jìn)一步進(jìn)行混合網(wǎng)絡(luò)的研究與教學(xué)工作以及一系列相關(guān)的TCP擁塞控制教學(xué)實(shí)驗(yàn)設(shè)計(jì)。