[發(fā)明專利]一種報(bào)文流量控制方法有效
| 申請?zhí)枺?/td> | 201110283669.2 | 申請日: | 2011-09-22 |
| 公開(公告)號(hào): | CN102299861A | 公開(公告)日: | 2011-12-28 |
| 發(fā)明(設(shè)計(jì))人: | 周雨瀟 | 申請(專利權(quán))人: | 邁普通信技術(shù)股份有限公司 |
| 主分類號(hào): | H04L12/56 | 分類號(hào): | H04L12/56 |
| 代理公司: | 北京德琦知識(shí)產(chǎn)權(quán)代理有限公司 11018 | 代理人: | 謝安昆;宋志強(qiáng) |
| 地址: | 610041 四川省*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 報(bào)文 流量 控制 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,尤其涉及一種對發(fā)送報(bào)文的流量進(jìn)行控制的方法。
背景技術(shù)
目前,在數(shù)據(jù)通信設(shè)備例如路由器設(shè)備中,有時(shí)候設(shè)備內(nèi)部需要對待發(fā)送或接收到的報(bào)文進(jìn)行一些特殊處理,例如加密或解密處理,通常這些特殊處理的操作可以由軟件完成。但是,在對性能要求高的場合,這些特殊處理操作可以由硬件完成。
圖1為現(xiàn)有常見的硬件處理模塊在路由器內(nèi)部的結(jié)構(gòu)示意圖。參見圖1,路由器的中央處理器(CPU)中運(yùn)行上層軟件(協(xié)議棧)和驅(qū)動(dòng)軟件,驅(qū)動(dòng)軟件向上層軟件提供報(bào)文處理的軟件接口,上層軟件通過調(diào)用驅(qū)動(dòng)軟件提供的接口完成本地的報(bào)文處理。驅(qū)動(dòng)軟件將待處理的報(bào)文發(fā)給給硬件處理模塊,硬件處理模塊將報(bào)文進(jìn)行處理后交回給CPU進(jìn)行后續(xù)處理。
圖2為現(xiàn)有硬件處理模塊內(nèi)的結(jié)構(gòu)示意圖。參見圖2,硬件處理模塊主要包括硬件先入先出(FIFO)隊(duì)列和數(shù)據(jù)處理模塊,其中硬件FIFO隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)緩存器,他與普通存儲(chǔ)器的區(qū)別是沒有外部讀寫地址線,這樣使用起來非常簡單,但缺點(diǎn)就是只能順序?qū)懭霐?shù)據(jù),順序的讀出數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫指針自動(dòng)加1完成,不能像普通存儲(chǔ)器那樣可以由地址線決定讀取或?qū)懭肽硞€(gè)指定的地址。在圖2所示的硬件處理模塊中,所述硬件FIFO隊(duì)列用于緩存待處理的報(bào)文。在性能要求比較高的場合,通常該硬件FIFO隊(duì)列的容量會(huì)比較大,以便在有突發(fā)流量的情況下,能夠緩存所有的報(bào)文,不會(huì)造成報(bào)文丟失。但大容量的硬件FIFO隊(duì)列會(huì)給硬件成本帶來壓力,特別是在成本敏感的情況下更是如此。
因此,現(xiàn)有技術(shù)目前需要解決的技術(shù)問題是:如何以較低的成本即在硬件處理模塊FIFO隊(duì)列容量較小的情況下,在傳入硬件處理模塊的數(shù)據(jù)流量突發(fā)增高時(shí)降低報(bào)文的丟包率,以滿足數(shù)據(jù)流量突發(fā)增高這種對性能要求較高的場合的要求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種報(bào)文流量控制方法,以在硬件處理模塊FIFO容量較小的情況下,在傳入硬件處理模塊的數(shù)據(jù)流量突發(fā)增高時(shí),降低報(bào)文的丟包率。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種報(bào)文流量控制方法,包括:
設(shè)置流量控制桶和緩存隊(duì)列;當(dāng)需要向硬件處理模塊發(fā)送請求報(bào)文時(shí)執(zhí)行步驟A,當(dāng)收到硬件處理模塊的回應(yīng)報(bào)文時(shí)執(zhí)行步驟E;
A、判斷緩存隊(duì)列中是否有被緩存報(bào)文,如果有則執(zhí)行步驟C,否則執(zhí)行步驟B;
B、判斷流量控制桶的當(dāng)前桶深是否大于或等于當(dāng)前需要發(fā)送的請求報(bào)文的長度,如果是則發(fā)送該請求報(bào)文,并將當(dāng)前桶深減去所發(fā)送報(bào)文的長度得到新的桶深,結(jié)束本流程;否則執(zhí)行步驟C;
C、在緩存隊(duì)列的尾部緩存當(dāng)前需要發(fā)送的請求報(bào)文,之后執(zhí)行步驟D;
D、判斷流量控制桶的當(dāng)前桶深是否大于或等于緩存隊(duì)列頭部的請求報(bào)文的長度,如果是則發(fā)送該頭部的請求報(bào)文,將當(dāng)前桶深減去所發(fā)送報(bào)文的長度得到新的桶深,并結(jié)束本流程;否則結(jié)束本流程;
E、將所述桶深增加所述回應(yīng)報(bào)文的長度得到新的桶深,之后執(zhí)行步驟D。
優(yōu)選的,當(dāng)收到回應(yīng)報(bào)文之后、并在所述步驟E之前,進(jìn)一步包括:判斷所收到的回應(yīng)報(bào)文是否為已發(fā)送的請求報(bào)文對應(yīng)的回應(yīng)報(bào)文,如果是,則執(zhí)行步驟E,否則丟棄該回應(yīng)報(bào)文,結(jié)束本流程。
優(yōu)選的,該方法進(jìn)一步包括:如果在請求報(bào)文發(fā)送后的指定時(shí)間內(nèi)沒有收到該請求報(bào)文對應(yīng)的回應(yīng)報(bào)文,判定該請求超時(shí),則將流量控制桶的桶深增加該請求報(bào)文的長度得到新的桶深。
優(yōu)選的,該方法進(jìn)一步設(shè)置請求隊(duì)列,且在發(fā)送請求報(bào)文時(shí)在該請求隊(duì)列中創(chuàng)建對應(yīng)的請求節(jié)點(diǎn),該請求節(jié)點(diǎn)中包括該請求報(bào)文的序列號(hào);并且所述判斷回應(yīng)報(bào)文是否為已發(fā)送的請求報(bào)文對應(yīng)的回應(yīng)報(bào)文的具體方法為:從回應(yīng)報(bào)文的頭部信息中提取序列號(hào),查詢所述請求隊(duì)列中是否存在與所述回應(yīng)報(bào)文序列號(hào)匹配的請求節(jié)點(diǎn)序列號(hào),如果存在則判定該回應(yīng)報(bào)文為該請求節(jié)點(diǎn)所標(biāo)記的請求報(bào)文對應(yīng)的回應(yīng)報(bào)文,并且進(jìn)一步刪除該請求節(jié)點(diǎn);否則判定該回應(yīng)報(bào)文不是已發(fā)送的請求報(bào)文對應(yīng)的回應(yīng)報(bào)文。
優(yōu)選的,所述請求節(jié)點(diǎn)中進(jìn)一步包括上層軟件信息和調(diào)用信息,在收到回應(yīng)報(bào)文并查詢到該回應(yīng)報(bào)文對應(yīng)的請求節(jié)點(diǎn)后,進(jìn)一步根據(jù)該請求節(jié)點(diǎn)中的上層軟件信息和調(diào)用信息將所述回應(yīng)報(bào)文調(diào)用至對應(yīng)的上層軟件。
優(yōu)選的,所述流量控制桶的最大桶深大于所述硬件處理模塊中的先入先出FIFO隊(duì)列容量。
優(yōu)選的,該方法的執(zhí)行裝置為數(shù)據(jù)處理設(shè)備的中央處理器。
優(yōu)選的,所述數(shù)據(jù)處理設(shè)備為路由器。
優(yōu)選的,所述硬件處理模塊為硬件加解密模塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于邁普通信技術(shù)股份有限公司,未經(jīng)邁普通信技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110283669.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





