專利名稱:一種報(bào)文處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種報(bào)文處理方法和裝置。
背景技術(shù):
由于IP技術(shù)的設(shè)計(jì)思想簡潔實(shí)用和應(yīng)用豐富多彩,所以全I(xiàn)P(ALL IP)的組網(wǎng)方 式成為目前網(wǎng)絡(luò)的演進(jìn)趨勢。但是,在現(xiàn)行網(wǎng)絡(luò)環(huán)境下,為了充分利用已有的接入線路資 源,提出了將已有接入網(wǎng)絡(luò)與IP網(wǎng)絡(luò)兼容互聯(lián)的需求。基于時(shí)分復(fù)用和時(shí)分復(fù)用器(TimeDivision Multiplex and Multiplexer ;以下 簡稱TDM)技術(shù)、微波技術(shù)等傳輸模式的網(wǎng)絡(luò)需要通過網(wǎng)元設(shè)備來與IP網(wǎng)絡(luò)互聯(lián)。以基 于TDM技術(shù)的網(wǎng)絡(luò)為例,TDM網(wǎng)絡(luò)主要采用基于TDM的IP (IP over TDM)方式與IP網(wǎng)絡(luò)互 聯(lián),可以在互聯(lián)處設(shè)置分類器和緩存裝置,對(duì)從一個(gè)網(wǎng)絡(luò)傳輸而來的報(bào)文進(jìn)行分類,而后將 分類的報(bào)文進(jìn)行緩存,再通過預(yù)設(shè)的調(diào)度策略將緩存裝置中的報(bào)文發(fā)送到另一個(gè)網(wǎng)絡(luò)的鏈 路上。以TDM網(wǎng)絡(luò)與IP網(wǎng)絡(luò)互聯(lián)為例來進(jìn)行說明,IP Over TDM技術(shù)主要包括基于點(diǎn)對(duì)點(diǎn) 協(xié)議的 IP(IP Over Point to Point Protocol ;以下簡稱IP Over PPP)技術(shù)、基于異步 傳輸模式的 IP (IP Over Asynchronous Transfer Mode;以下簡稱IP Over ATM)技術(shù)和 基于El/Tl的IP (IP Over El/Tl)低速線路技術(shù)。以IP Over El/Tl低速線路的TDM網(wǎng)絡(luò) 與IP網(wǎng)絡(luò)互聯(lián)為例,圖1為IP網(wǎng)絡(luò)與TDM網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)架構(gòu)示意圖。如圖1所示,互聯(lián) 設(shè)備100通過以太鏈路與IP網(wǎng)絡(luò)200相連,通過E1/T1鏈路與TDM網(wǎng)絡(luò)300相連。該互聯(lián) 設(shè)備100中至少包括分類器101、緩存裝置102和調(diào)度裝置103。從IP網(wǎng)絡(luò)接收到的報(bào)文 首先進(jìn)入分類器101進(jìn)行分類,分類器101是一個(gè)報(bào)文處理引擎,根據(jù)報(bào)文的不同屬性,例 如目的IP地址、優(yōu)先級(jí)等參數(shù),進(jìn)行查表處理和分發(fā)。分類后的報(bào)文送入緩存裝置102進(jìn) 行緩存,而后由調(diào)度裝置103根據(jù)報(bào)文的類別進(jìn)行調(diào)度,從緩存裝置102中提取報(bào)文,通過 E1/T1鏈路發(fā)送至TDM網(wǎng)絡(luò)。從TDM網(wǎng)絡(luò)向IP網(wǎng)絡(luò)發(fā)送報(bào)文是上述過程的逆過程,同樣要 經(jīng)過分類、緩存和調(diào)度發(fā)送?,F(xiàn)有緩存裝置對(duì)報(bào)文進(jìn)行緩存是采用固定緩存隊(duì)列的技術(shù)。每個(gè)鏈路都有固定的 幾個(gè)緩存隊(duì)列,一般為八個(gè)。每個(gè)隊(duì)列都有自己固定大小的循環(huán)緩存空間,如圖2所示。隊(duì) 列之間可以根據(jù)需要分配不同的調(diào)度優(yōu)先級(jí)。每個(gè)鏈路可以使用一個(gè)或者多個(gè)隊(duì)列進(jìn)行報(bào) 文緩存,因此每個(gè)隊(duì)列都需要按照鏈路的總帶寬對(duì)報(bào)文進(jìn)行緩存。報(bào)文入隊(duì)列時(shí),如果當(dāng)前 隊(duì)列已滿,即入隊(duì)列索引等于出隊(duì)列索引,則報(bào)文直接丟棄,否則移動(dòng)入隊(duì)列索引,報(bào)文入 隊(duì)列;報(bào)文出隊(duì)列時(shí),如果隊(duì)列不為空,則修改報(bào)文出隊(duì)列指針,報(bào)文出隊(duì)。在進(jìn)行本發(fā)明的研究過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下缺陷報(bào)文在IP網(wǎng)絡(luò)和另一網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)的過程中需要進(jìn)行緩存,緩存裝置的緩存容 量由固定隊(duì)列進(jìn)行索引,是針對(duì)鏈路的帶寬預(yù)先設(shè)定且固定不變的。但是,TDM網(wǎng)絡(luò)邏輯 通道的寬帶會(huì)因?yàn)榻壎ǖ臅r(shí)隙數(shù)量的變化而變化,寬帶網(wǎng)絡(luò)(如ADSL(非對(duì)稱數(shù)字用戶 環(huán)路,Asymetric Digital Subscriber Loop)/ADSL2+/G. SHDSL (單對(duì)線高速數(shù)字用戶線, Single-pair High-speed Digital Subscriber Line) /微波鏈路等網(wǎng)絡(luò))中鏈路的帶寬會(huì)
5因諸如天氣狀況、干擾信號(hào)和距離等環(huán)境因素的改變而發(fā)生變化,在預(yù)設(shè)緩存容量相對(duì)于 鏈路帶寬過大的情況下,若鏈路的負(fù)載較重,即帶寬變大時(shí),會(huì)引起鏈路的傳輸時(shí)延增加; 在預(yù)設(shè)緩存容量相對(duì)于鏈路帶寬過小的情況下,若鏈路可能無法適應(yīng)IP網(wǎng)絡(luò)的報(bào)文抖動(dòng), 容易引起丟包。傳輸時(shí)延增加和丟包現(xiàn)象均導(dǎo)致傳輸質(zhì)量的下降。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種報(bào)文處理方法和裝置,以改善網(wǎng)絡(luò)間報(bào)文傳輸?shù)馁|(zhì)量。本發(fā)明實(shí)施例提供了一種報(bào)文處理方法,包括接收?qǐng)?bào)文,將所述報(bào)文存儲(chǔ)到緩存單元;確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和是否小于等于所述緩 存隊(duì)列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中的緩存項(xiàng)報(bào)文指針內(nèi)容 為所述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩存隊(duì)列;更新所述 緩存表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述隊(duì)列實(shí)際長度為存 儲(chǔ)所述報(bào)文后的實(shí)際長度。本發(fā)明實(shí)施例還提供了一種報(bào)文處理裝置,包括報(bào)文接收模塊、隊(duì)列確定模塊、 緩存控制模塊、報(bào)文緩存模塊;所述報(bào)文接收模塊,用于接收?qǐng)?bào)文;所述報(bào)文緩存模塊,用于將所述報(bào)文存儲(chǔ)到緩存單元;所述隊(duì)列確定模塊,用于確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;所述緩存控制模塊,用于判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之 和是否小于等于所述緩存隊(duì)列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中 的緩存項(xiàng)報(bào)文指針內(nèi)容為所述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所 述緩存隊(duì)列;更新所述緩存表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新 所述隊(duì)列實(shí)際長度為存儲(chǔ)所述報(bào)文后的實(shí)際長度。本發(fā)明實(shí)施例中提供了一種動(dòng)態(tài)調(diào)整隊(duì)列緩存帶寬的方法,通過判斷報(bào)文的長度 與緩隊(duì)列實(shí)際長度之和與緩存隊(duì)列中隊(duì)列配置長度來將報(bào)文存儲(chǔ)到緩存隊(duì)列,可以使得隊(duì) 列緩存根據(jù)鏈路帶寬的變化而變化,從而改善因隊(duì)列緩存空間過大而導(dǎo)致傳輸延遲,和緩 存空間過小而導(dǎo)致抖動(dòng)丟包的問題,提高了通信質(zhì)量。
圖1為IP網(wǎng)絡(luò)與TDM網(wǎng)絡(luò)互聯(lián)的網(wǎng)絡(luò)架構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中固定隊(duì)列緩存裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例一提供的報(bào)文處理方法的流程圖;圖4為本發(fā)明實(shí)施例二提供的報(bào)文處理方法的流程圖;圖5為本發(fā)明實(shí)施例二所基于的裝置存儲(chǔ)狀態(tài)示意圖;圖6為本發(fā)明實(shí)施例二所基于的裝置存儲(chǔ)狀態(tài)示意圖;圖7為本發(fā)明實(shí)施例二所基于的裝置存儲(chǔ)狀態(tài)示意圖;圖8為本發(fā)明實(shí)施例二提供的報(bào)文處理方法中報(bào)文出隊(duì)列的流程圖9為本發(fā)明實(shí)施例二所基于的裝置存儲(chǔ)狀態(tài)示意圖;圖10為本發(fā)明實(shí)施例一提供的報(bào)文處理方法中在TDM網(wǎng)絡(luò)內(nèi)調(diào)整隊(duì)列配置長度 的流程圖;圖11為本發(fā)明實(shí)施例一提供的報(bào)文處理方法中寬帶網(wǎng)絡(luò)內(nèi)調(diào)整隊(duì)列配置長度的 流程圖;圖12為本發(fā)明實(shí)施例三提供的報(bào)文處理裝置的結(jié)構(gòu)示意圖;圖13為本發(fā)明實(shí)施例三提供的報(bào)文處理裝置的結(jié)構(gòu)示意圖;圖14為本發(fā)明實(shí)施例三提供的報(bào)文處理裝置中隊(duì)列長度配置模塊的結(jié)構(gòu)示意 圖;圖15為本發(fā)明另一實(shí)施例提供的報(bào)文處理裝置中隊(duì)列長度配置模塊的結(jié)構(gòu)示意 圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一圖3為本發(fā)明實(shí)施例一提供的報(bào)文處理方法的流程圖,包括如下步驟步驟201、接收?qǐng)?bào)文,將所述報(bào)文存儲(chǔ)到緩存單元,確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì) 列;具體的,可以是通過分類器從通信鏈路接收?qǐng)?bào)文并對(duì)報(bào)文作分類處理;接收?qǐng)?bào)文 之后,可以根據(jù)該報(bào)文的類別或優(yōu)先級(jí)等參數(shù)確定該報(bào)文應(yīng)入隊(duì)的隊(duì)列;步驟202、判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和是否小于等 于所述緩存隊(duì)列中隊(duì)列配置長度;步驟203、如果是,通過更新所述緩存隊(duì)列緩存表中的緩存項(xiàng)報(bào)文指針內(nèi)容為所述 報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩存隊(duì)列;更新所述緩存表 中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述隊(duì)列實(shí)際長度為存儲(chǔ)所述 報(bào)文后的實(shí)際長度。本發(fā)明實(shí)施例當(dāng)步驟202判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度 之和大于所述緩存隊(duì)列中設(shè)定的隊(duì)列配置長度時(shí),則丟棄所述報(bào)文。其中,所述隊(duì)列配置長度是可以通過監(jiān)測鏈路帶寬變化,根據(jù)變化的帶寬進(jìn)行調(diào) 整的,具體的,所述隊(duì)列配置長度通過監(jiān)測鏈路帶寬變化,根據(jù)變化的帶寬進(jìn)行調(diào)整的步驟 包括監(jiān)測時(shí)分復(fù)用網(wǎng)絡(luò)(如E1/T1線路)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量;當(dāng)監(jiān)測到時(shí)隙數(shù)量變化時(shí),根據(jù)變化的時(shí)隙數(shù)量和第一設(shè)定系數(shù)計(jì)算隊(duì)列配置長 度;采用計(jì)算獲得的隊(duì)列配置長度更新所述隊(duì)列配置長度?;蛘?,
監(jiān)測寬帶網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路信號(hào)強(qiáng)度;當(dāng)監(jiān)測到信號(hào)強(qiáng)度變化時(shí),根據(jù)鏈路的總帶寬、當(dāng)前的所述信號(hào)強(qiáng)度和第二設(shè)定 系數(shù)計(jì)算隊(duì)列配置長度;采用計(jì)算獲得的隊(duì)列配置長度更新所述隊(duì)列配置長度。本發(fā)明實(shí)施例中,當(dāng)存儲(chǔ)所述報(bào)文時(shí),還包括如下步驟通過查找使用狀態(tài)確定可用的緩存項(xiàng)為待緩存項(xiàng);所述使用狀態(tài)位于所述緩存隊(duì) 列的緩存表緩存項(xiàng)中;將所述待緩存項(xiàng)的使用狀態(tài)更新為已使用狀態(tài);將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引所指引的緩 存項(xiàng)的動(dòng)態(tài)索引中;將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引中;將所述報(bào)文的長度累加至所述緩存隊(duì)列的隊(duì)列實(shí)際長度。當(dāng)識(shí)別到所述緩存隊(duì)列的出隊(duì)列索引為空時(shí),則將當(dāng)前的所述入隊(duì)列索引記錄至 所述出隊(duì)列索引。本發(fā)明實(shí)施例當(dāng)報(bào)文從緩存隊(duì)列出隊(duì)時(shí),包括如下步驟根據(jù)隊(duì)列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩存項(xiàng)作為待取緩存項(xiàng);從所述待取緩存項(xiàng)內(nèi)查詢報(bào)文指針,根據(jù)查詢得到的報(bào)文指針在對(duì)應(yīng)的緩存單元 中提取報(bào)文;將所述待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)記錄至所述出隊(duì)列索引;將所述待取緩存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將所述待取緩存項(xiàng)的使用狀態(tài) 更新為可用狀態(tài),將隊(duì)列實(shí)際長度更新為原來隊(duì)列的實(shí)際長度減去提取出的報(bào)文的長度。本發(fā)明實(shí)施例的優(yōu)點(diǎn)在于,通過判斷報(bào)文的長度與緩隊(duì)列實(shí)際長度之和與緩存隊(duì) 列中隊(duì)列配置長度來將報(bào)文存儲(chǔ)到緩存隊(duì)列,可以使得隊(duì)列緩存根據(jù)鏈路帶寬的變化而變 化,從而改善因隊(duì)列緩存空間過大而導(dǎo)致傳輸延遲,和緩存空間過小而導(dǎo)致抖動(dòng)丟包的問 題,提高了通信質(zhì)量。實(shí)施例二本發(fā)明實(shí)施例二提供了一種報(bào)文處理方法,用于通過根據(jù)鏈接帶寬改變隊(duì)列配置 長度來減少傳輸過程中的丟包和傳輸時(shí)延現(xiàn)象,提高鏈路傳輸質(zhì)量。參見圖4,為本發(fā)明實(shí)施例二提供的報(bào)文處理方法的流程圖,該方法流程可以通過 圖5所示的以下幾個(gè)單元實(shí)現(xiàn),包括控制單元401、隊(duì)列索引單元402、緩存表單元403和 緩存單元404。一個(gè)鏈路可以對(duì)應(yīng)一個(gè)或多個(gè)隊(duì)列,每個(gè)隊(duì)列可以通過隊(duì)列索引單元402、 緩存表單元403和緩存單元404來實(shí)現(xiàn)。隊(duì)列索引單元402用于存儲(chǔ)隊(duì)列的相關(guān)信息,如 入隊(duì)列索引、出隊(duì)列索引、隊(duì)列實(shí)際長度和隊(duì)列配置長度。入隊(duì)列索引用于指示進(jìn)入該隊(duì)列 的報(bào)文的緩存位置;出隊(duì)列索引用于指示從該隊(duì)列提出的報(bào)文的緩存位置;隊(duì)列實(shí)際長度 是該隊(duì)列實(shí)際緩存報(bào)文的長度,單位可以是字節(jié)數(shù);隊(duì)列配置長度是用戶可配置、系統(tǒng)可調(diào) 整的該隊(duì)列最長能夠緩存的長度,與隊(duì)列實(shí)際長度的單位一致。存儲(chǔ)介質(zhì)構(gòu)成的存儲(chǔ)空間預(yù)先被劃分為多個(gè)緩存單元404,用來存儲(chǔ)報(bào)文數(shù)據(jù),每 個(gè)緩存單元有預(yù)設(shè)的大小,以各自的起始地址Dl Dn來標(biāo)識(shí),η為自然數(shù)。緩存表單元403用于存儲(chǔ)緩存表,緩存表由多個(gè)緩存項(xiàng)構(gòu)成,每個(gè)緩存項(xiàng)至少包括如下幾項(xiàng)數(shù)據(jù)順序索引、動(dòng)態(tài)索引、使用狀態(tài)(use)和報(bào)文指針。順序索引中存儲(chǔ)有順
序索引號(hào),是緩存項(xiàng)的順序編號(hào),例如1、2........使用狀態(tài)用于標(biāo)識(shí)該緩存項(xiàng)的使用狀
態(tài),例如,使用狀態(tài)設(shè)為“0”代表“可用”,設(shè)為“1”代表“已用”。動(dòng)態(tài)索引中存儲(chǔ)有動(dòng)態(tài)索 引號(hào),指示當(dāng)前緩存項(xiàng)所緩存的報(bào)文在其所在隊(duì)列中的下一個(gè)報(bào)文的順序索引號(hào)。報(bào)文指 針中存儲(chǔ)當(dāng)前緩存項(xiàng)的報(bào)文對(duì)應(yīng)的緩存單元的起始地址。多個(gè)隊(duì)列索引單元402通過緩存 表單元403共享緩存單元404提供的緩存空間。為清楚介紹本實(shí)施例的工作過程,假設(shè)經(jīng)分類器分類后需要傳輸目的IP地址相 同的六個(gè)報(bào)文P 1、P2、P3、P4、P5和P6,六個(gè)報(bào)文的長度分別為Ll、L2、L3、L4、L5和L6。假 設(shè)各隊(duì)列的隊(duì)列索引單元中設(shè)定隊(duì)列配置長度為CL,當(dāng)隊(duì)列索引單元和緩存表索引模塊中 的各個(gè)參數(shù)沒有具體的索引位置時(shí)可設(shè)定為“0”。參見圖4,對(duì)上述報(bào)文處理方法具體可以包括如下步驟步驟301、接收?qǐng)?bào)文,將報(bào)文存儲(chǔ)至緩存單元接收來自鏈接經(jīng)分類器分類后的報(bào)文,如這里接收?qǐng)?bào)文P1,并將報(bào)文存儲(chǔ)到緩存 單元;步驟302、確定報(bào)文對(duì)應(yīng)的緩存隊(duì)列;控制單元根據(jù)接收到的報(bào)文確定需要報(bào)文對(duì)應(yīng)的緩存隊(duì)列,即報(bào)文在哪個(gè)緩存隊(duì) 列進(jìn)行操作,包括將報(bào)文在哪個(gè)緩存隊(duì)列進(jìn)行入隊(duì)操作等。例如,接收到報(bào)文Pl后,確定該 報(bào)文在第一隊(duì)列進(jìn)行入隊(duì)操作,由于第一隊(duì)列目前沒有存儲(chǔ)報(bào)文,隊(duì)列實(shí)際長度、入隊(duì)列索 引和出隊(duì)列索引均為“0”;步驟303、判斷報(bào)文的長度與緩存隊(duì)列的隊(duì)列實(shí)際長度之和是否大于緩存隊(duì)列中 設(shè)定的隊(duì)列配置長度,如果結(jié)果為是,則丟棄報(bào)文,否則,執(zhí)行下述步驟;例如,當(dāng)接收到報(bào)文Pl后,判斷Pl的長度Ll與隊(duì)列實(shí)際長度(初始化為0)之和 (L1+0)是否大于隊(duì)列配置長度CL,如果是,則丟棄報(bào)文Pl ;如果否,執(zhí)行步驟304 ;步驟304、通過查找使用狀態(tài)(use)確定可用的緩存項(xiàng)為待緩存項(xiàng);上述使用狀態(tài)(use)位于緩存項(xiàng)當(dāng)中,用于指示該緩存項(xiàng)為可用或已用,如0表示 可用,1表示已用;可以通過查找使用狀態(tài)來確定可用的緩存項(xiàng)為待緩存項(xiàng)。如圖5所示, 目前可能已經(jīng)有其他隊(duì)列的報(bào)文占用了緩存項(xiàng),順序索引號(hào)為“1”、“2”和“5”的緩存項(xiàng)為 已用狀態(tài),對(duì)應(yīng)的報(bào)文指針中記錄了相應(yīng)的緩存單元起始地址Dx、Dy和Dz,則此時(shí)可以按 照順序選擇第一個(gè)可用的緩存項(xiàng),例如選擇順序索引號(hào)為“3”的緩存項(xiàng)作為待存緩存項(xiàng),在 另外一個(gè)實(shí)施例當(dāng)中,也可以使用其他的可用緩存項(xiàng)(如順序索引號(hào)為“4”的緩存項(xiàng))來 作為待緩存項(xiàng);步驟305、更新所述待存緩存項(xiàng)中的報(bào)文指針內(nèi)容為報(bào)文在緩存單元的起始地址, 將所述待緩存項(xiàng)的使用狀態(tài)(use)更新為已使用狀態(tài);如圖6所示,控制單元可以將接收到的報(bào)文Pl存儲(chǔ)至緩存單元D1,同時(shí),將Dl的 地址記錄到待緩存項(xiàng)中(順序索引為3的緩存項(xiàng)),且將待存緩存項(xiàng)的狀態(tài)設(shè)為已用,在 選擇緩存單元時(shí)有多種方式,例如可以順序選擇空閑的緩存單元,或者按照預(yù)設(shè)策略選擇 等;步驟306、將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引所 指引的緩存項(xiàng)的動(dòng)態(tài)索引中;
例如,當(dāng)前第一隊(duì)列的入隊(duì)列索引為“0”,即該隊(duì)列中沒有該報(bào)文的前一項(xiàng),所以 該步驟的操作為空,找不到對(duì)應(yīng)的緩存項(xiàng);步驟307、將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引 中;由于使用了索引順序?yàn)?的緩存項(xiàng),因此,將第一隊(duì)列的入隊(duì)列索引更新為“3”;步驟308、將所述報(bào)文的長度累加至所述緩存隊(duì)列的隊(duì)列實(shí)際長度;例如,Pl報(bào)文長度為Li,當(dāng)前第一隊(duì)列的實(shí)際長度為0,則加上Ll后,第一隊(duì)列的 實(shí)際長度更新為Li,如圖6所示。在上述流程中,在將待存緩存項(xiàng)的順序索引號(hào)記錄至緩存隊(duì)列的入隊(duì)列索引之 后,還包括當(dāng)識(shí)別到緩存隊(duì)列的出隊(duì)列索引為空時(shí)(具體可以“0”代表空索引),將當(dāng)前 的入隊(duì)列索引記錄至出隊(duì)列索引。該情況通常發(fā)生在緩存隊(duì)列未緩存任何報(bào)文之時(shí)。重復(fù)執(zhí)行上述步驟301 308,將報(bào)文P2、P3、P4和P5依次存儲(chǔ)進(jìn)緩存單元中,則 隊(duì)列索引單元和緩存表索引模塊中的記錄狀態(tài)如圖7所示。假設(shè)隊(duì)列配置長度CL = L1+L2+L3+L4+L5,則當(dāng)存儲(chǔ)報(bào)文P6時(shí),由于報(bào)文P6的長 度L6與隊(duì)列實(shí)際長度之和為L1+L2+L3+L4+L5+L6,大于C L,所以將報(bào)文P6丟棄。本發(fā)明實(shí)施例中,報(bào)文出隊(duì)列的流程如圖8所示,包括如下步驟步驟701、根據(jù)隊(duì)列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩存項(xiàng)作為待取緩存項(xiàng);當(dāng)需要從緩存隊(duì)列中提取報(bào)文時(shí),控制單元按照隊(duì)列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩 存項(xiàng)作為待取緩存項(xiàng),基于圖7所示的實(shí)例,此時(shí)將順序索引號(hào)為“3”的緩存項(xiàng)作為待取緩 存項(xiàng);步驟702、從所述待取緩存項(xiàng)內(nèi)查詢報(bào)文指針,根據(jù)查詢得到的報(bào)文指針在對(duì)應(yīng)的 緩存單元中提取報(bào)文;控制單元從待取緩存項(xiàng)內(nèi)查詢報(bào)文指針“D1”,根據(jù)報(bào)文指針在對(duì)應(yīng)的緩存單元中 提取報(bào)文Pl,而后通過鏈路進(jìn)行發(fā)送;步驟703、將所述待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)記錄至所述出隊(duì)列索引;控制單元將待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)“4”記錄至出隊(duì)列索引,用以索引下一個(gè)出 隊(duì)的報(bào)文;步驟704、將所述待取緩存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將所述待取緩存項(xiàng)的 使用狀態(tài)更新為可用狀態(tài),將隊(duì)列實(shí)際長度更新為原來隊(duì)列的實(shí)際長度減去提取出的報(bào)文 的長度;控制單元將待取緩存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將待取緩存項(xiàng)的狀態(tài)設(shè) 定為可用,即設(shè)定為“0”,將隊(duì)列實(shí)際長度減去提取出的報(bào)文的長度,即隊(duì)列實(shí)際長度為 L1+L2+L3+L4+L5-L1 = L2+L3+L4+L5,如圖 9 所示。重復(fù)執(zhí)行上述步驟,將報(bào)文P2、P3、P4和P5順序取出,緩存表恢復(fù)至圖5的狀態(tài)。采用本實(shí)施例的技術(shù)方案,鏈路的多個(gè)隊(duì)列所對(duì)應(yīng)的緩存表是一個(gè)數(shù)組,對(duì)應(yīng)某 一個(gè)隊(duì)列的每個(gè)緩存項(xiàng)通過動(dòng)態(tài)緩存項(xiàng)連接成一個(gè)從入隊(duì)列索引到出隊(duì)列索引的單向鏈 表,如圖7中箭頭所示。本實(shí)施例的技術(shù)方案使多個(gè)隊(duì)列可以共享緩存空間,并且可以通過 緩存表來逐一索引各個(gè)隊(duì)列的報(bào)文。本發(fā)明實(shí)施例當(dāng)中,隊(duì)列的配置長度CL并非固定,而是通過監(jiān)測鏈路的帶寬變化,根據(jù)變化的帶寬設(shè)定緩存隊(duì)列的隊(duì)列配置長度,如可以通過每隔一定時(shí)間實(shí)時(shí)監(jiān)測鏈 路帶寬變化來實(shí)時(shí)更新隊(duì)列配置長度,或者根據(jù)監(jiān)測得到的鏈路帶寬變化規(guī)律更新隊(duì)列配 置長度,或者根據(jù)預(yù)定的規(guī)則監(jiān)測得到鏈路帶寬變化來更新隊(duì)列配置長度。根據(jù)帶寬變化來動(dòng)態(tài)調(diào)整隊(duì)列配置長度的方案可以適用于TDM網(wǎng)絡(luò)(如E1/T1網(wǎng) 絡(luò))或?qū)拵ЬW(wǎng)絡(luò)(如ADSL/ADSL2+/G. SHDSL/微波網(wǎng)絡(luò)等)。在TDM網(wǎng)絡(luò)中,可以監(jiān)測TDM 網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量SLOT,根據(jù)時(shí)隙數(shù)量的變化按照設(shè)定公式計(jì)算獲得隊(duì)列 配置長度,進(jìn)而對(duì)隊(duì)列配置長度進(jìn)行更新。在寬帶網(wǎng)絡(luò)中,可以監(jiān)測寬帶網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的 鏈路信號(hào)強(qiáng)度,即信號(hào)百分比m%,根據(jù)信號(hào)百分比的變化按照設(shè)定公式計(jì)算獲得隊(duì)列配置 長度,進(jìn)而對(duì)隊(duì)列配置長度進(jìn)行更新。圖10為本發(fā)明實(shí)施例二提供的報(bào)文處理方法中在TDM網(wǎng)絡(luò)內(nèi)調(diào)整隊(duì)列配置長度 的流程圖,在TDM網(wǎng)絡(luò)中,根據(jù)變化的帶寬設(shè)定緩存隊(duì)列中的隊(duì)列配置長度的步驟具體包 括步驟1001、監(jiān)測TDM網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量SLOT ;在E1/T1等低速鏈路中,系統(tǒng)可以根據(jù)具體情況的需要為鏈路分配不同數(shù)量的時(shí) 隙,所分配的時(shí)隙數(shù)量的多少對(duì)應(yīng)帶寬的大?。徊襟E1002、當(dāng)監(jiān)測到時(shí)隙數(shù)量變化時(shí),根據(jù)變化的時(shí)隙數(shù)量和第一設(shè)定系數(shù)計(jì)算 隊(duì)列配置長度;第一設(shè)定系數(shù)可以為經(jīng)驗(yàn)值,記為S,可以按照如下公式(1)計(jì)算隊(duì)列配置長度, 單位為比特CL = SLOTX 單位時(shí)隙帶寬 Xs (1)其中,單位時(shí)隙帶寬可以為64K;步驟1003、采用計(jì)算獲得的隊(duì)列配置長度更新緩存隊(duì)列中的隊(duì)列配置長度。每個(gè)鏈路可以對(duì)應(yīng)設(shè)置有一個(gè)或多個(gè)隊(duì)列,在調(diào)整隊(duì)列配置長度時(shí)可以是根據(jù)當(dāng) 前帶寬統(tǒng)一調(diào)整所有隊(duì)列的隊(duì)列配置長度,也可以是預(yù)先設(shè)定配置策略,例如,根據(jù)當(dāng)前帶 寬以及各個(gè)隊(duì)列的優(yōu)先級(jí),在設(shè)定配置策略中查詢不同優(yōu)先級(jí)的隊(duì)列應(yīng)配置的隊(duì)列配置長 度,進(jìn)而進(jìn)行更新。具體的配置策略還可以根據(jù)系統(tǒng)的其他要求進(jìn)行預(yù)先設(shè)定。上述技術(shù)方案可以根據(jù)TDM網(wǎng)絡(luò)的帶寬來動(dòng)態(tài)調(diào)整隊(duì)列的隊(duì)列配置長度,即能夠 根據(jù)帶寬來調(diào)整實(shí)際使用的緩存空間,能夠提高報(bào)文的傳輸質(zhì)量。TDM的鏈路可以由用戶動(dòng) 態(tài)匹配,上述技術(shù)方案能夠有效適應(yīng)TDM網(wǎng)絡(luò)的動(dòng)態(tài)帶寬。圖11為本發(fā)明實(shí)施例二提供的報(bào)文處理方法中寬帶網(wǎng)絡(luò)內(nèi)調(diào)整隊(duì)列配置長度的 流程圖。在寬帶網(wǎng)絡(luò)中,根據(jù)變化的帶寬設(shè)定緩存隊(duì)列中的隊(duì)列配置長度的步驟具體包 括步驟1101、監(jiān)測寬帶網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路信號(hào)百分比;信號(hào)百分比表示鏈路的信號(hào)質(zhì)量,對(duì)于ADSL(非對(duì)稱數(shù)字用戶環(huán)路, Asymetric Digital Subscriber Loop)/ADSL2+/G. SHDSL (單對(duì)線高速數(shù)字用戶線, Single-pair High-speed Digital Subscriber Line)/ 微波鏈路等寬帶鏈路,信號(hào)百分比 可以對(duì)應(yīng)帶寬的大小,現(xiàn)有網(wǎng)絡(luò)互聯(lián)設(shè)備中能夠識(shí)別信號(hào)百分比的變化;步驟1102、當(dāng)監(jiān)測到信號(hào)百分比變化時(shí),根據(jù)鏈路的總帶寬、當(dāng)前信號(hào)百分比和第 二設(shè)定系統(tǒng)計(jì)算隊(duì)列配置長度;
當(dāng)信號(hào)百分比變化時(shí),根據(jù)鏈路的總帶寬M、當(dāng)前的信號(hào)百分比和第二設(shè)定系數(shù)計(jì) 算隊(duì)列配置長度CL,第二設(shè)定系數(shù)可以為經(jīng)驗(yàn)參數(shù)k,具體可以按照公式(2)來計(jì)算隊(duì)列配 置長度CL,單位為比特CL = MXm% Xk ;步驟1103、采用計(jì)算獲得的隊(duì)列配置長度更新緩存隊(duì)列中的隊(duì)列配置長度。上述技術(shù)方案可以根據(jù)寬帶網(wǎng)絡(luò)(如ADSL/ADSL2+/G. SHDSL/微波等網(wǎng)絡(luò))的帶 寬來動(dòng)態(tài)調(diào)整隊(duì)列的隊(duì)列配置長度,即能夠根據(jù)帶寬來調(diào)整實(shí)際使用的緩存空間,提高報(bào) 文的傳輸質(zhì)量。寬帶網(wǎng)絡(luò)的鏈路由于受到外部環(huán)境和地理位置的影響,會(huì)導(dǎo)致實(shí)際帶寬上 下波動(dòng),上述技術(shù)方案能夠有效適應(yīng)寬帶網(wǎng)絡(luò)的動(dòng)態(tài)帶寬變化。采用本實(shí)施例的技術(shù)方案,隊(duì)列配置長度可以根據(jù)鏈路的帶寬變化而動(dòng)態(tài)調(diào)整, 該技術(shù)方案可以改善現(xiàn)有技術(shù)中因緩存隊(duì)列采用固定存儲(chǔ)容量而引發(fā)的問題,例如,由于 緩存隊(duì)列的存儲(chǔ)容量不能根據(jù)鏈路帶寬的變化而變化,存儲(chǔ)容量和鏈路的帶寬均較大時(shí)會(huì) 導(dǎo)致傳輸時(shí)延增長,存儲(chǔ)容量和鏈路的帶寬均較小時(shí)會(huì)導(dǎo)致抖動(dòng)丟包。本發(fā)明實(shí)施例相比于現(xiàn)有的固定隊(duì)列緩存,其優(yōu)點(diǎn)在于可以提供動(dòng)態(tài)隊(duì)列緩存, 各個(gè)隊(duì)列的隊(duì)列配置長度可以根據(jù)鏈路帶寬的變化而進(jìn)行調(diào)整從而可以改善因緩存空間 過大而導(dǎo)致傳輸延遲,和緩存空間過小而導(dǎo)致抖動(dòng)丟包的問題,提高了通信質(zhì)量。實(shí)施例三圖12為本發(fā)明實(shí)施例三提供的報(bào)文處理裝置的結(jié)構(gòu)示意圖,該裝置具體包括報(bào) 文接收模塊10、隊(duì)列確定模塊20、緩存控制模塊30、報(bào)文緩存模塊40和隊(duì)列長度配置模塊 50。其中,所述報(bào)文接收模塊10,用于接收?qǐng)?bào)文;所述報(bào)文緩存模塊,用于將所述報(bào)文緩存到緩存單元;所述隊(duì)列確定模塊,用于確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;所述緩存控制模塊,用于判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之 和是否小于等于所述緩存隊(duì)列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中 的緩存項(xiàng)報(bào)文指針內(nèi)容為所述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所 述緩存隊(duì)列;更新所述緩存表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新 所述隊(duì)列實(shí)際長度為存儲(chǔ)所述報(bào)文后的實(shí)際長度。當(dāng)所述緩存控制模塊判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度大于 所述緩存隊(duì)列中隊(duì)列配置長度時(shí),丟棄所述報(bào)文。所述隊(duì)列長度配置模塊,用于通過監(jiān)測鏈 路帶寬變化,根據(jù)變化的帶寬對(duì)所述隊(duì)列配置長度進(jìn)行調(diào)整;具體的,可以根據(jù)鏈路的時(shí)隙數(shù)以及信號(hào)質(zhì)量等對(duì)隊(duì)列配置長度進(jìn)行動(dòng)態(tài)調(diào)整。本發(fā)明實(shí)施例通過根據(jù)監(jiān)控到的帶寬動(dòng)態(tài)改變隊(duì)列配置長度,從而動(dòng)態(tài)調(diào)整緩存 大小,可以改善現(xiàn)有技術(shù)中因采用固定緩存容量而引發(fā)諸如傳輸時(shí)延增長,抖動(dòng)丟包等問 題,提高了通信質(zhì)量。本發(fā)明實(shí)施例中,所述報(bào)文處理裝置的報(bào)文緩存模塊40進(jìn)一步包括至少一個(gè)隊(duì) 列索引單元41、緩存表單元42和多個(gè)緩存單元43。其中,每個(gè)隊(duì)列索引單元41分別對(duì)應(yīng) 于一個(gè)隊(duì)列,每個(gè)隊(duì)列索引單元41用于存儲(chǔ)該隊(duì)列的入隊(duì)列索弓丨、出隊(duì)列索弓丨、隊(duì)列實(shí)際 長度和隊(duì)列配置長度;緩存表單元42用于存儲(chǔ)包括多個(gè)緩存項(xiàng)的緩存表,每個(gè)緩存項(xiàng)至少
12包括順序索引、動(dòng)態(tài)索引、使用狀態(tài)和報(bào)文指針;多個(gè)緩存單元43,用于存儲(chǔ)報(bào)文。緩存控制模塊30具體包括計(jì)算單元31、查找單元32、入隊(duì)列單元33、第一索引 更新單元34、第二索引更新單元35和長度累加單元36。其中,計(jì)算單元31用于計(jì)算該報(bào) 文的長度與該緩存隊(duì)列的隊(duì)列實(shí)際長度之和,并判斷是否大于緩存隊(duì)列中設(shè)定的隊(duì)列配置 長度,若判斷結(jié)果為是則丟棄該報(bào)文,否則觸發(fā)查找單元32動(dòng)作;查找單元32用于在緩存 表單元42中查找使用狀態(tài)為可用的緩存項(xiàng)作為待存緩存項(xiàng);入隊(duì)列單元33用于通過更新 緩存項(xiàng)報(bào)文指針的內(nèi)容為報(bào)文在緩存單元的起始存儲(chǔ)地址將報(bào)文加入到緩存隊(duì)列,且將待 存緩存項(xiàng)的使用狀態(tài)設(shè)為已用;第一索引更新單元34用于將待存緩存項(xiàng)的順序索引號(hào)記 錄至緩存隊(duì)列的入隊(duì)列索引所指引的緩存項(xiàng)的動(dòng)態(tài)索引中;第二索引更新單元35用于將 待存緩存項(xiàng)的順序索引號(hào)記錄至緩存隊(duì)列的入隊(duì)列索引中;長度累加單元36用于將報(bào)文 的長度累加至緩存隊(duì)列的隊(duì)列實(shí)際長度。該緩存控制模塊30還包括出隊(duì)列初始單元37,用于在第二索引更新單元35動(dòng) 作之后,且識(shí)別到緩存隊(duì)列的出隊(duì)列索引為空時(shí),將當(dāng)前的入隊(duì)列索引記錄至出隊(duì)列索引?;谏鲜鰣?bào)文緩存模塊40還能夠進(jìn)一步實(shí)現(xiàn)出隊(duì)列操作,即緩存控制模塊30還 包括出隊(duì)列識(shí)別單元38、報(bào)文提取單元39、第三索引更新單元310和第四索引更新單元 311。其中,出隊(duì)列識(shí)別單元38用于當(dāng)根據(jù)調(diào)度策略從緩存單元43中提取報(bào)文時(shí),按照隊(duì) 列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩存項(xiàng)作為待取緩存項(xiàng);報(bào)文提取單元39用于從待取緩存項(xiàng) 內(nèi)查詢報(bào)文指針,根據(jù)報(bào)文指針在對(duì)應(yīng)的緩存單元43中提取報(bào)文;第三索引更新單元310 用于將待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)記錄至出隊(duì)列索引;第四索引更新單元311用于將待取緩 存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將待取緩存項(xiàng)的使用狀態(tài)設(shè)定為可用,將隊(duì)列實(shí)際長 度減去提取出的報(bào)文的長度。參見圖14,為本發(fā)明實(shí)施例報(bào)文處理裝置中隊(duì)列長度配置模塊的結(jié)構(gòu)示意圖,隊(duì) 列長度配置模塊具體可以包括第一帶寬監(jiān)測單元51、第一長度計(jì)算單元52和第一長度更新單元53。其中,第一 帶寬監(jiān)測單元51用于監(jiān)測TDM網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量;第一長度計(jì)算單元52 用于當(dāng)監(jiān)測到時(shí)隙數(shù)量變化時(shí),根據(jù)變化的時(shí)隙數(shù)量和第一設(shè)定系數(shù)計(jì)算隊(duì)列配置長度; 第一長度更新單元53用于采用計(jì)算獲得的隊(duì)列配置長度更新報(bào)文緩存模塊的隊(duì)列中的隊(duì) 列配置長度。采用本實(shí)施例的技術(shù)方案可以根據(jù)TDM網(wǎng)絡(luò)的帶寬來動(dòng)態(tài)調(diào)整隊(duì)列的隊(duì)列配置 長度,即能夠根據(jù)帶寬來調(diào)整實(shí)際使用的緩存空間,能夠提高報(bào)文的傳輸質(zhì)量。TDM的鏈路 可以由用戶動(dòng)態(tài)匹配,本實(shí)施例的技術(shù)方案能夠有效適應(yīng)TDM網(wǎng)絡(luò)的動(dòng)態(tài)帶寬。參見圖15,為本發(fā)明另一實(shí)施例中隊(duì)列長度配置模塊的結(jié)構(gòu)示意圖,隊(duì)列長度配 置模塊具體可以包括第二帶寬監(jiān)測單元54、第二長度計(jì)算單元55和第二長度更新單元 56。其中,第二帶寬監(jiān)測單元54用于監(jiān)測寬帶網(wǎng)絡(luò)(如ADSL/ADSL2+/G. SHDSL/微波等鏈 路網(wǎng)絡(luò))中對(duì)應(yīng)帶寬的鏈路信號(hào)強(qiáng)度;第二長度計(jì)算單元55用于當(dāng)監(jiān)測到信號(hào)強(qiáng)度變化 時(shí),根據(jù)鏈路的總帶寬、當(dāng)前的信號(hào)強(qiáng)度和第二設(shè)定系數(shù)計(jì)算隊(duì)列配置長度;第二長度更新 單元56用于采用計(jì)算獲得的隊(duì)列配置長度更新報(bào)文緩存模塊的隊(duì)列中的隊(duì)列配置長度。這里需要說明的是,上述各單元可以由一個(gè)或多個(gè)通用處理器來完成,也可以使 用一個(gè)或多個(gè)專用的處理器或其他硬件處理單元來完成。同時(shí),上述各單元可以集成在一個(gè)裝置中,也可以分別集成在互聯(lián)設(shè)備的各個(gè)裝置中,例如,報(bào)文接收模塊10和隊(duì)列確定 模塊20可以集成在分類器中,由分類器執(zhí)行接收?qǐng)?bào)文并確定緩存隊(duì)列的操作,或者,將上 述所有單元都集成在一個(gè)裝置中,在此并不限定。同時(shí),本發(fā)明實(shí)施例可以應(yīng)用到網(wǎng)關(guān),基站,路由器等等通信設(shè)備上。本實(shí)施例可以執(zhí)行本發(fā)明實(shí)施例提供的報(bào)文處理方法,相比于現(xiàn)有的固定隊(duì)列緩 存,本發(fā)明實(shí)施例的優(yōu)點(diǎn)在于可以通過監(jiān)測鏈路帶寬,根據(jù)帶寬改變隊(duì)列配置長度,提供動(dòng) 態(tài)隊(duì)列緩存,可以使得隊(duì)列緩存根據(jù)鏈路帶寬的變化而變化,從而改善因緩存空間過大而 導(dǎo)致傳輸延遲,和緩存空間過小而導(dǎo)致抖動(dòng)丟包的問題。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者 光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(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.一種報(bào)文處理方法,其特征在于,包括 接收?qǐng)?bào)文,將所述報(bào)文存儲(chǔ)到緩存單元; 確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和是否小于等于所述緩存隊(duì) 列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中的緩存項(xiàng)報(bào)文指針內(nèi)容為所 述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩存隊(duì)列;更新所述緩存 表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述隊(duì)列實(shí)際長度為存儲(chǔ)所 述報(bào)文后的實(shí)際長度。
2.如權(quán)利要求1所述的報(bào)文處理方法,其特征在于,還包括當(dāng)判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和大于所述緩存隊(duì)列中的 所述隊(duì)列配置長度時(shí),丟棄所述報(bào)文。
3.根據(jù)權(quán)利要求1所述的報(bào)文處理方法,其特征在于,所述隊(duì)列配置長度通過監(jiān)測鏈 路帶寬變化,根據(jù)變化的帶寬進(jìn)行調(diào)整,包括監(jiān)測時(shí)分復(fù)用網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量;當(dāng)監(jiān)測到時(shí)隙數(shù)量變化時(shí),根據(jù)變化的時(shí)隙數(shù)量和第一設(shè)定系數(shù)計(jì)算隊(duì)列配置長度;采用計(jì)算獲得的隊(duì)列配置長度更新所述隊(duì)列配置長度;或者,監(jiān)測寬帶網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路信號(hào)強(qiáng)度;當(dāng)監(jiān)測到信號(hào)強(qiáng)度變化時(shí),根據(jù)鏈路的總帶寬、當(dāng)前的所述信號(hào)強(qiáng)度和第二設(shè)定系數(shù) 計(jì)算隊(duì)列配置長度;采用計(jì)算獲得的隊(duì)列配置長度更新所述隊(duì)列配置長度。
4.根據(jù)權(quán)利要求1所述的報(bào)文處理方法,其特征在于,所述更新所述緩存表中緩存項(xiàng) 索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述隊(duì)列實(shí)際長度為存儲(chǔ)所述報(bào)文后的 實(shí)際長度的步驟包括通過查找使用狀態(tài)確定可用的緩存項(xiàng)為待緩存項(xiàng);所述使用狀態(tài)位于所述緩存隊(duì)列的 緩存表緩存項(xiàng)中;將所述待緩存項(xiàng)的使用狀態(tài)更新為已使用狀態(tài);將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引所指引的緩存項(xiàng) 的動(dòng)態(tài)索引中;將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引中; 將所述報(bào)文的長度累加至所述緩存隊(duì)列的隊(duì)列實(shí)際長度。
5.根據(jù)權(quán)利要求4所述的報(bào)文處理方法,其特征在于,在將所述待存緩存項(xiàng)的順序索 引號(hào)記錄至所述緩存隊(duì)列的入隊(duì)列索引之后,還包括當(dāng)識(shí)別到所述緩存隊(duì)列的出隊(duì)列索引為空時(shí),則將當(dāng)前的所述入隊(duì)列索引記錄至所述 出隊(duì)列索引。
6.根據(jù)權(quán)利要求4所述的報(bào)文處理方法,其特征在于,還包括 當(dāng)所述報(bào)文從所述緩存隊(duì)列出隊(duì)時(shí),包括如下步驟根據(jù)隊(duì)列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩存項(xiàng)作為待取緩存項(xiàng);從所述待取緩存項(xiàng)內(nèi)查詢報(bào)文指針,根據(jù)查詢得到的報(bào)文指針在對(duì)應(yīng)的緩存單元中提取報(bào)文;將所述待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)記錄至所述出隊(duì)列索引;將所述待取緩存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將所述待取緩存項(xiàng)的使用狀態(tài)更新 為可用狀態(tài),將隊(duì)列實(shí)際長度更新為原來隊(duì)列的實(shí)際長度減去提取出的報(bào)文的長度。
7.一種報(bào)文處理裝置,其特征在于,包括報(bào)文接收模塊、隊(duì)列確定模塊、緩存控制模 塊、報(bào)文緩存模塊;所述報(bào)文接收模塊,用于接收?qǐng)?bào)文;所述報(bào)文緩存模塊,用于將所述報(bào)文存儲(chǔ)到緩存單元;所述隊(duì)列確定模塊,用于確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;所述緩存控制模塊,用于判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和是 否小于等于所述緩存隊(duì)列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中的緩 存項(xiàng)報(bào)文指針內(nèi)容為所述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩 存隊(duì)列;更新所述緩存表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述 隊(duì)列實(shí)際長度為存儲(chǔ)所述報(bào)文后的實(shí)際長度。
8.如權(quán)利要求7所述的報(bào)文處理裝置,其特征在于,所述緩存控制模塊還用于 當(dāng)判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和大于所述緩存隊(duì)列中設(shè)定的隊(duì)列配置長度時(shí),丟棄所述報(bào)文。
9.如權(quán)利要求7所述的報(bào)文處理裝置,其特征在于,還包括隊(duì)列長度配置模塊,用于通過監(jiān)測鏈路帶寬變化,根據(jù)變化的帶寬對(duì)所述隊(duì)列配置長 度進(jìn)行調(diào)整;所述隊(duì)列長度配置模塊包括第一帶寬監(jiān)測單元,用于監(jiān)測時(shí)分復(fù)用網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路的時(shí)隙數(shù)量; 第一長度計(jì)算單元,用于當(dāng)監(jiān)測到時(shí)隙數(shù)量變化時(shí),根據(jù)變化的時(shí)隙數(shù)量和第一設(shè)定 系數(shù)計(jì)算隊(duì)列配置長度;第一長度更新單元,用于采用計(jì)算獲得的隊(duì)列配置長度更新所述緩存隊(duì)列中的隊(duì)列配 置長度;或者,所述隊(duì)列長度配置模塊包括第二帶寬監(jiān)測單元,用于監(jiān)測寬帶網(wǎng)絡(luò)中對(duì)應(yīng)帶寬的鏈路信號(hào)強(qiáng)度; 第二長度計(jì)算單元,用于當(dāng)監(jiān)測到信號(hào)強(qiáng)度變化時(shí),根據(jù)鏈路的總帶寬、當(dāng)前的所述信 號(hào)強(qiáng)度和第二設(shè)定系數(shù)計(jì)算隊(duì)列配置長度;第二長度更新單元,用于采用計(jì)算獲得的隊(duì)列配置長度更新所述報(bào)文緩存模塊的隊(duì)列 中的隊(duì)列配置長度。
10.根據(jù)權(quán)利要求7所述的報(bào)文處理裝置,其特征在于 所述報(bào)文緩存模塊還包括至少一個(gè)隊(duì)列索引單元,每個(gè)所述隊(duì)列索引單元分別對(duì)應(yīng)于一個(gè)所述緩存隊(duì)列,每個(gè) 隊(duì)列索引單元用于存儲(chǔ)所述緩存隊(duì)列的入隊(duì)列索弓丨、出隊(duì)列索弓丨、隊(duì)列實(shí)際長度和隊(duì)列配置長度;緩存表單元,用于存儲(chǔ)包括多個(gè)緩存項(xiàng)的緩存表,每個(gè)緩存項(xiàng)至少包括順序索引、動(dòng)態(tài) 索引、使用狀態(tài)和報(bào)文指針;至少一個(gè)緩存單元,用于存儲(chǔ)所述報(bào)文。
11.如權(quán)利要求10所述的報(bào)文處理裝置,其特征在于,所述緩存控制模塊包括計(jì)算單元,用于計(jì)算所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和,并判斷是 否大于所述緩存隊(duì)列中設(shè)定的隊(duì)列配置長度,若判斷結(jié)果為是則丟棄所述報(bào)文,否則觸發(fā) 查找單元?jiǎng)幼?;查找單元,用于在所述緩存表單元中查找使用狀態(tài)為可用的緩存項(xiàng)作為待存緩存項(xiàng); 入隊(duì)列單元,用于將接收到的所述報(bào)文加入到所述緩存隊(duì)列; 所述入隊(duì)列單元還用于,通過更新所述緩存隊(duì)列緩存表中的緩存項(xiàng)報(bào)文指針內(nèi)容為所 述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩存隊(duì)列;且將所述待存 緩存項(xiàng)的使用狀態(tài)設(shè)為已用;第一索引更新單元,用于將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì) 列索引所指引的緩存項(xiàng)的動(dòng)態(tài)索引中;第二索引更新單元,用于將所述待存緩存項(xiàng)的順序索引號(hào)記錄至所述緩存隊(duì)列的入隊(duì) 列索引中;長度累加單元,用于將所述報(bào)文的長度累加至所述緩存隊(duì)列的隊(duì)列實(shí)際長度。
12.根據(jù)權(quán)利要求11所述的報(bào)文處理裝置,其特征在于,所述緩存控制模塊還包括 出隊(duì)列初始單元,用于在所述第二索引更新單元?jiǎng)幼髦?,且識(shí)別到所述緩存隊(duì)列的出隊(duì)列索引為空時(shí),將當(dāng)前的所述入隊(duì)列索引記錄至所述出隊(duì)列索引。
13.根據(jù)權(quán)利要求12所述的報(bào)文處理裝置,其特征在于,所述緩存控制模塊還包括 出隊(duì)列識(shí)別單元,用于當(dāng)根據(jù)調(diào)度策略從所述緩存單元中提取報(bào)文時(shí),按照隊(duì)列的出隊(duì)列索引識(shí)別對(duì)應(yīng)的緩存項(xiàng)作為待取緩存項(xiàng);報(bào)文提取單元,用于從所述待取緩存項(xiàng)內(nèi)查詢報(bào)文指針,根據(jù)報(bào)文指針在對(duì)應(yīng)的緩存 單元中提取報(bào)文;第三索引更新單元,用于將所述待取緩存項(xiàng)的動(dòng)態(tài)索引號(hào)記錄至所述出隊(duì)列索引; 第四索引更新單元,用于將所述待取緩存項(xiàng)的動(dòng)態(tài)索引和報(bào)文指針清零,且將所述待 取緩存項(xiàng)的使用狀態(tài)設(shè)定為可用,將隊(duì)列實(shí)際長度減去提取出的報(bào)文的長度。
全文摘要
本發(fā)明實(shí)施例涉及一種報(bào)文處理方法和裝置,其中,所述方法包括接收?qǐng)?bào)文,將所述報(bào)文存儲(chǔ)到緩存單元;確定所述報(bào)文對(duì)應(yīng)的緩存隊(duì)列;判斷所述報(bào)文的長度與所述緩存隊(duì)列的隊(duì)列實(shí)際長度之和是否小于等于所述緩存隊(duì)列中隊(duì)列配置長度,如果是,通過更新所述緩存隊(duì)列緩存表中的緩存項(xiàng)報(bào)文指針內(nèi)容為所述報(bào)文在所述緩存單元的起始存儲(chǔ)地址,將所述報(bào)文加入到所述緩存隊(duì)列;更新所述緩存表中緩存項(xiàng)索引和隊(duì)列入隊(duì)索引為所述報(bào)文建立新索引,更新所述隊(duì)列實(shí)際長度為存儲(chǔ)所述報(bào)文后的實(shí)際長度。本發(fā)明實(shí)施例中提供了一種動(dòng)態(tài)調(diào)整隊(duì)列緩存帶寬的方法,通過判斷報(bào)文的長度與緩隊(duì)列實(shí)際長度之和與緩存隊(duì)列中隊(duì)列配置長度來將報(bào)文存儲(chǔ)到緩存隊(duì)列,可以使得隊(duì)列緩存根據(jù)鏈路帶寬的變化而變化,從而改善因隊(duì)列緩存空間過大而導(dǎo)致傳輸延遲,和緩存空間過小而導(dǎo)致抖動(dòng)丟包的問題,提高了通信質(zhì)量。
文檔編號(hào)H04L12/26GK102035719SQ20091011072
公開日2011年4月27日 申請(qǐng)日期2009年9月29日 優(yōu)先權(quán)日2009年9月29日
發(fā)明者蘇德現(xiàn) 申請(qǐng)人:華為技術(shù)有限公司