馬琛璐, 唐俊勇
(西安工業(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)無(wú)法滿足高速發(fā)展的網(wǎng)絡(luò)環(huán)境,隨之產(chǎn)生的是由有線、WiFi、無(wú)線傳感、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)勢(shì),被廣泛應(yīng)用在各個(gè)領(lǐng)域。混合網(wǎng)絡(luò)由于具備有線、無(wú)線信道和高速、低速網(wǎng)絡(luò)結(jié)合的特點(diǎn),決定了其各鏈路的延遲并不均衡,尤其是存在衛(wèi)星網(wǎng)絡(luò)這種高時(shí)延鏈路,使得網(wǎng)絡(luò)帶寬被低時(shí)延鏈路大量搶占,不僅造成了混合鏈路傳輸不公平,還導(dǎo)致與高時(shí)延鏈路所在的全部路徑傳輸利用率不足。解決高時(shí)延混合網(wǎng)絡(luò)的傳輸不均衡問(wèn)題成為近年來(lái)研究的熱點(diǎn)。
目前研究主要是提出新的擁塞控制算法[3-5]來(lái)解決傳統(tǒng)TCP協(xié)議在混合網(wǎng)絡(luò)中的傳輸問(wèn)題,在解決高時(shí)延混合網(wǎng)絡(luò)傳輸?shù)墓叫院团c其他擁塞機(jī)制共存的友好性問(wèn)題上取得較好的效果,并開(kāi)始應(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ā)送模式,從而占用高延時(shí)鏈路帶寬的不公平性;提高了以TCP Vegas[7]為代表的延遲擁塞機(jī)制的響應(yīng)靈敏性,較好地解決了高時(shí)延混合網(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)出來(lái)。針對(duì)這些問(wèn)題,本文利用NS-3(Network Simulator-3)[8]網(wǎng)絡(luò)仿真軟件靈活、便捷地設(shè)計(jì)高時(shí)延混合網(wǎng)絡(luò)仿真實(shí)驗(yàn),在節(jié)約實(shí)驗(yàn)成本的基礎(chǔ)上,采用NS-3中的追蹤機(jī)制和流量監(jiān)測(cè)機(jī)制高效,便捷地將TCP擁塞控制中擁塞窗口(Congestion Window,CWND)和吞吐量(Throughput)的變化過(guò)程記錄下來(lái),并通過(guò)模塊調(diào)用以文件的形式保存,便于進(jìn)行實(shí)驗(yàn)研究。
相較于傳統(tǒng)的教學(xué)實(shí)驗(yàn)在擁塞控制部分黑板式教學(xué)[9-10]的缺陷,NS-3能夠針對(duì)高時(shí)延混合網(wǎng)絡(luò)的各鏈路時(shí)延不同的特點(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í),該實(shí)驗(yàn)可用于混合網(wǎng)絡(luò)的相關(guān)教學(xué)和研究,并可進(jìn)一步開(kāi)展TCP擁塞控制協(xié)議的一系列實(shí)驗(yàn)教學(xué)。
NS-3旨在提高實(shí)驗(yàn)效率,節(jié)省實(shí)驗(yàn)成本,通過(guò)忽略底層細(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é)生更好的理解理論知識(shí),并有助于相關(guān)研究人員對(duì)新的網(wǎng)絡(luò)協(xié)議進(jìn)行實(shí)驗(yàn)和驗(yàn)證,方便研究人員及時(shí)對(duì)新的協(xié)議進(jìn)行改進(jìn)、調(diào)整。該軟件用于實(shí)驗(yàn)教學(xué)中,可有效提升教學(xué)質(zhì)量,培養(yǎng)學(xué)生獨(dú)立思維能力。
圖1所示為NS-3仿真[11]實(shí)驗(yàn)平臺(tái)的基本搭建流程,根據(jù)相關(guān)網(wǎng)絡(luò)結(jié)構(gòu)編寫(xiě)模塊源碼,若滿足仿真需求直接運(yùn)行腳本文件,否則根據(jù)需求修改合適的源碼和模塊,并重新編譯運(yùn)行,并將仿真結(jié)果以文件的形式輸出,收集相應(yīng)的數(shù)據(jù),對(duì)仿真結(jié)果進(jìn)行分析。

