亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法和系統(tǒng)的制作方法

文檔序號(hào):7953085閱讀:163來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及快速以太網(wǎng)底層過(guò)濾技術(shù),更確切地是涉及監(jiān)控領(lǐng)域內(nèi)基于零拷貝技術(shù)的底層過(guò)濾緩存方法和系統(tǒng)。
背景技術(shù)
隨著Internet的不斷發(fā)展,即時(shí)通訊已成為基于Internet的人類(lèi)現(xiàn)代交流活動(dòng)的主要形式之一。由于Internet本身的開(kāi)放性和隱秘性,人們通訊的內(nèi)容不易受到監(jiān)控,難免一些惡意的言論,例如危害國(guó)家的言論、欺騙性的言論等,所以對(duì)于即時(shí)通訊的內(nèi)容監(jiān)控是相當(dāng)必要的。但由于數(shù)據(jù)量大,即時(shí)通訊內(nèi)容流量和正常的其他網(wǎng)絡(luò)應(yīng)用流量不易區(qū)分,造成對(duì)通訊內(nèi)容過(guò)濾難度極大。
在設(shè)計(jì)監(jiān)控系統(tǒng)的時(shí)候,通常采用兩種基本方法一種是將網(wǎng)絡(luò)上的數(shù)據(jù)包拷貝到系統(tǒng)應(yīng)用層,由上層軟件進(jìn)行判斷處理的方法,另一種是使用零拷貝技術(shù)不拷貝數(shù)據(jù)包,而直接在內(nèi)存中處理數(shù)據(jù)包的技術(shù)。第一種方法雖然能夠判斷處理數(shù)據(jù)包,但是對(duì)于每一個(gè)數(shù)據(jù)包都需要經(jīng)過(guò)多次拷貝,例如首先需要從網(wǎng)絡(luò)設(shè)備拷貝到系統(tǒng)內(nèi)核區(qū),然后需要再次拷貝到用戶(hù)區(qū),在通過(guò)系統(tǒng)協(xié)議棧進(jìn)行協(xié)議分析的時(shí)候也需要數(shù)據(jù)的拷貝,而拷貝占用了多數(shù)處理器的處理時(shí)間,直接導(dǎo)致其性能下降。第二種方法雖然克服了拷貝占用處理器性能的問(wèn)題,但是需要對(duì)每一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行判斷是否屬于即時(shí)通訊流量,極大地降低了處理效率。因此,如何過(guò)濾出即時(shí)通訊流量成為高效通訊監(jiān)控技術(shù)的熱點(diǎn)。

