亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于網(wǎng)絡(luò)處理器的防火墻系統(tǒng)軟件框架設(shè)計(jì)

        2012-02-08 13:02:08杜劍峰
        關(guān)鍵詞:引擎

        杜劍峰

        (揚(yáng)州市職業(yè)大學(xué)信息工程學(xué)院,江蘇揚(yáng)州 225000)

        1 網(wǎng)絡(luò)處理器IXP2400簡介

        Intel公司是網(wǎng)絡(luò)處理器開發(fā)的領(lǐng)軍者,而網(wǎng)絡(luò)處理器IXP2400又是Intel公司開發(fā)的第二代網(wǎng)絡(luò)處理器系列中的代表性產(chǎn)品之一。

        每個IXP2400中有8個微引擎,每個微引擎中又包含有8個硬件線程。微引擎的指令系統(tǒng)是經(jīng)過專門優(yōu)化的,每一條指令都能在一個指令周期內(nèi)完成。微引擎內(nèi)部的多線程并行工作機(jī)制及多微引擎并行的工作機(jī)制,能夠在相當(dāng)程度上提高IXP2400網(wǎng)絡(luò)處理器的數(shù)據(jù)處理能力。通過多個線程之間的線程切換,IXP2400可將訪問存儲器的時延隱藏在指令執(zhí)行周期之后,使微引擎能夠發(fā)揮最好的性能,這是IXP2400在網(wǎng)絡(luò)數(shù)據(jù)處理方面優(yōu)于通用處理器的關(guān)鍵因素之一。

        IXP2400通過一個高性能處理結(jié)構(gòu):XScale處理器,采用了Intel獨(dú)有的超流水線技術(shù),處理各種復(fù)雜的任務(wù),如復(fù)雜算法的處理、系統(tǒng)任務(wù)的管理、異常數(shù)據(jù)包的處理等。Intel公司還開發(fā)了一種名為“IXA可移植結(jié)構(gòu)”的模塊化編程結(jié)構(gòu),并將其應(yīng)用于第二代網(wǎng)絡(luò)處理器中,只要項(xiàng)目中的處理器采用了這個架構(gòu),那么就可以在項(xiàng)目間實(shí)現(xiàn)程序代碼的重用,從而能夠大大縮短項(xiàng)目軟件系統(tǒng)的開發(fā)時間,進(jìn)一步節(jié)約開發(fā)成本。

        IXP2400的存儲器單元支持2個SRAM接口和1個DRAM接口,它對存儲器進(jìn)行分級組織,分類存儲數(shù)據(jù),以適應(yīng)不同的需求。IXP2400還采用了很多硬件加速單元,如hash、TCAM,來提高數(shù)據(jù)包處理的效率。

        2 防火墻結(jié)構(gòu)

        2.1 防火墻硬件結(jié)構(gòu)

        防火墻系統(tǒng)由一臺含IXP2400網(wǎng)絡(luò)處理器的防火墻和一臺用于遠(yuǎn)程控制防火墻的計(jì)算機(jī)這兩部分組成。

        含IXP2400網(wǎng)絡(luò)處理器的防火墻主機(jī)是防火墻系統(tǒng)的主體,主要由兩塊IXP2400芯片(即Ingress和Egress)和存儲設(shè)備(DRAM、SRAM),以及一塊IXD2410外接網(wǎng)卡組成。防火墻主機(jī)的核心部件是IXP2400網(wǎng)絡(luò)處理器,網(wǎng)絡(luò)處理器芯片由8個微引擎(分兩組)、SRAM控制器、DRAM控制器、Xscale Core、SHaC、MSF部分組成。

        防火墻主機(jī)通過MSF芯片從IXD2410外接網(wǎng)卡中接收數(shù)據(jù)包,在IXP2400芯片(Ingress)上完成網(wǎng)絡(luò)地址轉(zhuǎn)換、虛擬專用網(wǎng)、對數(shù)據(jù)包進(jìn)行第三層和第四層上的包過濾(含狀態(tài)檢測)之后,通過內(nèi)部通信協(xié)議將數(shù)據(jù)傳遞給另一塊IXP2400芯片(Egress),由這塊IXP2400芯片(Egress)完成諸如加二層包頭、排隊(duì)、發(fā)送等一連串的工作。

        用于遠(yuǎn)程控制防火墻的計(jì)算機(jī)能為防火墻系統(tǒng)提供遠(yuǎn)程控制、日志儲存和分析等功能。

        2.2 防火墻軟件結(jié)構(gòu)

        2.2.1 軟件結(jié)構(gòu)設(shè)計(jì)

        基于網(wǎng)絡(luò)處理器技術(shù)的防火墻的軟件可分為兩層:數(shù)據(jù)平面(Data Plane,有些地方也稱之為數(shù)據(jù)高速通道或下層)和控制平面(Control Plane,有些地方也稱之為核心控制平面或上層)。

        什么是數(shù)據(jù)平面?在支持硬件多線程的ME上運(yùn)行,系統(tǒng)的硬件提供支撐、調(diào)度、資源管理的程序代碼的組合就是數(shù)據(jù)平面。數(shù)據(jù)平面中的程序能夠直接地訪問整個系統(tǒng)中幾乎所用的硬件資源。高速處理和轉(zhuǎn)發(fā)普通數(shù)據(jù)包是數(shù)據(jù)平面的基本功能,通過防火墻系統(tǒng)的數(shù)據(jù)包首先會被數(shù)據(jù)平面所接收到,數(shù)據(jù)平面需要判斷能否進(jìn)行處理,對無法進(jìn)行后繼處理的數(shù)據(jù)包進(jìn)行丟棄,如果有數(shù)據(jù)包,數(shù)據(jù)平面雖然無法進(jìn)行處理,但是控制平面可以處理的,數(shù)據(jù)平面會根據(jù)處理的需要投遞給控制平面。實(shí)際上經(jīng)過防火墻的絕大部分?jǐn)?shù)據(jù)都僅僅需要數(shù)據(jù)平面進(jìn)行處理,而只有少量的數(shù)據(jù)包需要投遞到控制平面上去。

        什么是控制平面呢?控制平面是由運(yùn)行在XScale Core處理芯片上的程序代碼組合。由于數(shù)據(jù)平面需要高速的轉(zhuǎn)發(fā)網(wǎng)絡(luò)上的海量數(shù)據(jù)包,因此為了不影響防火墻的性能,當(dāng)數(shù)據(jù)平面接收到一些少量但是處理比較麻煩的應(yīng)用層的數(shù)據(jù)包時,將這些處理速度慢且花費(fèi)時間長的數(shù)據(jù)包發(fā)送到上面的控制平面進(jìn)行獨(dú)立的特殊處理。同時,控制平面還能夠?yàn)榉阑饓Φ南到y(tǒng)管理人員提供一個簡單易用的系統(tǒng)管理和性能監(jiān)控的平臺。

        數(shù)據(jù)平面主要實(shí)現(xiàn)異常數(shù)據(jù)包處理、包過濾、NAT等功能,控制平面主要實(shí)現(xiàn)包過濾核心、NAT核心、VPN、URL過濾、配置管理、日志等功能。對控制平面按照不同的功能還可以進(jìn)一步劃分為三個部分:控制部分、管理部分和數(shù)據(jù)平面模塊的對應(yīng)部分。

        數(shù)據(jù)包預(yù)處理微塊組檢測到異常數(shù)據(jù)包后,根據(jù)異常數(shù)據(jù)包的種類,將數(shù)據(jù)包發(fā)往控制平面的VPN模塊、URL過濾模塊等模塊進(jìn)行相應(yīng)的處理。經(jīng)過處理的數(shù)據(jù)包再被發(fā)回到數(shù)據(jù)平面的預(yù)處理微塊組,由預(yù)處理微塊組交給處理微塊組。處理微塊組接收到數(shù)據(jù)包后,由包過濾微塊和NAT微塊等進(jìn)行處理。

        從數(shù)據(jù)平面發(fā)上來的異常數(shù)據(jù)包會被發(fā)到控制平面上面,根據(jù)數(shù)據(jù)包的不同類型,進(jìn)行相應(yīng)的處理,這部分主要包括分片重組模塊、URL過濾模塊、VPN模塊;數(shù)據(jù)平面微塊對應(yīng)部分主要是為數(shù)據(jù)平面上面的兩個微塊組:包過濾微塊、NAT微塊,提供所需要的一系列初始化工作、數(shù)據(jù)管理工作、內(nèi)存管理工作等,這部分主要包括包過濾核心模塊和NAT核心模塊這兩個;管理部分主要是對防火墻系統(tǒng)進(jìn)行必要的管理,從控制計(jì)算機(jī)輸入防火墻的過濾規(guī)則、配置防火墻,管理所用的過濾規(guī)則,記錄防火墻的異常情況,這部分主要包括配置管理模塊、日志模塊。

        2.2.2 數(shù)據(jù)平面設(shè)計(jì)

        數(shù)據(jù)平面工作在微引擎上,是數(shù)據(jù)處理的主要層面。IXP2400微引擎上的軟件根據(jù)功能的不同被劃分為多個微塊。所謂微塊是什么?它們是一個個的具有相對獨(dú)立功能的微代碼函數(shù),單獨(dú)的一個微塊能執(zhí)行一部分的數(shù)據(jù)包處理功能。多個微塊(Microblock)可以通過系統(tǒng)的dispatch loop程序連接成一個微塊組(microblock group),每個微引擎上只能運(yùn)行一個微塊組,但是一個微塊組可以可運(yùn)行于一個微引擎或多個微引擎上,那么,網(wǎng)絡(luò)處理器的微引擎之間是如何進(jìn)行通信的呢?它們是通過系統(tǒng)提供的資源:scratch ring、鄰居寄存器(NNR)、共享存儲器來通信的。

        1)RX微塊組:從MSF接收mpacket并重組完整的數(shù)據(jù)包之后,將當(dāng)前數(shù)據(jù)表相關(guān)的一系列信息傳遞給了下一級數(shù)據(jù)包預(yù)處理微塊組。

        2)預(yù)處理微塊組:為將防火墻的整體效率和可用性進(jìn)行提升,在處理微塊組之前的一個做準(zhǔn)備工作的微塊組。進(jìn)行數(shù)據(jù)包的MAC、IP綁定檢查,將碎片包、VPN包、需要URL過濾的數(shù)據(jù)包發(fā)往Xscale處理器進(jìn)行具體的處理。

        3)處理微塊組:負(fù)責(zé)靜態(tài)包過濾、動態(tài)包過濾、DNAT、SNAT、路由查詢等功能。大部分的數(shù)據(jù)包都是在這個微塊組進(jìn)行處理的。

        4) Queue Manager模塊組:這是一個驅(qū)動模塊,運(yùn)行在一個單獨(dú)的微引擎上,負(fù)責(zé)利用SRAM Controller中的Q-Array硬件結(jié)構(gòu)對發(fā)送隊(duì)列執(zhí)行入隊(duì)和出隊(duì)操作。

        5)TX微塊組:接收來自QM經(jīng)過出隊(duì)操作取出的一個數(shù)據(jù)表,接著將這個數(shù)據(jù)包分拆為多個mpacket,接著將mpacket移入TBUF中,最后通過MSF中的發(fā)送狀態(tài)機(jī)將mpacket發(fā)送到通信網(wǎng)絡(luò)中去。

        2.2.3 控制平面設(shè)計(jì)

        控制平面是工作在Xscale上的,控制平面主要負(fù)責(zé)處理那些數(shù)據(jù)平面無法處理的異常數(shù)據(jù)包和特殊的數(shù)據(jù)包,控制平面還要負(fù)責(zé)對防火墻進(jìn)行管理配置、日志記錄等管理功能。

        Xscale上的軟件是以核心組件(Core Componet,CC)這樣的形式進(jìn)行組織的。核心組件的開發(fā)是利用IXA Portability Framework中的Resource Manager API(資源管理器接口)和CCI庫進(jìn)行的。核心組件和數(shù)據(jù)平面上的微塊(Microblock)協(xié)調(diào)進(jìn)行工作,共同完成數(shù)據(jù)包的處理任務(wù)。核心組件與微塊是一對一或者一對多的關(guān)系,核心組件負(fù)責(zé)處理對應(yīng)微塊上傳的異常數(shù)據(jù)包和特殊數(shù)據(jù)包。

        例如:數(shù)據(jù)平面上的VPN加密數(shù)據(jù)包檢測微塊,檢測到VPN加密數(shù)據(jù)包后,需要將該數(shù)據(jù)包相應(yīng)的信息發(fā)往控制平面的VPN CC,由控制平面的VPN CC對該數(shù)據(jù)包進(jìn)行解密,然后VPN CC將解密后的數(shù)據(jù)包發(fā)往數(shù)據(jù)平面進(jìn)行后續(xù)處理,處理結(jié)束后,還要再由VPN數(shù)據(jù)包加密微塊發(fā)往控制平面的VPN CC,由VPN CC再次進(jìn)行加密等處理,然后才能發(fā)送到目的主機(jī)。

        控制平面各個模塊的具體功能如下:

        1)VPN CC:對數(shù)據(jù)平面VPN加密數(shù)據(jù)包檢測微塊發(fā)來的VPN加密數(shù)據(jù)包進(jìn)行解密,對數(shù)據(jù)平面VPN數(shù)據(jù)包加密微塊發(fā)來的過濾后的VPN數(shù)據(jù)包進(jìn)行加密。

        2) 分片重組CC:對數(shù)據(jù)平面發(fā)來的分片數(shù)據(jù)包進(jìn)行分片重組,還原為一個完整的數(shù)據(jù)包,再發(fā)往數(shù)據(jù)平面進(jìn)行后續(xù)處理。

        3) URL過濾CC:對數(shù)據(jù)平面發(fā)來的數(shù)據(jù)包進(jìn)行URL地址過濾和關(guān)鍵字過濾,將通過過濾的數(shù)據(jù)包發(fā)回?cái)?shù)據(jù)平面進(jìn)行后續(xù)處理。

        4)包過濾核心:在防火墻啟動的時候?yàn)閿?shù)據(jù)平面的包過濾微塊進(jìn)行初始化、在運(yùn)行過程中對內(nèi)存進(jìn)行配置修改、結(jié)束時清理內(nèi)存,保存必要的信息等。

        5)NAT核心:在防火墻系統(tǒng)啟動的時候,幫助數(shù)據(jù)平面上的NAT模塊進(jìn)行必要的初始化工作、在防火墻系統(tǒng)運(yùn)行過程中對內(nèi)存進(jìn)行配置修改、在防火墻系統(tǒng)結(jié)束運(yùn)行時清理內(nèi)存,并保存必要的信息等。

        6) 配置管理CC:一旦管理員通過字符界面或圖形界面的配置管理功能對系統(tǒng)現(xiàn)有的過濾規(guī)則進(jìn)行了修改,或者管理員對整個防火墻系統(tǒng)進(jìn)行配置后,系統(tǒng)需要重新生成規(guī)則表文件或是防火墻的配置文件。配置管理模塊必須盡可能快地為相應(yīng)的模塊更新內(nèi)存中的數(shù)據(jù)。同時配置管理模塊還必須通知日志模塊,管理員已經(jīng)進(jìn)行了新的配置,需要記錄到數(shù)據(jù)庫中。

        7)日志CC:控制平面的某些CC如果遇見一些特殊的情況,需要進(jìn)行記錄,那么這些CC就要通知日志CC進(jìn)行記錄,以備管理員進(jìn)行檢查。由于防火墻上存儲空間有限,日志CC經(jīng)過一段時間的記錄,還需要將日志記錄發(fā)往遠(yuǎn)程主機(jī)的數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理。

        3 包過濾功能的實(shí)現(xiàn)

        所有的包過濾微塊是運(yùn)行在0組的第2個、0組的第3個、1組的第0個、1組的第1個這四個微引擎上的。由于每個微引擎中有8個硬件線程,這四個微引擎就有32個硬件線程。這些硬件線程被按照一定的順序以類似于流水線的方式組織起來。

        運(yùn)行在微引擎上的那些代碼又可被分為初始化和調(diào)度循環(huán)兩類。只有防火墻系統(tǒng)啟動的時候才運(yùn)行初始化代碼,初始化結(jié)束之后,程序系統(tǒng)會自動進(jìn)入死循環(huán)狀態(tài)。

        每個線程單獨(dú)的處理一個數(shù)據(jù)包,數(shù)據(jù)包的處理根據(jù)每一次的存儲器的讀取,從邏輯上被劃分為phase1-phaseN,而存儲器的讀取通常需要進(jìn)行線程的切換,網(wǎng)絡(luò)處理器正是利用這一手段將存儲器的訪問時延隱藏在指令執(zhí)行時間的后面。

        而網(wǎng)絡(luò)處理器中的微引擎硬件線程是非搶占式的,如果當(dāng)前的線程不主動放棄資源并進(jìn)入休眠狀態(tài),那么那些處于就緒狀態(tài)的線程就不能夠獲得執(zhí)行的權(quán)限,且不能使用信號喚醒處于休眠狀態(tài)的線程并讓它進(jìn)入就緒狀態(tài)。

        上面這段代碼的含義是,如果定義了START_ME,而且DL_NEXT_ME的值等于START_ME的值,則向下一個微引擎的1號線程發(fā)信號,將其喚醒;否則向下一個微引擎的0號線程發(fā)信號,將其喚醒。

        正是采用網(wǎng)絡(luò)處理器的硬件多線程技術(shù),優(yōu)化了需要大量數(shù)據(jù)處理的包過濾模塊的性能,使得防火墻能夠滿足千兆主干網(wǎng)絡(luò)的要求。

        4 結(jié)束語

        網(wǎng)絡(luò)處理器為防火墻這種傳統(tǒng)的網(wǎng)絡(luò)設(shè)備提供了一個嶄新的設(shè)計(jì)開發(fā)平臺,本文利用 Intel IXP2400網(wǎng)絡(luò)處理器的先進(jìn)架構(gòu),針對微引擎硬件多線程并行處理和Xscale處理器對復(fù)雜任務(wù)處理的高性能,提出了多層次、模塊化的軟件框架設(shè)計(jì),不但滿足了網(wǎng)絡(luò)用戶對于防火墻功能上的要求,而且滿足了性能上的要求。在此體系下,實(shí)現(xiàn)了功能強(qiáng)大的高性能防火墻系統(tǒng)。

        [1]杜劍峰.基于網(wǎng)絡(luò)處理器的IPv6硬件防火墻控制平面程序設(shè)計(jì)與研究[D].成都:電子科技大學(xué),2006.

        [2]肖寧.基于網(wǎng)絡(luò)處理器的IPV6狀態(tài)跟蹤防火墻設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006.

        [3]Intel@R IXP2400 Network Processor Hardware Reference Manual[M].Intel Corporation,2004.

        猜你喜歡
        引擎
        以學(xué)促干 挺膺擔(dān)當(dāng) 激活砥礪前行的紅色引擎
        江陰市“三個創(chuàng)新”打造?;钒踩O(jiān)管新引擎
        新海珠,新引擎,新活力!
        消費(fèi)繼續(xù)發(fā)揮經(jīng)濟(jì)增長第一引擎作用
        三生 三大引擎齊發(fā)力
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        休閑垂釣 傳統(tǒng)漁業(yè)新引擎
        信息化,“盛京”加速的新引擎
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        免费一区啪啪视频| 日本一区二区在线播放| 亚洲精品乱码久久久久久蜜桃不卡 | 国产三级黄色的在线观看| 久久精品国产69国产精品亚洲| 日韩av午夜在线观看| 最近日本中文字幕免费完整 | 黑人免费一区二区三区| 91精品久久久中文字幕| 麻豆精品国产精华液好用吗| 99久久综合狠狠综合久久| 无遮高潮国产免费观看韩国| 国产在线一区二区三区四区乱码| 含紧一点h边做边走动免费视频 | 综合无码一区二区三区四区五区| 亚洲精品一区二区视频| 国产精品一区二区三区免费视频| 老少配老妇老熟女中文普通话| 五月综合高清综合网| 狼人综合干伊人网在线观看| 一区二区三区美女免费视频| av在线亚洲欧洲日产一区二区| 99精品免费视频| 亚洲av天堂一区二区| 国产公开免费人成视频| 国产第19页精品| 国产免费三级三级三级| 亚洲一区二区三区精品| 日本高清h色视频在线观看| 久久国产亚洲AV无码麻豆| 亚洲av免费看一区二区三区| 亚洲成av人片乱码色午夜| 国产无遮挡a片又黄又爽| 中文无码制服丝袜人妻AV| 97超碰精品成人国产| 熟女体下毛毛黑森林| 在线亚洲+欧美+日本专区| 色婷婷亚洲一区二区三区在线| 18禁裸男晨勃露j毛网站| 日韩激情小视频| 一区二区视频资源在线观看|