基于标签转发的业务处理方法和装置与流程

文档序号:17386107发布日期:2019-04-13 00:10阅读:210来源:国知局
基于标签转发的业务处理方法和装置与流程

本发明实施例涉及通信领域,特别涉及一种基于标签转发的业务处理方法和装置。



背景技术:

区分服务(英文:Differentiated Service;简称:DiffServ)模型可以根据报文内容区分各种业务的流量并分配优先级,保证高优先级业务优先转发。因此DiffServ模型被广泛应用于多协议标签交换(英文:Multiprotocol Label Switching;简称:MPLS)网络中。

MPLS标签包括20bit标签值域、3bit优先级域、1bit栈底域和8bit生存期字段。其中,标签值域中的标签值用于表示转发业务至下游节点的转发路径,优先级域中的优先级用于表示业务报文的优先级字段,栈底域用于表示最后进入的标签位置,生存期字段用于对生存期值进行编码。

现有技术中实现MPLS网络的流量分类的方案包括EXP标签交换路径(英文:EXP-Label Switched Path;简称:E-LSP),在该方案中,DiffServ模型使用MPLS标签中的优先级域来表示业务报文的优先级,然而,由于MPLS标签的优先级域只有3bit,其只能表示8个优先级,所以节点对业务报文进行处理时,只能根据8个优先级对其处理,业务处理较为局限。



技术实现要素:

为了解决现有技术中节点对业务报文的处理较为局限的问题,本发明实施例提供了一种基于标签转发的业务处理方法和装置,所述技术方案如下:

第一方面,提供了一种基于标签转发的业务处理方法,该方法包括:

获取第一业务报文所对应的逐跳行为(英文:Per Hop Behavior;简称:PHB)类型;

根据第一映射关系获取PHB类型所对应的第一优先级信息,第一映射关系包括由PHB类型指向第一优先级信息的对应关系,第一优先级信息的长度为m位,m为大于3的整数;

根据标签控制协议获取标签信息,标签信息包括标签的层数n和用于表示由第一节点指向第二节点的报文转发路径的标签值,n为大于1的整数;

根据第一优先级信息以及标签信息,为第一业务报文封装n层标签,得到第二业务报文;其中,n层标签用于携带第一优先级信息,且n层标签的每层标签携带标签信息中的标签值;

根据标签值向第二节点发送第二业务报文,第二业务报文用于指示第二节点根据n层标签中携带的第一优先级信息对第二业务报文进行处理。

第一节点为第二节点的上游节点,相应的第二节点为第一节点的下游节点。其中,上游节点是指在报文发送中处于上游的节点,下游节点为报文发送方向中处于下游的节点。比如,节点A发送报文至节点B,节点B发送报文至节点C,则,节点A即为节点B的上游节点,节点B为节点A的下游节点,类似的,节点B为节点C的上游节点,节点C为节点A的下游节点。

通过获取第一业务报文所对应的PHB类型,进而获取PHB类型所对应的m位的第一优先级信息,为第一业务报文封装携带有该第一优先级信息的n层标签,得到第二业务报文,发送该第二业务报文至第二节点,使得第二节点可以根据第二业务报文中的n层标签中携带的m位的第一优先级信息对第二业务报文进行处理;由于m为大于3的整数,且第一优先级信息表示的优先级的个数为2m,大于8,所以上述方法可以提供超过8个的优先级,解决了现有技术中由于提供的优先级的个数有限,所以对业务的处理较为局限的问题;达到了可以提供更多的优先级,进而满足业务处理需求的效果。

在第一方面的第一种可能的实现方式中,n层标签的每层标签携带i位优先级信息,i为正整数;

n层标签用于携带第一优先级信息,包括:

若m/i=n,则按照预设封装规则将m位中的每i位封装在n层标签的每层标签的优先级域中;

若(m+j)/i=n,则按照预设封装规则将m位中的i-j位封装在n层标签的第k层标签的优先级域中,并将剩余位中的每i位携带在n层标签的其他各层标签的优先级域中;0<j<i,0<k≤n。

结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,第一业务报文可以是第一节点接收到的用户侧发送的互联网协议(英文:Internet Protocol;简称:IP)报文,也有可能是接收到的第三节点发送的带有多层标签的业务报文,所以上述步骤中获取第一业务报文所对应的逐跳行为PHB类型,包括:

若第一业务报文为用户侧发送的IP报文,则提取IP报文的报文头中携带的第二优先级信息;若第一业务报文为第三节点发送的带有N层标签的业务报文,则提取N层标签中携带的第二优先级信息,N=n;

根据第二映射关系获取第二优先级信息所对应的PHB类型,第二映射关系包括由第二优先级信息指向PHB类型的对应关系。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,提取N层标签中携带的第二优先级信息,包括:

提取N层标签中每层标签的优先级域中携带的优先级信息;

根据提取到的各个优先级信息以及每个优先级信息所对应的预设排序确定第二优先级信息;预设排序包括:每个优先级信息与其他优先级信息之间的排序,或者,每个优先级信息中的每位优先级信息在第二优先级信息中的排序。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,提取N层标签中每层标签的优先级域中携带的优先级信息,包括:

生成上行标签转发表,上行标签转发表中包括为第三节点分配的标签的层数N和标记信息,标记信息用于表示为第三节点分配的标签是否为多层标签;

根据N层标签中的最外层标签的标签值在上行标签转发表中查询标签的层数N和标记信息;

在标记信息表示为第三节点分配的标签是多层标签时,获取N层标签中其它各层标签的标签值;

检测N层标签中每层标签的标签值是否相同;

若检测结果为相同,则提取各层标签的优先级域中携带的优先级信息。

结合第一方面或者第一方面的第一种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,该方法还包括:

根据PHB类型对第一业务报文进行处理。具体的,第一节点可以根据PHB类型对第一业务报文进行层次化服务质量(英文:Hierarchical Quality of Service;简称:HQOS)调度。

结合第一方面或者第一方面的第一种至第五种可能的实现方式中的任一种,在第六种可能的实现方式中,标签控制协议包括标签分发协议(英文:Label Distribution Protocol;简称:LDP)、基于流量工程扩展的资源预留协议(英文:Resource ReSerVation Protocol-Traffic Engineering;简称:RSVP-TE)或者路径计算单元增强(path computation element+,PCE+)协议,根据标签控制协议获取标签信息,包括:

发送标签请求消息至第二节点;

接收第二节点返回的标签信息,标签信息中携带有标签值以及标签的层数n,标签信息为第二节点在第一节点和第二节点均支持多层标签时向第一节点返回的信息。

结合第一方面或者第一方面的第一种至第五种可能的实现方式中的任一种,在第七种可能的实现方式中,标签控制协议包括开放流(英文:OpenFlow)协议,根据标签控制协议获取标签信息,包括:

接收控制器发送的控制流表;

从控制流表中获取标签信息。

第二方面,提供了一种基于标签转发的业务处理方法,用于第二节点中,该方法包括:

接收第一节点发送的第二业务报文,第二业务报文是第一节点为接收到的第一业务报文封装n层标签之后发送的报文,n层标签中携带有第一优先级信息,第一优先级信息的长度为m位,m为大于3的整数,n为大于1的整数;

