婁 久, 李秀坤(哈爾濱工業大學 計算機科學與技術學院,黑龍江 哈爾濱 150001)
?
·專題研討——虛擬仿真實驗(18)·
NS2平臺的TCP/IP網絡擁塞控制算法仿真
婁 久, 李秀坤
(哈爾濱工業大學 計算機科學與技術學院,黑龍江 哈爾濱 150001)
網絡擁塞控制是網絡服務質量(QoS)機制正常運作的基礎,而TCP/IP網絡的擁塞控制機制是保證Internet的穩定性和魯棒性的關鍵。利用NS2仿真平臺,分別在不同網絡環境下實現5種經典網路擁塞控制算法:TCP Tahoe、TCP Vegas、TCP Newreno、TCP Reno和TCP Sack,仿真結果表明在無丟包環境和高時延環境下各算法所受影響基本相同,而在低帶寬和一般擁塞環境中Vegas算法的性能要優于其它算法,該結果為不同網絡環境擁塞控制算法的選擇和應用提供有效依據。同時通過軟件仿真與實際測試,加深了學生對擁塞控制算法的理解。
網絡擁塞控制; 網絡仿真; NS2
伴隨著計算機網絡的快速發展,網絡上各方面的應用急劇增加,涵蓋通訊社交、電子商務、資源上傳下載、云存儲與云計算等等[1-2]。在網絡上傳輸的數據量激增,且其增長速度遠遠超過了網絡負載能力的增長[3-4]。因此,網絡擁塞問題越來越受到關注[5-6]。到目前為止,擁塞控制的研究已有30余年。TCP擁塞控制主要涉及慢起動(Slow Start)、擁塞避免(Congestion Avoidance)、快速重傳(Fast Retransmit)和快速恢復(Fast Recovery)[7]。迄今為止主要5種TCP版本所采用的擁塞控制算法,分別為TCP Tahoe[8]、TCP Reno[9]、TCP Newreno[10]、TCP Sack[11]、TCP Vegas[12]。本文利用面向對象的事件驅動網絡仿真軟件NS2虛擬了幾種不同網絡結構環境,從而比較了上述5中經典網絡擁塞控制算法的性能。由實驗得出的結論可以為不同的網絡環境中擁塞控制算法的選擇提供一定的依據,同時可以幫助學生加深對網絡擁塞控制的理解。
1.1 TCP擁塞控制算法
端到端的面向連接的傳輸控制協議(Transmission Control Protocol,TCP)為應用提供可靠的數據傳輸服務,與IP協議相結合組成了因特網協議的核心[13]。TCP協議中提供流量控制與擁塞控制。目前TCP協議主要包含五個版本:TCP Tahoe、TCP Vegas、TCP Newreno、TCP Reno、TCP Sack。TCP Tahoe是最早的版本,為其它幾種算法的出現與發展奠定了基礎。Vegas則是通過往返時延的變化來確定擁塞的發生,改變擁塞窗口的值。NewReno對之前的快速恢復算法進行了一定的改進。Reno與Tahoe基本相同,但增加了Tahoe所不具有的快速恢復算法。而Sack通過改進實現了不需要重傳一個窗口內所有的數據包,而只需要對丟失的數據包進行重新發送。
1.2 網絡仿真平臺NS2
面向對象的網絡模擬器(Network Simulator-Version 2,NS2),由伯克利大學開發的一種專業、免費的軟件仿真平臺,主要用于仿真各種IP網絡,并且開放源代碼供用戶自行進行修改調用[14-15]。它擁有豐富的構件庫,幾乎可以模擬所有需要的網絡環境。其開發語言為C++和Otcl語言。對于用戶來說,NS2就是一個包含模擬時間調度器、多種組件和模塊的Tcl腳本解釋器,如圖1所示。

圖1 從一個用戶的角度看NS2
從圖1中可以看出,NS2進行模擬的過程是以事件進行驅動的,通過Tclcl將OTcl和最底層C++聯系起來,再提供一個可以被調用的接口。用戶可以使用Otcl庫中的多種模擬網絡組件根據自己的需求設計網絡結構進行仿真。如今大部分進行網絡研究的文章中所給出的實驗結果都是通過NS2進行仿真得出的,由于NS2的專業性和權威性,由它得到的結果是受到學術界普遍認可的。
2.1 仿真場景
為了全面的驗證并分析TCP擁塞控制算法的性能,實驗設計四種仿真場景:無丟包環境、高時延環境、低帶寬環境和擁塞環境,網絡拓撲如圖2所示,圖中橢圓形代表數據流,矩形代表代理的類型,圓形代表節點。圖中發送節點s0為TCP代理節點,可綁定不同類型TCP代理,r0為接收節點,綁定sink代理,n1和n2路由器節點之間為傳輸瓶頸。隊列類型為Droptail。發送窗口最大值為24。鏈路使用ftp流進行數據傳輸,仿真時間20 s。

