專利名稱:一種多域流分類流水線的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)QoS (服務(wù)質(zhì)量)領(lǐng)域,尤其涉及一種多域流分類流水線的實(shí)現(xiàn)方法。
背景技術(shù):
QoS全稱為“Quality of Service”,中文名為“服務(wù)質(zhì)量”。QoS是網(wǎng)絡(luò)的一種安全機(jī)制,是用來解決網(wǎng)絡(luò)延遲和阻塞等問題的一種技術(shù)。流分類采用一定的規(guī)則識(shí)別符合某類特征的報(bào)文,它是有區(qū)別地進(jìn)行服務(wù)的前提和基礎(chǔ)。如圖1所示,流分類的基本原理就是,數(shù)據(jù)包中的多個(gè)域根據(jù)分類參數(shù)以及搜索引擎去規(guī)則庫中匹配。通過這種匹配就可以達(dá)到流分類的目的,這也是區(qū)別地進(jìn)行服務(wù)的前提和基礎(chǔ)。目前常用的硬件實(shí)現(xiàn)^Ternary CAM。Ternary CAM (簡(jiǎn)稱T-CAM,是一個(gè)硬件設(shè)備,它能起到和完全相關(guān)聯(lián)存儲(chǔ)器一樣的功用)具有最快的分類時(shí)間,但是價(jià)格比較高,耗電量大,只適合小規(guī)則庫。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種多域流分類流水線的實(shí)現(xiàn)方法,用 SRAM (SRAM是英文Matic RAM的縮寫,它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù))替換Ternary CAM,該方法功耗小,成本低,處理帶寬高, RULE規(guī)則可以靈活擴(kuò)大。為解決上述技術(shù)問題,本發(fā)明一種多域流分類流水線的實(shí)現(xiàn)方法,包括如下步驟(1)接收到數(shù)據(jù)包后進(jìn)行數(shù)據(jù)包信息域的提?。?2)建立多個(gè)搜索模板,該搜索模板具有多比特域選擇器、查找域掩碼和聯(lián)合標(biāo)記;(3)采用流水線方式通過步驟( 建立的搜索模板選出160比特寬度的查找域,該查找域是經(jīng)過掩碼過濾的;(4)用步驟(3)的查找域合上搜索模板的序列號(hào),得到一個(gè)新查找域,用該新查找域進(jìn)行哈希運(yùn)算去查RULE規(guī)則表,進(jìn)而去匹配RULE行為表;(5)根據(jù)匹配結(jié)果,判斷最終規(guī)則行為。在步驟(1)中,所述數(shù)據(jù)包信息域包括IP頭,VLAN和MAC地址;所述進(jìn)行數(shù)據(jù)包信息域的提取具體為對(duì)收到的數(shù)據(jù)包解析,得到該數(shù)據(jù)包的格式,從而可以獲取該數(shù)據(jù)包信息域。在步驟(1)中,基于多維查找轉(zhuǎn)換為一維查找的算法,把流分類查找的各個(gè)數(shù)據(jù)包信息域連接起來組成一個(gè)查找域,該查找域的寬度為160比特。在步驟⑵中,所述多比特域選擇器用于選擇相關(guān)的數(shù)據(jù)包信息域;所述查找域掩碼用于去除規(guī)則不關(guān)心的數(shù)據(jù)包信息域的比特;所述聯(lián)合標(biāo)記用于表示是否聯(lián)合下一個(gè)搜索模板做搜索。步驟C3)具體為采用流水線方式分4個(gè)時(shí)鐘選出160比特的查找域,第一個(gè)時(shí)鐘選擇從M比特到19比特的相關(guān)域,第二個(gè)時(shí)鐘選擇從18比特到13比特的相關(guān)域,第三個(gè)時(shí)鐘選擇從12比特到7比特的相關(guān)域,第四個(gè)時(shí)鐘選擇從6比特到1比特的相關(guān)域,每次都記錄填充的起始位置,查找域初始值為0。在步驟(3)中,所述查找域經(jīng)過掩碼過濾采用查找域和查找域掩碼做邏輯與的方法進(jìn)行過濾。在步驟中,所述搜索模板的序列號(hào)的比特?cái)?shù)量根據(jù)搜索模板的數(shù)量來決定。在步驟中,如果該搜索模板的聯(lián)合標(biāo)記有效,那么就保留該搜索模板的哈希運(yùn)算的結(jié)果,迭代入下一個(gè)搜索模板的哈希運(yùn)算,得到結(jié)果去查RULE規(guī)則表,進(jìn)而去匹配 RULE行為表。在步驟(5)中,由于有多個(gè)搜索模板可以命中多條規(guī)則,那么根據(jù)每條規(guī)則的優(yōu)先級(jí)去判斷最終規(guī)則行為。在步驟(5)中,判斷最終規(guī)則行為具體采用如下方法每條規(guī)則都配置有優(yōu)先級(jí), 因此判斷就根據(jù)每條規(guī)則的優(yōu)先級(jí)高低,從高到底;如果優(yōu)先級(jí)相同,就根據(jù)搜索模板的序列號(hào)大小,從大到小判斷。本發(fā)明的有益效果在于本發(fā)明的技術(shù)方案描述了多域流分類流水線的實(shí)現(xiàn)方法,這種方法硬件實(shí)現(xiàn)簡(jiǎn)單,搜索時(shí)間只需一個(gè)時(shí)鐘類似Ternary CAM(用SRAM替換 Ternary CAM),功耗小,成本低,處理帶寬高,RULE規(guī)則可以靈活擴(kuò)大。
圖1是流分類算法的基本原理示意圖;圖2是本發(fā)明流分類流程示意圖;圖3是本發(fā)明方法中一種流水線實(shí)現(xiàn)查找域的示意圖;圖4是本發(fā)明方法中另一種流水線實(shí)現(xiàn)查找域的示意圖;圖5是本發(fā)明中規(guī)則搜索和比較示意圖。
具體實(shí)施例方式如圖2所示,本發(fā)明一種多域流分類流水線的實(shí)現(xiàn)方法,具體包括如下步驟1.接收到數(shù)據(jù)包開始流分類;2.對(duì)接收到包進(jìn)行數(shù)據(jù)包信息域的提取(如IP頭,VLAN,MAC地址等等); VLAN(Virtual Local Area Network)又稱虛擬局域網(wǎng),是指在交換局域網(wǎng)的基礎(chǔ)上,采用網(wǎng)絡(luò)管理軟件構(gòu)建的可跨越不同網(wǎng)段、不同網(wǎng)絡(luò)的端到端的邏輯網(wǎng)絡(luò);MAC地址(Media Access Control地址)或稱為硬體位址,用來定義網(wǎng)路設(shè)備的位置;基于多維查找轉(zhuǎn)換為一維查找的算法,即把流分類查找的各個(gè)數(shù)據(jù)包信息域連接起來組成一個(gè)查找域(寬度 160比特);3.流水線實(shí)現(xiàn)查找域去匹配規(guī)則表建立多個(gè)搜索模板,該搜索模板具有多比特域選擇器(用于選擇相關(guān)的數(shù)據(jù)包信息域)、查找域掩碼(用于去除規(guī)則不關(guān)心的數(shù)據(jù)包信息域的比特)和聯(lián)合標(biāo)記(用于表示是否聯(lián)合下一個(gè)搜索模板做搜索);由于多比特域選擇器在一個(gè)時(shí)鐘內(nèi)實(shí)現(xiàn)比較困難,因此采用流水線方式實(shí)現(xiàn),即每個(gè)時(shí)鐘實(shí)現(xiàn)6種域的選擇;通過搜索模板可以得到一個(gè)有160比特寬度的查找域,并且已經(jīng)是經(jīng)過掩碼過濾的;
4.規(guī)則搜索和比較用該查找域合上搜索模板的序列號(hào),得到一個(gè)新查找域。用該新查找域進(jìn)行哈希算法去查RULE規(guī)則表(該RULE規(guī)則表內(nèi)的規(guī)則要和搜索模板進(jìn)行比較),進(jìn)而去匹配RULE行為表(該RULE行為表是命中RULE規(guī)則表后需要對(duì)數(shù)據(jù)包做的行為),得到最終規(guī)則行為。哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。哈希表是根據(jù)設(shè)定的哈希函數(shù)H(key)和處理沖突方法將一組關(guān)鍵字映象到一個(gè)有限的地址區(qū)間上,并以關(guān)鍵字在地址區(qū)間中的象作為記錄在表中的存儲(chǔ)位置,這種表稱為哈希表或散列,所得存儲(chǔ)位置稱為哈希地址或散列地址。作為線性數(shù)據(jù)結(jié)構(gòu)與表格和隊(duì)列等相比,哈希表無疑是查找速度比較快的一種。RULE規(guī)則表即哈希表。 另外對(duì)于IP五元組(通常是指由源IP地址,源端口,目的IP地址,目的端口,和傳輸層協(xié)議號(hào)這五個(gè)量組成的一個(gè)集合)的查找由于IPV6 (IPv6是互聯(lián)網(wǎng)協(xié)議第四版(IPv4) 的更新版;最初它在IETF的IPng選取過程中勝出時(shí)稱為互聯(lián)網(wǎng)下一代網(wǎng)際協(xié)議(IPng), IPv6是被正式廣泛使用的第二版互聯(lián)網(wǎng)協(xié)議),超過了 160比特,因此用兩個(gè)搜索模板聯(lián)合進(jìn)行哈希算法得到RULE規(guī)則。下面給出本發(fā)明在IPDSLAM-10G芯片中的實(shí)施例,具體包括如下步驟1.接收到數(shù)據(jù)包開始流分類;2.對(duì)接收到的數(shù)據(jù)包進(jìn)行數(shù)據(jù)包信息域的提取(如IP頭,VLAN,MAC地址等等)。 對(duì)收到的數(shù)據(jù)包解析,得到該數(shù)據(jù)包的格式,從而可以獲取該數(shù)據(jù)包信息域?;诙嗑S查找轉(zhuǎn)換為一維查找的算法(即把多個(gè)信息域分別搜索的多維查找算法轉(zhuǎn)換為合成一個(gè)信息域去搜索的一維查找算法),即把流分類查找的各個(gè)數(shù)據(jù)包信息域連接起來組成一個(gè)查找域(寬度160比特)。3.建立8個(gè)搜索模板,該搜索模板具有M個(gè)比特的域選擇器(用于選擇相關(guān)的數(shù)據(jù)包信息域)、160比特的查找域掩碼(用于去除規(guī)則不關(guān)心的數(shù)據(jù)包信息域的比特)和聯(lián)合標(biāo)記(用于表示是否聯(lián)合下一個(gè)搜索模板做搜索)。查找域初始值為0 (見圖3和圖4中的查找域初始狀態(tài)為PAD ZERO)。采用流水線方式分4個(gè)時(shí)鐘選出160比特的查找域,第一個(gè)時(shí)鐘選擇從M比特到19比特的相關(guān)域(例如,第一個(gè)時(shí)鐘選擇24比特、23比特、19比特的相關(guān)域,即field24、field23、fieldl9,見圖3和圖4),第二個(gè)時(shí)鐘選擇從18比特到13比特的相關(guān)域(例如,第二個(gè)時(shí)鐘選擇18比特、13比特的相關(guān)域,即fieldl8、fieldl3,見圖3和圖4),第三個(gè)時(shí)鐘可以選擇從12比特到7比特的相關(guān)域(例如,第三個(gè)時(shí)鐘選擇12比特、11比特的相關(guān)域,即fieldl2、fieldll, 見圖3和圖4),第四個(gè)時(shí)鐘可以選擇從6比特到1比特的相關(guān)域(例如,如圖3所示,第四個(gè)時(shí)鐘選擇1比特的相關(guān)域,即fieldl ;如圖4所示,第四個(gè)時(shí)鐘選擇2比特的相關(guān)域,即 field2),每次都記錄填充的起始位置。域選擇器的選擇原則是高比特的優(yōu)先選擇,放置到查找域的高位。如果160比特的查找域被填滿后就不再填充了。如果查找域空間只能容下某個(gè)信息域的一部分,那么就把該信息域的剩余部分剔除(如圖4所示,第四個(gè)時(shí)鐘選擇2 比特的相關(guān)域(field》高比特填充,該查找域空間只能容下該2比特的相關(guān)域(field2) 的一部分,那么就把該2比特的相關(guān)域(field》的剩余部分剔除)。如果選擇相關(guān)信息域填不滿,則查找域后續(xù)比特保持0 (PAD ZERO)不變。同時(shí)為了減少域選擇器的邏輯,M比特的域選擇器按照所選數(shù)據(jù)包信息域?qū)挾鹊拇笮男〉酱笈帕小?.如圖5所示,規(guī)則搜索和比較用該查找域和域掩碼(即查找域掩碼)做邏輯與(AND)(即該查找域經(jīng)過查找域掩碼過濾),再合上搜索模板的3比特的序列號(hào)(這里合上搜索模板的多少比特的序列號(hào)是根據(jù)有多少搜索模板決定的,8個(gè)搜索模板對(duì)應(yīng)的就是 3比特的序列號(hào),16個(gè)搜索模板對(duì)應(yīng)的就是4比特的序列號(hào),32個(gè)搜索模板對(duì)應(yīng)的就是5比特的序列號(hào),因此合上多少比特序列號(hào)應(yīng)根據(jù)搜索模板的數(shù)量來決定),得到一個(gè)163比特的新查找域。用該新查找域進(jìn)行哈希運(yùn)算去查RULE TABLE (RULE規(guī)則表),比較新查找域與 RULE規(guī)則表內(nèi)的規(guī)則是否匹配,如RULE規(guī)則表內(nèi)有匹配的規(guī)則,再進(jìn)而去匹配RULE行為表 (該RULE行為表是命中RULE規(guī)則表后需要對(duì)數(shù)據(jù)包做的行為)。如果該搜索模板的聯(lián)合標(biāo)記有效,那么就保留本搜索模板的哈希運(yùn)算的結(jié)果,迭代入下一個(gè)搜索模板的哈希運(yùn)算, 得到結(jié)果去查RULE規(guī)則表,進(jìn)而去匹配RULE行為表。5.由于有8個(gè)模板可以最多命中8條RULE (規(guī)則),那么根據(jù)每條RULE (規(guī)則)的優(yōu)先級(jí)去判斷最終的規(guī)則行為。每條RULE都配置有優(yōu)先級(jí),因此判斷就根據(jù)每條規(guī)則的優(yōu)先級(jí)高低,從高到底,例如命中8條RULE,選擇其中優(yōu)先級(jí)最高的RULE在RULE行為表中對(duì)應(yīng)的行為,即得到最終的規(guī)則行為。如果優(yōu)先級(jí)相同,就根據(jù)搜索模板的序列號(hào)大小,從大到小判斷。例如,8條RULE中有2條RULE的優(yōu)先級(jí)最高且優(yōu)先級(jí)相同,則選擇該2條RULE 的搜索模板的序列號(hào)大的那條RULE在RULE行為表中對(duì)應(yīng)的行為,即得到最終的規(guī)則行為。
權(quán)利要求
1.一種多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,包括如下步驟(1)接收到數(shù)據(jù)包后進(jìn)行數(shù)據(jù)包信息域的提?。?2)建立多個(gè)搜索模板,該搜索模板具有多比特域選擇器、查找域掩碼和聯(lián)合標(biāo)記;(3)采用流水線方式通過步驟( 建立的搜索模板選出160比特寬度的查找域,該查找域是經(jīng)過掩碼過濾的;(4)用步驟(3)的查找域合上搜索模板的序列號(hào),得到一個(gè)新查找域,用該新查找域進(jìn)行哈希運(yùn)算去查RULE規(guī)則表,進(jìn)而去匹配RULE行為表;(5)根據(jù)匹配結(jié)果,判斷最終規(guī)則行為。
2.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(1)中,所述數(shù)據(jù)包信息域包括IP頭,VLAN和MAC地址;所述進(jìn)行數(shù)據(jù)包信息域的提取具體為對(duì)收到的數(shù)據(jù)包解析,得到該數(shù)據(jù)包的格式,從而可以獲取該數(shù)據(jù)包信息域。
3.如權(quán)利要求1或2所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(1) 中,基于多維查找轉(zhuǎn)換為一維查找的算法,把流分類查找的各個(gè)數(shù)據(jù)包信息域連接起來組成一個(gè)查找域,該查找域的寬度為160比特。
4.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟O)中,所述多比特域選擇器用于選擇相關(guān)的數(shù)據(jù)包信息域;所述查找域掩碼用于去除規(guī)則不關(guān)心的數(shù)據(jù)包信息域的比特;所述聯(lián)合標(biāo)記用于表示是否聯(lián)合下一個(gè)搜索模板做搜索。
5.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,步驟(3)具體為 采用流水線方式分4個(gè)時(shí)鐘選出160比特的查找域,第一個(gè)時(shí)鐘選擇從M比特到19比特的相關(guān)域,第二個(gè)時(shí)鐘選擇從18比特到13比特的相關(guān)域,第三個(gè)時(shí)鐘選擇從12比特到7 比特的相關(guān)域,第四個(gè)時(shí)鐘選擇從6比特到1比特的相關(guān)域,每次都記錄填充的起始位置, 查找域初始值為0。
6.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(3)中,所述查找域經(jīng)過掩碼過濾采用查找域和查找域掩碼做邏輯與的方法進(jìn)行過濾。
7.如權(quán)利要求5所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(4)中,所述搜索模板的序列號(hào)的比特?cái)?shù)量根據(jù)搜索模板的數(shù)量來決定。
8.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(4)中,如果該搜索模板的聯(lián)合標(biāo)記有效,那么就保留該搜索模板的哈希運(yùn)算的結(jié)果,迭代入下一個(gè)搜索模板的哈希運(yùn)算,得到結(jié)果去查RULE規(guī)則表,進(jìn)而去匹配RULE行為表。
9.如權(quán)利要求1所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(5)中,由于有多個(gè)搜索模板可以命中多條規(guī)則,那么根據(jù)每條規(guī)則的優(yōu)先級(jí)去判斷最終規(guī)則行為。
10.如權(quán)利要求9所述的多域流分類流水線的實(shí)現(xiàn)方法,其特征在于,在步驟(5)中,判斷最終規(guī)則行為具體采用如下方法每條規(guī)則都配置有優(yōu)先級(jí),因此判斷就根據(jù)每條規(guī)則的優(yōu)先級(jí)高低,從高到底;如果優(yōu)先級(jí)相同,就根據(jù)搜索模板的序列號(hào)大小,從大到小判斷。
全文摘要
本發(fā)明公開了一種多域流分類流水線的實(shí)現(xiàn)方法,包括如下步驟(1)接收到數(shù)據(jù)包后進(jìn)行數(shù)據(jù)包信息域的提??;(2)建立多個(gè)搜索模板,該搜索模板具有多比特域選擇器、查找域掩碼和聯(lián)合標(biāo)記;(3)采用流水線方式通過步驟(2)建立的搜索模板選出160比特寬度的查找域,該查找域是經(jīng)過掩碼過濾的;(4)用步驟(3)的查找域合上搜索模板的序列號(hào),得到一個(gè)新查找域,用該新查找域進(jìn)行哈希運(yùn)算去查RULE規(guī)則表,進(jìn)而去匹配RULE行為表;(5)根據(jù)匹配結(jié)果,判斷最終規(guī)則行為。該方法功耗小,成本低,處理帶寬高,RULE規(guī)則可以靈活擴(kuò)大。
文檔編號(hào)H04L12/56GK102377581SQ20101024821
公開日2012年3月14日 申請(qǐng)日期2010年8月9日 優(yōu)先權(quán)日2010年8月9日
發(fā)明者何運(yùn)鋒, 蔡云陽 申請(qǐng)人:高通創(chuàng)銳訊通訊科技(上海)有限公司