高斌 譚敏生 陳瓊 趙慧
南華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 湖南 421001
在解決網(wǎng)絡(luò)擁塞問(wèn)題上,傳統(tǒng)的基于 TCP/IP協(xié)議的擁塞控制算法已無(wú)法有效、及時(shí)的解決當(dāng)前的網(wǎng)絡(luò)擁塞問(wèn)題,而基于主動(dòng)隊(duì)列的擁塞控制算法是當(dāng)前研究解決網(wǎng)絡(luò)擁塞問(wèn)題的主要方向之一。通過(guò)設(shè)置隊(duì)列可以吸收、暫存網(wǎng)絡(luò)中暫時(shí)無(wú)法處理的數(shù)據(jù)包,從而起到網(wǎng)絡(luò)擁塞調(diào)控的作用。較大的隊(duì)列能夠暫存較多的突發(fā)數(shù)據(jù)包、減少丟包率、提高網(wǎng)絡(luò)的吞吐量,但是同樣會(huì)增大數(shù)據(jù)包的排隊(duì)延時(shí)。相反,如果隊(duì)列的容量太小,則無(wú)法解決擁塞問(wèn)題。有效的隊(duì)列管理算法在緩解網(wǎng)絡(luò)擁塞問(wèn)題上具有重要的作用。RED(Random early Discard)隨機(jī)早丟棄算法作為當(dāng)前最流行的主動(dòng)擁塞控制算法在解決網(wǎng)絡(luò)擁塞問(wèn)題上已經(jīng)發(fā)揮了重要的作用,然而該算法自身的局限使得其并不能及時(shí)有效地解決網(wǎng)絡(luò)中出現(xiàn)的擁塞問(wèn)題,算法具有相對(duì)滯后性,且算法對(duì)參數(shù)的設(shè)置非常敏感。現(xiàn)有的一些主動(dòng)隊(duì)列擁塞控制算法大多是 RED算法的衍生,實(shí)現(xiàn)的基礎(chǔ)仍然是隊(duì)列長(zhǎng)度或平均隊(duì)列長(zhǎng)度。因此,這些算法在提高網(wǎng)絡(luò)整體性能上具有局限性。
時(shí)延是反映網(wǎng)絡(luò)性能的一個(gè)重要指標(biāo)。數(shù)據(jù)報(bào)文由源發(fā)送端到達(dá)目的接收端的過(guò)程中,數(shù)據(jù)報(bào)文所經(jīng)歷的延時(shí)一般包括傳輸時(shí)延、傳播時(shí)延、處理時(shí)延和排隊(duì)時(shí)延。對(duì)于長(zhǎng)度相同的數(shù)據(jù)報(bào)文通過(guò)同一條源端到目的端的路徑來(lái)說(shuō),傳輸時(shí)延、傳播時(shí)延和處理時(shí)延是固定的,這三部分又稱為固定時(shí)延。由于網(wǎng)絡(luò)流具有突發(fā)性,每個(gè)數(shù)據(jù)報(bào)文的排隊(duì)時(shí)延隨著網(wǎng)絡(luò)的狀況的變化而變化,因此,排隊(duì)時(shí)延又稱為變化時(shí)延。
本文將重點(diǎn)考慮往返延時(shí)(Round-Trip Time,RTT)中的ACK傳輸時(shí)延對(duì)網(wǎng)絡(luò)性能的影響。往返時(shí)延是由源、目端節(jié)點(diǎn)間的單向時(shí)延、目的節(jié)點(diǎn)間的處理時(shí)延和目、源端節(jié)點(diǎn)間的單向時(shí)延(ACK傳輸時(shí)延)組成的。往返時(shí)延對(duì)于設(shè)置重傳超時(shí)時(shí)間、源發(fā)送端的發(fā)送窗口的大小具有重要的實(shí)際意義。本文在原有擁塞控制算法的基礎(chǔ)上,將 ACK報(bào)文傳輸延遲引入到擁塞控制系統(tǒng)中,仿真實(shí)驗(yàn)表明:ACK傳輸延時(shí)的大小在很大程度上影響著網(wǎng)絡(luò)的吞吐量、數(shù)據(jù)包傳輸延遲等。
RED算法是由Van Jacobson和Sally Floyed 在1993年首次提出來(lái)的,算法設(shè)計(jì)目的是減小包丟失率和排隊(duì)延遲,避免全局源同步和獲得較高的鏈路利用率。其基本工作原理是在每個(gè)路由上監(jiān)視自己的隊(duì)列長(zhǎng)度,當(dāng)它檢測(cè)到擁塞即將發(fā)生時(shí),就按照一定概率選擇一個(gè)即將進(jìn)入緩沖隊(duì)列的數(shù)據(jù)包將其丟棄,工作原理如圖1所示,S為發(fā)送端,D為接收端,R1、R為路由節(jié)點(diǎn)。