發(fā)明內(nèi)容
針對(duì)上述問(wèn)題,本發(fā)明的目的在于提供一種驅(qū)動(dòng)級(jí)底層過(guò)濾方法,引入了一個(gè)后備轉(zhuǎn)換緩存(TLB)模塊,當(dāng)網(wǎng)絡(luò)設(shè)備接收到數(shù)據(jù)包時(shí),并不直接傳輸?shù)缴蠈舆M(jìn)行過(guò)濾判斷,而是通過(guò)TLB模塊處理,在驅(qū)動(dòng)層就對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行判斷,區(qū)分出即時(shí)通訊流量和非即時(shí)通訊流量。利用這樣的方法,大部分?jǐn)?shù)據(jù)包到達(dá)后就可以直接被判斷其流量屬性,若是即時(shí)通訊流量就繼續(xù)由上層處理;若不屬于即時(shí)通訊流量則可以直接轉(zhuǎn)發(fā)或通過(guò)其他預(yù)定的策略處理。在這種方式下,在驅(qū)動(dòng)層就判斷出大部分?jǐn)?shù)據(jù)包的屬性,大大減輕了上層判斷即時(shí)通訊流量的負(fù)擔(dān),可以節(jié)約大量的非即時(shí)通訊流量的判定工作,避免占用更多的處理器資源,從而提高整個(gè)處理過(guò)程的性能。
根據(jù)以上目的,如圖1所示,以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法包括步驟1)網(wǎng)絡(luò)設(shè)備采集網(wǎng)絡(luò)上面的數(shù)據(jù)包到內(nèi)核緩沖區(qū)。這部分采用零拷貝技術(shù)實(shí)現(xiàn),具體的方法如下首先申請(qǐng)一塊內(nèi)核緩沖區(qū),內(nèi)核緩沖區(qū)的具體大小可以根據(jù)網(wǎng)絡(luò)適配器所能容納的最大數(shù)據(jù)包大小以及它的最大接收容量來(lái)決定。然后將這部分緩沖區(qū)劃分為單個(gè)結(jié)構(gòu),每個(gè)結(jié)構(gòu)至少包括數(shù)據(jù)接收區(qū)以及控制標(biāo)志信息。每當(dāng)接收數(shù)據(jù)的時(shí)候,需要將單個(gè)緩沖區(qū)與網(wǎng)絡(luò)適配器建立DMA映射,這樣就可以避免處理器參與數(shù)據(jù)的拷貝傳輸工作。
2)判斷所接收的數(shù)據(jù)包的特征是否符合轉(zhuǎn)換后備緩存(TLB)中保存的非即時(shí)通訊流量特征,如果符合則直接轉(zhuǎn)發(fā),否則轉(zhuǎn)入下一步驟。
具體地,網(wǎng)卡驅(qū)動(dòng)程序?qū)π聛?lái)的數(shù)據(jù)包進(jìn)行判斷,首先提取數(shù)據(jù)包的特征,例如IP地址(包括源IP地址和目的IP地址)以及端口信息,將這些特征與TLB中保存的非即時(shí)通訊流量特征相比較,如果發(fā)現(xiàn)TLB中已經(jīng)有這個(gè)特征的記錄,則表明該數(shù)據(jù)包為非即時(shí)通訊流量,因此直接將這個(gè)數(shù)據(jù)包轉(zhuǎn)發(fā);如果TLB中沒(méi)有該特征的記錄,則不能立即判斷出該數(shù)據(jù)包是否即時(shí)通訊流量,因此將這個(gè)數(shù)據(jù)包交給高層過(guò)濾判斷模塊處理。
3)高層過(guò)濾模塊進(jìn)一步判斷數(shù)據(jù)包是否即時(shí)通訊流量,如果是則將數(shù)據(jù)包設(shè)定相應(yīng)標(biāo)志并交由上層繼續(xù)處理,比如交給即時(shí)通訊處理模塊按照系統(tǒng)預(yù)定義的策略處理,例如關(guān)鍵字匹配等,處理完畢后交由第5)步繼續(xù)處理;否則轉(zhuǎn)入下一步驟。
4)將步驟3)中被判斷為非即時(shí)通訊流量的數(shù)據(jù)包設(shè)定標(biāo)記,即,在數(shù)據(jù)包上面標(biāo)記出控制信息,表明其非即時(shí)通訊流量的屬性,并將數(shù)據(jù)包遞交到驅(qū)動(dòng)層,讓網(wǎng)卡驅(qū)動(dòng)將數(shù)據(jù)包轉(zhuǎn)發(fā)。
5)檢查數(shù)據(jù)包的標(biāo)記以判斷其是否屬于非即時(shí)通訊流量,如果不是即時(shí)通訊流量則轉(zhuǎn)入下一步驟,否則按照預(yù)定義的策略處理數(shù)據(jù)包,轉(zhuǎn)發(fā)或者丟棄。
6)提取非即時(shí)通訊流量數(shù)據(jù)包的特征加入TLB,并按照一定的算法更新TLB。設(shè)計(jì)TLB的時(shí)候可以采用多種算法維護(hù),比如最近最少使用的算法、先進(jìn)先出(FIFO)、先進(jìn)后出(FILO)、隨機(jī)方法等等。由于TLB的容量有限,較佳地可以采用最少使用的算法,即在TLB中維護(hù)一個(gè)計(jì)數(shù)used,如果容量已滿(mǎn),有新數(shù)據(jù)需要填入TLB的時(shí)候,選擇最近最少使用的TLB塊并做替換。TLB的查詢(xún)過(guò)程較佳地可以采用Hash表搜索,這樣可以節(jié)約大量的搜索時(shí)間。這里的Hash函數(shù)可以取簡(jiǎn)單的模運(yùn)算或多項(xiàng)式運(yùn)算等等。
其中,步驟3)至4)和步驟5)至6)并行或交替進(jìn)行,互不影響。
同樣根據(jù)本發(fā)明的目的,基于同樣的構(gòu)思,本發(fā)明還提供另一種以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法,與第一種方法基本相同,區(qū)別之處在于TLB中保存的是即時(shí)通訊流量的特征。如圖2所示,所述的方法包括步驟
1)網(wǎng)絡(luò)設(shè)備采集網(wǎng)絡(luò)上面的數(shù)據(jù)包到內(nèi)核緩沖區(qū)。這部分采用零拷貝技術(shù)實(shí)現(xiàn),具體的方法如下首先申請(qǐng)一塊內(nèi)核緩沖區(qū),內(nèi)核緩沖區(qū)的具體大小可以根據(jù)網(wǎng)絡(luò)適配器所能容納的最大數(shù)據(jù)包大小以及它的最大接收容量來(lái)決定。然后將這部分緩沖區(qū)劃分為單個(gè)結(jié)構(gòu),每個(gè)結(jié)構(gòu)至少包括數(shù)據(jù)接收區(qū)以及控制標(biāo)志信息。每當(dāng)接收數(shù)據(jù)的時(shí)候,需要將單個(gè)緩沖區(qū)與網(wǎng)絡(luò)適配器建立DMA映射,這樣就可以避免處理器參與數(shù)據(jù)的拷貝傳輸工作。
2)判斷所接收的數(shù)據(jù)包的特征是否符合TLB中保存的即時(shí)通訊流量特征,如果符合則交由即時(shí)通訊處理模塊處理,否則轉(zhuǎn)入下一步驟。
具體地,網(wǎng)卡驅(qū)動(dòng)程序?qū)π聛?lái)的數(shù)據(jù)包進(jìn)行判斷,首先提取數(shù)據(jù)包的特征,例如IP地址(包括源IP地址和目的IP地址)以及端口信息,將這些特征與TLB中保存的即時(shí)通訊流量特征相比較,如果發(fā)現(xiàn)TLB中已經(jīng)有這個(gè)特征的記錄,則表明該數(shù)據(jù)包為即時(shí)通訊流量,因此直接將這個(gè)數(shù)據(jù)包交給通訊處理模塊按照系統(tǒng)預(yù)定義的策略處理,例如關(guān)鍵字匹配等;如果TLB中沒(méi)有該特征的記錄,則不能立即判斷出該數(shù)據(jù)包是否即時(shí)通訊流量,因此將這個(gè)數(shù)據(jù)包交給高層過(guò)濾判斷模塊處理。
3)高層過(guò)濾模塊進(jìn)一步判斷數(shù)據(jù)包是否即時(shí)通訊流量,如果是則將數(shù)據(jù)包交由上層繼續(xù)處理,比如交給通訊處理模塊按照系統(tǒng)預(yù)定義的策略處理,例如關(guān)鍵字匹配等,處理完畢后轉(zhuǎn)入步驟4);否則將數(shù)據(jù)包設(shè)定非即時(shí)通訊流量的標(biāo)記,并轉(zhuǎn)步驟5)。
4)將步驟3)中被判斷為即時(shí)通訊流量的數(shù)據(jù)包設(shè)定標(biāo)記,即,在數(shù)據(jù)包上面標(biāo)記出控制信息,表明其是即時(shí)通訊流量的屬性,并將數(shù)據(jù)包遞交到驅(qū)動(dòng)層,讓網(wǎng)卡驅(qū)動(dòng)按照預(yù)定義的策略處理,一般情況下是轉(zhuǎn)發(fā)或丟棄。
5)檢查數(shù)據(jù)包的標(biāo)記以判斷其是否屬于即時(shí)通訊流量,如果不是則將數(shù)據(jù)包丟棄;否則轉(zhuǎn)入下一步驟。
6)提取即時(shí)通訊流量數(shù)據(jù)包的特征加入TLB,并按照一定的算法更新TLB。設(shè)計(jì)TLB的時(shí)候可以采用多種算法維護(hù),比如最近最少使用的算法、先進(jìn)先出(FIFO)、先進(jìn)后出(FILO)、隨機(jī)方法等等。由于TLB的容量有限,較佳地可以采用最少使用的算法,即在TLB中維護(hù)一個(gè)計(jì)數(shù)used,如果容量已滿(mǎn),有新數(shù)據(jù)需要填入TLB的時(shí)候,選擇最近最少使用的TLB塊并做替換。TLB的查詢(xún)過(guò)程較佳地可以采用Hash表搜索,這樣可以節(jié)約大量的搜索時(shí)間。這里的Hash函數(shù)可以取簡(jiǎn)單的模運(yùn)算或多項(xiàng)式運(yùn)算等等。
其中,步驟3)至4)和步驟5)至6)并行或交替進(jìn)行,互不影響。
從以上內(nèi)容可以看出,本發(fā)明的第一種方法和第二種方法的區(qū)別僅在于TLB中保存的特征不同,因此使得相關(guān)的步驟2)、4)、5)和6)都有所區(qū)別。但二者在本質(zhì)上是相同的。
本發(fā)明的另一目的在于提供一種與上述方法相應(yīng)的驅(qū)動(dòng)級(jí)底層過(guò)濾系統(tǒng),如圖3所示,其包括網(wǎng)絡(luò)設(shè)備、內(nèi)核緩沖區(qū)、轉(zhuǎn)換后備緩存(TLB)模塊、高層過(guò)濾判斷模塊。其中,所述的網(wǎng)絡(luò)設(shè)備指能夠獲取網(wǎng)絡(luò)上傳輸數(shù)據(jù)包和/或?qū)?shù)據(jù)包發(fā)送到網(wǎng)絡(luò)上面的一種設(shè)備或多種設(shè)備的集合,其主要功能是采集網(wǎng)絡(luò)上面的數(shù)據(jù);內(nèi)核緩沖區(qū)用于暫時(shí)保存來(lái)自網(wǎng)絡(luò)的數(shù)據(jù);TLB是一個(gè)緩存模塊,具體地是一個(gè)內(nèi)核緩沖結(jié)構(gòu),由驅(qū)動(dòng)程序或者內(nèi)核程序?qū)ζ溥M(jìn)行操控,用于根據(jù)數(shù)據(jù)包的特征判斷數(shù)據(jù)的類(lèi)型,TLB中保存著非即時(shí)通訊流量的特征,每當(dāng)上層判斷模塊判斷出一個(gè)流量不是即時(shí)通訊流量的時(shí)候,網(wǎng)卡驅(qū)動(dòng)就會(huì)透明地將這個(gè)流量的特征寫(xiě)入TLB,為下一次的預(yù)判斷做準(zhǔn)備。由于TLB容量有限,設(shè)計(jì)TLB的時(shí)候較佳可采用最近最少使用的算法維護(hù),即在TLB中維護(hù)一個(gè)計(jì)數(shù),如果容量已滿(mǎn),有新數(shù)據(jù)需要填入TLB的時(shí)候,選擇TLB中最近最少使用的記錄并做替換。TLB的查詢(xún)過(guò)程采用Hash表搜索,這樣可以節(jié)約大量的搜索時(shí)間。高層過(guò)濾控制模塊的主要功能是判斷數(shù)據(jù)流量是否是即時(shí)通訊流量。高層過(guò)濾控制模塊用于提取數(shù)據(jù)包的內(nèi)容特征進(jìn)行判斷分析,確認(rèn)數(shù)據(jù)包是否是即時(shí)通訊流量。比如要判斷一個(gè)流量是否屬于雅虎通,則判斷數(shù)據(jù)包內(nèi)容部分的前四個(gè)字節(jié)是否是“YMSG”。
本發(fā)明的優(yōu)點(diǎn)在于,使用零拷貝技術(shù)將數(shù)據(jù)映射到系統(tǒng)空間,避免了數(shù)據(jù)在處理器參與下的傳輸,節(jié)約了處理器資源,提高了系統(tǒng)的性能;此外使用了TLB緩存,在驅(qū)動(dòng)層次即可判斷出絕大部分的數(shù)據(jù)包是否即時(shí)通訊流量,并且按照預(yù)定義的策略進(jìn)行轉(zhuǎn)發(fā)或者丟棄,避免了上層更多地參與處理數(shù)據(jù),簡(jiǎn)單地完成了判斷工作,極大地提高了系統(tǒng)綜合性能。


