用于MPLS网络的方法、网络系统及节点转让专利

申请号 : CN201980092218.5

文献号 : CN113439420B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 詹姆斯·N·吉查德宋浩宇洛奇·安德森

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

摘要 :

混合多协议标签交换(Multiprotocol Label Switching,MPLS)网络包括扩展头支持(extension header capable,EH capable)节点和扩展头非支持节点。第一EH支持节点接收下游节点的通告的能力。这些通告的能力指示该下游节点是否支持EH。该第一EH支持节点接收通过该MPLS网络待传输至该下游节点的报文,确定该报文是否包括扩展头(extension header,EH)。在确定该下游节点的通告的能力指示该下游节点支持EH且确定该报文中不包括该EH后,该第一EH支持节点在该报文的MPLS标签栈中插入EH标签。

权利要求 :

1.一种用于多协议标签交换(Multiprotocol Label Switching,MPLS)网络的方法,该网络支持多个网内服务,该网络包括扩展头支持(extension header capable,EH capable)节点和扩展头非支持(extension header non‑capable,EH non‑capable)节点,该方法包括:第一EH支持节点接收下游节点的通告的能力,该通告的能力指示该下游节点是否支持EH;

该第一EH支持节点接收通过该MPLS网络待传输至该下游节点的报文;

在确定该下游节点的通告的能力指示该下游节点支持扩展头(extension header,EH)且该报文不包括EH后,该第一EH支持节点在该报文的MPLS标签栈中插入EH标签,该EH标签指示该报文中不存在EH;

在确定该下游节点支持EH,该报文中包括EH,且该EH不适用于该下游节点后,通过在该报文的MPLS标签栈中插入该EH标签来向该下游节点隐藏该EH。

2.根据权利要求1所述的方法,其特征在于,还包括:

在确定该下游节点支持EH且该报文包括EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

3.根据权利要求1所述的方法,其特征在于,还包括:

在确定该下游节点不支持EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

4.根据权利要求1至2中任一项所述的方法,其特征在于,还包括:扫描该报文的整个MPLS标签栈,以确定该报文是否包括EH。

5.根据权利要求1至2中任一项所述的方法,其特征在于,该下游节点为EH支持节点,该方法还包括:该第一EH支持节点接收来自该下游节点的至少一个消息,该消息通告双转发等价类(forwarding equivalence class,FEC)标签,该双FEC标签包括第一FEC标签和第二FEC标签,其中:该第一FEC标签指示该下游节点能够处理包括标准LDP标签的报文;

该第二FEC标签指示该下游节点能够处理包括EH标签的报文。

6.根据权利要求1至2中任一项所述的方法,其特征在于,该第一EH支持节点位于上游EH支持节点的下游,该方法还包括:将至少一个消息从该第一EH支持节点传输到该上游EH支持节点,该至少一个消息通告双转发等价类(forwarding equivalence class,FEC)标签。

7.根据权利要求1至2中任一项所述的方法,其特征在于,该第一EH支持节点位于上游EH非支持节点的下游,该方法还包括:将至少一个消息从该第一EH支持节点传输到该上游EH非支持节点,该至少一个消息通告单FEC标签。

8.根据权利要求1至2中任一项所述的方法,其特征在于,所述接收通告的能力包括:从网络控制器接收该通告的能力。

9.根据权利要求1至2中任一项所述的方法,其特征在于,所述接收通告的能力包括:从该下游节点接收该通告的能力。

10.根据权利要求1所述的方法,其特征在于,还包括:

通过将与该下游节点的通告的能力相关联的FEC标签作为查找表的索引,将该EH标签插入到该报文的MPLS标签栈中。

11.一种多协议标签交换(Multiprotocol Label Switching,MPLS)网络系统,其特征在于,该MPLS网络系统支持多个网内服务,该MPLS网络系统包括:多个扩展头支持(extension header capable,EH capable)节点和耦合到该多个EH支持节点的至少一个扩展头非支持(extension header non‑capable,EH non‑capable)节点;

其中,该多个EH支持节点包括第一EH支持节点,该第一EH支持节点用于:接收指示该第一EH支持节点的下游节点是否支持EH的通告消息;

接收待传输至下游节点的报文;

在确定该下游节点的通告的能力指示该下游节点支持扩展头(extension header,EH)且该报文不包括EH后,在该报文的MPLS标签栈中插入EH标签,该EH标签指示该报文中不存在EH;

在确定该下游节点支持EH,该报文中包括一个或多个EH,且该一个或多个EH不适用于该下游节点后,通过在该报文的MPLS标签栈中插入该EH标签来向该下游节点隐藏该一个或多个EH。

12.根据权利要求11所述的MPLS网络系统,其特征在于,该第一EH支持节点用于:在确定该下游节点支持EH且该报文包括一个或多个EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

13.根据权利要求11所述的MPLS网络系统,其特征在于,该第一EH支持节点用于:在确定该下游节点不支持EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

14.根据权利要求11至12中任一项所述的MPLS网络系统,其特征在于,该第一EH支持节点用于:扫描该报文的整个MPLS标签栈,以确定该报文是否包括一个或多个EH。

15.根据权利要求11至12中任一项所述的MPLS网络系统,其特征在于,该下游节点为EH支持节点,该第一EH支持节点用于:接收来自该下游节点的至少一个消息,该消息通告双转发等价类(forwarding equivalence class,FEC)标签,该双FEC标签包括第一FEC标签和第二FEC标签;

第一FEC标签指示该下游节点能够处理包括标准LDP标签的报文;

第二FEC标签指示该下游节点能够处理包括EH标签的报文。

16.根据权利要求11至12中任一项所述的MPLS网络系统,其特征在于,该第一EH支持节点位于上游EH支持节点的下游,该第一EH支持节点用于:将至少一个消息传输到该上游EH支持节点,该至少一个消息通告双FEC标签。

17.根据权利要求11至12中任一项所述的MPLS网络,其特征在于,该第一EH支持节点位于上游EH非支持节点的下游,该第一EH支持节点用于:向该上游EH非支持节点发送至少一个消息,该至少一个消息通告单FEC标签。

18.根据权利要求11至12中任一项所述的MPLS网络系统,其特征在于,所述接收通告的能力包括:接收来自网络控制器的通告FEC标签。

19.根据权利要求11至12中任一项所述的MPLS网络系统,其特征在于,所述接收通告的能力包括:接收来自该下游节点的通告FEC标签。

20.根据权利要求11所述的MPLS网络系统,其特征在于,该第一EH支持节点用于:通过将至少一个通告FEC标签作为查找表的索引,将该EH标签插入到该报文的MPLS标签栈中。

21.一种扩展头支持(extension header capable,EH capable)节点,其特征在于,包括:处理器和相关联存储器;

耦合到该处理器和相关联存储器的至少一个接口,该至少一个接口用于接收和发送报文至多协议标签交换(Multiprotocol Label Switching,MPLS)网络中包括的其它节点,该网络支持多个网内服务;

该处理器和相关联存储器用于:

接收指示下游节点是否支持扩展头(extension header capable,EH capable)的通告消息;

接收待传输至下游节点的报文;

在确定该下游节点支持扩展头(extension header,EH)且该报文不包括EH后,在该报文的MPLS标签栈中插入EH标签,该EH标签指示该报文中不存在EH;

在确定该下游节点支持EH,该报文中包括一个或多个EH,且该一个或多个EH不适用于该下游节点后,通过在该报文的MPLS标签栈中插入该EH标签来向该下游节点隐藏该一个或多个EH。

22.根据权利要求21所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:在确定该下游节点支持EH且该报文包括该一个或多个EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

23.根据权利要求21所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:响应于确定该下游节点不支持EH后,在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。

24.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:扫描该报文的整个MPLS标签栈,以确定该报文是否包括一个或多个EH。

25.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该下游节点为EH支持节点,该至少一个接口用于:接收来自该下游节点的至少一个消息,该消息通告双转发等价类(forwarding equivalence class,FEC)标签,该双FEC标签包括第一FEC标签和第二FEC标签;

该第一FEC标签指示该下游节点能够处理包括标准LDP标签的报文;

该第二FEC标签指示该下游节点能够处理包括EH标签的报文。

26.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该EH支持节点位于上游EH支持节点的下游,该至少一个接口用于:将至少一个消息传输到该上游EH支持节点,该至少一个消息通告双FEC标签。

27.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该EH支持节点位于上游EH非支持节点的下游,该处理器和相关联存储器还用于:向该上游EH非支持节点发送至少一个消息,该至少一个消息通告指示了仅接受标准LDP标签的单FEC标签。