提取n层标签中携带的第一优先级信息;

根据第一优先级信息对第二业务报文进行处理。

通过接收第一节点发送的第二业务报文,提取第二业务报文的n层标签中携带的m位的第一优先级信息,根据该m位的第一优先级信息对第二业务报文进行处理;其中,由于m为大于3的整数,且第一优先级信息所能表示的优先级的个数为2m,大于8,所以上述方法可以根据超过8个的优先级对第二业务报文进行处理,解决了现有技术中由于提供的优先级的个数有限,所以对业务的处理较为局限的问题;达到了可以提供更多的优先级,进而满足业务处理需求的效果。

在第二方面的第一种可能的实现方式中,提取n层标签中携带的第一优先级信息,包括:

提取n层标签中每层标签的优先级域中携带的优先级信息;

根据提取到的各个优先级信息以及每个优先级信息所对应的预设排序确定第一优先级信息;预设排序包括:每个优先级信息与其他优先级信息之间的排序,或者,每个优先级信息中的每位优先级信息在第一优先级信息中的排序。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,提取n层标签中每层标签的优先级域中携带的优先级信息,包括:

生成上行标签转发表,上行标签转发表中包括为第一节点分配的标签的层数n和标记信息,标记信息用于表示为第一节点分配的标签是否为多层标签;

根据n层标签中的最外层标签的标签值在上行标签转发表中查询标签的层数n和标记信息;

在标记信息表示为第一节点分配的标签是多层标签时,获取n层标签中其它各层标签的标签值;

检测n层标签中每层标签的标签值是否相同;

若检测结果为相同,则提取各层标签的优先级域中携带的优先级信息。

结合第二方面、第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第三种可能的实现方式中,根据第一优先级信息对第二业务报文进行处理,包括:

根据第一映射关系获取第一优先级信息所对应的PHB类型,第一映射关系包括由第一优先级信息指向PHB类型的对应关系;

根据获取到的PHB类型对第二业务报文进行处理。

其中,第二节点根据PHB类型第二业务报文进行处理的步骤包括:根据PHB类型对第二业务报文进行QOS调度。

结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,在第二节点对第二业务报文进行处理之后,与第一方面类似的是,第二节点还可以为第二业务报文封装N层标签,进而向第四节点转发封装得到的第三业务报文,因此该方法还包括:

根据第二映射关系获取PHB类型所对应的第二优先级信息,第二映射关系包括由PHB类型指向第二优先级信息的对应关系;

根据标签控制协议获取标签信息,标签信息包括标签的层数N和用于表示向第四节点的报文转发路径的标签值,N=n;

根据第二优先级信息以及标签信息,为解封n层标签之后的第二业务报文封装N层标签,得到第三业务报文;N层标签用于携带第二优先级信息,且N层标签的每层标签携带标签信息中的标签值;

根据标签值发送第三业务报文至第四节点,第三业务报文用于指示第四节点根据N层标签中携带的第二优先级信息对第三业务报文进行处理。

结合第二方面、或者第二方面的第一种可能的实现方式至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,接收第一节点发送的第二业务报文之前,方法还包括:

接收第一节点发送的标签请求消息;

检测第二节点是否支持多层标签,且通过与第一节点进行能力协商检测第一节点是否支持多层标签;

若检测结果为第一节点和第二节点均支持多层标签,则返回标签信息至第一节点,标签信息中携带有标签值以及标签的层数n,标签信息用于指示第一节点根据标签信息封装标签值为标签信息中的标签值的n层标签。

第三方面,提供了一种基于标签转发的业务处理装置,所述业务处理装置包括至少一个单元,该至少一个单元用于实现上述第一方面中所提供的基于标签转发的业务处理方法。

第四方面,提供了一种基于标签转发的业务处理装置,所述业务处理装置包括至少一个单元,该至少一个单元用于实现上述第二方面中所提供的基于标签转发的业务处理方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的MPLS标签的示意图。

图2是本发明一个实施例提供的MPLS L3VPN的组网示意图。

图3是本发明一个实施例提供的本发明各个实施例所涉及的实施环境的示意图。

图4是本发明一个实施例提供的基于标签转发的业务处理装置的结构示意图。

图5是本发明一个实施例提供的基于标签转发的业务处理方法的方法流程图。

图6A是本发明另一个实施例提供的基于标签转发的业务处理方法的方法流程图。

图6B是本发明另一实施例提供的初始化消息中的可选参数的格式的示意图。

图6C是本发明另一个实施例提供的Repeat Label TLV的一种格式的示意图。

图6D是本发明另一个实施例提供的Repeat Label Element的格式的示意图。

图6E是本发明另一个实施例提供的业务处理方法中节点B提取各层标签中的优先级信息的方法流程图。

图7A是本发明一个实施例提供的Repeat Label Request对象的格式的示意图。

图7B是本发明一个实施例提供的无标签范围的Repeat Label请求对象的格式的示意图。

图7C是本发明一个实施例提供的ATM标签范围的Repeat Label请求对象格式的示意图。

图7D是本发明一个实施例提供的帧中继标签范围的Repeat Label请求对象的格式的示意图。

图7E是本发明一个实施例提供的Repeat Label对象的格式的示意图。

图8是本发明一个实施例提供的基于标签转发的业务处理装置的结构示意图。

图9是本发明另一实施例提供的基于标签转发的业务处理装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先,为了便于描述,先对MPLS标签的结构做简单介绍。

MPLS标签的标签长度为4字节,其结构如图1所示,标签共有标签值域、优先级域、栈底域和生存期字段4个域。其中:

标签值域Label:标签值字段,长度为20bit,用于标识一个转发路径。

优先级域EXP:优先级字段,长度为3bit,用以表示0至7的报文优先级字段。

栈底域S:栈底,长度为1bit,MPLS支持多重标签,值为1时表示最底层标签。

生存期字段TTL:长度为8bit,用于防止环路。

MPLS支持MPLS L2VPN(Virtual Private Network,虚拟专用网络)和MPLS L3VPN技术,且下述各个实施例所述的基于标签转发的业务处理方法既可以用于MPLS L2VPN中也可以用于MPLS L3VPN。本实施例以用于MPLS L3VPN来举例。请参考图2,其示出了一种可能的MPLS L3VPN组网方式。

MPLS L3VPN组网包括三个组成部分:用户边缘(英文:Customer Edge;简称:CE)设备、运营商边缘(英文:Provider Edge;简称:PE)设备和运营商(英文:Provider;简称:P)设备。

CE设备:可以是路由器或交换机,也可以是一台主机。CE无需支持MPLS。

PE设备:是服务提供商网络的边缘设备,与用户的CE进行通信。可选的,该PE设备可以为路由器。在MPLS网络中,对VPN的所有处理都发生在PE上,并且通常要求PE具备封装与解封装能力。

P设备:服务提供商网络中的骨干路由器,与PE进行通信,要求具备MPLS转发能力。

另外,请参考图3,其示出了本发明各个实施例所涉及的一种可能的实现场景的示意图。如图3所示,该实施场景中包括节点A、节点B和节点C。其中,节点A为PE节点、节点B为P节点、节点C为PE节点。

