数据帧转发方法及相关装置转让专利

申请号 : CN200710002781.8

文献号 : CN101009705B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨亮

申请人 : 华为技术有限公司

摘要 :

本发明实施例公开数据帧属性识别方法:将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配,根据匹配结果识别出MPLS数据帧为组播数据帧还是单播数据帧。本发明实施例还公开组播组标识提取方法:将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间并与配置的组播标签空间进行匹配,若与配置的组播标签空间相等,则提取所述MPLS数据帧的标签值中的组播组标识ID。本发明实施例还提供数据帧属性识别的装置和组播组标识提取的装置。本发明实施例的技术方案能识别出国标封装格式的MPLS数据帧的单组播属性,还能通过标签提取组播组ID。

权利要求 :

1.一种数据帧转发方法,其特征在于,包括:

将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配;

若所述划分的标签空间与配置的组播标签空间相等,则所述MPLS数据帧为组播数据帧,提取所述MPLS数据帧的标签值中的组播组标识ID,按照所述组播组ID查找组播路由转发表,进行组播数据帧转发,所述组播组标识ID包含在MPLS数据帧的标签值除组播标签空间外的部分中;

若所述划分的标签空间与配置的单播标签空间相等,则所述MPLS数据帧为单播数据帧,按照下一跳转发表的索引值查找下一跳转发表得到转发信息,所述下一跳转发表的索引值包含在MPLS数据帧的标签值除单播标签空间外的部分中。

2.根据权利要求1所述的数据帧转发方法,其特征在于:

所述划分出标签空间具体为:

确定组播组个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为组播标签空间;

确定链路状态数据单元LSP个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为单播标签空间。

3.根据权利要求2所述的数据帧转发方法,其特征在于:

在所述标签值的高地址部分划分组播标签空间或单播标签空间。

4.根据权利要求1至3任一项所述的数据帧转发方法,其特征在于:所述MPLS数据帧为国标封装格式。

5.一种数据帧转发装置,其特征在于,包括:

用于将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间的单元,用于将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配的单元;

用于执行若所述划分的标签空间与配置的组播标签空间相等,则所述MPLS数据帧为组播数据帧,提取所述MPLS数据帧的标签值中的组播组标识ID,按照所述组播组ID查找组播路由转发表,进行组播数据帧转发的单元;所述组播组标识ID包含在MPLS数据帧的标签值除组播标签空间外的部分中;

用于执行若所述划分的标签空间与配置的单播标签空间相等,则所述MPLS数据帧为单播数据帧,按照下一跳转发表的索引值查找下一跳转发表得到转发信息的单元;所述下一跳转发表的索引值包含在MPLS数据帧的标签值除单播标签空间外的部分中。

6.根据权利要求5所述的装置,其特征在于:

所述用于将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间的单元具体为:用于确定组播组个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为组播标签空间的模块;

用于确定链路状态数据单元LSP个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为单播标签空间的模块。

说明书 :

数据帧转发方法及相关装置

技术领域