28.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:接收来自网络控制器的通告FEC标签。

29.根据权利要求21至23中任一项所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:接收来自该下游节点的通告FEC标签。

30.根据权利要求21所述的EH支持节点,其特征在于,该处理器和相关联存储器还用于:通过将至少一个通告FEC标签作为查找表的索引,将该EH标签插入到该MPLS标签栈。

31.一种网络系统,其特征在于,该网络系统支持多个网内服务,该网络系统包括:多个扩展头支持(extension header capable,EH capable)节点、至少一个扩展头非支持(extension header non‑capable,EH non‑capable)节点和将第一节点的扩展头(extension header,EH)能力通告给第二节点的装置;

其中,该多个EH支持节点包括第一EH支持节点,该第一EH支持节点,用于在确定该第一EH支持节点的下游节点的通告的能力指示该下游节点支持扩展头(extension header,EH),且报文不包括EH后,在该报文的MPLS标签栈中插入EH标签,该EH标签指示该报文中不存在EH;在确定该下游节点支持EH,该报文中包括一个或多个EH,且该一个或多个EH不适用于该下游节点后,通过在该报文的MPLS标签栈中插入该EH标签来向该下游节点隐藏该一个或多个EH,该装置用于基于该第二节点的EH能力通告不同的EH能力。

32.根据权利要求31所述的网络系统,其特征在于,还包括:向EH支持节点通告标准LDP和EH能力的装置;

向EH非支持节点仅通告标准LDP能力的装置。

33.根据权利要求31或32所述的网络系统,其特征在于,还包括:用于在该第一节点处接收包括EH的报文的装置;

用于在将该报文传输至该第二节点期间隐藏EH的装置。

34.一种计算机可读存储介质,包括指令,其特征在于,当该指令被处理器运行时,实现权利要求1‑10任一项所述的方法。

说明书 :

用于MPLS网络的方法、网络系统及节点

[0001] 相关申请案交叉申请
[0002] 本申请要求于2019年3月8日提交、申请号为62/815,633、发明名称为“混合网络中的MPLS扩展头”的美国非临时专利申请的优先权,其全部内容通过引用结合于此。

技术领域

[0003] 本发明大体上涉及MPLS扩展头(extension Header,EH),更具体地,涉及在包括EH支持节点和EH非支持节点的网络中使用MPLS EH。

背景技术

[0004] 多协议标签交换(Multiprotocol Label Switching,MPLS)是一种使用标签将报文按照预定义路径(称为标签交换路径(Label Switched Path,LSP))在网络中进行路由的协议。报文根据标签从一个网络节点传送到下一个网络节点,无需每个网络节点根据端点地址做出自己的路由决策。标签由交换/转发网络节点(称为标签交换路由器(Label Switching Router,LSR))提取的短报文头字段进行携带。LSR被预配置以将某些MPLS标签与特定的出端口相关联,因此包括该标签的业务可被路由,无需更详细地检测报文头。无需对IP层网络地址进行逐跳路由决策,而是沿特定标签集合预定的路径发送业务。
[0005] MPLS使用标签分发协议(Label Distribution Protocol,LDP),将转发等价类(Forwarding Equivalence Class,FEC)与每条LSP关联起来。LDP与MPLS标签管理器配合使用,以管理MPLS标签与相应FEC的关联关系。MPLS标签和FEC之间的映射用于维护表,这些表允许路径中的每个LSR确定针对特定报文采取哪些操作。传送的数据包中可以包括多个MPLS标签。该多个MPLS标签组成了通常所指的MPLS栈或MPLS标签栈。
[0006] MPLS标签栈允许MPLS隧道的实现。在MPLS隧道中,使用外传输标签建立批量LSP(相当于隧道),通常位于网络边缘设备之间。在每条批量LSP中,内传输标签用于标识单个报文的额外业务流。每个报文可以携带很多标签栈表项,这些标签栈表项被组织为后进先出栈。在MPLS网络间正常转发时,LSR只处理顶层的标签,即最外层的标签。任何一个LSR都可以进行“推”操作向栈中添加首标,也可以进行“弹出”操作将首标从栈中移除。这种栈允许将LSP聚合成一条LSP用于路由的一部分,从而创建“隧道”。
[0007] 虽然相对于以前的组网协议以及一些较新的网络协议,MPLS具有许多优势,但它并不是专门为支持网内服务而设计的。如本文所用术语,网内服务是指网络设备(例如,路由器)针对用户业务应用的功能、应用或服务。

发明内容

[0008] 在本文的各种实施例中,具有多协议标签交换(Multiprotocol  Label Switching,MPLS)能力的报文交换通信网络既包括扩展头支持(extension header capable,EH capability)节点,也包括EH非支持节点,在本文中可以称为“混合”网络。第一EH支持节点,例如,但不限于边缘标签交换路由器(Label Switching Router,LSR),接收下游MPLS节点的通告的能力。这些通告的能力指示下游节点是否支持EH。该第一EH支持节点接收通过MPLS网络待传输到该下游节点的报文,确定该报文是否包括扩展头(EH),并在向该下游节点发送报文之前,将EH标签有条件地插入到该报文的MPLS标签栈中。在至少一个实施例中,该第一EH支持节点在确定以下条件同时存在时,将EH标签插入MPLS标签栈:1)该下游节点的通告的能力指示该下游节点支持EH;和2)该报文不包括EH。插入至该报文中的该EH标签可以向下游设备指示该报文中没有EH。
[0009] 在各种实施例中,在确定该下游节点支持EH且报文包括EH,向该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。
[0010] 可选地,即使该第一EH支持节点确定该下游节点支持EH且该报文中包括EH,若确定该EH不适用于该下游节点,该第一EH支持节点可以通过向该MPLS标签栈中插入指示该报文中不存在EH的EH标签,向该下游节点隐藏该EH。
[0011] 在上述任一实现方式的各种实施例中,在确定该下游节点不支持EH后,无论该报文是否包括该EH,可以在该报文的MPLS标签栈中插入标准标签分发协议(label distribution protocol,LDP)标签。
[0012] 在至少一个实现方式中,EH支持节点必须扫描整个MPLS标签栈以确定该报文是否包括EH。
[0013] 在该下游节点是EH支持节点的上述任一或所有实施例中,该第一EH支持节点可以从该下游节点接收至少一个消息,该消息通告双转发等价类(forwarding equivalence class,FEC)标签。这些双FEC标签包括第一FEC标签,第一FEC标签指示该下游节点能够处理包括标准LDP标签的报文,以及第二FEC标签,该第二FEC标签指示该下游节点能够处理包括EH标签的报文。
[0014] 在该第一EH支持节点位于上游EH支持节点的下游的上述任一或所有实施例中,该第一EH支持节点可将至少一个消息传输到该上游EH支持节点,该至少一个消息通告双FEC标签。
[0015] 在该第一EH支持节点位于上游EH非支持节点的下游的上述任一或所有实施例中,该第一EH支持节点可将一消息传输到该上游EH非支持节点,该至少一个消息通告单FEC标签。
[0016] 上述任一或所有实施例中,所述接收通告的能力可包括:从网络控制器或从该下游节点接收该通告的能力。此外,在各种实施例中,通过将与该下游节点的通告的能力相关联的FEC标签作为查找表的索引,将该EH标签插入到该报文的MPLS标签栈中。
[0017] 各种实施例可实现为:一种多协议标签交换(Multiprotocol Label Switching,MPLS)网络,包括:多个扩展头支持(extension header capable,EH capable)标签交换路由器(Label Switching Router,LSR);以及耦合到该多个EH支持LSR的至少一个EH非支持LSR。第一EH支持LSR用于:接收指示下游LSR是否支持EH的通告消息,接收待传输至下游LSR的报文;可确定该报文中是否包括一个或多个扩展头(extension header,EH),在该报文的MPLS标签栈中有条件插入EH标签。该MPLS网络的各种组件可用于实现前述一些或全部方法和技术。
[0018] 类似地,本文各种实施例可实现为:一种扩展头支持(extension header capable,EH capable)标签交换路由器(Label Switching Router,LSR),包括:处理器和相关联存储器;耦合到该处理器和相关联存储器的至少一个接口,该至少一个接口用于接收和发送数据的报文至多协议标签交换(Multiprotocol Label Switching,MPLS)网络中包括的其它LSR;该处理器和相关联存储器可用于:接收指示下游LSR是否支持扩展头(extension header capable,EH capable)的通告消息;接收待传输至下游LSR的报文;确定该报文中是否包括一个或多个扩展头(extension header,EH);根据该下游LSR的能力以及该报文是否包括该一个或多个EH,在该报文的MPLS标签栈中有条件插入EH标签。该EH支持LSR可用于实现前述一些或全部方法和技术。