请参考图4,其示出了本发明一个示例性实施例提供的基于标签转发的业务处理装置的结构示意图。该业务处理装置400包括:处理器411、通信总线412、存储器413以及通信接口414。

处理器411可以包括一个或者一个以上中央处理单元(英文:Central Processing Unit,缩写:CPU)。处理器411通过运行软件程序以及模块,从而执行各种功能应用以及业务数据处理。

通信接口414可以包含有线网络接口,比如以太网接口,也可以包含无线网络接口。该通信接口414用于接收上级/下级设备发送的数据包,和/或,将数据包转发至上级/下级设备。

存储器413和通信接口414分别通过通信总线412与处理器411相连。

存储器413可用于存储软件程序以及模块,该软件程序以及模块由处理器21执行。此外,该存储器413中还可以存储各类业务数据和用户数据。

在本发明实施例中,存储器413中存储操作系统481、获取模块482、封装模块483、发送模块484和至少一个其它功能所需的应用程序485,处理器411通过调用存储器413中存储的各个模块来实现下述实施例中有关第一节点侧的各个步骤。

可选的,存储器413中存储的获取模块482、封装模块483、发送模块484,还可以替换为接收模块、提取模块和处理模块,处理器411通过调用存储的各个模块来实现下述实施例中有关第二节点侧的各个步骤。

请参考图5,其示了本发明一个实施例提供的基于标签转发的业务处理方法的方法流程图。如图5所示,该业务处理方法可以包括:

步骤501,第一节点获取第一业务报文所对应的逐跳行为(英文:Per Hop Behavior;简称:PHB)类型。

其中,PHB类型可以包括:默认转发(英文:Default Forwarding;简称DF)、确保转发(英文:Assured Forwarding;简称:AF)、迅速转发(英文:Expedited Forwarding;简称EF)和类型选择型(英文:Class Selector;简称:CS)。其中,在AF区分服务中,定义了4级AF,也即AF1、AF2、AF3和AF4,且每级AF定义了3个等级,也即在AF中包含了12个PHB;CS包含了CS1、CS2、CS3、CS4、CS5、CS6、CS7和CS8 8种类型,也即CS中包含了8个PHB。

步骤502,第一节点根据第一映射关系获取PHB类型所对应的第一优先级信息。

第一映射关系包括由PHB类型指向第一优先级信息的对应关系,第一优先级信息的长度为m位,m为大于3的整数。通常情况下,第一优先级信息的位数为3的倍数。

步骤503,第一节点根据标签控制协议获取标签信息,标签信息包括标签的层数n和用于表示由第一节点指向第二节点的报文转发路径的标签值,n为大于1的整数。

标签控制协议可以为标签分发协议(英文:Label Distribution Protocol;简称:LDP)、基于流量工程扩展的资源预留协议(英文:Resource ReSerVation Protocol-Traffic Engineering;简称:RSVP-TE)、路径计算单元增强(path computation element+,PCE+)协议或者开放流OpenFlow协议。

步骤504,第一节点根据第一优先级信息以及标签信息,为第一业务报文封装n层标签,得到第二业务报文。

其中,n层标签用于携带第一优先级信息,且n层标签的每层标签携带标签信息中的标签值。具体的,每层标签的标签值为标签信息中的标签值。

第一业务报文可能是用户侧发送的互联网协议(英文:Internet Protocol;简称:IP)报文,也有可能是上游节点也即第三节点发送的带有N层标签的业务报文,N为正整数。可选的,若第一业务报文为带有N层标签的报文,则第一节点先解封第一业务报文中的N层标签,然后再为解封后的第一业务报文封装n层标签,本实施例在此不再赘述。

步骤505,第一节点根据标签值向第二节点发送第二业务报文,第二业务报文用于指示第二节点根据n层标签中携带的第一优先级信息对第二业务报文进行处理。

步骤506,第二节点接收第一节点发送的第二业务报文。

其中,第二业务报文是第一节点为接收到的第一业务报文封装n层标签之后发送的报文,n层标签中携带有第一优先级信息,第一优先级信息的长度为m位,m为大于3的整数,n为大于1的整数。m通常为3的倍数。

步骤507,第二节点提取n层标签中携带的第一优先级信息。

步骤508,第二节点根据第一优先级信息对第二业务报文进行处理。

综上所述,本实施例提供的基于标签转发的业务处理方法,通过获取m位的第二优先级信息,并根据该第二优先级信息封装n层标签,n为大于1的整数,使得下游节点可以根据该至少两层标签中携带的第二优先级信息对业务进行处理。其中,由于m为大于3的整数,所以第二优先级信息所能表示的优先级的个数为2m,解决了现有技术中只能支持8个优先级,可能无法满足实际需求的问题;达到了可以提供2m个优先级,也即增加了优先级个数的效果。

本实施例通过使用n层标签来携带超过3位的优先级信息,进而提供超过8个优先级,解决了现有技术为每个LSP的每个优先级分配一个标签时,由于标签的总量固定,节点支持的LSP的数量为标签总量除以优先级的个数,所以该方法会降低LSP的个数的问题。

同时,通过使用n层标签来携带超过3位的优先级信息,每层标签的标签值为获取到的标签信息中的标签值,进而提供超过8个优先级,解决了现有技术中预留部分标签值来表示优先级时,由于标签值的总量固定而导致在预留部分标签值后,剩余的标签值可能无法满足节点需求的问题。同时,该方法也解决了现有技术中通过全局标签来封装表示优先级的标签值之后,每次报文转发时节点均需要读到标签栈底才能得到需要的标签值,报文转发的性能较差的问题。

上述实施例中有关第一节点侧的步骤可以单独实现为第一节点侧的基于标签转发的业务处理方法,有关第二节点侧的步骤可以单独实现成为第二节点侧的基于标签转发的业务处理方法。

需要说明的一点是,由于第一业务报文可能是用户侧发送的IP报文,也有可能是上游节点也即第三节点发送的带有N层标签的业务报文,并且,当第一业务报文为用户侧发送的IP报文时,结合图3所示的实施场景,第一节点为节点A,第二节点为节点B;而当第一业务报文为带有N层标签的业务报文时,结合图3所示的实施场景,第一节点为节点B,第二节点为节点C。下述将在不同实施例中分别对上述两种情况进行说明。

需要说明的另一点是,上述实施例所说的标签控制协议可以为LDP、RSVP-TE、PCE+协议或者OpenFlow协议。所以,下述也将在不同实施例中对标签控制协议为上述各种协议时分别进行介绍。

请参考图6A,其示出了本发明另一实施例提供的基于标签转发的业务处理方法的方法流程图。本实施例以第一节点为节点A,第二节点为节点B,且标签控制协议为LDP来举例说明。如图6A所示,该业务处理方法可以包括:

步骤601,节点A发送标签请求消息至节点B。

在节点A和节点B支持Repeat Label TLV(Type-length-value,类型-长度-值)能力时,节点A可以发送Label Request至节点B。

