用于位索引显式复制的流量工程的制作方法与工艺

文档序号:13083484阅读:205来源:国知局
相关申请本申请根据美国法典第35卷第119(e)章要求于2015年2月26日递交的题为“TrafficEngineeringforBitIndexedExplicitReplication”的美国临时专利申请No.62/121,291的权益,该申请的全部内容通过引用并针对所有目的被合并于此,如同其在本文中被完全且充分的给出。技术领域本发明涉及通信领域。

背景技术:
网络节点转发数据。网络节点可以采用以下形式:一个或多个路由器、一个或多个网桥、一个或多个交换机、一个或多个服务器或任意其他适当的通信处理设备。数据通常被格式化为消息并使用转发表进行转发。消息是数据的格式化单元,其通常包含控制信息和有效载荷数据。控制信息可以包括标识源和目的地的信息,例如,地址、诸如校验和之类的错误检测码、序列信息等。控制信息通常在消息头和消息尾中找到。有效载荷数据通常位于消息头和消息尾之间。基于所使用的网络等级和网络协议之类的因素,消息可以被格式化为和/或称为诸如分组、数据报、片段或帧之类的各种具体类型之一。转发消息涉及各种过程,这些过程尽管概念上简单但可能很复杂。转发所涉及的过程基于所使用的转发方法的类型而不同。整体转发配置包括单播、广播和多播转发。单播是点到点通信的方法,其最常用于特定节点(被称为源)希望向另一特定节点(被称为目的地)发送数据而不涉及向多个接收者发送数据的情况。广播是当源希望向某一域中的所有接收者发送数据时所使用的方法,并且多播允许源向某一域中的一组接收者发送数据而不向该域中的其他接收者发送数据。对于诸如流媒体分发之类的很多流行应用而言,多播是数据转发的优选方法。一个原因是多播是一种带宽节约技术,其允许数据递送到多个接收者而避免相同消息的多个副本通过相同的网络链路进行传输。然而,在传统多播系统中使用了相对较大数量的控制平面信息。设置和维护控制信息在计算资源方面倾向于变得复杂和昂贵,并且可能成为整体网络性能的主要限制因素。

