下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 基于網(wǎng)絡(luò)微處理器包過濾硬件防火墻的研究 胡成偉 時間:2009年06月18日 字 體: 大 中 小 關(guān)鍵詞: 摘要:關(guān)鍵詞:網(wǎng)絡(luò)微處理器;防火墻;包過濾;微引擎;并行處理?1。防火墻可根據(jù)其處理數(shù)據(jù)的層次分為:包過濾防火墻
2、、狀態(tài)檢測防火墻、代理服務(wù)器防火墻和核處理防火墻。對于要求高速處理的硬件防火墻(處理能力大于2.5 Gb/s),無法完成代理服務(wù)防火墻功能和核處理防火墻功能。基于包過濾功能硬件防火墻是高速防火墻能采用的基本實現(xiàn)策略。以下將就NP實現(xiàn)包過濾的方法進行研究。1 IXP2400網(wǎng)絡(luò)處理器NP是專門為處理網(wǎng)絡(luò)數(shù)據(jù)包而設(shè)計的可編程處理器,它能夠并行、高速完成網(wǎng)絡(luò)數(shù)據(jù)處理。IXP2400是INTEL公司的第二代NP產(chǎn)品,它采用多內(nèi)核并行結(jié)構(gòu),由1個XScale Core作為核心處理器,以及8個32位獨立可編程、支持多線程的微引擎(MicroEngine)構(gòu)成。NP的體系結(jié)構(gòu)可分為兩個層面:控制層面和數(shù)據(jù)層
3、面。控制層面由XScale Core處理,它的主要任務(wù)是完成對整個NP各部件的初始化,運行操作系統(tǒng),完成復(fù)雜而非實時運算。控制層面一般安裝的操作系統(tǒng)是:VxWorks或LINUX等。由于控制層面是構(gòu)建在一個強大的XScale Core之上,其開發(fā)與一般的嵌入式系統(tǒng)開發(fā)相類似。數(shù)據(jù)層面主要負責(zé)對數(shù)據(jù)包的收發(fā)和實時數(shù)據(jù)處理,由微引擎來完成。微引擎是32位的采用RISC技術(shù)實現(xiàn)的微型MCU,對它的編程與傳統(tǒng)嵌入式系統(tǒng)開發(fā)不同,由INTEL提供的MicroC和MicroASM支持。微引擎和XScale Core在工作時關(guān)系如圖1所示。?2?包過濾的規(guī)則包過濾是基于一系列規(guī)則對進出防火墻的數(shù)據(jù)包進行過濾
4、。規(guī)則其實是一個“if conditions then action”的判斷,一組規(guī)則構(gòu)成一個規(guī)則表(如表1)。當(dāng)IP數(shù)據(jù)包通過這個規(guī)則表的檢查后,允許通過的IP包就轉(zhuǎn)發(fā),禁止通過的IP包就被攔截下來,其結(jié)果如表2所示 。對于一個小型的網(wǎng)絡(luò),其規(guī)則一般有幾百個,對于一個中型的ISP服務(wù)網(wǎng)絡(luò),其規(guī)則一般有數(shù)千個,對于一個大型的網(wǎng)絡(luò)其規(guī)則一般超過2萬個。在進行包過濾時,最重要的就是進行規(guī)則的匹配。如何快速查找匹配規(guī)則,減少存儲器容量成為包過濾算法的研究重點,參考文獻2中詳細地討論了一些包過濾算法。?本文主要是討論NP在整個過程中各部分的工作,為敘述簡單將不涉及復(fù)雜的規(guī)則查找,采用線性搜索,即從上到
5、下對規(guī)則表進行查找,在制定規(guī)則表時,優(yōu)先級高的規(guī)則將被安排在表的前面。3 基于NP的包過濾IP數(shù)據(jù)包過濾處理由IXP2400中的微引擎完成。微引擎是一個個獨立的MCU,有自己的寄存器、存儲器,執(zhí)行各自的指令序列,互不干擾,而且每個微引擎支持8個硬件線程。在數(shù)據(jù)包處理的過程中,IXP2400的8個微引擎可以采用串行流水線方式(如圖2)工作,或以并行處理方式(如圖3)工作。在參考文獻3中指出并發(fā)處理比串行流水線處理的效率要高25。?在串行流水線工作方式中,每一個微引擎(ME)完成的工作不同,當(dāng)一個微引擎完成其工作后,將數(shù)據(jù)包交給下一個微引擎繼續(xù)后續(xù)工作,所以每一個微引擎執(zhí)行的代碼不同。在并發(fā)處理方
6、式中,每一個微引擎完成的任務(wù)相同,每一個微引擎所執(zhí)行的代碼相同。本文在安排微引擎時,包的接收采用ME0,當(dāng)它處理完后將結(jié)果交給ME1ME6,這6個微引擎并發(fā)對數(shù)據(jù)包進行規(guī)則匹配,匹配結(jié)束后將包交由ME7完成發(fā)送任務(wù)。整個包過濾處理結(jié)構(gòu)既有串行方式,又有并發(fā)方式,這是因為在整個處理過程中,進行規(guī)則匹配所需的時間和運算都比接收和發(fā)送的要多,將更多的處理能力部署在這一環(huán)節(jié),可以消除整個系統(tǒng)處理的瓶頸。3.1 接收處理的實現(xiàn)每個線程一次循環(huán)只處理一個mpacket,如果一個包分成幾個mpacket,則由幾次這樣的循環(huán)完成接收。由于每個IXP2400的微引擎都有8個硬件支持的線程,在接收包處理時,可以出
7、現(xiàn)多個線程并發(fā)接收多個mpacket,這樣效率當(dāng)然會很高,但同樣也可能打亂Packet C的重組。為避免這種情況的發(fā)生,各線程的工作次序是嚴格規(guī)定的。各空閑線程在RX_THREAD_FREELIST登記時,就按順序登記,線程1在最前,線程8在最后。當(dāng)?shù)谝粋€觸發(fā)到來時,則觸發(fā)線程1,線程1在處理時,若再接收到觸發(fā)時,線程2接收觸發(fā),如此類推,當(dāng)線程1處理完后,它跟在線程8后面,如此形成一個閉合的線程處理鏈。在將數(shù)據(jù)從RBUF拷貝至DRAM的過程中,線程要經(jīng)過一個對線程序號敏感的微處理塊,以保證多線程在拷貝過程中是按順序進行的。3.2 規(guī)則匹配處理的實現(xiàn)本文所涉及的規(guī)則表中規(guī)則數(shù)目較少,搜索匹配規(guī)
8、則的方法也相應(yīng)簡單,采用的是線性搜索方法。處理的流程如圖5所示。如前所述,采用ME1ME6共6個微引擎同時對數(shù)據(jù)包進行包過濾,每個微引擎有8個線程,所以可用于包過濾的線程有6×848個,每個線程都采用無限循環(huán)方式。當(dāng)接收隊列中有有效元素,便發(fā)出處理信號。在線程池中,處在等待狀態(tài)的某一線程便會從SRAM中的接收隊列取出頭元素。接著,線程根據(jù)所取得元素中的包句柄從DRAM中將幀首部讀進來,然后判斷是否是一個有效的以太網(wǎng)幀。如果不是,則丟棄包,并返回等待狀態(tài)。如果是有效幀,則從DRAM中讀出IP首部,對在SRAM中的規(guī)則進行匹配。包過濾規(guī)則由XScale Core在SRAM 中建立一個規(guī)則
9、表,并可根據(jù)實際情況對表進行增加和刪除。線程從SRAM中將一條規(guī)則讀進來,進行匹配運算。若匹配,則根據(jù)規(guī)則中允許/禁止進行后續(xù)工作;若允許,則將把DRAM中對應(yīng)的包的句柄作為新的元素插入SRAM中的發(fā)送隊列中;若禁止,則釋放DRAM中對應(yīng)的包空間,并返回線程的等待狀態(tài)。若不匹配,則從SRAM中讀入下一條規(guī)則,重復(fù)以上工作,直到最后一條;如果仍找不到匹配規(guī)則,則將接下來的工作交給XSale Core完成。每個包過濾線程完成一個包的過濾,從接收隊列中將包句柄一一取出,處理完后,再在發(fā)送隊列中將其插入到隊列的尾部。但可能因為有些包處理得快,有些包處理得慢,使原來的接收順序因為處理速度的不同而打亂。為
10、了使發(fā)送隊列句柄的順序保持與接收隊列一致,采用了阻塞式順序包算法(Blocking Packet-ordering Athorithm)4。3.3 發(fā)送處理的實現(xiàn)發(fā)送任務(wù)由ME7來完成,ME7有8個線程,每個線程完成如下工作:(1)線程發(fā)現(xiàn)發(fā)送隊列中的有效包句柄則從SRAM的發(fā)送隊列中將隊列頭元素取下來;(2)計算每個mpacket在包中的位置,把包從DRAM中以mpacket大小拷貝到TBUF中,其中TBUF是MSF中的發(fā)送緩沖區(qū);(3)寫入TBUF的單元控制字,表明TBUF包含有效數(shù)據(jù);(4)當(dāng)MSF收到EOP標志的mpacket時,表明該包結(jié)束,此后該包將交由外部的MAC設(shè)備傳輸。其過程
11、如圖6所示。?一個發(fā)送線程一次循環(huán)只負責(zé)一個mpacket的操作,周而復(fù)始。如同接收線程那樣,發(fā)送線程排好隊,如流水線般將發(fā)送隊列中的元素對應(yīng)的包,分解為mpacket單元,并逐個按順序搬運到TBUF緩沖區(qū)。在上述包過濾規(guī)則匹配時,微引擎會多次訪問DRAM,以及在SRAM中進行搜索。當(dāng)規(guī)則表中有較多規(guī)則時,查找規(guī)則的算法會變得相當(dāng)復(fù)雜,將嚴重影響防火墻的處理速度。要使防火墻能快速地完成包過濾功能,可采用2個層次的手段:其一,改進查找算法,比如使用基于狀態(tài)的動態(tài)包過濾算法;其二,充分應(yīng)用NP內(nèi)部的并行處理架構(gòu),安排好各微引擎工作內(nèi)容,協(xié)調(diào)好微引擎內(nèi)各線程的工作,使NP能高效并行地運行。參考文獻1 宋斌,程勇,劉科全NP架構(gòu)千兆線速防火墻的體系結(jié)構(gòu)與關(guān)鍵技術(shù),信息安全與通信保密,2004(8):22-25.2?PANKAJ G,KEOWN MAlgorithms for packet classificationNew York:IEEE,March/April 2001:24-32.3?DEEPA S,F(xiàn)ANG,Wu Chang. Performance analysis of multi-dimensional packet classification on programmable network processors. New
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年甘肅建筑安全員B證考試題庫及答案
- 2025江西省安全員考試題庫附答案
- 上腔靜脈壓迫綜合征的處理
- 《汽車出口調(diào)查》課件
- 單位人力資源管理制度集錦合集十篇
- 課題申報書:偵查中的數(shù)據(jù)畫像研究
- 2024年培訓(xùn)學(xué)校工作總結(jié)(34篇)
- 2025關(guān)于合同解除的條件工程
- 2025關(guān)于出租車駕駛員勞動合同范本
- 平滑劑560行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 剝皮芝煤礦消防安全自檢方案及自查報告
- GB/T 22740-2008地理標志產(chǎn)品靈寶蘋果
- 《人力資源情緒管理問題研究開題報告(含提綱)》
- 哮喘吸入裝置的正確使用方法課件
- 2023年成都東部集團有限公司招聘筆試題庫及答案解析
- 角點網(wǎng)格一.角點網(wǎng)格定義
- 自動控制原理全套課件
- 視頻監(jiān)控室值班記錄表
- 歌曲《梁?!泛喿V完整版
- 小學(xué)語文教研組期末考試質(zhì)量分析
- 校園安全存在問題及對策
評論
0/150
提交評論