圖2 網絡拓撲圖
2.2 實驗測試
2.2.1 無丟包環境
通過前面分析擁塞產生的原因可以得出,當網絡傳輸中各節點與中間路由器間的帶寬與時延沒有差別時,數據會持續穩定的傳輸,沒有傳輸瓶頸。為了研究發生擁塞時的條件,首先需要觀察沒有發生擁塞時的情況。實驗參數為s0~n1、n1~n2、n2~r0之間的帶寬均為10 Mb/s,時延均為1ms,仿真時間為20s。將所得的數據進行整理可得在簡單網絡結構無丟包環境下各算法性能如表1所示。

表1 無丟包環境下各算法的性能
通過表1可以發現,5種TCP擁塞控制算法在傳輸過程中均沒出現丟包情況,并且吞吐量也基本與帶寬相同,平均時延維持在很低的數值。證明在網絡中各節點間的參數相同,不存在瓶頸鏈路時,數據會沒有限制的持續高速通過,不會發生擁塞與丟包。
2.2.2 高時延環境
在網絡中各節點間的網絡參數完全相同,不存在傳輸瓶頸時,網絡不會出現擁塞和丟包現象,也沒有啟動相應的流量控制措施。但是當路由器間的時延較大時,會明顯的出現流量減少、吞吐量下降、數據包傳輸的時延增大的現象。因此設置s0與n1、s2與r0之間的帶寬為10 Mb/s,時延1 ms,而n1到n2之間帶寬10 Mb/s,時延100 ms進行仿真,結果如表2所示。
表2顯示了在高時延的網絡環境下,各種算法的性能均出現明顯的下降。平均吞吐量與發送的數據包數量大幅度下降,平均時延明顯上升,但是并沒有出現丟包的情況。結果表明在高時延的環境下,網絡傳輸速率會明顯下降,這是因為數據包到達路由器的存儲隊列時,由于n1與n2間時延過大,導致數據包不能及時的到達接收端r0,從而r0也不能及時的發送ACK返回給s0,因此發生吞吐量下降的情況。通過與表1的對比可以發現,Tahoe、Reno、Newreno、Sack算法受時延的影響基本相同,而Vegas算法受時延的影響要比其他幾種大。因此在高時延的環境下不建議選擇Vegas算法。

表2 高時延環境下各算法的性能
2.2.3 低帶寬環境
當網絡節點間時延相同時,各鏈路的帶寬的差異也會使網絡傳輸發生明顯的變化。為了研究瓶頸鏈路低帶寬環境的情況,設置實驗參數為s0到n1、n2到r0間的帶寬為10 Mb/s,時延1 ms,而低速鏈路n1到n2間的帶寬為1 Mb/s,時延也為1 ms,進行仿真,觀察帶寬對擁塞現象的影響。結果如表3所示。

表3 低帶寬環境下各算法的性能
由表3分析可得當存在低速瓶頸鏈路時,網絡傳輸會受到影響,出現吞吐量下降、時延增加、數據包丟失的現象。原因在于當網絡中存在低速鏈路時,會導致高速的數據流流經這條鏈路時產生擁塞。根據香農信道容量公式可知,任何信道帶寬最大值即信道容量。
C=Blb2(1+S/N)
(1)
因此節點接收數據流的速率必須小于或等于信道容量。否則,接收的報文在緩沖區中排隊,在緩沖區占滿后就會出現丟包,導致網絡擁塞。
2.2.4 擁塞環境
為了更方便直觀地分析各算法的性能,需要選擇一個合適的仿真場景進行實驗分析。通過前面的實驗,證明了在瓶頸鏈路低帶寬、高時延的情況下會發生擁塞現象。因此一個比較好的仿真環境是設置s0~n1、n2~r0之間帶寬為10 Mb/s,時延為1 ms,瓶頸鏈路n1~n2之間帶寬為1 Mb/s,時延為4 ms。在此環境下進行仿真,網絡傳輸會出現明顯的丟包與擁塞現象,各算法會啟動相應的擁塞控制方法,所得到的結果如表4所示。

