国产精品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>

      網(wǎng)絡(luò)封包分類器與其方法

      文檔序號:7644057閱讀:366來源:國知局
      專利名稱:網(wǎng)絡(luò)封包分類器與其方法
      技術(shù)領(lǐng)域
      本發(fā)明是有關(guān)于一種網(wǎng)絡(luò)封包分類器與其對應(yīng)方法,且特別是有關(guān)于一 種網(wǎng)絡(luò)封包分類器其中具延展性的分類機制、可行的架構(gòu)、與其對應(yīng)方法。
      背景技術(shù)
      以網(wǎng)際協(xié)議(Internet Protocol,簡稱為IP)為基礎(chǔ)的網(wǎng)絡(luò),有許多網(wǎng) 絡(luò)機制都需要將網(wǎng)絡(luò)封包加以分類。網(wǎng)絡(luò)入口設(shè)備通過網(wǎng)絡(luò)封包分類器 (classifier)將網(wǎng)絡(luò)上的封包作特定的定位運算,以計算出封包的標(biāo)頭 (header)或字段(field)的位置。網(wǎng)絡(luò)封包分類器會檢視封包的特定標(biāo)頭、字 段的內(nèi)容,并且根據(jù)事先制訂的規(guī)則集合(rule set)及依照網(wǎng)絡(luò)協(xié)議中標(biāo)頭 或字段的內(nèi)容值,來做數(shù)據(jù)比對并對封包進行分類。網(wǎng)絡(luò)封包分類器決定各 類封包的處理方式為何,再根據(jù)分類的結(jié)果予以管控,或是提供特定的網(wǎng)絡(luò) 資源。隨著網(wǎng)絡(luò)服務(wù)與日俱增與網(wǎng)絡(luò)技術(shù)的進步,昔日的網(wǎng)絡(luò)機制會有所更動。 因為根據(jù)網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)所設(shè)計出的傳統(tǒng)硬件很固定,這對于處理網(wǎng)絡(luò)封包的 設(shè)備有一定的沖擊。對于新增加或是增修的網(wǎng)絡(luò)協(xié)議,傳統(tǒng)硬件無法彈性地 變更,來處理一個新的、不一樣的字段位置。面對上述問題,業(yè)界通常只能 夠重新設(shè)計硬件來定位新的字段位置。傳統(tǒng)硬件架構(gòu)缺乏彈性,只能夠針對 固定字段進行識別,對于封包比對少了彈性分類的機制及少了對封包處理的 延展性,更不能動態(tài)地調(diào)整參數(shù)因應(yīng)新出現(xiàn)的封包字段,因此無法支持新增 的網(wǎng)絡(luò)協(xié)議或封包類型。而這種重新設(shè)計整個硬件架構(gòu)的方式,所付出的設(shè) 計成本很高,且對于既有系統(tǒng)廠商也是一筆大的開銷。發(fā)明內(nèi)容本發(fā)明提供一種網(wǎng)絡(luò)封包分類器,對封包字段作定位,以利于作特定數(shù) 據(jù)的比對、分類,并且具有彈性可以因應(yīng)目前最新的協(xié)議、服務(wù)與應(yīng)用做變 化組合,所以具有較大的使用彈性,也因其具有較好的可擴展性(scalability),因此能夠布建在更多的使用環(huán)境。本發(fā)明提供一種網(wǎng)絡(luò)封包分類方法,對封包字段作定位,以利于作特定 數(shù)據(jù)的比對、分類,并且方法具有彈性,可以更新設(shè)定來比對各種不同的封 包數(shù)據(jù)或字段。本發(fā)明提出一種網(wǎng)絡(luò)封包分類器,此分類器包括至少一內(nèi)容定位器。每 一上述內(nèi)容定位器進行至少一次定位運算,每一上述定位運算為輸出至少一 迭加項目的總和作為輸出偏移量(offset)。上述迭加項目其中之一為基底值, 此基底值為第一偏移量或上述內(nèi)容定位器其中之一所進行的定位運算其中之 一的輸出偏移量。上述內(nèi)容定位器其中之一的最后一次定位運算的輸出偏移 量為網(wǎng)絡(luò)封包其中比對字段的位置。本發(fā)明提出一種封包分類方法,包括進行至少一次定位運算,每一上述 定位運算為輸出至少一迭加項目的總和作為輸出偏移量。上述迭加項目其中 之一為基底值,此基底值為第一偏移量或上述定位運算其中之一的輸出偏移 量。上述輸出偏移量其中之一為網(wǎng)絡(luò)封包其中比對字段的位置。如本發(fā)明的較佳實施例所述,上述的網(wǎng)絡(luò)封包分類器利用數(shù)學(xué)公式模型 來代表所要比對的封包字段,用內(nèi)容定位器計算并找出所要比對的字段位置, 并進行后續(xù)的數(shù)據(jù)比對與封包分類。另外,可以彈性地組合內(nèi)容定位器與相 關(guān)硬件,以實現(xiàn)各種簡繁不一的數(shù)學(xué)公式,來計算各種封包字段的位置。因 此,使用本發(fā)明的網(wǎng)絡(luò)封包分類器與其對應(yīng)方法,可以增進封包數(shù)據(jù)比對與 分類的彈性,并節(jié)省成本。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并 配合所附圖式,作詳細說明如下。


      圖1為本發(fā)明一實施例的網(wǎng)絡(luò)封包分類器的網(wǎng)狀架構(gòu)圖。圖2為本發(fā)明一實施例的內(nèi)容定位器示意圖。圖3為本發(fā)明一實施例的內(nèi)容定位器的樹狀關(guān)系圖。圖4為本發(fā)明一實施例的網(wǎng)絡(luò)封包分類器的平行架構(gòu)圖。圖5 ~圖8為本發(fā)明較佳實施例的定位運算示意圖。[主要元件標(biāo)號說明]100、 400:網(wǎng)絡(luò)封包分類器101 — 103、 201、 301 — 311、 401 — 403:內(nèi)容定^立器110:定位器控制網(wǎng)絡(luò)120:比對器控制網(wǎng)絡(luò)131-133、 431 - 433:數(shù)據(jù)比對器140、 440:比對器輸出控制網(wǎng)絡(luò)202:參數(shù)451 ~ 453:存儲器461- 463:模塊CLSP:定位器系統(tǒng)參數(shù)MESP:比對器系統(tǒng)參數(shù)UDHDR_POS:輸出偏移量具體實施方式
      圖1繪示本發(fā)明一實施例的網(wǎng)絡(luò)封包分類器的網(wǎng)狀架構(gòu)圖。圖2繪示本 發(fā)明一實施例的內(nèi)容定位器示意圖。請同時參閱圖1與圖2。網(wǎng)絡(luò)封包分類 器100包括內(nèi)容定位器(content locator) 101、 102與103、定位器控制網(wǎng)絡(luò) 110、比對器控制網(wǎng)絡(luò)(matching control network) 120、數(shù)據(jù)比對器(matching engine)131、 132與133、以及比對器輸出控制網(wǎng)絡(luò)140。雖然圖l僅繪示三 個內(nèi)容定位器與三個數(shù)據(jù)比對器,網(wǎng)絡(luò)封包分類器IOO可擴充為包含任意數(shù) 量的內(nèi)容定位器與數(shù)據(jù)比對器,其具體數(shù)量視欲支持的封包分類規(guī)則數(shù)量與 字段復(fù)雜度而定。在本實施例中,內(nèi)容定位器101、 102與103的設(shè)計完全相同,以圖2內(nèi) 容定位器201來說明。內(nèi)容定位器201根據(jù)參數(shù)202進行定位運算,并輸出 運算結(jié)果的偏移量UDHDR-POS, UDHDR-P0S可以是數(shù)據(jù)封包中將進行數(shù)據(jù)比對 的字段位置,不論是既有的標(biāo)準(zhǔn)字段,或是使用者自行定義的特定數(shù)據(jù)位置。 UDHDR-P0S也可能作為基底值提供給下一級內(nèi)容定位器進行后續(xù)運算,以尋 址出將進行數(shù)據(jù)比對的字段位置。內(nèi)容定位器101、 102與103會各自輸出一 個偏移量UDHDR—P0S,在執(zhí)行一次字段定位時,圖1的每一個內(nèi)容定位器都 只做一次定位運算。內(nèi)容定位器201的輸出偏移量UDHDR—P0S,也就是定位運算的內(nèi)容,以 數(shù)學(xué)公式表示如下(式 1) 醒DR —P0S = HDR —P0S + (IF —PVAbP — VAL —OFFSET) + (C—FLAG*C_0FFSET) + U—OFFSET;上述式1的相關(guān)參數(shù)說明如下。UDHDR_P0S為輸出偏移量,性質(zhì)為整數(shù) (integer)。 HDR-POS為定位運算的基底值,性質(zhì)為整數(shù),可為由系統(tǒng)參數(shù)設(shè) 定的固定偏移量,或繼承前一級內(nèi)容定位器的輸出偏移量來當(dāng)作基底值。 IF—PVAL的性質(zhì)為布爾(Boolean)邏輯,決定是否引用P-VAL—0FFSET參數(shù), 來源為定位器系統(tǒng)參數(shù)(content locator system parameters) CLSP 。 P—VAL—OFFSET在此為代表封包標(biāo)頭長度的偏移量,性質(zhì)為整數(shù)。C-FLAG的性 質(zhì)為布爾邏輯,決定是否有C—OFFSET存在,細節(jié)后述。C—OFFSET為有條件 的固定偏移量,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為整凄丈。ILOFFSET為無條 件的固定偏移量,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為整數(shù)。由式1的說明可知,內(nèi)容定位器101、 102與103的定位運算為輸出至少 一個迭加項目的總和作為輸出偏移量UDHDR_P0S。內(nèi)容定位器101、 102與103 其中,至少有一個內(nèi)容定位器的輸出偏移量UDHDR-P0S為網(wǎng)絡(luò)封包其中比對 字段的位置。為了完成封包特定字段的定位操作,內(nèi)容定位器需要許多參數(shù)以進行定 位運算,這些參數(shù)可來自使用者設(shè)定的定位器系統(tǒng)參數(shù)CLSP,或來自網(wǎng)絡(luò)封 包的內(nèi)容數(shù)據(jù)。內(nèi)容定位器201為達到特定的字段定位,上述數(shù)學(xué)公式的式 1的內(nèi)容可以再進一步定義如下(式2) HDR—P0S = (~IF—CAS*FIX-POS) + (IF—CAS*PRE_UDHDR—POS);(式 3) P—VAL—OFFSET = P—VAL*P—VAL—FACTOR , 其中 P-VAL = PKT,—P0S+J—OFFSET);(式4) C—FLAG - (PKT(HDR—POS+P—OFFSET) == PTN)。上述數(shù)學(xué)公式的式2至式4的相關(guān)參數(shù)說明如下。IF_CAS為表示是否與 前一級的內(nèi)容定位器作串接,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為布爾邏輯。 FIX—POS為已知標(biāo)頭的位置,其偏移量為固定值,來源為定位器系統(tǒng)參數(shù) CLSP,性質(zhì)為整數(shù)。PRE—UDHDR—POS為來自前一級內(nèi)容定位器的基底值,也 就是前一級內(nèi)容定位器的輸出偏移量UDHDR-POS,性質(zhì)為整數(shù)。J-OFFSET為 取得P—VAL的偏移量,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為整數(shù)。J-OFFSET 的代表意義就是從封包起始到某一個信息字段的距離。P-VAL_FACTOR為轉(zhuǎn)換 P-VAL單位的常量,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為整數(shù)。PTN為要和封包凄史據(jù)比對的常量,來源為定位器系統(tǒng)參凄t CLSP,性質(zhì)為整數(shù)。P-0FFSET 為檢查比對PTN的封包位置,來源為定位器系統(tǒng)參數(shù)CLSP,性質(zhì)為整數(shù)。另 外,式3與式4都有一個PKT(), PKT()表示封包數(shù)據(jù),例如PKT(X)表示從 封包起始點開始,偏移量為X的位置所在的數(shù)據(jù)。再以式3的PKT為例,其 意義為從HDR-POS與J_0FFSET累加的偏移處所得到的字段內(nèi)容值。本實施例中,網(wǎng)絡(luò)封包分類器100的內(nèi)容定位器101、 102與103使用了 式1的數(shù)學(xué)公式,由式2至式4的進階定義,我們知道所使用的定位器系統(tǒng) 參數(shù)CLSP包括IF_PVAL、 C—OFFSET、 U一OFFSET、 IF一CAS、 FIX一POS、 J—OFFSET、 P_VAL_FACT0R、PTN以及P—0FFSET。需要動態(tài)產(chǎn)生或取得的參數(shù)包括HDR—P0S、 P_VAL_0FFSET、 P—VAL、 C—FLAG及PRE—UDHDR_P0S。 我們將式2至式4代入式1得到式5。式5如下 UDHDR-POS = (~IF—CAS*FIX_POS) + (IF—CAS*PRE_UDHDR—POS) + (IF—PVAL* (PKT (HDR—POS+J—OFFSET) *P—VAL—FACTOR)) + ((PKT(HDR_POS+P—OFFSET) ==PTN)*C_OFFSET) + U—OFFSET。由式1至式5可知每一個內(nèi)容定位器的輸出偏移量UDHDR—POS為許多迭 加項目的組合,迭加項目為(~ IF—CAS*FIX—POS) 、 (IF—CAS*PRE—UDHDR—POS)、 (IF—PVAL*(PKT (HDR_P0S+J_0FFSET)*P—VAL—FACTOR)) 、 ((PKT(HDR_POS+P—OFFSET) ==PTN)*C—OFFSET)、以及U—0FFSET。其中字段值 PKT(HDR-POS+J—OFFSET)與PKT (HDR—P0S+P—0FFSET)取自網(wǎng)絡(luò)封包。邏輯項目, 例如-IF—CAS、 IF-CAS、 C-FLAG與IF—PVAL,可為邏輯值或邏輯值的反值, 其中邏輯值為取自定位器系統(tǒng)參數(shù)CLSP或根據(jù)封包字段值進行判斷而產(chǎn)生。 C-FLAG定義中等于(==)的邏輯判斷運算可視應(yīng)用需求改為不等于、大于、或 小于。符號「*」代表在符號的前后兩項相乘。定位器控制網(wǎng)絡(luò)110控制內(nèi)容定位器101、 102與103的串接的情形。定 位器控制網(wǎng)絡(luò)110以及內(nèi)容定位器101 、 102與103根據(jù)定位器系統(tǒng)參數(shù)CLSP 的設(shè)定,動態(tài)地調(diào)配內(nèi)容定位器的串接順序,使部分內(nèi)容定位器能取得所需 的上一級內(nèi)容定位器的輸出偏移量作為基底值,進行多階段運算,以完成封 包的特定字段的定位。內(nèi)容定位器的輸出偏移量UDHDR—POS通往何處,要視所屬內(nèi)容定位器的 串接順序而定。定位某一字段所需的數(shù)學(xué)公式越長越復(fù)雜,對應(yīng)的內(nèi)容定位 器串接鏈的級數(shù)也越多。對于并非最后一級的內(nèi)容定位器,其輸出偏移量UDHDR—P0S會通過定位器控制網(wǎng)全備110傳遞給下一級內(nèi)容定位器作為基底值 HDR-P0S。對于串接鏈中最后一級的內(nèi)容定位器,其輸出偏移量UDHDR-POS就 是封包中需要比對的字段位置,會通過比對器控制網(wǎng)絡(luò)120傳遞至數(shù)據(jù)比對 器131、 132或133以進行數(shù)據(jù)比對。比對器控制網(wǎng)絡(luò)120的功能為連接內(nèi)容 定位器101-103以及數(shù)據(jù)比對器131-133。數(shù)據(jù)比對器131、 132與133會根 才居比只于器系纟充參凄史(matching engine system parameters) MESP,在網(wǎng)纟各去于 包之中對應(yīng)所接收的輸出偏移量的位置進行特定字段數(shù)據(jù)的比對,并輸出數(shù) 據(jù)比對的結(jié)果。比對器系統(tǒng)參數(shù)MESP包括了數(shù)據(jù)的比對的目標(biāo)模式(target pattern)、 目標(biāo)模式的長度、數(shù)據(jù)比較操作所采用的操作數(shù)(operand)以及數(shù)據(jù)比對所套 用的遮罩(mask)等。數(shù)據(jù)比對器131、 132與133的輸出為布爾值,只有比對成功與否的結(jié)果。 數(shù)據(jù)比對器131、 132與133的輸出結(jié)果可再通過比對器輸出控制網(wǎng)絡(luò) (matching engine output control network) 140來組合某些凄文才居比對器的 輸出結(jié)果,以進一步判斷網(wǎng)絡(luò)封包是否符合網(wǎng)絡(luò)封包分類器100的分類規(guī)則。圖3繪示本發(fā)明一實施例的內(nèi)容定位器的樹狀串接關(guān)系圖。請參閱圖3。 由于單一內(nèi)容定位器的計算能力有限,若計算封包字段位置所需的數(shù)學(xué)公式 很長,可以通過數(shù)個內(nèi)容定位器的串接,將上述公式拆解為多個定位運算, 分配給串接鏈的每一個內(nèi)容定位器,將定位運算的結(jié)果一路累加,最后就能 算出想要比對的字段位置。因為大部分的封包分類器有許多的分類規(guī)則,而 分類規(guī)則會有相當(dāng)?shù)年P(guān)聯(lián)性。通常來說,內(nèi)容定位器要定位不同的字段,會 有許多共通的定位過程。在許多的識別字段的計算公式中可以找到許多相同 的基底位置,所以某些內(nèi)容定位器所計算出的偏移量可以讓多個下級的內(nèi)容 定位器共享,這就是共享與繼承基底位置的概念。在圖3的內(nèi)容定位器3 01 ~ 311中,每一個內(nèi)容定位器只做一次定位運算。 我們要尋址一個特定的封包字段,則需通過數(shù)個內(nèi)容定位器的組合來完成。 例如,網(wǎng)絡(luò)封包分類器對于兩個獨立且同處第三層(network layer, layer 3) 的字段(字段1與字段2)進行比對,這兩個字段定位的過程都需要先算出第 三層的標(biāo)頭起始位置,也就是要先算出第二層(data link layer, layer 2) 的標(biāo)頭長度。在圖3的實施例中,可先利用內(nèi)容定位器301算出第三層的標(biāo) 頭起始^f立置,作為其輸出偏移量UDHDR-POS,然后內(nèi)容定4立器302與303共享內(nèi)容定位器301的輸出偏移量作為基底值HDR_P0S,分別算出字革殳1與字段2的位置。同理,內(nèi)容定位器306 ~ 308共享內(nèi)容定位器305的定位運算結(jié) 杲;內(nèi)容定位器309與310共享內(nèi)容定位器306的定位運算結(jié)杲。內(nèi)容定位 器301 ~ 311的樹狀連接關(guān)系可通過如圖1的定位器控制網(wǎng)絡(luò)110達成。如此, 前一級的內(nèi)容定位器計算結(jié)果,可以讓后面幾個內(nèi)容定位器共享。樹狀串接 方式的內(nèi)容定位器可以節(jié)省硬件成本。通過這樣共享與繼承的概念,可以將 每一層的每一個位置都涵蓋進來,也可以最小化所需設(shè)定的參數(shù)。圖4繪示本發(fā)明一實施例的網(wǎng)絡(luò)封包分類器的平行架構(gòu)圖。請參閱圖4。 網(wǎng)絡(luò)封包分類器400包括內(nèi)容定位器401、 402與403、數(shù)據(jù)比對器431、 432 與433、比對器輸出控制網(wǎng)絡(luò)440、以及存儲麥(rule memory) 451、 452與453。 圖4的每一模塊461、 462與463的內(nèi)容定位器、數(shù)據(jù)比對器與存儲器各負(fù)責(zé) 一個比對字段的計算公式。平行架構(gòu)不同于網(wǎng)狀架構(gòu)中繼承前一級內(nèi)容定位器的輸出偏移量當(dāng)作基 底值的概念。在平行架構(gòu)中,若有某一字段的位置需要多次定位運算,會利 用同一內(nèi)容定位器的自我繼承來作串接,也就是遞歸式(iterative)的概念。 其中第一次定位運算的基底值為預(yù)設(shè)的固定偏移量,其后每一次定位運算的 基底值為上一次定位運算的輸出偏移量。以模塊461為例,內(nèi)容定位器401計算出一個最終的輸出偏移量,并交 由數(shù)據(jù)比對器431判別。最終的輸出偏移量為網(wǎng)絡(luò)封包中比對字段的位置。 內(nèi)容定位器401所使用的定位器系統(tǒng)參數(shù)儲存在存儲器451。存儲器451儲 存每一次定位運算所需的定位器系統(tǒng)參數(shù)以及數(shù)據(jù)比對所需的比對器系統(tǒng)參 數(shù),并在不同的遞歸中依序?qū)⒍ㄎ黄飨到y(tǒng)參數(shù)交給內(nèi)容定位器401。內(nèi)容定 位器401在最后一次定位運算輸出偏移量至數(shù)據(jù)比對器431,以進行字段位 置的數(shù)據(jù)比對。數(shù)據(jù)比對器431根據(jù)比對器系統(tǒng)參數(shù)做數(shù)據(jù)比對。接著,數(shù) 據(jù)比對器431將比對結(jié)果輸出至比對器輸出控制網(wǎng)絡(luò)440。模塊461就這樣完成一個字段的數(shù)據(jù)比對。模塊462與463也同于模塊461的運作原理,每一個模塊進行一個字段的數(shù)據(jù)比對。比對器輸出控制網(wǎng)絡(luò)440將一個、多個、或所有數(shù)據(jù)比對器的 輸出以布爾邏輯算出一個最后的布爾值,也就是結(jié)合數(shù)個比對結(jié)果,判斷是 否符合網(wǎng)絡(luò)封包分類器400預(yù)期的分類規(guī)則。平行架構(gòu)的網(wǎng)絡(luò)封包分類器適用于不共享定位運算結(jié)果的狀況,可以依需求將模塊啦文延伸,每一才莫塊可支持一個數(shù)據(jù)比對設(shè)定。比如有512組數(shù)據(jù) 比對設(shè)定,就使用512個模塊。特別的是,每一模塊的內(nèi)容定位器至少進行 一次定位運算,每一模塊的內(nèi)容定位器與數(shù)據(jù)比對器的參數(shù)都儲存在模塊內(nèi) 的存儲器上。以上實施例的網(wǎng)絡(luò)封包分類器,無論是網(wǎng)狀或是平行的架構(gòu),只要更新 定位器系統(tǒng)參數(shù)與定位器控制網(wǎng)絡(luò),即可以改變需要比對的字段位置,而不 需要重新設(shè)計整個模塊與架構(gòu)。所有定位器系統(tǒng)參數(shù)與比對器系統(tǒng)參數(shù)都是 根據(jù)欲辨識的封包字段或數(shù)據(jù),或根據(jù)使用者自定的分類規(guī)則。以上兩種架 構(gòu)都可以迅速平行處理多條規(guī)則,封包一進網(wǎng)絡(luò)封包分類器就能很快地分類。 上述的網(wǎng)絡(luò)封包分類器在兩種架構(gòu)的層面都能提供以下幾種定位運算功能。功能l.可定位出既有(existing)標(biāo)準(zhǔn)的標(biāo)頭位置。如下式6,當(dāng)所需要的識別字段為既有或已知時,可直接獲取比對地址為FIX_P0S。 (式6) 靈一P0S = FIX-P0S。功能2.可自行定義標(biāo)頭位置或是新制訂標(biāo)準(zhǔn)的標(biāo)頭位置。自行定義的標(biāo) 頭位置如前述的式1。(式 1) UDHDR—P0S = HDR—POS + (IF—PVAL*P_VAL—OFFSET) + (C_FLAG*C—OFFSET) + U—OFFSET。以下詳細"^兌明式1等號右邊的四組迭加項目。第一組迭加項目HDR_P0S為此次定位運算的基底值,如上述實施例的式2。(式2) HDR—POS = (~ IF—CAS*FIX—POS) + (IF—CAS*PRE—UDHDR—POS)。當(dāng)內(nèi)容定位器設(shè)定為沒有串接,或?qū)儆诖渔湹牡谝患墪r,邏輯旗標(biāo) (flag) IF丄AS將被設(shè)定為FALSE,表示不會有繼承的基底值,基底值等于預(yù) 設(shè)的標(biāo)頭位置FIX_P0S。當(dāng)內(nèi)容定位器設(shè)乂為串接,邏輯旗標(biāo)IF—CAS為TRUE, 基底值為繼承自前一級內(nèi)容定位器的輸出偏移量。第二組迭加項目(IF_PVAL*P—VAL—OFFSET)為根據(jù)基底值往后固定 J—OFFSET位置的字^:值P—VAL所計算出的偏移量,如上述實施例的式3。(式 3)P—VAL-OFFSET = P—VAL*P—VAL—FACTOR , 其中 P—VAL = PKT (隨—P0S+J-OFFSET)。P—VAL代表某個影響數(shù)據(jù)比對位置的字段內(nèi)容。例如當(dāng)要進行第4層 (transport layer, layer 4)標(biāo)頭起始點的定位運算時,就需要第3層(network layer, layer 3)的標(biāo)頭長度才能正確判斷第4層的標(biāo)頭位置。 J-OFFSET表示需要找到第3層標(biāo)頭長度的字段所需要的偏移量。P—VAL為代 表第3層標(biāo)頭長度的字段內(nèi)容值。由于字段的內(nèi)容數(shù)值可能不是以單一字節(jié) (byte)為單位,因此在定位運算時,可能需要乘上一個轉(zhuǎn)換常量 P_VAL_FACT0R,以求得正確的偏移量。若P—VAL即是以字節(jié)為單位,就不用 乘上P—VAL—FACTOR,或可將P—VAL—FACTOR設(shè)為一。定位器系統(tǒng)參數(shù)IF—PVAL 決定是否需要迭加P-VAL_OFFSET。第三組迭加項目(C—FLAG*C—OFFSET)表示基底值位置往后固定偏移 P—OFFSET的位置是否有特定值PTN的存在,如上述實施例的式4。 (式4) C—FLAG = (PKT(HDR—POS+P—OFFSET) == PTN)。 因為某些字段不是如P-VAL般記載著標(biāo)頭長度或偏移量的信息。因為封 包格式或協(xié)議種類而出現(xiàn)的某些字段,可能對識別字段位置的計算有所影響。 以IEEE 802. lq虛擬局域網(wǎng)絡(luò)(virtual local area network,簡稱VLAN)的 封包為例,P—OFFSET代表著從第2層起算,要識別是否為VLAN封包的字段 偏移量,而PTN則是封包符合VLAN的識別條件,亦即用P—OFFSET來找出類 型(type)字段。而PTN設(shè)定為8100,以識別封包是否為VLAN類型。由于一 般VLAN標(biāo)簽(tag)之后的所有字段,會比一般封包多出四個字節(jié)的偏移。這 個VLAN封包形成的偏移量即是C-OFFSET,代表著因某條件成立而導(dǎo)致的固 定偏移量。第四組迭加項目為無條件的固定偏移量U—0FFSET。某些使用者自訂的數(shù) 據(jù)比對字段可利用U—OFFSET進行定位運算,例如要定位運算第4層的第10 個字節(jié),可利用無條件固定偏移量U-OFFSET來進行設(shè)定。功能3.每一次定位運算的迭加項目中有邏輯判斷時,其判斷運算可為等 于、不等于、大于、或小于。為了更詳細地說明本發(fā)明的網(wǎng)絡(luò)封包分類器的定位運算,以下特舉4個 較佳實施例來做更進一步的說明。圖5~圖8為本發(fā)明實施例的定位運算示 意圖。請參閱圖5。圖5為一般類型封包的總長度字段(Total Length)的定位 運算。例如,需定位運算的字段是第3層IP標(biāo)頭的總長度字段。假設(shè)已知標(biāo) 頭位置FIX-POS為封包起始到第3層標(biāo)頭的偏移量,相當(dāng)于十四個字節(jié)。假 設(shè)已知封包沒有額外的附加標(biāo)簽。由于沒有設(shè)定串接,HDR-POS直接等于FIX-POS??傞L度字段的位置并不會受其它字段影響,因此IF-PVAL被設(shè)定為 FALSE。因為封包沒有額外的附加標(biāo)簽,所以C —FLAG為FALSE,不需考慮某 些特定的偏移狀況??傞L度字段的定位運算為畫DR—POS =醒—POS + U—OFFSET = FIX-POS + U—OFFSET。 請參閱圖6。圖6為具有VLAN標(biāo)簽類型的封包的總長度字段定位運算。 例如,進入封包分類器的封包如圖6帶有VLAN標(biāo)簽,則其C—FLAG會被設(shè)定 為TRUE,總長度字段的定位運算須加上因VLAN標(biāo)簽所產(chǎn)生的偏移量。假設(shè) 已知標(biāo)頭位置FIX-POS為封包起始到第3層標(biāo)頭的偏移量,總長度字段的定 位運算為UDHDR—POS = FIX—POS + (C—FLAG*C—OFFSET) + U—OFFSET。 請參閱圖7。圖7為一般類型封包應(yīng)用層(Application Layer)比對字段 的定位運算,會用到繼承前一級內(nèi)容定位器的輸出偏移量的概念。前一級內(nèi) 容定位器將第2層標(biāo)頭長度HDR-POS(也就是FIX—POS)加上第3層標(biāo)頭長度 P一VAL—OFFSET,然后輸出上述迭加的結(jié)果為PRE-UDHDR—POS。下一級內(nèi)容定 位器繼承PRE—UDHDR—POS作為下一級定位運算的基底值,然后加上第4層標(biāo) 頭長度P—VAL—OFFSET以及比對字段在應(yīng)用層中的偏移量U—OFFSET。最后結(jié) 果就是從封包起始到比對字段的偏移量。應(yīng)用層比對字段的定位運算為 PRE-UDHDR—POS = HDR—POS + P—VAL—OFFSET = FIX—POS + P_VAL_OFFSET; UDHDR—POS = PRE—UDHDR—POS + P—VAL—OFFSET + U—OFFSET。 請參閱圖8。圖8為具有VLAN標(biāo)簽類型的封包,內(nèi)容定位器欲求位在應(yīng) 用層的比對字段的定位運算,同樣繼承前一級內(nèi)容定位器的輸出偏移量。前 一級內(nèi)容定位器的定位運算求出第4層起始位置,下一級內(nèi)容定位器便可累 加第4層標(biāo)頭長度P_VAL—OFFSET以及無條件跳躍偏移量U_OFFSET,來定位 所欲比對的字段。比對字段的定位運算為PRE-UDHDR—POS = HDR—POS + C—OFFSET + P—VAL—OFFSET = FIX—POS + C—OFFSET + P—VAL—OFFSET;UDHDR—POS = PRE—U腦R一POS + P—VAL—OFFSET+ U-OFFSET。 除了上述實施例的網(wǎng)絡(luò)封包分類器以外,本發(fā)明也包含一種對應(yīng)的網(wǎng)絡(luò) 封包分類方法。對于在本發(fā)明相關(guān)技術(shù)領(lǐng)域具有通常知識者而言,通過前面 的網(wǎng)絡(luò)封包分類器實施例,應(yīng)當(dāng)能實施本發(fā)明的網(wǎng)絡(luò)封包分類方法,因此不 予贅述。值得一提的是,本發(fā)明實施例的封包分類器應(yīng)用領(lǐng)域包括了兩大類一 類是屬于網(wǎng)絡(luò)管控,如封包路由(packet routing)與網(wǎng)絡(luò)月良務(wù)質(zhì)量(QoS: quality of service)機制;另一類則是屬于網(wǎng)絡(luò)安全,如常見應(yīng)用有防火墻 與網(wǎng)絡(luò)服務(wù)提供商(ISP: Internet service provider)的安全才幾制。而就數(shù) 據(jù)封包分類技術(shù)來看,傳統(tǒng)的封包分類技術(shù)所能檢視的內(nèi)容局限于第2層到 第4層。許多的服務(wù)管控并無法單靠第2層到第4層的標(biāo)頭字段和內(nèi)容,加 上網(wǎng)絡(luò)安全的各種新型攻擊手法不斷推陳出新。本發(fā)明實施例中的封包分類 器可以彈性組合,因應(yīng)目前的服務(wù)與應(yīng)用變化,而有相對應(yīng)的比對辨識機制, 還包含深層封包才企#見(deep packet inspection,簡稱為DPI),因此可以應(yīng) 用在不同網(wǎng)絡(luò)協(xié)議的硬設(shè)備上,如使用者端、服務(wù)器端、以及路由器端的網(wǎng) 絡(luò)封包處理設(shè)備或收發(fā)設(shè)備,使上述的硬設(shè)備更具靈活性。綜上所述,以上實施例的網(wǎng)絡(luò)封包分類器與其方法可通過定位器系統(tǒng)參 數(shù)以及比對器系統(tǒng)參數(shù)的設(shè)定,來定位出封包中的任何字段,可以串接多層 級的定位運算,擴大數(shù)據(jù)比對的適用范圍,只需更新參數(shù)設(shè)定,即可延伸出 各種不同的封包比對規(guī)則。所以上述實施例的網(wǎng)絡(luò)封包分類器與其對應(yīng)方法 可輕易支持新增的網(wǎng)絡(luò)協(xié)議或封包類型,并節(jié)省重新設(shè)計硬件的時間與成本。雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何 本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤 飾,因此本發(fā)明的保護范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。權(quán)利要求
      1. 一種網(wǎng)絡(luò)封包分類器,其特征在于包括至少一內(nèi)容定位器,每一上述內(nèi)容定位器進行至少一次定位運算,每一上述定位運算為輸出至少一迭加項目的總和作為輸出偏移量,上述迭加項目其中之一為基底值,該基底值為第一偏移量或上述內(nèi)容定位器其中之一所進行的定位運算其中之一的輸出偏移量,上述內(nèi)容定位器其中之一的最后一次定位運算的輸出偏移量為網(wǎng)絡(luò)封包其中比對字段的位置。
      2. 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包分類器,其特征在于每一上述迭加項 目為根據(jù)至少 一 定位器系統(tǒng)參數(shù)且/或該網(wǎng)絡(luò)封包的內(nèi)容數(shù)據(jù)而產(chǎn)生。
      3. 根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)封包分類器,其特征在于除該基底值之外, 其余每一上述迭加項目為第二偏移量、邏輯項目乘上該第二偏移量、該邏輯 項目乘上字段值、或該邏輯項目乘上該字段值乘上第一常量,該第一偏移量、 該第二偏移量以及該第一常量取自上述定位器系統(tǒng)參數(shù),該字段值取自該網(wǎng)絡(luò)封包,該邏輯項目為邏輯值或該邏輯值的反值,該邏輯值為取自上述定位 器系統(tǒng)參數(shù)或根據(jù)該字段值而產(chǎn)生。
      4. 根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)封包分類器,其特征在于該字段值為該網(wǎng) 絡(luò)封包之中特定位置的內(nèi)容數(shù)據(jù),該特定位置的偏移量等于該基底值加上第 三偏移量,該第三偏移量取自上述定位器系統(tǒng)參數(shù)。
      5. 根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)封包分類器,其特征在于該邏輯值為根據(jù) 該字段值以及第二常量進行判斷運算的結(jié)果,該第二常量取自上述定位器系 統(tǒng)參數(shù),該判斷運算為等于、不等于、大于、或小于的判斷。
      6. 根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)封包分類器,其特征在于還包括至少 一數(shù)據(jù)比對器,每一上述數(shù)據(jù)比對器接收上述內(nèi)容定位器其中之一 所進行的最后一次定位運算的輸出偏移量,在該網(wǎng)絡(luò)封包之中對應(yīng)該輸出偏 移量的位置根據(jù)至少一比對器系統(tǒng)參數(shù)進行數(shù)據(jù)比對,并輸出該數(shù)據(jù)比對的 結(jié)果;以及比對器輸出控制網(wǎng)絡(luò),根據(jù)上述數(shù)據(jù)比對器的輸出結(jié)果,判斷該網(wǎng)絡(luò)封 包是否符合該網(wǎng)絡(luò)封包分類器的分類規(guī)則。
      7. 根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)封包分類器,其特征在于上述比對器系統(tǒng) 參數(shù)至少包括下列其中之一該數(shù)據(jù)比對的目標(biāo)模式、該目標(biāo)模式的長度、該凄t據(jù)比對所采用的4喿作凄t、以及該K據(jù)比對所套用的遮罩。
      8. 根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)封包分類器,其特征在于還包括 定位器控制網(wǎng)絡(luò),根據(jù)上述定位器系統(tǒng)參數(shù)連接上述內(nèi)容定位器,使上述內(nèi)容定位器能取得所需的上述輸出偏移量以作為上述基底值;以及比對器控制網(wǎng)絡(luò),連接上述內(nèi)容定位器以及上述數(shù)據(jù)比對器,使上述數(shù) 據(jù)比對器能取得所需的上述輸出偏移量以進行上述數(shù)據(jù)比對。
      9. 根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)封包分類器,其特征在于每一上述內(nèi)容定 位器僅進行一次定位運算,而且上述內(nèi)容定位器包括第一內(nèi)容定位器、第二 內(nèi)容定位器、以及第三內(nèi)容定位器,該第二內(nèi)容定位器的該基底值為該第一 內(nèi)容定位器的該輸出偏移量,該第三內(nèi)容定位器的該基底值亦為該第一內(nèi)容 定位器的該輸出偏移量。
      10. 根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)封包分類器,其特征在于該網(wǎng)絡(luò)封包分 類器包括至少一模塊,每一上述模塊包括上述內(nèi)容定位器其中之一以及上述 數(shù)據(jù)比對器其中之一,該數(shù)據(jù)比對器接收該內(nèi)容定位器的該輸出偏移量,若 該內(nèi)容定位器需進行多次定位運算,則其中第一次定位運算的基底值為該第 一偏移量,其后每一次定位運算的基底值為上一次定位運算的輸出偏移量。
      11. 根據(jù)權(quán)利要求10所述的網(wǎng)絡(luò)封包分類器,其特征在于每一上述模塊 還包括存儲器,用以儲存該模塊其中的該內(nèi)容定位器進行上述定位運算所需的 上述定位器系統(tǒng)參數(shù)。
      12. —種網(wǎng)絡(luò)封包分類方法,其特征在于包括進行至少一次定位運算,每一上述定位運算為輸出至少一迭加項目的總 和作為輸出偏移量,上述迭加項目其中之一為基底值,該基底值為第一偏移 量或上述定位運算其中之一的輸出偏移量,上述輸出偏移量其中之一為網(wǎng)絡(luò) 封包其中比對字段的位置。
      13. 根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)封包分類方法,其特征在于每一上述迭 加項目為根據(jù)至少一定位系統(tǒng)參數(shù)且/或該網(wǎng)絡(luò)封包的內(nèi)容數(shù)據(jù)而產(chǎn)生。
      14. 根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)封包分類方法,其特征在于除該基底值 之外,其余每一上述迭加項目為第二偏移量、邏輯項目乘上該第二偏移量、 該邏輯項目乘上字段值、或該邏輯項目乘上該字段值乘上第一常量,該第一 偏移量、該第二偏移量以及該第一常量取自上述定位系統(tǒng)參數(shù),該字段值取自該網(wǎng)絡(luò)封包,該邏輯項目為邏輯值或該邏輯值的反值,該邏輯值為取自上 述定位系統(tǒng)參數(shù)或根據(jù)該字段值而產(chǎn)生。
      15. 根據(jù)權(quán)利要求14所述的網(wǎng)絡(luò)封包分類方法,其特征在于該字段值為 該網(wǎng)絡(luò)封包之中特定位置的內(nèi)容數(shù)據(jù),該特定位置的偏移量等于該基底值加 上第三偏移量,該第三偏移量取自上述定位系統(tǒng)參數(shù)。
      16. 根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包分類方法,其特征在于該邏輯值為根據(jù)該字段值以及第二常量進行判斷運算的結(jié)果,該第二常量取自上述定位 系統(tǒng)參數(shù),該判斷運算為等于、不等于、大于、或小于的判斷。
      17. 根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)封包分類方法,其特征在于還包括 進行至少一次數(shù)據(jù)比對,每一上述數(shù)據(jù)比對使用上述定位運算其中之一的輸出偏移量,而且是在該網(wǎng)絡(luò)封包之中對應(yīng)該輸出偏移量的位置根據(jù)至少 一比對系統(tǒng)參數(shù)而進行;以及根據(jù)上述數(shù)據(jù)比對的結(jié)果,判斷該網(wǎng)絡(luò)封包是否符合該網(wǎng)絡(luò)封包分類方 法的分類規(guī)則。
      18. 根據(jù)權(quán)利要求17所述的網(wǎng)絡(luò)封包分類方法,其特征在于上述比對系 統(tǒng)參數(shù)至少包括下列其中之一該數(shù)據(jù)比對的目標(biāo)模式、該目標(biāo)模式的長度、 該數(shù)據(jù)比對所采用的操作數(shù)、以及該數(shù)據(jù)比對所套用的遮罩。
      全文摘要
      一種網(wǎng)絡(luò)封包分類器與其方法。網(wǎng)絡(luò)封包分類器包括至少一內(nèi)容定位器與一數(shù)據(jù)比對器。每一上述內(nèi)容定位器進行至少一次定位運算,每一上述定位運算為輸出至少一迭加項目的總和作為輸出偏移量,而每一迭加項目為根據(jù)至少一定位器系統(tǒng)參數(shù)且/或網(wǎng)絡(luò)封包的內(nèi)容數(shù)據(jù)而產(chǎn)生。上述迭加項目其中之一為基底值,基底值為系統(tǒng)參數(shù)設(shè)定的偏移量或上述內(nèi)容定位器其中之一所進行的定位運算的輸出偏移量。上述內(nèi)容定位器其中之一的最后一次定位運算的輸出偏移量為網(wǎng)絡(luò)封包其中比對字段的位置,這個位置會提供給數(shù)據(jù)比對器作數(shù)據(jù)比對。
      文檔編號H04Q3/52GK101242344SQ200710006400
      公開日2008年8月13日 申請日期2007年2月5日 優(yōu)先權(quán)日2007年2月5日
      發(fā)明者吳政勛, 歐孟鑫, 王博民, 陳建豪 申請人:財團法人工業(yè)技術(shù)研究院
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1