專利名稱:一種報文特征的匹配方法及裝置的制作方法
技術領域:
本發明涉及網絡技術,尤其涉及一種報文特征的匹配方法及裝置。
背景技術:
互聯網的發展使得網絡設備的應用越來越廣泛。現今的網絡設備不僅僅需要進行報文的二三層轉發,而且還需要對報文進行諸如Qos以及安全等應用處理。這些新的特性的引入對報文的各種ACL匹配功能需求尤為明顯,在現今使用的大部分網絡設備中,ACL 技術已經很成熟。一般的ACL查找匹配工作多數采用三態內容尋址存儲器TCAM(Ternary Content-Addressable Memory)來完成,以減少對性能的影響。目前主流的TCAM的位寬一般可配置為72比特、144比特、288比特以及576比特四種中的任意一種。目前針對IPv4 報文五元組(源/目的IP,源/目的端口以及協議類型)ACL匹配通常使用144比特已經足夠了。但是隨著網絡的發展,IPv4已經無法滿足海量IP地址的需求,于是IPv6適用需要就顯得尤為迫切,針對IPv6報文的ACL匹配同樣也成為各種網絡設備需要支持的功能。IPv4五元組由32位源IP、32位目的IP、16位源port、16位目的port以及8位協議號組成,總計104比特,這樣TCAM選擇144比特位寬就可以支持,一般的網絡設備都能達到良好的匹配性能。而IPV6的五元組由1 位源IP、U8位目的IP、16位源port、16位目的port、8位協議號組成,總計四6比特,這樣TCAM就必須選擇576比特位寬,相當于匹配每個IPv6報文的性能比IPv4降低了 4倍,并且容量下降為之前的四分之一。另外,由于每個表項會導致浪費576496 = 280位TCAM的位寬,浪費更多的規則匹配表項,成本較高;同時由于位寬占用較多,導致每個報文的查找性能下降嚴重。
發明內容
有鑒于此,本發明提供一種對報文特征匹配的裝置,其應用于網絡設備中,該裝置包括特征提取單元,用于從網絡設備接收到的報文中提取預定的報文特征;特征壓縮單元,用于將報文特征進行壓縮;TCAM單元,用于根據壓縮后的報文特征查找報文在預定訪問控制表項中的匹配結果,并輸出所述匹配結果。優選地,還包括報文處理單元,用于根據所述匹配結果對報文進行相應處理。優選地,所述報文為IPV6報文,所述報文特征為報文五元組,所述五元組包括源 IP地址、目的IP地址、源端口、目的端口以及協議類型。優選地,特征壓縮單元執行的壓縮過程為將五元組中的協議類型字段寫入源IP 地址及目的IP地址的高位字段中,然后將修改后的源IP地址、修改后目的IP地址、源端口以及目的端口作為壓縮后的五元組提交給TCAM單元。優選地,所述高位字段為源IP地址的前3比特以及目的IP地址的前3比特,所述協議類型字段長度為8比特,所述特征壓縮單元,進一步根據預先設定的映射表,將所述長度為8比特的協議類型映射為6比特的協議類型,然后再寫入所述源/目的IP地址的前3 比特。優選地,還包括報文分類單元,用于判斷報文是IPv6報文還是Ipv4報文,對于 IPv6報文將其提交給特征壓縮單元處理,對于IPv4報文則將其提交給TCAM單元處理。本發明還一種對報文特征匹配的方法,其應用于網絡設備中,該方法包括A、從網絡設備接收到的報文中提取預定的報文特征;B、將報文特征進行壓縮;C、用于根據壓縮后的報文特征查找報文在預定訪問控制表項中的匹配結果,并輸出所述匹配結果。優選地,還包括D、根據所述匹配結果對報文進行相應處理。優選地,所述報文為IPV6報文,所述報文特征為報文五元組,所述五元組包括源 IP地址、目的IP地址、源端口、目的端口以及協議類型。優選地,所述壓縮過程為將五元組中的協議類型字段寫入源IP地址及目的IP地址的高位字段中,然后將修改后的源IP地址、修改后目的IP地址、源端口以及目的端口作為壓縮后的五元組提交給TCAM單元。優選地,所述高位字段為源IP地址的前3比特以及目的IP地址的前3比特,所述協議類型字段長度為8比特,所述特征壓縮單元,進一步根據預先設定的映射表,將所述長度為8比特的協議類型映射為6比特的協議類型,然后再寫入所述源/目的IP地址的前3 比特。優選地,還包括E、判斷報文是IPv6報文還是Ipv4報文,對于Ipv6報文轉步驟B,對于IPv4報文轉步驟C。本發明可以有效節省TCAM資源,充分利用了 TCAM的容量,將其性能發揮到最大限度,同時減少了每個IPv6報文TCAM的查找性能損耗。
圖1是本發明一種實施方式的流程圖。圖2是本發明一種實施方式的邏輯原理圖。圖3是本發明ACL表象的組織結構圖。
具體實施例方式針對現有技術的問題,常見的設計思路是調整TCAM規格,然而這樣新的設計會引發成本的上升。本發明另辟蹊徑,從五元組本身著手,使得其能夠最大限度適配到已有的 TCAM配置規格,最大限度地利用TCAM的性能。在較佳的實施方式中,本發明可以通過邏輯器件技術(比如FPGA等)來實現,請參考圖1以及圖2,本發明報文壓縮裝置包括特征提取單元、特征壓縮單元、TCAM單元、報文分類單元以及報文處理單元,其基本的處理流程如下。
步驟101,從網絡設備接收到的報文中提取預定的報文特征。本步驟由特征提取單元執行。以IP報文為例,網絡設備會對自己接收到的報文進行ACL (訪問控制列表)匹配, 而匹配的對象通常是報文特征,最為常見的有報文的三元組以及五元組。以下以五元組 (源IP地址、目的IP地址、源端口、目的端口以及協議類型)為例進行講解。報文特征的提取在現有技術中已經有廣泛的教導,在此不再一一細述。步驟102,將報文特征進行壓縮。本步驟由報文壓縮單元處理。如背景技術提到的那樣,一個IPv6報文的五元組共占據了四6個比特,其比TCAM 最接近的288個比特的位寬規格大8個比特。本發明通過壓縮的方法將五元組的296個比特壓縮為288個比特,使得TCAM能夠處理經過壓縮的五元組。考慮到,協議類型這個字段共占據8個比特,本發明一種較佳的實施方式是將這個8個比特壓縮掉。一種方式是,從五元組的源和目的IP地址的高位比特中選取出8個比特,然后將協議類型寫入這8個比特。因為IP地址的高位特別(高64位)中有一些比特對于一些實際應用來說通常是固定的,因而可以加以利用。進一步來說,由于修改IP地址,其可能導致出錯,雖然其可能性比較低。但為了穩妥起見,可以對高位比特的選擇加以限制。考慮到全局IPv6單播地址的最高3位為001,在現網絕大部分應用中IPv6地址的高3比特一般不會變化,因此可以僅僅利用IP地址的前 3個比特,這樣一來,修改IP地址出錯的可能性微乎其微。更進一步來說,源以及目的IP地址的前3個比特的總長度為6個比特,其小于協議類型字段長度8個比特。為了解決這個問題,有兩種方法第一種不做特別處理,使用6 個比特來表達協議類型,因為IP協議字段現在只有100多種,常用的更少,一般都在64以內,因此6個比特完全可以勝任絕大部分的應用。第二種方式是設置一張映射表,如前所述的那樣,雖然協議類型有8個比特,即256種可能,但實際上用到的一般不超過64種。映射表主要是將8個比特的協議類型映射為6個比特;比如說將協議類型為200 (需要使用8個比特)映射到協議類型為63 (僅需要6個比特)。步驟103,根據報文特征查找報文在預定訪問控制表項中的匹配結果,并輸出所述匹配結果。本步驟由TCAM單元處理。IPv6報文的五元組經過步驟102壓縮以后其長度等于288比特,滿足了 TCAM單元的規格要求,可以送入TCAM單元進行表項的匹配。TCAM表項中一般存放有訪問控制列表 (ACL)的表項。請參考圖3,其中示出了 288位的ACL表項的組織形式。對ACL匹配后可以輸出相應的匹配結果,其包括命中和未命中。針對匹配結果,網絡設備可以用相應的處理, 比如未命中的可以丟棄,命中的可以轉發或者重定向或者上送軟件處理。這些針對輸出結果進行相應的處理在本發明是由報文處理單元執行。報文處理單元是一種泛指,即報文通過訪問控制列表匹配后的各種可能的處理單元都可視為報文處理單元。由于報文的后續是很常見的現有技術,本發明不再一一細述。步驟104,在對報文特征壓縮之前,還可以進一步判斷報文是IPv6報文還是Ipv4 報文,如果是IPv6報文則轉步驟102將其提交給特征壓縮單元處理,對于IPv4報文則轉步驟103,將其報文特征提交給TCAM單元處理。本步驟又報文分類單元處理。考慮到現有的網絡中會同時存在IPv4以及IPv6兩種版本的IP報文,并且考慮到這種情況將在很長一段時間內持續存在,本發明可以針對兩者做區分處理,步驟104作為一個可選步驟可進一步提升本發明的實用性。IP報文版本的識別屬于常見的技術,不需要詳述。本發明通過對報文特征的巧妙壓縮設計,在最大限度上利用了 TCAM性能的極限, 避免了 TCAM處理資源的浪費,并且成本比較低。以上所描述的僅僅是本發明較佳的實現方式,并不用以限定本發明的保護范圍, 任何等同的變化和修改皆應涵蓋在本發明的保護范圍之內。
權利要求
1.一種對報文特征匹配的裝置,其應用于網絡設備中,該裝置包括特征提取單元,用于從網絡設備接收到的報文中提取預定的報文特征;特征壓縮單元,用于將報文特征進行壓縮;TCAM單元,用于根據壓縮后的報文特征查找報文在預定訪問控制表項中的匹配結果, 并輸出所述匹配結果。
2.根據權利要求1所述的裝置,其特征在于,還包括報文處理單元,用于根據所述匹配結果對報文進行相應處理。
3.根據權利要求1所述的裝置,其特征在于,所述報文為IPV6報文,所述報文特征為報文五元組,所述五元組包括源IP地址、目的IP地址、源端口、目的端口以及協議類型。
4.根據權利要求3所述的裝置,其特征在于,特征壓縮單元執行的壓縮過程為將五元組中的協議類型字段寫入源IP地址及目的IP地址的高位字段中,然后將修改后的源IP地址、修改后目的IP地址、源端口以及目的端口作為壓縮后的五元組提交給TCAM單元。
5.根據權利要求4所述的裝置,其特征在于,所述高位字段為源IP地址的前3比特以及目的IP地址的前3比特,所述協議類型字段長度為8比特,所述特征壓縮單元,進一步根據預先設定的映射表,將所述長度為8比特的協議類型映射為6比特的協議類型,然后再寫入所述源/目的IP地址的前3比特。
6.根據權利要求1所述的裝置,其特征在于,還包括報文分類單元,用于判斷報文是 IPv6報文還是Ipv4報文,對于Ipv6報文將其提交給特征壓縮單元處理,對于IPv4報文則將其提交給TCAM單元處理。
7.一種對報文特征匹配的方法,其應用于網絡設備中,該方法包括 A、從網絡設備接收到的報文中提取預定的報文特征;B、將報文特征進行壓縮;C、用于根據壓縮后的報文特征查找報文在預定訪問控制表項中的匹配結果,并輸出所述匹配結果。
8.根據權利要求7所述的方法,其特征在于,還包括D、根據所述匹配結果對報文進行相應處理。
9.根據權利要求7所述的方法,其特征在于,所述報文為IPV6報文,所述報文特征為報文五元組,所述五元組包括源IP地址、目的IP地址、源端口、目的端口以及協議類型。
10.根據權利要求9所述的方法,其特征在于,所述壓縮過程為將五元組中的協議類型字段寫入源IP地址及目的IP地址的高位字段中,然后將修改后的源IP地址、修改后目的IP地址、源端口以及目的端口作為壓縮后的五元組提交給TCAM單元。
11.根據權利要求10所述的方法,其特征在于,所述高位字段為源IP地址的前3比特以及目的IP地址的前3比特,所述協議類型字段長度為8比特,所述特征壓縮單元,進一步根據預先設定的映射表,將所述長度為8比特的協議類型映射為6比特的協議類型,然后再寫入所述源/目的IP地址的前3比特。
12.根據權利要求7所述的方法,其特征在于,在步驟B之前,還包括E、判斷報文是IPv6報文還是Ipv4報文,對于Ipv6報文轉步驟B,對于IPv4報文轉步馬聚Co
全文摘要
本發明提供一種對報文特征匹配的裝置,其應用于網絡設備中,該裝置包括特征提取單元,用于從網絡設備接收到的報文中提取預定的報文特征;特征壓縮單元,用于將報文特征進行壓縮;TCAM單元,用于根據壓縮后的報文特征查找報文在預定訪問控制表項中的匹配結果,并輸出所述匹配結果。本發明可以有效節省TCAM資源,充分利用了TCAM的容量,將其性能發揮到最大限度,同時減少了每個IPv6報文TCAM的查找性能損耗。
文檔編號H04L12/56GK102291301SQ20111022781
公開日2011年12月21日 申請日期2011年8月10日 優先權日2011年8月10日
發明者李炳志, 滕飛, 王濤, 陳鵬 申請人:杭州迪普科技有限公司