圖1 NS-3仿真平臺(tái)的基本搭建流程
本文采用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 主要用來(lái)定義基本的TCP屬性,是一個(gè)虛擬類變量;
TcpSocketBase TCP協(xié)議的擁塞控制和窗口管理算法的核心類,是NS-3中實(shí)現(xiàn)擁塞控制仿真模擬的關(guān)鍵;
TcpTx 獲取TcpSocketBase產(chǎn)生的Tx trace變量,并接收應(yīng)用層傳遞的數(shù)據(jù)分組;
TcpRx 通過(guò)TcpL4Protocol接收來(lái)自網(wǎng)絡(luò)層的Rx trace變量;
TcpL4Protocol 用于創(chuàng)建TcpSocketBase對(duì)象,是傳輸層與網(wǎng)絡(luò)層的接口,負(fù)責(zé)把TcpTx產(chǎn)生的數(shù)據(jù)傳遞給網(wǎng)絡(luò)層。
在NS-3中,當(dāng)仿真程序開(kāi)始時(shí),由客戶端應(yīng)用程序通過(guò)配置了跟蹤變量的SendApplication協(xié)議發(fā)送TCP分組,傳遞給Internet模塊的TcpSocket類,通過(guò)與IP地址對(duì)應(yīng)的端口號(hào)中的TcpTx變量繼續(xù)發(fā)送TCP分組,在TcpL4Protocol創(chuàng)建的TcpSocketBase類的擁塞機(jī)制控制下,將下層所能容納的最大TCP分組傳遞下去,最終在接收端回調(diào)函數(shù)的作用下,通過(guò)配置接收跟蹤變量TcpRx將所接收的分組信息回傳給PacketSink。
在異構(gòu)網(wǎng)絡(luò)中,網(wǎng)絡(luò)資源的可用性通過(guò)CWND來(lái)探測(cè)評(píng)估。理想狀態(tài)下(即不丟包),每當(dāng)發(fā)送方發(fā)送一個(gè)最大報(bào)文段(Maximum Segment Size,MSS),接收方會(huì)反饋一個(gè)確認(rèn)號(hào)(Acknowledge character,ACK)作為響應(yīng)。標(biāo)準(zhǔn)的TCP擁塞控制算法TCP NewReno在慢啟動(dòng)(Slow Start,SS)階段,CWND 值呈指數(shù)變化,而在擁塞避免(Congestion Avoid,CA)階段,CWND值呈線性變化。
為便于觀察往返時(shí)延(Round-Trip Time,RTT)的變化對(duì)擁塞窗口的影響,將TCP NewReno的離散動(dòng)態(tài)模型進(jìn)行連續(xù)化處理,得到CWND隨時(shí)間變化的評(píng)估模型式:[13]

