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