[0001] 本发明涉及通信技术领域,具体涉及数据帧转发方法及相关装置。
[0002] 背景技术
[0003] 多协议标签交换(MPLS:Multi-protocol Label Switch)技术是基于标签(Label)的互联网协议(IP)路由选择方法,把选路和转发分开。标签(Label)是一种短的易于处理的、不包含拓扑信息、只具有局部意义的信息内容,目前的MPLS标签格式中,Label的标签值为20比特(bit)。在MPLS网络中,IP数据帧在进入第一个MPLS网络设备时,MPLS的标签交换边缘路由器(LER)就用标签将数据帧封装起来。标签交换边缘路由器分析IP数据帧的内容,将具有相同转发属性的IP数据帧分为一个转发等价类(FEC),并选择合适的标签,封装成一个MPLS数据帧,然后所有MPLS网络中的节点都是依据标签来作为转发判决依据,当该IP数据帧最终离开MPLS网络时,标签被标签交换边缘路由器分离。这样,MPLS技术就通过标签交换这种高效的转发方式取代了基于IP的转发方式,大大降低了交换机和路由器的运算复杂度,提高了网络的处理能力。
[0004] 目前MPLS数据帧有两种封装格式:国标封装格式和马蒂尼(Martini)封装格式。请参阅图1和图2,分别是现有的国标封装格式和Martini封装格式的示意图。国标封装格式的MPLS数据帧包括链路状态数据单元LSP隧道标签域、控制字域和净荷域。LSP隧道标签域也就是MPLS标签栈,控制字域为可选。Martini封装格式的MPLS数据帧比国标封装格式的MPLS数据帧多了目的地址域DA、源地址域SA和类型域Type。
[0005] 组播是“一对多”的通信技术。对于普通IP数据帧,在三层即网络层利用IP地址对应到组播组标识(ID),再根据组播组ID查找由互联网组播成员管理IGMP协议建立的组播路由转发表,完成组播数据帧转发;或在二层即链路层,将IP地址映射到介质访问控制MAC地址,由MAC地址对应到组播组ID,根据组播组ID查找互联网组播成员管理侦听IGMP Snooping协议建立的组播路由转发表,完成组播数据帧转发。
[0006] 对于多业务传送平台(MSTP)设备来说,由于不支持动态的组播路由协议,所以所有的组播转发路径都是静态配置的。MPLS标签交换的数据帧转发是完全依赖于标签的基础上。对于MPLS单播数据帧,标签代表了等价转发类FEC,可以通过标签查找下一跳转发表项NHLFE,得到转发信息;对于MPLS组播数据帧,考虑两种封装格式,对于Martini封装格式,含有Type域,当Type域为0x8847,就属于MPLS单播帧;当Type域为0x8848,就属于MPLS组播帧,但是对于国标封装格式,由于帧头只含有标签信息,所以无法识别输入的MPLS数据帧的单组播属性。
[0007] 而对于Martini封装格式的MPLS组播数据帧,如果目的地址域DA是个组播MAC地址,就可以用目的地址域DA对应到组播组ID,但考虑到LSP中间经过二层设备的情况,如果添加一个组播MAC地址,则在二层设备和MSTP设备上必须运行一套完整的IGMP协议,才能完成IGMP Snooping功能,实现复杂,所以目前不运行IGMP协议,而是在目的地址域DA添加一个单播MAC地址,当二层设备转发时,根据单播MAC地址转发。也就是说,目前对于MPLS组播数据帧,无法利用IP地址或MAC地址对应得到组播组ID,从而无法根据组播组ID查找组播路由转发表,完成组播数据帧转发。
[0008] 综上所述,对于MPLS数据帧,如果采用现有的国标封装格式,无法识别出是组播数据帧还是单播数据帧;而对于MPLS组播数据帧,无法利用IP地址或MAC地址对应得到组播组ID来查找组播路由转发表。
[0009] 发明内容
[0010] 本发明实施例要解决的技术问题是提供一种数据帧转发方法及装置,能够识别出国标封装格式MPLS数据帧的单播属性或组播属性,并进行相应的转发处理。
[0011] 为解决上述技术问题,本发明实施例是通过以下技术方案实现的:
[0012] 根据本发明的一个方面,提供一种数据帧转发方法,包括:将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配;若所述划分的标签空间与配置的组播标签空间相等,则所述MPLS数据帧为组播数据帧,提取所述MPLS数据帧的标签值中的组播组标识ID,按照所述组播组ID查找组播路由转发表,进行组播数据帧转发,所述组播组标识ID包含在MPLS数据帧的标签值除组播标签空间外的部分中;若所述划分的标签空间与配置的单播标签空间相等,则所述MPLS数据帧为单播数据帧,按照下一跳转发表的索引值查找下一跳转发表得到转发信息,所述下一跳转发表的索引值包含在MPLS数据帧的标签值除单播标签空间外的部分中。
[0013] 根据本发明的另一方面,提供一种数据帧转发装置,包括:用于将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间的单元,用于将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配的单元;用于执行若所述划分的标签空间与配置的组播标签空间相等,则所述MPLS数据帧为组播数据帧,,提取所述MPLS数据帧的标签值中的组播组标识ID,按照所述组播组ID查找组播路由转发表,进行组播数据帧转发的单元;所述组播组标识ID包含在MPLS数据帧的标签值除组播标签空间外的部分中;用于执行若所述划分的标签空间与配置的单播标签空间相等,则所述MPLS数据帧为单播数据帧,按照下一跳转发表的索引值查找下一跳转发表得到转发信息的单元;所述下一跳转发表的索引值包含在MPLS数据帧的标签值除单播标签空间外的部分中。
[0014] 从以上本发明实施例技术方案可以看出:
[0015] 现有技术中对于国标封装格式的MPLS数据帧无法识别单组播属性,而本发明实施例通过将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间和单播标签空间分别进行匹配,若所述划分的标签空间与配置的组播标签空间相等,则识别出MPLS数据帧为组播数据帧;若所述划分的标签空间与配置的单播标签空间相等,则识别出MPLS数据帧为单播数据帧,从而可以识别出国标封装格式的MPLS数据的单组播属性;
[0016] 另外,现有技术对于MPLS组播数据帧,无法利用IP地址或MAC地址对应得到组播组ID来查找组播路由转发表,而本发明实施例通过将多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间进行匹配,若所述划分的标签空间与配置的组播标签空间相等,则提取所述MPLS数据帧的标签值中的组播组标识ID,从而可以基于标签提取组播组ID来查找组播路由转发表,完成组播数据帧转发。

