專利名稱:隨機和棄頭結(jié)合的被動隊列管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及隨機和棄頭結(jié)合的被動隊列管理的方法。
背景技術(shù):
TCP通過“慢啟動”、“擁塞避免”、“快速重傳”、“快速恢復” 4個算法設置不同 的參數(shù)來實現(xiàn)不同TCP擁塞控制,就是和式增加積式減少(AIMD,additive increase multiplicative decrease),TCP根據(jù)擁塞窗口來調(diào)整發(fā)送速度。瓶頸節(jié)點中最常用的隊列 管理策略是“棄尾”(Drop Tail),即隨著緩沖區(qū)的溢出而丟包,是一種被動隊列管理機制。 “棄尾”的缺陷包括數(shù)據(jù)流的全局同步,死鎖及持續(xù)隊滿造成的突發(fā)數(shù)據(jù)流被扼殺等。主動 隊列管理雖然可以有效地解決“全局同步”問題,但存在參數(shù)設置敏感,響應相對滯后于實 際網(wǎng)絡狀況的缺陷,其算法比較復雜。在實際使用中,復雜的算法給網(wǎng)絡設備帶來很大的開 銷,中間節(jié)點的性能下降,反而加重了網(wǎng)絡擁塞,所以目前各種主動隊列管理算法并沒有在 網(wǎng)絡上大量使用。
發(fā)明內(nèi)容
本發(fā)明的目的就是采用隨機和棄頭結(jié)合的被動隊列管理的方法,網(wǎng)絡發(fā)生擁塞, 瓶頸節(jié)點隊列滿時,先從瓶頸節(jié)點隊列頭部丟棄一個數(shù)據(jù)包,然后再在隊列中隨機丟棄一 個數(shù)據(jù)包,能有效改善公平性,消除全局同步和死鎖,提高網(wǎng)絡傳輸性能,并且算法計算量 小。由于是在瓶頸節(jié)點隊列滿時才丟棄數(shù)據(jù)包,所以是一種被動式隊列管理的方法。為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是當瓶頸節(jié)點隊列滿時,先從瓶頸節(jié)點隊列頭部丟棄一個數(shù)據(jù)包,然后再計算一個1 到當前隊列長度減1的隨機數(shù),再丟棄位于該隨機數(shù)的數(shù)據(jù)包。采用隨機和棄頭結(jié)合丟包 主要是因為(1)瓶頸節(jié)點隊列滿時,說明擁塞比較嚴重,因此只丟棄1個數(shù)據(jù)包是不夠的, 如果同時丟棄2個數(shù)據(jù)包,就能盡快地讓更多的發(fā)送端檢測到網(wǎng)絡擁塞而減少發(fā)送速度, 來減輕擁塞狀況;(2)棄頭方式比其它數(shù)據(jù)包丟棄方式而言,能盡快地通知發(fā)送端網(wǎng)絡已 經(jīng)擁塞;(3)同時采用隨機丟包時,如果一個TCP鏈接在隊列中的數(shù)據(jù)包個數(shù)為η個,隊列 最大長度為Q個數(shù)據(jù)包,則該TCP鏈接被丟包的概率為n/Q,對占據(jù)隊列較多的TCP鏈接有 更好的懲罰作用,改善公平性。瓶頸節(jié)點具體操作步驟如下Q表示瓶頸節(jié)點隊列的最大長度,q表示當前瓶頸節(jié)點隊列長度。(1)判斷是否有新的數(shù)據(jù)包要進入瓶頸節(jié)點隊列,如果否則還是在第(6)步,如果 是則到第(2)步;(2)判斷是否q≥Q-1,如果是則到第(3)步,如果否則到第(7)步;(3)丟棄隊列最前面的一個數(shù)據(jù)包;(4)調(diào)用隨機函數(shù)計算得到[1,q-2]之間的隨機數(shù);(5)丟棄位于步驟(4)計算得到的隨機數(shù)位置的數(shù)據(jù)包;(6)新數(shù)據(jù)包進入瓶頸節(jié)點隊列,然后再到第⑴步。
本發(fā)明方法能避免全局同步和死鎖,改善網(wǎng)絡傳輸?shù)墓叫?,提高網(wǎng)絡資源的利 用率。該方法簡單,適合在現(xiàn)有的hternet上使用。
圖1是本發(fā)明方法的流程圖;圖2是本發(fā)明方法進行測試的網(wǎng)絡拓撲;
具體實施例方式下面結(jié)合附圖對本發(fā)明作進一步詳細說明。本發(fā)明中Q表示瓶頸節(jié)點隊列的最大長度,q表示當前瓶頸節(jié)點隊列長度。(1)判斷是否有新的數(shù)據(jù)包要進入瓶頸節(jié)點隊列,如果否則還是在第(6)步,如果 是則到第(2)步;(2)判斷是否q彡Q-I,如果是則到第(3)步,如果否則到第(7)步;(3)丟棄隊列最前面的一個數(shù)據(jù)包;(4)調(diào)用隨機函數(shù)計算得到[1,q-2]之間的隨機數(shù);(5)丟棄位于步驟⑷計算得到的隨機數(shù)位置的數(shù)據(jù)包;(6)新數(shù)據(jù)包進入頻率節(jié)點隊列,然后再到第⑴步。圖2是本發(fā)明方法的測試網(wǎng)絡環(huán)境,RO為瓶頸節(jié)點,瓶頸鏈路位于節(jié)點RO和節(jié)點 Rl之間,鏈路容量12Mbps,延時15ms,分別采用不同的隊列管理,緩存大小為30packetS ;節(jié) 點Si均為持久性FTP業(yè)務源,他們與節(jié)點RO之間的鏈路容量均為20Mbps,延時15ms,向目 標節(jié)點Di發(fā)送數(shù)據(jù);節(jié)點Di與節(jié)點Rl之間的鏈路容量均為20Mbps,延時15ms ;數(shù)據(jù)包均 為1040Byte (包括40Byte包頭)。接收端Di的窗口設置足夠大,使得TCP發(fā)送僅受擁塞窗 口 Cwnd控制。表1是本發(fā)明方法圖1實施例與棄尾被動隊列管理、RED主動隊列管理、單獨棄頭 被動隊列管理、單獨隨機丟包被動隊列管理方法在圖2網(wǎng)絡環(huán)境下進行比對,設置發(fā)送節(jié) 點S的個數(shù)分別為2、4、6、8、10,接收節(jié)點D的個數(shù)與發(fā)送節(jié)點相同,統(tǒng)計80s內(nèi)瓶頸鏈路 RO到Rl傳輸?shù)挠行О鼈€數(shù)。本發(fā)明方法的效率要高于棄尾被動隊列管理、RED主動隊列 管理、單獨棄頭被動隊列管理、單獨隨機丟包被動隊列管理。特別是在2個發(fā)送節(jié)點時,本 發(fā)明的方法傳輸有效數(shù)據(jù)包比棄尾被動隊列管理、RED主動隊列管理、單獨棄頭被動隊列管 理、單獨隨機丟包被動隊列管理分別高出8^^15.4^3.8^^6.3 ^本發(fā)明方法能有效提 高網(wǎng)絡的傳輸效率。表 權(quán)利要求
1. 一種隨機和棄頭結(jié)合的被動隊列管理的方法,在網(wǎng)絡發(fā)生擁塞,瓶頸節(jié)點隊列滿時, 先從瓶頸節(jié)點隊列頭部丟棄一個數(shù)據(jù)包,然后再在隊列中隨機丟棄一個數(shù)據(jù)包,其特征是, 對于瓶頸節(jié)點具體操作步驟如下Q表示瓶頸節(jié)點隊列的最大長度,q表示當前瓶頸節(jié)點隊列長度;(1)判斷是否有新的數(shù)據(jù)包要進入瓶頸節(jié)點隊列,如果否則還是在第(6)步,如果是則 到第⑵步;(2)判斷是否q^ Q-1,如果是則到第(3)步,如果否則到第(7)步;(3)丟棄隊列最前面的一個數(shù)據(jù)包;(4)調(diào)用隨機函數(shù)計算得到[1,q-2]之間的隨機數(shù);(5)丟棄位于步驟(4)計算得到的隨機數(shù)位置的數(shù)據(jù)包;(6)新數(shù)據(jù)包進入瓶頸節(jié)點隊列,然后再到第(1)步。
全文摘要
本發(fā)明公開了一種隨機和棄頭結(jié)合的被動隊列管理的方法,網(wǎng)絡發(fā)生擁塞,瓶頸節(jié)點隊列滿時,先從瓶頸節(jié)點隊列頭部丟棄一個數(shù)據(jù)包,然后再在隊列中隨機丟棄一個數(shù)據(jù)包,能有效改善公平性,消除全局同步和死鎖,提高網(wǎng)絡傳輸性能,并且該方法計算量小。
文檔編號H04L12/56GK102088414SQ201110052820
公開日2011年6月8日 申請日期2011年3月7日 優(yōu)先權(quán)日2011年3月7日
發(fā)明者姜文剛, 孫金生, 尚婕, 王執(zhí)銓 申請人:江蘇科技大學