技术实现要素:
根据本发明的一个方面,提供了一种方法,包括:在网络中的第一节点处接收包括消息位阵列的消息;将在消息位阵列中的一个或多个位位置处的位值与存储在第一节点处的转发表中的一个或多个条目进行对比,其中,一个或多个位位置与网络中的链路相对应;以及如果对比的结果指示所述转发表中表示的链路被包括在消息要采用的路径中,那么在所述链路上转发消息。根据本发明的另一方面,提供了一种与网络中的节点相关联的网络设备,网络设备包括:一个或多个网络接口;存储器,存储器被配置为存储包括一个或多个条目的转发表;以及处理器,处理器被配置为:经由网络接口中的一个网络接口接收包括消息位阵列的消息;将在消息位阵列中的一个或多个位位置处的位值与转发表中的一个或多个条目进行对比,其中,一个或多个位位置与网络中的链路相对应;以及如果对比的结果指示所述转发表中表示的链路被包括在消息要采用的路径中,那么在所述链路上转发消息。附图说明通过参考附图,本公开可被更好地理解,并且其多个目的、特征和优势对本领域技术人员而言是明显的。图1是示出示例网络的某些组件的简化图。图2是示出示例网络的某些组件的简化图。图3A是示出通过示例网络的转发消息的简化图。图3B是示出通过示例网络的转发消息的简化图。图4A是示出网络部分的示例的简化图。图4B是示出网络部分的示例的简化图。图5A是示出网络部分的示例的简化图。图5B示出了转发表部分的示例。图5C到5F是示出网络部分的示例的简化图。图6A是示出网络部分的示例的简化图。图6B示出了转发表部分的示例。图6C是示出网络部分的示例的简化图。图6D示出了转发表部分的示例。图7是示出由这里所描述的网络的控制器或节点所执行的处理示例的流程图。图8是示出由这里所描述的网络的控制器或节点所执行的处理示例的流程图。图9A和9B是示出网络部分的示例的简化图。图9C示出了转发表部分的示例。图10A是示出由这里所描述的网络的控制器或节点所执行的处理示例的流程图。图10B示出了转发表部分的示例。图10C是示出由这里所描述的网络的节点所执行的处理示例的流程图。图10D是示出由这里所描述的网络的控制器或节点所执行的处理示例的流程图。图11A是示出由这里所描述的网络的节点所执行的处理示例的流程图。图11B是示出由这里所描述的网络的节点所执行的处理示例的流程图。图11C示出了转发表部分的示例。图12A到12D是示出可用于这里所描述的网络的示例网络设备的某些组件的简化框图。图13是示出可用于这里所描述的网络的示例网络设备的某些组件的简化框图。图14是示出适于实现这里所描述的设备和系统的实施例的计算机系统的框图。具体实施方式概述本文公开了通过一种新形式的位索引显式复制(BIER)进行流量工程转发的方法和网络设备。在一个实施例中,方法包括:在网络中的第一节点处接收包括消息位阵列的消息,以及将消息位阵列中的一个或多个位位置处的位值与存储于第一节点处的转发表中的一个或多个条目进行对比。在该实施例中,一个或多个位位置对应于网络中的链路。这一方法实施例还包括:如果对比结果显示转发表中所表示的链路被包括在消息要采用的路径中,则通过该链路转发消息。在另一方法实施例中,消息是多播消息并且转发消息包括转发多播消息的副本。多播多播传输将多播分组(通常包括标识多播组(例如多播组地址)的信息的分组)从源传递到多个接收者,而不会给源带来过重的负担。虽然本公开中的一些讨论关于分组,但是应该理解本公开还可被应用于其他类型的网络消息,例如数据报或数据帧。如这里所使用的,术语“接收者”表示已订阅到多播组的主机(例如,计算设备或应用)。不是由源复制多播分组并将多播分组的副本发送给每个接收者,而是由源发送多播分组的单个副本,而由多播使能的路由器(本文简称为节点)在到各个接收者的路径分叉的(一个或多个)点处复制该分组。多播路由协议通过在靠近多播分组的目的地处复制该多播分组来实现多播传输(即,一对多连接和多对多连接),从而避免针对相同目的使用多个单播连接。这节省了网络带宽并提高了吞吐量。典型多播路由协议要求每个节点的多播转发表都包括例如将每个多播流的源和组标识符映射到该节点必须经其转发该组的分组副本的接口以及该组的分组应经其正确到达的接口的信息。由每个多播使能节点维护的多播转发表可能在网络上变得非常大,其中具有很多多播源、很多多播组或二者。维护这样的多播转发表给网络可扩展性带来限制。位索引显式复制(BIER)在被称为位索引显式复制(BitIndexexedExplicitReplication,BIER)的“无状态多播”技术中,多播网络内的状态信息量减少。在BIER转发中,接收者信息被编码于分组中,而不是在每个节点处基于多播源和组信息来在表中进行查找。具体地,接收者信息被编码于由分组承载的位阵列中。BIER转发在例如共同未决美国申请No.14/604,092中进行了更详细地说明,但一般而言,与多播接收者相关联的每个节点在位阵列中被分配位位置。被连接到接收者的节点在本文中也可被称为“接收者节点”或“目的地节点”。在给定位位置处的位值指示对应于该位位置的接收者节点是否是承载位阵列的多播分组的预期接收者或目的地。在转发包含分组位阵列的BIER多播分组(或者更一般地,包含消息位阵列的BIER多播消息)中,BIER使能节点确定是否有任何该分组的预期目的地节点也是从该BIER使能节点可达的节点。这通过使用存储于BIER使能节点处的位索引转发表来实现,该转发表具有针对每个BIER使能节点的邻居(直接连接的下一跳)节点的条目。在一个实施例中,针对每个邻居节点的条目包括邻居位阵列,该邻居位阵列具有与分组位阵列相同的位位置到目的地节点的映射。然而,在邻居位阵列中,给定位位置处的位值指示相应的接收者节点是否从邻居节点可达,该邻居节点与包含邻居位阵列的转发表条目相关联。为了BIER转发的目的,节点是否从邻居节点“可达”取决于邻居节点是否被包括在到目的地节点的最短路径中,如通过在网络中所使用的内部网关协议(IGP)所确定的。消息位阵列在本文中还可被称为“位串”,并且邻居位阵列可被称为“位掩码”。如果传入BIER分组的分组位阵列与转发表条目中的邻居位阵列的对比显示多播分组的至少一个预期目的地节点经由邻居节点可达,则通过使用来自转发节点的单播路由表的路由信息来将多播分组的副本转发到该邻居节点。该过程针对与任何其他邻居节点相关联的转发表条目进行重复,并且每个经转发的副本分组进而按照与在被各个BIER使能邻居节点接收时相似的方式而被处理。通过这种方式,多播分组根据需要被复制并转发以到达预期目的地。在一些实施例中,在转发过程中对分组位阵列进行修改,或是在节点处在分组位阵列与后续转发表条目中的邻居位阵列进行对比时,或是在承载分组位阵列的副本分组被转发到邻居节点之前,或在这两种情况下。这样的修改可以防止分组的循环和复制。流量工程上述BIER转发机制基于转发节点的单播路由信息的使用。BIER分组位阵列告知BIER使能节点分组必须到达哪些目的地而不告知使分组到达这些目的地所使用的路径。用于转发给定副本分组的路径是由转发节点的单播路由表确定的路径,该单播路由表通常使用最短路径优先算法建立。尚且没有如通常所实现的那样,使用BIER沿显式路径来路由分组(还被称为“流量工程”)的机制。存在多播分组的显式路由不适合的情况。例如,显式路径通常用于被设计为监控或测量网络路径变量(例如,分组丢失或传输延时)的操作管理维护(OAM)活动中。显式路由可能有用的另一应用是将互联网协议(IP)用于视频广播的专业媒体网络的应用。视频广播网络通常包括在多个位置捕获内容、处理内容以及向一个或多个其他位置传输内容(被称为分发)。基于由控制器生成的控制信号,来自各个源的内容可被合并为连续的流,并且被提供给可能的多个接收者。在内容源之间进行切换以及对接收该流的接收者选择进行修改对时间要求非常严格。如果这些转换不是以非常明确的边界或时间间隔发生,则可能导致视频和音频失真或间断。视频传输也对在IP网络中可能发生的分组丢失所导致的错误非常敏感。因此,一些纠错方案包括通过替换路径来发送匹配分组流,从而接收者可以在流之间进行切换以重建无误信号。一般情况下视频广播所涉及的严格时间要求以及在某些情况下需要多个独立路径使得需要定义显式路径。某些现有技术允许流量工程。例如,在采用多协议标签交换(MPLS)的网络中,显式路径可以使用被称为采用流量工程的资源预留协议(RSVP-TE)的协议来建立。当初始节点沿所请求的路径逐节点发送请求消息并且路径的最终节点通过沿该路径发回供该路径使用的MPLS标签来进行确认时,显式路径或“隧道”使用RSVP-TE被指定。这些标签随后必须被添加到沿着路径的节点的转发表。如果显式路径响应于网络拓扑或网络条件的改变而改变,则预留过程必须再次执行。RSVP-TE过程可被扩展到使用点到多点(P2MP)RSVP-TE的多播树。每个多播组将具有其自身的树预留过程及其自身的标签集,从而除了预留过程所需的时间和带宽之外,还需要每个节点处将标签与组和源信息相关的转发表的重要状态。允许创建显式路径的另一转发机制是分段路由。分段路由在例如共同未决美国专利申请No.14/292,264中进行了详细说明。在分段路由中,路径信息以分段标识符集的形式承载在分组中,其中路径通过拓扑子路径来构造,其中每个子路径与分段标识符相关联。由分组承载的分段标识符集可以各种数据平面技术(例如,通过MPLS标签栈或通过嵌入互联网协议第六版(IPv6)扩展头中的标识符串)来实现。分段标识符可使用现有IGP来通告和交换,该现有IGP用于在IP网络中交换单播路由信息,从而不需要控制平面协议,例如,用于MPLS网络中的RSVP-TE协议或标签分发协议(LDP)。定义分组路径的分段标识符集例如由入口节点或网络控制器来确定,并被添加到分组的封装中。该封装将分段标识符沿所定义的路径顺序安置。然后转发通过在转发节点的分段路由转发表中查找第一分段标识符(例如,在使用标签栈的MPLS实现方式中是最上面的标识符)来进行。当对应于分段标识符的子路径已经被通过时,该标识符从分组所承载的分段标识符的活动集中移除。相应地,分组的路径通过顺序访问由分组承载的分段标识符来定义。虽然分段路由允许在每个转发节点处通过相当小的“状态”(标识符、标签等的存储)来定义显式路径,但是当前定义的分段路由不允许多播路径定义或转发。采用流量工程的位索引显式复制(BIER-TE)被称为采用流量工程的位索引显式复制(BIER-TE)的新的转发方法允许定义多播显式路径,同时展现出与上述现有BIER转发机制类似的多播状态信息的减少。现有BIER机制在本文中可被称为“BIER”、BIER最短路径优先(“BIER-SPF”)或“非TEBIER”。BIER和BIER-TE二者将路径相关信息编码于由分组承载的位阵列中。然而,对于这两个技术而言,所编码的信息类型是不同的。如上所述,BIER所使用的位阵列中的位位置对应于多播分组的接收者(例如连接到各接收者的出口节点或这些出口节点的入口节点)。而在BIER-TE中,位位置对应于路径中的链路,其中“链路”在本文中一般被用作网络节点与网络的另一节点或另一协议等级之间的数据连接。本文所描述的链路在本文中作为路径段或子路径,使得消息的路径由一系列相连的链路构成。由位位置表示的链路在本文中也被称为“跳”或“邻接”。由BIER-TE位阵列中的位位置表示的链路可具有多种不同的类型。例如,链路可以连接一个网络节点和直接相连的相邻节点。这种类型的直接链路可被定义为单向或双向链路。位位置还可表示一个节点与非相邻节点之间的间接连接,使得该链路包括一个或多个中间节点。除了网络节点之间的这些直接和间接连接之外,位位置还可以表示网络的BIER-TE协议层和更高的协议层之间的连接。准备通过BIER-TE来转发分组包括四个基本过程:确定分组(和同一多播组中的其他分组)路径(或形成多播树的路径集);向连接在一起以创建路径或树的链路分配位位置;对分组进行封装以包括分组位阵列,该分组位阵列已在与沿路径的链路所对应的位位置中进行了位设置;以及对于沿路径的每个节点,表示连接到该节点的链路的位位置以及适当的转发指令被添加到该节点处的BIER-TE转发表中。这些过程在下文将详细讨论。BIER-TE转发示例图1示出了示例网络100。网络100包括节点118、120、122、124、126和128,这些节点被配置为使用BIER-TE来转发分组或其他消息。例如,这些BIER-TE使能节点被配置为基于BIER-TE位位置分配来存储和使用相应的位索引转发表,下文将进一步解释。在一些实施例中,这些BIER-TE使能节点中的一些或全部也能够使用反应不同位位置分配的不同转发表来转发非TEBIER分组。字母A到F表示BIER-TE使能节点的各个唯一标识符,例如,IP环回地址(在IP网络的情况下)。为了简洁起见,这些字母在本文被用于指代各个节点,并且用于描述网络100中的链路和路径。节点之间的实线表示节点之间的数据连接;在一个实施例中,这些连接是物理的点到点链路。在图1的实施例中,BIER-TE使能节点118、120、122、124、126和128构成提供商网络或域。该提供商网络可由互联网服务提供商用于向消费者传输分组。该域包括核心节点120和122以及提供商边缘节点118、124、126和128。提供商边缘节点被耦合至消费者边缘节点110、112、114和116。主机102、104、106和108被耦合至消费者边缘节点。在图2的实施例中,主机102是多播源,而主机104、106和108被配置为多播接收者或订户。BIER-TE使能节点118被配置为多播数据分组的入口路由器。入口路由器经由消费者边缘节点110被耦合至源102。来自源102的多播数据分组经由入口路由器118进入BIER-TE网络。BIER-TE使能节点124、126和128中的每一个被配置为出口路由器。出口路由器可被连接(直接地或经由消费者边缘路由器)至主机(例如接收者)或其他网络。本文所使用的出口路由器是BIER-TE使能节点,该BIER-TE使能节点是源与接收者之间的路径上的最后一个BIER-TE使能节点。出口路由器可以是直接或间接(例如通过非BIER使能消费者边缘节点)耦合至接收者的提供商边缘节点。网络100还包括中央控制器130。在实施例中,控制器130是BIER-TE网络的数据路径外部的控制器主机。在替换实施例中,入口节点118被配置为执行控制器130的一些或全部功能。在另一实施例中,控制器130的一些或全部功能可通过手动配置过程来执行。在实施例中,图1的控制器130通过与用于通过网络100转发多播分组不同的机制和/或协议来与BIER-TE使能节点中的每一个交互。该交互可被称为“带外”或“交叠”信令。控制器130与入口节点A之间的示例性交互由图1中的虚线132示出。虽然为了简洁起见,图1省略了额外的虚线,但是类似的通信也发生在控制器130与节点B到F中的每一个之间。控制器130与BIER-TE使能节点之间的通信可以通过一个或多个控制协议发生。作为示例,与控制器130的通信可以使用NETCONF和/或RESTCONF协议以及YANG数据建模语言来发生。这些协议例如在“NetworkConfigurationProtocol(网络配置协,NETCONF)”(R.Enns,M.Bjorklund,J.Schoenwaelder,和A.Bierman,Eds.,RFC6241,2011年6月,见https://tools.ietf.org/html/rfc6241)、“RESTCONFProtocol(RESTCONF协议)”(A.Bierman,M.Bjorklund,和K.Watsen,2015年6月4日,见https://tools.ietf.org/html/draft-ietf-netconf-restconf-05)、以及“YANG-ADataModelingLanguagefortheNetworkConfigurationProtocol(针对网络配置协议NETCONF的数据建模语言)”(M.Bjorklund,Ed.,RFC6020,2010年10月,见https://tools.ietf.org/html/rfc6020)中进行了进一步描述,这些文档通过引用被合并于此,如同在本文被全部给出。作为另一示例,在BIER-TE使能节点运行BGP的实施例中,控制器130可以使用边界网关协议(BGP)与节点A到F通信。与控制器130的通信通过到控制器130的数据链路来承载,该数据链路在图1中未明确示出。在实施例中,节点A到F与控制器130之间的控制通信通过用于通过网络100来传输消息的相同物理链路中的一些或全部来承载,但是不同协议用于消息传输和控制传输。在图1的实施例中,控制器130的功能包括:向网络100的BIER-TE使能部分内的链路分配位位置;将位位置分配传输至各BIER-TE使能节点中的转发表;确定特定多播组内的消息将遵循的显式路径(或树);以及向组的BIER-TE入口节点传输组成路径的位位置以及多播组的标识。采用控制器(例如控制器130)的实施例可与软件定义网络(SDN)实现相关联。在分配位位置中,控制器使用网络的拓扑信息。在一个实施例中,网络节点运行内部网关协议(IGP),并且控制器130通过IGP通告来获得网络100的拓扑。在替换实施例中,控制器130通过不同协议的操作或通过手动配置来获得拓扑信息。控制器130通常还在分配位位置中使用多播组成员信息。位位置分配仅对于消息在网络中要采取的路径中所包括的网络链路是需要的,而不是对于网络中的每条链路都是必需的。因此,多播组成员信息能够协助控制器130确定哪些网络链路应被分配位位置,并且被包括在显式路径中。在一个实施例中,提供商边缘节点(例如,网络100的节点A、D、E和F)与控制器130通信以将其各自的主机标识为特定多播传输的源或接收者(订户),并通知控制器组成员状态的任何改变。在另一实施例中,通过提供商边缘节点与控制器130的通信是响应于从节点相关联的主机接收多播协议消息(例如,“加入”或“删除”消息)。图1示出了对链路的示例性位位置分配。在图1使用的符号中,分配给链路的位位置用方括号中的数字来表示。符号的其他方面表示不同类型的链路,下文将进一步解释。例如,位位置分配134包括位于单向箭头上的方括号中的位位置号。箭头指向由位位置所表示的链路的方向。例如,位位置1被分配给节点A和节点B之间的直接链路,用于从A到B的消息传输。换言之,位位置1表示节点A和B之间的单向直接链路。这样的直接链路还可被称为例如“直接邻接”、“相连邻接”、“前向连接邻接”或“直接跳”链路或邻接。类似地,位位置2被分配给节点B和C之间的单向直接链路,并且位位置4被分配给节点B和E之间的单向直接链路。网络100中BIER-TE使能节点之间的其他单向直接链路包括节点C和D之间(分配位位置3)以及节点E和F之间(分配位位置5)的单向直接链路。在本文所使用的惯例中,向链路分配位位置号意味着对包含该链路的路径进行编码的位阵列将在对应于该链路的位位置号的位位置中具有置位位(位值为“1”而不是“0”),从右侧数起。例如,仅对图1的节点B和C之间的路径进行编码的12位位阵列(被分配位位置2)被表示为{000000000010
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1