本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及一種報文丟棄方法及裝置。
背景技術(shù):
:存儲轉(zhuǎn)發(fā)(StoreandForward)是計算機網(wǎng)絡(luò)領(lǐng)域使用得最為廣泛的技術(shù)之一,以太網(wǎng)交換機的控制器先將輸入端口到來的數(shù)據(jù)包緩存起來,先檢查數(shù)據(jù)包是否正確,然后根據(jù)目的地址,通過查找表找到想要發(fā)送的輸出端口地址,然后將該數(shù)據(jù)包發(fā)送出去。路由器、交換機芯片在處理存儲轉(zhuǎn)發(fā)的時候,普遍面對的問題是需要基于當前存儲空間的緩存情況來丟棄報文。最早期的報文丟棄技術(shù)就是Drop-Tail(尾部丟棄),也就是當緩存滿時才開始丟棄到達的報文。但是這種策略有幾大缺陷,例如,在緩存存滿時只能將全部報文丟棄,不能體現(xiàn)不同大小報文隊列的個體差異性;或者,在緩存存滿時開始丟棄,很難提前發(fā)現(xiàn)問題,會讓芯片長期處于緩存幾乎耗盡的狀態(tài),系統(tǒng)運行效率低下等等。后來出現(xiàn)了RED(RandomEarlyDetection,隨機早期檢測)技術(shù),也就是早期檢測丟棄技術(shù)。它根據(jù)緩存使用的情況,對緩存設(shè)以不同的閾值,在每個警報的閾值區(qū)域,對報文采取不同的丟棄概率,0%對應尾部丟棄,100%對應保留。這種技術(shù),提前發(fā)現(xiàn)了緩存將滿的問題,提前開始丟棄行為,較好的避免了使芯片長期運行在緩存幾乎耗盡的狀態(tài)下,一定程度上提高了系統(tǒng)效率低下的問題。在此基礎(chǔ)上,也出現(xiàn)了以報文隊列為基礎(chǔ),基于報文隊列來丟棄報文的早期檢測丟棄技術(shù),針對隊列緩存設(shè)以不同的閾值,在每個警報的閾值區(qū)域,對報文采取不同的丟棄概率,一定程度上體現(xiàn)了隊列差異性的管理丟棄方法。但是這些早期檢測技術(shù)沒有考慮報文屬性的差異性,并在緩存存滿時,使報文因沒有緩存空間存儲而溢出丟棄,導致了網(wǎng)絡(luò)通信能力低下。技術(shù)實現(xiàn)要素:本發(fā)明提供一種報文丟棄方法及裝置,其主要目的在于優(yōu)化丟棄策略,有效避免重要屬性報文被肆意丟棄,提高網(wǎng)絡(luò)通信質(zhì)量和吞吐量。為實現(xiàn)上述目的,本發(fā)明提供一種報文丟棄方法,該報文丟棄方法包括:在接收到報文描述符后,從所述報文描述符中提取所述報文描述符對應的報文的屬性信息和隊列號,其中,同時,生成偽隨機概率值;根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率、根據(jù)所述隊列號和報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率;基于所述報文屬性丟棄概率和所述緩存丟棄概率,按照第一預設(shè)函數(shù)生成報文丟棄概率;當生成的所述偽隨機概率值位于根據(jù)所述報文丟棄概率劃定的區(qū)間時,確定所述報文為丟棄報文。優(yōu)選地,所述根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率的步驟包括:從預先存儲的報文屬性概率映射表中獲取與所述屬性信息對應的第一概率值;將所述第一概率值作為所述報文屬性丟棄概率。優(yōu)選地,根據(jù)所述隊列號和報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率的過程包括以下步驟:根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率;基于所述隊列丟棄概率和所述全局丟棄概率,按照第二預設(shè)函數(shù)生成所述緩存丟棄概率。優(yōu)選地,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率的過程包括以下步驟:獲取所述隊列號對應的隊列當前占用空間;當所述隊列號對應的隊列當前占用空間小于或等于所述隊列的獨享空間時,所述隊列丟棄概率為零;當所述隊列號對應的隊列當前占用空間大于所述隊列的獨享空間,且小于或等于所述隊列的共享空間時,確定所述隊列號對應的隊列當前占用空間 對應的第一預設(shè)區(qū)間;獲取所述第一預設(shè)區(qū)間對應的第二概率值,將獲取到的所述第二概率值作為所述隊列丟棄概率。優(yōu)選地,根據(jù)所述全局緩存空間占用情況生成全局丟棄概率的過程包括以下步驟:獲取全部隊列的當前占用空間,并確定全部隊列的當前占用空間對應的第二預設(shè)區(qū)間;獲取所述第二預設(shè)區(qū)間對應的第三概率值,將獲取到的所述第三概率值作為所述全局丟棄概率。優(yōu)選地,所述在接收到所述報文時,獲取偽隨機概率區(qū)間的過程包括以下步驟:在接收到所述報文時,根據(jù)偽隨機序列獲取偽隨機值;根據(jù)獲取到的所述偽隨機值和所述偽隨機序列的位數(shù),生成所述偽隨機概率值。優(yōu)選地,所述當生成的所述報文丟棄概率位于所述偽隨機概率區(qū)間時,確定所述報文為丟棄報文的步驟之后,所述報文丟棄方法還包括:在所述報文描述符內(nèi)添加將所述報文標記為丟棄報文的標識信息。此外,為實現(xiàn)上述目的,本發(fā)明提供一種報文丟棄裝置,該報文丟棄裝置包括:信息提取單元,用于在接收到報文描述符后,從所述報文描述符中提取所述報文描述符對應的報文的屬性信息和隊列號,同時,生成偽隨機概率值;屬性丟棄概率單元,用于根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率;緩存丟棄概率單元,用于根據(jù)所述隊列號和報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率;報文丟棄概率單元,用于基于所述報文屬性丟棄概率和所述緩存丟棄概率,按照第一預設(shè)函數(shù)生成報文丟棄概率,以及當生成的所述偽隨機概率值位于根據(jù)所述報文丟棄概率劃定的區(qū)間時,確定所述報文為丟棄報文。優(yōu)選地,所述緩存丟棄概率單元,還用于根據(jù)所述隊列號對應的隊列緩 存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率;以及基于所述隊列丟棄概率和所述全局丟棄概率,按照第二預設(shè)函數(shù)生成所述緩存丟棄概率。優(yōu)選地,所述報文丟棄裝置還包括:信息添加單元,用于在所述報文描述符內(nèi)添加將所述報文標記為丟棄報文的標識信息。本發(fā)明提出的報文丟棄方法及裝置,根據(jù)緩存空間的使用情況、報文的屬性信息生成一個報文丟棄概率,并且在收到該報文時,生成一個偽隨機概率值,若報文丟棄概率大于偽隨機概率值,則將報文丟棄,這種方法既考慮到了緩存空間的使用情況,又考慮到了報文屬性的差異性,從而優(yōu)化了丟棄策略,在避免了緩存溢出的同時,有效避免了重要屬性報文被肆意丟棄,提高了網(wǎng)絡(luò)通信質(zhì)量和吞吐量。附圖說明圖1為本發(fā)明報文丟棄方法較佳實施例中報文轉(zhuǎn)發(fā)系統(tǒng)的架構(gòu)示意圖;圖2為本發(fā)明報文丟棄方法較佳實施例中生成報文丟棄概率的流程示意圖;圖3為本發(fā)明報文丟棄方法較佳實施例中偽隨機概率生成器的示意圖;圖4為本發(fā)明報文丟棄裝置較佳實施例的功能模塊示意圖;圖5為本發(fā)明報文丟棄裝置較佳實施例中緩存丟棄概率單元的細化功能模塊示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。具體實施方式應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供一種報文丟棄方法,以下為該報文丟棄方法的較佳實施例。在本實施例中,該報文丟棄方法包括以下步驟:步驟S10,在接收到報文描述符后,從所述報文描述符中提取所述報文描述符對應的報文的屬性信息和隊列號,同時,生成偽隨機概率值。在本實施例中,參照圖1所示,以太網(wǎng)交換機輸入端口接收到報文之后,由報文解析裝置對報文內(nèi)容進行解析,得到報文類型、輸入端口等屬性信息以及報文的隊列號,將其記錄在報文描述符內(nèi),發(fā)送至報文丟棄裝置,報文描述符在到達報文丟棄裝置之后,報文丟棄裝置從報文描述符中獲取到報文的屬性信息和隊列號,同時,報文丟棄裝置內(nèi)設(shè)置有偽隨機序列生成器,偽隨機序列生成器會生成一個隨機序列,進而獲取一個偽隨機值,根據(jù)該偽隨機值及偽隨機序列的位數(shù)計算得到偽隨機概率值。步驟S20,根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率、根據(jù)所述隊列號和報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率。本實施例中考慮到報文屬性的差異性以及緩存空間的占用情況,分別生成報文屬性丟棄概率和緩存丟棄概率。根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率的步驟包括以下細化步驟:步驟S21,從預先存儲的報文屬性概率映射表中獲取與所述屬性信息對應的第一概率值;步驟S22,將所述第一概率值作為所述報文屬性丟棄概率。表1報文屬性概率映射表第一地址0(報文類型0)第一概率值0第一地址1(報文類型1)第一概率值1第一地址2(報文類型2)第一概率值2第一地址3(報文類型3)第一概率值3…………第一地址N(報文類型N)第一概率值N在本實施例中,以報文類型為例進行說明,參照表1所示,報文丟棄裝置預先存儲有報文屬性概率映射表,不同的報文類型預先設(shè)置有對應的第一概率值,用戶根據(jù)需要,為重要報文設(shè)置較小的概率值,即報文的重要程度 越高,該報文被丟棄的可能性就越低,而報文屬性可以反映出報文的重要程度。根據(jù)獲取到的報文屬性信息,查找到對應的第一地址,獲取報文屬性概率映射表中該第一地址對應的第一概率值,將獲取到的第一概率值作為該報文的報文屬性概率。在其他的實施例中,也可以根據(jù)報文的多個屬性共同映射為一個“第一概率值”,例如,用報文類型、輸入端口、vlanid三個報文屬性,合并映射成為一個“第一概率值”,例如采用哈希映射。根據(jù)所述隊列號和所述報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率,可以有多種實施方式,例如,可以根據(jù)隊列號查找到對應的隊列的緩存空間占用情況,并綜合全局緩存空間占用情況,根據(jù)預先設(shè)置的緩存丟棄概率映射表查找對應的概率值,作為緩存丟棄概率;或者,按照以下步驟生成緩存丟棄概率:步驟S23,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率;其中,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率的過程可以包括如下細化步驟:步驟S231,獲取所述隊列號對應的隊列當前占用空間。步驟S232,當所述隊列號對應的隊列當前占用空間小于或等于所述隊列的獨享空間時,所述隊列丟棄概率為零。緩存空間中一般為每一隊列分配有獨占空間安和共享空間,當獨占空間被占滿之后,報文會存儲在共享空間中,當獲取到隊列號對應的隊列當前占用空間之后,若其占用空間小于隊列的獨享空間,那么說明對于該報文來說,緩存空間比較充足,其隊列丟棄概率為零。步驟S233,當所述隊列號對應的隊列當前占用空間大于所述隊列的獨享空間,且小于或等于所述隊列的共享空間時,確定所述隊列號對應的隊列當前占用空間對應的第一預設(shè)區(qū)間。步驟S234,獲取所述第一預設(shè)區(qū)間對應的第二概率值,將獲取到的所述第二概率值作為所述隊列丟棄概率。若該隊列當前占用空間大于隊列的獨享空間但是小于或者等于隊列的共 享空間,此時,判斷其占用空間對應的第一預設(shè)區(qū)間,參照表2所示,為隊列1的隊列丟棄概率映射表,預先設(shè)置在報文丟棄裝置內(nèi),不同的空間區(qū)間設(shè)置不同的概率值,每一個隊列設(shè)置有一個隊列丟棄概率映射表,以供隊列丟棄裝置根據(jù)隊列占用空間查找對應的隊列丟棄概率,其中,具體的區(qū)間的劃分情況,可以根據(jù)緩存空間的大小進行設(shè)置。表2隊列1的隊列丟棄概率映射表第一預設(shè)區(qū)間0第二概率值0第一預設(shè)區(qū)間1第二概率值1第一預設(shè)區(qū)間2第二概率值2第一預設(shè)區(qū)間3第二概率值3…………第一預設(shè)區(qū)間N第二概率值N獲取到隊列號對應的隊列占用的空間之后,確認隊列號對應的隊列占用的空間所屬的第一預設(shè)區(qū)間,進而獲取該第一預設(shè)區(qū)間對應的第二概率值,將其作為該報文的隊列丟棄概率,其中,隊列當前占用空間越大,對應的隊列丟棄概率值越大,該報文被丟棄的可能性越大。根據(jù)所述全局緩存空間占用情況生成全局丟棄概率的過程可以包括以下細化步驟:步驟S235,獲取全部隊列的當前占用空間,并確定全部隊列的當前占用空間對應的第二預設(shè)區(qū)間;步驟S236,獲取所述第二預設(shè)區(qū)間對應的第三概率值,將獲取到的所述第三概率值作為所述全局丟棄概率。在根據(jù)全局緩存區(qū)間的占用情況生成全局丟棄概率時,可以采用與上述生成隊列丟棄概率類似的方式,在報文丟棄裝置中預存有全局丟棄概率映射表,設(shè)置不同的第二預設(shè)區(qū)間,每一個第二預設(shè)區(qū)間有對應的第三概率值,確定全部隊列的當前占用空間對應的第二預設(shè)區(qū)間,進一步獲取對應的第三概率值,作為全局丟棄概率,參照表3所示,其中,全部隊列當前占用的空間越大,對應的全局丟棄概率值就越大,該報文被丟棄的可能性越大。表3全局丟棄概率映射表第二預設(shè)區(qū)間0第三概率值0第二預設(shè)區(qū)間1第三概率值1第二預設(shè)區(qū)間2第三概率值2第二預設(shè)區(qū)間3第三概率值3…………第二預設(shè)區(qū)間N第三概率值N步驟S24,基于所述隊列丟棄概率和所述全局丟棄概率,按照第二預設(shè)函數(shù)生成所述緩存丟棄概率。獲取到隊列丟棄概率和全局丟棄概率之后,可以按照第二預設(shè)函數(shù)生成緩存丟棄概率,第二預設(shè)函數(shù)可以是取最小值,求平均值等。步驟S30,基于所述報文屬性丟棄概率和所述緩存丟棄概率,按照第一預設(shè)函數(shù)生成報文丟棄概率。獲取到報文屬性丟棄概率和緩存丟棄概率之后,可以按照第一預設(shè)函數(shù)生成報文丟棄概率,第一預設(shè)函數(shù)可以是取最小值,求平均值、相乘等,例如將報文屬性丟棄概率和緩存丟棄概率的平均值作為該報文的報文丟棄概率,參照圖2所示,為本實施例中,生成報文丟棄概率的流程示意圖。步驟S40,當生成的所述偽隨機概率值位于根據(jù)所述報文丟棄概率劃定的區(qū)間時,確定所述報文為丟棄報文。需要說明的是,報文丟棄裝置內(nèi)設(shè)置有偽隨機序列生成器,在接收到報文描述符時,該偽隨機序列生成器會生成一個隨機序列,根據(jù)隨機序列獲取偽隨機值,根據(jù)該偽隨機值及偽隨機序列的位數(shù)計算得到偽隨機概率值,例如,若偽隨機序列為8位,則將生成的偽隨機值除以2的八次方,即256,得到一個偽隨機概率值,該值的范圍為0-100%,其中,偽隨機序列的生成多項式及偽隨機序列的位數(shù)可以根據(jù)需要設(shè)置,參照圖3所示,為一種8字節(jié)的偽隨機序列生成器。根據(jù)生成的報文丟棄概率劃定一個區(qū)間,該區(qū)間可以是【0,報文丟棄概率】或者【報文丟棄概率,100%】,用戶根據(jù)需求設(shè)置,本實施例中采用【0,報文丟棄概率】這個區(qū)間,若生成的偽隨機概率值位于上述區(qū)間內(nèi),則確定該報文為丟棄概率,若不位于該區(qū)間,則確認該報文不為丟棄報文,不作丟棄處理。本實施例提出的方法,基于上述報文丟棄概率和偽隨機概率區(qū)間,根據(jù) 生成的報文丟棄概率判斷報文是否為丟棄報文,判斷生成的報文丟棄概率是否位于上述的偽隨機概率區(qū)間,若位于,則確定所述報文為丟棄報文。反之,若報文丟棄概率不位于偽隨機概率區(qū)間,則確定該報文不丟棄,則正常進行該文的存儲與轉(zhuǎn)發(fā),對于收到的每一條報文,都會生成一個對應的偽隨機概率區(qū)間,也就是說,判斷報文是否丟棄時,采用的判斷基準是不一樣的,具有一種隨機性,極大地降低了在較高丟棄概率區(qū)間,將重要報文丟棄的可能性??梢岳斫獾氖?,在另一實施例中,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率也可以根據(jù)其他的方式實現(xiàn),例如:當隊列當前占用空間該隊列的獨占空間時,隊列丟棄概率為零,當隊列當前占用空間大于獨占空間,且小于或等于隊列的共享空間時,根據(jù)隊列號獲取對應的隊列當前占用的共享空間,并按照以下公式計算隊列丟棄概率:隊列丟棄概率=(隊列當前占用的共享空間/隊列的共享空間)*100%根據(jù)全局緩存空間占用情況生成全局丟棄概率時,可以獲取當前全部隊列占用的總空間,按照以下公式計算全局丟棄概率:全局丟棄概率=(全部隊列占用的總空間/緩存總空間)*100%,其中,緩存總空間為用來存儲報文的全部緩存空間。在其他的實施例中,也可以按照其他的方式,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率,在此不再一一列舉。進一步地,在步驟S40之后,該方法還包括以下步驟:步驟S50,在所述報文描述符內(nèi)添加將所述報文標記為丟棄報文的標識信息。報文丟棄裝置在確定該報文為丟棄報文之后,在該報文的描述符中添加標識信息,將該報文標記為丟棄報文,并輸出描述符,參照1所示,后續(xù)裝置在接收到描述符之后,根據(jù)其標識信息,將該報文全部刪除。本實施例提出的報文丟棄方法,根據(jù)緩存空間的使用情況、報文的屬性信息生成一個報文丟棄概率,并且在收到該報文時,生成一個偽隨機概率區(qū)間,若報文丟棄概率位于該偽隨機概率區(qū)間內(nèi),則將報文丟棄,這種方法既 考慮到了緩存空間的使用情況,又考慮到了報文屬性的差異性,從而優(yōu)化了丟棄策略,在避免了緩存溢出的同時,有效避免了重要屬性報文被肆意丟棄,提高了網(wǎng)絡(luò)通信質(zhì)量和吞吐量。參照圖4所示,本發(fā)明還提出一種報文丟棄裝置,以下為該報文丟棄裝置的較佳實施例。在本實施例中,該報文丟棄裝置包括以下單元:信息提取單元10,用于在接收到報文描述符后,從所述報文描述符中提取所述報文描述符對應的報文的屬性信息和隊列號,同時,生成偽隨機概率值。在本實施例中,參照圖1所示,以太網(wǎng)交換機輸入端口接收到報文之后,由報文解析裝置對報文內(nèi)容進行解析,得到報文類型、輸入端口等屬性信息以及報文的隊列號,將其記錄在報文描述符內(nèi),發(fā)送至報文丟棄裝置,報文描述符在到達報文丟棄裝置之后,信息提取單元10從報文描述符中獲取到報文的屬性信息和隊列號,同時,報文丟棄裝置內(nèi)設(shè)置有偽隨機序列生成器,偽隨機序列生成器會生成一個隨機序列,進而獲取一個偽隨機值,根據(jù)該偽隨機值及偽隨機序列的位數(shù)計算得到偽隨機概率值。屬性丟棄概率單元20,用于根據(jù)所述屬性信息獲取所述報文的報文屬性丟棄概率。本實施例中考慮到報文屬性的差異性以及緩存空間的占用情況,分別生成報文屬性丟棄概率和緩存丟棄概率。屬性丟棄概率單元20,用于從預先存儲的報文屬性概率映射表中獲取與所述屬性信息對應的第一概率值;以及將所述第一概率值作為所述報文屬性丟棄概率。在本實施例中,以報文類型為例進行說明,參照表1所示,報文丟棄裝置預先存儲有報文屬性概率映射表,不同的報文類型預先設(shè)置有對應的第一概率值,用戶根據(jù)需要,為重要報文設(shè)置較小的概率值,即報文的重要程度越高,該報文被丟棄的可能性就越低,而報文屬性可以反映出報文的重要程度。屬性丟棄概率單元20根據(jù)獲取到的報文屬性信息,查找到對應的第一地 址,獲取報文屬性概率映射表中該第一地址對應的第一概率值,將獲取到的第一概率值作為該報文的報文屬性概率。在其他的實施例中,也可以根據(jù)報文的多個屬性共同映射為一個“第一概率值”,例如,用報文類型、輸入端口、vlanid三個報文屬性,合并映射成為一個“第一概率值”,例如采用哈希映射。緩存丟棄概率單元30,用于根據(jù)所述隊列號和報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率。緩存丟棄概率單元30根據(jù)所述隊列號和所述報文到達時的全局緩存空間占用情況生成所述報文的緩存丟棄概率,可以有多種實施方式,例如,緩存丟棄概率單元30可以根據(jù)隊列號查找到對應的隊列的緩存空間占用情況,并綜合全局緩存空間占用情況,根據(jù)預先設(shè)置的緩存丟棄概率映射表查找對應的概率值,作為緩存丟棄概率;或者,緩存丟棄概率單元30,還用于根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率。進一步地,參照圖5所示,緩存丟棄概率單元30包括:隊列丟棄概率子單元31,用于根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率。全局丟棄概率子單元32,用于根據(jù)所述全局緩存空間占用情況生成全局丟棄概率。具體地,隊列丟棄概率子單元31,用于獲取所述隊列號對應的隊列當前占用空間,以及當所述隊列號對應的隊列當前占用空間小于或等于所述隊列的獨享空間時,所述隊列丟棄概率為零;當所述隊列號對應的隊列當前占用空間大于所述隊列的獨享空間,且小于或等于所述隊列的共享空間時,確定所述隊列號對應的隊列當前占用空間對應的第一預設(shè)區(qū)間;獲取所述第一預設(shè)區(qū)間對應的第二概率值,將獲取到的所述第二概率值作為所述隊列丟棄概率。緩存空間中一般為每一隊列分配有獨占空間安和共享空間,當獨占空間被占滿之后,報文會存儲在共享空間中,當獲取到隊列號對應的隊列當前占用空間之后,若其占用空間小于隊列的獨享空間,那么說明對于該報文來說,緩存空間比較充足,其隊列丟棄概率為零。若該隊列當前占用空間大于隊列的獨享空間但是小于或者等于隊列的共享空間,此時,隊列丟棄概率子單元31判斷其占用空間對應的第一預設(shè)區(qū)間,參照表2所示,為隊列1的隊列丟棄概率映射表,預先設(shè)置在報文丟棄裝置內(nèi),不同的空間區(qū)間設(shè)置不同的概率值,每一個隊列設(shè)置有一個隊列丟棄概率映射表,以供隊列丟棄裝置根據(jù)隊列占用空間查找對應的隊列丟棄概率,其中,具體的區(qū)間的劃分情況,可以根據(jù)緩存空間的大小進行設(shè)置。隊列丟棄概率子單元31獲取到隊列號對應的隊列占用的空間之后,確認隊列號對應的隊列占用的空間所屬的第一預設(shè)區(qū)間,進而獲取該第一預設(shè)區(qū)間對應的第二概率值,將其作為該報文的隊列丟棄概率,其中,隊列當前占用空間越大,對應的隊列丟棄概率值越大,該報文被丟棄的可能性越大。具體地,全局丟棄概率子單元32,用于獲取全部隊列的當前占用空間,并確定全部隊列的當前占用空間對應的第二預設(shè)區(qū)間;以及獲取所述第二預設(shè)區(qū)間對應的第三概率值,將獲取到的所述第三概率值作為所述全局丟棄概率。全局丟棄概率子單元32在根據(jù)全局緩存區(qū)間的占用情況生成全局丟棄概率時,可以采用與上述生成隊列丟棄概率類似的方式,在報文丟棄裝置中預存有全局丟棄概率映射表,設(shè)置不同的第二預設(shè)區(qū)間,每一個第二預設(shè)區(qū)間有對應的第三概率值,確定全部隊列的當前占用空間對應的第二預設(shè)區(qū)間,進一步獲取對應的第三概率值,作為全局丟棄概率,參照表3所示,其中,全部隊列當前占用的空間越大,對應的全局丟棄概率值就越大,該報文被丟棄的可能性越大。緩存丟棄概率單元30,基于隊列丟棄概率子單元31獲取的所述隊列丟棄概率和全局丟棄概率子單元32生成的所述全局丟棄概率,按照第二預設(shè)函數(shù)生成所述緩存丟棄概率。獲取到隊列丟棄概率和全局丟棄概率之后,緩存丟棄概率單元30可以按照第二預設(shè)函數(shù)生成緩存丟棄概率,第二預設(shè)函數(shù)可以是取最小值,求平均值等。報文丟棄概率單元40,用于基于所述報文屬性丟棄概率和所述緩存丟棄概率,按照第一預設(shè)函數(shù)生成報文丟棄概率,以及當生成的所述偽隨機概率值位于根據(jù)所述報文丟棄概率劃定的區(qū)間時,確定所述報文為丟棄報文。報文丟棄概率單元40獲取到報文屬性丟棄概率和緩存丟棄概率之后,可以按照第一預設(shè)函數(shù)生成報文丟棄概率,第一預設(shè)函數(shù)可以是取最小值,求平均值、相乘等,例如將報文屬性丟棄概率和緩存丟棄概率的平均值作為該報文的報文丟棄概率。需要說明的是,報文丟棄裝置內(nèi)設(shè)置有偽隨機序列生成器,在接收到報文描述符時,該偽隨機序列生成器會生成一個隨機序列,根據(jù)隨機序列獲取偽隨機值,根據(jù)該偽隨機值及偽隨機序列的位數(shù)計算得到偽隨機概率值,例如,若偽隨機序列為8位,則將生成的偽隨機值除以2的八次方,即256,得到一個偽隨機概率值,該值的范圍為0-100%,其中,偽隨機序列的生成多項式及偽隨機序列的位數(shù)可以根據(jù)需要設(shè)置,參照圖3所示,為一種8字節(jié)的偽隨機序列生成器。根據(jù)生成的報文丟棄概率劃定一個區(qū)間,該區(qū)間可以是【0,報文丟棄概率】或者【報文丟棄概率,100%】,用戶根據(jù)需求設(shè)置,本實施例中采用【0,報文丟棄概率】這個區(qū)間,若生成的偽隨機概率值位于上述區(qū)間內(nèi),則確定該報文為丟棄概率,若不位于該區(qū)間,則確認該報文不為丟棄報文,不作丟棄處理?;谏鲜鰣笪膩G棄概率和偽隨機概率區(qū)間,報文丟棄概率單元40根據(jù)生成的報文丟棄概率判斷報文是否為丟棄報文,判斷生成的報文丟棄概率是否位于上述的偽隨機概率區(qū)間,若位于,則確定所述報文為丟棄報文。反之,若報文丟棄概率不位于偽隨機概率區(qū)間,則確定該報文不丟棄,則正常進行該文的存儲與轉(zhuǎn)發(fā),對于收到的每一條報文,都會生成一個對應的偽隨機概率區(qū)間,也就是說,判斷報文是否丟棄時,采用的判斷基準是不一樣的,具有一種隨機性,極大地降低了在較高丟棄概率區(qū)間,將重要報文丟棄的可能性??梢岳斫獾氖牵诹硪粚嵤├?,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率也可以根據(jù)其他的方式實現(xiàn),例如:當隊列當前占用空間該隊列的獨占空間時,隊列丟棄概率為零,當隊列當前占用空間大于獨占空間,且小于或等于隊列的共享空間時,隊列丟棄概率子單元31根據(jù)隊列號獲取對應的隊列當前占用的共享空間,并按照以下公式計算隊列丟棄概率:隊列丟棄概率=(隊列當前占用的共享空間/隊列的共享空間)*100%根據(jù)全局緩存空間占用情況生成全局丟棄概率時,全局丟棄概率子單元32可以獲取當前全部隊列占用的總空間,按照以下公式計算全局丟棄概率:全局丟棄概率=(全部隊列占用的總空間/緩存總空間)*100%,其中,緩存總空間為用來存儲報文的全部緩存空間。在其他的實施例中,也可以按照其他的方式,根據(jù)所述隊列號對應的隊列緩存空間的占用情況獲取隊列丟棄概率、根據(jù)所述全局緩存空間占用情況生成全局丟棄概率,在此不再一一列舉。進一步地,該裝置還包括以下單元:信息添加單元50,在所述報文描述符內(nèi)添加將所述報文標記為丟棄報文的標識信息。報文丟棄裝置在確定該報文為丟棄報文之后,信息添加單元50在該報文的描述符中添加標識信息,將該報文標記為丟棄報文,并輸出描述符,參照1所示,后續(xù)裝置在接收到描述符之后,根據(jù)其標識信息,將該報文全部刪除。本實施例提出的報文丟棄裝置,根據(jù)緩存空間的使用情況、報文的屬性信息生成一個報文丟棄概率,并且在收到該報文時,生成一個偽隨機概率區(qū)間,若報文丟棄概率位于該偽隨機概率區(qū)間內(nèi),則將報文丟棄,這種方法既考慮到了緩存空間的使用情況,又考慮到了報文屬性的差異性,從而優(yōu)化了丟棄策略,在避免了緩存溢出的同時,有效避免了重要屬性報文被肆意丟棄,提高了網(wǎng)絡(luò)通信質(zhì)量和吞吐量。需要說明的是,上述實施例中,關(guān)于第一預設(shè)函數(shù)與第二預設(shè)函數(shù),第一概率值、第二概率值與第三概率值,以及第一預設(shè)區(qū)間與第二預設(shè)區(qū)間,“第一”、“第二”、“第三”等只是為了方便區(qū)分上述不同參數(shù),不具有優(yōu)先級上的區(qū)別。以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護范圍內(nèi)。當前第1頁1 2 3