專利名稱:千兆位防火墻設(shè)備的制作方法
技術(shù)領(lǐng)域:
千兆位防火墻設(shè)備屬于防火墻設(shè)備技術(shù)領(lǐng)域。
2)當(dāng)網(wǎng)絡(luò)帶寬增加到1Gbps時(shí),為了進(jìn)行雙向流量控制,要求總線能夠接收和發(fā)送雙向數(shù)據(jù),也就是達(dá)到4Gbps。普通的32位PCI總線僅僅能夠提供1Gbps的帶寬,根本不可能滿足這種要求;而66MHz-64位的PCI總線也僅僅能夠進(jìn)行數(shù)據(jù)的傳輸,沒有剩余時(shí)間給CPU進(jìn)行報(bào)文的處理。解決的辦法是采用半雙工操作,也就是僅僅利用50%的網(wǎng)絡(luò)帶寬;或者是采用兩個(gè)監(jiān)控系統(tǒng)分別進(jìn)行內(nèi)、外網(wǎng)的過濾,但是這將帶來成本增倍、系統(tǒng)復(fù)雜度增加、可靠性降低等不利因素;而且,即使如此,系統(tǒng)也需要空耗50%的時(shí)間進(jìn)行報(bào)文在網(wǎng)卡和內(nèi)存之間的傳輸。
3)普通百兆、千兆網(wǎng)卡并不是一個(gè)針對(duì)防火墻系統(tǒng)而定制的設(shè)備,在大量接收和發(fā)送報(bào)文的時(shí)候會(huì)頻繁產(chǎn)生中斷,系統(tǒng)在進(jìn)行進(jìn)程切換的時(shí)候?qū)?huì)消耗很多時(shí)間。如果中斷沒有及時(shí)響應(yīng),將直接導(dǎo)致報(bào)文的丟失,網(wǎng)絡(luò)性能急劇惡化。
4)由于CPU需要進(jìn)行報(bào)文分析,分析所消耗的時(shí)間并不是一個(gè)固定值,而是依賴于特定的規(guī)則。為了滿足應(yīng)用的要求,一個(gè)實(shí)用的防火墻系統(tǒng)需要對(duì)同一個(gè)報(bào)文進(jìn)行幾十甚至上百個(gè)不同的分析、判斷,極可能消耗較多時(shí)間,也可能因?yàn)椴荒芗皶r(shí)處理導(dǎo)致后繼報(bào)文的成片丟失。
由于前述原因,在網(wǎng)絡(luò)高帶寬環(huán)境下,傳統(tǒng)防火墻系統(tǒng)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足要求了。圖2是一組實(shí)測(cè)的數(shù)據(jù)。為了測(cè)試傳統(tǒng)防火墻方案的最佳效率,通過一臺(tái)運(yùn)行于Linux上的微機(jī)服務(wù)器配備雙千兆網(wǎng)卡(66MHz-64位PCI卡)在內(nèi)核級(jí)完成報(bào)文的轉(zhuǎn)發(fā),其間沒有任何規(guī)則處理。即使如此,其結(jié)果也不能滿足商業(yè)應(yīng)用的要求??梢钥闯?,對(duì)于一般網(wǎng)絡(luò)報(bào)文的平均長(zhǎng)度(200~300字節(jié)),傳統(tǒng)防火墻系統(tǒng)對(duì)網(wǎng)絡(luò)帶寬的影響達(dá)到60%以上。
本發(fā)明的特征在于它含有內(nèi)網(wǎng)接口單元,包括和內(nèi)網(wǎng)相連的光電轉(zhuǎn)換器(1I)以及與其互連的串并轉(zhuǎn)換器(2I);外網(wǎng)接口單元,包括和外網(wǎng)相連的光電轉(zhuǎn)換器(1E)以及與其互連的串并轉(zhuǎn)換器(2E);現(xiàn)場(chǎng)可編程門陣列FPGA制成的核心數(shù)據(jù)處理單元,包括分別依次與上述串并轉(zhuǎn)換器(2I)、(2E)的輸出端串接的幀提取單元(3I)、(3E)和規(guī)則搜索控制單元(4I)(4E),分別依次與上述串并轉(zhuǎn)換器(2I)、(2E)的輸入端串接的上述規(guī)則搜索控制單元(4E)(4I)和轉(zhuǎn)發(fā)控制單元(5E)(5I),分別順次串接于上述幀提取單元(3I)、(3E)與轉(zhuǎn)發(fā)控制單元(5I)(5E)間的報(bào)文緩沖單元(6I)、(6E),PCI接口單元(7),分別依次同時(shí)經(jīng)內(nèi)部總線P1、P2與上述PCI接口單元(7)、規(guī)則搜索控制單元(4I)(4E)相連的,交互連接有靜態(tài)隨機(jī)存儲(chǔ)器SRAM(10)的SRAM接口單元(8)和交互連接有內(nèi)容尋址存儲(chǔ)器CAM(11)的CAM接口單元(9),其中的規(guī)則搜索控制單元(4I)(4E)各含有在輸入端與幀提取單元(3I)、(3E)的報(bào)文參數(shù)信號(hào)輸出端相連的同時(shí)又與上述CAM接口互連的CAM查詢單元,在輸入端與上述CAM查詢單元輸出端相連的同時(shí)又與上述SRAM接口互連并另行輸出控制字的SRAM查詢單元;SRAM(10);CAM(11)。所述的核心數(shù)據(jù)處理單元中的SRAM接口單元(8)與SRAM(10)互連,CAM接口單元(9)與CAM(11)互連。所述的核心數(shù)據(jù)處理單元中的CAM接口單元(9)與CAM(11)互連,CAM(11)的輸出端與SRAM(10)的輸入端相連,SRAM(11)的其他信號(hào)與CAM接口單元(9)互連。所述的核心數(shù)據(jù)處理單元中的規(guī)則搜索控制單元(4I)(4E)是輸入端在與幀提取單元(3I)、(3E)的報(bào)文參數(shù)輸出端相連的同時(shí)又與CAM接口單元(9)互連,且另行輸出控制字的CAM查詢單元。所述的幀提取單元(3I)、(3E)含有輸入端與串并轉(zhuǎn)換器(2I)、(2E)的數(shù)據(jù)輸出端相連的幀同步單元;輸入端與上述幀同步單元的輸出端相連,而輸出完整數(shù)據(jù)幀的輸出端與上述報(bào)文緩沖單元(6I)、(6E)的輸入端相連的解碼單元;輸入端與上述解碼單元的輸出端相連,而其輸出報(bào)文參數(shù)的輸出端與上述規(guī)則搜索控制單元(4I)(4E)的輸入端相連的參數(shù)提取單元。所述的報(bào)文緩沖單元(6I)、(6E)是用以暫時(shí)保存接收到的完整數(shù)據(jù)幀的大容量先入先出存儲(chǔ)器FIFO。所述的轉(zhuǎn)發(fā)控制單元(5I)(5E)含有輸入端與上述報(bào)文緩沖單元(6I)、(6E)的幀數(shù)據(jù)輸出端相連的幀讀取單元;輸入端分別與上述幀讀取單元的輸出端和規(guī)則搜索控制單元(4I)(4E)的輸出端相連的轉(zhuǎn)發(fā)單元;輸入端與上述轉(zhuǎn)發(fā)單元輸出端相連的封裝單元以及輸入端與上述封裝單元輸出端相連而輸出端與串并轉(zhuǎn)換器(2I)、(2E)的數(shù)據(jù)輸入端相連的編碼單元。
使用證明,它實(shí)現(xiàn)了預(yù)期目的。
圖2現(xiàn)有防火墻系統(tǒng)平均網(wǎng)絡(luò)幀長(zhǎng)度與網(wǎng)絡(luò)帶寬的關(guān)系曲線。
圖3本發(fā)明提出的千兆位防火墻設(shè)備的電路原理框圖。
圖4本發(fā)明提出的千兆位防火墻設(shè)備中規(guī)則搜索控制單元(4I)(4E)的電路原理框圖,此時(shí)SRAM(10),CAM(11)分別與SRAM接口單元(8)、CAM接口單元(9)互連。
圖5本發(fā)明提出的千兆位防火墻設(shè)備中規(guī)則搜索控制單元(4I)(4E)通過CAM接口單元(9)與CAM(11)、SRAM(10)的另一種連接方式圖。
圖6本發(fā)明提出的千兆位防火墻設(shè)備中幀提取單元(3I)、(3E)的電路原理框圖。
圖7本發(fā)明提出的千兆位防火墻設(shè)備中轉(zhuǎn)發(fā)控制單元(5I)、(5E)的電路原理框圖。
圖3中光電轉(zhuǎn)換器(1I)、(1E)的功能是將光信號(hào)轉(zhuǎn)換成為電信號(hào),或者相反的過程。光信號(hào)被轉(zhuǎn)換為PECL(Positive Emitter Coupled Logic,正電壓射極耦合邏輯)的電信號(hào)傳送到串并轉(zhuǎn)換器(2I)、(2E)進(jìn)行處理;從串并轉(zhuǎn)換器(2I)、(2E)發(fā)送過來的PECL信號(hào)被轉(zhuǎn)換為光信號(hào)發(fā)送出去。
圖3中串并轉(zhuǎn)換器(2I)、(2E)是將從光電轉(zhuǎn)換器傳送過來的高速串行數(shù)據(jù)轉(zhuǎn)換為并行的數(shù)據(jù),及其相反的過程。
圖3中的光電轉(zhuǎn)換器(1I)、(1E)以及串并轉(zhuǎn)換器(2I)、(2E)被統(tǒng)稱為網(wǎng)絡(luò)接口單元。連接內(nèi)網(wǎng)的網(wǎng)絡(luò)接口單元被稱為內(nèi)網(wǎng)接口單元;連接外網(wǎng)的網(wǎng)絡(luò)接口單元被稱為外網(wǎng)接口單元。
圖3中核心數(shù)據(jù)處理單元的主要功能是進(jìn)行數(shù)據(jù)的處理和轉(zhuǎn)發(fā),它包括幀提取單元(3I)、(3E)、報(bào)文緩沖單元(6I)、(6E)、轉(zhuǎn)發(fā)控制單元(5I)(5E)、規(guī)則搜索控制單元(4I)(4E)、SRAM接口單元(8)、CAM接口單元(9)、PCI接口單元(7)等。核心數(shù)據(jù)處理單元的功能可以用FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)實(shí)現(xiàn),型號(hào)是EP1K100。
圖3中靜態(tài)隨機(jī)存儲(chǔ)器SRAM(10)用于保存規(guī)則所對(duì)應(yīng)的報(bào)文控制碼。如果不使用SRAM(10)保存規(guī)則所對(duì)應(yīng)的報(bào)文控制碼,也可以直接通過內(nèi)容尋址存儲(chǔ)器CAM(11)的地址或類似信息進(jìn)行報(bào)文控制。
圖3中內(nèi)容尋址存儲(chǔ)器(11)中存儲(chǔ)了規(guī)則的描述,當(dāng)輸入報(bào)文基本信息后,就可以輸出匹配該報(bào)文的規(guī)則號(hào)。規(guī)則的描述包括但不限于報(bào)文接收接口、幀類型、IP報(bào)文類型、源IP地址、目標(biāo)IP地址、源端口地址、目標(biāo)端口地址等。
千兆防火墻系統(tǒng)中的規(guī)則搜索控制單元(4I)(4E)用于根據(jù)報(bào)文基本參數(shù)獲得該報(bào)文的控制字。如圖4所示,它包括SRAM查詢單元,CAM查詢單元。CAM查詢單元將輸入的報(bào)文參數(shù)投遞到CAM接口查詢存儲(chǔ)于CAM中的規(guī)則,獲得匹配該報(bào)文的規(guī)則號(hào),并將該規(guī)則號(hào)投遞到SRAM查詢單元。SRAM查詢單元利用該規(guī)則號(hào)通過SRAM接口查詢SRAM,獲得該規(guī)則的控制字。
另外,通過改變核心數(shù)據(jù)處理單元、CAM、SRAM的連接關(guān)系,如圖5所示,還可以簡(jiǎn)化規(guī)則搜索控制單元(4I)(4E)。此時(shí),規(guī)則搜索控制單元(4I)(4E)只需要CAM查詢單元即可完成查詢控制字的要求。CAM查詢單元將報(bào)文參數(shù)輸出到CAM接口單元,匹配該報(bào)文的規(guī)則號(hào)將直接輸出到SRAM,相應(yīng)的控制字則由SRAM返回搜索控制單元(4I)(4E)。
幀提取單元(3I)、(3E)的結(jié)構(gòu)如圖6所示,包括幀同步單元、解碼單元、參數(shù)提取單元。
根據(jù)IEEE std.802.3(電子工程師協(xié)會(huì)802.3規(guī)范)的要求,幀同步單元需要根據(jù)輸入數(shù)據(jù)中的報(bào)文起始定界符/S/以及報(bào)文結(jié)束定界符/T/來確定報(bào)文的始末,并將其輸出到解碼單元。解碼單元?jiǎng)t按照IEEE std.802.3的要求進(jìn)行8B/10B的解碼工作,獲得可理解的報(bào)文數(shù)據(jù)。這些數(shù)據(jù)被輸出到報(bào)文緩沖單元(6I)、(6E),同時(shí)被發(fā)送到參數(shù)提取單元。參數(shù)提取單元需要獲得報(bào)文的源IP地址、目標(biāo)IP地址等基本報(bào)文參數(shù),這些信息被存放在報(bào)文的固定地址處,通過對(duì)輸入數(shù)據(jù)進(jìn)行簡(jiǎn)單計(jì)數(shù)即可獲取。
其中,幀同步單元與解碼單元位置可以互換。
報(bào)文緩沖單元(6I)、(6E)由大容量FIFO(First In First Out,先入先出存儲(chǔ)器)組成。用于暫時(shí)保存接收到的完整數(shù)據(jù)幀。
轉(zhuǎn)發(fā)控制單元(5I)(5E)的結(jié)構(gòu)如圖7所示,包括幀讀取單元、轉(zhuǎn)發(fā)單元、封裝單元、編碼單元。幀讀取單元用于將完整的數(shù)據(jù)幀從報(bào)文緩沖單元(6I)、(6E)中讀出??刂茊卧邮盏綀?bào)文控制字,并決定當(dāng)前報(bào)文是轉(zhuǎn)發(fā)還是丟棄。如果報(bào)文需要轉(zhuǎn)發(fā),則傳遞到封裝單元,按照IEEE std.802.3的要求進(jìn)行封裝,然后由編碼單元進(jìn)行8B/10B的編碼,最后發(fā)送出去。
SRAM接口單元與CAM接口單元的功能基本一致。核心數(shù)據(jù)處理模塊通過SRAM接口單元對(duì)SRAM進(jìn)行數(shù)據(jù)讀寫,通過CAM接口單元對(duì)CAM進(jìn)行數(shù)據(jù)讀、寫、搜索等操作。在核心數(shù)據(jù)處理單元的內(nèi)部,他們接受不同單元的數(shù)據(jù)傳輸請(qǐng)求,按照固定的優(yōu)先級(jí)或者輪轉(zhuǎn),實(shí)現(xiàn)一個(gè)多路選通器的功能。
PCI接口單元實(shí)現(xiàn)了核心數(shù)據(jù)處理模塊與主機(jī)系統(tǒng)的通訊。它的功能在PCI Local BusSpecification 2.1(PCI本地總線規(guī)范2.1版)中有具體的描述。本PCI接口單元基本實(shí)現(xiàn)了該規(guī)范中所定義的PCI主設(shè)備的要求。
其主要工作流程如下1.網(wǎng)絡(luò)中的物理信號(hào)經(jīng)過光電轉(zhuǎn)換器(1I)、(1E)和串并轉(zhuǎn)換器(2I)、(2E)變成10位的并行數(shù)據(jù),并交給幀提取單元(3I)、(3E);2.幀提取單元(3I)、(3E)對(duì)數(shù)據(jù)流進(jìn)行解碼等操作,獲得數(shù)據(jù)幀,將數(shù)據(jù)幀投遞到報(bào)文緩沖單元(6I)、(6E),并將其相關(guān)信息發(fā)送到規(guī)則搜索控制單元(4I)(4E);3.報(bào)文緩沖單元(6I)、(6E)臨時(shí)保存幀數(shù)據(jù);4.規(guī)則搜索控制單元(4I)(4E)將報(bào)文信息通過CAM接口單元(9)投遞到CAM(11),并獲得匹配的規(guī)則號(hào);5.規(guī)則搜索控制單元(4I)(4E)利用該報(bào)文所匹配的規(guī)則號(hào),通過SRAM接口單元(8)查詢SRAM(10),獲得該報(bào)文的控制字;6.規(guī)則搜索控制單元(4I)(4E)將該報(bào)文的控制碼投遞到轉(zhuǎn)發(fā)控制單元(5I)(5E);7.轉(zhuǎn)發(fā)控制單元(5I)(5E)將幀從報(bào)文緩沖單元(6I)、(6E)中讀出,根據(jù)控制碼決定將該報(bào)文丟棄,或者按照以太網(wǎng)要求進(jìn)行封裝后轉(zhuǎn)發(fā)到串并轉(zhuǎn)換器(2I)、(2E);8.串并轉(zhuǎn)換器(2I)、(2E)將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),然后通過光電轉(zhuǎn)換器(1I)、(1E)變成光信號(hào)發(fā)送出去。
按照上面所述的方法,從內(nèi)網(wǎng)接口接收到的幀通過核心數(shù)據(jù)處理單元的處理以后從外網(wǎng)接口發(fā)送出去;從外網(wǎng)接口接收到的報(bào)文從內(nèi)網(wǎng)接口發(fā)送出去。核心數(shù)據(jù)處理單元直接查詢CAM(11)以及SRAM(10)即可獲得該報(bào)文是否允許轉(zhuǎn)發(fā),而不用將整個(gè)報(bào)文傳遞到微機(jī)系統(tǒng),從而可以高速地進(jìn)行報(bào)文轉(zhuǎn)發(fā)控制,克服了軟件處理的瓶頸。
權(quán)利要求
1.千兆位防火墻設(shè)備,含有網(wǎng)絡(luò)接口單元和數(shù)據(jù)處理單元,其特征在于,它含有內(nèi)網(wǎng)接口單元,包括和內(nèi)網(wǎng)相連的光電轉(zhuǎn)換器(1I)以及與其互連的串并轉(zhuǎn)換器(2I);外網(wǎng)接口單元,包括和外網(wǎng)相連的光電轉(zhuǎn)換器(1E)以及與其互連的串并轉(zhuǎn)換器(2E);現(xiàn)場(chǎng)可編程門陣列FPGA制成的核心數(shù)據(jù)處理單元,包括分別依次與上述串并轉(zhuǎn)換器(2I)、(2E)的輸出端串接的幀提取單元(3I)、(3E)和規(guī)則搜索控制單元(4I)(4E),分別依次與上述串并轉(zhuǎn)換器(2I)、(2E)的輸入端串接的上述規(guī)則搜索控制單元(4E)(4I)和轉(zhuǎn)發(fā)控制單元(5E)(5I),分別順次串接于上述幀提取單元(3I)、(3E)與轉(zhuǎn)發(fā)控制單元(5I)(5E)間的報(bào)文緩沖單元(6I)、(6E),PCI接口單元(7),分別依次同時(shí)經(jīng)內(nèi)部總線P1、P2與上述PCI接口單元(7)、規(guī)則搜索控制單元(4I)(4E)相連的,交互連接有靜態(tài)隨機(jī)存儲(chǔ)器SRAM(10)的SRAM接口單元(8)和交互連接有內(nèi)容尋址存儲(chǔ)器CAM(11)的CAM接口單元(9),其中的規(guī)則搜索控制單元(4I)(4E)各含有在輸入端與幀提取單元(3I)、(3E)的報(bào)文參數(shù)信號(hào)輸出端相連的同時(shí)又與上述CAM接口互連的CAM查詢單元,在輸入端與上述CAM查詢單元輸出端相連的同時(shí)又與上述SRAM接口互連并另行輸出控制字的SRAM查詢單元;SRAM(10);CAM(11)。
2.根據(jù)權(quán)利要求1所述的千兆位防火墻設(shè)備,其特征在于所述的核心數(shù)據(jù)處理單元中的SRAM接口單元(8)與SRAM(10)互連,CAM接口單元(9)與CAM(11)互連。
3.根據(jù)權(quán)利要求1所述的千兆位防火墻設(shè)備,其特征在于所述的核心數(shù)據(jù)處理單元中的CAM接口單元(9)與CAM(11)互連,CAM(11)的輸出端與SRAM(10)的輸入端相連,SRAM(11)的其他信號(hào)與CAM接口單元(9)互連。
4.根據(jù)權(quán)利1或3所述的千兆位防火墻設(shè)備,其特征在于所述的核心數(shù)據(jù)處理單元中的規(guī)則搜索控制單元(4I)(4E)是輸入端在與幀提取單元(3I)、(3E)的報(bào)文參數(shù)輸出端相連的同時(shí)又與CAM接口單元(9)互連,且另行輸出控制字的CAM查詢單元。
5.根據(jù)權(quán)利要求1所述的千兆位防火墻設(shè)備,其特征在于所述的幀提取單元(3I)、(3E)含有輸入端與串并轉(zhuǎn)換器(2I)、(2E)的數(shù)據(jù)輸出端相連的幀同步單元;輸入端與上述幀同步單元的輸出端相連,而輸出完整數(shù)據(jù)幀的輸出端與上述報(bào)文緩沖單元(6I)、(6E)的輸入端相連的解碼單元;輸入端與上述解碼單元的輸出端相連,而其輸出報(bào)文參數(shù)的輸出端與上述規(guī)則搜索控制單元(4I)(4E)的輸入端相連的參數(shù)提取單元。
6.根據(jù)權(quán)利要求1所述的千兆位防火墻設(shè)備,其特征在于所述的報(bào)文緩沖單元(6I)、(6E)是用以暫時(shí)保存接收到的完整數(shù)據(jù)幀的大容量先入先出存儲(chǔ)器FIFO。
7.根據(jù)權(quán)利要求1所述的千兆位防火墻設(shè)備,其特征在于所述的轉(zhuǎn)發(fā)控制單元(5I)(5E)含有輸入端與上述報(bào)文緩沖單元(6I)、(6E)的幀數(shù)據(jù)輸出端相連的幀讀取單元;輸入端分別與上述幀讀取單元的輸出端和規(guī)則搜索控制單元(4I)(4E)的輸出端相連的轉(zhuǎn)發(fā)單元;輸入端與上述轉(zhuǎn)發(fā)單元輸出端相連的封裝單元以及輸入端與上述封裝單元輸出端相連而輸出端與串并轉(zhuǎn)換器(2I)、(2E)的數(shù)據(jù)輸入端相連的編碼單元。
全文摘要
千兆位防火墻設(shè)備屬于防火墻技術(shù)領(lǐng)域,其特征在于,它含有內(nèi)、外網(wǎng)接口單元,它含有依次互連的光電轉(zhuǎn)換器和串并轉(zhuǎn)換器;核心數(shù)據(jù)處理單元,它含有分別與內(nèi)、外網(wǎng)接口單元中串并轉(zhuǎn)換器輸出端依次串接的幀提取單元、規(guī)則搜索控制單元,分別與內(nèi)、外網(wǎng)接口單元中串并轉(zhuǎn)換器輸入端依次串接的上述規(guī)則搜索控制單元、轉(zhuǎn)發(fā)控制單元,分別順次串接于幀提取單元和轉(zhuǎn)發(fā)控制單元間的報(bào)文緩沖單元,PCI總線接口單元,分別經(jīng)內(nèi)部總線與PCI總線接口單元、各規(guī)則搜索控制單元互連的SRAM的和CAM(內(nèi)容尋址存儲(chǔ)器)的接口單元,SRAM和CAM。它可以用現(xiàn)場(chǎng)可編程門陣列FPGA來構(gòu)成上述核心數(shù)據(jù)處理單元。它針對(duì)現(xiàn)有技術(shù)的缺點(diǎn),采用全硬件方式,高效地進(jìn)行報(bào)文的規(guī)則匹配,克服軟件瓶頸,實(shí)現(xiàn)千兆位防火墻安全控制。
文檔編號(hào)G06F11/14GK1397890SQ0212930
公開日2003年2月19日 申請(qǐng)日期2002年8月30日 優(yōu)先權(quán)日2002年8月30日
發(fā)明者張承, 蔣東興, 劉啟新 申請(qǐng)人:清華大學(xué)