圖1 RED工作原理圖
RED是采用加權(quán)的動(dòng)態(tài)平均值來(lái)計(jì)算平均隊(duì)列的長(zhǎng)度(AvgLen)。計(jì)算如下:Lenavg=(1-Weight)×Lenavg+Weight×SampleLen
其中:0<Weight<1,SampleLen是樣本測(cè)量時(shí)的隊(duì)列的長(zhǎng)度。由于網(wǎng)絡(luò)流量具有突發(fā)性,算法使用平均隊(duì)列長(zhǎng)度,不使用瞬時(shí)隊(duì)列長(zhǎng)度的原因是平均隊(duì)列長(zhǎng)度能夠更好的反映或者捕獲鏈路的擁塞狀況。
在RED隊(duì)列中存在兩個(gè)用于觸發(fā)某種特定活動(dòng)的閥值:Thresholdmin和Thresholdmax。
當(dāng)Lenavg 當(dāng) Thresholdmin<= Lenavg <Thresholdmax時(shí),計(jì)算概率P,并以概率P丟棄數(shù)據(jù)包; 當(dāng)Lenavg >=Thresholdmax時(shí),將到達(dá)的數(shù)據(jù)包或分組全部丟棄。 RED算法能夠在一定程度上減小了數(shù)據(jù)包的隊(duì)列排隊(duì)延時(shí)和丟包率,但該算法不是明確的將鏈路擁塞通知信息發(fā)送給發(fā)送端,而是通過(guò)設(shè)置標(biāo)志位或丟棄一個(gè)數(shù)據(jù)包隱式的通知發(fā)送端鏈路已發(fā)生擁塞,源發(fā)送端根據(jù)目的接收端發(fā)送的反饋信息來(lái)調(diào)整發(fā)送窗口大小,調(diào)整數(shù)據(jù)發(fā)送速率,從而實(shí)現(xiàn)擁塞控制。因此,在與源發(fā)送端協(xié)作上不具有協(xié)調(diào)性。這種不協(xié)調(diào)性主要體現(xiàn)在:當(dāng)節(jié)點(diǎn)發(fā)生擁塞時(shí),發(fā)送端并沒(méi)有及時(shí)的接收到擁塞信息,致使丟包。 由于發(fā)送端與接收端之間的鏈路具有非對(duì)稱性,因此,往返延時(shí)(RTT)的值隨著鏈路的狀態(tài)的變化而變化。RTT值的變化取決于以下兩個(gè)因素:(1)數(shù)據(jù)報(bào)文從發(fā)送端到接收端的傳送過(guò)程中的存儲(chǔ)轉(zhuǎn)發(fā)排隊(duì)延時(shí)的變化。排隊(duì)延時(shí)的大小取決于數(shù)據(jù)報(bào)文所在鏈路的擁塞程度。(2)數(shù)據(jù)報(bào)文確認(rèn)信息報(bào)文(ACK)從接收端到發(fā)送端傳輸過(guò)程中的存儲(chǔ)轉(zhuǎn)發(fā)排隊(duì)延時(shí)變化以及丟包等因素所造成的延時(shí)變化。 傳統(tǒng)的隊(duì)列擁塞控制的研究?jī)H僅考慮發(fā)送端到接收端之間的單向瓶頸鏈路的擁塞狀態(tài),而并沒(méi)有考慮接收端到發(fā)送端之間鏈路的擁塞狀態(tài),即:沒(méi)有考慮 ACK數(shù)據(jù)報(bào)文的延時(shí)或丟失對(duì)系統(tǒng)性能的影響。 本文將在以下四種情況下,分別研究RTT值對(duì)擁塞控制算法在提高網(wǎng)絡(luò)性能方面的影響,重點(diǎn)研究 ACK數(shù)據(jù)報(bào)文傳輸狀態(tài)對(duì)網(wǎng)絡(luò)性能的影響。 情況一、發(fā)送端到接收端的單向鏈路上不會(huì)出現(xiàn)瓶頸鏈路,返回鏈路上沒(méi)有競(jìng)爭(zhēng)數(shù)據(jù)流,而且反向鏈路上不會(huì)發(fā)生數(shù)據(jù)報(bào)文擁塞狀態(tài)。 情況二、發(fā)送端到接收端的單向鏈路上不會(huì)出現(xiàn)瓶頸鏈路,返回鏈路上有競(jìng)爭(zhēng)數(shù)據(jù)流,而且反向鏈路上不會(huì)發(fā)生數(shù)據(jù)報(bào)文擁塞狀態(tài)或ACK數(shù)據(jù)報(bào)文丟失。 情況三、發(fā)送端到接收端的單向鏈路上會(huì)出現(xiàn)瓶頸鏈路,但是反向鏈路上沒(méi)有競(jìng)爭(zhēng)數(shù)據(jù)流或者不會(huì)出現(xiàn) ACK數(shù)據(jù)報(bào)文丟失。 情況四、發(fā)送端與接收端之間的往返鏈路上都會(huì)出現(xiàn)瓶頸鏈路,而且都會(huì)出現(xiàn)鏈路擁塞狀態(tài)或數(shù)據(jù)報(bào)文丟失。 仿真實(shí)驗(yàn)采用NS-2.34軟件平臺(tái),鏈路環(huán)境設(shè)置如圖2所示。圖中的S表示源端,D代表目的端。發(fā)送的數(shù)據(jù)流包括基于TCP協(xié)議的數(shù)據(jù)流和基于UDP協(xié)議的數(shù)據(jù)流;兩端與路由節(jié)點(diǎn)之間的鏈路帶寬設(shè)置為2Mbs,傳輸延時(shí)為10ms;兩個(gè)路由節(jié)點(diǎn)之間的鏈路的帶寬和傳輸延時(shí)隨著實(shí)驗(yàn)?zāi)康牡牟煌瑢?huì)發(fā)生變化。 圖2 鏈路環(huán)境A 在節(jié)點(diǎn) R1處采集基于 TCP協(xié)議的數(shù)據(jù)報(bào)文的傳輸信息,所采集的信息根據(jù)返回鏈路上是否具有背景流,將分為兩類:一類是在返回鏈路(R→R1)上沒(méi)有背景流,以 S開頭表示此類,如:“Sdelay”等;另一類是返回鏈路上具有背景流,以D開頭表示此類,如:“Ddelay”等。 分別分析在這兩種情況下的數(shù)據(jù)報(bào)文的傳輸延時(shí)和吞吐量的關(guān)系,分析圖如圖3、圖4所示。通過(guò)圖3可以看出:在通信兩端之間的返回鏈路上不會(huì)出現(xiàn)鏈路擁塞狀況時(shí),無(wú)論返回鏈路上是否具有競(jìng)爭(zhēng)流,數(shù)據(jù)報(bào)文的傳輸延時(shí)的變化主要取決于源端到目的端之間的鏈路上的擁塞程度,而與返回鏈路上是否具有競(jìng)爭(zhēng)流關(guān)系很小。同理,此時(shí)系統(tǒng)的數(shù)據(jù)報(bào)文的吞吐量大小的變化也主要取決于源端到目的端之間的鏈路上的擁塞程度,而與返回鏈路上是否具有競(jìng)爭(zhēng)流關(guān)系很小。 在每種情況下,分別采集數(shù)據(jù)并分析相應(yīng)的數(shù)據(jù)報(bào)文傳輸延時(shí)以及吞吐量的大小情況,分析結(jié)果如圖5、圖6所示。通過(guò)圖可以看出,當(dāng)返回鏈路上出現(xiàn)擁塞狀況或 ACK數(shù)據(jù)包丟失時(shí),數(shù)據(jù)報(bào)文的傳輸延時(shí)將會(huì)隨之增大,與此同時(shí),系統(tǒng)的吞吐量也明顯的降低。由此可以看出 ACK數(shù)據(jù)報(bào)文的傳輸延時(shí)會(huì)明顯的影響應(yīng)用數(shù)據(jù)包的傳輸延時(shí)和系統(tǒng)吞吐量的大小。 圖3 延時(shí)對(duì)比圖 圖4 吞吐量對(duì)比圖 圖5 延時(shí)對(duì)比圖 圖6 吞吐量對(duì)比圖 通過(guò)以上分析可以看出 ACK數(shù)據(jù)報(bào)文的傳輸狀態(tài)明顯的影響著網(wǎng)絡(luò)整體的性能。傳統(tǒng)的擁塞控制算法在研究過(guò)程中只注重源端到目的端之間的鏈路狀態(tài)對(duì)系統(tǒng)性能的影響,而沒(méi)有考慮返回鏈路的狀態(tài)對(duì)系統(tǒng)性能的影響,通過(guò)仿真實(shí)驗(yàn)可以看出,在應(yīng)用相同的擁塞控制算法時(shí),返回鏈路的傳輸狀態(tài)對(duì)基于 TCP協(xié)議的數(shù)據(jù)報(bào)文的傳輸延時(shí)以及吞吐量的大小的影響具有重要的作用。接下來(lái)的工作將進(jìn)一步研究在 ACK數(shù)據(jù)報(bào)文傳輸狀態(tài)變化的情況下,設(shè)計(jì)更加靈活的主動(dòng)隊(duì)列擁塞控制算法以提高網(wǎng)絡(luò)系統(tǒng)的性能,顯著地降低傳輸延時(shí)和提高吞吐量。 [1] Larry L. Peterson,Bruce S. Davie. 計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)方法[M].機(jī)械工業(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].計(jì)算機(jī)應(yīng)用研究.2010. [4] 劉偉彥,孫雁飛等.一種參數(shù)自適應(yīng)的主動(dòng)隊(duì)管理算法—自適應(yīng)BLUE[J].電子與信息學(xué)報(bào).2009. [5] 劉明,竇文華等.主動(dòng)隊(duì)列管理研究綜述[J].計(jì)算機(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òng)隊(duì)列管理算法的研究[D].南京理工大學(xué).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ò)測(cè)量理論與應(yīng)用[M].北京:人民郵電出版社.2009. [12] 王暉,季振洲,孫彥東等.基于時(shí)間槽的自相似流量的隨機(jī)早檢測(cè)算法—SFRED [J].通信學(xué)報(bào).2010. [13] 黃麗亞,王鎖萍.基于自相似業(yè)務(wù)流的Hurst加權(quán)隨機(jī)早檢測(cè)算法[J].通信學(xué)報(bào).2007.2 ACK數(shù)據(jù)報(bào)文傳輸狀態(tài)引入
3 仿真實(shí)驗(yàn)及結(jié)果

3.1 基于情況一與情況二的仿真與數(shù)據(jù)分析
3.2 基于情況三和情況四的仿真與數(shù)據(jù)分析




4 總結(jié)