專(zhuān)利名稱(chēng):硬件加速的多核處理器ip隧道分片報(bào)文流保序方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,特別涉及網(wǎng)絡(luò)安全設(shè)備,具體涉及一種硬件加速的多 核處理器IP隧道分片報(bào)文流保序方法。
背景技術(shù):
網(wǎng)絡(luò)的不斷發(fā)展及普及帶來(lái)日益嚴(yán)峻的安全問(wèn)題。傳統(tǒng)的網(wǎng)絡(luò)安全設(shè)備,從功能 和性能上都已經(jīng)很難滿足需求。使用ASIC技術(shù)的網(wǎng)絡(luò)安全設(shè)備性能高,但靈活性不夠,不 能適應(yīng)日益變化的網(wǎng)絡(luò)安全問(wèn)題。使用通用處理器的網(wǎng)絡(luò)安全設(shè)備由于處理器具有可編程 性,靈活性很高,但性能不佳。隨著硬件及芯片技術(shù)的不斷發(fā)展,多核處理器技術(shù)越來(lái)越成熟和普及。網(wǎng)絡(luò)安全 設(shè)備的設(shè)計(jì)也逐漸采用硬件加速器和多核處理器相結(jié)合的架構(gòu),這樣既有可編程的靈活 性,又能提高性能。采用硬件加速器和多核處理器相結(jié)合的架構(gòu)的設(shè)備內(nèi),由于有多個(gè)甚至幾十個(gè)處 理器并行處理,處理器間的同步與互斥開(kāi)銷(xiāo)使得系統(tǒng)的性能很難隨著處理器核的增加而線 性增長(zhǎng)。而且處理器間的同步與互斥也使得軟件更加復(fù)雜、容易出錯(cuò)和難以維護(hù)。為了減少同步與互斥操作,降低軟件復(fù)雜性,根據(jù)(源地址,源端口,目的地址,目 的端口,協(xié)議)五元組哈希值,同一個(gè)TCP/UDP流被送至同一個(gè)處理器處理。在IP隧道模 式下,數(shù)據(jù)報(bào)文采用(外部IP頭,內(nèi)部IP頭,TCP/UDP頭,數(shù)據(jù))封裝模式,其中(內(nèi)部IP頭, TCP/UDP 頭)描述一個(gè) TCP/UDP 流。但是,在IP隧道模式下,如果IP報(bào)文被分片,內(nèi)部IP頭和TCP/UDP頭有可能會(huì)被 封裝在不同的IP分片報(bào)文中。這樣會(huì)導(dǎo)致提取不到源端口、目的端口信息,只能根據(jù)內(nèi)部 IP頭(源地址,目的地址)二元組哈希值來(lái)負(fù)載均衡分片報(bào)文。這就導(dǎo)致IP隧道模式下同 一個(gè)TCP/UDP流的普通報(bào)文和分片報(bào)文負(fù)載均衡到不同的處理器上。為了報(bào)文流保序等原 因,分片報(bào)文被重組后需要提交到同一流內(nèi)普通報(bào)文被處理的處理器上。這時(shí)兩個(gè)處理器 上的軟件之間不可避免的產(chǎn)生直接交互,需要用到同步與互斥等原語(yǔ)操作,增加處理器的 軟件開(kāi)銷(xiāo)和浪費(fèi)處理器Cache互聯(lián)總線的帶寬,影響系統(tǒng)性能。
發(fā)明內(nèi)容
針對(duì)上述問(wèn)題,申請(qǐng)人進(jìn)行了改進(jìn)研究,提供一種硬件加速的多核處理器IP隧道 分片報(bào)文流保序方法,在多核處理器架構(gòu)網(wǎng)絡(luò)安全設(shè)備內(nèi)由硬件加速器參與完成IP隧道 分片報(bào)文流保序的功能,減少處理器的開(kāi)銷(xiāo),提升系統(tǒng)性能。本發(fā)明的技術(shù)方案如下
在IP隧道模式下,在多核處理器的IP隧道分片報(bào)文在被處理器重組后,由輸出處理 引擎回路至輸入處理引擎,并被重新提交到處理同一 TCP/UDP流內(nèi)普通報(bào)文的另一處理器 上。其進(jìn)一步的技術(shù)方案為具體步驟如下1)以太網(wǎng)MAC從物理鏈路上收到一 TCP/UDP流,將該TCP/UDP流報(bào)文送至輸入處理引
擎;
2 )在IP隧道模式下,如果是非分片的普通報(bào)文,輸入處理弓I擎從報(bào)文內(nèi)部IP頭和TCP/ UDP頭中提取源地址,源端口,目的地址,目的端口,協(xié)議號(hào)五元組信息并計(jì)算哈希值,由哈 希值確定第一接收處理器;
3)在IP隧道模式下,如果是分片報(bào)文,輸入處理引擎從報(bào)文內(nèi)部IP頭提取源地址,目 的地址二元組信息并計(jì)算哈希值,由哈希值確定第二接收處理器;
4)第二接收處理器對(duì)IP隧道分片報(bào)文進(jìn)行重組,并將重組好的報(bào)文發(fā)送給輸出處理 引擎;
5)輸出處理引擎將重組好的IP隧道報(bào)文回路至輸入處理器引擎;
6)輸入處理引擎從重組好的IP隧道報(bào)文的內(nèi)部IP頭和TCP/UDP頭提取源地址,源端 口,目的地址,目的端口,協(xié)議號(hào)五元組信息并計(jì)算哈希值,將重組好的IP隧道報(bào)文提交至 第一接收處理器。所述第一接收處理器與第二接收處理器為不同的處理器,或?qū)儆诓煌奶幚砥骱?心。以及,其進(jìn)一步的技術(shù)方案為
在IP隧道分片報(bào)文被重組后由輸出處理引擎回路至輸入處理引擎的過(guò)程中,報(bào)文的 有效載荷一直存放于存儲(chǔ)器中,在分片重組的處理器至輸出處理引擎至輸入處理引擎至處 理同一 TCP/UDP流內(nèi)普通報(bào)文的處理器的路徑上傳輸?shù)氖菆?bào)文描述信息。所述輸入處理引擎、輸出處理引擎與多核處理器處于同一芯片內(nèi),或處于不同芯 片內(nèi)。所述輸入處理引擎、輸出處理引擎與以太網(wǎng)MAC處于同一芯片內(nèi),或處于不同芯 片內(nèi)。本發(fā)明的有益技術(shù)效果是
本發(fā)明為了實(shí)現(xiàn)IP隧道分片報(bào)文進(jìn)行流保序,采用分片重組、回路、重新哈希后,最終 使得IP隧道內(nèi)同一 TCP/UDP流在IP分片報(bào)文重組后由同一個(gè)處理器處理;處理器之間沒(méi) 有互斥與同步的原語(yǔ)操作,從而減少由此產(chǎn)生的處理器執(zhí)行資源開(kāi)銷(xiāo)、降低處理器Cache 互聯(lián)總線帶寬資源的額外消耗、提升系統(tǒng)性能。
圖1是本發(fā)明涉及的系統(tǒng)或芯片的組成結(jié)構(gòu)示意圖。圖2是本發(fā)明中各處理單元的交互步驟及順序示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
做進(jìn)一步說(shuō)明。如圖1所示,本發(fā)明涉及的系統(tǒng)或單一芯片與現(xiàn)有技術(shù)相同,其由如下主要單元 組成以太網(wǎng)MAC (Media Access Control,即媒體訪問(wèn)控制)、輸入處理引擎、輸出處理引 擎、多核處理器及互聯(lián)總線。參考圖1,在本發(fā)明中,上述各單元所起的作用如下輸入處理引擎及輸出處理引擎完成硬件加速功能;輸入處理引擎將TCP/UDP流(包括普通報(bào)文及分片報(bào)文)負(fù)載均衡到 各個(gè)處理器;輸出處理引擎將來(lái)自處理器的報(bào)文通過(guò)以太網(wǎng)MAC發(fā)送到物理鏈路上或?qū)⒅?組后的IP隧道報(bào)文回路至輸入處理引擎。IP隧道分片報(bào)文被處理器重組后由輸出處理引 擎通過(guò)重組報(bào)文回路發(fā)送至輸入處理引擎,并被重新提交到處理與該IP隧道分片報(bào)文屬 于同一 TCP/UDP流內(nèi)的普通報(bào)文的處理器。在IP隧道模式下,輸入處理弓I擎根據(jù)內(nèi)部IP頭和TCP/UDP頭中的以源地址,源端 口,目的地址,目的端口,協(xié)議組成的五元組哈希值將普通報(bào)文負(fù)載均衡到各個(gè)處理器;并 根據(jù)內(nèi)部IP頭中的以源地址,目的地址組成的二元組哈希值將分片報(bào)文負(fù)載均衡到各個(gè) 處理器;IP隧道分片報(bào)文被處理器重組后,提交給輸出處理引擎回路至輸入處理引擎,輸 入處理引擎重新根據(jù)以源地址,源端口,目的地址,目的端口,協(xié)議組成的五元組哈希值將 所述重組報(bào)文提交到處理同一 TCP/UDP流內(nèi)普通報(bào)文的處理器上。上述IP隧道分片報(bào)文流保序的過(guò)程中,報(bào)文的有效載荷一直存放于存儲(chǔ)器中,分 片重組的處理器至輸出處理引擎至輸入處理引擎至處理同一 TCP/UDP流內(nèi)普通報(bào)文的處 理器的路徑上沒(méi)有報(bào)文的有效載荷的拷貝,傳輸?shù)闹皇菆?bào)文描述信息。輸入處理引擎、輸出 處理引擎與多核處理器以及以太網(wǎng)MAC可在同一芯片內(nèi),也可在不同的芯片內(nèi)。本發(fā)明可以按照如下所述來(lái)具體實(shí)施
采用ASIC或FPGA實(shí)現(xiàn)多個(gè)以太網(wǎng)MAC、輸入處理引擎和輸出處理引擎。多核處理器采 用6核或12核X86 CPU。ASIC或FPGA與X86多核處理器采用xl6 gen2 pci_e總線連接。上述多核處理器也可以是任何指令集的可編程處理器,此處不為限定。如圖2所示,本發(fā)明的具體處理步驟如下
步驟1 以太網(wǎng)MAC將從物理鏈路上收到的報(bào)文通過(guò)FIFO送給輸入處理引擎。步驟加在IP隧道模式下,如果是非分片的普通報(bào)文,輸入處理引擎從報(bào)文內(nèi)部 IP頭和TCP/UDP頭中提取(源地址,源端口,目的地址,目的端口,協(xié)議號(hào))五元組信息并計(jì) 算哈希值,根據(jù)哈希值最后8位查找映射表,確定接收處理器A,把報(bào)文提交給該處理器A。步驟2b 在IP隧道模式下,如果是分片報(bào)文,輸入處理引擎從報(bào)文內(nèi)部IP頭提取 (源地址,目的地址)二元組信息并計(jì)算哈希值,根據(jù)哈希值最后8位查找映射表,確定接收 處理器B,把報(bào)文提交給該處理器B。步驟3 處理器B對(duì)IP隧道分片報(bào)文進(jìn)行重組,重組好的報(bào)文發(fā)送給輸出處理引擎。步驟4 輸出處理引擎將重組好的IP隧道報(bào)文通過(guò)FIFO回路至輸入處理器引擎。步驟5 輸入處理引擎從重組好的IP隧道報(bào)文的內(nèi)部IP頭和TCP/UDP頭提取五 元組信息并計(jì)算哈希值查映射表,將重組好的IP隧道報(bào)文提交至處理器A。經(jīng)過(guò)上述步驟,實(shí)現(xiàn)了 IP隧道內(nèi)同一 TCP/UDP流的報(bào)文經(jīng)重組后都在同一個(gè)處理 器內(nèi)處理。以上所述的僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明不限于以上實(shí)施例??梢岳斫?,本 領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和構(gòu)思的前提下直接導(dǎo)出或聯(lián)想到的其他改進(jìn)和變 化,均應(yīng)認(rèn)為包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其特征在于在IP隧道 模式下,在多核處理器的IP隧道分片報(bào)文在被處理器重組后,由輸出處理引擎回路至輸入 處理引擎,并被重新提交到處理同一 TCP/UDP流內(nèi)普通報(bào)文的另一處理器上。
2.根據(jù)權(quán)利1所述硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其特征在于具 體步驟如下1)以太網(wǎng)MAC從物理鏈路上收到一 TCP/UDP流,將該TCP/UDP流報(bào)文送至輸入處理引擎;2 )在IP隧道模式下,如果是非分片的普通報(bào)文,輸入處理弓I擎從報(bào)文內(nèi)部IP頭和TCP/ UDP頭中提取源地址,源端口,目的地址,目的端口,協(xié)議號(hào)五元組信息并計(jì)算哈希值,由哈 希值確定第一接收處理器;3)在IP隧道模式下,如果是分片報(bào)文,輸入處理引擎從報(bào)文內(nèi)部IP頭提取源地址,目 的地址二元組信息并計(jì)算哈希值,由哈希值確定第二接收處理器;4)第二接收處理器對(duì)IP隧道分片報(bào)文進(jìn)行重組,并將重組好的報(bào)文發(fā)送給輸出處理 引擎;5)輸出處理引擎將重組好的IP隧道報(bào)文回路至輸入處理器引擎;6)輸入處理引擎從重組好的IP隧道報(bào)文的內(nèi)部IP頭和TCP/UDP頭提取源地址,源端 口,目的地址,目的端口,協(xié)議號(hào)五元組信息并計(jì)算哈希值,將重組好的IP隧道報(bào)文提交至 第一接收處理器。
3.根據(jù)權(quán)利2所述硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其特征在于 所述第一接收處理器與第二接收處理器為不同的處理器,或?qū)儆诓煌奶幚砥骱诵摹?br>
4.根據(jù)權(quán)利廣3中任一項(xiàng)所述硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其 特征在于在IP隧道分片報(bào)文被重組后由輸出處理引擎回路至輸入處理引擎的過(guò)程中,報(bào) 文的有效載荷一直存放于存儲(chǔ)器中,在分片重組的處理器至輸出處理引擎至輸入處理引擎 至處理同一 TCP/UDP流內(nèi)普通報(bào)文的處理器的路徑上傳輸?shù)氖菆?bào)文描述信息。
5.根據(jù)權(quán)利廣3中任一項(xiàng)所述硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其 特征在于所述輸入處理引擎、輸出處理引擎與多核處理器處于同一芯片內(nèi),或處于不同芯 片內(nèi)。
6.根據(jù)權(quán)利廣3中任一項(xiàng)所述硬件加速的多核處理器IP隧道分片報(bào)文流保序方法,其 特征在于所述輸入處理引擎、輸出處理引擎與以太網(wǎng)MAC處于同一芯片內(nèi),或處于不同芯 片內(nèi)。
全文摘要
本發(fā)明涉及硬件加速的多核處理器IP隧道分片報(bào)文流保序方法。多核處理器架構(gòu)的網(wǎng)絡(luò)安全設(shè)備中,在IP隧道模式下,同一個(gè)TCP/UDP流內(nèi)的普通IP報(bào)文和分片IP報(bào)文會(huì)被負(fù)載均衡到不同的處理器。為了對(duì)流內(nèi)的報(bào)文保序,不同的處理器之間要做額外的同步與互斥,消耗處理器的執(zhí)行資源及處理器Cache互聯(lián)總線的帶寬資源。為了解決這一問(wèn)題,本發(fā)明在分片報(bào)文被處理器重組后,交由硬件加速器重新提交到處理普通報(bào)文的處理器,使得IP隧道內(nèi)同一個(gè)TCP/UDP流的后續(xù)處理在同一個(gè)處理器上進(jìn)行,由此降低多核處理器架構(gòu)網(wǎng)絡(luò)安全設(shè)備內(nèi)軟硬件對(duì)IP隧道分片報(bào)文流保序的處理復(fù)雜度和開(kāi)銷(xiāo)。
文檔編號(hào)H04L12/56GK102104544SQ20111002648
公開(kāi)日2011年6月22日 申請(qǐng)日期2011年1月25日 優(yōu)先權(quán)日2011年1月25日
發(fā)明者丁賢根, 繆慶軍 申請(qǐng)人:無(wú)錫網(wǎng)芯科技有限公司, 江蘇華麗網(wǎng)絡(luò)工程有限公司