專利名稱:一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),尤其涉及無線互聯(lián)網(wǎng)中的報(bào)文轉(zhuǎn)發(fā)。
背景技術(shù):
據(jù)CNNNIC(中國(guó)互聯(lián)網(wǎng)信息中心)發(fā)布的最新統(tǒng)計(jì)報(bào)告顯示,2009年底國(guó)內(nèi)手 機(jī)上網(wǎng)用戶是3072萬,2010年6月手機(jī)上網(wǎng)用戶則已經(jīng)達(dá)到4914萬,占整體網(wǎng)民比重的 11.7%。由此可見,我國(guó)手機(jī)上網(wǎng)用戶龐大且手機(jī)上網(wǎng)用戶數(shù)量將持續(xù)高速發(fā)展。電信運(yùn)營(yíng)商以及各網(wǎng)絡(luò)產(chǎn)品公司為了應(yīng)對(duì)快速發(fā)展的無線互聯(lián)網(wǎng),急需將現(xiàn)有的 固網(wǎng)設(shè)備快速無縫遷入到無線互聯(lián)網(wǎng)中。以DPI設(shè)備為例,DPI設(shè)備用于對(duì)網(wǎng)內(nèi)用戶的流量進(jìn)行監(jiān)控、管理和審計(jì),其必須 以用戶真實(shí)的網(wǎng)絡(luò)流量為輸入進(jìn)行業(yè)務(wù)處理,而無線互聯(lián)網(wǎng)如GPRS核心網(wǎng)絡(luò)中Gn鏈路流 量是以GTP協(xié)議為承載層,其將用戶真實(shí)流量封裝在GTP-U報(bào)文中。因此,如果將固網(wǎng)DPI 設(shè)備直接部署在Gn鏈路中,對(duì)DPI設(shè)備來說,應(yīng)用層為被封裝的用戶IP報(bào)文,無法進(jìn)行正 常的業(yè)務(wù)處理。為解決這種情況,需要對(duì)DPI特征庫進(jìn)行大規(guī)模改動(dòng)或?qū)I(yè)務(wù)代碼進(jìn)行大 量修改以適配隧道報(bào)文,研發(fā)成本高且效率低。此外,隨著多核技術(shù)的快速發(fā)展,當(dāng)前幾乎所有的網(wǎng)絡(luò)設(shè)備都采用多核架構(gòu)來提 高系統(tǒng)的并發(fā)處理能力,并已獲取了系統(tǒng)性能的飛躍。然而,由于報(bào)文分發(fā)和業(yè)務(wù)處理各自 獨(dú)立,因此在提高并發(fā)處理能力的同時(shí)也引入了對(duì)共享資源的競(jìng)爭(zhēng)而導(dǎo)致系統(tǒng)性能出現(xiàn)瓶頸。
發(fā)明內(nèi)容
本發(fā)明提供了一種能解決以上問題的基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法及設(shè)備。在第一方面,本發(fā)明提供了一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法。該方法首先獲取 互聯(lián)網(wǎng)中的數(shù)據(jù)包;然后在該數(shù)據(jù)包為隧道鏈路數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解封裝,以得到 IP數(shù)據(jù)包;然后再采用哈希算法對(duì)該IP數(shù)據(jù)包的五元組進(jìn)行哈希運(yùn)算,再根據(jù)得到的哈希 值及其哈希表大小、該多核CPU中CPU數(shù)量,計(jì)算得到相應(yīng)CPU,然后將該哈希值標(biāo)記至該 IP數(shù)據(jù)包中,再將該已標(biāo)記的IP數(shù)據(jù)包發(fā)送至所述CPU中。在第二方面,本發(fā)明提供了一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)系統(tǒng)。該系統(tǒng)包括以下 模塊獲取互聯(lián)網(wǎng)中數(shù)據(jù)包的模塊;在該數(shù)據(jù)包為隧道鏈路數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解 封裝,以得到IP數(shù)據(jù)包的模塊;以及采用哈希算法對(duì)該IP數(shù)據(jù)包的五元組進(jìn)行哈希運(yùn)算, 并將得到的哈希值及其哈希表大小、該多核CPU中CPU數(shù)量,計(jì)算得到相應(yīng)CPU,再將該哈希 值標(biāo)記至該IP數(shù)據(jù)包中,然后將該已標(biāo)記的IP數(shù)據(jù)包發(fā)送至所述CPU中的模塊。本發(fā)明通過對(duì)隧道鏈路中的報(bào)文進(jìn)行預(yù)處理,在報(bào)文分發(fā)階段將隧道報(bào)文進(jìn)行解 封裝后分發(fā)給業(yè)務(wù)處理模塊,在業(yè)務(wù)處理處屏蔽隧道報(bào)文和普通IP報(bào)文的差異,從而避免 了特征庫以及適配隧道鏈路業(yè)務(wù)的新開發(fā),實(shí)現(xiàn)了固網(wǎng)設(shè)備接入點(diǎn)無關(guān)特性,提高了固網(wǎng) 設(shè)備在無線互聯(lián)網(wǎng)中的利用率。
并且本發(fā)明通過在報(bào)文分發(fā)階段將哈希表按CPU數(shù)量進(jìn)行均勻分配,從根本上將 共享資源對(duì)每個(gè)CPU本地化,實(shí)現(xiàn)了共享資源的免鎖設(shè)計(jì),最大化的發(fā)揮了并發(fā)計(jì)算的優(yōu) 勢(shì),提高了系統(tǒng)的整體性能。本發(fā)明實(shí)現(xiàn)簡(jiǎn)單,效果明顯,對(duì)復(fù)用已有產(chǎn)品和加快開發(fā)隧道鏈路的新產(chǎn)品以及 提高網(wǎng)絡(luò)產(chǎn)品部署靈活性具有重要意義,并且本發(fā)明避免了共享資源競(jìng)爭(zhēng)所導(dǎo)致的性能損 耗,對(duì)多核網(wǎng)絡(luò)處理系統(tǒng)性能有很大提高。
下面將參照附圖對(duì)本發(fā)明的具體實(shí)施方案進(jìn)行更詳細(xì)的說明,在附圖中圖1是本發(fā)明一個(gè)實(shí)施例的報(bào)文轉(zhuǎn)發(fā)設(shè)備所處網(wǎng)絡(luò)位置示意圖;圖2是本發(fā)明一個(gè)實(shí)施例的基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)示意圖。
具體實(shí)施例方式圖1是本發(fā)明一個(gè)實(shí)施例的報(bào)文轉(zhuǎn)發(fā)設(shè)備所處網(wǎng)絡(luò)位置示意圖。該報(bào)文轉(zhuǎn)發(fā)設(shè)備 110獲取來自互聯(lián)網(wǎng)中的數(shù)據(jù)包,并判定該數(shù)據(jù)包是否來自無線互聯(lián)網(wǎng),若該數(shù)據(jù)包來自無 線互聯(lián)網(wǎng),則對(duì)該數(shù)據(jù)包進(jìn)行處理,以便該數(shù)據(jù)包能夠應(yīng)用于業(yè)務(wù)模塊130中,而后再將該 處理后的數(shù)據(jù)包均勻分發(fā)至多核CPU 120中。其中,該業(yè)務(wù)模塊130為固網(wǎng)中的任意一種 網(wǎng)絡(luò)管理設(shè)備,如DPI業(yè)務(wù)等,其用于完成各種業(yè)務(wù)處理功能,如流量識(shí)別監(jiān)控等。需要說明的是,該報(bào)文轉(zhuǎn)發(fā)設(shè)備110也可以獲取來自固網(wǎng)中的數(shù)據(jù)包,方法是通 過判定其接收到的數(shù)據(jù)包是否為隧道鏈路數(shù)據(jù)包從而判定其接收到的數(shù)據(jù)包來自無線互 聯(lián)網(wǎng)或固網(wǎng)。該報(bào)文轉(zhuǎn)發(fā)設(shè)備110如何處理來自無線互聯(lián)網(wǎng)的數(shù)據(jù)包,使其能夠應(yīng)用于業(yè)務(wù)模 塊130中,以及如何使數(shù)據(jù)包均勻分發(fā)至多核CPU120中,將通過以下內(nèi)容中得到詳細(xì)闡述。圖2是本發(fā)明一個(gè)實(shí)施例的基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)示意圖。在步驟210,獲取互聯(lián)網(wǎng)中的數(shù)據(jù)包。一個(gè)例子中,獲取Gn鏈路中的數(shù)據(jù)包。在步驟220,判定該數(shù)據(jù)包是否為隧道鏈路數(shù)據(jù)包,若該數(shù)據(jù)包為隧道鏈路數(shù)據(jù) 包,則執(zhí)行步驟230 ;若該數(shù)據(jù)包不是隧道鏈路數(shù)據(jù)包,則該數(shù)據(jù)包為IP數(shù)據(jù)包,因此直接 執(zhí)行步驟240。一個(gè)例子中,該隧道鏈路數(shù)據(jù)包為GTP、VPN數(shù)據(jù)包。在步驟230,對(duì)接收到的隧道鏈路數(shù)據(jù)包進(jìn)行解封裝,從而得到IP數(shù)據(jù)包,即IP報(bào) 文,該IP報(bào)文是反映用戶真實(shí)流量的報(bào)文。在步驟240,通過HASH算法(哈希算法)將該IP報(bào)文均勻分發(fā)到多核CPU中的 各CPU中,使共享資源本地化,以便實(shí)現(xiàn)共享資源的免鎖設(shè)計(jì)。下面詳細(xì)闡述IP報(bào)文分發(fā) 方法。首先,設(shè)定該多核CPU中CPU數(shù)量為n,再將哈希算法中的哈希表平均分成η個(gè)區(qū) 間,并使每個(gè)區(qū)間對(duì)應(yīng)多核CPU中的一個(gè)CPU。然后,采用哈希算法對(duì)該接收到的IP報(bào)文的五元組進(jìn)行哈希運(yùn)算,從而得到該IP 報(bào)文的哈希值。其中,所述五元組包括該IP報(bào)文的源IP、目的IP、源端口、目的端口、傳輸 層協(xié)議,且該傳輸層協(xié)議包括TCP協(xié)議、UDP協(xié)議、ICMP協(xié)議等。
然后根據(jù)所得到的哈希值及其哈希表大小、CPU數(shù)量,計(jì)算得到相應(yīng)的CPU,再將該哈希值標(biāo)記至該IP報(bào)文中,并將該已標(biāo)記哈希值的IP報(bào)文發(fā)送至所得到的CPU中。一個(gè)例子中,根據(jù)CPU數(shù)量n,將哈希表平均分成η個(gè)區(qū)間,且每個(gè)區(qū)間對(duì)應(yīng)一個(gè) CPU,然后根據(jù)該得到的哈希值,判定該哈希值所落η個(gè)區(qū)間中的具體區(qū)間,從而得到該哈 希值所對(duì)應(yīng)CPU,即得到該IP報(bào)文所對(duì)應(yīng)CPU。舉例如,該IP報(bào)文的哈希值為65391,CPU數(shù)量為32,哈希表大小為209251,由于 CPU數(shù)量為32,因此該哈希表可被均勻分為32個(gè)區(qū)間;根據(jù)計(jì)算可知,每個(gè)區(qū)間大小近似為 6539,因此哈希值65391落在該哈希表的第9個(gè)區(qū)間中,則該IP報(bào)文對(duì)應(yīng)的區(qū)間為9,即該 IP報(bào)文對(duì)應(yīng)的CPU為CPU9 ;因此在該IP報(bào)文上標(biāo)記其哈希值為65391,再將該已標(biāo)記哈希 值為65391的IP報(bào)文發(fā)送至第9個(gè)CPU中。最后,該CPU(如第9個(gè)CPU)接收該已標(biāo)記哈希值的IP報(bào)文,并根據(jù)具體的業(yè)務(wù) 模塊對(duì)該IP報(bào)文進(jìn)行相應(yīng)業(yè)務(wù)處理,如網(wǎng)絡(luò)流控、內(nèi)容審計(jì)等業(yè)務(wù)處理。由于該IP報(bào)文已 經(jīng)被標(biāo)記了哈希值,因此在業(yè)務(wù)處理過程中,CPU無需再進(jìn)行哈希算法,直接取該IP報(bào)文中 的哈希值進(jìn)行相應(yīng)運(yùn)算和處理即可。由此可見,本實(shí)施例通過對(duì)隧道報(bào)文的解封裝保證了哈希桶分布的均勻性,在IP 報(bào)文分發(fā)階段結(jié)合CPU數(shù)量分發(fā)IP報(bào)文到不同的CPU中,使每個(gè)CPU獨(dú)占自己的哈希桶位, 實(shí)現(xiàn)了哈希表資源對(duì)每個(gè)CPU的本地化,從而避免了不同CPU對(duì)哈希桶資源的競(jìng)爭(zhēng),起到了 共享資源免鎖設(shè)計(jì)。顯而易見,在不偏離本發(fā)明的真實(shí)精神和范圍的前提下,在此描述的本發(fā)明可以 有許多變化。因此,所有對(duì)于本領(lǐng)域技術(shù)人員來說顯而易見的改變,都應(yīng)包括在本權(quán)利要求 書所涵蓋的范圍之內(nèi)。本發(fā)明所要求保護(hù)的范圍僅由所述的權(quán)利要求書進(jìn)行限定。
權(quán)利要求
一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,包括步驟a,獲取互聯(lián)網(wǎng)中的數(shù)據(jù)包;步驟b,在該數(shù)據(jù)包為隧道鏈路數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解封裝,以得到IP數(shù)據(jù)包;步驟c,采用哈希算法對(duì)該IP數(shù)據(jù)包的五元組進(jìn)行哈希運(yùn)算,再根據(jù)得到的哈希值及其哈希表大小、該多核CPU中CPU數(shù)量,計(jì)算得到相應(yīng)的CPU,然后將該哈希值標(biāo)記至該IP數(shù)據(jù)包中,再將該已標(biāo)記的IP數(shù)據(jù)包發(fā)送至所述CPU中。
2.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述步驟c之 后包括步驟d,所述CPU接收該已標(biāo)記的IP數(shù)據(jù)包,并根據(jù)具體業(yè)務(wù)模塊對(duì)該IP數(shù)據(jù)包進(jìn)行 相應(yīng)業(yè)務(wù)處理。
3.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述業(yè)務(wù)模 塊為DPI業(yè)務(wù),所述業(yè)務(wù)處理為流量識(shí)別監(jiān)控、管理和審計(jì)。
4.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,在所述步驟a 之后步驟b之前包括步驟e,判定來自互聯(lián)網(wǎng)中的數(shù)據(jù)包是否為隧道鏈路數(shù)據(jù)包,若該數(shù)據(jù)包為隧道鏈路數(shù) 據(jù)包,則執(zhí)行步驟b,否則直接執(zhí)行步驟C。
5.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,將所述哈希 算法中哈希表分成η個(gè)區(qū)間,且該η為該多核CPU中CPU數(shù)量,并使每個(gè)區(qū)間與該多核CPU 中的每一 CPU相對(duì)應(yīng)。
6.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述五元組 包括該IP報(bào)文的源IP、目的IP、源端口、目的端口、傳輸層協(xié)議。
7.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,所述步驟c中 將該哈希值標(biāo)記至該IP數(shù)據(jù)包中,是將該哈希值作為哈希桶標(biāo)記至IP數(shù)據(jù)包中。
8.如權(quán)利要求1所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,步驟c中計(jì)算 得到CPU的方法為,根據(jù)該多核CPU中CPU數(shù)量n,將所述哈希表平均分成η個(gè)區(qū)間,且每個(gè)區(qū)間對(duì)應(yīng)一個(gè) CPU,然后根據(jù)所述哈希值,判定該哈希值所落區(qū)間,從而得到該IP數(shù)據(jù)包所對(duì)應(yīng)CPU。
9.一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)系統(tǒng),其特征在于,包括獲取互聯(lián)網(wǎng)中數(shù)據(jù)包的模塊;在該數(shù)據(jù)包為隧道鏈路數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解封裝,以得到IP數(shù)據(jù)包的模塊;采用哈希算法對(duì)該IP數(shù)據(jù)包的五元組進(jìn)行哈希運(yùn)算,并根據(jù)得到的哈希值及其哈希 表大小、該多核CPU中CPU數(shù)量,計(jì)算得到相應(yīng)CPU,再將該哈希值標(biāo)記至該IP數(shù)據(jù)包中,然 后將該已標(biāo)記的IP數(shù)據(jù)包發(fā)送至所述CPU中的模塊。
10.如權(quán)利要求8所述的一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)系統(tǒng),其特征在于,包括根據(jù)該 多核CPU中CPU數(shù)量n,將所述哈希表平均分成η個(gè)區(qū)間,且每個(gè)區(qū)間對(duì)應(yīng)一個(gè)CPU,然后根 據(jù)所述哈希值,判定該哈希值所落區(qū)間,從而得到該IP數(shù)據(jù)包所對(duì)應(yīng)CPU的模塊。
全文摘要
本發(fā)明涉及一種基于多核構(gòu)架的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)。本發(fā)明首先獲取互聯(lián)網(wǎng)中的數(shù)據(jù)包;然后在該數(shù)據(jù)包為隧道鏈路數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解封裝,以得到IP數(shù)據(jù)包;然后再采用哈希算法對(duì)該IP數(shù)據(jù)包的五元組進(jìn)行哈希運(yùn)算,并根據(jù)得到的哈希值及其哈希表大小、該多核CPU中CPU數(shù)量,計(jì)算得到相應(yīng)CPU,然后將該哈希值標(biāo)記至該IP數(shù)據(jù)包中,再將該已標(biāo)記的IP數(shù)據(jù)包發(fā)送至所述CPU中。本發(fā)明提高了固網(wǎng)設(shè)備在無線互聯(lián)網(wǎng)中的利用率,實(shí)現(xiàn)了共享資源的免鎖設(shè)計(jì),其能夠應(yīng)用于無線互聯(lián)網(wǎng)中。
文檔編號(hào)H04L12/56GK101964749SQ20101028966
公開日2011年2月2日 申請(qǐng)日期2010年9月21日 優(yōu)先權(quán)日2010年9月21日
發(fā)明者劉鵬飛, 陳鑫 申請(qǐng)人:北京網(wǎng)康科技有限公司