• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CN56xx網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)控制器的研究

      2012-06-25 07:03:26沈晶聶
      電視技術(shù) 2012年9期
      關(guān)鍵詞:鏈表數(shù)據(jù)包處理器

      沈晶聶,葉 猛

      (1.光纖通信技術(shù)和網(wǎng)絡(luò)國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430074;2.武漢郵電科學(xué)研究院,湖北 武漢 430074;3.武漢虹旭信息技術(shù)有限責(zé)任公司安全產(chǎn)品部,湖北 武漢 430074)

      如今上網(wǎng)是非常普遍的事情,在網(wǎng)絡(luò)上可以隨意發(fā)布信息,但是有些信息不能隨意發(fā)布到互聯(lián)網(wǎng)上,比如色情信息、暴力信息、反動(dòng)信息和病毒等,這些信息將會(huì)影響網(wǎng)絡(luò)安全、毒害青少年和影響社會(huì)和諧,所以需要一些技術(shù)手段來(lái)控制這些信息的隨意傳播,各大網(wǎng)站和監(jiān)管單位可以使用網(wǎng)絡(luò)控制器來(lái)達(dá)到這個(gè)目的。

      當(dāng)今網(wǎng)絡(luò)的發(fā)展非常迅速,高清電視、大量的下載致使網(wǎng)絡(luò)流量日益增大,使用傳統(tǒng)普通的處理器和軟件已經(jīng)不能很好地勝任處理這些數(shù)據(jù)包的任務(wù),此時(shí)網(wǎng)絡(luò)處理器應(yīng)運(yùn)而生。網(wǎng)絡(luò)處理器是專門設(shè)計(jì)用來(lái)處理網(wǎng)絡(luò)上的數(shù)據(jù)包的,它無(wú)論在靈活性還是性能方面都要優(yōu)于以前的硬件和純軟件方式。網(wǎng)絡(luò)處理器的出現(xiàn)為網(wǎng)絡(luò)系統(tǒng)構(gòu)建了一個(gè)硬件平臺(tái),能夠通過(guò)軟件的升級(jí)以適合不斷增長(zhǎng)的功能需求,為網(wǎng)絡(luò)技術(shù)的發(fā)展提供了開(kāi)放的舞臺(tái),因而具有十分重要的意義。將網(wǎng)絡(luò)處理器和網(wǎng)絡(luò)控制結(jié)合起來(lái)將使得網(wǎng)絡(luò)監(jiān)控更加方便,網(wǎng)絡(luò)處理器的強(qiáng)大功能使得監(jiān)控更加全面[1]。

      1 網(wǎng)絡(luò)控制器概述

      用戶管控系統(tǒng)對(duì)用戶來(lái)說(shuō)是透明的,用戶在正常使用網(wǎng)絡(luò)的時(shí)候是感覺(jué)不到它的存在的,只有當(dāng)用戶發(fā)布或者下載了非法信息的時(shí)候,網(wǎng)絡(luò)控制器才會(huì)出現(xiàn)干擾用戶的使用,使得用戶的不正當(dāng)行為不能實(shí)施。圖1給出了網(wǎng)絡(luò)控制器以及其輔助設(shè)備在網(wǎng)絡(luò)體系中的結(jié)構(gòu)拓?fù)鋱D。

      用戶管控系統(tǒng)的功能[2]介紹如下。

      用戶管理和服務(wù)功能:對(duì)用戶的信息、用戶的業(yè)務(wù)情況等進(jìn)行管理,并且為用戶的上網(wǎng)提供支持,保障用戶上網(wǎng)環(huán)境的安全。

      上網(wǎng)控制功能:主要是對(duì)用戶的信息進(jìn)行認(rèn)證,外聯(lián)非法網(wǎng)站的檢測(cè),病毒檢測(cè),以及對(duì)用戶上網(wǎng)行為的審計(jì)。

      圖1 用戶管控系統(tǒng)拓?fù)鋱D

      端點(diǎn)防護(hù)功能:該功能為用戶提供了端點(diǎn)系統(tǒng)安全防護(hù)的機(jī)制和手段,它按照安全服務(wù)的安全策略來(lái)具體實(shí)施端點(diǎn)系統(tǒng)的安全防護(hù)。

      接入管理功能:用來(lái)對(duì)接入網(wǎng)絡(luò)的用戶實(shí)施管理和檢查。

      用戶管控系統(tǒng)是工作在網(wǎng)絡(luò)層、傳輸層以及應(yīng)用層的安全審計(jì)系統(tǒng),通過(guò)用戶事先內(nèi)置的基本網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫(kù)應(yīng)用協(xié)議等分析模塊,記錄網(wǎng)絡(luò)事件,將進(jìn)出網(wǎng)絡(luò)的通信數(shù)據(jù)進(jìn)行實(shí)時(shí)和完整的還原,能夠重現(xiàn)用戶訪問(wèn)的網(wǎng)絡(luò)資源,然后進(jìn)行分析,再根據(jù)事先監(jiān)管單位在管理界面上設(shè)置的規(guī)則來(lái)進(jìn)行數(shù)據(jù)過(guò)濾,并將過(guò)濾出來(lái)的有用數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中供監(jiān)控單位查詢[3-5]。用戶管控系統(tǒng)最終目的是保證用戶使用網(wǎng)絡(luò)的安全性和網(wǎng)絡(luò)環(huán)境的良好。

      2 CN56xx網(wǎng)絡(luò)處理器

      CN56xx是Cavium Networks面向智能網(wǎng)絡(luò)、數(shù)據(jù)控制、存儲(chǔ)以及無(wú)線應(yīng)用的高性能網(wǎng)絡(luò)處理器方案。CN56xx具有多達(dá)12個(gè)MIPS64的處理器核,具有強(qiáng)大的數(shù)據(jù)處理能力,其片內(nèi)集成了多種硬件加密、壓縮引擎以及包處理加速引擎,并提供了硬件的隊(duì)列管理、調(diào)度、保序以及同步模塊,此外,CN56xx具有強(qiáng)大的接口擴(kuò)展能力:4路SGMII或者2路XAUI接口、USB2.0PHY、2路8通道PCIe 1.1接口。

      網(wǎng)絡(luò)控制器整個(gè)硬件平臺(tái)除了CN56xx網(wǎng)絡(luò)處理器這個(gè)核心部件以外,使用的平臺(tái)還包括有主控處理器MPC8247,其中包括 SDRAM256M,F(xiàn)lash64M,該處理器主要用來(lái)運(yùn)行系統(tǒng)的管理平臺(tái),對(duì)整個(gè)系統(tǒng)進(jìn)行管理,控制面接口支持10/100 Mbit/s自適應(yīng)以太網(wǎng)。整個(gè)平臺(tái)還包括雙通道4 Gbyte內(nèi)存,其規(guī)格是DDR2 SDRAM,主頻800 MHz。板載10GE/GE交換芯片提供4×10GE+24×1GE的數(shù)據(jù)面交換能力,可靈活控制數(shù)據(jù)流向。在I/O方面提供16路千兆以太網(wǎng)接口,4路GE接口。控制面和數(shù)據(jù)面都提供相應(yīng)的高速鏈路進(jìn)行連接,以達(dá)到靈活控制數(shù)據(jù)的目的[6]。

      網(wǎng)絡(luò)控制系統(tǒng)包括接入模塊、過(guò)濾模塊、轉(zhuǎn)發(fā)模塊、管理系統(tǒng)、規(guī)則庫(kù)5個(gè)部分。

      整個(gè)系統(tǒng)的處理流程是:接入模塊將數(shù)據(jù)接入到系統(tǒng)后進(jìn)行初步處理,將數(shù)據(jù)進(jìn)行重組還原,過(guò)濾模塊根據(jù)用戶下的不同規(guī)則來(lái)過(guò)濾數(shù)據(jù)包,然后通過(guò)轉(zhuǎn)發(fā)模塊來(lái)轉(zhuǎn)發(fā)這些數(shù)據(jù)到不同的指定地方,規(guī)則庫(kù)用來(lái)存放用戶指定的過(guò)濾和轉(zhuǎn)發(fā)規(guī)則的,管理系統(tǒng)對(duì)整個(gè)系統(tǒng)進(jìn)行管理,包括配置、性能、安全、用戶、故障5大方面的管理。

      CN56xx主要由數(shù)據(jù)處理模塊(PKI)包括數(shù)據(jù)驗(yàn)證模塊(PIP)和緩沖區(qū)申請(qǐng)模塊(IPD)、空閑緩沖池(FPA)、同步模塊(SSO)、核心(Core)、內(nèi)存(L2/DRAM)、數(shù)據(jù)輸出處理單元(PKO)等幾個(gè)核心部件來(lái)完成數(shù)據(jù)包的處理,其硬件結(jié)構(gòu)如圖2所示。

      圖2 CN56xx網(wǎng)絡(luò)處理器硬件結(jié)構(gòu)圖

      多核處理器在默認(rèn)情況下12個(gè)核心是使用的傳統(tǒng)流水線方式來(lái)進(jìn)行數(shù)據(jù)處理,簡(jiǎn)單的傳統(tǒng)流水線就是每個(gè)核只進(jìn)行數(shù)據(jù)包處理的一部分,數(shù)據(jù)包傳給下1個(gè)核直到處理完成。在該多核處理器上,通過(guò)讓每個(gè)核只接收1個(gè)組的任務(wù)來(lái)實(shí)現(xiàn)。在每個(gè)核完成它那部分的處理之后,它會(huì)改變數(shù)據(jù)包的任務(wù)組,把包傳給下1個(gè)核。但是這種傳統(tǒng)流水線在多數(shù)時(shí)候很多核是空閑的,因?yàn)樗诘却渌暮送瓿上鄳?yīng)步驟的處理,這樣就浪費(fèi)了許多資源,所以該技術(shù)對(duì)流水線架構(gòu)進(jìn)行了優(yōu)化,即優(yōu)化流水線[7-9]。

      在優(yōu)化流水線中,每個(gè)核可以執(zhí)行所有數(shù)據(jù)包處理階段。這很容易通過(guò)修改組掩碼來(lái)實(shí)現(xiàn)[10-11]。在這個(gè)模型中,每個(gè)核可以運(yùn)行相同的程序。在獲取任務(wù)操作返回包所在緩沖區(qū)指針之后,核心根據(jù)數(shù)據(jù)包的組編號(hào)來(lái)執(zhí)行適當(dāng)?shù)墓δ堋?/p>

      每個(gè)核心都可以完成所有特定任務(wù)的工作而不是只能完成其中一項(xiàng)工作,這樣就不用等待其他的核心完成相應(yīng)步驟才能執(zhí)行下一步,減少了核心空閑的時(shí)間,提高了利用率,這就是優(yōu)化流水線的優(yōu)點(diǎn)所在。對(duì)此筆者做了實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境是在5 Gbit/s的數(shù)據(jù)流量的情況下,分別對(duì)普通處理器和網(wǎng)絡(luò)處理器進(jìn)行不同的數(shù)據(jù)包處理方式,在這種情況下,網(wǎng)絡(luò)處理器在使用優(yōu)化流水線處理數(shù)據(jù)包的時(shí)候優(yōu)勢(shì)明顯,雖然會(huì)多花一點(diǎn)開(kāi)銷,但是現(xiàn)在看來(lái)是值得的。具體數(shù)據(jù)見(jiàn)表1。

      表1 不同情況下吞吐量實(shí)驗(yàn)表

      3 網(wǎng)絡(luò)控制器的關(guān)鍵技術(shù)研究

      3.1 流過(guò)濾算法

      過(guò)濾模塊在進(jìn)行包過(guò)濾時(shí),如果對(duì)每個(gè)輸入包都進(jìn)行一次5元組過(guò)濾和協(xié)議特征字過(guò)濾,那么過(guò)濾模塊會(huì)帶來(lái)很大的系統(tǒng)開(kāi)銷。

      基于流的過(guò)濾并不是一類新的過(guò)濾規(guī)則,而是將輸入數(shù)據(jù)根據(jù)IP 5元組抽象成不同的數(shù)據(jù)流,系統(tǒng)維護(hù)當(dāng)前所有輸入流上下文信息,這些信息包括流對(duì)應(yīng)的過(guò)濾規(guī)則ID、狀態(tài)、存在時(shí)間等。通過(guò)對(duì)流進(jìn)行過(guò)濾,可以減少對(duì)規(guī)則表的盲訪問(wèn),因而能快速定位出當(dāng)前流命中的規(guī)則,減小了過(guò)濾模塊的開(kāi)銷。

      在流上下文建立之初,此時(shí)輸入的數(shù)據(jù)包不能直接關(guān)聯(lián)到過(guò)濾規(guī)則,所以在處理最初的幾個(gè)數(shù)據(jù)包時(shí),需要對(duì)規(guī)則表進(jìn)行必要的盲訪問(wèn)。一旦確定了與當(dāng)前流匹配的過(guò)濾規(guī)則,就可以創(chuàng)建流的上下文。對(duì)于隨后到達(dá)的流中的所有數(shù)據(jù)包,根據(jù)這個(gè)上下文確定過(guò)濾規(guī)則。

      3.1.1 流上下文的組織

      接入系統(tǒng)通過(guò)IP 5元組來(lái)識(shí)別不同的輸入數(shù)據(jù)流,為了加快對(duì)流上下文的訪問(wèn),所有的流上下文通過(guò)5元組Hash表組織。

      為了便于插入和刪除,Hash表中所有流上下文節(jié)點(diǎn)FCN通過(guò)雙向鏈表連接,同時(shí)Hash表頭中包含相應(yīng)的散列表頭節(jié)點(diǎn)。Hash運(yùn)算采用Linux內(nèi)核中標(biāo)準(zhǔn)Jhash算法。

      流上下文Hash表的組織結(jié)構(gòu)如圖3所示。

      3.1.2 流上下文的維護(hù)

      1)流上下文的訪問(wèn)

      由于CN56xx的每個(gè)CPU核都可以讀寫流上下文,所以對(duì)Hash表的訪問(wèn)是一個(gè)典型的競(jìng)爭(zhēng)問(wèn)題。為了提高讀操作的并發(fā)度,可以在每個(gè)Hash表頭元素中增加一個(gè)讀寫鎖,這樣使得相對(duì)頻繁的讀操作能并發(fā)執(zhí)行,每個(gè)CPU核在訪問(wèn)Hash鏈之前須獲取表頭中的讀寫鎖。

      圖3 流的上下文HASH表組織結(jié)構(gòu)圖

      2)流上下文節(jié)點(diǎn)的添加和刪除

      基本的數(shù)據(jù)流分為兩種:TCP流和UDP流。TCP流具有流結(jié)束標(biāo)記,而UDP流沒(méi)有。對(duì)于TCP流上下文的刪除可以通過(guò)判斷流結(jié)束標(biāo)識(shí)進(jìn)行,而對(duì)UDP流結(jié)束標(biāo)識(shí)只能通過(guò)超時(shí)機(jī)制實(shí)現(xiàn)。但在CN56xx環(huán)境中,并不存在Linux中的定時(shí)器軟中斷機(jī)制,為了能夠回收超時(shí)的流上下文節(jié)點(diǎn),在創(chuàng)建節(jié)點(diǎn)時(shí)就應(yīng)該采取應(yīng)對(duì)措施。

      在每次創(chuàng)建流節(jié)點(diǎn)時(shí),首先應(yīng)在相應(yīng)的Hash鏈中查找超時(shí)節(jié)點(diǎn)。如果存在超時(shí)節(jié)點(diǎn),則直接使用該節(jié)點(diǎn);否則,從節(jié)點(diǎn)池中申請(qǐng)。這種分配策略存在某種極端的情況:某個(gè)活躍的Hash鏈中總是找不到超時(shí)節(jié)點(diǎn),而其他不活躍鏈中卻存在大量超時(shí)節(jié)點(diǎn),這便造成系統(tǒng)資源的大量損耗。此外,Hash鏈中大量的超時(shí)節(jié)點(diǎn)也會(huì)降低系統(tǒng)性能。為了及時(shí)釋放Hash表中的超時(shí)節(jié)點(diǎn),系統(tǒng)還是要對(duì)Hash表進(jìn)行定時(shí)清理,可以在管理處理器上運(yùn)行一個(gè)清理任務(wù),該任務(wù)在系統(tǒng)資源緊張時(shí)或者在間隔較長(zhǎng)時(shí)間之后,從較長(zhǎng)的Hash鏈中回收節(jié)點(diǎn)。

      3)減少Hash沖突

      在7 Gbit/s的最大設(shè)計(jì)輸入流量下,實(shí)時(shí)的流節(jié)點(diǎn)最多可能達(dá)到300萬(wàn)~400萬(wàn)個(gè),如果使用1個(gè)64 kbyte長(zhǎng)度的Hash表,那么Hash鏈的平均長(zhǎng)度在45~60之間。為了降低Hash沖突次數(shù),加快Hash鏈的訪問(wèn),可以使用多張Hash表來(lái)減少Hash鏈的平均長(zhǎng)度。

      先將5元組進(jìn)行1次運(yùn)算,該運(yùn)算不同于前面提到的Jhash運(yùn)算,所以其運(yùn)算結(jié)果與5元組的Hash值并不相同,通過(guò)該運(yùn)算結(jié)果的最后若干位確定當(dāng)前5元組的目的Hash表。隨后,再進(jìn)行相應(yīng)的Hash運(yùn)算。由于相同Hash值的5元組被分散到多張Hash表中,那么Hash鏈的平均長(zhǎng)度會(huì)成倍減少。此外,由于每個(gè)5元組與Hash表和Hash鏈一一對(duì)應(yīng),多張Hash表不會(huì)帶來(lái)額外的訪問(wèn)開(kāi)銷,只是在Hash查找前需要先確定目標(biāo)表,而這個(gè)運(yùn)算的開(kāi)銷與成倍的鏈表查找相比不值一提。

      3.1.3 性能評(píng)估

      Hash查找本來(lái)就是一種快速查找算法,查找效率很高,但維護(hù)開(kāi)銷較大。此外Hash表為多核共享,需支持多核并發(fā)讀寫,鎖的使用會(huì)降低查找速度。在多Hash表的模式下,具有相同Hash值的Hash鏈由多個(gè)讀寫鎖保護(hù),因而能夠提高Hash沖突時(shí)的并發(fā)訪問(wèn)度。同時(shí),應(yīng)當(dāng)看到,多Hash表的使用會(huì)降低Cache的命中率,頻繁的Cache刷新勢(shì)必會(huì)降低系統(tǒng)性能。采用Hash查找的流過(guò)濾算法,存儲(chǔ)器開(kāi)銷在300~500 Mbyte之間。同樣情況下如果使用包過(guò)濾方式,存取器的開(kāi)銷在800 Mbyte左右,且時(shí)間是流過(guò)濾算法的幾十倍。

      3.2 潛在語(yǔ)義索引算法

      在設(shè)計(jì)中過(guò)濾模塊不僅可以支持IP包的過(guò)濾,還可以支持內(nèi)容的過(guò)濾,對(duì)于文本內(nèi)容的過(guò)濾來(lái)說(shuō)它主要包括了4個(gè)方面:1)用戶過(guò)濾規(guī)則的建立;2)獲得待過(guò)濾文本內(nèi)容的特征;3)待過(guò)濾文本與用戶過(guò)濾規(guī)則的匹配;4)通過(guò)信息反饋,改進(jìn)需求模板。

      在日常使用的語(yǔ)言中,詞語(yǔ)之間存在著同義詞和多義詞的問(wèn)題,同義詞的存在使得相同的意思可以用不同的詞語(yǔ)來(lái)表達(dá),導(dǎo)致過(guò)濾時(shí)普通的匹配方式不能匹配成功;多義詞的特點(diǎn)是一個(gè)詞有多個(gè)意思,這樣在匹配中又會(huì)導(dǎo)致匹配到無(wú)關(guān)的內(nèi)容。正是由于這種情況的所在,潛在語(yǔ)義索引算法就引入概念空間來(lái)解決這個(gè)問(wèn)題,它的基本思想是文本中的詞與詞之間存在某種聯(lián)系,即存在某種潛在的語(yǔ)義結(jié)構(gòu),用這種語(yǔ)義結(jié)構(gòu)來(lái)表示詞和文本,可消除詞之間的相關(guān)性,達(dá)到簡(jiǎn)化文本向量的目的[12]。

      潛在語(yǔ)義分析其實(shí)就是把高維的向量空間模型表示中的文檔映射到低維的潛在語(yǔ)義空間中。這個(gè)映射是通過(guò)對(duì)文檔矩陣的奇異值分解來(lái)實(shí)現(xiàn)的。文本構(gòu)成的矩陣通過(guò)奇異值分解映射到低維的空間后于待過(guò)濾文本映射后的向量進(jìn)行比較,獲得一個(gè)相似度,這個(gè)時(shí)候必須設(shè)置1個(gè)過(guò)濾閾值,當(dāng)相似度超過(guò)這個(gè)閾值時(shí),認(rèn)為這兩個(gè)文本屬于同一主題,即匹配成功。

      在設(shè)計(jì)中使用潛在語(yǔ)義索引算法的主要目的就是消除同義詞和多義詞導(dǎo)致的匹配不成功的可能,并且潛在語(yǔ)義索引算法可以利用低維度的詞條,文本向量代替原始的空間向量,可以有效地處理大規(guī)模的文本庫(kù)。

      在內(nèi)容過(guò)濾的方法中主要包括關(guān)鍵詞匹配算法和潛在語(yǔ)義索引算法,通過(guò)測(cè)試發(fā)現(xiàn),關(guān)鍵字匹配算法在準(zhǔn)確度方面不如潛在語(yǔ)義索引算法。在3 Gbit/s數(shù)據(jù)流量下,設(shè)置相同的關(guān)鍵字進(jìn)行過(guò)濾測(cè)試,表2是實(shí)驗(yàn)中的測(cè)試數(shù)據(jù),可以看出潛在語(yǔ)義索引算法的優(yōu)勢(shì)很明顯。

      表2 內(nèi)容過(guò)濾算法測(cè)試數(shù)據(jù)

      3.3 IP碎片處理技術(shù)

      接入系統(tǒng)需要對(duì)應(yīng)用層的IP碎片進(jìn)行重組,以便對(duì)這些碎片進(jìn)行統(tǒng)一數(shù)據(jù)封裝。IP碎片重組在計(jì)算機(jī)網(wǎng)絡(luò)中屬于1個(gè)常見(jiàn)問(wèn)題。在處理IP數(shù)據(jù)之前需要將可能的碎片重新組合,以保證在處理數(shù)據(jù)時(shí)的完整性。

      Linux內(nèi)核網(wǎng)絡(luò)協(xié)議棧中實(shí)現(xiàn)了IP碎片重組的完整過(guò)程。每個(gè)碎片序列通過(guò)ipq結(jié)構(gòu)進(jìn)行組織,所有ipq結(jié)構(gòu)通過(guò)Hash散列到1個(gè)ipq_hash[]數(shù)組中,具有相同Hash值的ipq通過(guò)鏈表鏈接起來(lái),這是典型的鏈?zhǔn)介_(kāi)放地址Hash查找。此外,每個(gè)ipq通過(guò)1個(gè)雙向鏈表維護(hù)當(dāng)前序列中所有的IP碎片包。

      在系統(tǒng)中,面臨著同樣的問(wèn)題,可以采用上述類似的思想。但在網(wǎng)絡(luò)處理器中,還存在許多其他特殊情況,需要針對(duì)網(wǎng)絡(luò)處理器平臺(tái)進(jìn)行修改。

      1)收到的碎片數(shù)據(jù)包不能像LINUX內(nèi)核那樣直接掛到ipq的雙向鏈表中,需要先進(jìn)行內(nèi)存搬移。Hash表中的所有ipq節(jié)點(diǎn)通過(guò)雙向鏈表(struct hlist_node)連接,便于插入和刪除。Hash運(yùn)算采用Linux內(nèi)核中標(biāo)準(zhǔn)Jhash算法。散列表的維護(hù)相對(duì)容易,只需對(duì)Linux內(nèi)核中相關(guān)接口進(jìn)行移植即可。

      2)在完成重組、封裝后,如果報(bào)文長(zhǎng)度大于以太網(wǎng)最大幀長(zhǎng),那么在發(fā)送數(shù)據(jù)包時(shí),需要進(jìn)行重新分片。

      3)需要維護(hù)一個(gè)ipq的LRU隊(duì)列,以便ipq維護(hù)程序能快速回收超時(shí)節(jié)點(diǎn)。Hash表中所有ipq節(jié)點(diǎn)按照先進(jìn)先出的順序維護(hù)一個(gè)雙向鏈表。通過(guò)這個(gè)雙向鏈表能夠快速定位Hash表中的超時(shí)節(jié)點(diǎn)??梢栽诠芾鞢ORE的多任務(wù)系統(tǒng)中添加一個(gè)清理超時(shí)節(jié)點(diǎn)的任務(wù),這個(gè)任務(wù)應(yīng)該是在關(guān)中斷的情況下進(jìn)行相關(guān)操作。

      4)碎片序列的維護(hù)。首先,網(wǎng)絡(luò)處理器中不能直接維護(hù)輸入數(shù)據(jù)緩沖區(qū),這些緩沖區(qū)屬于系統(tǒng)資源,如不及時(shí)釋放,會(huì)影響系統(tǒng)的吞吐率。所以,這里不能簡(jiǎn)單地將輸入數(shù)據(jù)掛到ipq的碎片序列鏈表中,在掛接之前,應(yīng)該先申請(qǐng)一塊臨時(shí)緩沖區(qū)保存當(dāng)前碎片的數(shù)據(jù)。其次,在碎片收集時(shí),需要重新申請(qǐng)一個(gè)系統(tǒng)緩沖區(qū)進(jìn)行碎片拼裝。拼裝完成后,進(jìn)行必要的處理,然后再?zèng)Q定是否發(fā)送該系統(tǒng)緩沖區(qū)中的IP包。

      碎片重組模塊涉及的數(shù)據(jù)結(jié)構(gòu)如圖4所示。

      圖4 數(shù)據(jù)結(jié)構(gòu)組織

      雖然需要進(jìn)行多次內(nèi)存搬移,但是碎片重組的效率還是通過(guò)多核處理器的并行處理得到提高。碎片重組過(guò)涉及到多核的并行處理,在操作關(guān)鍵數(shù)據(jù)結(jié)構(gòu)時(shí),需要用鎖進(jìn)行保護(hù)。平臺(tái)提供商的SDK中提供了自旋鎖和讀寫鎖,為了統(tǒng)一接口,最好對(duì)SDK中的鎖接口進(jìn)行統(tǒng)一封裝。

      4 小結(jié)

      到目前為止,網(wǎng)絡(luò)內(nèi)容管理方面的研究取得了一定成功,也有很多產(chǎn)品已經(jīng)投入了使用,但是隨著互聯(lián)網(wǎng)不斷地發(fā)展,現(xiàn)有的一些網(wǎng)絡(luò)內(nèi)容管理工具在效率和性能上存在一定問(wèn)題,一般只能適用于中小型網(wǎng)絡(luò)的使用,而對(duì)于骨干網(wǎng)沒(méi)有很好的支持,而本文中使用的基于CN56xx網(wǎng)絡(luò)處理器的硬件平臺(tái)可以很好地解決如今網(wǎng)絡(luò)流量大、處理效率低的問(wèn)題。除此以外本文還詳細(xì)描述了幾種數(shù)據(jù)過(guò)濾方面的算發(fā),在硬件能力強(qiáng)大的情況下,通過(guò)不斷地優(yōu)化算法來(lái)達(dá)到更好的性能,這是本文的最終目的。

      [1]彭來(lái)獻(xiàn),田暢,鄭少仁.網(wǎng)絡(luò)處理器設(shè)計(jì)分析及其應(yīng)用前景[J].電信科學(xué),2001(1):61-64.

      [2]雷振甲.計(jì)算機(jī)網(wǎng)絡(luò)管理及系統(tǒng)開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2011.

      [3]李慧君,徐鷹,李建民.網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2004(8):65-66.

      [4]王東濱,方濱興,云曉春.基于Web管理的網(wǎng)絡(luò)監(jiān)測(cè)技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程,2002(10):203-204.

      [5]王新剛,柴喬林,李琳.基于Windows的綜合網(wǎng)絡(luò)性能監(jiān)測(cè)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2002(10):90-92.

      [6]Cavium Networks Corp.Cavium Networks OCTEON Plus CN54/5/6/7XX Hardware Reference Manual[EB/OL].[2011-08-21].http://www.caviumnetworks.com.

      [7]吳佳駿,張兆慶.網(wǎng)絡(luò)處理器任務(wù)調(diào)度[J].計(jì)算機(jī)應(yīng)用研究,2007(8):34-37.

      [8]黃國(guó)睿,張平,魏廣博.多核處理器的關(guān)鍵技術(shù)及其發(fā)展趨勢(shì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(10):2414-2418.

      [9]張駿,樊曉椏,劉松鶴.多核、多線程處理器的低功耗設(shè)計(jì)技術(shù)研究[J].計(jì)算機(jī)科學(xué),2007(10):301-305.

      [10]SHAH N.Understanding network processors[EB/OL].[2011-08-21].http://www-soc.lip6.fr/~genius/UnderstandingNPs.pdf.gz.

      [11]LEE B K,JOHN L K.NpBench:A benchmark suite for control plane and data plane applications for network processors[EB/OL].[2011-08-21].http://engineering.utsa.edu/~blee/npbench/npbench.pdf.

      [12]林鴻飛.基于混合模式的文本過(guò)濾模型[J].計(jì)算機(jī)研究與發(fā)展,2001(9):1127-1131.

      猜你喜歡
      鏈表數(shù)據(jù)包處理器
      基于二進(jìn)制鏈表的粗糙集屬性約簡(jiǎn)
      跟麥咭學(xué)編程
      SmartSniff
      基于鏈表多分支路徑樹(shù)的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
      Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
      ADI推出新一代SigmaDSP處理器
      汽車零部件(2014年1期)2014-09-21 11:41:11
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      鏈表方式集中器抄表的設(shè)計(jì)
      呼嚕處理器
      視覺(jué)注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
      五家渠市| 建湖县| 德昌县| 新竹县| 江华| 嫩江县| 宁都县| 那坡县| 尼木县| 正定县| 读书| 逊克县| 门头沟区| 崇左市| 西丰县| 灵宝市| 永德县| 沁水县| 太康县| 钦州市| 自治县| 长治县| 黄石市| 安平县| 南通市| 阳信县| 汉源县| 田东县| 确山县| 济宁市| 新野县| 京山县| 新竹市| 柞水县| 临沭县| 石屏县| 界首市| 囊谦县| 江油市| 长寿区| 临清市|