给数据流提供不同的服务质量策略的方法

文档序号:7622012阅读:175来源:国知局
专利名称:给数据流提供不同的服务质量策略的方法
技术领域
本发明涉及通讯领域,尤其涉及一种给数据流提供不同的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日
发明者熊怡 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1