其中,在节点A发送Label Request至节点B之前,节点B可以检测节点B是否支持多层标签,并通过与节点A进行LDP会话协商检测节点A是否支持多层标签。可选的,节点A和节点B可以执行LDP会话协商,在协商结果为节点A和节点B支持Repeat Label TLV时节点A发送Label Request至节点B。具体的,各个节点向相邻节点发送初始化请求消息进而建立LDP会话,该初始化请求消息的可选参数中携带有表示自身支持多层标签的参数。比如,请参考图6B,其示出了增加的该可选参数一种可能的格式。其中,Repeat Label Params(0x0503)表示可选参数的类型,Length表示Length之后字段的长度,R表示是否具备多层标签能力(Repeat Label Capabilitie),R为1表示支持多层标签,为0表示不支持多层标签。可选的,初始化请求消息中未携带R也可以同样表示不支持多层标签。

本实施例以节点A和节点B先进行能力协商,然后节点A发送标签请求消息至节点B来举例,可选的,在一些可能的应用场景中,节点A还可以先发送标签请求消息至节点B,然后两者再进行能力协商,本实施例对此并不做限定。

步骤602,节点B向节点A应答标签信息。

在节点B接收到Label Request之后,说明节点A和节点B均支持Repeat Label TLV,此时,节点B可以向节点A应答Label Mapping。其中,Label Mapping中携带有标签信息,标签信息中携带有标签值以及标签的层数n。且,该标签信息用于指示节点A根据该标签信息封装标签值为该标签信息中的标签值的n层标签。

可选的,标签信息中的标签值用于表示由节点A向节点B发送业务报文时的转发路径。该标签值可以为设计人员预先存储在节点B中的,也可以是节点B根据预设规则分配的,本实施例对此并不做限定。n为大于1的整数,且n为设计人员预先存储在节点B中的。

可选地,在节点B返回Label Mapping至节点A时,节点B可以将Label Mapping中规定的Generic Label TLV替换为Repeat Label TLV,并在Repeat Label TLV中携带标签的层数以及标签的标签值。

其中,Repeat Label TLV可以为根据协议标准定义的TLV格式。比如,请参考图6C,其示出了一种可能的格式,其中,U表示Unknow TLV bit,U为0时,接收该Repeat Label TLV的节点无法识别该TLV时发送notification,并忽略此消息,U为1时,表示忽略此TLV;F表示Forward unknown TLV bit,其仅在U设置为1时生效,F为0时表示转发报文时该TLV将被忽略,F为1时表示转发报文时该TLV将随着报文一起转发;Repeat-Label表示节点根据该字段识别不同的报文,length表示Repeat Label Element的长度,Repeat Label Element中携带有标签值和标签的层数。可选的,请参考图6D,其示出了Repeat Label Element的示意图,在图6D中,Repeat Label Element中的Label表示标签值,rsv为预留字段,count表示标签的层数。并且,其中标签值可以占用20bit,而标签层数占用8bit。实际实现时,为了标准化实现,Repeat Label TLV可以为向互联网数字分配机构(英文:The Internet Assigned Numbers Authority;简称:IANA)申请的格式,本实施例对此并不做限定。

步骤603,节点A接收节点B返回的标签信息,标签信息中携带有标签值以及标签层数n。

节点A接收到标签信息之后,节点A可以根据该标签信息生成下行标签转发表(Outsegment)。可选地,节点A根据标签信息生成包含标签层数、标签值以及表示是否需要封装多层标签的标记信息的下行标签转发表。比如,节点A检测到标签信息中的标签层数为2,也即节点B为节点A分配的标签为2层标签时,节点A可以生成包含标签层数为2、标签值为‘10110101110010110011’以及用于表示需要封装2层标签的标记信息‘TRUE’的下行标签转发表。

需要说明的是,下行标签转发表中还可以包括其他内容,本实施例在此只介绍与本实施例有关的内容,对与本实施例无关的其他内容并不做限定。

步骤604,节点A接收用户侧发送的IP报文,IP报文的报文头中携带有第二优先级信息。

结合图2和图3,当节点A上游的CE发送IP报文之后,节点A可以相应的接收到该IP报文。其中,IP报文的报文头中可以携带有第二优先级信息。第二优先级信息包括m位,m为大于3的整数。比如,IP报文头中携带有差分服务代码点(英文:Differentiated Services Code Point;简称DSCP),该DSCP即为第二优先级信息。

其中,本实施例只是以使用DSCP作为第二优先级信息来举例,可选地,根据协议的不同,该第二优先级信息还可以通过其他信息表示,本实施例对此并不做限定,并且,下述以第二优先级信息即为IP报文中的DSCP来举例说明。

步骤605,节点A根据第二映射关系获取第二优先级信息所对应的PHB类型。

在节点A接收到IP报文之后,节点A可以获取IP报文中携带的DSCP,并根据DSCP→PHB类型的第二映射关系,查询获取到的DSCP所对应的PHB类型。其中,第二映射关系包括由第二优先级信息指向PHB类型的对应关系,该第二映射关系为节点A中预先存储的对应关系;PHB类型可以包括:DF、AF、EF和CS。其中,在AF区分服务中,定义了4级AF,也即AF1、AF2、AF3和AF4,且每级AF定义了3个等级,也即在AF中包含了12个PHB;CS包含了CS1、CS2、CS3、CS4、CS5、CS6、CS7和CS8 8种类型,也即CS中包含了8个PHB。

由于PHB类型可以包括22种,因此,在第二优先级信息所能表示的优先级的个数未超过22种时,第二映射关系可以为第二优先级信息与每种PHB类型之间的对应关系;而在第二优先级信息所能表示的优先级的个数超过22种时,由于已有的PHB类型已经不能满足需求,因此,可以在节点A中增加“服务等级组”功能,也即增加DSCP指向PHB类型的第二映射关系为DSCP与服务等级组和服务等级之间的对应关系。可选的,第二映射关系中还可以包括DSCP与Color之间的对应关系,Color用于表示报文丢弃优先级,其可以包括Geeen、Red、Yellow,且不同颜色表示不同丢弃优先级。

以第二优先级信息为DSCP且为6bit来举例,由于第二优先级信息可以表示64个优先级,因此增加的该服务等级组包括8个,组索引为0-7,7表示最高服务级组,0表示最低服务等级组,每个服务等级组包括8个服务等级,对应8个DSCP值,每个DSCP对应于一种颜色。比如,请参考表1,其示出了第二映射关系的一种可能表示。

表1

根据上述对应关系,节点A即可查询得到DSCP所对应的服务等级组以及服务等级。

需要说明的一点是,表中的Color用于表示丢弃报文的优先级。其可以包括Geeen、Red、Yellow。比如,以每种颜色代表的优先级为Geeen>Red>Yellow来举例,在节点A接收到两个IP报文,该两个IP报文中的DSCP所对应的服务等级组以及服务等级均相同,且其所对应的Color分别为Geeen和Yellow,则Geeen所对应的IP报文的优先级高于Yellow所对应的IP报文的优先级。另外,上表只是以Color均为Geeen来举例,实际实现时,还可以为Red或者Yellow;并且上述只是以每种DSCP对应的Color相同为例,实际实现时,不同DSCP所对应的Color也可以不同。并且,Color为可选项。