圖1為最簡(jiǎn)化模式下驅(qū)動(dòng)級(jí)底層過(guò)濾方法一的流程圖;圖2為最簡(jiǎn)化模式下驅(qū)動(dòng)級(jí)底層過(guò)濾方法二的流程圖;圖3為最簡(jiǎn)化模式下驅(qū)動(dòng)級(jí)底層過(guò)濾系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
如圖1所示,為最簡(jiǎn)化模式下的一種驅(qū)動(dòng)級(jí)底層過(guò)濾方法之一的最佳實(shí)施例的流程圖。具體的實(shí)現(xiàn)方式如下1)網(wǎng)卡接收網(wǎng)絡(luò)上的數(shù)據(jù),本實(shí)施例中的數(shù)據(jù)使用如下格式#define BUFFER_LEN 1525struct pcnet_proc_info {char buf[BUFFER_LEN];
char flag;unsigned long len;int recv_entry;};其中buf表示網(wǎng)絡(luò)數(shù)據(jù)存放的位置,flag表示這部分?jǐn)?shù)據(jù)的標(biāo)志,可以區(qū)分是否是即時(shí)通訊流量也可以表示相應(yīng)的處理策略,len表示buf的長(zhǎng)度,recv_entry表示在接收緩沖區(qū)中的位置。本實(shí)施例所使用的標(biāo)志有如下幾種#define MyFlag_RECV 0x1#define MyFlag_R1 0x2#define MyFlag_SEND 0x3#define MyFlag_S1 0x4#define MyFlag_DROP 0x5#define Myflag_NOUSE0x6#define Myflag_ALLOC0x7#define Myflag_LOOK 0x8#define Myflag_SENDRET 0x9#define Myflag_NOIM 0xa#define Myflag_IM 0xb驅(qū)動(dòng)程序需要利用網(wǎng)卡本身的rx_ring以及tx_ring結(jié)構(gòu)標(biāo)識(shí)發(fā)送以及接收緩沖區(qū),并且使用pci_map_single()進(jìn)行DMA映射,將網(wǎng)絡(luò)上接收到的數(shù)據(jù)直接映射到系統(tǒng)內(nèi)存中去,并且設(shè)定相應(yīng)的標(biāo)志。
2)驅(qū)動(dòng)程序提取buf信息中的源ip地址、目的ip地址以及端口號(hào)作為該數(shù)據(jù)包的特征,并將此特征與TLB緩存中的保存的非即時(shí)通訊流量特征相比較,如果發(fā)現(xiàn)有對(duì)應(yīng)的特征項(xiàng),則表示這個(gè)數(shù)據(jù)包屬于非即時(shí)通訊流量,因此直接將數(shù)據(jù)包轉(zhuǎn)發(fā)。如果沒(méi)有發(fā)現(xiàn)對(duì)應(yīng)的特征項(xiàng),則將數(shù)據(jù)包交由高層過(guò)濾判斷模塊處理。
本實(shí)施例中的TLB按照如下結(jié)構(gòu)進(jìn)行設(shè)計(jì)#define TLB_LENGTH 1024struct tlb_chart {
char ip[4];int port;int used;}struct tlb_chart tlb[TLB_LENGTH];其中tlb是由TLB_LENGTH個(gè)tlb_chart結(jié)構(gòu)構(gòu)成的,而每個(gè)tlb_chart是由源ip、目的ip、端口號(hào)以及used變量構(gòu)成。其中,used變量表示最近使用的次數(shù)。本領(lǐng)域技術(shù)人員能夠理解,雖然本實(shí)施例中以ip和端口號(hào)表示數(shù)據(jù)包的特征,但其并不構(gòu)成對(duì)本發(fā)明的限制。在其他的實(shí)施例中,也可以根據(jù)具體的要求來(lái)定義或提取數(shù)據(jù)包的其他特征。
如果在步驟2)中判斷出是某個(gè)數(shù)據(jù)包屬于非即時(shí)通訊流量,則直接將數(shù)據(jù)包轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)過(guò)程需要與網(wǎng)卡建立DMA映射,利用pci_map_single的PCI_DMA_TODEVICE標(biāo)志,將buf映射到設(shè)備上去,并且利用網(wǎng)卡本身的tx_ring將數(shù)據(jù)轉(zhuǎn)發(fā)出去。代碼如下pci_map_single(pci_dev,buf,len,PCI_DMA_TODEVICE);//send the package;3)高層過(guò)濾判斷處理。在驅(qū)動(dòng)層沒(méi)有被辨別出是否即時(shí)通訊流量的數(shù)據(jù)包被發(fā)送到上層的過(guò)濾判斷模塊進(jìn)行處理,在這一層,需要判斷數(shù)據(jù)是否是即時(shí)通訊流量,若不是則直接將數(shù)據(jù)包遞交到下一步進(jìn)行處理;若是則將傳輸?shù)郊磿r(shí)通訊處理模塊進(jìn)行下一步的處理。代碼如下if(the package is not immediate message)goto module4;else{goto module5;}4)將從第三步中獲得的數(shù)據(jù)pcnet_proc_info結(jié)構(gòu)中的flag設(shè)定為Myflag_NOIM,表示非即時(shí)通訊數(shù)據(jù),此外對(duì)數(shù)據(jù)包不做任何其他處理。這部分的代碼如下flag=Myflag_NOIM;
5)即時(shí)通訊處理模塊將數(shù)據(jù)pcnet_proc_info結(jié)構(gòu)中的flag設(shè)定為Myflag_IM,并且按照預(yù)定義的策略進(jìn)行處理。這部分的代碼如下flag=Myflag_IM;manage the package;6)驅(qū)動(dòng)程序需要檢查上層(包括上層判斷模塊與即時(shí)通訊處理模塊)向下傳輸?shù)臄?shù)據(jù)包,具體的需要檢查flag標(biāo)志,如果發(fā)現(xiàn)是Myflag_NOIM標(biāo)志,則表示非即時(shí)通訊流量,需要轉(zhuǎn)入更新TLB模塊的步驟;否則直接轉(zhuǎn)入第8)步if(flag==Myflag_NOIM)renew the tlb;else goto module8;7)更新TLB模塊。由于TLB容量有限,設(shè)計(jì)TLB的時(shí)候采用最近最少使用的算法維護(hù),即在TLB中維護(hù)一個(gè)計(jì)數(shù)used,如果容量已滿(mǎn),有新數(shù)據(jù)需要填入TLB的時(shí)候,選擇最近最少使用的TLB塊并做替換。TLB的查詢(xún)過(guò)程采用Hash表搜索,這樣可以節(jié)約大量的搜索時(shí)間。這里的Hash函數(shù)可以取簡(jiǎn)單的模運(yùn)算。處理完畢之后,直接將數(shù)據(jù)包轉(zhuǎn)發(fā)。
int ii=findRightTLB();//找到最新最少使用的TLB塊序號(hào)tlb_chart tc;tc.ip=fillIp(buf);//從數(shù)據(jù)包中將ip地址取出;tc.port=fillPort(buf);//從數(shù)據(jù)包中將端口信息取出;tc.used=1;//初始化使用計(jì)數(shù)tlb[ii]=tc; //使用新的tlb_chart替換原來(lái)的8)按照預(yù)定義的策略處理具有即時(shí)通訊流量特征的數(shù)據(jù)包,可以是轉(zhuǎn)發(fā)或者丟棄。具體的代碼如下if(flag=MyFlag_DROP)drop the package;else if(flag==MyFlag_SEND)send the package;
以上是本發(fā)明提供的第一種方法的具體實(shí)施例。由于本發(fā)明提供的第二種方法與第一種方法實(shí)質(zhì)相同,其區(qū)別僅在于TLB保存的特征不同。因此,依照該實(shí)施例,本領(lǐng)域的技術(shù)人員應(yīng)能很容易地實(shí)現(xiàn)本發(fā)明的第二種方法的具體實(shí)施例。另外,與所述的方法相應(yīng)的驅(qū)動(dòng)級(jí)底層過(guò)濾系統(tǒng)為用于實(shí)現(xiàn)該方法的軟件系統(tǒng),本領(lǐng)域技術(shù)人員從本說(shuō)明書(shū)及實(shí)施例的描述中可以容易地實(shí)現(xiàn)該軟件系統(tǒng),因此本實(shí)施例中不再做詳細(xì)的描述。
權(quán)利要求
1.一種以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法,包括步驟1)網(wǎng)絡(luò)設(shè)備采集網(wǎng)絡(luò)上面的數(shù)據(jù)包到內(nèi)核緩沖區(qū);2)判斷所接收的數(shù)據(jù)包的特征是否符合轉(zhuǎn)換后備緩存中保存的非即時(shí)通訊流量特征,如果符合則直接轉(zhuǎn)發(fā),否則轉(zhuǎn)入下一步驟;3)高層過(guò)濾模塊進(jìn)一步判斷數(shù)據(jù)包是否即時(shí)通訊流量,如果是則將數(shù)據(jù)包設(shè)定相應(yīng)標(biāo)志并交由上層繼續(xù)處理后轉(zhuǎn)入步驟5),否則轉(zhuǎn)入下一步驟;4)將步驟3)中被判斷為非即時(shí)通訊流量的數(shù)據(jù)包設(shè)定標(biāo)記,并將數(shù)據(jù)包遞交到驅(qū)動(dòng)層,讓網(wǎng)卡驅(qū)動(dòng)將數(shù)據(jù)包轉(zhuǎn)發(fā);5)檢查數(shù)據(jù)包的標(biāo)記以判斷其是否屬于非即時(shí)通訊流量,如果不是即時(shí)通訊流量則轉(zhuǎn)入下一步驟,否則按照預(yù)定義的策略處理數(shù)據(jù)包;6)提取非即時(shí)通訊流量數(shù)據(jù)包的特征加入轉(zhuǎn)換后備緩存,并按照一定的算法更新轉(zhuǎn)換后備緩存;其中,步驟3)至4)和步驟5)至6)并行或交替進(jìn)行。
2.如權(quán)利要求1所述的方法,其特征在于,所述的步驟1)的具體實(shí)現(xiàn)方法是由網(wǎng)絡(luò)適配器將網(wǎng)絡(luò)上的數(shù)據(jù)包通過(guò)DMA方式傳輸?shù)絻?nèi)核緩沖區(qū)。
3.如權(quán)利要求1所述的方法,其特征在于,所述的用于更新轉(zhuǎn)換后備緩存的算法采用最近最少使用算法或者是先進(jìn)先出算法實(shí)現(xiàn)。
4.如權(quán)利要求1所述的方法,其特征在于,所述的用于更新轉(zhuǎn)換后備緩存的算法利用hash表對(duì)轉(zhuǎn)換后備緩存的實(shí)現(xiàn)進(jìn)行管理。
5.如權(quán)利要求1所述的方法,其特征在于,所述的數(shù)據(jù)包的特征包括源IP地址、目的IP地址和端口信息。
6.一種以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾方法,包括步驟1)網(wǎng)絡(luò)設(shè)備采集網(wǎng)絡(luò)上面的數(shù)據(jù)包到內(nèi)核緩沖區(qū);2)判斷所接收的數(shù)據(jù)包的特征是否符合轉(zhuǎn)換后備緩存中保存的即時(shí)通訊流量特征,如果符合則交由即時(shí)通訊處理模塊處理,否則轉(zhuǎn)入下一步驟;3)高層過(guò)濾模塊進(jìn)一步判斷數(shù)據(jù)包是否即時(shí)通訊流量,如果是則將數(shù)據(jù)包交由上層繼續(xù)處理后轉(zhuǎn)入下一步驟;否則將數(shù)據(jù)包設(shè)定非即時(shí)通訊流量的標(biāo)記,并轉(zhuǎn)步驟5);4)將步驟3)中被判斷為即時(shí)通訊流量的數(shù)據(jù)包設(shè)定標(biāo)記,并將數(shù)據(jù)包遞交到驅(qū)動(dòng)層,讓網(wǎng)卡驅(qū)動(dòng)按照預(yù)定義的策略處理;5)檢查數(shù)據(jù)包的標(biāo)記以判斷其是否屬于即時(shí)通訊流量,如果不是則將數(shù)據(jù)包丟棄;否則轉(zhuǎn)入下一步驟;6)提取即時(shí)通訊流量數(shù)據(jù)包的特征加入轉(zhuǎn)換后備緩存,并按照一定的算法更新轉(zhuǎn)換后備緩存;其中,步驟3)至4)和步驟5)至6)并行或交替進(jìn)行。
7.如權(quán)利要求6所述的方法,其特征在于,所述的步驟1)的具體實(shí)現(xiàn)方法是由網(wǎng)絡(luò)適配器將網(wǎng)絡(luò)上的數(shù)據(jù)包通過(guò)DMA方式傳輸?shù)絻?nèi)核緩沖區(qū)。
8.如權(quán)利要求6所述的方法,其特征在于,所述的用于更新轉(zhuǎn)換后備緩存的算法采用最近最少使用算法或者是先進(jìn)先出算法實(shí)現(xiàn)。
9.如權(quán)利要求6所述的方法,其特征在于,所述的用于更新轉(zhuǎn)換后備緩存的算法利用hash表對(duì)轉(zhuǎn)換后備緩存的實(shí)現(xiàn)進(jìn)行管理。
10.如權(quán)利要求6所述的方法,其特征在于,所述的數(shù)據(jù)包的特征包括源IP地址、目的IP地址和端口信息。
11.一種以太網(wǎng)驅(qū)動(dòng)級(jí)底層過(guò)濾系統(tǒng),包括網(wǎng)絡(luò)設(shè)備,用于采集網(wǎng)絡(luò)上的數(shù)據(jù)包到內(nèi)核緩沖區(qū);內(nèi)核緩沖區(qū),用于暫時(shí)保存來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)包;轉(zhuǎn)換后備緩存模塊,用于保存數(shù)據(jù)包的特征,供網(wǎng)絡(luò)設(shè)備用以判斷數(shù)據(jù)包的類(lèi)型;高層過(guò)濾控制模塊,用于提取數(shù)據(jù)包的內(nèi)容特征進(jìn)行判斷分析,確認(rèn)數(shù)據(jù)包是否是即時(shí)通訊流量。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述的轉(zhuǎn)換后備緩存模塊是一個(gè)內(nèi)核緩沖結(jié)構(gòu),由驅(qū)動(dòng)程序或者內(nèi)核程序?qū)ζ溥M(jìn)行操控。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述的數(shù)據(jù)包的特征包括限于源IP地址、目的IP地址和端口信息。
全文摘要
本發(fā)明提供快速以太網(wǎng)監(jiān)控領(lǐng)域的一種底層過(guò)濾技術(shù)的實(shí)現(xiàn)方法及其系統(tǒng),引入了一個(gè)后備轉(zhuǎn)換緩存(TLB)模塊,當(dāng)網(wǎng)絡(luò)設(shè)備接收到數(shù)據(jù)包時(shí),并不直接傳輸?shù)缴蠈舆M(jìn)行過(guò)濾判斷,而是通過(guò)TLB模塊處理,在驅(qū)動(dòng)層就對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行判斷,區(qū)分出即時(shí)通訊流量和非即時(shí)通訊流量。利用這樣的方法,大部分?jǐn)?shù)據(jù)包到達(dá)后就可以直接被判斷其流量屬性,若是即時(shí)通訊流量就繼續(xù)由上層處理;若不屬于即時(shí)通訊流量則可以直接轉(zhuǎn)發(fā)或通過(guò)其他預(yù)定的策略處理。在這種方式下,在驅(qū)動(dòng)層就判斷出大部分?jǐn)?shù)據(jù)包的屬性,大大減輕了上層判斷即時(shí)通訊流量的負(fù)擔(dān),可以節(jié)約大量的非即時(shí)通訊流量的判定工作,避免占用更多的處理器資源,從而提高整個(gè)處理過(guò)程的性能。
文檔編號(hào)H04L12/56GK101035011SQ20061001147
公開(kāi)日2007年9月12日 申請(qǐng)日期2006年3月10日 優(yōu)先權(quán)日2006年3月10日
發(fā)明者陳愷, 蘇璞睿, 馮登國(guó) 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1