亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種無需ip分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法

文檔序號:7621105閱讀:206來源:國知局
專利名稱:一種無需ip分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法,可以用于路由器、安全網(wǎng)關(guān)、流量監(jiān)測與審計(jì)、網(wǎng)絡(luò)計(jì)費(fèi)、負(fù)載均衡等網(wǎng)絡(luò)設(shè)備和軟件之中,避免了由于分片重組而導(dǎo)致的系統(tǒng)開銷和處理時延,提高了分類的效率。
背景技術(shù)
隨著VoIP(Voice over IP)、移動數(shù)據(jù)業(yè)務(wù)、P2P(Peer-to-Peer)等新興應(yīng)用需求的不斷增加,網(wǎng)絡(luò)應(yīng)用呈現(xiàn)出日新月異的發(fā)展趨勢,與此同時網(wǎng)絡(luò)帶寬也迅猛增長,QoS(Quality of Service)、攻擊/入侵的檢測與防御、流量監(jiān)測與審計(jì)、網(wǎng)絡(luò)計(jì)費(fèi)、負(fù)載均衡等網(wǎng)絡(luò)設(shè)施的關(guān)鍵業(yè)務(wù)功能面臨新的和更大的挑戰(zhàn)。這些業(yè)務(wù)功能涉及許多針對會話、用戶或者高層協(xié)議的處理任務(wù),會話和用戶的負(fù)載往往達(dá)到十萬級甚至百萬級,需要在對流量進(jìn)行細(xì)粒度控制的同時兼顧報文的高速處理,其核心是實(shí)現(xiàn)高效的流分類。基于IP五元組(源地址、目的地址、源端口/ICMP id、目的端口/ICMP type和code、協(xié)議號)或者其他特定標(biāo)識的動態(tài)流分類方法具有粒度細(xì)、可擴(kuò)展性好等優(yōu)點(diǎn),因此得到了廣泛的應(yīng)用。
動態(tài)流分類方法以一個動態(tài)更新的網(wǎng)絡(luò)流表為基礎(chǔ),其基本操作是當(dāng)報文(packet)到達(dá)時,根據(jù)報文包含的IP五元組信息或者其他特定標(biāo)識查詢網(wǎng)絡(luò)流表,確定報文所屬的網(wǎng)絡(luò)流,并根據(jù)對應(yīng)流記錄中的處理策略信息對報文做相應(yīng)處理。除此以外,動態(tài)流分類還要涉及兩方面的重要工作一方面是網(wǎng)絡(luò)流表的管理,包括流記錄的新建、替換、老化和回收;另一方面是流狀態(tài)跟蹤和流記錄的更新。
由于動態(tài)流分類需要用到TCP/UDP端口號、ICMP的type和code或其他特定標(biāo)識等4層以上(含4層)協(xié)議的信息,而對于IPv4分片(fragment)來說,通常只有首分片包(即IP包頭中Fragment offset字段的值為0的分片)才包含上述信息,后續(xù)分片是不包含這些信息的,這樣就給動態(tài)流分類帶來了困難。進(jìn)行IP分片重組固然可以解決這個問題,但是由于IP分片重組需要將分片進(jìn)行緩沖、拷貝,因此其開銷和時延都比較大,不能滿足實(shí)時處理的要求。因此,需要一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法。
根據(jù)本發(fā)明的一個方面,提供一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置,該裝置包括基于IP分片四元組的IP分片定位裝置,用于執(zhí)行IP分片定位操作,確定IP分片所屬的IP報文以及所屬的網(wǎng)絡(luò)流(其中IP分片四元組為源地址、目的地址、報文ID、協(xié)議號);IP分片跟蹤裝置,用于執(zhí)行IP分片跟蹤操作,更新IP分片記錄中的標(biāo)志位、已到達(dá)分片總長度、IP報文總長度、時間戳、老化時間等信息;IP分片表管理裝置,用于執(zhí)行IP分片表中IP分片記錄的新建、替換、老化和回收操作;IP分片表,用于記錄屬于同一IP報文的分片的到達(dá)情況、緩存首分片包(即IP包頭中Fragment offset字段的值為0的分片)查詢得到的動態(tài)流分類信息,采用散列表方式進(jìn)行組織,采用鏈表方式解決散列碰撞;空閑IP分片記錄表項(xiàng)緩沖區(qū),用于存儲空閑的IP分片記錄表項(xiàng),采用先進(jìn)后出(FILO)方式分配空閑表項(xiàng)。
其中,IP分片定位裝置、IP分片跟蹤裝置和IP分片表管理裝置的一個重要特征是均包含多個進(jìn)程或線程,能夠進(jìn)行高速并行處理。IP分片表管理裝置的另一個重要特征是各個進(jìn)程/線程分別負(fù)責(zé)IP分片表的不同部分,從而保證IP分片表中的每個散列表項(xiàng)及其指向的IP分片記錄鏈表只有一個寫者,即鏈表的插入和刪除由唯一的進(jìn)程/線程負(fù)責(zé),且在鏈表的插入和刪除操作過程中通過嚴(yán)格規(guī)定寫指令次序以保持鏈表的完整性,從而避免了由于并行處理而引發(fā)的大量互斥和同步操作??臻eIP分片記錄表項(xiàng)緩沖區(qū)的一個重要特征是其可分配表項(xiàng)閾值小于最大空閑表項(xiàng)數(shù),從而保證被回收的表項(xiàng)不會被馬上重新分配出去,避免了回收表項(xiàng)時的同步操作。
根據(jù)本發(fā)明的另一個方面,提供一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,該方法包括根據(jù)IP分片包含的IP分片四元組信息執(zhí)行IP分片定位操作,確定IP分片所屬的IP報文以及所屬的網(wǎng)絡(luò)流;根據(jù)IP分片的字段信息執(zhí)行IP分片跟蹤操作,更新IP分片記錄中的相關(guān)信息;對于找不到對應(yīng)IP分片記錄的IP分片,將其交給IP分片表管理裝置,經(jīng)IP分片表管理裝置確認(rèn)不存在對應(yīng)IP分片記錄后,執(zhí)行IP分片記錄新建操作;在新建IP分片記錄之前,如果空閑IP分片記錄緩沖區(qū)已空,則執(zhí)行IP分片記錄替換操作,替換出一個IP分片記錄表項(xiàng);定時執(zhí)行IP分片記錄老化操作,將已經(jīng)達(dá)到或超過老化時間的IP分片記錄從IP分片表中刪除;對已經(jīng)從IP分片表中刪除的IP分片記錄表項(xiàng)執(zhí)行回收操作,回收到空閑IP分片記錄緩沖區(qū)中。
所述IP分片定位操作的步驟為1)以IP分片包含的源地址、目的地址、報文ID、協(xié)議號為IP分片四元組信息,以四元組信息為健值代入散列函數(shù),以運(yùn)算結(jié)果為索引找到IP分片表中對應(yīng)的散列表項(xiàng)。每個散列表項(xiàng)都對應(yīng)一個IP分片記錄鏈表,以解決散列碰撞問題;2)將IP分片的健值依次與鏈表中各IP分片記錄的健值進(jìn)行比較;3)如果找到對應(yīng)的IP分片記錄(健值相等),則將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作;4)否則,將IP分片交給IP分片表管理裝置中對應(yīng)的進(jìn)程/線程,IP分片表管理裝置先要確認(rèn)對應(yīng)IP分片記錄是否存在。如果存在,則直接將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作;否則,從空閑IP分片記錄表項(xiàng)緩沖區(qū)中分配一個空閑IP分片記錄表項(xiàng),然后執(zhí)行IP分片記錄新建操作。如果緩沖區(qū)已空,則要先執(zhí)行IP分片記錄替換操作,獲得一個IP分片記錄表項(xiàng)。
所述IP分片跟蹤操作的步驟為1)將分片對應(yīng)的IP分片記錄加寫鎖,或者采用互斥寫原子指令對IP分片記錄內(nèi)容進(jìn)行修改;2)如果當(dāng)前分片為首分片包(即IP包頭中Fragment offset字段的值為0的分片),則將IP分片記錄中的“首分片已到達(dá)”標(biāo)志位置位并更新IP報文總長度、已到達(dá)分片總長度、時間戳、老化時間等信息。當(dāng)已到達(dá)分片總長度等于IP報文總長度時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間等信息。接著,將IP分片交給動態(tài)流分類裝置執(zhí)行動態(tài)流分類操作。當(dāng)動態(tài)流分類操作執(zhí)行完畢后,將報文所屬的網(wǎng)絡(luò)流記錄的地址緩存到IP分片記錄中,然后對該IP分片記錄的IP分片鏈表加寫鎖,將IP分片鏈表中保存的IP分片從鏈表中一一刪除,交給后繼裝置處理。進(jìn)一步,但不是必要的,在更新IP分片記錄信息前,如果“首分片已到達(dá)”標(biāo)志位已經(jīng)置位,則可以將該IP分片丟棄(因?yàn)镮P協(xié)議是無狀態(tài)協(xié)議,沒有重傳機(jī)制,如果出現(xiàn)重傳的IP分片,則可以判定為出錯或者攻擊);3)如果當(dāng)前分片不是首分片包,更新IP分片記錄中的已到達(dá)分片總長度。如果當(dāng)前分片是尾分片包(即IP包頭中MF字段的值為0的分片),將IP分片記錄中的“尾分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間等信息。當(dāng)已到達(dá)分片總長度等于IP報文總長度時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間等信息。如果IP分片記錄中緩存的網(wǎng)絡(luò)流記錄指針為空,將該IP分片記錄的IP分片鏈表加寫鎖。加鎖成功后,再一次判斷IP分片記錄中緩存的網(wǎng)絡(luò)流記錄指針是否為空。如果為空,則將該IP分片掛入IP分片記錄的IP分片鏈表中,然后解除IP分片鏈表寫鎖;否則,直接解除IP分片鏈表寫鎖。
4)解除IP分片記錄的寫鎖,然后根據(jù)得到的網(wǎng)絡(luò)流記錄指針找到對應(yīng)的網(wǎng)絡(luò)流記錄,將當(dāng)前IP分片交給后繼裝置處理。
所述IP分片記錄替換操作的步驟為1)依次檢查當(dāng)前IP分片記錄鏈表中各IP分片記錄的時間戳和老化時間信息,選擇已經(jīng)達(dá)到或者超過老化期限的IP分片記錄。如果沒有這樣的IP分片記錄,則選擇IP分片記錄鏈表中老化期限最近且IP分片鏈表為空的IP分片記錄,或者選擇IP分片記錄鏈表中第一個IP分片鏈表為空的IP分片記錄;2)返回選中的IP分片記錄。
所述IP分片記錄新建操作的步驟為1)以IP分片的健值作為IP分片記錄的健值,填寫IP分片記錄中的健值、時間戳、老化時間等字段;2)將IP分片記錄表項(xiàng)插入IP分片表中健值對應(yīng)的IP分片記錄鏈表中;3)將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作。
所述IP分片記錄老化操作的步驟為1)IP分片表管理裝置的每個進(jìn)程/線程定期掃描其負(fù)責(zé)的那部分IP分片表,將達(dá)到或超過老化期限的IP分片記錄進(jìn)行回收;2)為控制老化操作的開銷,需設(shè)置一次操作中最多掃描表項(xiàng)的閾值。每次老化操作都從上次結(jié)束的地方開始繼續(xù)進(jìn)行掃描。
所述IP分片記錄表項(xiàng)回收操作的步驟為1)將IP分片記錄表項(xiàng)從IP分片表中健值對應(yīng)的IP分片記錄鏈表中摘除;2)將IP分片記錄表項(xiàng)回收到空閑IP分片記錄表項(xiàng)緩沖區(qū)中。在進(jìn)行回收前,可能還存在一些正在使用該表項(xiàng)的IP分片,為了不影響其在回收過程中以及回收以后的正常使用,避免由于回收引起的的同步開銷,在回收時不清空表項(xiàng)內(nèi)容,而是等到該表項(xiàng)下次分配時再清空,同時將空閑IP分片記錄表項(xiàng)緩沖區(qū)的可分配表項(xiàng)閾值設(shè)置成小于最大空閑表項(xiàng)數(shù)——由于空閑IP分片記錄表項(xiàng)緩沖區(qū)采取先進(jìn)后出的方式分配空閑表項(xiàng),因此被回收的表項(xiàng)不會被馬上重新分配出去,使得當(dāng)前使用該表項(xiàng)的IP分片能夠順利地處理完畢。
所述在IP分片表中插入IP分片記錄表項(xiàng)的操作步驟為1)假設(shè)要在IP分片記錄鏈表中的IP分片記錄表項(xiàng)A和C之間插入一個新的表項(xiàng)B。首先,讀出表項(xiàng)A的下一表項(xiàng)字段的值(即表項(xiàng)C的位置);2)采用寫原子指令將讀出的值寫到表項(xiàng)B的下一表項(xiàng)字段中;3)采用寫原子指令將表項(xiàng)B的地址填入表項(xiàng)A的下一表項(xiàng)字段中。
所述在IP分片表中刪除IP分片記錄表項(xiàng)的操作步驟為1)假設(shè)要在IP分片記錄鏈表中刪除IP分片記錄表項(xiàng)A和C之間的表項(xiàng)B。首先,讀出表項(xiàng)B的下一表項(xiàng)字段的值(即表項(xiàng)C的位置);2)采用寫原子指令將讀出的值寫到表項(xiàng)A的下一表項(xiàng)字段中;3)保留表項(xiàng)B的內(nèi)容(包括表項(xiàng)B的下一表項(xiàng)字段)不清空。這樣即使當(dāng)前有沿著該鏈表進(jìn)行查詢操作的讀者且正好到達(dá)表項(xiàng)B,也不會因?yàn)锽被從鏈表中刪除而影響其訪問后面的表項(xiàng)。
本發(fā)明涉及一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法,基于IP分片四元組對IP分片進(jìn)行跟蹤,采用多個并行裝置和裝置內(nèi)部多進(jìn)程/線程機(jī)制實(shí)現(xiàn)了對IP分片的高速并行處理,通過切分IP分片表、設(shè)置IP分片記錄鏈表寫者唯一、嚴(yán)格規(guī)定鏈表插入和刪除操作過程中寫指令次序以保持鏈表的完整性、設(shè)置空閑IP分片記錄表項(xiàng)緩沖區(qū)的可分配表項(xiàng)閾值等措施避免了由于并行處理而引發(fā)的大量互斥和同步操作,使得處理效率得到進(jìn)一步提高。本發(fā)明適用于網(wǎng)絡(luò)處理器、ASIC、FPGA、多內(nèi)核處理器、對稱多處理器(SMP)、軟件進(jìn)程/線程等各種并行處理環(huán)境,具有良好的跨平臺兼容性、可擴(kuò)展性和實(shí)用性。


