專利名稱:給數據流提供不同的服務質量策略的方法
技術領域:
本發明涉及通訊領域,尤其涉及一種給數據流提供不同的QoS(服務質量)策略的方法。
背景技術:
在網絡中,需要對數據流進行流分類,即對數據流進行識別、分類。然后,根據流分類的結果,對不同的數據流采取不同的QoS(服務質量)策略,QoS策略也稱為“動作”,包括丟棄、改變優先級、帶寬限制等操作。
傳統的流分類方法是根據數據流報文的標準五元組對數據流進行分類,該五元組即數據流IP報文的五個域源IP地址、目的IP地址、報文IP頭中的協議號、TCP(傳輸控制協議)或UDP(用戶數據報協議)源端口號、TCP或UDP目的端口號。該方法首先需要提取報文的五元組并構成一個key(關鍵字),然后,將key值滿足一定條件的數據流歸為一類。
隨著網絡業務量的增大及用戶對QoS需求標準的不斷提高,傳統的基于五元組的分類方法已不能滿足要求,需要對數據流進行更細粒度的劃分,因此,對數據流進行分類時又增加了其它域,如源/目的MAC(媒體接入控制)地址、以太類型、VLAN(虛擬局域網)優先級、TOS(服務類型)、分段標志、TCP同步標志等。
目前,在數據通信設備中,對數據流進行分類和動作通常通過ACL(訪問控制列表)來實現,ACL是規則和動作的組合,規則即用于區分某條數據流的特征,例如{源MAC=2222.2222.2222 AND目的IP=1.1.1.1}即可構成一條規則。ACL的處理流程如圖1所示。
在數據通信設備中,實際應用的流分類技術主要有以下幾種1、無結構順序匹配類似鏈表,將key和規則逐個進行匹配。
2、HASH(哈希)散列先對key值進行一級Hash散列,再匹配規則。
3、預編譯快速ACL利用各種樹運算技術,快速定位到某個或某些規則節點。
4、TCAM(三態內容可尋址存儲器)技術由硬件完成key和規則的匹配過程。
前三種實現均由軟件來完成,最大的問題在于匹配時間消耗過大。當前網絡傳輸及路由器轉發速度在不斷的提高,這就要求在報文處理過程中,ACL規則表的查找速度也要相應地提高,因此,TCAM技術是目前數據通信設備中主要應用的流分類技術。
TCAM通常應用在ACL實現中,TCAM的特點為通過硬件來完成規則表的查找、匹配過程。其具體處理過程為首先在TCAM中存放用戶配置的各種規則,其中每一條規則都與某個動作相關聯。然后,提取需要進行分類的數據流報文的五元組或多元組,構成一個key,根據該key查找在TCAM中存放的規則表,與規則表中各項進行匹配,成功匹配(命中)一條規則后,TCAM便返回對應的動作索引。
TCAM最大的優點在于查找速度快,而且查找時間與表項數量無關,因此在表容量很大時,此優點尤為突出,但TCAM價格比較昂貴,在實際應用中,TCAM容量有一定的限制。目前TCAM硬件規格中定義了幾種表項長度72bits、144bits和288bits,ACL中的一個規則可以看作一個TCAM表項,規則長度等于key值長度,因此,存在如下關系TCAM容量=key長度(規則長度)×TCAM表項數。
為解決標準的五元組不能滿足現有網絡的需求的問題,現有技術中一種解決方案為在ACL key中新增針對以太報文的二層頭字段(如源/目的MAC地址、以太類型及VLAN ID等)、三層頭字段和四層頭字段(如TCP同步標志等)。由于受到TCAM表項長度的限制,無法將所有字段(二層、三層和四層)同時放在一個key中,因此出現了所謂的二層ACL及三層ACL(IPv4/IPv6 ACL),在三層ACL中包含了上述三層和四層頭字段的內容,其中二層ACL的key結構如圖2所示,IPv4三層ACL的key結構如圖3所示,Ipv6三層ACL的key結構如圖4所示。
其中二層ACL和IPv4 ACL的key長度均為144比特,IPv6 ACL的key為288比特,三種ACL的規則表分別占用不同的TCAM區域。
根據上述二層ACL及三層ACL,用戶在具體配置ACL時,有兩種方式可供選擇1、在上述二層ACL及三層ACL中選擇一種ACL類型二層ACL或者三層ACL。然后,實現模塊會根據所選擇的ACL類型及需要處理的數據流報文類型進行相應處理,具體處理流程如圖5所示,具體處理過程簡單介紹如下如果用戶選擇使用二層ACL,則從待分類的數據流報文中提取二層頭字段的內容,然后,和二層ACL的規則表進行匹配,如果匹配命中一條規則,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理;如果用戶選擇使用三層ACL,則從待分類的數據流報文中提取三層和四層頭字段的內容,然后,和三層ACL的規則表進行匹配,如果匹配命中一條規則,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理。
2、若用戶需要同時匹配報文的二、三層字段,可以通過兩次ACL來實現,首先配置第一個ACL(二層ACL),并將其動作指定為“執行三層ACL”,將三層ACL的動作指定為真正的QoS策略。處理流程如圖6所示,具體處理過程簡單介紹如下
首先從待分類的數據流報文中提取二層頭字段的內容,然后,和二層ACL的規則表進行匹配,如果匹配命中一條規則,則繼續從該報文中提取三層和四層頭字段的內容,然后,和三層ACL的規則表進行匹配,如果匹配命中一條規則,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理。
上述現有技術的解決方案的缺點為在該方案的第一種方式中,用戶只能在二層ACL及三層ACL中選擇一種類型的ACL,即不能同時匹配報文的二、三層字段。因此,無法實現細粒度的流量劃分,限制了用戶的使用效果。
在該方案的第二種方式中,雖然可以實現二、三層字段的同時匹配,但是需要二次訪問TCAM,進行二次匹配規則表的操作,甚至還需要多訪問一次SRAM(靜態存儲器)來查找動作,因此,對外設的帶寬提出了很高的要求,而在路由設備中,通常外設帶寬資源非常有限,因而兩次ACL的執行很可能成為轉發設備的性能瓶頸。
除此之外,在實際應用中,用戶配置ACL規則時,很少會將規則表中的字段都用到,如對于以太IPv4數據流,用戶可能只想識別出源MAC和目的IP滿足某條件的報文,而不關心其它字段。因此,在實際應用中,該方案的規則表項的結構中很多字段沒有用到,造成TCAM資源的浪費。
發明內容
鑒于上述現有技術所存在的問題,本發明的目的是提供一種給數據流提供不同的服務質量策略的方法,從而可以實現根據用戶需要靈活選擇ACL類型,實現更細粒度的數據流分類處理,并給數據流提供相應的不同的QoS策略。
本發明的目的是通過以下技術方案實現的
一種給數據流提供不同的服務質量策略的方法,包括A、定制包含各層部分字段信息的訪問控制列表ACL模板;B、利用所述ACL模板,對數據流進行分類,給數據流提供不同的服務質量QoS策略。
所述的步驟A具體包括根據用戶需求,定制包括報文的部分二層頭字段和部分三層頭字段的ACL模板,和/或,根據用戶需求,定制包括報文的部分二層頭字段和部分四層頭字段的ACL模板,和/或,根據用戶需求,定制包括報文的部分三層頭字段和部分四層頭字段的ACL模板。
所述的ACL模板的長度不超過三態內容可尋址存儲器TCAM規格中定義的表項長度。
所述的步驟A還包括將所述定制的ACL模板保存在模板庫中,用戶可以在該模板庫中進行增加、刪除、修改操作。
所述的步驟B具體包括B1、根據待處理的數據流,選擇一個ACL模板,并配置該ACL模板的規則;B2、將所述規則和待處理的數據流進行匹配處理,并根據匹配的結果給該數據流提供相應的QoS策略。
所述的步驟B1具體包括通過指定所述ACL模板中各字段的匹配條件來配置該ACL模板的規則。
所述的步驟B2具體包括B21、根據所述ACL模板的定義,從待處理的數據流報文中提取出相應的字段內容,并將提取出的字段內容構成關鍵字key;B22、將所述key和所述配置的ACL模板的規則進行匹配處理,并根據匹配的結果給該數據流提供相應的QoS策略。
所述的步驟B22具體包括如果所述key和所述配置的ACL模板的規則匹配命中,則執行該規則所對應的動作給數據流提供相應的QoS策略;否則,按照正常的轉發流程對數據流進行轉發。
由上述本發明提供的技術方案可以看出,本發明通過給用戶定制一些ACL規則模板,和現有技術相比具有如下優點1、本發明無需增加TCAM硬件投資,通過給用戶提供ACL規則模板,使用戶配置流分類規則時可以根據需要靈活選擇ACL類型,實現更細粒度的流分類處理。
2、本發明在用戶需要同時匹配報文的二、三層字段時,只需執行一次ACL即可滿足用戶的要求,從而可以節約外設帶寬資源。
3、本發明可以減少TCAM中的無用字段,提高TCAM資源的利用率。
圖1為ACL的具體處理流程圖;圖2為二層ACL的key結構示意圖;圖3為Ipv4三層ACL的key結構示意圖;圖4為Ipv6三層ACL的key結構示意圖;圖5為現有技術中使能二層ACL或三層ACL的處理方法的具體處理流程圖;
圖6為現有技術中同時使能二層ACL和三層ACL的處理方法的具體處理流程圖;圖7為本發明所述方法的具體處理流程圖;圖8為本發明所述Ipv4 ACL規則模板實施例示意圖;圖9為本發明所述IPv6 ACL規則模板實施例示意圖;圖10為本發明所述基于二層ACL、三層ACL和ACL模板的處理方法具體處理流程圖。
具體實施例方式
本發明提供了一種給數據流提供不同的服務質量策略的方法。本發明的核心為在不增加TCAM key長度的前提下,通過給用戶提供一些常用的ACL規則模板,使用戶配置ACL時既可以實現細粒度的流分類,又不會對轉發性能產生影響。
下面結合附圖來詳細描述本發明,本發明所述方法的具體處理流程如圖7所示,包括如下步驟步驟7-1、根據用戶的需求,定制一些ACL模板。
本發明中,首先需要根據用戶的需求,定制一些ACL模板,該ACL模板可以同時包括部分二層ACL信息、部分三層ACL信息及部分四層ACL信息,也可以包括一些其它信息。該模板的長度不能超出現有的TCAM規格中定義的表項長度。因此,定制的ACL模板中不能包括所有的二層ACL和三層ACL信息,但模板的定制基于用戶實際使用中常用的配置,因此可以滿足大多數用戶的需求。
例如,可以給用戶定制這樣一個識別IPv4報文的ACL模板<源MAC地址,源IP地址,目的IP地址,TOS,協議號>,該模板的結構如圖8所示。
對于IPv6 ACL而言,由于其IP地址的特殊性,同樣可以采用類似方法構造一些ACL模板。目前的IPv6 ACL只實現了IPv6的單播流分類處理,IPv6單播地址(也叫全局地址)包括兩部分高64位的地址和低64位的地址。其中高64位地址表示網絡前綴,低64位地址表示接口索引。
因此,我們可以根據用戶的需求,定制一些不同的IPv6 ACL模板。即分別選取IPv6地址的高64位地址或低64位地址中的一部分,與部分二層ACL相結合共同組成IPv6 ACL模板,實現更細粒度的IPv6 ACL。例如,可以構造如下的IPv6 ACL模板<源MAC,源IP(低64bits),目的IP,協議號>
步驟7-2、將定制的ACL模板保存在路由器的模板庫中。
在根據用戶的需求定制了一些ACL模板后,本發明需要在路由器中維護一個模板庫,并將上述定制的一些ACL模板保存在該模板庫中,用戶可以根據實際需要在該模板庫中進行增加、刪除、修改等操作。
步驟7-3、在需要進行流分類操作時,從中選擇一個ACL模板并指定匹配條件。
當用戶需要根據上述定制的ACL模板對一具體的數據流進行分類操作時,便從上述模板庫選擇一個需要的ACL模板。然后指定選擇的ACL模板中各字段的匹配條件,即配置一條具體的ACL模板規則,存于TCAM中。
比如,根據上面所述的圖8所示的ACL模板,可以配置如下的規則{源MAC=00e0.fcfa.0000,源IP=2.2.2.2/24,目的IP=4.4.4.4/24,TOS=0×4c,協議號=6}。
根據上面所述的圖9所示的ACL模板,可以配置如下的規則{源MAC=00e0.fcfa.0000,VLAN ID=0×3,源IP(低64bits)=0:0:C934:12FE,目的IP=2008::1,Traffic Class=0×c,協議號=17}步驟7-4、根據選擇的ACL模板,從報文中提取出相應的字段內容并構成Key。
根據上述選擇的ACL模板的定義,從待處理的數據流報文中提取出相應的字段內容,比如,可以提取出報文的二、三層和四層頭字段中的部分內容,然后,將提取出的內容構成一個key。
步驟7-5、Key和ACL規則是否匹配。
將所述構成的key與配置的ACL規則進行匹配,如果成功匹配(命中),則執行步驟7-6;否則,執行步驟7-7。
步驟7-6、執行和該ACL規則對應的動作。
如果所述key和配置的ACL模板規則能夠匹配,則TCAM會返回對應的動作索引,根據該動作索引找到相應的動作,執行該動作給數據流提供相應的QoS策略。
步驟7-7、對報文進行正常轉發。
如果所述key和配置的ACL模板規則不能夠匹配,則按照正常轉發流程,對待處理數據流報文進行正常轉發。
本發明所述方法可以和現有的基于二層ACL和三層ACL的處理方法相結合,即用戶配置ACL規則時,可以根據需要選擇ACL類型二層ACL、三層ACL或ACL模板。具體處理流程如圖10所示。具體處理過程簡單介紹如下如果用戶選擇同時使能二層ACL和三層ACL,則首先從待分類的數據流報文中提取二層頭字段的內容,然后,和二層ACL的規則表進行匹配,如果匹配命中一條規則,則繼續從該報文中提取三層和四層頭字段的內容,然后,和三層ACL的規則表進行匹配,如果匹配命中一條規則,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理。
如果用戶選擇使能三層ACL,則從待分類的數據流報文中提取三層和四層頭字段的內容,然后,和三層ACL的規則表進行匹配,如果匹配命中一條規則,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理。
如果用戶選擇使能ACL模板,則指定選擇的ACL模板中各字段的匹配條件,配置一條具體的ACL模板規則,根據選擇的ACL模板的定義,從待分類的數據流報文中提取二層、三層和四層頭字段的內容,和配置的ACL模板規則進行匹配,如果匹配命中,則返回該規則對應的動作,執行該動作對數據流報文進行相應的處理。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種給數據流提供不同的服務質量策略的方法,其特征在于,包括A、定制包含各層部分字段信息的訪問控制列表ACL模板;B、利用所述ACL模板,對數據流進行分類,給數據流提供不同的服務質量QoS策略。
2.根據權利要求1所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟A具體包括根據用戶需求,定制包括報文的部分二層頭字段和部分三層頭字段的ACL模板,和/或,根據用戶需求,定制包括報文的部分二層頭字段和部分四層頭字段的ACL模板,和/或,根據用戶需求,定制包括報文的部分三層頭字段和部分四層頭字段的ACL模板。
3.根據權利要求1所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的ACL模板的長度不超過三態內容可尋址存儲器TCAM規格中定義的表項長度。
4.根據權利要求1所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟A還包括將所述定制的ACL模板保存在模板庫中,用戶可以在該模板庫中進行增加、刪除、修改操作。
5.根據權利要求1、2、3或4所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟B具體包括B1、根據待處理的數據流,選擇一個ACL模板,并配置該ACL模板的規則;B2、將所述規則和待處理的數據流進行匹配處理,并根據匹配的結果給該數據流提供相應的QoS策略。
6.根據權利要求5所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟B1具體包括通過指定所述ACL模板中各字段的匹配條件來配置該ACL模板的規則。
7.根據權利要求6所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟B2具體包括B21、根據所述ACL模板的定義,從待處理的數據流報文中提取出相應的字段內容,并將提取出的字段內容構成關鍵字key;B22、將所述key和所述配置的ACL模板的規則進行匹配處理,并根據匹配的結果給該數據流提供相應的QoS策略。
8.根據權利要求7所述給數據流提供不同的服務質量策略的方法,其特征在于,所述的步驟B22具體包括如果所述key和所述配置的ACL模板的規則匹配命中,則執行該規則所對應的動作給數據流提供相應的QoS策略;否則,按照正常的轉發流程對數據流進行轉發。
全文摘要
本發明提供了一種給數據流提供不同的服務質量策略的方法,該方法主要包括定制包含各層部分字段信息的ACL(訪問控制列表)模板;利用所述ACL模板,對數據流進行分類,給數據流提供不同的QoS(服務質量)策略。利用本發明所述方法,可以實現根據用戶需要靈活選擇ACL類型,實現更細粒度的數據流分類處理,并給數據流提供相應的不同的QoS策略。
文檔編號H04L29/06GK1863142SQ20051009090
公開日2006年11月15日 申請日期2005年8月19日 優先權日2005年8月19日
發明者熊怡 申請人:華為技術有限公司