需要说明的另一点是,本实施例只是以第二映射关系为上述映射关系为例,可选的,其还可以为其他实现方式,只需表示出不同DSCP对应不同的优先级即可。

步骤606,节点A根据PHB类型对IP报文进行处理。

节点A可以根据PHB类型对IP报文进行层次化服务质量(英文:Hierarchical Quality of Service;简称:HQOS)调度。具体的,节点A根据PHB类型创建HQOS调度树,进而实现HQOS调度。比如,当某个端口用户定制队列(英文:Customized Queue;简称:CQ)拥塞时,根据虚拟接口(英文:Virtual Interface;简称:VI)调度器优先级对业务进行丢包,如果VI优先级相同再根据CQ优先级丢包。

步骤607,节点A根据第一映射关系获取PHB类型所对应的第一优先级信息。

在节点A执行HQOS调度之后,节点A可以根据PHB类型→第一优先级信息之间的第一映射关系,获取PHB类型所对应的第一优先级信息。

其中,第一映射关系包括由PHB类型指向第二优先级信息的对应关系,第一映射关系也是节点A预先存储的对应关系。并且,实际实现时,第一映射关系与第二映射关系可以相同也可以不同。第一优先级信息包括m位,m为大于3的整数,实施例也以第一优先级信息为6bit来举例。

步骤608,节点A根据第一优先级信息以及标签信息,为IP报文封装n层标签,得到第二业务报文;n层标签用于携带第一优先级信息,且n层标签中的每层标签携带标签信息中的标签值。

在节点A获取到第一优先级信息以及标签信息之后,在封装公网LSP标签时,节点A可以根据第一优先级信息以及标签信息为IP报文封装n层标签。其中,每层标签的标签值均为标签信息中的标签值,每层标签的优先级域中携带有第一优先级信息中的部分信息。可选地,节点A在检测到下行标签转发表中的标记信息为‘TRUE’时,说明需要封装多层标签,此时节点A可以为IP报文封装n层标签。

具体的,n层标签的每层标签携带i位优先级信息,i为正整数,n层标签用于携带第一优先级信息,包括:

(1)、若m/i=n,则按照预设封装规则将m位中的每i位携带在n层标签的每层标签的优先级域中。

在m/i=n时,说明m位第一优先级信息可以刚好携带在n层标签的优先级域中,此时,节点A可以按照预设封装规则将m位中的每i位携带在一层标签的优先级域中。其中,预设封装规则中规定将m位中的哪i位携带在n层标签中的哪层标签的优先级域中。可选的,预设封装规则还可以为按照预设随机算法随机的将m位中的i位携带在每层标签的优先级域中。

以m=6,i=3来举例,当预设封装规则为将6bit中的前3bit按序携带在第1层标签的EXP字段中,将6bit中的后3bit按序携带在第2层标签的EXP字段中时,节点A将按照该预设封装规则封装得到在EXP字段中携带有第一优先级信息中的前3bit的第1层标签,以及在EXP字段中携带后3bit的2层标签,如第一优先级信息为‘110100’,则封装得到携带有‘110’的第1层标签以及携带有‘100’的第2层标签;类似的,当预设封装规则为将6bit中的第1位、第3位和第4位按序携带在第1层标签的EXP字段中,而将6bit中的第2位、第5位和第6位按序携带在第2层标签的EXP字段中时,节点A可以根据该预设封装规则封装对应的2层标签,如第一优先级信息为‘110100’,则封装得到携带有‘101’的第1层标签以及携带有‘100’的第2层标签。

(2)、若(m+j)/i=n,则按照预设封装规则将m位中的i-j位携带在n层标签的第k层标签的优先级域中,并将剩余位中的每i位携带在n层标签的其他各层标签的优先级域中,0<j<i,0<k≤n。

而若(m+j)/i=n,则说明m位并不能填满n层标签的优先级域,此时,节点A可以按照预设封装规则将m位中的i-j位携带在第k层标签的优先级域中,并将剩余位中的每i位携带在n层标签的其他各层标签的优先级域中。其中,第k层中在携带i-j位的同时,还可以携带j位无效位,且j位无效位可以携带在第k层中的预设位置,如携带在高j位;k可以为指定的数值,也可以是节点A随机选择的数值,本实施例对此并不做限定。

以获取到的第一优先级信息为5bit,标签层数为2来举例,由于2层标签可以携带6bit的优先级信息,所以此时,节点A可以使用1个无效位比如‘0’来补位。节点A可以按照预设封装规则将5bit中的第1位、第4位以及1个无效位‘0’封装在第1层标签,且无效位‘0’在最高位;将第2位、第3位以及第5位携带在第2层。比如,以第一优先级信息为‘10111’为例,节点A可以封装得到携带‘010’的第1层标签,以及携带‘111’的第2层标签。

需要说明的是,节点A在为不同IP报文封装标签时,其使用的预设封装规则可以相同,也可以不同,本实施例对此并不做限定。

步骤609,节点A根据标签值向节点B发送第二业务报文。

n层标签中的每层标签的标签值用于表示节点A指向节点B的转发路径,所以节点A在得到第二业务报文之后,可以依据标签值向节点B发送该第二业务报文。该第二业务报文用于指示节点B根据n层标签中携带的第一优先级信息对第二业务报文进行处理。

步骤610,节点B接收节点A发送的第二业务报文。

步骤611,节点B提取n层标签中每层标签的优先级域中携带的优先级信息。

节点B接收到第二业务报文之后,提取n层标签中每层标签的EXP字段中携带的优先级信息。具体的,请参考图6E,本步骤可以包括:

步骤611a,节点B生成上行标签转发表。

在节点B反馈标签信息至节点A时,节点B可以生成上行标签转发表(Insegment)。其中,该上行标签转发表的索引为标签值,上行标签转发表中包括标签层数及表示为上游节点也即节点A分配的标签是否为多层标签的标记信息。比如,节点B为节点A分配的标签为2层标签,且标签值为‘10110101110010110011’,则节点B可以生成索引为标签值10110101110010110011’,且包含层数为2、标记为‘TRUE’的上行标签转发表。

需要说明的是,上行标签转发表中还可能会包括其他内容,本实施例只对与本实施例有关的内容进行介绍,对其实际包括的内容并不做限定。并且,实际实现时,生成上行标签转发表的步骤可以为预先执行的步骤,本实施例对此并不做限定。

步骤611b,节点B根据n层标签的最外层标签的标签值在上行标签转发表中查询标签的层数n和标记信息。

在节点B接收到第二业务报文之后,节点B可以以第二业务报文中的n层标签的最外层标签的标签值作为索引查询Insegment,获取Insegment中的标签的层数n和标记信息。比如,获取到的标签的层数为2,标记信息为“TRUE”。

可选地,节点B还可以先查询Insegment中的标记信息是否为‘TRUE’,在检测结果为是时,读取标签的层数,本实施例对此并不做限定。

步骤610c,节点B在标记信息表示为节点A分配的标签是多层标签时,获取n层标签中其它各层标签的标签值。