附图说明

[0019] 图1是根据本公开各种实施例的通信系统的图;
[0020] 图2是根据本公开各种实施例的MPLS网络的框图,该MPLS网络可以包括在图1所示的一网络中;
[0021] 图3是根据本公开各种实施例的MPLS网络,例如图2所示的MPLS网络,的路由器细节的示意图;
[0022] 图4是根据本公开各种实施例的包括扩展头的MPLS报文的图;
[0023] 图5是根据本公开各种实施例的混合MPLS网络的图,该混合MPLS网络包括EH支持节点和EH非支持节点;
[0024] 图6是根据本公开各种实施例的将EH标签有条件插入MPLS标签栈中的流程图;
[0025] 图7是根据本公开各种实施例的在混合MPLS网络通告标签的流程图,该混合MPLS网络包括EH支持节点和EH非支持节点。

具体实施方式

[0026] 如本文所述,本发明的各种实施例允许在混合网络中使用多协议标签栈(Multiprotocol Label Stack,MPLS)扩展头(Extended Header,EH)。如本文所使用的,术语“扩展头(EH)”是指提供将网内业务头和元数据封装到MPLS报文中的通用方式的数据封装机制。术语“混合网络”在本文中用于指MPLS网络,该MPLS网络包括EH支持节点和EH非支持节点,例如,标签交换路由器(Label Switching Router,LSR),以传输数据包。
[0027] 目前,并不是所有的MPLS设备都能够处理包括EH的报文。但是,由于EH为MPLS设备提供了提供各种网内服务的能力,根据本公开的各种MPLS设备包括EH处理功能。这些较新的设备在本文中被称为“EH支持”,因为它们能够处理EH。较旧的旧式设备在本文中被称为“EH非支持”,因为它们不能处理EH。EH支持设备和EH非支持设备都可以利用各种标准以及国际互联网工程任务组(Internet Engineering Taskforce,IETF)和国际电联电信标准化部门(International Telecommunication Union Telecommunication Standardization Sector,ITU‑T)所提出的标准建立的机制,向其它MPLS节点通告自己的能力。
[0028] 当MPLS报文中包括一个或多个EH时,向MPLS标签栈中插入EH标签。为了向后兼容EH非支持设备,EH标签插入在MPLS标签栈的底部,使EH头不干扰EH非支持设备的正常工作。向MPLS标签栈的底部插入EH头使EH支持设备能够利用EH提供的网络服务功能,而不干扰EH非支持设备的正常工作。但是,将EH标签放在MPLS标签栈的底部对EH支持设备会带来处理影响。
[0029] 实际上,并不是每个MPLS报文都包括EH。但是,EH头位于MPLS标签栈的底部,EH支持节点必须扫描每个报文的整个MPLS标签栈,以确定该报文是否包括EH标签(因此是EH)。将EH标签放置在MPLS标签栈的开始处可以让EH支持设备快速确定某个特定报文是否包括EH,但是EH非支持设备将无法处理该报文。
[0030] 然而,本文公开的各种方法、设备和系统减少了或消除了由于将EH标签放置在MPLS栈的底部而造成的影响,同时避免报文中的EH干扰EH非支持设备的操作。
[0031] 图1示出了可以使用本技术实施例的示例性通信系统100。该通信系统100包括,例如,用户设备110A、110B和110C、无线接入网(radio access network,RAN)120A和120B、核心网130、公共交换电话网(public switched telephone network,PSTN)140、互联网150和其它网络160。其它或可替换网络包括私人和公共数据包网络,包括公司内网。虽然图中示出了某些数量的这些组件或元件,但系统100中可以包括任意数量的这些组件或元件。
[0032] 在一个实施例中,该通信系统100可以包括无线网络,该无线网络可以是第五代(fifth generation,5G)网络。该第五代网络包括至少一个5G基站,5G基站采用正交频分复用(orthogonal frequency‑division multiplexing,OFDM)和/或非OFDM以及小于1毫秒(例如,100或200微秒)的传输时间间隔(transmission time interval,TTI)与通信设备进行通信。
[0033] 该系统100使多个用户能够发送和接收数据和其它内容。该系统100可以实现一种或多种信道接入方法,例如,但不限于码分多址(code division multiple access,CDMA)、时分多址(time division multiple access,TDMA)、频分多址(frequency division multiple access,FDMA)、正交FDMA(OFDMA)或单载波FDMA(SC‑FDMA)。
[0034] 用户设备(user equipment,UE)110A、110B和110C可以各自称为UE110或统称为UE110,用于在该系统100中操作和/或通信。例如,UE110可用于发射和/或接收无线信号或有线信号。每个UE110代表任何合适的终端用户设备,并可包括(或可称为)用户设备、无线发射/接收单元(UE)、移动台、固定或移动用户单元、寻呼机、蜂窝电话、个人数字助理(personal digital assistant,PDA)、智能手机、笔记本电脑、电脑、触控板、无线传感器、可穿戴设备或消费电子设备等设备。
[0035] 在所述实施例中,RAN120A、120B分别包括一个或多个基站(base station,BS)170A、170B。RAN120A和120B可以各自称为RAN120或统称为RAN120。类似地,基站(BS)170A和
170B可以各自称为基站(BS)170或者统称为基站(BS)170。每个BS170用于与一个或多个UE110进行无线连接,以便能够接入核心网130、PSTN140、互联网150和/或其它网络160。例如,基站(BS)170可以包括若干公知设备中的一个或多个,例如,基站收发台(base transceiver station,BTS)、基站(NodeB)、演进基站(evolved NodeB,eNB)、下一(第五)代(5G)NodeB(gNodeB,gNB)、家庭基站、演进家庭基站、站点控制器、接入点(access point,AP)、服务器、路由器、交换机或者有线或无线网络中包括的其它处理实体、节点或设备。
[0036] 在一实施例中,BS170A构成RAN120A的一部分,RAN120A可以包括一个或多个其它BS170、元件和/或设备。类似地,BS170B形成RAN120B的一部分,RAN120B可以包括一个或多个其它BS170、元件和/或设备。每个BS170操作以在特定地理区域或区域(有时称为“小区”)内传输和/或接收无线信号。在一些实施例中,可以使用多输入多输出(multi‑input multi‑output,MIMO)技术,其中具有针对每个小区的多个收发器。
[0037] 该BS170使用无线通信链路通过一个或多个空口(未示出)与UE110中的一个或多个进行通信。空口可以使用任何合适的无线接入技术。
[0038] 可认为该系统100可以使用多种信道接入功能,例如,BS170和UE110用于实现长期演进(Long Term Evolution,LTE)无线通信标准、LTE‑Advanced(LTE‑A)和/或LTE多媒体广播多播业务(Multimedia Broadcast Multicast Service,MBMS)的方案。在其它实施例中,基站170和用户设备110A至110C用于实现UMTS、HSPA或HSPA+标准和协议。当然,也可以使用其它多址方案和无线协议。
[0039] 该RAN120与核心网130通信,以向UE110提供语音、数据、应用、互联网协议语音(Voice over Internet Protocol,VoIP)或其它服务。可以理解的是,该RAN120和/或该核心网130可以与一个或多个其它RAN(未示出)直接或间接通信。该核心网130还可以用作其它网络(例如,PSTN140、互联网150、其它网络160)的门户接入。此外,部分或全部UE110可包括用于使用不同无线技术和/或协议通过不同无线链路与不同无线网络进行通信的功能。
[0040] 该RAN120还可包括毫米和/或微波接入点(AP)。该AP可以是BS170的一部分,或者可以位于远离BS170的位置。该AP可包括,但不限于能够进行mmW通信的连接点(mmW CP)或BS170(例如,mmW基站)。该mmW AP可以在频率范围内发送和接收信号,例如,24GHz至100GHz,但不需要在整个该范围内工作。本文所使用的术语基站用于指基站和/或无线接入点。
[0041] 尽管图1示出了通信系统的一个示例,可以对图1进行各种变化。例如,该通信系统100可以包括任何数量的任何合适配置的UE、基站、网络或其它组件。还应当理解,术语用户设备可以指在蜂窝或移动通信系统中与无线网络节点通信的任何类型的无线设备。用户设备的非限制性示例为目标设备、设备对设备(device‑to‑device,D2D)用户设备、机器类型用户设备或能够进行机器对机器(machine‑to‑machine,M2M)通信的用户设备、膝上型计算机、PDA、iPad、平板电脑、移动终端、智能手机、笔记本电脑嵌入式设备(laptop embedded equipped,LEE)、笔记本电脑内置式设备(laptop mounted equipment,LME)、USB数据卡等。
[0042] 该网络130、140、150和/或160中的一个或多个(或其部分)可以利用MPLS,MPLS是用于高性能电信网络的一种数据承载技术。换言之,该网络130、140、150和/或160中的一个或多个可以是或可以包括MPLS网络。
[0043] MPLS基于短路径标签将数据从一个网络节点引导到下一个节点,而不是基于长网络地址,从而避免了复杂的路由表查找。标签用于标识远处节点之间的虚拟链路(路径),而不是端点之间的虚拟链路(路径)。MPLS可以封装各种网络协议的报文,因此被命名为“多协议”。MPLS支持多种接入技术,包括T1/E1、异步传输模式(asynchronous transfer mode,ATM)、帧中继(Frame Relay,FR)和数据用户线(data subscriber line,DSL)等。
[0044] MPLS最初的构想是为了提高互联网(Internet Protocol,IP)路由器的报文转发性能。然而,它随后被扩展到通过使用伪线(Pseudowire,PW)封装技术来承载其它层网络技术(如ATM、FR、准同步数字体系(PDH)等)。
[0045] 图2示出了包括多个节点,例如路由器210a、210b、210c和210d,的示例性MPLS网络200。其中每个节点可以称为路由器210或者可以统称为路由器210。虽然图2中仅示出了四个路由器210,但MPLS网络通常包括的路由器210远多于四个。每个路由器210也可以更一般地称为MPLS网络200的节点。图2还示出了MPLS网络200如何能够用于将一个或多个报文从第一设备202传输到第二设备204。该第一设备202和该第二设备204与该MPLS网络200通信耦合。图2还示出了网络控制器212,其与该MPLS网络200的每个路由器210通信耦合,如虚线所示。网络控制器212可用于执行各种控制路径和/或控制面功能。MPLS网络200的控制面是路由器架构的一部分,负责收集和传播后续用于转发传入报文的信息。路由协议和标签分发协议是控制面的一部分。控制面负责交换层三路由信息和标签。相反,MPLS网络的数据面负责根据标签和IP头进行报文转发。数据面可以有一个简单的转发引擎。该转发引擎维护一个标签转发信息库(Label Forwarding Information Base,LFIB)(该库是用于路由器通过网络转发被标记报文的表),以及转发信息库(Forwarding Information Base,FIB)(FIB是路由器在决策转发业务时要查看的表)。
[0046] 如上所述,该路由器210也可以称为该MPLS网络200的节点。当该MPLS网络200用于从该第一设备202向该第二设备204传送一个或多个报文时,路由器210a更具体地可以称为入口路由器或入口节点。路由器210d可以更具体地称为出口路由器或出口节点。甚至更具体地,入口路由器210a可以称为标签边缘路由器(Label Edge Router,LER),其是首先将报文封装在MPLS标签交换路径(Label Switched Path,LSP)内的路由器。其中,MPLS LSP实质上是MPLS网络的一对路由器之间的单向隧道。该路由器210d更具体地可以称为出口路由器。路由器210b和210c更具体地可以称为标签交换路由器(Label Switching Router,LSR)或中间节点,它们是在LSP中间执行MPLS交换的路由器。如上所述,路由器210d可以称为出口节点,是LSP末端的最终路由器。入口路由器210a和出口路由器210d也是LSR,但是由于它们位于MPLS网络的边缘,可以执行附加功能。
[0047] 当未标记的报文进入入口路由器(例如,图2中的210a),并且需要传送到MPLS隧道中时,该路由器首先确定报文的转发等价类(Forwarding Equivalence Class,FEC),然后插入一个或多个标签至报文新创建的MPLS头中,MPLS头也可以称为MPLS标签栈。然后,报文被传送到该隧道的下一跳路由器。MPLS头包括一个或多个MPLS标签栈表项的栈,因此,MPLS头也可以称为MPLS标签栈。
[0048] MPLS头可以添加在开放系统互连模型(Open Systems Interconnection model,OSI model)的网络层头(即,层3头)和链路层头(即,层2头)之间。由于MPLS通常工作在通常被认为介于传统定义的OSI层2(数据链路层)和层3(网络层)之间的层,因此MPLS有时也被称为层2.5协议。MPLS设计是为提供数据报服务模型的基于电路客户和报文交换客户提供统一的数据承载服务。MPLS可以用来承载许多不同种类的业务,包括IP包,以及本地ATM、SONET和以太网帧。除了层2和层3之外,在OSI模型的其它层之间还可以添加MPLS头吗?[0049] 当MPLS路由器(例如,图2中的210b或210c)接收到被标记的报文时,检查最上面的标签。根据标签的内容,对报文的MPLS标签栈进行交换、压入(impose)或弹出(dispose)操作。如下文将进一步详细描述的,MPLS标签栈包括多个标签栈表项。路由器(例如,图2中的210)可以具有预构建的查找表,该查找表根据传入报文的最顶端的标签告诉路由器要执行的操作,以便它们能够非常快速地处理报文。在交换操作中,标签被交换为新标签,并且报文沿着与新标签相关联的路径转发。在压入操作中,将新标签压入现有标签的顶部,有效地将报文“封装”在MPLS的另一层中。这样,就可以对MPLS报文进行层次化路由。值得注意的是,这用于MPLS虚拟私有网(virtual private network,VPN)。在弹出操作中,标签从该报文被移除,下面可能会显示一个内标签。这个过程称为“解封装”,如果弹出的标签是标签栈中的最后一个标签,报文“离开”该MPLS隧道。
[0050] 在以上操作中,不检查MPLS标签栈下方的报文内容。实际上,中间路由器(也称为LSR)通常只需要检查栈上最上面的标签。报文的转发基于标签的内容进行。这允许“独立于协议的报文转发”,而无需查看依赖协议的路由表,避免了在每一跳进行高成本的IP最长前缀匹配。
[0051] 在出口路由器(例如,图2中的210d),当最后一个标签已经弹出时,仅保留有效载荷。这可以是IP报文,也可以是一些其它类型的有效载荷报文中的任一种。因此,出口路由器必须具有报文有效载荷的路由信息,因为它必须不必借助标签查找表转发报文有效载荷。MPLS中转路由器(例如,图2中的210b和210c)没有这种要求。
[0052] 通常情况下(根据MPLS规范,栈中默认只有一个标签),最后一标签在倒数第二跳(即出口路由器之前的跳)弹出,这称为倒数第二跳弹出(penultimate hop popping,PHP)。直接连接到此出口路由器的中间路由器通过弹出最后一个标签来有效地分流出口路由器。
在标签分发协议中,这个PHP标签弹出动作被通告为保留态或专用标签值3“隐式空值”(在标签中从未发现过,因为它意味着要弹出标签)。
[0053] 在各种实施例中,路由器210a、210b、210c或210d中的一个或多个不支持扩展头(EH incapable),而至少两个其它路由器不支持扩展头,并且上述过程适用于EH支持路由器和EH非支持路由器。支持EH路由器与不支持EH(例如,旧式)路由器之间的区别之一是指当支持EH路由器遇到EH标签时,它能够解析EH标签,访问元数据并执行与EH标签关联的EH头指定的功能,而不支持EH路由器则不能。
[0054] 如下文更详细描述的,EH支持路由器包括附加功能,这些功能允许它们在通过MPLS网络传输期间有条件地在报文的MPLS标签栈顶部或其附近插入EH标签。关于插入EH标签的决策部分取决于当前节点的下一个下游节点的通告的能力。也就是说,特定EH支持节点是否在MPLS标签栈的顶部附近插入EH标签,至少部分地取决于沿网络路径的下一个节点是支持EH还是不支持EH。
[0055] 图3是根据一实施例的路由器210或更一般地网络节点300的示例性细节的示意图。路由器210可用于实现或支持本文公开的本技术的实施例。路由器210可包括下游端口310、收发器(TX/RX)312、存储器322、一个或多个处理器320和上游端口314。端口310和314以及收发器312可以统称为网络接口316,用于通过MPLS网络接收和发送报文。
[0056] 该存储器322可包括可在处理器320上实现的数据包修改和转发块328。该数据包修改和转发块328可用于实现本文所描述的本技术的实施例。或者,该数据包修改和转发块328可以直接在处理器320中的至少一个上实现。该数据包修改和转发块328可用于修改数据包,并使用数据包内的路由信息路由数据包。更具体地,处理器320可用于实现下文描述的本技术的实施例。根据某些实施例,存储器322存储由处理器320执行的计算机可读指令以实现本技术的实施例,也可以至少部分地使用硬件逻辑组件来实现以下描述的本技术实施例,例如,但不限于现场可编程门阵列(Field‑programmable Gate Array,FPGA)、专用集成电路(Application‑specific Integrated Circuit,ASIC)、专用特定标准产品(Application‑specific Standard Product,ASSP)、片上系统(System‑on‑a‑chip system,SOC)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、专用计算机等。
[0057] 接下来参照图4,示出根据本发明各实施例描述包括扩展头的MPLS报文400。该MPLS报文格式400包括原始内报文409,其包括原始有效载荷和高层协议数据UL440。该UL440可以包括传输控制协议(Transmission Control Protocol,TCP)头(未明确示出)和层3(即,网络层)头(未明确示出),例如IPv4或IPv6头。该原始内报文409的内容不限于在本示例中讨论的内容。
[0058] 如图所示,该MPLS报文400还包括MPLS标签栈401。该MPLS标签栈401也可以称为MPLS头、扩展头的头(Header of Extension Header,HEH)405和多个(即,N)扩展头405,其中包括扩展头H1 420至HN 430。本技术的实施例使得不同类型的不同多个EH在MPLS网络上依次堆叠,以实现多个网内业务加入MPLS网络。这些EH的存在(或不存在)可以通过EH标签403来指示,该EH标签403根据下游节点的通告的能力被有条件地插入到MPLS标签栈中。
[0059] 该MPLS标签栈401可以包括MPLS标签栈表项,其中包括扩展头标签(EH label)403。尽管图4示出了EHL 403位于MPLS标签栈401中间,该EH标签403可以放置在MPLS标签栈
401中的其它位置,以便于在EH支持网络和EH非支持网络的混合网络中提供后向兼容性。在本文描述的各种实施例中,原始EH标签可以放置在MPLS标签栈401的底部,以便于向后兼容EH非支持设备。
[0060] 尽管该报文400图示为包括EH,可能只有报文的子集包括EH。使用一些方式指示扩展头(EH)是否存在或不存在于报文400中。MPLS技术包括FEC的概念。与LSP关联的FEC指示了哪些报文被“映射到”该LSP上。可以创建FEC,指示报文中不存在EH。接收带有与此FEC关联的标签的报文的节点将知道报文中不存在EH,即,使用“不存在EH”FEC发送报文的上游节点向下游EH支持节点指示不需要扫描整个MPLS栈以查找需要该节点处理的EH,因为该报文400中不包括EH。
[0061] 该MPLS标签栈401中的标签栈表项包括四个不同的信息元素:标签值字段(20比特)415,业务类型(Traffic Class,TC)字段(未示出),指示标签栈表项是否处于栈底(BoS)417的单个比特,及8比特TTL(未示出)。每个标签值可以是转发标签,告诉标签交换路径(LSP)中的下一个路由器使用哪个接口发送报文,以及转发报文时在报文顶部打上哪一标签。一个或多个标签值也可能是特殊用途标签(Special Purpose Label,SPL)。分配的SPL值见下表1。
[0062] 表1
[0063]数值 描述
0 Ipv4显式NULL标签
1 路由器告警标签
2 Ipv6显式NULL标签
3 隐式NULL标签
4‑6 未分配
7 熵标签指示(Entropy Label Indicator,ELI)
8‑12 未分配
13 GAL标签
14 OAM告警标签
15 扩展标签
[0064] 互联网工程任务组(Internet Engineering Task Force,IETF)的MPLS工作组负责MPLS相关技术的标准化。MPLS工作组保留了16个标签值作为特殊目的(Special Purpose,SPL)标签,也称为基础SPL。SPL被视为稀缺资源,而且正在迅速用完。为了解决这种短缺问题,MPLS工作组创建了第二套特殊目的标签,即,扩展SPL(Extended SPL,eSPL)。eSPL的范围是20位(大约100万个标签)。目前只有16至255的eSPL值正在使用。格式为:扩展标签(值15)后面跟一个eSPL值。有几种方法来指示标签栈之后的EH的存在。可能(但不太可能)可以使用未分配的一基础SPL,但可以使用扩展SPL。也可以使用其它的MPLS技术,例如,可以创建专用于EH的通用关联通道(Generic Associated Channel,GAL)。共同的特性是标签栈(标签栈表项)中需要有信息指示标签栈之后的EH的存在。
[0065] 当被标记报文被LSR接收时,首先处理MPLS标签栈顶部的标签值,以查找转发信息。这使得接收LSR获知报文可以转发到的端口,和/或获知在转发前要对MPLS栈执行的任何操作。LSR对MPLS栈执行的操作的示例包括用另一个值替换顶部标签栈表项(交换)、从标签栈移除表项(弹出)、或将一个或多个附加表项推送到MPLS标签栈(推送),如上所述。LSR可以执行的其它操作包括获知出数据链路封装以及正确转发报文所需的任何其它信息。
[0066] 根据MPLS标签栈表项中分配给MPLS标签字段以及其它字段的标签值,接收LSR可以以多种方式理解标签字段。标签字段可以用作转发标签、源标签或功能标签等,以指示LSR必须执行的操作。
[0067] 当MPLS标签栈表项的标签值字段用作转发标签时,标签值字段用作LSP目的端点的“地址”的代理标识符。如果该MPLS标签栈表项位于LSP MPLS头栈的顶部,则S=0。但是,如果它是栈中唯一的MPLS标签栈表项,则S=1。当MPLS标签栈表项用作转发标签时,MPLS标签栈表项的标签值字段用于逐跳转发数据面的MPLS业务单元到目的端,除非使用倒数第二跳弹出(penultimate‑hop‑popping,PHP)。在倒数第二跳弹出的情况下,转发头在最后一跳被完全移除。
[0068] 当标签值字段用作源标签时,标签值字段用作LSP源端点的“地址”的代理标识符。被标记头的该功能使用意味着它总是MPLS标签栈中的最后一个表项,因此S位将被置为1。
用作功能标签时,该标签值字段标识在LSR处接收到时需采取的具体操作。如本领域所公知的,MPLS头的标签字段的保留值指定了LSR对接收到的报文执行的具体功能。例如,表1的标签14指示路由器操作和维护(Operation and Maintenance,OAM)告警,以将业务单元的内容传送到控制/管理面以进行进一步操作。在这样的被标记头中,S位通常被置为1(但是在其它功能使用中可能并非总是如此)。
[0069] 虽然传统的MPLS实施方案相对现有的组网协议以及一些较新的网络协议具有许多优势,但是如果MPLS能够支持多个网内服务,那将是有益的。换言之,MPLS的一个技术问题是,它的设计不是用来支持网内服务,例如,但不限于网络服务头(Network Service Header,NSH)、现场操作管理和维护(In‑situ Operations,Administration,and Maintenance,IOAM)、段路由(Segment Routing,SR)、网络编程。本文所使用的术语“网内服务”是指网络设备(例如,路由器)对用户业务应用的功能、应用或服务。这种网内业务通常通过在用户报文中添加一些头来执行,头对业务的必要信息进行编码。头通常在将用户报文传送到目的地之前被移除,以便对最终用户来说是不可知的。如下面将进一步详细描述的,本技术实施例可用于将一个或多个网内业务添加到MPLS网络中,该MPLS网络本不支持此类网内业务。
[0070] MPLS标准目前不支持多个网内业务,而最多只能支持单一网络业务。此外,为了支持单一网络服务,目前的MPLS标准要求全标签栈扫描,这可能会对网络性能产生不利影响。此外,目前的MPLS标准没有为EH支持节点提供方法以避免在包括EH支持节点和EH非支持节点的混合MPLS网络中可能出现的“全栈扫描”造成的影响。
[0071] 本文描述的本技术实施例可用于克服上述MPLS的技术问题,特别是通过减少混合网络中每个EH支持节点执行MPLS标签栈全扫描以识别扩展头的必要性。本文描述的本技术各种实施例可用于提高MPLS网络支持多种网内业务的能力,例如,但不限于,NSH、IOAM、SR、网络编程。有益地,本技术实施例能够将多个网内业务堆叠在一起。此外,如果需要,本技术实施例提供后向兼容性,例如,在包括尚未更新则无法根据本文该技术具体运行的传统(EH非支持)路由器的混合网络中。此外,本技术某些实施例可用于避免或最小化深度标签栈扫描的必要,如果不能避免深度标签栈扫描,则可能增加延迟降低性能。更具体地,本文描述的本技术某些实施例涉及MPLS扩展头,该扩展头为上述MPLS的技术问题提供通用、可扩展、高性能和前瞻性解决方案。
[0072] 根据某些实施例,EH标签403用于指示报文400中包括一个或多个扩展头。在所示实施例中,扩展头405的头包括在MPLS标签栈401(也可以称为MPLS头401)和N个扩展头407之间。其中,N为大于等于1的整数。
[0073] 取决于具体的MPLS实施方式,以及特定MPLS网络中的所有路由器是否已更新以正确识别和使用EH标签403,EH标签可以包括在MPLS标签栈401中的任意位置。
[0074] 如果EH标签403包括在MPLS标签栈401的最顶部,则EH标签可以由接收报文400的EH支持路由器快速识别。然而,为了使标签栈表项的EH标签被放置在MPLS标签栈401的顶部,MPLS网络中可以传输此类数据报的所有路由器需要是EH支持路由器,即被更新以能够解析和使用MPLS扩展头407。否则,尚未更新以识别EH标签并使用MPLS扩展头的路由器(即,EH非支持路由器)很可能丢弃报文400,使得原始内报文409可能永远无法到达其预期目的地。
[0075] 通常,如上所述,EH标签403可以包括在MPLS标签栈401中的任意位置。然而,为了使EH标签的使用向后兼容混合网络中使用的旧有路由器,即EH非支持路由器,EH标签应位于MPLS标签栈401的底部。
[0076] 如图所示,扩展头405的头包括四个头字段,包括保留(Reserved,R)字段421、扩展头计数(Extension Header Count,EH Count)字段423,EH总长度字段425,以及下一个头类型(Next Header Type,NHT)字段427。NHT字段427也可以更简洁地称为下一个头(Next Header,NH)字段427。HEH 405的字段421、423、425和427的具体顺序如图4所示,这仅用于示例目的,字段421、423、425、427的实际顺序不限于图4所示的顺序。HEH 405也可以称为扩展头头(Extension Header Header,EHH)405,因为它实质上是扩展头407的头。MPLS扩展头407的特定序列可以称为MPLS扩展头列表。
[0077] HEH 405的R字段421包括保留以供将来使用的一个或多个比特(例如,4至6比特),并且在某些实施例中可以删除。EH计数字段423包括多个比特(例如,8比特),用于指定HEH 405之后的扩展头407的总数。EH总长度字段425包括多个比特(例如,8比特或16比特),用于指定扩展头407的总长度。包括在EH总长度字段中的值使路由器或其它设备能够直接跳到N个扩展头407之后的原始内包409,如果需要的话。
[0078] NHT字段427包括多个比特(例如,8比特),用于指示下一个扩展头或其它下一个头中包括的头的类型。NHT字段427可以指定的下一个头类型的示例包括IOAM、NSH和SR,但不限于这些类型。NHT字段427使路由器或其它设备能够知道如何解析和使用报文400内的下一个扩展头或其它类型的头。扩展头405的头的总长度可以与每个标签栈表项相同(例如,32位),或者比一个或多个标签栈表项的长度短或长(即,小于或大于32位)。
[0079] 根据某些实施例,EH计数字段423中包括的值是从零开始的编号值。其中“0”的值意味着在扩展头405的头之后有一个扩展头407。值为“1”表示在扩展头405的头之后有两个扩展头407,依此类推。类似地,包括在EH总长度字段425中的值也可以是从零开始的编号值。在替代实施例中,包括在EH计数字段423和/或EH总长度字段425的值不必是从零开始的编号值。
[0080] 每个扩展头407包括NHT字段431,其类似于扩展头405的头中包括的NHT字段427,因为它指示下一个头的类型。下一个头可以是扩展头407,或某些其它类型的头,例如原始内报文409内的网络层头。如上所述,NHT字段431可以指定的下一个头的示例性类型包括NSH、IOAM、SR、网络编程,但不限于此。NHT字段427可以指定的其它下一个头类型包括但不限于IPv4、IPv6、none和unknown。
[0081] 每个扩展头407还包括头长度字段433,其指定单个扩展头的长度。头长度字段433使路由器能够跳到数据报中包括的下一个头(如果需要)。每个NHT字段431可以是8比特,或某些其它比特数,具体取决于实现。每个头长度字段433可以是8比特,或某些其它比特数,具体取决于实现。如图所示,每个扩展头407的NHT字段431位于头长度字段433之前,但是这个顺序可以颠倒。在各种实施例中,每个扩展头407可以包括一个或多个附加字段。
[0082] 每个相应扩展头407的剩余部分的数据字段和相关格式取决于头的类型。例如,如果扩展头407是IOAM类型,则扩展头407的剩余部分的数据字段和相关格式可以符合IETF指定的IOAM标准。又例如,如果扩展头407是NSH类型,则扩展头407的剩余部分的数据字段和相关格式可以符合IETF指定的NSH标准。
[0083] 根据某些实施例,NHT字段可以具有两个特殊值,包括NONE值和UNKOWN值。NONE值表示没有头,并且包括NONE值的NHT字段的头后没有有效载荷(即,扩展头407之后没有原始内报文409)。UNKNOWN值表示下一个头或有效载荷中的头类型未知。特殊的UNKOWN值是为了兼容原有的MPLS协议设计。
[0084] 在各种实施例中,FEC可以用于指示MPLS扩展头是否遵循MPLS标签栈。FEC用来描述MPLS中一组具有相似或相同特征的报文,这些报文可以以相同的方式转发,即,分配给相同FEC的报文可以绑定到相同的MPLS标签上。更具体地说,FEC是一组报文,由单个路由器进行相同的处理(如排队等)并从同一接口(例如,相同的上行端口)转发到同一下一跳。当使用FEC指示扩展头的存在时,对于MPLS网络中的每个转发下一跳,两个潜在的标签值(对应于同一个下一跳)中一个可以由路由器分配,并包括在标签栈表项的标签值字段中。两个标签选项(例如,标签A和标签B)将具有相同的转发行为,但只有一个指定在该MPLS报文或数据报中有一个或多个扩展头需要处理。换言之,如果路由器转发的报文或数据报中没有扩展头,则两个标签值中的第一个(例如,标签A)包括在标签栈表项中。如果被转发的报文或数据报中存在一个或多个扩展头(如由路由器或某些其它路由器添加),则两个标签值中的第二个标签值(例如,标签B)包括在标签栈表项中。然后,接收该报文的下一跳路由器可以根据第一标签值或第二标签值(标签值A或B)是否包括在标签栈表项的标签值字段中来确定它所接收的报文中是否存在扩展头。
[0085] 在至少一个实施例中,标签A可以是由EH支持设备插入的EH标签,并向其它EH支持设备指示传输报文中不存在扩展头。由于EH支持设备知道没有需要处理的EH,所以设备不需要扫描整个MPLS标签栈来查找EH标签,可以节省处理时间。相反,标签B可以用于指示EH存在于或可能存在于传输报文中。例如,标签B可以是EH非支持MPLS设备使用的标准LDP标签。当EH支持设备在报文中遇到标签B时,EH支持设备假定报文中存在或可能存在扩展头,并将扫描整个MPLS标签栈以查找EH。
[0086] 但是,标签B还可以起到向后兼容EH非支持设备的作用。使用标准LDP标签和指示不存在EH的EH标签的这种组合,可以使得至少一些EH支持设备在混合网络中与EH非支持设备一起运行,无需完全扫描每个报文的MPLS标签栈。
[0087] 接下来参照图5,图示为根据本公开各种实施例的混合MPLS网络500,该混合MPLS网络500包括EH支持节点和EH非支持节点。混合MPLS网络500是网络200(图2)的一部分的简化表示,该网络200包括EH支持节点503、509、511和513,与EH非支持节点505和507(图示阴影部分)混合。图5中靠左的节点表示上游节点,图5中靠右的节点表示下游节点。
[0088] 混合MPLS网络500中的每个EH支持节点根据每个节点的通告的能力知道直接相邻节点是EH支持还是EH非支持。在至少一个实施例中,图5所示的节点是标签交换路由器(Label Switching Router,LSR)或者能够使用MPLS技术处理和转发报文的其它设备。
[0089] 在至少一个实施例中,每个节点使用MPLS网络中通常使用的通告技术将其能力通告给混合MPLS网络500中的其它节点。在至少一个实施例中,每个节点通过向其上游邻居发送关于其自身FEC信息来通告其能力。例如,节点513将其FEC能力通告给节点511,节点511将其能力通告给节点509,节点509将其能力通告给节点507,节点507将其能力通告给节点505,节点505将将其能力通告给节点503。
[0090] 在至少一个实施例中,通告的能力包括通告单或双FEC标签。EH支持节点会向其它EH支持节点通告双FEC标签,但对EH非支持节点只通告单FEC标签。例如,节点513向节点511通告标签分发协议(label distribution protocol,LDP)标签:ldp:php。该标签指示节点513是特定定义的LDP路径中的最后一个节点,并且节点513可以处理MPLS标签栈中具有标准LDP标签的包。节点513还向节点511通告FEC标签:EH‑FEC:php,指示节点513是特定定义的LDP路径中的最后一个节点,并且节点513支持EH。
[0091] 继续前面的示例,节点511向节点509通告标签ldp:101,该标签指示节点511在MPLS路径中的位置,并进一步指示节点513可以处理具有标准LDP标签的包。节点511还将通告标签EH‑FEC:201,该标签指示节点511在MPLS路径中的位置,并进一步指示节点511支持EH。
[0092] 此时,需要注意的是,节点507是EH非支持的,因此节点509是否支持EH对于节点507并不重要,因为节点507不具有EH处理能力。因此,EH支持节点509向节点507通告标签ldp:102,但不通告EH‑FEC标签。与本示例的前面部分类似,LDP标签指示节点509在MPLS路径中的位置,并指示节点513可以处理具有标准LDP标签的包。类似地,节点507向节点505通告标签ldp:103,节点505向节点503通告标签ldp:104。需要注意的是,即使节点503支持EH,由于节点505不支持EH,因此不向节点503通告EH能力。
[0093] 在一些实施例中,EH支持节点509可以尝试将双标签通告给节点507,但是节点507将简单地忽略指示EH能力的标签。在替代实施例中,节点507可以同时接收LDP标签和EH标签,并且将LDP标签和EH标签信息同时放入用于标签映射的表中。但是,由于节点507不支持EH,所以节点507在准备报文传输时基本上会忽略所通告的EH标签。在其它实施例中,混合MPLS网络500中的每个节点,例如节点503、505、507、509、511和513,可以通过集中控制器向上游节点通告其能力,该集中控制器负责向各个节点提供通告的能力。在一些这样的实施例中,包括能力信息的消息从各个节点传输到控制器,控制器将该信息传递到上游节点,并且上游节点将该信息插入到映射下游节点能力的查找表中。在其它实施例中,集中控制器生成标签映射,并将那些标签映射和/或查找表(包括映射)传输到适当的节点。
[0094] 在各种实现方式中,可以向各个节点提供关于上游和下游相邻节点的基本EH能力的信息,使得每个节点可以提前知道是通告单FEC标签还是双FEC标签。可以使用在节点之间传递信息的各种技术,包括MPLS不特有的技术。然而,除非另有说明,本文中对“通告的能力”的引用意在是指用于通告MPLS标签或标签映射信息的常用能力通告技术。
[0095] 在例如通过MPLS通告过程已经获得关于下游节点的通告的能力信息之后,可以使用该信息通过混合MPLS网络500传输报文。由于通告的能力的信息是在混合MPLS 500处理和路由包之前提供的,因此节点被预配置相邻下游节点的通告的能力。在一些实施例中,该预配置节点包括将指示EH能力的标签信息存储在表中,该表用于每个节点确定哪些端口用于传输,哪些标签可以或不可以添加到该MPLS标签栈中等。
[0096] 首先描述通过混合MPLS网络500传输消息的以下示例。报文,例如报文400(图4),包括扩展头,并在节点503处接收,以便通过混合MPLS网络500传输到节点513。在本示例中,报文包括扩展头,且EH标签位于MPLS栈的底部,以向后兼容EH非支持节点505和507。由于节点503是EH支持设备,节点503将扫描整个MPLS标签栈以识别EH标签,并执行EH指定的任何网内业务。
[0097] MPLS标签栈包括节点503用来交叉引用查找表中包括的数据的标签。查找表中包括标签映射。节点503可以使用查找表确定报文的下一跳指向节点505。节点503还可以使用查找表中包括的标签映射来确定报文被传输至节点505前标准LDP标签需要位于MPLS标签栈的顶部,因为节点505不支持EH。在某些情况下,节点503插入标准LDP标签。在其它情况下,LDP标签可能已经存在于MPLS标签栈中,节点503将通过移除MPLS标签栈中位置较高的标签来暴露LDP标签。在任何情况下,在该示例中,节点503将配置报文,使得标准LDP标签位于MPLS标签栈的顶部并将报文传输至节点503。
[0098] 节点505接收该报文,该报文包括EH和位于MPLS标签栈底部的EH标签。需要注意的是,节点505不支持EH,因此根据标准LDP标签将报文作为标准MPLS报文处理。为了沿LDP路径将报文转发到下一跳,节点505通过包括节点507相关路由信息的查找表交叉引用LDP标签,可能从MPLS标签栈中弹出顶部标签,并将新的LDP标签压入MPLS栈。弹出顶部标签,在栈顶部留下底层LDP标签,甚至在某些实例中,在MPLS栈顶部留下相同的LDP标签。在任何情况下,由于节点505不支持EH,节点505将使用MPLS标签栈顶部的标准LDP标签将报文传输到节点507。
[0099] 节点507以类似于节点505处理报文的方式处理报文,并将报文发送到节点509。如前所述,节点509只通告给节点507标准LDP能力,因此即使报文中包括EH,节点507发送带有标准LDP标签的报文。
[0100] 当节点509接收到该报文时,该报文包括标准LDP标签。由于节点509支持EH,它将从上到下扫描MPLS标签栈,查找EH标签,并在MPLS栈的底部找到该EH标签。然后,节点509执行EH指定的任何网内业务,然后将新标签添加到MPLS标签栈的顶部。如前所述,节点511向节点509通告EH能力,因此节点509将适当的标签添加到MPLS标签栈的顶部。在本示例中,由于报文包括EH,节点509将标准LDP标签放在MPLS标签栈的顶部。
[0101] 节点511是EH支持节点,以与节点509相同的方式处理包括EH的报文,并将报文转发至节点513,其中标准LDP标签位于MPLS栈的顶部。节点513将以相同的方式处理包括EH的报文,但是由于节点513是LDP路径中的最后一个节点,节点513可以移除MPLS标签栈。
[0102] 对比上述第一示例(其中经由混合MPLS网络500传输的报文包括EH)与以下示例(其中经由混合MPLS网络500传输的消息不包括EH)。由于节点503是EH支持设备,节点503扫描到MPLS标签栈的底部以查找EH标签,但无法找到EH标签。节点503将使用查找表确定报文的下一跳指向节点505,并且由于节点505不支持EH,因此MPLS栈中的顶部标签需要是标准LDP标签。节点503将配置该报文,使得标准LDP标签位于MPLS标签栈的顶部,并将该报文传输至节点503。
[0103] 节点505接收该报文,该报文不包括EH。需要注意的是,节点505不支持EH,因此将报文作为标准MPLS报文处理(事实上,这是因为它不包括EH),并将报文传送到节点507,其中标准LDP标签位于MPLS标签栈的顶部。节点507以类似于节点505处理该报文的方式处理该报文,并将该报文发送到节点509。
[0104] 如在前面的示例中,当节点509接收到该报文时,该报文将包括标准LDP标签。由于节点509支持EH,它将从上到下扫描MPLS标签栈,以查找EH标签,但不会找到EH标签。如上所述,节点511向节点509通告EH能力,因此节点509将适当的标签添加到MPLS标签栈的顶部。在该示例中,由于该报文不包括EH,因此节点509在将报文传输至节点511之前将EH标签推入MPLS标签栈。这与前一个示例不同,在前一个示例中,节点509将标准LDP标签推至MPLS标签栈的顶部,因为报文中存在EH。需要注意的是,本例中,在MPLS标签栈中插入一个EH标签,以指示报文中没有EH,而如果有EH,则使用标准LDP标签。
[0105] 此时,EH标签通过使得节点511避免扫描整个MPLS标签栈而减少处理。节点511知道报文中没有EH,因此节点511无需扫描标签栈以查找EH。由于节点511知道节点513是EH支持设备,因此节点511在将报文传输到节点513之前,在MPLS栈上插入EH标签(在这种情况下为EH‑FEC:php)。在接收到报文后,通过节点511插入的EH标签的存在,节点513可以无需扫描整个MPLS标签栈以查找报文中本不存在的EH。
[0106] 如上述示例所示,即使使用指示“不存在EH”的EH标签并不能防止对MPLS标签栈的所有不必要的扫描。与不使用指示“不存在EH”的EH标签相比,使用根据本公开的这种EH标签可以避免混合网络中足够的不必要的扫描以提高系统性能。
[0107] 接下来参照图6,描述根据本公开各种实施例的方法600的流程图,该方法600包括将EH标签有条件地插入到MPLS标签栈中。
[0108] 如框601所示,EH支持节点接收报文。接收报文的节点确定紧靠接收节点下游的节点是否支持EH,如框603所示。在至少一个实施例中,例如通过查询将该下游节点链接到特定FEC标签的查找表,基于该下游节点的通告的能力进行该确定。
[0109] 如果在方框603处确定该下游节点不支持EH,则将标准LDP标签插入到MPLS标签栈中,如方框609所示。然而,如果在方框603处确定该下游节点支持EH,则进行另一检查以确定该报文是否包括一个或多个扩展头,如方框605所示。
[0110] 如果在方框605处确定该报文不包括一个或多个EH,则向MPLS标签栈插入指示该报文中不存在EH的EH标签,如方框611所示。然而,如果该下游节点支持EH,并且报文包括EH,则接收节点在方框607处执行另一检查以确定EH是否适用于该下游节点。如果EH不适用于该下游节点,则向MPLS标签栈插入指示报文中不存在EH的EH标签,如方框611所示。但是,如果EH适用于该下游节点,则将标准LDP标签插入到MPLS标签栈中,如方框609所示。
[0111] 在将EH标签或标准LDP标签有条件地插入MPLS标签栈之后,报文被传输到该下游节点,如方框613所示。
[0112] 接下来参照图7,根据本公开各种实施例描述在混合MPLS网络中通告标签的方法700的流程图,该混合MPLS网络中包括EH支持节点和EH非支持节点。如方框701所示,检查以确定上游节点是否支持EH。该检查可以由EH支持节点基于网络配置表或通过MPLS网络接收的信息、根据该下游节点和上游节点之间的直接或间接通信执行、或由MPLS控制器执行、或通过它们的某些组合执行。
[0113] 如框703所示,如果上游节点支持EH,则向上游节点通告EHFEC标签。如框705所示,如果上游节点不支持EH,则可以将标准FEC标签通告给上游节点。
[0114] 标准标签或EH标签的通告可以由网络控制器代表自身执行,或由网络控制器代表下游EH支持节点执行,使用MPLS通告协议等。在一些实施例中,各种协议,例如,LDP下游按需(Downstream on Demand,DoD)或下游自主方式(Downstream Unsolicited,DU)、基于流量工程扩展的资源预留协议(Resource Reservation Protocol for  Traffic Engineering,RSVP‑TE)、内部网关协议(interior gateway protocol,IGP)或集中控制器可以被使用,以建立EH支持网络或者混合网络(混合网络中包括EH支持节点和EH非支持节点)的节点之间的标签映射。
[0115] 如在本文中可以使用的,术语“基本上”和“大约”为其对应的术语和/或对象之间的相对性提供了行业接受的误差。这种行业接受的误差范围从小于1%到50%,并且对应于,但不限于部件值、集成电路工艺变化、温度变化、上升和下降时间和/或热噪声。对象之间的这种相对性从几个百分点的差别到巨大差别不等。如也可以在本文中使用的,术语“配置成”、“可操作地耦合到”、“耦合到”和/或“耦合”包括对象之间的直接耦合和/或对象经由中间对象(例如,该对象包括但不限于部件、元件、电路、和/或模块)的间接耦合。在间接耦合的示例中,中间对象不修改信号的信息,但可以调整其电流、电压和/或功率水平。如本文中可以进一步使用的,推断耦合(即,其中一个元素通过推断耦合到另一个元素)包括以与“耦合到”相同的方式在两个对象之间直接和间接耦合。如本文甚至还可以使用的,术语“配置成”、“可操作到”、“耦合到”,或者“可操作地耦合到”表示对象包括电源连接、输入、输出等中的一个或多个,以在激活时执行其一个或多个相应功能,并且还可以包括与一个或多个其它对象的推断耦合。如在本文中还可以进一步使用的,术语“相关联”包括单独对象的直接和/或间接耦合和/或对象嵌入在另一对象中。
[0116] 如也可以在本文中使用的,术语“处理模块”、“处理电路”、“处理器”和/或“处理单元”可以是单个处理设备或多个处理设备。这种处理设备可以是微处理器、微控制器、数字信号处理器、微计算机、中央处理器、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路、和/或基于电路的硬编码和/或操作指令操纵信号(模拟和/或数字)的任何设备。处理模块、处理电路和/或处理单元可以是,或者还包括:存储器和/或集成存储器元件,其可以是单个存储器器件、多个存储器器件和/或其它处理模块、处理电路和/或处理单元的嵌入式电路。这样的存储设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、高速缓存存储器和/或任何存储数字信息的设备。需注意的是,如果处理模块、处理电路和/或处理单元包括多于一个的处理设备,则处理设备可以集中式部署(例如,通过有线和/或无线总线结构直接耦合在一起)或者可以分布式部署(例如,通过局域网和/或广域网实现的间接耦合的云计算)。进一步需注意的是,如果该处理模块、处理电路和/或处理单元通过状态机、模拟电路、数字电路,和/或逻辑电路实现其一个或多个功能,存储相应操作指令的存储器和/或存储器元件可以嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内部或外部。还要注意的是,存储器元件可以存储,且处理模块、处理电路和/或处理单元执行,对应于一个或多个附图中示出的至少一些步骤和/或功能的硬编码和/或操作指令。这样的存储设备或存储器元件可以包括在制造品中。
[0117] 上面借助于说明特定功能性能及其关系的方法步骤描述了本发明的一个或多个实施例。为便于描述,在此任意限定这些功能构建块和方法步骤的边界和顺序。只要恰当地执行了指定的功能和关系,就可以定义可替代边界和序列。因此,任何这样的替代边界或序列都在权利要求的范围和精神内。此外,为便于描述,这些功能构建块的边界被任意定义。只要能适当地执行某些重要功能,就可以定义替代边界。类似地,流程图块也可以在本文中任意定义以说明某些重要功能。在使用的范围内,流程图块边界和序列可以以其它方式定义,并且仍然执行某些重要的功能。因此,功能构建块和流程图块和序列的这种替代定义在所要求保护的本发明的范围和精神内。本领域普通技术人员还将认识到,功能构建块以及本文中的其它说明性块、模块和组件可以如图示地实施,或者通过分立组件、专用集成电路、执行适当软件等的处理器或它们的任何组合实施。
[0118] 本文使用一个或多个实施例来说明本发明的一个或多个方面、一个或多个特征、一个或多个概念和/或一个或多个示例。装置、制造品、机器和/或过程的物理实施例可包括参考本文所述一个或多个实施例中所述的方面、特征、概念、示例等中的一个或多个。此外,各图中,实施例可以包括相同或类似命名的功能、步骤、模块等,其可以使用相同或不同的附图标记,并且因此,功能、步骤、模块等可以是相同或相似的功能、步骤、模块等,或不同的功能、步骤、模块等。
[0119] 除非具体另有说明,否则本文所述任何附图中的至、从、和/或元件之间的信号可以是模拟或数字,连续时间或离散时间,以及单端或差分信号。例如,如果信号通路显示为单端通路,它也表示差分信号通路。同样地,如果信号通路显示为差分通路,它也表示单端信号通路。虽然本文描述了一个或多个特定架构,但同样可以实现其它架构,其使用一个或多个未明确示出的数据总线、元件之间的直接连接和/或本领域普通技术人员所理解的其它元件之间的间接耦合。
[0120] 术语“模块”用于一个或多个实施例的描述。模块包括处理模块、处理器、功能块、硬件和/或存储用于执行本文所述一个或多个功能的操作指令的存储器。需注意的是,如果模块通过硬件实现,则硬件可以独立地和/或与软件和/或固件一起操作。如本文中还使用的,模块可包括一个或多个子模块,每个子模块可为一个或多个模块。
[0121] 虽然已在本文中明确描述了一个或多个实施例的各种功能和特征的特定组合,但这些特征和功能的其它组合同样是可能的。本发明的公开不限于本文公开的特定示例,并且明确地结合了这些其它组合。