附图说明

[0017] 图1为现有技术的MPLS数据帧的国标封装格式示意图;
[0018] 图2为现有技术的MPLS数据帧的马蒂尼(Martini)封装格式示意图;
[0019] 图3为本发明实施例的MPLS数据帧划分的单播标签空间示意图;
[0020] 图4为本发明实施例的MPLS数据帧划分的组播标签空间示意图;
[0021] 图5为本发明实施例数据帧属性识别方法的流程图;
[0022] 图6为本发明实施例组播组标识提取方法的流程图;
[0023] 图7为本发明实施例数据帧属性识别装置结构示意图;
[0024] 图8为本发明实施例组播组标识提取装置结构示意图。

具体实施方式

[0025] 本发明实施例提供一种数据帧属性识别方法,通过对标签值划分出标签空间,并将划分的标签空间与配置的单播或组播标签空间进行匹配,根据匹配结果识别出MPLS数据帧的单组播属性。
[0026] 在MPLS网络中,IP数据帧在进入第一个MPLS网络设备时,MPLS的标签交换边缘路由器(LER)就用标签将IP数据帧封装成MPLS数据帧。MPLS网络中的其他节点设备接收带有标签的MPLS数据帧后,可以对标签值划分出标签空间,将划分的标签空间与配置的标签空间进行匹配。这里所述的标签空间,是指在20比特标签值中划分出的一部分空间。
[0027] 对于要进行单播的国标封装格式的MPLS数据帧,MPLS网络中的每一个节点设备都预先配置了单播标签空间;配置的单播标签空间是根据节点设备支持的LSP个数要求确定的。例如一个节点设备共支持4K个LSP,则将20比特标签值的高8比特配置为数据帧的单播标签空间。可以为不同的LSP配置“每平台”或“每接口”的单播标签空间。“每平台”或“每接口”是MPLS协议中的定义,“每接口”标签空间要求在一个接口上接受的数据帧的标签空间一致,在不同接口上接受的数据帧可以不在同一个标签空间;“每平台”标签空间要求整个MPLS网络全局只有一个标签空间。对于配置的单播标签空间是“每平台”还是“每接口”,本发明并不加以限定。
[0028] 网络中的节点设备接收带有标签的MPLS数据帧后,可以根据支持的LSP个数要求,将输入的MPLS帧的20比特标签值进行划分,将标签值的高地址部分划分为数据帧的单播标签空间。请参阅图3,是本发明实施例MPLS数据帧划分的单播标签空间示意图,例如,一个节点设备共支持4K个LSP,则可以将输入的MPLS数据帧的20比特标签值的高8比特划分为数据帧的单播标签空间,低12比特为下一跳转发表NHLFE的索引值空间,如图3所示。因为MPLS标签值有20比特,支持的LSP为4K,而4K是2的12次方,也就确定了LSP个数在所述标签值中占用的二进制位数为12,即占用的空间为12比特,所以意味着单播标签空间在标签值中占用空间的比特数为:20-12=8,也就是把20比特标签值划分了两部分:高地址部分的单播标签空间为8比特,低地址部分的下一跳转发表NHLFE的索引值空间为12比特,表示LSP个数是4K个。需要说明的是,所述例子中单播标签空间并不一定要将8比特空间全部占据,另外单播标签空间并不局限划分在标签值的高地址部分。
[0029] 对于要进行组播的国标封装格式的MPLS数据帧,MPLS网络中的每一个节点设备都预先配置了组播标签空间;配置的组播标签空间是根据节点设备支持的组播组个数要求确定的。例如一个节点设备共支持1K个组播组,则将20比特标签值的高10比特配置为数据帧的组播标签空间。可以为不同的LSP配置“每平台”或“每接口”的组播标签空间,本发明并不加以限定。
[0030] 网络中的节点设备接收带有标签的MPLS数据帧后,可以根据支持的组播组个数要求,将输入的MPLS帧的20比特标签值进行划分,将标签值的高地址部分划分为数据帧的组播标签空间。请参阅图4,是本发明实施例MPLS数据帧划分的组播标签空间示意图,例如,一个节点设备共支持1K个组播组,则可以将输入的MPLS数据帧的20比特标签值的高10比特划分为数据帧的组播标签空间,低10比特就是组播组ID空间,具体需要支持多少个组播组ID,可以根据设备情况动态进行配置,如图4所示。因为MPLS标签值有20比特,支持的组播组个数为1K,而1K是2的10次方,也就确定了组播组个数在所述标签值中占用的二进制位数为10,即占用的空间为10比特,所以意味着组播标签空间在标签值中占用空间的比特数为:20-10=10,也就是把20比特标签值划分了两部分:高地址部分的组播标签空间为10比特,低地址部分的组播组ID空间为10比特。需要说明的是,所述例子中组播标签空间并不一定要将10比特空间全部占据,另外组播标签空间并不局限划分在标签值的高地址部分。
[0031] MPLS网络中的每一个节点设备接收到上一个节点设备传输的MPLS数据帧后,按上面所述方法划分标签空间,并通过与已配置的单播标签空间和组播标签空间进行匹配以识别该MPLS数据的单组播属性。因为划分的标签空间代表标签值的一部分,因此所说的匹配也就是指标签值的标签空间的值是否与配置的标签空间的值相等。请参阅图5,是本发明实施例MPLS数据帧属性识别方法流程图,包括步骤:
[0032] A1、接收MPLS数据帧;
[0033] A2、将MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与已配置的组播标签空间和单播标签空间分别进行匹配,若划分的标签空间与已配置的组播标签空间相等,进入A3,若划分的标签空间与已配置的单播标签空间相等,进入A4;
[0034] 节点设备根据支持的组播组个数要求,将输入的MPLS数据帧的20比特标签值进行划分,将标签值的高地址部分划分为数据帧的组播标签空间,并将划分的组播标签空间与已配置的组播标签空间进行匹配,若相等,则进入A3,若不相等,根据支持的LSP个数要求,将标签值的高地址部分划分为数据帧的单播标签空间,并将划分的单播标签空间与已配置的单播标签空间进行匹配,若相等,进入A4。
[0035] 需要说明的是,本发明实施例并不限定划分出单播标签空间和配置的单播标签空间进行匹配与划分出组播标签空间和配置的组播标签空间进行匹配的先后顺序,只要与其中一种配置的标签空间匹配相等,则不用再划分标签空间与另一种配置的标签空间进行匹配。
[0036] A3、识别出MPLS数据帧为组播数据帧;
[0037] A4、识别出MPLS数据帧为单播数据帧,此时可以使用标签值的低地址部分查找下一跳转发表NHLFE,得到目的MPLS节点转发信息。
[0038] 简单的说,上述匹配过程就是将MPLS数据帧的标签值划分出的单播或组播标签空间和节点设备已配置的单播标签空间和组播标签空间匹配相等的过程,根据匹配结果可以识别出MPLS数据帧的单组播属性。
[0039] 需要说明的是,因为对于国标封装格式的MPLS数据帧,如果划分的单播标签空间和配置的单播标签空间相等,就是单播数据帧;如果划分的组播标签空间和配置的组播标签空间相等,就是组播数据帧,由于前面提到不区分单播标签空间和组播标签空间的标签空间匹配顺序,所以节点设备配置的单播和组播标签空间不能相同,否则,接收的国标封装格式的MPLS数据帧,划分的单播和组播标签空间正好与配置的单播和组播标签空间都相等,就无法识别了。
[0040] 对于Martini封装格式的MPLS数据帧,虽然根据其含有的Type域可以直接识别出单组播属性,当Type域为0x8847,就属于MPLS单播数据帧;当Type域为0x8848,就属于MPLS组播数据帧,但也是可以通过上述方法划分标签空间,并和已配置的单播标签空间和组播标签空间进行匹配从而识别出单组播属性。此时直接根据支持的LSP个数要求,将标签值的高地址部分划分为数据帧的单播标签空间,并将划分的单播标签空间与已配置的单播标签空间进行匹配;如直接根据支持的组播组个数要求,则将标签值的高地址部分划分为数据帧的组播标签空间,并将划分的组播标签空间与已配置的组播标签空间进行匹配。
[0041] 需要说明的是,本发明实施例关于MPLS数据帧的单组播属性识别方法并不局限于国标封装格式或Martini封装格式的MPLS数据帧,对于其他封装格式的MPLS数据帧也同样适用,其原理是一样的。
[0042] 上述介绍了本发明实施例关于MPLS数据帧的单组播属性识别方法,以下介绍本发明实施例基于标签进行组播组ID提取的方法。
[0043] 基于标签进行组播组ID提取的方法是建立在经过匹配而识别出MPLS数据帧为组播数据帧的基础上的,所以首先也是要识别出MPLS数据帧为组播数据帧。
[0044] 请参阅图6,是本发明实施例组播组标识提取方法的流程图,包括步骤:
[0045] B1、将MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与已配置的组播标签空间进行匹配,若划分的标签空间与已配置的组播标签空间相等,进入B2;
[0046] 将MPLS数据帧的标签值划分出标签空间,是指节点设备接收带有标签的MPLS数据帧后,根据支持的组播组个数要求,在MPLS数据帧的20比特标签值中将标签值的高地址部分划分为数据帧的组播标签空间,将低地址部分直接作为组播组ID空间。例如,一个节点设备共支持1K个组播组,而1K是2的10次方,也就确定了组播组个数在所述标签值中占用的二进制位数为10,即占用的空间为10比特,则20比特标签值的高10比特就可以划分为数据帧的组播标签空间,低10比特就是组播组ID空间,可以作为设置的组播组ID,如图4所示。
[0047] 将MPLS数据帧的标签值划分出标签空间后,将划分的组播标签空间与已配置的组播标签空间进行匹配。因为是要提取组播组ID,而只有组播数据帧中才含有组播组ID,所以只需用到配置的组播标签空间。
[0048] 对于国标封装格式的MPLS数据帧,将在数据帧的标签值中划分的组播标签空间与已配置的组播标签空间进行匹配,若划分的组播标签空间与已配置的组播标签空间相等,表示MPLS数据帧为组播数据帧,并进入B2。
[0049] 对于Martini封装格式的MPLS数据帧,当Type域为0x8848,就可以识别出为组播帧,但是也要进行标签空间匹配,因此,Martini封装格式的MPLS数据帧,也要和国标封装格式的MPLS数据帧一样划分组播标签空间。如果在数据帧的标签值中划分的组播标签空间和已配置的组播标签空间相等,则当前组播数据帧有效,进入B2;如果不相等,当前组播数据帧无效,当前节点无法识别,无法进行组播复制转发。
[0050] B2、提取MPLS数据帧的标签值中的组播组ID。
[0051] 根据该数据帧为组播数据帧,并且在该数据帧的标签值中划分的组播标签空间与已配置的组播标签空间相等,从而可以提取该数据帧标签值中的组播组ID。因为数据帧的标签值中的高地址部分作为组播标签空间,所以低地址部分则为组播组ID空间,从而可以提取组播组ID。
[0052] 需要说明的是,本发明实施例进行组播组ID提取的方法并不局限于国标封装格式或Martini封装格式的MPLS数据帧,对于其他封装格式的MPLS数据帧也同样适用,其原理是一样的。
[0053] 通过上述方法,基于组播标签提取组播组ID,可以解决目前MPLS组播无法利用IP地址或MAC地址对应组播组ID的问题,而且基于组播标签提取组播组ID,实现简单,效率高。在提取组播组ID后,可以同现有IP组播复制一样,根据组播组ID查找静态配置的组播路由转发表,实现MPLS组播转发。另外,由于标签的特殊意义,对于MPLS组播,标签代表了组播组大小,所以此时组播标签只支持且分析一层就可以,不会出现多层标签栈结构,这样实现简单。
[0054] 需要说明的是,如果节点设备同时支持MPLS单播或组播,只要配置了单播标签空间和多播标签空间,在匹配并识别出为MPLS单播数据帧时进行单播转发;匹配并识别出为MPLS组播数据帧时,提取组播组ID,查找静态配置的组播路由转发表,实现MPLS组播转发。
[0055] 以下介绍本发明实施例提供的一种数据帧属性识别装置,可以识别出MPLS数据帧的单组播属性。
[0056] 请参阅图7,为本发明实施例数据帧属性识别装置结构示意图。
[0057] 该数据帧属性识别装置包括配置单元10、划分单元20和识别单元30。
[0058] 配置单元10,用于配置组播标签空间或/和单播标签空间。配置的组播标签空间是根据节点设备支持的组播组个数要求确定的,配置的单播标签空间是根据节点设备支持的LSP个数要求确定的。可以配置“每平台”或“每接口”的组播标签空间和单播标签空间。“每平台”或“每接口”是MPLS协议中的定义,“每接口”标签空间要求在一个接口上接受的数据帧的标签空间一致,在不同接口上接受的数据帧可以不在同一个标签空间;“每平台”标签空间要求整个MPLS网络全局只有一个标签空间。
[0059] 划分单元20,用于将多协议标签交换MPLS数据帧的标签值划分出标签空间。划分单元20进一步包括第一划分单元201和第二划分单元202。第一划分单元201,用于确定组播组个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为组播标签空间;第二划分单元202,用于确定链路状态数据单元LSP个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为单播标签空间。
[0060] 例如组播组个数为1K,MPLS标签值有20比特,而1K是2的10次方,也就确定了组播组个数在所述标签值中占用的二进制位数为10,即占用的空间为10比特,所以第一划分单元201划分的组播标签空间的比特为:20-10=10,也就是把20比特标签值划分了两部分:高地址部分的组播标签空间为10比特,低地址部分的组播组ID空间为10比特。需要说明的是,所述例子中组播标签空间并不一定要将10比特空间全部占据,另外组播标签空间并不局限划分在标签值的高地址部分。
[0061] 例如链路状态数据单元LSP个数为4K,MPLS标签值有20比特,而4K是2的12次方,也就确定了LSP个数在所述标签值中占用的二进制位数为12,即占用的空间为12比特,所以第二划分单元202划分的单播标签空间的比特为:20-12=8,也就是把20比特标签值划分了两部分:高地址部分的单播标签空间为8比特,低地址部分的下一跳转发表NHLFE的索引值空间为12比特,表示LSP个数是4K个。需要说明的是,所述例子中单播标签空间并不一定要将8比特空间全部占据,另外单播标签空间并不局限划分在标签值的高地址部分。
[0062] 识别单元30,用于将多协议标签交换MPLS数据帧的标签值中由第一划分单元201或第二划分单元202划分的标签空间与配置单元10配置的组播标签空间和单播标签空间分别进行匹配,若在MPLS数据帧的标签值中划分的组播标签空间与配置单元10配置的组播标签空间相等,则识别出MPLS数据帧为组播数据帧;若在MPLS数据帧的标签值中划分的单播标签空间与配置单元10配置的单播标签空间相等,则识别出MPLS数据帧为单播数据帧。
[0063] 需要说明的是,如果配置单元10只配置了组播标签空间,那么将划分的标签空间与配置的组播标签空间进行匹配,如果匹配相等,则识别出MPLS数据帧为组播数据帧,如果匹配不相等,可以认为MPLS数据帧为单播数据帧;如果配置单元10只配置了单播标签空间,那么将划分的标签空间与配置的单播标签空间进行匹配,如果匹配相等,则识别出MPLS数据帧为单播数据帧,如果匹配不相等,可以认为MPLS数据帧为组播数据帧。
[0064] 该数据帧属性识别装置主要是用于识别国标封装格式的MPLS数据帧的单组播属性,因为现有的国标封装格式的MPLS数据帧,由于帧头只含有标签信息,所以是无法识别国标封装格式的MPLS数据帧的单组播属性,而通过本发明实施例提供的数据帧属性识别装置,则可以识别出国标封装格式的MPLS数据帧的单组播属性。需要说明的是,对于Martini封装格式的MPLS数据帧,虽然根据其含有的Type域可以直接识别出单组播属性,当Type域为0x8847,就属于MPLS单播数据帧;当Type域为0x8848,就属于MPLS组播数据帧,但也是可以通过本发明实施例提供的数据帧属性识别装置识别出单组播属性。还需要说明的是,该数据帧属性识别装置并不局限于对国标封装格式或Martini封装格式的MPLS数据帧的单组播属性识别,对于其他封装格式的MPLS数据帧也同样适用。
[0065] 本发明实施例还提供一种组播组标识提取装置,可以基于组播标签提取组播组标识ID。
[0066] 请参阅图8,为本发明实施例组播组标识提取装置结构示意图。
[0067] 该组播组标识提取装置包括配置单元60、划分单元70和提取单元80。
[0068] 配置单元60,用于配置组播标签空间。配置的组播标签空间是根据节点设备支持的组播组个数要求确定的。可以配置“每平台”或“每接口”的组播标签空间。
[0069] 划分单元70,用于将多协议标签交换MPLS数据帧的标签值划分出标签空间,具体划分是确定组播组个数在所述标签值中占用的空间,并将所述标签值中剩余空间的全部或部分划分为组播标签空间。例如组播组个数为1K,MPLS标签值有20比特,而1K是2的10次方,也就确定了组播组个数在所述标签值中占用的二进制位数为10,即占用的空间为10比特,所以第一划分单元201划分的组播标签空间的比特为:20-10=10,也就是把20比特标签值划分了两部分:高地址部分的组播标签空间为10比特,低地址部分的组播组ID空间为10比特。需要说明的是,所述例子中组播标签空间并不一定要将10比特空间全部占据,另外组播标签空间并不局限划分在标签值的高地址部分。
[0070] 提取单元80,用于将多协议标签交换MPLS数据帧的标签值中由划分单元70划分的组播标签空间与配置单元60配置的组播标签空间进行匹配,判断划分的组播标签空间是否与配置的组播标签空间相等,并在判断出已划分的组播标签空间与配置的组播标签空间相等时,提取所述MPLS数据帧的标签值中的组播组标识ID。因为是在MPLS数据帧的20比特标签值中将标签值的高地址部分划分为数据帧的组播标签空间,因此低地址部分直接作为组播组ID空间,可以从组播组ID空间提取组播组ID。
[0071] 本发明实施例的组播组标识提取装置,适用于国标封装格式的MPLS数据帧和Martini封装格式的MPLS数据帧。如果是国标封装格式的MPLS数据帧,如果标签值中划分的标签空间与配置的组播标签空间相等,则表示该数据帧为组播数据帧,如果是Martini封装格式的MPLS数据帧,虽然根据其含有的Type域可以直接识别出单组播属性,当Type域为0x8848,就可以识别出为组播数据帧,但是也要进行标签空间匹配,如果数据帧的标签值中划分的组播标签空间与已配置的组播标签空间相等,则当前组播数据帧有效,如果不相等,当前组播数据帧无效,当前节点无法识别。还需要说明的是,该组播组标识提取装置并不局限于应用于国标封装格式或Martini封装格式的MPLS数据帧,对于其他封装格式的MPLS数据帧也同样适用。
[0072] 综上所述,现有技术中是无法识别出国标封装格式的MPLS数据的单组播属性,而本发明实施例提供的数据帧属性识别方法及装置,通过将接收的多协议标签交换MPLS数据帧的标签值划分出标签空间,并将划分的标签空间与配置的组播标签空间和单播标签空间进行匹配,根据匹配结果则可以识别出国标封装格式的MPLS数据的单组播属性;现有技术中对于MPLS组播数据帧,无法利用IP地址或MAC地址对应得到组播组ID来查找组播路由转发表,而本发明实施例提供的组播组标识提取的方法和装置,标签值中含有组播组ID,通过将多协议标签交换MPLS数据帧的标签值划分出组播标签空间,将划分的组播标签空间与配置的组播标签空间进行匹配,若与配置的组播标签空间相等,则提取MPLS数据帧的标签值中的组播组标识ID,从而可以基于标签提取组播组ID来查找组播路由转发表,完成组播数据帧转发,而且实现简单,效率高。
[0073] 以上对本发明实施例所提供的一种数据帧属性识别及组播组标识提取的方法及相关装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。