專利名稱:入隊(duì)處理方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種入隊(duì)處理方法及設(shè)備。
背景技術(shù):
擁塞避免是在網(wǎng)絡(luò)發(fā)生擁塞時(shí),按照某種丟棄策略丟棄報(bào)文,以避免擁塞的發(fā)生。 隊(duì)列尾丟棄(Tail-Drop,簡(jiǎn)稱TD)是一種常用的被動(dòng)式擁塞避免機(jī)制。傳統(tǒng)的交換機(jī)通常都使用隊(duì)列尾丟棄避免擁塞。現(xiàn)有隊(duì)列尾丟棄的基本方法是,隊(duì)列的當(dāng)前深度超過(guò)隊(duì)列的尾丟棄閾值(Tail-Drop Threshold,簡(jiǎn)稱TDTH)時(shí)將當(dāng)前正準(zhǔn)備入隊(duì)的報(bào)文丟棄掉,即緩存報(bào)文數(shù)目超過(guò)隊(duì)列允許緩存的最大數(shù)目時(shí)將當(dāng)前正準(zhǔn)備入隊(duì)的報(bào)文論丟棄掉。入隊(duì)前均勻分布的多條流按順序進(jìn)入同一隊(duì)列時(shí),若入隊(duì)帶寬大于出隊(duì)帶寬,隊(duì)列會(huì)處于擁塞狀態(tài),從而流到達(dá)時(shí)因隊(duì)列的當(dāng)前深度超過(guò)隊(duì)列的尾丟棄閾值而被丟棄。每條流入隊(duì)的概率取決于流到達(dá)隊(duì)列的時(shí)刻和出隊(duì)時(shí)刻的相對(duì)關(guān)系。而對(duì)于入隊(duì)前均勻分布的多條流,入隊(duì)時(shí)流分布規(guī)律固定,相應(yīng)地流到達(dá)隊(duì)列的時(shí)刻和出隊(duì)時(shí)刻的相對(duì)關(guān)系也是固定的。從而會(huì)導(dǎo)致部分流每次到達(dá)時(shí),隊(duì)列的深度都沒有超過(guò)隊(duì)列的尾丟棄閾值而被加入隊(duì)列;而其它流每次到達(dá)時(shí)都會(huì)因隊(duì)列的深度超過(guò)隊(duì)列的尾丟棄閾值而不能入隊(duì),即有的流的入隊(duì)概率大于其它流的入隊(duì)概率。因此,按隊(duì)列尾丟棄方法處理多條流入同一個(gè)隊(duì)列時(shí),在隊(duì)列擁塞的情況下,會(huì)產(chǎn)生入隊(duì)后流間分布不均勻的現(xiàn)象。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種入隊(duì)處理方法及設(shè)備,用以解決現(xiàn)有技術(shù)中多條流入同一個(gè)隊(duì)列時(shí),在隊(duì)列擁塞的情況下會(huì)產(chǎn)生入隊(duì)后流間分布不均勻的缺陷。本發(fā)明實(shí)施例提供一種入隊(duì)處理方法,包括接收請(qǐng)求加入隊(duì)列的報(bào)文;確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí), 或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為所述隊(duì)列允許緩存報(bào)文的總空間數(shù)與所述隊(duì)列中已占用的空間數(shù)的差值,所述空閑空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù),所述已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值;確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。本發(fā)明實(shí)施例提供一種入隊(duì)處理設(shè)備,包括接收模塊,用于接收請(qǐng)求加入隊(duì)列的報(bào)文;空間判斷模塊,用于判斷所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)是否大于零且小于等于空閑空間閾值,或者,判斷隊(duì)列中已占用空間的空間數(shù)是否大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù);隨機(jī)丟棄判斷模塊,用于確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為所述隊(duì)列允許緩存報(bào)文的總空間數(shù)與所述隊(duì)列中已占用的空間數(shù)的差值;所述空閑空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù),所述已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值;入隊(duì)模塊,用于確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。。本發(fā)明實(shí)施例提供的入隊(duì)處理方法及設(shè)備,通過(guò)比較隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)和空閑空間閾值,或比較隊(duì)列中已占用空間的空間數(shù)和該隊(duì)列的已占用空間閾值,確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)。確定隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí),為避免隊(duì)列進(jìn)入擁塞狀態(tài),隨機(jī)丟棄當(dāng)前等待入隊(duì)的報(bào)文。分布均勻的多個(gè)流同時(shí)進(jìn)入一個(gè)隊(duì)列情況下,由于入隊(duì)時(shí)流分布規(guī)律固定,流到達(dá)隊(duì)列的時(shí)刻和出隊(duì)時(shí)刻的相對(duì)關(guān)系也是固定的,在隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí)開始隨機(jī)丟棄等待入隊(duì)的報(bào)文,可避免有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被丟棄而有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被加入隊(duì)列的現(xiàn)象,使得每條流進(jìn)入隊(duì)列的概率相同,從而隊(duì)列內(nèi)各個(gè)流的分布趨于均勻。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種入隊(duì)處理方法流程圖;圖2A為本發(fā)明實(shí)施例提供的另一種入隊(duì)處理方法流程圖;圖2B為本發(fā)明實(shí)施例提供的又一種入隊(duì)處理方法流程圖;圖3為本發(fā)明實(shí)施例提供的一種入隊(duì)處理設(shè)備實(shí)施例結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的另一種入隊(duì)處理設(shè)備實(shí)施例結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的又一種入隊(duì)處理設(shè)備實(shí)施例結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例提供的再一種入隊(duì)處理設(shè)備實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。將本發(fā)明實(shí)施例提供的入隊(duì)處理方法應(yīng)用于電信設(shè)備入網(wǎng)測(cè)試,可在多條流同時(shí)進(jìn)入一個(gè)隊(duì)列時(shí),使入隊(duì)后各流的分布趨于均勻。另外,本發(fā)明實(shí)施例提供的入隊(duì)處理方法還可解決現(xiàn)網(wǎng)擁塞時(shí)微觀上同一端口聽多個(gè)用戶數(shù)據(jù)流不均勻的問題,提升用戶QoS體驗(yàn)。以下實(shí)施例中的入隊(duì)處理設(shè)備可以使用現(xiàn)場(chǎng)可編程門陣列(FPGA)或者專用集成電路 (ASIC)實(shí)現(xiàn),也可以使用軟件實(shí)現(xiàn)。
圖1為本發(fā)明實(shí)施例提供的一種入隊(duì)處理方法流程圖。如圖1所示,本實(shí)施例包括步驟11 入隊(duì)處理設(shè)備接收請(qǐng)求加入隊(duì)列的報(bào)文。步驟12 入隊(duì)處理設(shè)備確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。其中,隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為隊(duì)列允許緩存報(bào)文的總空間數(shù)與隊(duì)列中已占用的空間數(shù)的差值,已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值。步驟13 在確定不丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文時(shí),入隊(duì)處理設(shè)備將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。當(dāng)前允許緩存報(bào)文的空閑空間數(shù)可通過(guò)計(jì)算隊(duì)列允許緩存報(bào)文的總空間數(shù)與隊(duì)列中已占用空間的空間數(shù)的差值得到。允許緩存報(bào)文的總空間數(shù)即為現(xiàn)有TD方法中TDTH, TDTH小于隊(duì)列緩存的總空間數(shù)。隊(duì)列中已占用空間的空間數(shù)表示當(dāng)前隊(duì)列緩存空間的實(shí)際占用數(shù)即當(dāng)前隊(duì)列的深度,也可理解為隊(duì)列中已緩存的報(bào)文數(shù),用CQDP表示隊(duì)列中已占用空間的空間數(shù)。在接收到請(qǐng)求入隊(duì)的報(bào)文時(shí),一種入隊(duì)處理方法是,首先計(jì)算隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)(TDTH-CQDP)??臻e空間閾值N為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù)。然后,通過(guò)比較隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)和空閑空間閾值,可確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)或是否已處于擁塞狀態(tài)。隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),確定隊(duì)列當(dāng)前臨近于擁塞狀態(tài)。為避免隊(duì)列進(jìn)入擁塞狀態(tài),通過(guò)隨機(jī)數(shù)確定是否丟棄當(dāng)前等待入隊(duì)的報(bào)文。即在隊(duì)列臨近于擁塞狀態(tài)時(shí),隨機(jī)丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于空閑空間閾值時(shí),確定隊(duì)列當(dāng)前還沒有臨近擁塞狀態(tài),確定不丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文,將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入所述隊(duì)列。 所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)等于零時(shí),表明隊(duì)列已沒有空閑空間,確定隊(duì)列當(dāng)前已處于擁塞狀態(tài),確定丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。接收到請(qǐng)求入隊(duì)的報(bào)文時(shí),另一種入隊(duì)處理方法是,將隊(duì)列中已占用空間的空間數(shù)與該隊(duì)列的已占用空間閾值進(jìn)行比較,以確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)或是否已處于擁塞狀態(tài)。其中,已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值。如果隊(duì)列中已占用空間的空間數(shù)小于已占用空間閾值,確定隊(duì)列當(dāng)前還沒有臨近擁塞狀態(tài),確定不丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文,將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入所述隊(duì)列;如果等于隊(duì)列允許緩存報(bào)文的總空間數(shù),表明隊(duì)列已沒有空閑空間,則確定隊(duì)列當(dāng)前已處于擁塞狀態(tài), 確定丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文;如果隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù),確定隊(duì)列當(dāng)前臨近于擁塞狀態(tài)。為避免隊(duì)列進(jìn)入擁塞狀態(tài),通過(guò)隨機(jī)數(shù)確定是否丟棄當(dāng)前等待入隊(duì)的報(bào)文。即在隊(duì)列臨近于擁塞狀態(tài)時(shí),隨機(jī)丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。隊(duì)列中已占用空間的空間數(shù)與隊(duì)列允許緩存報(bào)文的總空間數(shù)。本發(fā)明實(shí)施例提供的入隊(duì)處理方法,通過(guò)比較隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)和空閑空間閾值,或比較隊(duì)列中已占用空間的空間數(shù)和該隊(duì)列的已占用空間閾值,確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)。確定隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí),為避免隊(duì)列進(jìn)入擁塞狀態(tài),隨機(jī)丟棄當(dāng)前等待入隊(duì)的報(bào)文。分布均勻的多個(gè)流同時(shí)進(jìn)入一個(gè)隊(duì)列情況下,由于入隊(duì)時(shí)流分布規(guī)律固定,流到達(dá)隊(duì)列的時(shí)刻和出隊(duì)時(shí)刻的相對(duì)關(guān)系也是固定的,在隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí)開始隨機(jī)丟棄等待入隊(duì)的報(bào)文,可避免有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被丟棄而有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被加入隊(duì)列的現(xiàn)象,使得每條流進(jìn)入隊(duì)列的概率相同,從而隊(duì)列內(nèi)各個(gè)流的分布趨于均勻。圖2A為本發(fā)明實(shí)施例提供的另一種入隊(duì)處理方法流程圖。本實(shí)施例通過(guò)比較隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)和空閑空間閾值,確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)或是否已處于擁塞狀態(tài),如圖2A所示,本實(shí)施例包括步驟21 接收請(qǐng)求入隊(duì)的報(bào)文。步驟22 計(jì)算隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)(TDTH-CQDP)。步驟23 判斷隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)是否等于零。若是執(zhí)行步驟 27,否則執(zhí)行步驟M。隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)等于零,確定隊(duì)列當(dāng)前已處于擁塞狀態(tài), 丟棄請(qǐng)求入隊(duì)的報(bào)文。步驟M 判斷隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)是否小于等于空閑空間閾值N。若是執(zhí)行步驟25,否則執(zhí)行步驟觀??臻e空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù)??筛鶕?jù)具體需求設(shè)定空閑空間閾值。隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于空閑空間閾值,確定隊(duì)列當(dāng)前剩余的允許緩存報(bào)文的空閑還較多,還沒有臨近擁塞狀態(tài),因此將上述報(bào)文加入隊(duì)列。隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)小于等于空閑空間閾值,確定隊(duì)列當(dāng)前臨近擁塞狀態(tài),以下通過(guò)隨機(jī)數(shù)確定是否丟棄上述報(bào)文。步驟25 通過(guò)隨機(jī)數(shù)產(chǎn)生器產(chǎn)生隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)和所述隨機(jī)數(shù)發(fā)生器的隨機(jī)周期,確定產(chǎn)生隨機(jī)數(shù)的隨機(jī)概率。步驟沈判斷隨機(jī)概率是否達(dá)到預(yù)設(shè)丟棄概率。若是執(zhí)行步驟27,否則執(zhí)行步驟 28。若所述隨機(jī)概率達(dá)到預(yù)設(shè)丟棄概率,丟棄請(qǐng)求入隊(duì)的報(bào)文。若所述隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,將請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。步驟27 丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。步驟28 將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。例如,隨機(jī)數(shù)產(chǎn)生器可產(chǎn)生的隨機(jī)數(shù)為“1到255”之間的任一整數(shù),隨機(jī)數(shù)產(chǎn)生器的隨機(jī)周期為256,預(yù)設(shè)丟棄概率為50%。在確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)小于等于空閑空間閾值時(shí),啟動(dòng)該隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)。若產(chǎn)生的隨機(jī)數(shù)為100,隨機(jī)概率(隨機(jī)概率=隨機(jī)數(shù)/隨機(jī)周期)為(100/256) X 100%,即隨機(jī)概率小于50%,因此隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,將上述報(bào)文加入隊(duì)列。空閑空間閾值建議值為1,預(yù)設(shè)丟棄概率建議值為50%。根據(jù)不同的應(yīng)用場(chǎng)景,配置空閑空間閾值N、預(yù)設(shè)丟棄概率P和隨機(jī)數(shù)產(chǎn)生器的種子,從而達(dá)到更好的入隊(duì)效果。例如,在測(cè)試場(chǎng)景下有K條流入同一個(gè)隊(duì)列,那么配置空閑空間閾值N= 1,預(yù)設(shè)丟棄概率P= 1/K,在隊(duì)列將滿時(shí),每條流有相同的機(jī)會(huì)入隊(duì),從而達(dá)到均勻的目的。又例如在網(wǎng)絡(luò)應(yīng)用中可根據(jù)網(wǎng)絡(luò)規(guī)劃某端口某隊(duì)列的用戶數(shù),配置N和P。另外,通過(guò)隨機(jī)數(shù)確定是否丟棄上述報(bào)文時(shí),還可采用以下方法首先配置一個(gè)預(yù)設(shè)丟棄隨機(jī)數(shù),該預(yù)設(shè)丟棄隨機(jī)數(shù)等于預(yù)設(shè)隨機(jī)周期X預(yù)設(shè)丟棄概率。如圖2B所示,在步驟M之后包括步驟四啟動(dòng)隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)。步驟210 判斷隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)是否達(dá)到預(yù)設(shè)丟棄隨機(jī)數(shù)。若是, 則執(zhí)行步驟27,否則執(zhí)行步驟28。在確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)小于等于空閑空間閾值時(shí),啟動(dòng)該隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)。若隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)丟棄隨機(jī)數(shù),確定丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。若隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的隨機(jī)數(shù)未達(dá)到預(yù)設(shè)丟棄隨機(jī)數(shù),將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。例如,隨機(jī)數(shù)產(chǎn)生器可產(chǎn)生的隨機(jī)數(shù)為“1到255”之間的任一整數(shù),預(yù)設(shè)隨機(jī)周期為256,預(yù)設(shè)隨機(jī)丟棄數(shù)為50%。預(yù)設(shè)丟棄隨機(jī)數(shù)為256X50%= 128。若產(chǎn)生的隨機(jī)數(shù)為 100,100小于128,即隨機(jī)數(shù)未達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù),將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。如果通過(guò)隊(duì)列中已占用空間的空間數(shù)判斷隊(duì)列是否臨近擁塞狀態(tài),上具體隊(duì)列處理過(guò)程如下接收到請(qǐng)求入隊(duì)的報(bào)文時(shí),首先判斷隊(duì)列中已占用空間的空間數(shù)是否等于隊(duì)列允許緩存報(bào)文的總空間數(shù),如果是,則丟棄當(dāng)前請(qǐng)求隊(duì)列的報(bào)文。否則,進(jìn)一步判斷隊(duì)列中已占用空間的空間數(shù)是否小于等于該隊(duì)列的已占用空間閾值。如果隊(duì)列中已占用空間的空間數(shù)大于該隊(duì)列的已占用空間閾值,則將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。如果隊(duì)列中已占用空間的空間數(shù)小于等于該隊(duì)列的已占用空間閾值,則通過(guò)隨機(jī)數(shù)產(chǎn)生器產(chǎn)生隨機(jī)數(shù), 根據(jù)所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)和所述隨機(jī)數(shù)發(fā)生器的隨機(jī)周期,確定產(chǎn)生隨機(jī)數(shù)的隨機(jī)概率。若所述隨機(jī)概率達(dá)到預(yù)設(shè)丟棄概率,丟棄請(qǐng)求入隊(duì)的報(bào)文。若所述隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,將請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。在隊(duì)列中已占用空間的空間數(shù)小于等于該隊(duì)列的已占用空間閾值時(shí),也可采用以下方法處理啟動(dòng)該隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)。若隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)丟棄隨機(jī)數(shù),確定丟棄當(dāng)前請(qǐng)求入隊(duì)的報(bào)文。 若隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的隨機(jī)數(shù)未達(dá)到預(yù)設(shè)丟棄隨機(jī)數(shù),將當(dāng)前請(qǐng)求入隊(duì)的報(bào)文加入隊(duì)列。圖3為本發(fā)明實(shí)施例提供的一種入隊(duì)處理設(shè)備結(jié)構(gòu)示意圖。如圖3所示,本實(shí)施例包括接收模塊31,用于接收請(qǐng)求加入隊(duì)列的報(bào)文??臻g判斷模塊32,用于接收模塊31接收到請(qǐng)求加入隊(duì)列的報(bào)文后,判斷所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)是否大于零且小于等于空閑空間閾值,或者,判斷隊(duì)列中已占用空間的空間數(shù)是否大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)。隨機(jī)丟棄判斷模塊33,用于空間判斷模塊32確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為所述隊(duì)列允許緩存報(bào)文的總空間數(shù)與所述隊(duì)列中已占用的空間數(shù)的差值;所述空閑空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù),所述已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值。入隊(duì)模塊34,用于隨機(jī)丟棄判斷模塊33確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。進(jìn)一步,如圖4所示,還包括確定模塊35。確定模塊35,用于空間判斷模塊32確定所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于空閑空間閾值時(shí),或者,所述隊(duì)列中已占用空間的空間數(shù)小于所述已占用空間閾值時(shí),確定不丟棄所述報(bào)文,將所述報(bào)文加入所述隊(duì)列。入隊(duì)模塊34,還用于確定模塊35確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。上述各模塊的工作機(jī)理可參見圖1對(duì)應(yīng)實(shí)施例中描述,在此不再贅述。本發(fā)明實(shí)施例提供的入隊(duì)處理設(shè)備,通過(guò)比較隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)和空閑空間閾值,確定隊(duì)列當(dāng)前是否臨近于擁塞狀態(tài)。確定隊(duì)列當(dāng)前臨近于擁塞狀態(tài)。 為避免隊(duì)列進(jìn)入擁塞狀態(tài),隨機(jī)丟棄當(dāng)前等待入隊(duì)的報(bào)文。分布均勻的多個(gè)流同時(shí)進(jìn)入一個(gè)隊(duì)列情況下,由于入隊(duì)時(shí)流分布規(guī)律固定,流到達(dá)隊(duì)列的時(shí)刻和出隊(duì)時(shí)刻的相對(duì)關(guān)系也是固定的,在隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí)開始隨機(jī)丟棄等待入隊(duì)的報(bào)文,可避免有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被丟棄而有的流每次請(qǐng)求加入隊(duì)列時(shí)都會(huì)被加入隊(duì)列的現(xiàn)象,使得每條流進(jìn)入隊(duì)列的概率相同,從而隊(duì)列內(nèi)各個(gè)流的分布趨于均勻。圖5為本發(fā)明實(shí)施例提供的又一種入隊(duì)處理設(shè)備結(jié)構(gòu)示意圖。如圖5所示,在圖3 或圖4基礎(chǔ)上,隨機(jī)丟棄判斷模塊33包括隨機(jī)概率確定單元331、丟棄概率判斷單元332 和第一隨機(jī)丟棄確定單元333。隨機(jī)概率確定單元331,用于根據(jù)所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)和所述隨機(jī)數(shù)發(fā)生器的隨機(jī)周期,確定產(chǎn)生所述隨機(jī)數(shù)的隨機(jī)概率。丟棄概率判斷單元332,用于判斷隨機(jī)概率確定單元331確定的所述隨機(jī)概率是否達(dá)到預(yù)設(shè)丟棄概率。第一隨機(jī)丟棄確定單元333,用于若丟棄概率判斷單元332確定所述隨機(jī)概率達(dá)到預(yù)設(shè)丟棄概率,確定丟棄所述報(bào)文;若丟棄概率判斷單元332確定所述隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,確定不丟棄所述報(bào)文。本實(shí)施例將隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)的隨機(jī)概率與預(yù)設(shè)隨機(jī)丟棄概率進(jìn)行比較,確定是否丟棄當(dāng)前請(qǐng)求加入隊(duì)列的報(bào)文。上述各模塊的工作機(jī)理可參見圖2A對(duì)應(yīng)實(shí)施例中描述,在此不再贅述。圖6為本發(fā)明實(shí)施例提供的再一種入隊(duì)處理設(shè)備結(jié)構(gòu)示意圖。如圖6所示,在圖 3或圖4基礎(chǔ)上,隨機(jī)丟棄判斷模塊33包括隨機(jī)丟棄數(shù)判斷單元334和第二隨機(jī)丟棄確定單元335。隨機(jī)丟棄數(shù)判斷單元334,用于判斷所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù)。第二隨機(jī)丟棄確定單元335,用于若隨機(jī)丟棄數(shù)判斷單元334確定所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù),確定丟棄所述報(bào)文;若隨機(jī)丟棄數(shù)判斷單元 334確定所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)未達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù),確定不丟棄所述報(bào)文。
本實(shí)施例將隨機(jī)數(shù)產(chǎn)生器產(chǎn)生一隨機(jī)數(shù)的隨機(jī)概率與預(yù)設(shè)隨機(jī)數(shù)進(jìn)行比較,確定是否丟棄當(dāng)前請(qǐng)求加入隊(duì)列的報(bào)文。上述各模塊的工作機(jī)理可參見圖2B對(duì)應(yīng)實(shí)施例中描述,在此不再贅述。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種入隊(duì)處理方法,其特征在于,包括 接收請(qǐng)求加入隊(duì)列的報(bào)文;確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為所述隊(duì)列允許緩存報(bào)文的總空間數(shù)與所述隊(duì)列中已占用的空間數(shù)的差值,所述空閑空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù),所述已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值; 確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述接收請(qǐng)求加入隊(duì)列的報(bào)文之后,還包括所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于空閑空間閾值時(shí),確定不丟棄所述報(bào)文,將所述報(bào)文加入所述隊(duì)列;或者,所述隊(duì)列中已占用空間的空間數(shù)小于所述已占用空間閾值時(shí),確定不丟棄所述報(bào)文, 將所述報(bào)文加入所述隊(duì)列。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文包括根據(jù)所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)和所述隨機(jī)數(shù)發(fā)生器的隨機(jī)周期,確定產(chǎn)生所述隨機(jī)數(shù)的隨機(jī)概率;若所述隨機(jī)概率達(dá)到預(yù)設(shè)丟棄概率,確定丟棄所述報(bào)文; 若所述隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,確定不丟棄所述報(bào)文。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文包括判斷所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù);若所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到所述預(yù)設(shè)隨機(jī)丟棄數(shù),確定丟棄所述報(bào)文;若所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)未達(dá)到所述預(yù)設(shè)隨機(jī)丟棄數(shù),確定不丟棄所述報(bào)文。
5.一種入隊(duì)處理設(shè)備,其特征在于,包括 接收模塊,用于接收請(qǐng)求加入隊(duì)列的報(bào)文;空間判斷模塊,用于判斷所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)是否大于零且小于等于空閑空間閾值,或者,判斷隊(duì)列中已占用空間的空間數(shù)是否大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù);隨機(jī)丟棄判斷模塊,用于確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)為所述隊(duì)列允許緩存報(bào)文的總空間數(shù)與所述隊(duì)列中已占用的空間數(shù)的差值;所述空閑空間閾值為開始隨機(jī)丟棄報(bào)文時(shí)隊(duì)列的空閑空間數(shù),所述已占用空間閾值為隊(duì)列允許緩存報(bào)文的總空間數(shù)與空閑空間閾值的差值;入隊(duì)模塊,用于確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。
6.根據(jù)權(quán)利要求5所述入隊(duì)處理設(shè)備,其特征在于,還包括確定模塊,用于所述隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于空閑空間閾值時(shí),或者,所述隊(duì)列中已占用空間的空間數(shù)小于所述已占用空間閾值時(shí),確定不丟棄所述報(bào)文,將所述報(bào)文加入所述隊(duì)列。
7.根據(jù)權(quán)利要求5或6所述入隊(duì)處理設(shè)備,其特征在于,所述隨機(jī)丟棄判斷模塊包括 隨機(jī)概率確定單元,用于根據(jù)所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)和所述隨機(jī)數(shù)發(fā)生器的隨機(jī)周期,確定產(chǎn)生所述隨機(jī)數(shù)的隨機(jī)概率;丟棄概率判斷單元,用于判斷所述隨機(jī)概率是否達(dá)到預(yù)設(shè)丟棄概率; 第一隨機(jī)丟棄確定單元,用于若所述隨機(jī)概率達(dá)到預(yù)設(shè)丟棄概率,確定丟棄所述報(bào)文; 若所述隨機(jī)概率未達(dá)到預(yù)設(shè)丟棄概率,確定不丟棄所述報(bào)文。
8.根據(jù)權(quán)利要求5或6所述入隊(duì)處理設(shè)備,其特征在于,所述隨機(jī)丟棄判斷模塊包括 隨機(jī)丟棄數(shù)判斷單元,用于判斷所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù);第二隨機(jī)丟棄確定單元,用于若所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù),確定丟棄所述報(bào)文;若所述隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)未達(dá)到預(yù)設(shè)隨機(jī)丟棄數(shù), 確定不丟棄所述報(bào)文。
全文摘要
本發(fā)明提供一種入隊(duì)處理方法及設(shè)備。該方法包括接收請(qǐng)求入隊(duì)的報(bào)文;確定隊(duì)列中當(dāng)前允許緩存報(bào)文的空閑空間數(shù)大于零且小于等于空閑空間閾值時(shí),或者,確定隊(duì)列中已占用空間的空間數(shù)大于等于已占用空間閾值且小于隊(duì)列允許緩存報(bào)文的總空間數(shù)時(shí),根據(jù)隨機(jī)數(shù)發(fā)生器當(dāng)前產(chǎn)生的隨機(jī)數(shù)判斷是否丟棄所述報(bào)文;確定不丟棄所述報(bào)文時(shí),將所述報(bào)文加入所述隊(duì)列。分布均勻的多個(gè)流同時(shí)進(jìn)入一個(gè)隊(duì)列情況下,本發(fā)明實(shí)施例在隊(duì)列當(dāng)前臨近于擁塞狀態(tài)時(shí)開始隨機(jī)丟棄等待入隊(duì)的報(bào)文,使得每條流進(jìn)入隊(duì)列的概率相同,從而隊(duì)列內(nèi)各個(gè)流的分布趨于均勻。
文檔編號(hào)H04L12/56GK102404206SQ20111034589
公開日2012年4月4日 申請(qǐng)日期2011年11月4日 優(yōu)先權(quán)日2011年11月4日
發(fā)明者王錦 申請(qǐng)人:深圳市海思半導(dǎo)體有限公司