在获取到的标记信息表示为节点A分配的标签是多层标签时,说明接收到的节点A发送的第二业务报文是带有多层标签的业务报文,此时为了后续步骤的执行节点B可以继续解析其他各层的标签的标签值。

需要说明的是,若标记信息表示为节点A分配的标签是单层标签,则此时,节点B执行现有流程,本实施例在此不再赘述。

步骤611d,节点B检测n层标签中每层标签的标签值是否相同。

步骤610e,节点B若检测结果为相同,则提取各层标签的优先级域中携带的优先级信息。

如果检测结果为相同,则说明第二业务报文中携带的标签为多层标签,此时,节点B可以提取各层标签的优先级域中携带的优先级信息。可选地,节点B可以提取每层标签的EXP字段中携带的优先级信息。

而若检测结果为不同,则节点B执行现有流程,本实施例在此不再赘述。

步骤612,节点B根据提取到的各个优先级信息以及每个优先级信息所对应的预设排序确定第一优先级信息。

预设排序包括:每个优先级信息与其他优先级信息之间的排序,或者,每个优先级信息中的每位优先级信息在第一优先级信息中的排序。该预设排序为与节点A封装n层标签时使用的预设封装规则相对应的排序。

比如,预设封装规则为将6bit中的前3bit按序携带在第1层标签的EXP字段中,将6bit中的后3bit按序携带在第2层标签的EXP字段中,则预设排序为第1层标签中携带的优先级信息、第2层标签中携带的优先级信息。又比如,预设封装规则为将6bit中的第1位、第3位和第4位按序携带在第1层标签的EXP字段中,而将6bit中的第2位、第5位和第6位按序携带在第2层标签的EXP字段中,则预设排序为第1层标签中携带的优先级信息中的三位优先级信息在第一优先级信息中排第1位、第3位和第4位,第2层标签中携带的优先级信息中的三位优先级信息在第一优先级信息中排第2位、第5位和第6位。

节点B提取到各层标签中的优先级信息之后,根据各个优先级信息以及预设排序组合确定出第一优先级信息。

比如,预设排序为第1层标签中携带的优先级信息、第2层标签中携带的优先级信息,提取到的2层标签中的优先级信息分别为‘110’和‘100’,则节点B根据预设排序确定的第一优先级信息为‘110100’。又比如,预设排序为第1层标签中携带的优先级信息中的三位优先级信息在第一优先级信息中排第1位、第3位和第4位,第2层标签中携带的优先级信息中的三位优先级信息在第一优先级信息中排第2位、第5位和第6位,提取到的两层标签中携带的优先级信息为‘101’和‘100’,则节点B根据预设排序确定的第一优先级信息为‘110100’。

需要说明的是,若节点A为不同IP报文封装标签时使用的预设封装规则相同,则预设排序可以为设计人员根据该预设封装规则预先存储在节点B中的排序;而若节点A为不同IP报文封装标签时,使用的预设封装规则不同,则为了使得节点B可以根据提取到的各层标签中携带的优先级信息组合确定出第一优先级信息,在节点B执行本步骤之前,节点A还需要发送封装n层标签时的预设封装规则所对应的预设排序至节点B,相应的,节点B接收节点A发送的该预设排序,本实施例在此不再赘述。

步骤613,节点B根据第一优先级信息对第二业务报文进行处理。

可选的,本步骤可以包括:

第一,根据第一映射关系获取第一优先级信息所对应的PHB类型,第一映射关系包括由第一优先级信息指向PHB类型的对应关系。

本步骤与步骤605类似,在此不再赘述。

第二,根据获取到的PHB类型对第二业务报文进行处理。

本步骤与步骤606类似,在此不再赘述。

在节点B对第二业务报文进行处理之后,与节点A类似的是,节点B可以为解封n层标签之后的第二业务报文封装N层标签,并发送得到的第三业务报文至节点C,节点C接收到第三业务报文之后,采用与节点B类似的方法进行处理,本实施例在此不再赘述。

综上所述,本实施例提供的基于标签转发的业务处理方法,通过获取第一业务报文所对应的PHB类型,进而获取PHB类型所对应的m位的第一优先级信息,为第一业务报文封装携带有该第一优先级信息的n层标签,得到第二业务报文,发送该第二业务报文至第二节点,使得第二节点可以根据第二业务报文中的n层标签中携带的m位的第一优先级信息对第二业务报文进行处理;由于m为大于3的整数,且第一优先级信息表示的优先级的个数为2m,大于8,所以上述方法可以提供超过8个的优先级,解决了现有技术中由于提供的优先级的个数有限,所以对业务的处理较为局限的问题;达到了可以提供更多的优先级,进而满足业务处理需求的效果。

本实施例通过使用n层标签来携带超过3位的优先级信息,进而提供超过8个优先级,解决了现有技术为每个LSP的每个优先级分配一个标签时,由于标签的总量固定,节点支持的LSP的数量为标签总量除以优先级的个数,所以该方法会降低LSP的个数的问题。

同时,通过使用n层标签来携带超过3位的优先级信息,每层标签的标签值为获取到的标签信息中的标签值,进而提供超过8个优先级,解决了现有技术中预留部分标签值来表示优先级时,由于标签值的总量固定而导致在预留部分标签值后,剩余的标签值可能无法满足节点需求的问题。同时,该方法也解决了现有技术中通过全局标签来封装表示优先级的标签值之后,每次报文转发时节点均需要读到标签栈底才能得到需要的标签值,报文转发的性能较差的问题。

需要补充说明的是,上述实施例以第一节点为节点A,且第一业务报文为IP报文来举例,可选的,当第一节点为节点B时,节点B接收到的第一业务报文即为节点A发送的带有n层标签的业务报文,此时节点B获取第一业务报文所对应的PHB类型的步骤与步骤611至步骤613中的实现类似,本实施例在此不再赘述。

另外,上述实施例以标签控制协议为LDP来举例,可选地,在标签控制协议为RSVP-TE时,其业务处理方法与上述实施例类似,不同的是,多层标签的分发机制有所区别。

具体的,依旧以第一节点为节点A,第二节点为节点B来举例,在节点A发送标签请求消息至节点B时,节点A通过在RSVP-TE的Path消息中加入新定义的Repeat Label Request对象,并通过该Repeat Label Request对象向节点B请求标签。

请参考图7A,其示出了新定义的Repeat Label Request对象的格式。其中:

Length:表示Repeat Label Request对象的长度。

Class-Num:对象类型标识符,唯一代表一个对象。

C-Type:区分三层协议类型,包括IPv4、IPv7。

Object contents:对象内容。

新增两种Class-Num定义。

Repeat Label请求对象(Repeat Label Request)class=11,对象的数据格式定义同RFC3209中的Label Request对象格式定义。实际实现时,为了标准化实现,Label Request对象格式可以为向IANA申请的格式。

(1)、无标签范围的Repeat Label请求对象。

Class=11,C_Type=1。如图7B,其示出了无标签范围的Repeat Label请求对象的格式的示意图。其中,Reserved和L3PID定义与RFC3209类似。并且:Reserved为保留字段,必须为0,接收者忽略此字段。L3PID表示3层协议类型,使用标准以太类型定义。