下面結(jié)合附圖對本發(fā)明進(jìn)一步詳細(xì)地說明圖1為本發(fā)明的IP分片表示意圖;圖2為本發(fā)明的空閑IP分片記錄表項(xiàng)緩沖區(qū)示意圖;圖3為根據(jù)本發(fā)明的實(shí)施例無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置示意圖;圖4為根據(jù)本發(fā)明的實(shí)施例無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法流程圖;最佳實(shí)施例詳細(xì)描述下面參照本發(fā)明的附圖,更詳細(xì)地描述本發(fā)明的最佳實(shí)施例詳細(xì)描述。
本發(fā)明是一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法。
參見圖1,本發(fā)明的IP分片表用于記錄IP分片信息,采用散列表方式進(jìn)行組織,散列表長度為L。采用鏈表方式解決散列碰撞,每個散列表項(xiàng)都包含一個IP分片記錄鏈表的頭指針。
IP分片表散列表項(xiàng)的結(jié)構(gòu)如下表所示

IP分片記錄表項(xiàng)的結(jié)構(gòu)如下表所示


參見圖2,本發(fā)明的空閑IP分片記錄表項(xiàng)緩沖區(qū)用于存儲空閑的IP分片記錄表項(xiàng),采用鏈表方式進(jìn)行組織,并采用先進(jìn)后出(FILO)方式分配空閑表項(xiàng)。緩沖區(qū)的頭尾分別由緩沖區(qū)頭指針Ph和緩沖區(qū)尾指針Pt指示。為了避免由于回收操作引起的同步開銷,保證被回收的表項(xiàng)不會被馬上重新分配和清空,設(shè)置可分配表項(xiàng)閾值Tr和最大空閑表項(xiàng)數(shù)S(0<Tr<S)。
參見圖3,本發(fā)明的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置包括IP分片定位裝置1,IP分片跟蹤裝置2,IP分片表管理裝置3。此外,還包括圖1-2所示的IP分片表和空閑IP分片記錄表項(xiàng)緩沖區(qū)。IP分片定位裝置1執(zhí)行IP分片定位操作,根據(jù)IP分片四元組確定IP分片所屬的IP報文以及所屬的網(wǎng)絡(luò)流,其中IP分片四元組為(源地址、目的地址、報文ID、協(xié)議號),對于找不到對應(yīng)IP分片記錄的IP分片,交給IP分片表管理裝置3處理。IP分片跟蹤裝置2執(zhí)行IP分片跟蹤操作,更新IP分片記錄中的標(biāo)志位、已到達(dá)分片總長度、IP報文總長度、時間戳、老化時間等信息。IP分片表管理裝置3執(zhí)行IP分片表中IP分片記錄的新建、替換、老化和回收操作。各裝置中均包含N個進(jìn)程或線程,以實(shí)現(xiàn)高速并行處理。為了消除由于并行處理而導(dǎo)致的IP分片表訪問的互斥和同步開銷,需按照IP分片表管理裝置中的進(jìn)程/線程數(shù)對IP分片表進(jìn)行切分,IP分片表管理裝置中的每個進(jìn)程/線程獨(dú)立負(fù)責(zé)IP分片表的一部分,以保證對每條IP分片記錄鏈表只有唯一的寫者執(zhí)行插入和刪除操作。此外,為控制每次老化操作的開銷,需設(shè)置閾值Ta以控制一次老化操作中允許掃描的表項(xiàng)的數(shù)目。
參見圖4,本發(fā)明的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法包括如下步驟1)IP分片首先進(jìn)入IP分片定位裝置,執(zhí)行IP分片定位操作S1。以IP分片包含的IP分片四元組信息為健值代入散列函數(shù)H,計(jì)算得到索引值i。
函數(shù)H典型的計(jì)算公式為(源地址+目的地址+IP報文ID+協(xié)議號)%L根據(jù)i找到IP分片表中對應(yīng)的散列表項(xiàng)E。將IP分片的健值依次與散列表項(xiàng)的fragentrylist字段所指鏈表中各IP分片記錄的健值進(jìn)行比較。如果找到健值相等的IP分片記錄,則將IP分片交給IP分片跟蹤裝置,轉(zhuǎn)步驟2);否則,將IP分片交給IP分片表管理裝置中第(i%N)個進(jìn)程/線程,轉(zhuǎn)步驟3);2)執(zhí)行IP分片跟蹤操作S2。將IP分片記錄加寫鎖wlock,然后分如下兩種情況進(jìn)行處理①如果當(dāng)前分片為首分片包(即IP包頭中Fragment offset字段的值為0的分片),則將IP分片記錄中的“首分片已到達(dá)”標(biāo)志位置位并更新len、fraglen、timestamp、agetime等字段。當(dāng)fraglen等于len時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新timestamp、agetime等字段。接著,將IP分片交給動態(tài)流分類裝置執(zhí)行動態(tài)流分類操作。當(dāng)動態(tài)流分類操作執(zhí)行完畢后,將報文所屬的網(wǎng)絡(luò)流記錄的地址緩存到IP分片記錄的flow字段中,然后對該IP分片記錄的IP分片鏈表加寫鎖listwlock,將IP分片鏈表中保存的IP分片從鏈表中一一刪除,交給后繼裝置處理。進(jìn)一步,但不是必要的,在更新IP分片記錄信息前,如果“首分片已到達(dá)”標(biāo)志位已經(jīng)置位,則可以將該IP分片丟棄(因?yàn)镮P協(xié)議是無狀態(tài)協(xié)議,沒有重傳機(jī)制,如果出現(xiàn)重傳的IP分片,則可以判定為出錯或者攻擊);②如果當(dāng)前分片不是首分片包,更新IP分片記錄中的fraglen字段。如果當(dāng)前分片是尾分片包(即IP包頭中MF字段的值為0的分片),將IP分片記錄中的“尾分片已到達(dá)”標(biāo)志位置位并更新timestamp、agetime等字段。當(dāng)fraglen等于len時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新timestamp、agetime等字段。如果IP分片記錄中flow字段為空,將該IP分片記錄的IP分片鏈表加寫鎖listwlock。加鎖成功后,再一次判斷IP分片記錄中flow字段是否為空。如果為空,則將該IP分片掛入鏈表fraglist中,然后解鎖listwlock;否則,直接解鎖listwlock。最后,解鎖wlock,然后根據(jù)flow字段值找到對應(yīng)的網(wǎng)絡(luò)流記錄,將當(dāng)前IP分片交給后繼裝置處理。
3)查詢IP分片表,確認(rèn)是否已存在對應(yīng)的IP分片記錄。如果存在,則直接將IP分片交給IP分片跟蹤裝置,轉(zhuǎn)步驟2);否則,判斷空閑IP分片記錄表項(xiàng)緩沖區(qū)是否為空。如果為空(已分配表項(xiàng)數(shù)達(dá)到閾值Tr),轉(zhuǎn)步驟4);否則,從空閑IP分片記錄表項(xiàng)緩沖區(qū)中分配一個空閑IP分片記錄表項(xiàng)并對表項(xiàng)進(jìn)行清零,然后轉(zhuǎn)步驟5);4)執(zhí)行IP分片替換操作S3。依次檢查當(dāng)前IP分片記錄鏈表中各IP分片記錄的timestamp和agetime字段,選擇已經(jīng)達(dá)到或者超過老化期限的IP分片記錄。如果沒有這樣的IP分片記錄,則選擇IP分片記錄鏈表中老化期限最近且flowlist字段為空的IP分片記錄,或者選擇IP分片記錄鏈表中第一個flowlist字段為空的IP分片記錄。轉(zhuǎn)步驟5);5)執(zhí)行IP分片記錄新建操作S4。填寫IP分片記錄中的tuple、timestamp、agetime等字段。將IP分片記錄表項(xiàng)插入IP分片表中tuple對應(yīng)的IP分片記錄鏈表中,然后將IP分片交給IP分片跟蹤裝置,轉(zhuǎn)步驟2);此外,IP分片表管理裝置的每個進(jìn)程/線程還需要定期執(zhí)行IP分片記錄老化操作S5,即掃描其負(fù)責(zé)的那部分IP分片表,將達(dá)到或超過老化期限的IP分片記錄進(jìn)行回收(IP分片記錄表項(xiàng)回收操作S6)。一次老化操作最多掃描Ta個表項(xiàng),每次老化操作都從上次結(jié)束的地方開始繼續(xù)進(jìn)行掃描。IP分片記錄表項(xiàng)回收操作將IP分片記錄表項(xiàng)從IP分片表中tuple對應(yīng)的IP分片記錄鏈表中摘除,回收到空閑IP分片記錄表項(xiàng)緩沖區(qū)中,表項(xiàng)內(nèi)容不清空。
本發(fā)明的在IP分片表中插入IP分片記錄表項(xiàng)的操作步驟為1)假設(shè)要在IP分片記錄鏈表中的IP分片記錄表項(xiàng)A和C之間插入一個新的表項(xiàng)B。首先,讀出表項(xiàng)A的next字段的值(即表項(xiàng)C的位置);2)采用寫原子指令將讀出的值寫到表項(xiàng)B的next字段中;3)采用寫原子指令將表項(xiàng)B的地址填入表項(xiàng)A的next字段中。
本發(fā)明的在IP分片表中刪除IP分片記錄表項(xiàng)的操作步驟為1)假設(shè)要在IP分片記錄鏈表中刪除IP分片記錄表項(xiàng)A和C之間的表項(xiàng)B。
首先,讀出表項(xiàng)B的next字段的值(即表項(xiàng)C的位置);2)采用寫原子指令將讀出的值寫到表項(xiàng)A的next字段中;3)保留表項(xiàng)B的內(nèi)容(包括表項(xiàng)B的next字段)不清空。這樣即使當(dāng)前有沿著該鏈表進(jìn)行查詢操作的讀者且正好到達(dá)表項(xiàng)B,也不會因?yàn)锽被從鏈表中刪除而影響其訪問后面的表項(xiàng)。
所以,本發(fā)明基于IP分片四元組對IP分片進(jìn)行跟蹤,采用多個并行裝置和裝置內(nèi)部多進(jìn)程/線程機(jī)制實(shí)現(xiàn)了對IP分片的高速并行處理,通過切分IP分片表、設(shè)置IP分片記錄鏈表寫者唯一、嚴(yán)格規(guī)定鏈表插入和刪除操作過程中寫指令次序以保持鏈表的完整性、設(shè)置空閑IP分片記錄表項(xiàng)緩沖區(qū)的可分配表項(xiàng)閾值等措施避免了由于并行處理而引發(fā)的大量互斥和同步操作,使得處理效率得到進(jìn)一步提高。本發(fā)明適用于網(wǎng)絡(luò)處理器、ASIC、FPGA、多內(nèi)核處理器、對稱多處理器(SMP)、軟件進(jìn)程/線程等各種并行處理環(huán)境,具有良好的跨平臺兼容性、可擴(kuò)展性和實(shí)用性。
本發(fā)明已經(jīng)在申請人研制的基于網(wǎng)絡(luò)處理器的網(wǎng)絡(luò)安全處理平臺和千兆級安全網(wǎng)關(guān)上應(yīng)用,取得了很好的效果,性能指標(biāo)優(yōu)異,實(shí)現(xiàn)了本發(fā)明的目的。本發(fā)明具有很好的實(shí)用性和推廣應(yīng)用前景。
盡管為說明目的公開了本發(fā)明的具體實(shí)施例和附圖,其目的在于幫助理解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,但是本領(lǐng)域的技術(shù)人員可以理解在不脫離本發(fā)明及所附的權(quán)利要求的精神和范圍內(nèi),各種替換、變化和修改都是可能的。因此,本發(fā)明不應(yīng)局限于最佳實(shí)施例和附圖所公開的內(nèi)容,本發(fā)明要求保護(hù)的范圍以權(quán)利要求書界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置,該裝置包括基于IP分片四元組的IP分片定位裝置,用于執(zhí)行IP分片定位操作,確定IP分片所屬的IP報文以及所屬的網(wǎng)絡(luò)流,其中IP分片四元組為源地址、目的地址、報文ID、協(xié)議號;IP分片跟蹤裝置,用于執(zhí)行IP分片跟蹤操作,更新IP分片記錄中的標(biāo)志位、已到達(dá)分片總長度、IP報文總長度、時間戳、老化時間信息;IP分片表管理裝置,用于執(zhí)行IP分片表中IP分片記錄的新建、替換、老化和回收操作;IP分片表,用于記錄屬于同一IP報文的分片的到達(dá)情況、緩存首分片包查詢得到的動態(tài)流分類信息,采用散列表方式進(jìn)行組織,采用鏈表方式解決散列碰撞;空閑IP分片記錄表項(xiàng)緩沖區(qū),用于存儲空閑的IP分片記錄表項(xiàng),采用先進(jìn)后出方式分配空閑表項(xiàng)。
2.根據(jù)權(quán)利要求1所述的對網(wǎng)絡(luò)流進(jìn)行分類、狀態(tài)跟蹤和報文處理的裝置,其特征在于IP分片定位裝置、IP分片跟蹤裝置和IP分片表管理裝置的一個重要特征是均包含多個進(jìn)程或線程,能夠進(jìn)行高速并行處理;
3.根據(jù)權(quán)利要求1所述的對網(wǎng)絡(luò)流進(jìn)行分類、狀態(tài)跟蹤和報文處理的裝置,其特征在于IP分片表管理裝置的一個重要特征是各個進(jìn)程/線程分別負(fù)責(zé)IP分片表的不同部分;空閑IP分片記錄表項(xiàng)緩沖區(qū)的一個重要特征是其可分配表項(xiàng)閾值小于最大空閑表項(xiàng)數(shù)。
4.一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,該方法包括以下步驟根據(jù)IP分片包含的IP分片四元組信息執(zhí)行IP分片定位操作,確定IP分片所屬的IP報文以及所屬的網(wǎng)絡(luò)流;根據(jù)IP分片的字段信息執(zhí)行IP分片跟蹤操作,更新IP分片記錄中的相關(guān)信息;對于找不到對應(yīng)IP分片記錄的IP分片,將其交給IP分片表管理裝置,經(jīng)IP分片表管理裝置確認(rèn)不存在對應(yīng)IP分片記錄后,執(zhí)行IP分片記錄新建操作;在新建IP分片記錄之前,如果空閑IP分片記錄緩沖區(qū)已空,則執(zhí)行IP分片記錄替換操作,替換出一個IP分片記錄表項(xiàng);定時執(zhí)行IP分片記錄老化操作,將已經(jīng)達(dá)到或超過老化時間的IP分片記錄從IP分片表中刪除;對已經(jīng)從IP分片表中刪除的IP分片記錄表項(xiàng)執(zhí)行回收操作,回收到空閑IP分片記錄緩沖區(qū)中。
5.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片定位操作的步驟為1)以IP分片包含的源地址、目的地址、報文ID、協(xié)議號為IP分片四元組信息,以四元組信息為健值代入散列函數(shù),以運(yùn)算結(jié)果為索引找到IP分片表中對應(yīng)的散列表項(xiàng);2)將IP分片的健值依次與鏈表中各IP分片記錄的健值進(jìn)行比較;3)如果找到對應(yīng)的IP分片記錄,則將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作;4)否則,將IP分片交給IP分片表管理裝置中對應(yīng)的進(jìn)程/線程,IP分片表管理裝置先要確認(rèn)對應(yīng)IP分片記錄是否存在如果存在,則直接將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作;否則,從空閑IP分片記錄表項(xiàng)緩沖區(qū)中分配一個空閑IP分片記錄表項(xiàng),然后執(zhí)行IP分片記錄新建操作。
6.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片跟蹤操作的步驟為1)將分片對應(yīng)的IP分片記錄加寫鎖,或者采用互斥寫原子指令對IP分片記錄內(nèi)容進(jìn)行修改;2)如果當(dāng)前分片為首分片包,則將IP分片記錄中的“首分片已到達(dá)”標(biāo)志位置位并更新IP報文總長度、已到達(dá)分片總長度、時間戳、老化時間信息;當(dāng)已到達(dá)分片總長度等于IP報文總長度時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間信息;接著,將IP分片交給動態(tài)流分類裝置執(zhí)行動態(tài)流分類操作;當(dāng)動態(tài)流分類操作執(zhí)行完畢后,將報文所屬的網(wǎng)絡(luò)流記錄的地址緩存到IP分片記錄中,然后對該IP分片記錄的IP分片鏈表加寫鎖,將IP分片鏈表中保存的IP分片從鏈表中一一刪除,交給后繼裝置處理;3)如果當(dāng)前分片不是首分片包,更新IP分片記錄中的已到達(dá)分片總長度;如果當(dāng)前分片是尾分片包,將IP分片記錄中的“尾分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間信息;當(dāng)已到達(dá)分片總長度等于IP報文總長度時,將IP分片記錄中的“所有分片已到達(dá)”標(biāo)志位置位并更新時間戳、老化時間信息;如果IP分片記錄中緩存的網(wǎng)絡(luò)流記錄指針為空,將該IP分片記錄的IP分片鏈表加寫鎖;加鎖成功后,再一次判斷IP分片記錄中緩存的網(wǎng)絡(luò)流記錄指針是否為空,如果為空,則將該IP分片掛入IP分片記錄的IP分片鏈表中,然后解除IP分片鏈表寫鎖;否則,直接解除IP分片鏈表寫鎖。4)解除IP分片記錄的寫鎖,然后根據(jù)得到的網(wǎng)絡(luò)流記錄指針找到對應(yīng)的網(wǎng)絡(luò)流記錄,將當(dāng)前IP分片交給后繼裝置處理。
7.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片記錄替換操作的步驟為1)依次檢查當(dāng)前IP分片記錄鏈表中各IP分片記錄的時間戳和老化時間信息,選擇已經(jīng)達(dá)到或者超過老化期限的IP分片記錄;如果沒有這樣的IP分片記錄,則選擇IP分片記錄鏈表中老化期限最近且IP分片鏈表為空的IP分片記錄,或者選擇IP分片記錄鏈表中第一個IP分片鏈表為空的IP分片記錄;2)返回選中的IP分片記錄。
8.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片記錄新建操作的步驟為1)以IP分片的健值作為IP分片記錄的健值,填寫IP分片記錄中的健值、時間戳、老化時間字段;2)將IP分片記錄表項(xiàng)插入IP分片表中健值對應(yīng)的IP分片記錄鏈表中;3)將IP分片交給IP分片跟蹤裝置,執(zhí)行IP分片跟蹤操作。
9.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片記錄老化操作的步驟為1)IP分片表管理裝置的每個進(jìn)程/線程定期掃描其負(fù)責(zé)的那部分IP分片表,將達(dá)到或超過老化期限的IP分片記錄進(jìn)行回收;2)為控制老化操作的開銷,需設(shè)置一次操作中最多掃描表項(xiàng)的閾值;每次老化操作都從上次結(jié)束的地方開始繼續(xù)進(jìn)行掃描。
10.根據(jù)權(quán)利要求4所述的無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的方法,其特征在于,所述IP分片記錄表項(xiàng)回收操作的步驟為1)將IP分片記錄表項(xiàng)從IP分片表中健值對應(yīng)的IP分片記錄鏈表中摘除;2)將IP分片記錄表項(xiàng)回收到空閑IP分片記錄表項(xiàng)緩沖區(qū)中。
全文摘要
本發(fā)明涉及一種無需IP分片重組實(shí)現(xiàn)動態(tài)流分類的裝置和方法,基于IP分片四元組(源地址、目的地址、報文ID、協(xié)議號)對IP分片進(jìn)行跟蹤,采用多個并行裝置和裝置內(nèi)部多進(jìn)程/線程機(jī)制實(shí)現(xiàn)了對IP分片的高速并行處理,通過切分IP分片表、設(shè)置IP分片記錄鏈表寫者唯一、嚴(yán)格規(guī)定鏈表插入和刪除操作過程中寫指令次序以保持鏈表的完整性、設(shè)置空閑IP分片記錄表項(xiàng)緩沖區(qū)的可分配表項(xiàng)閾值等措施避免了由于并行處理而引發(fā)的大量互斥和同步操作,使得處理效率得到進(jìn)一步提高。本發(fā)明適用于網(wǎng)絡(luò)處理器、ASIC、FPGA、多內(nèi)核處理器、對稱多處理器、軟件進(jìn)程/線程等各種并行處理環(huán)境,具有良好的跨平臺兼容性、可擴(kuò)展性和實(shí)用性。
文檔編號H04L12/56GK1941732SQ20051008652
公開日2007年4月4日 申請日期2005年9月28日 優(yōu)先權(quán)日2005年9月28日
發(fā)明者張建宇, 韋韜, 鄒維 申請人:北京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1