表4 擁塞環境下各算法的性能
總結來說,Tahoe算法主要涉及慢起動、擁塞避免與快速重傳三部分,當收到三個重復的ACK時會認為發生了丟包重新開始慢起動;Reno算法在Tahoe的基礎上增加了新的算法:快速恢復算法,能夠解決Tahoe太過劇烈的減少發送窗口的問題;Newreno算法的改進是在收到部分的ACK時并不會立刻結束快速恢復,而是等所有丟失的封包重傳后才結束;Sack算法使用了SACK選項,可以明確地知道哪些包丟失了,減少無謂的重傳;Vegas算法是基于往返時延RTT的一種擁塞控制算法,采用一種比較保守的方法避免擁塞,能夠減少丟包率,但是存在錯誤估計RTT的可能,從而導致性能下降。
根據實驗結果分析得到在各種不同的網絡環境下五種算法的性能如下:
(1)在沒有發生擁塞的網絡環境中,各種算法的性能基本相同,發送端會持續高速的發送數據包,不會產生丟包也沒有流量控制機制。
(2)在瓶頸鏈路高時延環境下,并沒有發生丟包,但是傳輸的速率明顯受限,各種算法受影響的程度基本相同。
(3)在瓶頸鏈路低帶寬環境下,網絡傳輸會受到影響,出現吞吐量下降、時延增加、數據包丟失的現象。Vegas算法的平均吞吐量最高,時延低,沒有發生丟包,性能最出色。
(4)在一般擁塞環境中,Tahoe、Reno、Newreno、Sack、Vegas五種算法的平均吞吐量依次增加,但是Vegas算法不會出現丟包,并且時延低于其它幾種算法,因此建議使用Vegas算法。
[1] 朱志良,邱媛源,李丹程,等.一種We服務復雜網絡的構建方法[J].小型微型計算機系統,2012,33(2):199-205.
[2] 蔡小玲,范新麗. 不同隊列管理機制對多媒體傳輸品質的影響[J]. 計算機應用,2009,29(S2) :24-26.
[3] 吉祖勤, 黃津津.基于NS2的隊列管理算法DropTail和RED仿真與研究[J]. 實驗室研究與探索,2014,33(1):6-28.
[4] 文 宏,樊曉平,張會福,等.無標度網絡擁塞控制方法研究[J]. 小型微型計算機系統,2013,34(11): 2482-2486.
[5] 秦 光.計算機網絡擁塞的高效控制方法研究[J].計算機仿真,2012,29(9):154-157.
[6] 葛彥強,汪向征,于江德.一種利用自組織映射和徑向基函數神經網絡的網絡擁塞預測方法[J].微電子學與計算機,2012,29(12):176-179.
[7] 徐昌彪,鮮永菊. 計算機網絡中的擁塞控制與流量控制[M]. 北京:中國郵電出版社,2007.
[8] Jain R,Ramakrishnan K K,Chiu Dah-Ming. Congestion Avoidance in Computer Networks with a Connectionless Network Layer[R]. Digital Equipment Corporation DEC-TR-506,1988.
[9] 陳新房. 基于RED算法的擁塞控制策略研究[D]. 大連:大連海事大學,2008.
[10] 孫 偉,溫 濤,馮自勤,等.基于TCP NewReno 的穩態吞吐量分析模型[J].計算機研究與發展,2010,47(3):398-406.
[11] 錢艷平. 互聯網擁塞控制算法若干問題研究[D]. 南京:東南大學,2005.
[12] 范·雅各布森.擁塞避免和控制[C]//美國計算機協會數據通信專業組會議,美國:ACM,1988:512-528.
[13] 孔金生,任平英.TCP 網絡擁塞控制研究[J].計算機技術與發展,2014,24(1):43-46.
[14] 王慶鳳, 陳 虹,王 萍.基于NS2的網絡控制系統仿真平臺的設計與實現[J].系統仿真學報,2011,23(2):270-274.
[15] 黃化吉,馮穗力,秦麗姣. NS網絡模擬和協議仿真[M]. 北京:人民郵電出版社,2010.
Simulation of TCP Congestion Control Algorithms Based on NS2 Platform
LOUJiu,LIXiu-kun
(School of Computer Science and Technology, Harbin Institute Technology, Harbin 150001, China)
Network congestion control is the basis of network quality of service (QoS) mechanisms for normal operation, and congestion control mechanisms of TCP / IP network is the key guarantee for the stability and robustness of the Internet. In this paper, five classic network congestion control algorithms that include TCP Tahoe, TCP Vegas, TCP Newreno, TCP Reno and TCP Sack are performed on NS2 (Network Simulator-Version 2) simulation platform. Simulation results show that each algorithm is received unanimous influence in the high latency environment and the absence of packet loss environment. But in low-bandwidth environment and general congestion environment the Vegas algorithm is superior to the performance of other algorithms, which can be an effective basis for the selection and application of congestion control algorithms under the different network environment. Meanwhile students' understanding of congestion control algorithm can be deepened by the software simulation and actual test.
network congestion control; network simulation; NS2
2014-07-04
哈爾濱工業大學985工程教學實驗室建設項目
婁 久(1977-),男,吉林長春人,高級工程師,主要研究方向:實驗室建設與管理、計算機網絡及可信計算等。
Tel.:0451-86413341; E-mail:loujiu@hit.edu.cn
TP 393.0
A
1006-7167(2015)02-0081-03