(2)、有标签范围的Repeat Label请求对象。

可选的,其可以包括ATM标签范围的Repeat Label请求对象以及帧中继标签范围的Repeat Label请求对象。

对于上述第一种,如图7C,其示出了ATM标签范围的Repeat Label请求对象格式。其中,Class=11,C_Type=2。格式中的各个字段的具体含义如下:

Reserved保留字段,必须为0,接收者忽略此字段。

L3PID表示3层协议类型,使用标准以太类型定义。

M设置为1表示支持数据平面合并。

Minimum虚路径标识符(英文:Virtual Path Identifier;简称:VPI)表示VPI最小值。

Minimum虚通道标识符(英文:Virtual Channel Identifier;简称:VCI)表示VCI最小值。

Maximum VPI表示VPI最大值。

Maximum VCI表示VCI最大值。

对于上述第二种,请参考图7D,其示出了帧中继标签范围的Repeat Label请求对象的格式。其中,Class=11,C_Type=3。各个字段的含义如下:

Reserved为保留字段,必须为0,接收者忽略此字段。

L3PID表示3层协议类型,使用标准以太类型定义。

DLI表示数据链路连接标识(英文:Data Link Connection Identifier;简称:DLCI)的位长度。0表示10bits,2表示23bits。

Minimum DLCI为DLCI最小值。

Maximum DLCI为DLCI最大值。

需要说明的是,节点B接收到节点A发送的Repeat Label Request对象之后,若不支持Repeat Label Request对象,则向节点A返回携带有“未知对象类型”的PathRrr消息,节点A使用Label Request对象重新预留标签。而若节点B支持Repeat Label Request对象,则节点B返回Repeat Label对象至节点A。其中,Repeat Label对象中携带有层数以及标签值。

具体的,请参考图7E,其示出了Repeat Label对象的格式的示意图。图中,定义Repeat Label对象class=12。各个字段的含义如下:

Label标签值,占用20bits。

Rev为预留字段。

Count表示标签的层数。本实例中设置为2。

需要说明的是,如果上游节点也即节点A不支持Repeat Label对象,向下游节点也即节点B返回一个携带“未知对象类型”的ResvRrr消息。

至此,节点A即可获取到标签信息。同理,节点B也可以采用类似方法获取标签信息,本实施例在此不再赘述。

在标签控制协议为PCE+时,由于PCE+协议是基于RSVP-TE协议的集中式网络管理方案,所以上述描述的RSVP-TE分发标签的实现方案可以在PCE+中继承实施。

而在标签控制协议为OpenFlow协议时,基于多层标签的设计方法,可以通过在控制器中定义控制流表,节点根据控制器发送的控制流表来实现,也即节点通过控制流表来获取标签信息。

可选地,仍然以封装2层标签来举例,在图3所示的实施例中,控制器在节点A上定义上行方向控制流表,匹配用户报文特征,指令集为根据IP报文DSCP执行PHB,入HQOS队列;封装VPN标签、封装2层LSP标签。在封装2层LSP标签时,外层标签exp字段存储DSCP高3bit,内层标签存储DSCP低3bit。

控制器在节点B定义控制流表,识别2层标签的标签报文信息,得到外层标签值A,次外层标签值A。动作集为提取外层标签exp和次外层标签exp得到DSCP值,执行PHB,入HQOS队列,执行交换标签动作封装新的2层标签。

控制器在节点C定义下行方向控制流表,识别2层标签的标签报文信息,得到外层标签值A,次外层标签值A。动作集为弹出标签,根据内层标签继续查表,根据外层标签exp和次外层标签exp得到DSCP值,执行PHB,入HQOS队列。

其中,HQOS的配置与调度与LDP协议类似,本实施例在此不再赘述。

请参考图8,其示出了本发明一个实施例提供的基于标签转发的业务处理装置,本实施例以该业务处理装置用于第一节点中来举例。如图8所示,该业务处理装置可以包括:获取单元810、封装单元820和发送单元830。

获取单元810,用于获取第一业务报文所对应的逐跳行为PHB类型;

所述获取单元810,还用于根据第一映射关系获取所述PHB类型所对应的第一优先级信息,所述第一映射关系包括由所述PHB类型指向所述第一优先级信息的对应关系,所述第一优先级信息的长度为m位,m为大于3的整数;

所述获取单元810,还用于根据标签控制协议获取标签信息,所述标签信息包括标签的层数n和用于表示由所述第一节点指向第二节点的报文转发路径的标签值,n为大于1的整数;

封装单元820,用于根据所述第一优先级信息以及所述标签信息,为所述第一业务报文封装n层标签,得到第二业务报文;其中,所述n层标签用于携带所述第一优先级信息,且所述n层标签的每层标签携带所述标签信息中的所述标签值;

发送单元830,用于根据所述标签值向所述第二节点发送所述第二业务报文,所述第二业务报文用于指示所述第二节点根据所述n层标签中携带的所述第一优先级信息对所述第二业务报文进行处理。

可选的,所述n层标签的每层标签携带i位优先级信息,i为正整数;

所述n层标签用于携带所述第一优先级信息,包括:

若m/i=n,则按照预设封装规则将所述m位中的每i位封装在所述n层标签的每层标签的优先级域中;

若(m+j)/i=n,则按照所述预设封装规则将所述m位中的i-j位封装在所述n层标签的第k层标签的优先级域中,并将剩余位中的每i位携带在所述n层标签的其他各层标签的优先级域中;0<j<i,0<k≤n。

可选的,所述获取单元810,还用于:

若所述第一业务报文为用户侧发送的互联网协议IP报文,则提取所述IP报文的报文头中携带的所述第二优先级信息;若所述第一业务报文为第三节点发送的带有N层标签的业务报文,则提取所述N层标签中携带的所述第二优先级信息,N=n;

根据第二映射关系获取所述第二优先级信息所对应的所述PHB类型,所述第二映射关系包括由所述第二优先级信息指向所述PHB类型的对应关系。

可选的,所述获取单元810,还用于:

提取所述N层标签中每层标签的优先级域中携带的优先级信息;

根据提取到的各个优先级信息以及每个优先级信息所对应的预设排序确定所述第二优先级信息;所述预设排序包括:每个优先级信息与其他优先级信息之间的排序,或者,每个优先级信息中的每位优先级信息在所述第二优先级信息中的排序。

可选的,所述获取单元810,还用于:

生成上行标签转发表,所述上行标签转发表中包括为所述第三节点分配的标签的层数N和标记信息,所述标记信息用于表示为所述第三节点分配的标签是否为多层标签;

根据所述N层标签中的最外层标签的标签值在所述上行标签转发表中查询标签的层数N和标记信息;

在所述标记信息表示为所述第三节点分配的标签是多层标签时,获取所述N层标签中其它各层标签的标签值;

检测所述N层标签中每层标签的标签值是否相同;

若检测结果为相同,则提取各层标签的优先级域中携带的优先级信息。

可选的,所述装置还包括:处理单元840;

所述处理单元840,用于根据所述PHB类型对所述第一业务报文进行处理。

