高斌 譚敏生 陳瓊 趙慧
南華大學計算機科學與技術(shù)學院 湖南 421001
在解決網(wǎng)絡(luò)擁塞問題上,傳統(tǒng)的基于 TCP/IP協(xié)議的擁塞控制算法已無法有效、及時的解決當前的網(wǎng)絡(luò)擁塞問題,而基于主動隊列的擁塞控制算法是當前研究解決網(wǎng)絡(luò)擁塞問題的主要方向之一。通過設(shè)置隊列可以吸收、暫存網(wǎng)絡(luò)中暫時無法處理的數(shù)據(jù)包,從而起到網(wǎng)絡(luò)擁塞調(diào)控的作用。較大的隊列能夠暫存較多的突發(fā)數(shù)據(jù)包、減少丟包率、提高網(wǎng)絡(luò)的吞吐量,但是同樣會增大數(shù)據(jù)包的排隊延時。相反,如果隊列的容量太小,則無法解決擁塞問題。有效的隊列管理算法在緩解網(wǎng)絡(luò)擁塞問題上具有重要的作用。RED(Random early Discard)隨機早丟棄算法作為當前最流行的主動擁塞控制算法在解決網(wǎng)絡(luò)擁塞問題上已經(jīng)發(fā)揮了重要的作用,然而該算法自身的局限使得其并不能及時有效地解決網(wǎng)絡(luò)中出現(xiàn)的擁塞問題,算法具有相對滯后性,且算法對參數(shù)的設(shè)置非常敏感。現(xiàn)有的一些主動隊列擁塞控制算法大多是 RED算法的衍生,實現(xiàn)的基礎(chǔ)仍然是隊列長度或平均隊列長度。因此,這些算法在提高網(wǎng)絡(luò)整體性能上具有局限性。
時延是反映網(wǎng)絡(luò)性能的一個重要指標。數(shù)據(jù)報文由源發(fā)送端到達目的接收端的過程中,數(shù)據(jù)報文所經(jīng)歷的延時一般包括傳輸時延、傳播時延、處理時延和排隊時延。對于長度相同的數(shù)據(jù)報文通過同一條源端到目的端的路徑來說,傳輸時延、傳播時延和處理時延是固定的,這三部分又稱為固定時延。由于網(wǎng)絡(luò)流具有突發(fā)性,每個數(shù)據(jù)報文的排隊時延隨著網(wǎng)絡(luò)的狀況的變化而變化,因此,排隊時延又稱為變化時延。
本文將重點考慮往返延時(Round-Trip Time,RTT)中的ACK傳輸時延對網(wǎng)絡(luò)性能的影響。往返時延是由源、目端節(jié)點間的單向時延、目的節(jié)點間的處理時延和目、源端節(jié)點間的單向時延(ACK傳輸時延)組成的。往返時延對于設(shè)置重傳超時時間、源發(fā)送端的發(fā)送窗口的大小具有重要的實際意義。本文在原有擁塞控制算法的基礎(chǔ)上,將 ACK報文傳輸延遲引入到擁塞控制系統(tǒng)中,仿真實驗表明:ACK傳輸延時的大小在很大程度上影響著網(wǎng)絡(luò)的吞吐量、數(shù)據(jù)包傳輸延遲等。
RED算法是由Van Jacobson和Sally Floyed 在1993年首次提出來的,算法設(shè)計目的是減小包丟失率和排隊延遲,避免全局源同步和獲得較高的鏈路利用率。其基本工作原理是在每個路由上監(jiān)視自己的隊列長度,當它檢測到擁塞即將發(fā)生時,就按照一定概率選擇一個即將進入緩沖隊列的數(shù)據(jù)包將其丟棄,工作原理如圖1所示,S為發(fā)送端,D為接收端,R1、R為路由節(jié)點。
圖1 RED工作原理圖
RED是采用加權(quán)的動態(tài)平均值來計算平均隊列的長度(AvgLen)。計算如下:Lenavg=(1-Weight)×Lenavg+Weight×SampleLen
其中:0<Weight<1,SampleLen是樣本測量時的隊列的長度。由于網(wǎng)絡(luò)流量具有突發(fā)性,算法使用平均隊列長度,不使用瞬時隊列長度的原因是平均隊列長度能夠更好的反映或者捕獲鏈路的擁塞狀況。
在RED隊列中存在兩個用于觸發(fā)某種特定活動的閥值:Thresholdmin和Thresholdmax。
當Lenavg 當 Thresholdmin<= Lenavg <Thresholdmax時,計算概率P,并以概率P丟棄數(shù)據(jù)包; 當Lenavg >=Thresholdmax時,將到達的數(shù)據(jù)包或分組全部丟棄。 RED算法能夠在一定程度上減小了數(shù)據(jù)包的隊列排隊延時和丟包率,但該算法不是明確的將鏈路擁塞通知信息發(fā)送給發(fā)送端,而是通過設(shè)置標志位或丟棄一個數(shù)據(jù)包隱式的通知發(fā)送端鏈路已發(fā)生擁塞,源發(fā)送端根據(jù)目的接收端發(fā)送的反饋信息來調(diào)整發(fā)送窗口大小,調(diào)整數(shù)據(jù)發(fā)送速率,從而實現(xiàn)擁塞控制。因此,在與源發(fā)送端協(xié)作上不具有協(xié)調(diào)性。這種不協(xié)調(diào)性主要體現(xiàn)在:當節(jié)點發(fā)生擁塞時,發(fā)送端并沒有及時的接收到擁塞信息,致使丟包。 由于發(fā)送端與接收端之間的鏈路具有非對稱性,因此,往返延時(RTT)的值隨著鏈路的狀態(tài)的變化而變化。RTT值的變化取決于以下兩個因素:(1)數(shù)據(jù)報文從發(fā)送端到接收端的傳送過程中的存儲轉(zhuǎn)發(fā)排隊延時的變化。排隊延時的大小取決于數(shù)據(jù)報文所在鏈路的擁塞程度。(2)數(shù)據(jù)報文確認信息報文(ACK)從接收端到發(fā)送端傳輸過程中的存儲轉(zhuǎn)發(fā)排隊延時變化以及丟包等因素所造成的延時變化。 傳統(tǒng)的隊列擁塞控制的研究僅僅考慮發(fā)送端到接收端之間的單向瓶頸鏈路的擁塞狀態(tài),而并沒有考慮接收端到發(fā)送端之間鏈路的擁塞狀態(tài),即:沒有考慮 ACK數(shù)據(jù)報文的延時或丟失對系統(tǒng)性能的影響。 本文將在以下四種情況下,分別研究RTT值對擁塞控制算法在提高網(wǎng)絡(luò)性能方面的影響,重點研究 ACK數(shù)據(jù)報文傳輸狀態(tài)對網(wǎng)絡(luò)性能的影響。 情況一、發(fā)送端到接收端的單向鏈路上不會出現(xiàn)瓶頸鏈路,返回鏈路上沒有競爭數(shù)據(jù)流,而且反向鏈路上不會發(fā)生數(shù)據(jù)報文擁塞狀態(tài)。 情況二、發(fā)送端到接收端的單向鏈路上不會出現(xiàn)瓶頸鏈路,返回鏈路上有競爭數(shù)據(jù)流,而且反向鏈路上不會發(fā)生數(shù)據(jù)報文擁塞狀態(tài)或ACK數(shù)據(jù)報文丟失。 情況三、發(fā)送端到接收端的單向鏈路上會出現(xiàn)瓶頸鏈路,但是反向鏈路上沒有競爭數(shù)據(jù)流或者不會出現(xiàn) ACK數(shù)據(jù)報文丟失。 情況四、發(fā)送端與接收端之間的往返鏈路上都會出現(xiàn)瓶頸鏈路,而且都會出現(xiàn)鏈路擁塞狀態(tài)或數(shù)據(jù)報文丟失。 仿真實驗采用NS-2.34軟件平臺,鏈路環(huán)境設(shè)置如圖2所示。圖中的S表示源端,D代表目的端。發(fā)送的數(shù)據(jù)流包括基于TCP協(xié)議的數(shù)據(jù)流和基于UDP協(xié)議的數(shù)據(jù)流;兩端與路由節(jié)點之間的鏈路帶寬設(shè)置為2Mbs,傳輸延時為10ms;兩個路由節(jié)點之間的鏈路的帶寬和傳輸延時隨著實驗?zāi)康牡牟煌瑢l(fā)生變化。 圖2 鏈路環(huán)境A 在節(jié)點 R1處采集基于 TCP協(xié)議的數(shù)據(jù)報文的傳輸信息,所采集的信息根據(jù)返回鏈路上是否具有背景流,將分為兩類:一類是在返回鏈路(R→R1)上沒有背景流,以 S開頭表示此類,如:“Sdelay”等;另一類是返回鏈路上具有背景流,以D開頭表示此類,如:“Ddelay”等。 分別分析在這兩種情況下的數(shù)據(jù)報文的傳輸延時和吞吐量的關(guān)系,分析圖如圖3、圖4所示。通過圖3可以看出:在通信兩端之間的返回鏈路上不會出現(xiàn)鏈路擁塞狀況時,無論返回鏈路上是否具有競爭流,數(shù)據(jù)報文的傳輸延時的變化主要取決于源端到目的端之間的鏈路上的擁塞程度,而與返回鏈路上是否具有競爭流關(guān)系很小。同理,此時系統(tǒng)的數(shù)據(jù)報文的吞吐量大小的變化也主要取決于源端到目的端之間的鏈路上的擁塞程度,而與返回鏈路上是否具有競爭流關(guān)系很小。 在每種情況下,分別采集數(shù)據(jù)并分析相應(yīng)的數(shù)據(jù)報文傳輸延時以及吞吐量的大小情況,分析結(jié)果如圖5、圖6所示。通過圖可以看出,當返回鏈路上出現(xiàn)擁塞狀況或 ACK數(shù)據(jù)包丟失時,數(shù)據(jù)報文的傳輸延時將會隨之增大,與此同時,系統(tǒng)的吞吐量也明顯的降低。由此可以看出 ACK數(shù)據(jù)報文的傳輸延時會明顯的影響應(yīng)用數(shù)據(jù)包的傳輸延時和系統(tǒng)吞吐量的大小。 圖3 延時對比圖 圖4 吞吐量對比圖 圖5 延時對比圖 圖6 吞吐量對比圖 通過以上分析可以看出 ACK數(shù)據(jù)報文的傳輸狀態(tài)明顯的影響著網(wǎng)絡(luò)整體的性能。傳統(tǒng)的擁塞控制算法在研究過程中只注重源端到目的端之間的鏈路狀態(tài)對系統(tǒng)性能的影響,而沒有考慮返回鏈路的狀態(tài)對系統(tǒng)性能的影響,通過仿真實驗可以看出,在應(yīng)用相同的擁塞控制算法時,返回鏈路的傳輸狀態(tài)對基于 TCP協(xié)議的數(shù)據(jù)報文的傳輸延時以及吞吐量的大小的影響具有重要的作用。接下來的工作將進一步研究在 ACK數(shù)據(jù)報文傳輸狀態(tài)變化的情況下,設(shè)計更加靈活的主動隊列擁塞控制算法以提高網(wǎng)絡(luò)系統(tǒng)的性能,顯著地降低傳輸延時和提高吞吐量。 [1] Larry L. Peterson,Bruce S. Davie. 計算機網(wǎng)絡(luò)系統(tǒng)方法[M].機械工業(yè)出版社.2009. [2] W.Stevens.TCP Slow Start,Congestion Avoidance,Fast Retransmit,and Fast Recovery Algorithms,RFC 2001.January 1997. [3] 張少博,李鋼,康軍.基于神經(jīng)網(wǎng)絡(luò)監(jiān)督控制的擁塞控制算法研究[J].計算機應(yīng)用研究.2010. [4] 劉偉彥,孫雁飛等.一種參數(shù)自適應(yīng)的主動隊管理算法—自適應(yīng)BLUE[J].電子與信息學報.2009. [5] 劉明,竇文華等.主動隊列管理研究綜述[J].計算機工程.2006. [6] Yuanwei Jing*,Na Yu*, Zhi Kong.Active Queue Management Algorithm Based on Fuzzy Sliding Model Controller[C].Proceedings of the 17th World Congress, the International Federation of Automatic Control Seoul,Korea,July 6-11.2008. [7] Long Le,Jay Aikat.The Effects of Active Queue Management and Explicit Congestion Notification on Web Performance[C].IEEE/ACM Transactions on Networking.2005. [8] Sally Floyd. Ramakrishna Gummadi. Adaptive RED: An Algorithm for Increasing the Robustness of RED’s Active Queue Management [J]. AT&T Center for Internet Research at ICSI.2001. [9] 陳瑞柏.自適應(yīng)主動隊列管理算法的研究[D].南京理工大學.2009. [10] Athuraliya S., Lapsley D. E., Low S. H. Random early marking for Internet congestion control [J]. IEEE/ACM Transactions on Networking, Vol. 15, No:3, 2001. [11] 楊家海,吳建平,安常青.互聯(lián)網(wǎng)絡(luò)測量理論與應(yīng)用[M].北京:人民郵電出版社.2009. [12] 王暉,季振洲,孫彥東等.基于時間槽的自相似流量的隨機早檢測算法—SFRED [J].通信學報.2010. [13] 黃麗亞,王鎖萍.基于自相似業(yè)務(wù)流的Hurst加權(quán)隨機早檢測算法[J].通信學報.2007.2 ACK數(shù)據(jù)報文傳輸狀態(tài)引入
3 仿真實驗及結(jié)果
3.1 基于情況一與情況二的仿真與數(shù)據(jù)分析
3.2 基于情況三和情況四的仿真與數(shù)據(jù)分析
4 總結(jié)