式中:tλ= RTT lbλ;λ 為慢啟動(dòng)閾值(Slow Start Threshold,ssthresh),也是進(jìn)入CA階段的起點(diǎn)。由此可以看出,在TCP NewReno中受RTT的影響,較長(zhǎng)的RTT會(huì)使W(t)減小,使CWND數(shù)量減少,降低吞吐量。為使較長(zhǎng)的RTT獲得與短的RTT相同的吞吐量,TCP Hybla算法原理通過(guò)平衡因子ρ使CWND擺脫對(duì)RTT的依賴,使得在高時(shí)延的網(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的動(dòng)態(tài)吞吐量模型[15-16]:

從式(2)、(3)可以看出,TCp Hybla算法的CWND和吞吐量與RTT無(wú)關(guān),只與RTT0這一參考常量相關(guān)。
此外,由式(1)、(2)對(duì)比可知,在高時(shí)延的網(wǎng)絡(luò)中,TCP Hybla比TCP NewReno算法更容易獲得更大的CWND,也可更快地獲得較高的吞吐量。這表明,在相同傳輸時(shí)間下,TCP Hybla擁有更好的調(diào)控性能,同時(shí)也說(shuō)明了TCP Hybla更適用于包含衛(wèi)星網(wǎng)絡(luò)在內(nèi)的高時(shí)延的混合網(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個(gè)節(jié)點(diǎn)和R1,R2兩個(gè)路由組成的啞鈴狀混合網(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ú)線并存爭(zhēng)用網(wǎng)絡(luò)帶寬的情況。其各鏈路結(jié)構(gòu)具體仿真參數(shù)見(jiàn)表1。

表1 網(wǎng)絡(luò)結(jié)構(gòu)仿真參數(shù)
仿真的主要目的是通過(guò)追蹤機(jī)制和流量監(jiān)測(cè)機(jī)制追蹤數(shù)據(jù)來(lái)觀察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的變化,以此驗(yàn)證TCP Hybla算法在高時(shí)延混合網(wǎng)絡(luò)中的公平性、友好性及響應(yīng)靈敏性。在NS-3中添加追蹤和流量監(jiān)測(cè)機(jī)制設(shè)置高時(shí)延混合網(wǎng)絡(luò)仿真場(chǎng)景的基本流程為:
(1)搭建高時(shí)延混合網(wǎng)絡(luò)結(jié)構(gòu);
(2)為各網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)置變量屬性和參數(shù),具體參數(shù)見(jiàn)表1;
(3)分配IP地址給各個(gè)節(jié)點(diǎn);
(4)配置MyApp函數(shù),并添加Trace變量用于記錄CWND的變化;
(5)為追蹤變量設(shè)置回調(diào)函數(shù),將CWND的變化以文件的形式保存下來(lái);
(6)添加流量監(jiān)測(cè)和事件調(diào)度函數(shù),統(tǒng)計(jì)相同時(shí)間間隔內(nèi)。混合網(wǎng)絡(luò)各鏈路吞吐量變化;
(7)為各個(gè)節(jié)點(diǎn)設(shè)置運(yùn)行的始末時(shí)間,實(shí)時(shí)調(diào)控各鏈路的流量。
完成上述設(shè)計(jì)流程,可以建立一個(gè)完整的高時(shí)延混合網(wǎng)絡(luò)場(chǎng)景用于實(shí)驗(yàn)教學(xué),使學(xué)生可以更好地理解復(fù)雜抽象的TCP擁塞控制機(jī)制,并通過(guò)修改仿真時(shí)間、信道時(shí)延等仿真參數(shù)以獲得不同的仿真結(jié)果。通過(guò)設(shè)置追蹤變量和流量監(jiān)測(cè)機(jī)制將仿真結(jié)果進(jìn)行相關(guān)計(jì)算并寫(xiě)入相關(guān)的文件中,利用Oringin軟件對(duì)仿真結(jié)果繪圖分析。
為直觀觀察TCP NewReno以及TCP Hybla算法的吞吐量及CWND的變化并評(píng)估TCP Hybla的性能,采用7.5 Mb/s的瓶頸帶寬和1 Mb/s的4條支路帶寬,并設(shè)置時(shí)延為2.5 ms的3條鏈路和時(shí)延為100 ms的一條高時(shí)延鏈路,構(gòu)造混合網(wǎng)絡(luò)結(jié)構(gòu),模擬高時(shí)延衛(wèi)星鏈路和普通網(wǎng)絡(luò)鏈路的狀態(tài)。
在RTT 分別為25、50、100、200 ms的狀態(tài)下,由TCP Hybla理論可得CWND隨時(shí)間變化的趨勢(shì)如圖4所示。

圖4 理論Hybla算法CWND
理論上是每經(jīng)過(guò)一個(gè)傳輸輪次增大發(fā)送窗口數(shù),而NS-3仿真中發(fā)送窗口數(shù)量由具體仿真的網(wǎng)絡(luò)容量決定,在NS-3中仿真可得TCP Hybla的CWND隨時(shí)間變化的仿真結(jié)果如圖5所示。

圖5 NS-3仿真Hybla算法CWND
仿真結(jié)果表明,在高時(shí)延混合網(wǎng)絡(luò)里,TCP Hybla算法不會(huì)受RTT的影響而降低CWND,而且隨著RTT的增大,CWND越大,仿真結(jié)果與理論結(jié)果基本一致。
時(shí)延差異是混合網(wǎng)絡(luò)的一個(gè)重要特點(diǎn),主要影響TCP擁塞控制算法的公平性,本節(jié)利用啞鈴網(wǎng)絡(luò)結(jié)構(gòu)評(píng)估Hybla算法和NewReno算法,為了確保公平性,仿真設(shè)定在丟包率為零(即僅有擁塞丟包)的理想狀態(tài)下,4條TCP流同時(shí)啟動(dòng),共享瓶頸帶寬,仿真時(shí)間持續(xù)50 s。
圖6為在NewReno算法下,3條低時(shí)延流與1條高時(shí)延流的對(duì)比,可以清晰的看到,從啟動(dòng)開(kāi)始,1、2、3號(hào)低時(shí)延流快速搶占瓶頸鏈路,分別占帶寬的0.27、0.28、0.30,幾乎均分瓶頸鏈路,而4號(hào)高時(shí)延流的帶寬幾乎為零。從圖中可以看出,只有當(dāng)1、2、3號(hào)流逐漸減小,并趨于穩(wěn)態(tài)時(shí),4號(hào)流才有機(jī)會(huì)分享帶寬,并且緩慢的增長(zhǎng),直到最后1,2,3號(hào)流均穩(wěn)定在吞吐量為0.30附近,4號(hào)高時(shí)延流的吞吐量才增長(zhǎng)到0.11。恰好驗(yàn)證了在標(biāo)準(zhǔn)的TCP擁塞協(xié)議下,較大的RTT會(huì)遭受TCP連接的嚴(yán)重懲罰,體現(xiàn)了NewReno算法在不同RTT的鏈路下的不公平性。

圖6 New Reno算法不同時(shí)延吞吐量
為了驗(yàn)證Hybla算法不受RTT影響的特性,與圖6的標(biāo)準(zhǔn)TCP擁塞控制協(xié)議進(jìn)行對(duì)比,圖7是在Hybla算法下,4條TCP流同時(shí)啟動(dòng)的吞吐量分布情況,由對(duì)比可見(jiàn),4號(hào)高時(shí)延流一開(kāi)始就快速搶占帶寬,同時(shí)1、2、3號(hào)低時(shí)延流均逐漸減小,吞吐量都保持在0.28~0.325之間,并在第10 s快速的達(dá)到吞吐量為0.25的穩(wěn)定狀態(tài)。而4號(hào)高時(shí)延流在第10 s時(shí)也迅速增長(zhǎng)至0.25,并在10 s之后逐漸穩(wěn)定在0.26附近。

圖7 Hybla算法不同時(shí)延吞吐量
這是由于Hybla算法里的擁塞系數(shù)ρ,使得Hybla算法公平地?cái)[脫了RTT的依賴,大大優(yōu)化了因受RTT困擾而處于劣勢(shì)的高時(shí)延鏈路的性能,這也表明了在高時(shí)延鏈路中Hybla算法的公平性更好。
圖8則是為體現(xiàn)Hybla算法的優(yōu)越性,設(shè)置仿真時(shí)間為150 s,在1、2、3號(hào)低時(shí)延流啟動(dòng)20 s后,逐漸進(jìn)入穩(wěn)定狀態(tài)時(shí)再啟動(dòng)4號(hào)高時(shí)延流。由圖可見(jiàn),4號(hào)高時(shí)延流并未打破原有3條流的穩(wěn)定狀態(tài),而是快速增長(zhǎng)至吞吐量為0.25附近,與其他3條流一起趨于穩(wěn)定,并均分帶寬。

圖8 Hybla穩(wěn)態(tài)吞吐量
圖9 為容錯(cuò)率為0.1%,時(shí)延為100 ms的高時(shí)延鏈路中TCP Hybla算法和TCP Vegas算法的CWND變化,可見(jiàn)在高時(shí)延鏈路中TCP Hybla的CWND發(fā)送量遠(yuǎn)高于TCP Vegas算法,由此可說(shuō)明,在高時(shí)延鏈路中,TCP Hybla的響應(yīng)靈敏性。

圖9 TCP Vegas和TCP Hybla算法CWND
為反映TCP Hybla算法的混合網(wǎng)絡(luò)中與其他算法之間的友好性,在混合網(wǎng)絡(luò)結(jié)構(gòu)中令1、2、3號(hào)低時(shí)延流為T(mén)CP NewReno,4號(hào)高時(shí)延流分別為T(mén)CP Hybla和TCP Vegas,將2次運(yùn)行結(jié)果進(jìn)行對(duì)比,如圖10所示。雖然TCP Vegas在高時(shí)延鏈路中的性能低于TCP Hybla,但是帶寬并沒(méi)有被完全搶占,稍低于適應(yīng)高時(shí)延鏈路的TCP Hybla,約占20%,而TCP Hybla和TCP NewReno算法均穩(wěn)定在25%左右,這恰好說(shuō)明了TCP Hybla算法友好性。

圖10 不同TCP算法的吞吐量
本文對(duì)在NS-3中搭建高時(shí)延混合網(wǎng)絡(luò)結(jié)構(gòu)仿真的過(guò)程進(jìn)行了詳細(xì)描述,在仿真過(guò)程中運(yùn)用追蹤機(jī)制和流量監(jiān)測(cè)機(jī)制對(duì)仿真結(jié)果進(jìn)行輸出保存。實(shí)驗(yàn)不僅仿真了TCP Hybla算法在高時(shí)延混合網(wǎng)絡(luò)中的吞吐量和CWND的變化,還設(shè)計(jì)實(shí)驗(yàn)對(duì)TCP Hybla在混合網(wǎng)絡(luò)中的公平性,友好性以及響應(yīng)靈敏性進(jìn)行了評(píng)估,仿真結(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ì)。