可选的,所述标签控制协议包括标签分发协议LDP、基于流量工程扩展的资源预留协议RSVP-TE或者路径计算单元增强PCE+协议;

所述发送单元830,还用于发送标签请求消息至所述第二节点;

所述获取单元810,还用于接收所述第二节点返回的所述标签信息,所述标签信息中携带有所述标签值以及所述标签的层数n,所述标签信息为所述第二节点在所述第一节点和所述第二节点均支持多层标签时向所述第一节点返回的信息。

可选的,所述标签控制协议包括开放流OpenFlow协议;

所述获取单元810,还用于:

接收控制器发送的控制流表;

从所述控制流表中获取所述标签信息。

综上所述,本实施例提供的基于标签转发的业务处理装置,通过获取第一业务报文所对应的PHB类型,进而获取PHB类型所对应的m位的第一优先级信息,为第一业务报文封装携带有该第一优先级信息的n层标签,得到第二业务报文,发送该第二业务报文至第二节点,使得第二节点可以根据第二业务报文中的n层标签中携带的m位的第一优先级信息对第二业务报文进行处理;由于m为大于3的整数,且第一优先级信息表示的优先级的个数为2m,大于8,所以上述方法可以提供超过8个的优先级,解决了现有技术中由于提供的优先级的个数有限,所以对业务的处理较为局限的问题;达到了可以提供更多的优先级,进而满足业务处理需求的效果。

本实施例通过使用n层标签来携带超过3位的优先级信息,进而提供超过8个优先级,解决了现有技术为每个LSP的每个优先级分配一个标签时,由于标签的总量固定,节点支持的LSP的数量为标签总量除以优先级的个数,所以该方法会降低LSP的个数的问题。

同时,通过使用n层标签来携带超过3位的优先级信息,每层标签的标签值为获取到的标签信息中的标签值,进而提供超过8个优先级,解决了现有技术中预留部分标签值来表示优先级时,由于标签值的总量固定而导致在预留部分标签值后,剩余的标签值可能无法满足节点需求的问题。同时,该方法也解决了现有技术中通过全局标签来封装表示优先级的标签值之后,每次报文转发时节点均需要读到标签栈底才能得到需要的标签值,报文转发的性能较差的问题。

请参考图9,其示出了本发明另一实施例提供的基于标签转发的业务处理装置的结构示意图。本实施例以该业务处理装置用于第二节点中来举例说明。如图9所示,该业务处理装置可以包括:接收单元910、提取单元920和处理单元930。

接收单元910,用于接收第一节点发送的第二业务报文,所述第二业务报文是所述第一节点为接收到的第一业务报文封装n层标签之后发送的报文,所述n层标签中携带有第一优先级信息,所述第一优先级信息的长度为m位,m为大于3的整数,n为大于1的整数;

提取单元920,用于提取所述n层标签中携带的所述第一优先级信息;

处理单元930,用于根据所述第一优先级信息对所述第二业务报文进行处理。

可选的,所述提取单元920,还用于:

提取所述n层标签中每层标签的优先级域中携带的优先级信息;

根据提取到的各个优先级信息以及每个优先级信息所对应的预设排序确定所述第一优先级信息;所述预设排序包括:每个优先级信息与其他优先级信息之间的排序,或者,每个优先级信息中的每位优先级信息在所述第一优先级信息中的排序。

可选的,所述提取单元920,还用于:

生成上行标签转发表,所述上行标签转发表中包括为所述第一节点分配的标签的层数n和标记信息,所述标记信息用于表示为所述第一节点分配的标签是否为多层标签;

根据所述n层标签中的最外层标签的标签值在所述上行标签转发表中查询标签的层数n和标记信息;

在所述标记信息表示为所述第一节点分配的标签是多层标签时,获取所述n层标签中其它各层标签的标签值;

检测所述n层标签中每层标签的标签值是否相同;

若检测结果为相同,则提取各层标签的优先级域中携带的优先级信息。

可选的,所述处理单元930,还用于

根据第一映射关系获取所述第一优先级信息所对应的PHB类型,所述第一映射关系包括由所述第一优先级信息指向所述PHB类型的对应关系;

根据获取到的所述PHB类型对所述第二业务报文进行处理。

可选的,所述装置还包括:

获取单元940,用于根据第二映射关系获取所述PHB类型所对应的第二优先级信息,所述第二映射关系包括由所述PHB类型指向所述第二优先级信息的对应关系;

所述获取单元940,还用于根据标签控制协议获取标签信息,所述标签信息包括标签的层数N和用于表示向第四节点的报文转发路径的标签值,N=n;

封装单元950,用于根据所述第二优先级信息以及所述标签信息,为解封所述n层标签之后的所述第二业务报文封装N层标签,得到第三业务报文;所述N层标签用于携带所述第二优先级信息,且所述N层标签的每层标签携带所述标签信息中的所述标签值;

发送单元960,用于根据所述标签值发送所述第三业务报文至所述第四节点,所述第三业务报文用于指示所述第四节点根据所述N层标签中携带的所述第二优先级信息对所述第三业务报文进行处理。

可选的,所述所述装置还包括:

所述接收单元910,还用于在接收第一节点发送的第二业务报文之前,接收所述第一节点发送的标签请求消息;

检测单元970,用于检测所述第二节点是否支持多层标签,且通过与所述第一节点进行能力协商检测所述第一节点是否支持多层标签;

返回单元980,用于在所述检测单元的检测结果为所述第一节点和所述第二节点均支持多层标签时,返回标签信息至所述第一节点,所述标签信息中携带有标签值以及标签的层数n,所述标签信息用于指示所述第一节点根据所述标签信息封装标签值为所述标签信息中的所述标签值的所述n层标签。

综上所述,本实施例提供的基于标签转发的业务处理装置,通过接收第一节点发送的第二业务报文,提取第二业务报文的n层标签中携带的m位的第一优先级信息,根据该m位的第一优先级信息对第二业务报文进行处理;其中,由于m为大于3的整数,且第一优先级信息所能表示的优先级的个数为2m,大于8,所以上述方法可以根据超过8个的优先级对第二业务报文进行处理,解决了现有技术中由于提供的优先级的个数有限,所以对业务的处理较为局限的问题;达到了可以提供更多的优先级,进而满足业务处理需求的效果。

本实施例通过使用n层标签来携带超过3位的优先级信息,进而提供超过8个优先级,解决了现有技术为每个LSP的每个优先级分配一个标签时,由于标签的总量固定,节点支持的LSP的数量为标签总量除以优先级的个数,所以该方法会降低LSP的个数的问题。

同时,通过使用n层标签来携带超过3位的优先级信息,每层标签的标签值为获取到的标签信息中的标签值,进而提供超过8个优先级,解决了现有技术中预留部分标签值来表示优先级时,由于标签值的总量固定而导致在预留部分标签值后,剩余的标签值可能无法满足节点需求的问题。同时,该方法也解决了现有技术中通过全局标签来封装表示优先级的标签值之后,每次报文转发时节点均需要读到标签栈底才能得到需要的标签值,报文转发的性能较差的问题。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1