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