国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于多域最長(zhǎng)匹配的流識(shí)別方法及設(shè)備的制作方法

      文檔序號(hào):8004376閱讀:165來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):基于多域最長(zhǎng)匹配的流識(shí)別方法及設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及分組通信技術(shù)領(lǐng)域,尤其涉及一種基于多域最長(zhǎng)匹配的流識(shí)別方法及設(shè)備,可應(yīng)用于分組網(wǎng)絡(luò)接入端設(shè)備,如局域網(wǎng)網(wǎng)橋等中。
      背景技術(shù)
      流識(shí)別技術(shù)是指依據(jù)網(wǎng)絡(luò)協(xié)議的定義對(duì)網(wǎng)絡(luò)中不同業(yè)務(wù)功能的分組進(jìn)行識(shí)別分類(lèi)的方法。它是分組通信網(wǎng)絡(luò)設(shè)備中一項(xiàng)非常重要的技術(shù),用于實(shí)現(xiàn)包過(guò)濾,服務(wù)質(zhì)量QoS、 虛擬局域網(wǎng)VLAN,虛擬專(zhuān)網(wǎng)VPN,IGMP Snooping等業(yè)務(wù)。流識(shí)別功能可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件實(shí)現(xiàn)。軟件流識(shí)別一般是基于訪問(wèn)控制列表ACL來(lái)實(shí)現(xiàn)的,這種方法通過(guò)配置一系列ACL規(guī)則對(duì)數(shù)據(jù)分組頭中的多個(gè)域進(jìn)行匹配,確定其是否滿(mǎn)足ACL規(guī)則,并根據(jù)滿(mǎn)足或不滿(mǎn)足某一類(lèi)規(guī)則,決定對(duì)數(shù)據(jù)分組的處理?;谲浖牧髯R(shí)別,可以支持大量的復(fù)雜的規(guī)則,方便地對(duì)規(guī)則列表進(jìn)行添加,刪除或更改,為網(wǎng)絡(luò)管理者提供靈活的管理方法。但在需要支持的ACL規(guī)則數(shù)目變大時(shí),表項(xiàng)的生成和組織會(huì)變得越來(lái)越復(fù)雜,對(duì)所能使用的規(guī)則匹配算法也提出了更高的要求。硬件實(shí)現(xiàn)有多種方法,大致可分成兩類(lèi),一類(lèi)是采用專(zhuān)用的內(nèi)容尋址存儲(chǔ)器CAM 器件再附加靜態(tài)隨機(jī)存儲(chǔ)器SRAM的實(shí)現(xiàn)方法,另一類(lèi)是基于普通存儲(chǔ)器如同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM的實(shí)現(xiàn)方法。采用CAM器件的流識(shí)別設(shè)備中,CAM器件中一般存儲(chǔ)有用于查找各種表的關(guān)鍵字, SRAM中存儲(chǔ)有關(guān)鍵字附帶的內(nèi)容。在進(jìn)行流識(shí)別查找時(shí),由CAM給出地址,再?gòu)腟RAM中的相應(yīng)地址單元讀出數(shù)據(jù),該方式可以實(shí)現(xiàn)高度的并行流水線查表,性能可以達(dá)到很高,但由于該技術(shù)方案需要增加額外的SRAM,不僅增加了成本,而且增加了實(shí)現(xiàn)復(fù)雜度,不適合用于網(wǎng)絡(luò)接入端設(shè)備中?;谄胀ù鎯?chǔ)器的流識(shí)別方法將查表的關(guān)鍵字和關(guān)鍵字對(duì)應(yīng)的內(nèi)容組織成流識(shí)別規(guī)則表存儲(chǔ)在普通存儲(chǔ)器中,查表過(guò)程需要逐一對(duì)表項(xiàng)進(jìn)行判斷是否滿(mǎn)足規(guī)則。這種方法成本較低,適合在速度要求不高的應(yīng)用場(chǎng)合,如分組網(wǎng)絡(luò)接入端設(shè)備中使用。但是這種方法對(duì)存儲(chǔ)器的需求量大,性能比較低,而且這種流識(shí)別方法一般涉及的匹配域較少,并且多為精確匹配,在識(shí)別匹配域較多時(shí),實(shí)現(xiàn)的復(fù)雜度也比較高。如果要實(shí)現(xiàn)多域流識(shí)別,就需要查找多個(gè)流識(shí)別表,在這種情況下,若不增加并行查找模塊,分組處理速度將成倍減小。

      發(fā)明內(nèi)容
      本發(fā)明目的是針對(duì)上述已有技術(shù)存在的問(wèn)題,提出一種基于多域的最長(zhǎng)匹配流識(shí)別方法及設(shè)備,以節(jié)省流識(shí)別規(guī)則表項(xiàng)的存儲(chǔ)空間,提高多域流識(shí)別的處理速度,降低多域流識(shí)別設(shè)備的復(fù)雜度。一.術(shù)語(yǔ)說(shuō)明字段用于指定分組中需要進(jìn)行匹配或操作的特定區(qū)域的一個(gè)連續(xù)的bit串,其由地址偏移和長(zhǎng)度兩種信息組成。
      字段列表用于存放字段的列表,其中的字段按存儲(chǔ)順序編號(hào)。條款是由字段Field、操作和值組成,其中字段通過(guò)字段編號(hào)表示,操作包括等于、大于、小于、不等于、大于等于和小于等于,值為用戶(hù)設(shè)置的16位數(shù)據(jù)。規(guī)則包括一系列條款,條款之間為與運(yùn)算邏輯關(guān)系,規(guī)則還定義了當(dāng)規(guī)則滿(mǎn)足時(shí)需要做的動(dòng)作。動(dòng)作是指需要對(duì)分組實(shí)施的處理,本發(fā)明支持的動(dòng)作包括進(jìn)入指定優(yōu)先級(jí)隊(duì)列、 丟棄包、插入/刪除/修改字段、復(fù)制到CPU和重定向到CPU,一個(gè)規(guī)則只對(duì)應(yīng)一個(gè)動(dòng)作。規(guī)則表是用于存放規(guī)則的列表。二 .本發(fā)明提出的一種基于最長(zhǎng)匹配的流識(shí)別方法,包括如下步驟(1)用戶(hù)根據(jù)組網(wǎng)及管理需要生成字段和規(guī)則,并把字段配置到字段列表中,把規(guī)則配置到規(guī)則表中,該字段是指用于指向分組中需要進(jìn)行匹配或操作的特定區(qū)域的一個(gè)連續(xù)的bit串由地址偏移和長(zhǎng)度兩種信息組成,該規(guī)則包括一系列條款和條款滿(mǎn)足時(shí)需要執(zhí)行的動(dòng)作;(2)根據(jù)用戶(hù)配置的字段列表,提取出需要進(jìn)行流識(shí)別處理的分組字段的值;(3)從規(guī)則表中的第一條規(guī)則開(kāi)始,比較分組字段的值是否滿(mǎn)足規(guī)則,若滿(mǎn)足,記錄規(guī)則中的有效條款的數(shù)目及規(guī)則對(duì)應(yīng)的動(dòng)作,若不滿(mǎn)足,判斷是否滿(mǎn)足第二條規(guī)則,依次類(lèi)推;(4)根據(jù)對(duì)所有規(guī)則的判斷結(jié)果確定對(duì)分組的操作當(dāng)分組不滿(mǎn)足規(guī)則表中的任何一條規(guī)則時(shí),對(duì)該分組不做處理;當(dāng)分組只滿(mǎn)足一條規(guī)則隊(duì),則按規(guī)則隊(duì)規(guī)定的動(dòng)作處理分組;當(dāng)分組滿(mǎn)足多條規(guī)則R1, R2,…Rm…,Rn, η > m > 1,則根據(jù)規(guī)則包含的有效條款的數(shù)目來(lái)決定最終按照那一條規(guī)則來(lái)處理分組記規(guī)則R1包含的有效條款數(shù)位為C1,規(guī)則 R2包含的有效條款為C2,…,規(guī)則I^m包含的有效條款為Cm,規(guī)則包含的有效條款為Cn, 若Cn = max IC1, C2,…Cm...,Cj,且Cn乒C1, Ci乒C2,…,Cn Φ Cm,則按規(guī)則Ι η定義的動(dòng)作處理分組;若Cffl = Cn = max (C1, C2,…Cm…,Cj,且規(guī)則Rffl的位置處于規(guī)則Rn之前,則按照規(guī)則Rm定義的動(dòng)作處理分組;(5)規(guī)則匹配結(jié)束后,對(duì)分組的處理操作以指令碼的方式給出,完成基于最長(zhǎng)匹配的流識(shí)別。三.本發(fā)明提出的一種基于最長(zhǎng)匹配的流識(shí)別設(shè)備,包括字段列表設(shè)有兩個(gè)接口,一個(gè)接口用于字段的配置,另一個(gè)接口與分組預(yù)處理器相連,用于字段的讀取;分組預(yù)處理器用于提取字段在流識(shí)別分組中的值,當(dāng)有分組要進(jìn)行流識(shí)別處理時(shí),首先從前往后掃描分組頭部數(shù)據(jù),根據(jù)網(wǎng)絡(luò)協(xié)議的定義,獲得分組各層協(xié)議的類(lèi)型和在分組中的起始位置,然后從字段列表中讀取字段信息,結(jié)合字段中的偏移地址和長(zhǎng)度信息, 得到該字段在分組中的值,最后把字段編號(hào)和該字段在分組中的值存儲(chǔ)到分組字段寄存器中;分組字段寄存器用于存儲(chǔ)分組預(yù)處理器提取出的字段的值和字段編號(hào),用該值和字段編號(hào)作為判斷分組是否滿(mǎn)足規(guī)則中的特定條款的參數(shù),傳遞到比較器中;規(guī)則表用于存放用戶(hù)定義的規(guī)則,并設(shè)有配置接口和讀接口,配置接口用于將規(guī)則配置到規(guī)則表中,讀接口用于從規(guī)則表中讀出規(guī)則;比較器用于從規(guī)則表中讀取規(guī)則的條款,從分組字段寄存器中讀取字段在分組中的值,并比較字段在分組中的值是否滿(mǎn)足規(guī)則的條款,將比較結(jié)果輸出給決策器;決策器用于根據(jù)比較器的比較結(jié)果,判斷分組是否匹配某一條規(guī)則,記錄匹配成功規(guī)則的動(dòng)作,并從所有匹配成功的規(guī)則中選擇一條作為分組流識(shí)別的最終結(jié)果,將最終結(jié)果的動(dòng)作轉(zhuǎn)換成分組處理操作碼輸出。


      圖1為本發(fā)明的流識(shí)別方法流程圖;圖2為本發(fā)明的字段列表結(jié)構(gòu)圖;圖3為本發(fā)明的規(guī)則表結(jié)構(gòu)圖;圖4為本發(fā)明的條款格式圖;圖5為本發(fā)明的操作格式圖;圖6為本發(fā)明的指令碼格式圖;圖7為本發(fā)明的流識(shí)別設(shè)備結(jié)構(gòu)圖。
      具體實(shí)施例方式為使本發(fā)明目的、技術(shù)方案以及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行近一步的詳細(xì)說(shuō)明。參照?qǐng)D1,本發(fā)明基于最長(zhǎng)匹配的流識(shí)別方法,其實(shí)現(xiàn)步驟如下步驟1 用戶(hù)根據(jù)組網(wǎng)及管理需要生成字段和規(guī)則,并把字段配置到字段列表中, 把規(guī)則配置到規(guī)則表中,該字段是指用于指向分組中需要進(jìn)行匹配或操作的特定區(qū)域的一個(gè)連續(xù)的bit串由地址偏移和長(zhǎng)度兩種信息組成,該規(guī)則包括一系列條款和條款滿(mǎn)足時(shí)需要執(zhí)行的動(dòng)作。參照?qǐng)D2,本發(fā)明的所有字段順序存儲(chǔ)在字段列表中,并按存儲(chǔ)順序給字段編號(hào), 字段通過(guò)其編號(hào)來(lái)索引。字段列表中每個(gè)字段占用4字節(jié),其中1 0位表示字段所在的協(xié)議層,0表示MAC層、1表示IP層、2表示IP上層、3表示特殊字段;7 2位作為保留位;8位用來(lái)指示字段處在由層號(hào)和偏移確定的雙字的高16位中還是低16位中,1 表示高16位,0表示低16位;13 9位表示字段在所在層中的雙字偏移,最大雙字偏移31 ;15 14位作為保留位;31 16位16位掩碼,指字段所在雙字中高或低16位比特中的有效位數(shù),1表示比特位有效,0表示無(wú)效。參照?qǐng)D3,本發(fā)明的規(guī)則表為一段連續(xù)的存儲(chǔ)空間,包含128條規(guī)則,每條規(guī)則占用64個(gè)字節(jié),規(guī)則順序存儲(chǔ)在規(guī)則表中,一條規(guī)則由12個(gè)條款、1個(gè)動(dòng)作信息、1個(gè)附帶信息組成,每條規(guī)則占4字節(jié),動(dòng)作占12字節(jié),附帶信息為4字節(jié)。規(guī)則的動(dòng)作包括指令、雙字偏移、層號(hào)、掩碼和值,其中指令包括丟棄、優(yōu)先級(jí)映射、添加、刪除或修改字段,重定向到 CPU,復(fù)制到CPU。參照?qǐng)D4,本發(fā)明的條款是由字段、操作和值組成,字段通過(guò)字段編號(hào)表示,字段編號(hào)占用8比特,高3位保留不用,低5位用于對(duì)應(yīng)字段列表中的相應(yīng)序號(hào)的字段,因?yàn)樽侄瘟斜碇兄淮鎯?chǔ)的字段不超過(guò)32項(xiàng),所以用5比特?cái)?shù)據(jù)可以表示字段列表中的任意字段。本發(fā)明條款操作占用8比特,值占用16比特。參照?qǐng)D5,本發(fā)明操作最高兩位始終為0,剩下6位按照優(yōu)先級(jí)由高到低的順序依次表示等于、不等于、大于、小于、大于等于和小于等于6個(gè)匹配操作,為1表示該操作有效, 多個(gè)操作同時(shí)有效時(shí),只進(jìn)行高優(yōu)先級(jí)的操作,全0表示無(wú)操作。步驟2 根據(jù)用戶(hù)配置的字段列表,提取出需要進(jìn)行流識(shí)別處理的分組字段的值。由于字段由層號(hào),相對(duì)于某一層起始地址的偏移量,以及掩碼組成,所以提取分組中有效字段的值的關(guān)鍵是確定某一層協(xié)議的開(kāi)始位置;分組的第一個(gè)字節(jié)是MAC層的開(kāi)始,按照MAC層頭部類(lèi)型域可以判斷第三層協(xié)議是IPv4還是IPv6 ;然后利用IPv4頭長(zhǎng)度域IHL和IPv6協(xié)議的Next header域可以定位第四層協(xié)議的開(kāi)始地址;當(dāng)各層協(xié)議的起始地址確定之后,結(jié)合字段的偏移量,通過(guò)字節(jié)計(jì)數(shù)就可以找到字段在分組中的位置,再通過(guò)掩碼就可以知道分組字段的值。步驟3 從規(guī)則表中的第一條規(guī)則開(kāi)始,比較分組字段的值是否滿(mǎn)足規(guī)則,若滿(mǎn)足,記錄規(guī)則中的有效條款的數(shù)目及規(guī)則對(duì)應(yīng)的動(dòng)作,若不滿(mǎn)足,判斷是否滿(mǎn)足第二條規(guī)則,依次類(lèi)推;判斷分組字段的值滿(mǎn)足一條規(guī)則的依據(jù)是分組字段的值滿(mǎn)足了規(guī)則中所有的條款。步驟4 根據(jù)對(duì)所有規(guī)則的判斷結(jié)果確定對(duì)分組的操作該操作分三種情況當(dāng)分組不滿(mǎn)足規(guī)則表中的任何一條規(guī)則時(shí),對(duì)該分組不做處理;當(dāng)分組只滿(mǎn)足一條規(guī)則隊(duì),則按規(guī)則隊(duì)規(guī)定的動(dòng)作處理分組;當(dāng)分組滿(mǎn)足多條規(guī)則R1, R2,…艮…,Rn, η > m > 1,則根據(jù)規(guī)則包含的有效條款的數(shù)目來(lái)決定最終按照那一條規(guī)則來(lái)處理分組記規(guī)則R1包含的有效條款數(shù)位為C1,規(guī)則 R2包含的有效條款為C2,…,規(guī)則I^m包含的有效條款為Cm,規(guī)則包含的有效條款為Cn, 若Cn = max IC1, C2,…Cm...,Cj,且Cn乒C1, Ci乒C2,…,Cn Φ Cm,則按規(guī)則Ι η定義的動(dòng)作處理分組;若Cffl = Cn = max (C1, C2,…Cm…,Cj,且規(guī)則Rffl的位置處于規(guī)則Rn之前,則按照規(guī)則Rm定義的動(dòng)作處理分組;步驟5 規(guī)則匹配結(jié)束后,對(duì)分組的處理操作以指令碼的方式給出,完成基于最長(zhǎng)匹配的流識(shí)別。參照?qǐng)D6,指令碼位寬為80比特,一個(gè)流識(shí)別分組對(duì)應(yīng)一條指令碼,指令碼包括指令區(qū)和參數(shù)區(qū),指令區(qū)有7種指令,分別是復(fù)制包、重定向到CPU、復(fù)制到CPU、指定優(yōu)先級(jí)隊(duì)列、插入、修改和刪除,指令區(qū)相應(yīng)位為1表示該指令有效,為0表示無(wú)效;參數(shù)區(qū)包括指定的優(yōu)先級(jí)號(hào),刪除操作的地址,插入操作的地址和值,修改操作的地址,值和掩碼;一條指令碼中插入、修改、刪除指令執(zhí)行的優(yōu)先級(jí)為插入最高,修改次之,刪除最低;當(dāng)插入,修改和刪除指令區(qū)有多位比特為1時(shí),只有優(yōu)先級(jí)最高的指令是有效的。參照?qǐng)D7,本發(fā)明基于最長(zhǎng)匹配的流識(shí)別設(shè)備,包括字段列表10、分組預(yù)處理器20、分組字段寄存器30、規(guī)則表40、比較器50和決策器60。其中字段列表10 設(shè)有兩個(gè)接口,一個(gè)接口用于字段的配置,另一個(gè)接口與分組預(yù)處理器20單向相連,用于分組字段的讀取。字段列表中的內(nèi)容由用戶(hù)通過(guò)配置接口提前寫(xiě)入,并支持對(duì)單條或多條字段的實(shí)時(shí)更新。規(guī)則表40:用于存放用戶(hù)定義的規(guī)則,并設(shè)有配置接口和讀接口,配置接口將規(guī)則配置到規(guī)則表中,讀接口從規(guī)則表中讀出規(guī)則,為了提高處理的速度,讀接口的位寬和規(guī)則的寬度相同,讀取一條規(guī)則只需一次操作;規(guī)則表中的規(guī)則由用戶(hù)通過(guò)配置接口提前寫(xiě)入,并支持對(duì)單條或多條規(guī)則的實(shí)時(shí)更新。分組預(yù)處理器20 連接字段列表10和分組字段寄存器30的輸出端,用于提取從 MAC層協(xié)議至第四層協(xié)議分組字段值;MAC層支持標(biāo)準(zhǔn)以太網(wǎng)幀格式和802. 3協(xié)議,根據(jù) MAC協(xié)議中類(lèi)型域的定義,定位IP層協(xié)議在分組中的起始位置;IP層同時(shí)支持IPv4協(xié)議和 IPv6協(xié)議,根據(jù)IPv4協(xié)議的IP頭長(zhǎng)度IHL域和IPv6協(xié)議的Next header域,定位第四層協(xié)議在分組中的起始位置。當(dāng)分組進(jìn)行流識(shí)別處理時(shí),首先依據(jù)上述方法,獲得各層協(xié)議在分組中的起始位置,然后從字段列表中讀取字段信息,結(jié)合字段中的偏移地址和長(zhǎng)度信息,即可從分組中得到該字段在分組中的值,最后把該字段在分組中的值和相應(yīng)的控制信息輸出至分組字段寄存器30,以完成分組字段值的存儲(chǔ)操作。分組字段寄存器30 由64個(gè)寄存器組成,分為2組,每組32個(gè)寄存器,連接在分組預(yù)處理器與比較器之間,分組預(yù)處理器20采用乒乓操作的方式在兩組寄存器中交替存儲(chǔ)字段的值和字段編號(hào),然后將該字段的值和字段編號(hào)作為判斷分組是否滿(mǎn)足規(guī)則特定條款的參數(shù),傳遞到比較器50中。比較器50 設(shè)為多個(gè),其個(gè)數(shù)與一條規(guī)則包含的條款的總數(shù)相同;連接規(guī)則表40 的讀接口和分組字段寄存器30的輸出端,從規(guī)則表中讀取規(guī)則的條款,從分組字段寄存器中讀取分組字段的值,并比較分組字段的值是否滿(mǎn)足規(guī)則的條款,將比較結(jié)果輸出給決策器60;每個(gè)比較器負(fù)責(zé)判斷一項(xiàng)條款,一條規(guī)則的所有條款并行處理,如果規(guī)則中的條款無(wú)效,則該條款被比較器50忽略,不做判斷。決策器60 用于判斷分組是否滿(mǎn)足某條規(guī)則以及根據(jù)對(duì)所有規(guī)則的判斷結(jié)果,決定對(duì)流識(shí)別分組的處理操作;其輸入為所有比較器50的比較結(jié)果和規(guī)則表40中規(guī)則的動(dòng)作,其輸出是對(duì)分組進(jìn)行處理的指令碼,該指令碼也是分組流識(shí)別的最終結(jié)果;決策器60 從比較器50中讀取比較結(jié)果,然后根據(jù)比較結(jié)果判斷分組是否滿(mǎn)足某條規(guī)則,分組滿(mǎn)足某條規(guī)則的條件是該規(guī)則的所有條款都被滿(mǎn)足;如果分組滿(mǎn)足某條規(guī)則,則從規(guī)則表40中讀取并寄存該規(guī)則對(duì)應(yīng)的動(dòng)作;所有規(guī)則處理完之后,如分組不滿(mǎn)足任何一條規(guī)則,則決策器 60輸出全零指令碼,對(duì)分組不做處理,如果分組滿(mǎn)足了一條或多條規(guī)則,則從滿(mǎn)足的規(guī)則中選出一條作為分組流識(shí)別的最終結(jié)果,將最終選出規(guī)則的動(dòng)作轉(zhuǎn)換成分組處理指令碼輸出ο以上所述,僅為本發(fā)明的具體實(shí)施方式
      ,但本發(fā)明的保護(hù)范圍并不限于此,任何熟悉該技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的改變或替換,都涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
      8
      權(quán)利要求
      1.一種基于最長(zhǎng)匹配的流識(shí)別的方法,包括如下步驟(1)用戶(hù)根據(jù)組網(wǎng)及管理需要生成字段和規(guī)則,并把字段配置到字段列表中,把規(guī)則配置到規(guī)則表中,該字段是指用于指向分組中需要進(jìn)行匹配或操作的特定區(qū)域的一個(gè)連續(xù)的 bit串由地址偏移和長(zhǎng)度兩種信息組成,該規(guī)則包括一系列條款和條款滿(mǎn)足時(shí)需要執(zhí)行的動(dòng)作;(2)根據(jù)用戶(hù)配置的字段列表,提取出需要進(jìn)行流識(shí)別處理的分組字段的值;(3)從規(guī)則表中的第一條規(guī)則開(kāi)始,比較分組字段的值是否滿(mǎn)足規(guī)則,若滿(mǎn)足,記錄規(guī)則中的有效條款的數(shù)目及規(guī)則對(duì)應(yīng)的動(dòng)作,若不滿(mǎn)足,判斷是否滿(mǎn)足第二條規(guī)則,依次類(lèi)推;(4)根據(jù)對(duì)所有規(guī)則的判斷結(jié)果確定對(duì)分組的操作當(dāng)分組不滿(mǎn)足規(guī)則表中的任何一條規(guī)則時(shí),對(duì)該分組不做處理;當(dāng)分組只滿(mǎn)足一條規(guī)則R1,則按規(guī)則R1規(guī)定的動(dòng)作處理分組;當(dāng)分組滿(mǎn)足多條規(guī)則R1, R2, ...Rm…,Rn,η > m > 1,則根據(jù)規(guī)則包含的有效條款的數(shù)目來(lái)決定最終按照那一條規(guī)則來(lái)處理分組記規(guī)則R1包含的有效條款數(shù)位為C1,規(guī)則&包含的有效條款為C2,…,規(guī)則Rm包含的有效條款為Cm,規(guī)則包含的有效條款為(;,若Cn =max(C1, C2, -Cm-, Cj,且Cn ^C1, Ci ^ C2,…,Cn興Cm,則按規(guī)則定義的動(dòng)作處理分組;若Cffl = Cn = max (C1, C2,…Cm…,Cj,且規(guī)則Rffl的位置處于規(guī)則Rn之前,則按照規(guī)則 Rm定義的動(dòng)作處理分組;(5)規(guī)則匹配結(jié)束后,對(duì)分組的處理操作以指令碼的方式給出,完成基于最長(zhǎng)匹配的流識(shí)別。
      2.根據(jù)權(quán)利要求1所述的基于最長(zhǎng)匹配的流識(shí)別的方法,其步驟(1)中所涉及的字段地址偏移,包括協(xié)議層號(hào)及相對(duì)于該層協(xié)議首字節(jié)的偏移量。
      3.根據(jù)權(quán)利要求1所述的基于最長(zhǎng)匹配的流識(shí)別的方法,其步驟(1)中所涉及的字段長(zhǎng)度信息,是通過(guò)掩碼表示,掩碼中1的長(zhǎng)度就是字段的有效長(zhǎng)度。
      4.根據(jù)權(quán)利要求1所述的基于最長(zhǎng)匹配的流識(shí)別的方法,其步驟(1)中所涉及的條款, 是由字段、操作和值組成,條款中的字段由字段編號(hào)表示,對(duì)應(yīng)字段列表中的相應(yīng)字段,條款的操作包括等于、大于、小于、不等于、大于等于、小于等于。
      5.根據(jù)權(quán)利要求1所述的基于最長(zhǎng)匹配的流識(shí)別的方法,其步驟(1)中所涉及的動(dòng)作, 包括丟棄、優(yōu)先級(jí)映射、添加、刪除或修改字段,重定向到CPU,復(fù)制到CPU。
      6.根據(jù)權(quán)利要求1所述的基于最長(zhǎng)匹配的流識(shí)別的方法,其步驟(5)中所涉及的指令碼,包括指令區(qū)和參數(shù)區(qū)兩部分,該指令區(qū)指明了需要對(duì)分組進(jìn)行的操作,它包括丟棄分組,復(fù)制到CPU,重定向到CPU,指定優(yōu)先級(jí)隊(duì)列,插入,修改,刪除;該參數(shù)區(qū)包括指定的優(yōu)先級(jí)號(hào),刪除操作的地址,插入操作的地址和值,修改操作的地址,值和掩碼。
      7.一種基于最長(zhǎng)匹配的流識(shí)別設(shè)備,包括字段列表(10)設(shè)有兩個(gè)接口,一個(gè)接口用于字段的配置,另一個(gè)接口與分組預(yù)處理器相連,用于字段的讀取;分組預(yù)處理器00)用于提取字段在流識(shí)別分組中的值,當(dāng)有分組要進(jìn)行流識(shí)別處理時(shí),首先從前往后掃描分組頭部數(shù)據(jù),根據(jù)網(wǎng)絡(luò)協(xié)議的定義,獲得分組各層協(xié)議的類(lèi)型和在分組中的起始位置,然后從字段列表(10)中讀取字段信息,結(jié)合字段中的偏移地址和長(zhǎng)度信息,得到該字段在分組中的值,最后把字段編號(hào)和該字段在分組中的值存儲(chǔ)到分組字段寄存器(30)中;分組字段寄存器(30)用于存儲(chǔ)分組預(yù)處理器00)提取出的字段的值和字段編號(hào),用該值和字段編號(hào)作為判斷分組是否滿(mǎn)足規(guī)則中的特定條款的參數(shù),傳遞到比較器(50)中;規(guī)則表GO)用于存放用戶(hù)定義的規(guī)則,并設(shè)有配置接口和讀接口,配置接口用于將規(guī)則配置到規(guī)則表中,讀接口用于從規(guī)則表中讀出規(guī)則;比較器(50):用于從規(guī)則表GO)中讀取規(guī)則的條款,從分組字段寄存器(30)中讀取字段在分組中的值,并比較字段在分組中的值是否滿(mǎn)足規(guī)則的條款,將比較結(jié)果輸出給決策器(60);決策器(60)用于根據(jù)比較器的比較結(jié)果,判斷分組是否匹配某一條規(guī)則,記錄匹配成功規(guī)則的動(dòng)作,并從所有匹配成功的規(guī)則中選擇一條作為分組流識(shí)別的最終結(jié)果,將最終結(jié)果的動(dòng)作轉(zhuǎn)換成分組處理操作碼輸出。
      8.根據(jù)權(quán)利要求7所述的基于最長(zhǎng)匹配的流識(shí)別的設(shè)備,其中比較器(50)的總數(shù)為 N,每個(gè)比較器負(fù)責(zé)判斷一項(xiàng)條款,所有條款并行處理,如果規(guī)則中的條款無(wú)效,則該條款被比較器忽略,不做判斷,N的取值為一條規(guī)則包含的所有條款的個(gè)數(shù)。
      9.根據(jù)權(quán)利要求7所述的基于最長(zhǎng)匹配的流識(shí)別的設(shè)備,其中規(guī)則表00)的讀接口的數(shù)據(jù)位寬與規(guī)則的位寬相同,讀取一條規(guī)則只需要一次操作。
      全文摘要
      本發(fā)明公開(kāi)了一種基于最長(zhǎng)匹配的流識(shí)別方法及設(shè)備。其設(shè)備包括字段列表、規(guī)則表、分組預(yù)處理器、分組字段寄存器、比較器和決策器。字段列表和規(guī)則表中存儲(chǔ)了用戶(hù)定義的字段和規(guī)則;分組預(yù)處理器依據(jù)字段列表中的字段和網(wǎng)絡(luò)協(xié)議的定義,提取字段在分組中的值,并存儲(chǔ)在分組字段寄存器中;比較器從規(guī)則表中讀取規(guī)則條款,從分組字段寄存器中讀取字段在分組中的值,比較字段在分組中的值是否滿(mǎn)足條款,將比較結(jié)果輸出給決策器;決策器根據(jù)所有規(guī)則的判斷結(jié)果,選擇一條匹配的域最多的規(guī)則作為分組最終的流識(shí)別結(jié)果,將該規(guī)則對(duì)應(yīng)的動(dòng)作以指令碼的方式輸出。該設(shè)備占用的存儲(chǔ)資源少,處理速度較快,實(shí)現(xiàn)簡(jiǎn)單,可應(yīng)用于分組網(wǎng)絡(luò)接入端設(shè)備中。
      文檔編號(hào)H04L29/06GK102427428SQ20111040379
      公開(kāi)日2012年4月25日 申請(qǐng)日期2011年12月7日 優(yōu)先權(quán)日2011年12月7日
      發(fā)明者劉煥峰, 姚明旿, 張冰, 張奭, 張雷鳴, 潘偉濤, 趙哲, 邱智亮, 鮑民權(quán), 龔晨亮 申請(qǐng)人:西安電子科技大學(xué)
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1