网络控制器间的通信的制作方法

文档序号:15203690发布日期:2018-08-21 06:03阅读:150来源:国知局

研究或开发

不适用

参考缩微胶片附录

不适用



背景技术:

电信网络连接主机以支持不同地理位置之间的数据通信。采用控制面来建立和管理数据连接,同时采用流量工程(trafficengineering,te)协议来优化网络效率。采用数据转发面来管理控制面所建立的连接上的数据分组转发。数据可以通过无线网络、光网络、电网络和电光网络进行转发。维护各种网络类型的数据连接需要考虑不同的连接限制。



技术实现要素:

在一项实施例中,本发明包括一种用作父控制器的网元(networkelement,ne),所述ne包括:接收器,用于:从多个子控制器接收连接和接入点消息,每个子控制器控制一个或多个网络域,其中,所述连接和接入点消息指示所述网络域的域间链路和接入点;以及接收计算遍历一个或多个所述网络域的从源地到目的地的路径的请求;耦合到所述接收器的处理器,用于计算经由所述网络域的从所述源地到所述目的地的所述路径,而不接收所述网络域的所述内部拓扑;以及耦合到所述处理器的发射器,用于向所述路径上控制至少一个网络域的所述子控制器传输创建隧道段消息,所述创建隧道段消息指示所述关联子控制器创建一个或多个隧道段,从而沿所述路径转发从所述源地到所述目的地的通信。

在另一项实施例中,本发明包括一种在网元中实施的方法,所述方法包括:所述ne的接收器从多个分布式控制器接收连接和接入点消息,每个分布式控制器控制一个或多个网络域,其中,所述连接和接入点消息指示所述网络域的域间链路和接入点;所述接收器接收计算遍历一个或多个所述网络域的从源地到目的地的路径的请求;所述ne的处理器计算经由所述网络域的从所述源地到所述目的地的所述路径而不接受所述网络域的所述内部拓扑;以及所述ne的发射器向所述路径上控制至少一个网络域的分布式控制器传输创建隧道段消息,所述创建隧道段消息指示所述关联分布式控制器创建一个或多个隧道段,从而沿所述路径转发从所述源地到所述目的地的通信。

在另一项实施例中,本发明包括一种用作分布式控制器和父控制器的ne,所述ne包括:接收器,用于:从多个子控制器接收连接和接入点消息,每个子控制器控制一个或多个子网络域,其中,所述连接和接入点消息指示所述子网络域的域间链路和接入点;从多个分布式控制器接收连接和接入点消息,每个分布式控制器控制一个或多个分布式网络域,其中,所述连接和接入点消息指示所述分布式网络域的域间链路和接入点;以及接收计算从一个所述子网络域中的源地到一个所述分布式网络域中的目的地的路径的请求;耦合到所述接收器的处理器,用于计算经由至少一个所述子网络域和至少一个所述分布式网络域的从所述源地到所述目的地的所述路径;以及发射器,用于:向所述路径上控制至少一个子网络域的子控制器传输创建隧道段消息,所述创建隧道消息指示所述关联子控制器创建一个或多个隧道段,从而沿所述路径转发从所述源地到所述目的地的通信;以及向所述路径上控制至少一个分布式网络域的分布式控制器传输创建隧道段消息,所述创建隧道段消息指示所述关联分布式控制器创建一个或多个隧道段,从而沿所述路径转发从所述源地到所述目的地的通信。

结合附图和权利要求书,这些特征和其它特征将在下文详细的描述中更清晰地得以理解。

附图说明

为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。

图1是分层控制器网络的实施例的示意图。

图2是用作控制器网络内的控制器的ne的实施例的示意图。

图3是在分层控制器网络中发现网络的方法的实施例的协议图。

图4是跨分层控制器网络所控制的网络域计算路径的方法的实施例的协议图。

图5是跨分层控制器网络所控制的网络域管理通信隧道的方法的实施例的协议图。

图6是跨分层控制器网络所控制的网络域管理路径段的方法的实施例的协议图。

图7是操作父控制器的方法的实施例的流程图。

图8是分布式控制器网络的实施例的示意图。

图9是分布式控制器网络中发现网络的方法的实施例的协议图。

图10是跨分布式控制器网络所控制的网络域计算路径的方法的实施例的协议图。

图11是跨分布式控制器网络所控制的网络域管理通信隧道的方法的实施例的协议图。

图12是跨分布式控制器网络所控制的网络域管理路径段的方法的实施例的协议图。

图13是操作分布式控制器的方法的实施例的流程图。

图14是混合分布式分层控制器网络的实施例的示意图。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方式,但所公开的系统和/或方法可使用任何数量的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方式、附图和技术,包括本文所说明并描述的示例性设计和实施方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

本文公开了一种用于管理多域网络上的通信并允许每个域为内部拓扑保密的控制方案。可以在具有父控制器层和子控制器层的分层架构中配置网络控制面,其中,子控制器各自维护对一个或多个域的直接控制。父控制器基于子控制器所执行的域特定计算做出全局路径计算和通信隧道分配决定。也可以在具有多个分布式控制器的分布式架构中配置网络控制面,这些分布式控制器可以直接控制对应的域。路径计算和隧道分配决定可以按照域进行。此外,网络控制面可以在采用分层控制器组和分布式控制器的混合架构中实施。为了支持可能的组件组合,控制器用于向其它控制器传输发现消息,如适用,发现消息指示子控制器、父控制器和/或分布式控制器等传输控制器角色以及层级。在交换发现消息时,可以直接控制域的控制器向其相邻控制器传输指示域间链路和相关域接入点的消息,而不传输内部拓扑或流量工程(trafficengineering,te)信息。每个控制器负责计算控制器本地域中的路径段和te信息,并向其它感兴趣的控制器传输抽象形式的计算出的路径段和对应路由成本,以支持全局路径计算和隧道分配并保持内部te机密性。为每个全局路径和每个隧道分配全局标识符(例如全局路径标识符(globalpathidentifier,gpid)、全局隧道标识符(globaltunnelidentifier,gtid)等),以允许在多域环境中对路径/隧道进行全局区分。本发明还包括用于维护对域的全局控制的各种消息,例如指示接入点/域间链路变化的消息,指示对指定域中计算出的路径段进行存储和/或移除的消息,以及指示对指定域中的隧道进行分配和/或移除的消息。

图1是分层控制器网络100的实施例的示意图。分层网络100包括网络域113、子控制器111和121以及父控制器101。网络域113通过如虚线所示的域间链路连接,并在内部和跨域间链路上对数据进行路由。域间链路是通过一个或多个接入点(例如边缘节点)耦合两个域的任何链路。基于层级中与主父控制器相隔的控制面中的跳数来指定父控制器101和子控制器111和121各自的级别(例如,父控制器101是0级,子级控制器121是1级,子控制器111是1级或2级)。子控制器111和121各自基于来自父控制器101和/或以父级身份工作的子控制器121的指令来控制其级别下的设备。

网络域113是通过通用/共享程序(例如通用寻址方案、安全程序等)管理的一组互连硬件和/或软件设备。每个网络域113包括用于转发数据的各种网元(networkelement,ne)或节点。ne可以包括路由器、交换机、主机、服务器、桥等。ne通过链路互连。根据实施例,链路可以包括电、光和/或电光有线连接或无线连接。基于使用的ne和链路,通过域路由的通信必须满足各种约束,以便在退出域时可读。密集波分复用(densewavelengthdivisionmultiplexing,dwdm)等光域约束可以包括最小色度色散、光学串扰、极化损伤、光发射器调谐范围(例如颜色约束)、定向波长分配约束、光信噪比、光接收器的质量(quality,q)因子、指定节点的光交叉连接要求、可用波长等。电气系统的约束可以包括电串扰、电信噪比要求等。网络域113还可以包括针对指定通信会话的策略约束,例如所需服务质量(qualityofservice,qos)、通信优先级、带宽要求、路由成本要求(例如最小跳数、最小时延等)等。网络域113包括用作该域的接入点的边缘节点。进入或离开网络域113的流量经由域间链路通过接入点。接入点包括可从网络域113外部访问的互联网协议(internetprotocol,ip)地址、媒体访问控制(mediaaccesscontrol,mac)地址和/或虚拟地址。接入点还为网络域113提供安全(例如防火墙)。网络100可以包括任意数量的表示为第一(1)至总数(n)的域113,根据具体的操作环境需求而定。此外,一些网络域113可以包括作为硬件上的软件进行操作并模拟硬件网络的虚拟可扩展网络(virtualextensiblenetwork,vxn)或虚拟机(virtualmachine,vm)。

每个域113由子控制器111控制。子控制器111是基于来自父控制器的指令操作网络设备的任何控制器,例如父控制器101或较高级别(较高级别由较小的级别数字指示)的子控制器121,该子控制器121可以用作父控制器和子控制器。子控制器111是根据距离父控制器101的跳数指定级别。因此,直接连接到父控制器101的子控制器是一级控制器,通过一级控制器连接到父控制器101的子控制器是二级控制器,等等。子控制器111可以维护拓扑数据库、te数据库、转发信息库(forwardinginformationbase,fib)和/或其它数据结构,以跟踪内部域113拓扑(例如域中节点和链路连接映射)、当前流量状态、接入点状态、域间链路状态等。子控制器111用于响应于另一控制器的请求来计算满足任何所需约束的遍历对应域113的候选路径段。子控制器111可以将计算出的路径段进行抽象并返回给请求控制器,将计算出的分段保存在存储器中供以后使用,和/或在运行命令时或者在指定时间段超时后从存储器中移除这些分段。例如,子控制器111可以计算遍历指定接入点之间的对应域113的路径段,并且向较高级别的控制器返回指示接入点地址和遍历域113的路由成本的数据,而不传送内部拓扑或域的内部约束。子控制器111还可以向父控制器101和/或较高级别的子控制器121更新拓扑变化,这些拓扑变化会影响接入点、域间链路和/或计算出的路径段约束。子控制器111还可以分配和维护路由隧道和/或备用隧道,以沿遍历对应域113的路径的一部分传输通信。

父控制器101是用于通过控制多个子控制器111来控制跨多个域113的路由的任何控制器。父控制器101用于执行跨域113的端到端路径计算和维护,该域113由父控制器的最低级别子控制器111控制,其中,最低级别由最高的级别数字指示。父控制器101还用于通过遍历父控制器的最低级别子控制器111所控制的域113来创建和维护用于对从源地到目的地的通信进行路由的隧道。例如,父控制器101可以维护指示以下内容的数据结构:该父控制器101下的每个域113、每个域113的接入点地址以及域间链路拓扑。在从源节点和/或外部应用等接收到路径计算请求时,父控制器101可以确定遍历源地和目的地之间的域113的多个候选路径。父控制器101然后可以向任何候选路径上控制域113的每个子控制器111和/或子控制器121传输路径段消息。子控制器111和/或子控制器121可以返回跨对应域113连接指定接入点的抽象路径段以及路径段的对应约束值。然后,父控制器101可以基于路径段来选择遍历多个域113的从源地到目的地的路径,而无需知道域的内部拓扑。进而,父控制器101可以指示子控制器111和/或子控制器121沿路径创建隧道、保留计算出的分段、移除计算出的分段等。

子控制器121是一级控制器,因为子控制器121与父控制器101有一跳的距离。这样,子控制器121用作父控制器101的子控制器以及连接的零层子控制器111的父控制器。因此,子控制器121具有父控制器101的功能,但是仅针对子控制器121控制的零层控制器(例如子控制器4和子控制器5)。这样,子控制器121可以计算跨子控制器121的二级子控制器111所控制的域113(例如域3和域4)的候选路径段并创建对应隧道。应当注意,虽然示出了单个的层一子控制器121,但是可以根据需要采用不同级别的多个子控制器来实施特定网络拓扑。因此,子控制器111和121可以用作层一到层x控制器,其中,x的值由网络管理员确定。通过采用多个层,网络100提供稳固的可配置操作环境,这种环境可以用于根据网络管理员的需求来控制全部或部分网络。

图2是用作网络100、800和/或1400等控制器网络内的控制器的ne200的实施例的示意图。例如,ne200可以用作/实施父控制器101、子控制器111、121和/或1422、分布式控制器811和/或1411,和/或网络100、800和/或1400中的任何其它节点。ne200可以在单个节点中进行实施,或者ne200的功能可以在多个节点中实施。本领域技术人员将认识到,术语“ne”包括广泛范围的设备,其中ne200仅为一个示例。ne200包含在内是出于清晰论述的目的,而绝不是为了将本发明的应用限于特定ne实施例或特定类别的ne实施例。本发明所述的至少部分特征/方法在ne200等网络装置或组件中实施。例如,本发明的特征/方法可以通过硬件、固件和/或安装在硬件上运行的软件来实施。ne200是通过网络传输帧的任何设备,例如交换机、路由器、桥、服务器、客户端等。如图2所示,ne200可以包括收发器(transceiver,tx/rx)210,该收发器是发射器、接收器或其组合。tx/rx210耦合到多个下行端口220(例如,下行接口),以发送和/或接收来自其它节点的帧,tx/rx210耦合到多个上行端口250(例如,上行接口),以分别传输和/或接收来自其它节点的帧。处理器230耦合到tx/rx210以处理帧和/或确定帧要发送的节点。处理器230可以包括一个或多个多核处理器和/或存储器232设备,该设备用作数据存储设备、缓存、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)等。处理器230可以实施为通用处理器或者可以是一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)和/或数字信号处理器(digitalsignalprocessor,dsp)中的一部分。处理器230包括网络控制模块234,该网络控制模块234实施本文讨论的至少部分方法,例如方法300、400、500、600、700、900、1000、1100、1200、1300和/或它们的组合。在一项替代性实施例中,网络控制模块234实施为存储在存储器232中的由处理器230执行的指令,或者部分地在处理器230中实施以及部分地在存储器232中实施,例如,存储在非瞬时性存储器中的计算机程序产品,该存储器包括处理器230所实施的指令。在另一项替代性实施例中,网络控制模块234在独立的ne上实施。下行端口220和/或上行端口250可以包括电气和/或光学传输和/或接收组件。

应理解,通过将可执行指令编程和/加载到ne200,处理器230、网络控制模块234、tx/rx210、存储器232、下行端口220和/或上行端口250中的至少一项会发生变化,从而将ne200部分转变为特定机器或装置,例如具有本发明所述的新颖功能的多核转发架构。对于电子工程和软件工程领域最基础的是,可以通过加载可执行软件到计算机而实施的功能可以通过众所周知的设计规则转换为硬件实施。在软件中还是在硬件中实施概念的决定通常取决于对设计稳定性和要生产的单元数量的考虑,而不是从软件域转化为硬件域时所涉及的任何问题。一般而言,仍然会频繁变更的设计可能会优先采用软件来实施,因为重新开发硬件实施比重新编写软件设计更昂贵。通常,将会大量生产的稳定设计可能优先在asic等硬件中实施,因为对于大批量生产,硬件实施方式比软件实施方式花费更少。设计通常以软件形式开发和测试,之后通过众所周知的设计规则转化为专用集成电路中的等效硬件实施,其中,专用集成电路硬连线到软件指令。与新的asic所控制的机器是特定的机器或装置相同,同样地,编程和/或加载有可执行指令的计算机可视为特定机器或装置。

图3是网络100等分层控制器网络中发现网络的方法300的实施例的协议图。方法300由父控制器101等父控制器、子控制器121等一级子控制器和子控制器111等二级子控制器实施,其中每个控制器可以由ne200等ne实施。虽然示出了三级层级,但本领域技术人员要理解,方法300可以通过在每个新级别采用一级子控制器的步骤来扩展到任何指定级别数的子控制器或者通过移除一级子控制器的步骤来缩减到两级层级。

方法300在启动一个或多个控制器时开始。在步骤301、303和305,分别配置父控制器、一级子控制器和二级子控制器。每个控制器都配置一个角色,用于指定控制器的能力。该配置可以自动执行或由网络管理员等用户执行。控制器可以配置父角色(例如父控制器)、子角色(例如二级子控制器)或两者(例如一级控制器)。父角色指示控制器能够执行端到端的域间路径计算(end-to-endinter-domainpath,ep),执行端到端的域间隧道创建(end-to-endinter-domaintunnel,et),以及对遍历父控制器所控制的域的任何路径/隧道的部分执行相关维护。例如,父控制器101对域1至n113执行路径计算和隧道创建,而子控制器3121(在子控制器3121的父角色中)对域3至4113执行路径计算和隧道创建。子角色指示控制器能够执行域内路径段计算(pathsegment,ps)和域内隧道段创建(tunnelsegment,ts),以及对遍历控制器所控制的域的路径/隧道段执行相关维护。例如,子控制器2111通过域2113计算路径并创建隧道段。因此,子控制器通过考虑本地拓扑和约束来计算通过对应域的路径/隧道段,并向父控制器提供抽象链路(基于计算)、关联的域间端点以及计算出的约束,并且父控制器基于抽象链路执行域间路径/隧道计算,而不考虑本地拓扑/te。每个控制器还配置有本地网络地址以及指示与相邻控制器的邻接关系的数据。在一项实施例中,子角色指示子控制器与对应父控制器交换控制消息,但不与处于其相同级别的任何子控制器交换控制消息。

在配置步骤301之后,在步骤311,父控制器(或者一些实施例中为新启动的子控制器)向父控制器的相邻子控制器(例如,一级子控制器)中的每一个传输发现消息。步骤311的发现消息指示父控制器作为父级的角色、父控制器在层级中的级别(例如零级)以及父控制器的网络地址。来自发现消息的数据由一级子控制器存储。在步骤313,作为父控制器的一级子控制器向其相邻子控制器(例如,二级子控制器)中的每一个传输另一发现消息。步骤313的发现消息指示控制器作为父级的角色、控制器在层级中的级别(例如一级)以及父控制器的网络地址。该过程沿层级继续往下,直到达到层级中最低级别的子控制器(例如,二级子控制器)。在步骤315,每个二级子控制器(例如层级中最低级别的控制器)向其父控制器发送指示二级子控制器的角色、级别和网络地址的发现消息。在步骤317,一级子控制器向其父控制器发送发现消息。一旦父控制器接收到父控制器的所有发现消息,父控制器就知道其所有子控制器的角色和地址。反之,一旦每个子控制器都接收到父控制器的发现消息,所有子控制器就知道其父控制器的角色和地址。步骤311、313、315和317中的发现消息还可以包括通过采用ep字段、et字段、ps字段和/或ts字段来实现的每个设备的能力显式指示,这些字段可以设置为1(或0)以指示对应控制器能够执行对应功能。

ep指示控制器能够执行控制器(或该控制器下面较低级别的控制器)所控制的域中的任何两点之间的端到端域间路径计算。ep指示控制器能够创建和维护控制器(或该控制器下面较低级别的控制器)所控制的域中的任何两点之间的端到端域间隧道。ep和et可以分别基于遍历域的抽象链路来执行,而无需知道所遍历的域的底层拓扑或te数据。ps指示控制器可以计算从控制器所控制的域中的指定点到域的每个边缘节点和/或到相邻域的每个边缘节点的最短路径段。通过使用例外列表和一组约束(例如,如上所述的物理或策略约束)来执行最短路径段计算,使得计算出的分段全部满足约束并且不会在例外列表中的任何节点处终止。具有ps能力的控制器还可以将计算出的特定端到端路径的路径段存储指定时间段,对域外部隐藏关于每个路径段的细节(例如,通过将分段抽象成链路),根据请求移除计算出的路径段,在指定的时间段后移除计算出的路径段,和/或根据请求无限期地保留指定的路径段组。ts指示控制器可以根据请求创建和维护隧道段。具体而言,控制器可以分配/预留控制器所控制的域内的指定路径段上的资源,并写入路径段上的隧道段的交叉连接。具有ts能力的控制器也可以根据请求移除和/或更新隧道段。

最低级别的控制器在步骤321执行拓扑发现以确定对应网络域拓扑,网络域物理和/或策略约束、网络域流量分配等。此类信息存储在te数据库、fib、路由表等本地数据结构中。二级子控制器在步骤323发送连接和接入点(accesspoint,ap)消息。步骤323中的ap消息指示二级子控制器所控制的域的域间链路和接入点(例如边缘节点)的网络地址,这些接入点位于域中并且可以通过域间链路从域外部访问。ap消息的数据由一级子控制器存储。在步骤325,用作二级子控制器的父控制器的一级子控制器向其父控制器(例如零级父控制器)发送包含连接到相邻域的域间链路的ap消息,其中相邻域不是由其子控制器控制。因此,作为一级子控制器的父控制器将其子控制器所控制的域抽象为其父控制器(例如零级父控制器)的一个大域。连接其子控制器所控制的域的域间链路对其父控制器而言为隐藏。当启动最低级别的子控制器时,可以发送步骤323和325中的ap消息;当最低级别的子控制器在步骤313接收到发现消息时,可以发送步骤323和325中的ap消息;和/或可以周期性发送步骤323和325中的ap消息。通过从其每个子控制器接收步骤325中的ap发现消息,父控制器获得域间拓扑的抽象高级视图,而不知道每个网络域的域内拓扑。如果子控制器失败和/或超时(例如未能周期性发送步骤325中的ap发现消息),则父控制器可以从父控制器的数据库结构中移除对应的域间链路和接入点,并且对失败的控制器所控制的域周围的通信进行路由。

如果在步骤331发生影响接入点或域间链路的拓扑变化,则二级子控制器在步骤333向一级子控制器发送更新的ap消息以指示该变化。一级子控制器存储更新并向其父控制器发送更新的ap消息,以将其子控制器所控制的域抽象为其父控制器的一个大域,该父控制器还存储更新,从而层级中的每个控制器都知道影响控制器负责的域的任何接入点或域间链路变化。这个过程允许向更高级别的控制器连续通知与控制器能力和域间路径计算/隧道创建有关的数据,而无需提供域内拓扑或te信息。

在发现连接(例如抽象链路)和接入点之后,父控制器具有关于其子控制器所控制的所有域的外部信息。例如,父控制器知道其子控制器所控制的域之间的连接(例如连接域的域间链路)以及其子控制器所控制的域中的可访问接入点的网络地址。连接可以包括连接域的链路的属性和链路端点的属性。链路端点的属性指示区域边界路由器(areaborderrouter,abr)、自治系统边界路由器(autonomoussystemborderrouter,asbr)等端点节点的类型,以及自治系统(autonomoussystem,as)号和地区号等端点的域。接入点包括可在域外部访问的域的地址或前缀。

图4是跨网络100等分层控制器网络所控制的网络域计算路径的方法400的实施例的协议图。方法400由父控制器101等父控制器、子控制器111和/或121等子控制器1至n实施,其中每个控制器可以由ne200等ne实施。该路径跨域113等一个或多个域1至n进行计算。为简单起见,将方法400描述为采用两级层级进行实施,但可以通过将关联消息穿过具有父角色和子角色的网络控制器来用于任何级别的层级。

在(例如根据方法300)启动和配置分层控制器网络,使得控制器知道彼此的角色、级别、能力等之后,发起方法400。在步骤401,在每个网络域和网络域的对应子控制器之间连续交换te消息。步骤401中的te消息允许每个子控制器1至n随时知晓相应网络域1至n的拓扑、约束和/或流量状态。在步骤411,父控制器接收隧道请求。可以从应用、请求移动数据的终端用户(例如客户端)、请求移动数据的源节点等接收步骤411中的隧道请求。隧道请求指示源节点和目的节点并且请求建立隧道,从而对跨多个网络域的源地和目的地之间的通信进行路由。隧道请求还可以指示隧道必须符合的策略或物理约束。

响应于步骤411中的隧道请求,父控制器分配gtid以全局标识域间隧道,并分配gpid以全局标识隧道的多域路径。gtid和gpid允许每个控制器/域将任何本地隧道/路径段映射到对应的全局标识符,而不用管本地隧道/路径标识规则如何,从而支持在多个域之间进行一致的隧道和路径标识,而无需在域之间共享内部拓扑和te信息。父控制器还确定可以用作源地和目的地之间的端到端路径的一部分的每个域。然后,父控制器在步骤413和416可能按特定顺序沿路径向控制网络域的相关子控制器1至n中的每一个发送路径段消息。路径段消息请求计算跨对应域的候选路径段,这些对应域可能是端到端路径的一部分。每个路径段消息都包括对应控制器所控制的域中的节点的地址,该节点用作域中要计算的所有路径段的本地源地。路径段消息还包括所请求的隧道/路径的gtid和gpid以及要应用于路径段的任何策略或物理约束。路径段消息还包括例外列表,该列表指示不应该包括进路径段计算的边缘节点,例如,因为与边缘节点相邻的域不是计算的一部分,到边缘节点的路径段由于发生在相邻域中的路径段计算等导致回路或不可用的高路由成本路径。路径段消息还可以包括用于计算路径段的选项。例如,路径段消息可以包括设置为1的边缘(edge,e)标志,以指示应该对相应子控制器所控制的域中的每个边缘节点(除了例外列表中的边缘节点)计算最短路径段。路径段消息还可以包括设置为1的外部(outside,o)标志,以指示应该对相应子控制器所控制的域的相邻域中的边缘节点(除了例外列表中的边缘节点)计算最短路径段。父控制器还在步骤416向控制包含目的节点的目的域的目的子控制器传输路径段消息。步骤416中的路径段消息基本类似于步骤413中的路径段消息,但指向目的网络域并包括目的网络域中的目的节点的指示。

在步骤414和417,在步骤413或416中接收到路径段消息的每个子控制器计算子控制器所控制的对应域中的一组路径段。计算出的路径段应当满足步骤413/416的路径段消息中列出的约束,并且跨对应域从本地源地扩展到不在例外列表中的域(或相邻域)的每个边缘节点。在步骤417,目的子控制器以类似于步骤413的方式计算路径段,但是计算满足约束的从本地源地到目的地的路径段。在步骤415和418,子控制器各自向父节点传输路径段已计算消息(例如回复消息)。路径段已计算消息包括gtid和gpid,以允许将路径段映射回步骤413和416中的路径段消息。路径段已计算消息还包括本地源节点(例如用作域中的接入点)的地址/标识符、用作计算出的分段的终结点的每个边缘节点/接入点的地址/标识符,以及从本地源节点到对应边缘节点(或相邻域中的边缘节点)的路由成本。计算出的路径段可以视为抽象链路,因为这些路径段是根据可从域外部访问的接入点以及相应的路由成本来描述的,并且不公开任何内部拓扑。根据实施例,步骤415和418的路径段已计算消息可以包含单个最低路由成本抽象链路或多个候选抽象链路。在步骤419,父控制器通过采用步骤415和418的消息结果来计算/选择gpid的最短/最低路由成本端到端域间路径,并且不会从域的子控制器接收任何内部拓扑或te信息。由于每个路径段都满足约束,所以父控制器从该组路径段中选择的端到端路径也满足约束。然后,父控制器可以创建遍历gpid的计算出的路径的gtid的隧道。

应当注意,可以按顺序执行步骤413至418,例如,步骤413至415利用子控制器1,然后子控制器2等执行,直到到达步骤416至418的目的子控制器。或者,可以通过以下方式来并行执行步骤413至418:同时传输步骤413和416中的消息,在步骤415和418,在父控制器处接收路径段,以及在步骤419,在选择最终路径之前构建最短路径树(shortestpathtree,spt)。在另一项实施例中,在步骤413父控制器首先向源控制器发送路径段消息,在步骤415接收到源控制器所计算的路径段之后建立spt,然后向其子控制器发送路径段消息,该子控制器控制包含刚刚添加到spt中的节点的域。在从其子控制器接收到计算出的路径段后,父控制器继续使用用作链路的路径段来构建spt,然后向其子控制器发送路径段消息,该子控制器控制包含刚刚添加到spt中的节点的域。该过程一直持续到目的节点被添加到spt中。还应当注意,每个子控制器都可以将计算出的路径段与gpid和/或gpid一起在本地表中存储指定时间段。如果在指定时间段内没有接收到与计算出的路径段相关联的请求,则可以自动移除计算出的路径段。

图5是跨网络100等分层控制器网络所控制的网络域管理通信隧道的方法500的实施例的协议图。方法500由父控制器101等父控制器、子控制器111和/或121等子控制器1至n实施,其中每个控制器可以由ne200等ne实施。要建立的端到端隧道跨域113等一个或多个域1至n进行计算。为简单起见,将方法500描述为采用两级层级进行实施,但可以通过将关联消息穿过具有父角色和子角色的网络控制器来用于任何级别的层级。

方法500在根据方法400等为gtid和gpid计算端到端路径之后发起。在步骤521,沿计算出的路径向目的子控制器传输创建隧道段消息。步骤521的创建隧道段消息请求目的子控制器创建gtid的隧道段,该隧道段沿gpid的计算出的路径跨目的域中的本地源地到目的地。步骤521的创建隧道段消息包括gipd和/或gtid以及以<起点,终点>等形式表示的一对节点的一对标识符/地址。对于目的子控制器,起点是gpid路径上的目的域的边缘节点/接入点,终点是目的地。在步骤522,目的子控制器跨目的网络域建立隧道段。步骤522中建立隧道段包括分配链路、端口、光波长(λ),和/或保留跨起点和终点之间的关联节点/链路的对应带宽。当源节点接收到分组时,分组将封装一个标签,然后由隧道上的节点使用该标签来交换分组,而无需检查底层数据。当分组在域间移动时,标签可以保持不变或可以通过提示和推送/解封装以及重新封装操作等换出。在任一情况下,在步骤522,目的控制器分配标签以供在沿目的域中的隧道段进行交换时使用。目的子控制器还通过更新每个节点的路由表、转发表、fib表、光交叉连接配置等在隧道段上的每个节点上写入交叉连接。

在完成建立隧道段之后,在步骤523,目的子控制器向父控制器传输隧道段已创建消息。步骤523的隧道段已创建消息包括gpid和/或gtid,以及指示请求隧道段已成功建立或指示建立隧道段失败的状态指示符。如果状态指示符设置为成功,则隧道段已创建消息还包括目的子控制器所分配的标签和沿隧道将分组路由到目的域时要使用的(例如在接入点/边缘节点处)接口的指示。从目的域接入点/边缘节点起的域间链路上的上行方向上的下一跳可以使用标签和接口来跨越域边界连接隧道。如果创建隧道段不成功(例如状态指示符设置为失败),则隧道段已创建消息还包含错误代码和/或失败原因。

对于在从目的域到源域的gtid和gpid的路径上的每个子控制器重复步骤524至526。在步骤524,将创建隧道段消息发送到对应子控制器。步骤524的创建隧道段消息基本类似于步骤521的消息,但也包含下一跳所在的下行域的控制器为隧道分配的标签和接口。例如,步骤523的消息包含目的域的标签和接口,然后将该标签和接口发送给上行中间域的父控制器,以便经由域间链路连接穿过两个域的隧道。子控制器以类似于步骤522的方式在步骤525建立隧道段。子控制器还利用标签和接口信息将交叉连接写入下行边缘节点以建立域间连接。在步骤526,以类似于步骤523的方式向父控制器传输隧道已创建消息。标签可以在端到端隧道上保持不变,或者可以在域间移动时改变标签。一旦从源域接收到隧道已创建消息,父控制器就知道已完成建立端到端隧道,并且可以通过对应于gpid和gtid的端到端隧道发起源地和目的地之间的通信。

一旦源地和目的地之间的通信完成,父控制器可以确定拆除隧道。例如,父控制器可以从应用、源节点或网络管理员/用户接收隧道删除请求。如果取消隧道段失败,则父控制器也可以确定拆除部分隧道。在步骤531,父控制器向目的子控制器传输移除隧道段消息。移除隧道段消息包括gtid和/或gpid以及应该移除隧道的显式或隐式指示。在步骤532,目的子控制器释放关联于gpid/gtid的所有保留带宽、标签和/或硬件分配。目的子控制器还会移除写入对应隧道段上的内部域节点的所有交叉连接。在步骤533,目的子控制器533向父控制器传输隧道段已移除消息。隧道段已移除消息包括gtid和/或gpid以及移除状态。如果隧道段已成功移除,则移除状态指示成功;如果隧道段无法移除,则移除状态指示失败。如果发生失败,则隧道段已移除消息还包含指示失败原因的错误代码。步骤534、535和536分别基本类似于步骤531、532和533,并且从目的地到源地重复步骤534、535和536,直到端到端隧道的隧道段被移除。应当注意,当路径上的隧道段已创建消息指示创建隧道段失败时,也可以传输移除隧道段消息。

图6是跨网络100等分层控制器网络所控制的网络域管理路径段的方法600的实施例的协议图。方法600由父控制器101等父控制器、子控制器111和/或121等子控制器1至n实施,其中每个控制器可以由ne200等ne实施。要管理的路径段分布在域113等一个或多个域1至n上。为简单起见,将方法600描述为采用两级层级进行实施,但可以通过将关联消息穿过具有父角色和子角色的网络控制器来用于任何级别的层级。

方法600在已计算出路径段之后发起,例如响应于方法400的步骤413和/或416的路径段消息。在步骤617,子控制器以基本类似于步骤415和/或418的方式传输路径段已计算消息,该消息指示作为抽象链路的计算出的路径段。在步骤641,父控制器向一个或多个子控制器传输保留路径段消息。保留路径段消息请求子控制器(例如无限期地)存储步骤617的对应路径段已计算消息中返回的一组指定计算出的分段。保留路径段消息包括对应于计算出的分段的gtid和/或gpid和标识要存储的每个分段的节点对列表。例如,节点对列表可以是<起点,终点>的形式,其中,起点和终点是在域外部可访问的计算出的分段的接入点地址。保留路径段消息还可以包括可选标志,例如设置为1的移除其它(removerest,rr)标志,指示必须从存储设备中移除关联于保留路径段消息并且节点对未标识为要存储的所有计算出的分段。一旦接收到步骤641的保留路径段消息并设置了rr标志,子控制器就会保存指示的计算出的路径段并移除隧道/路径的所有其它计算出的路径段。保存/存储的路径段不再发生超时。在步骤643,子控制器向父控制器传输响应式路径段已保留消息。路径段已保留消息包括gtid和/或gpid以及指示步骤641的对应保留请求状态的数据。状态数据可以指示成功以表示成功存储所请求的路径段,或者指示失败以表示无法存储路径段。如果发生失败,则路径段已保留消息还可以包括无法存储路径段的错误代码和/或原因。

在步骤651,父控制器向一个或多个子控制器传输移除路径段消息。移除路径段消息向对应子控制器指示应当移除步骤641中存储的一个或多个分段。也可以发送移除路径段消息以便在超时发生之前或在没有默认超时的系统中移除未使用的计算出的路径段。移除路径段消息可以以多种方式指示要移除的计算出的路径段。例如,移除路径段消息可以仅包含gtid,这指示子控制器应移除所有与gtid相关的已存储分段。移除路径段消息可以包含gtid和gpid,这指示子控制器应移除所有与gtid和gpid相关的已存储路径段。移除路径段消息可以包含gtid和/或gpid以及起点地址和/或标识符列表,以指示应移除所有关联于gtid/gpid并且包含起点地址/标识符的已存储路径段。移除路径段消息可以包含gtid和/或gpid以及以<起点,终点>等形式表示的节点对列表,这指示应移除gpid/gtid和节点对所标识的具体列举路径段。一旦接收到步骤651的移除路径段消息,子控制器就从存储器中移除所指示的计算出的路径段。在步骤653,子控制器向父控制器传输路径段已移除消息,以指示对应路径段移除请求的状态。步骤653的路径段已移除消息包括gtid和/或gpid以及指示状态的数据。状态为成功时,指示成功移除所请求的路径段;状态为失败时,指示未成功移除所请求的路径段。如果发生失败,则步骤653的路径段已移除消息还可以包括失败的错误代码和/或原因。

图7是操作父控制器101或在网络100中用作父控制器的子控制器121等父控制器的方法700的实施例的流程图。方法700在父控制器确定发现对应子控制器(例如子控制器111和/或121)时开始。在步骤701,向子控制器传输发现消息,这些发现消息指示控制器层级中父控制器的级别。在步骤702,从子控制器接收发现消息,这些发现消息指示对应子控制器的子控制器级别、角色、能力和网络地址。在步骤703,从子控制器接收连接和接入点消息,这些消息指示子控制器所控制的网络域的域间链路和接入点。一旦完成步骤703,父控制器就具有足够的信息通过与子控制器通信来确定遍历网络域的源地和目的地之间的端到端域间路径。

在步骤705,接收计算遍历网络域的从源地到目的地的路径的请求。可以从源地、目的地,控制源域/目的域的子控制器和/或从应用层(例如用户/网络管理员)接收请求。在步骤707,分配标识路径的gpid和标识路径上的隧道的gtid。然后,通过域按照最短路径树的构建顺序向子控制器传输计算段消息。计算段消息包括gpid和gtid,并且请求子控制器跨对应域计算候选路径段。在步骤709,通过所请求的候选路径段从子控制器接收路径段已计算消息。然后选择候选路径段以构建用于获得路径的最短路径树。在步骤711,通过路径上的网络域向子控制器传输创建隧道段消息。该创建隧道段消息指示关联子控制器创建隧道段以沿路径转发数据分组。父控制器也可以接收隧道段已创建消息,该消息指示隧道段已正确创建。此外,父控制器可以传输移除路径段消息或保留路径段消息,以分别移除或存储计算出的路径段。父控制器还可以接收更新的连接和接入点消息,这些消息指示域间的域间链路变化以及域中的接入点变化。如果路径/隧道被中断,则方法700可以返回到步骤705,或者可以在计算新的路径/隧道时考虑更新的信息。

图8为分布式控制器网络800的实施例的示意图。网络800包括通过域间链路连接的多个网络域813,这些网络域可以基本类似于网络域113。网络域813由分布式控制器811控制,其中分布式控制器811类似于子控制器111和父控制器101,并且由ne200等ne实施。具体而言,分布式控制器811以类似于子控制器111的方式控制一个或多个网络域813中的流量管理,但是不具有对应的父控制器。因此,分布式控制器811彼此通信以与父控制器101类似的方式计算端到端路径并创建隧道。

分布式控制器811能够在分布式控制器811所控制的域813中进行路径段计算和维护以及隧道段创建和维护(例如类似于子控制器111)。分布式控制器811还能够跨不由分布式控制器811(例如类似于父控制器101)控制的域进行端到端域间路径计算和维护以及端到端域间隧道创建和维护,而不接收关联于不由分布式控制器811控制的域的内部拓扑或te信息。因此,分布式控制器811能够具有ps、ts、ep和et。如方法900至1300中所讨论,不同于子控制器,分布式控制器811用于直接与相邻分布式控制器(例如不是依赖父控制器)交换控制消息。方法900至1300将讨论分布式控制器811的其它功能。

图9是网络800等分布式控制器网络中发现网络的方法900的实施例的协议图。方法900由分布式控制器811等分布式控制器1至n实施,其中每个控制器可以由ne200等ne实施,每个控制器控制网络域813等一个或多个网络域1至n。

方法900可以类似于方法300,但是会做修改以在网络800上操作。方法900在启动一个或多个分布式控制器时开始。在步骤901,以与步骤301类似的方式配置分布式控制器,但会配置指示ps、ts、ep和et能力的分布式控制器角色、本地地址以及与其它分布式控制器的网络邻接关系。在步骤911,分布式控制器1向相邻分布式控制器2传输发现消息911。发现消息911指示分布式控制器1的角色为分布式控制器、分布式控制器1的本地地址,并且包含设置为1的标志以指示分布式控制器的ps、ts、ep和et能力。在步骤913,如果接收到的发现消息不同于先前的发现消息,则分布式控制器2存储发现消息的内容,并将来自分布式控制器1的发现消息转发到除分布式控制器1之外的所有分布式控制器2的相邻分布式控制器。然后,分布式控制器2的相邻分布式控制器中的每一个存储发现消息并将发现消息转发给其邻居等等,而不逆着发现消息(例如广播消息)的接收方向向后转发发现消息,直到所有分布式控制器已经接收到步骤911和913的发现消息。步骤911/913的发现消息基本类似于发现消息311,并且包含分布式控制器1的网络地址、属性、作为分布式控制器的角色、能力等。类似于步骤911,在步骤915,分布式控制器2等其它分布式控制器中的每一个在被配置为具有多个能力、角色和属性的分布式控制器之后,将发现消息发送到其相邻的分布式控制器1等分布式控制器。步骤915的发现消息的内容基本类似于步骤911的发现消息的内容。因此,每个分布式控制器都会通过步骤911、913和915的发现消息交换知道所有其它分布式控制器的地址、属性、角色和/或能力。应当注意,分布式控制器可用于周期性(例如每30分钟)广播发现消息,并且移除与指定时间内(例如60分钟后超时)不传输发现消息的任何分布式控制器有关的信息。

在步骤921,分布式控制器1等分布式控制器均以类似于步骤321的方式执行网络域1等对应网络域的拓扑和/或te发现。在步骤925,分布式控制器1以类似于步骤323的方式广播ap消息925,该消息包含域网络1的域间链路和接入点地址。与步骤323不同,分布式控制器1向其所有相邻分布式控制器而非单个父控制器广播步骤925的ap消息。在从控制器1等相邻分布式控制器接收到ap消息之后,在步骤927,如果ap消息不同于上次接收和存储的ap消息,分布式控制器2等分布式控制器均存储ap消息并向其所有相邻分布式控制器广播ap消息,发送ap消息的相邻分布式控制器除外。因此,每个分布式控制器都知道所有网络域的域间链路和接入点地址,但仍然不知道不由分布式控制器控制的任何网络域的内部拓扑和te信息。

在步骤931,在网络域1中发生影响网络域1的域间链路和/或接入点地址/标识符的拓扑变化(例如类似于步骤331)。在步骤933,分布式控制器1向其所有相邻控制器广播更新的ap消息。在从控制器1等相邻分布式控制器接收到更新的ap消息之后,在步骤935,如果更新的ap消息不同于上次接收和存储的更新的ap消息,分布式控制器2等分布式控制器存储ap消息并向其所有相邻分布式控制器广播ap消息,发送ap消息的相邻分布式控制器除外。这样,每个分布式控制器都知道影响域间通信的远程网络域(例如不由指定控制器控制的域)的任何变化。通过采用方法900,每个分布式控制器具有足够的信息来计算本地网络域上的本地路径段和隧道段,并计算跨远程网络域的端到端域间路径/隧道。此外,如果任何控制器或域变得不可达/超时,则其它控制器在进一步的通信路由中可以不考虑不可达的控制器/域。

图10是跨网络800等分布式控制器网络所控制的网络域计算路径的方法1000的实施例的协议图。方法1000由分布式控制器811等分布式控制器1至n实施,其中每个控制器可以由ne200等ne实施,每个控制器控制网络域813等一个或多个网络域1至n。

方法1000可以类似于方法400,但是会做修改以在网络800上操作。在(例如根据方法900)启动和配置控制器网络,使得分布式控制器知道彼此的角色、级别、能力等之后,发起方法1000。在步骤1001,分布式控制器以类似于步骤401的方式与其各自的域交换te消息。在步骤1011,分布式控制器1以类似于步骤411的方式接收隧道请求。隧道请求包括隧道源地、目的地和/或任何请求的策略和/或物理约束。在步骤1012,如果分布式控制器1是源控制器,则分布式控制器1计算跨网络域1和/或分布式控制器1所控制的任何其它网络域的spt。如果分布式控制器1不是源控制器,则向源控制器发送延展spt消息,源控制器执行与分布式控制器1相同的动作。例如,分布式控制器1计算从本地源地到网络域1的每个边缘节点(或相邻域的边缘节点)的一组最短路径段,使得所有路径段符合约束。分布式控制器1将边缘节点/接入点添加到候选列表,选择具有最小路由成本的路径段,并将用于所选最小路由成本路径段的边缘节点/接入点添加到spt。

在步骤1013,分布式控制器1向分布式控制器2传输延展spt消息,该分布式控制器2控制包含/相邻于步骤1012中添加到spt的地址的网络域。延展spt消息包括gtid、gpid、约束、候选列表、当前spt、在分布式控制器2所控制的网络域2中或与之相邻的本地源地(例如spt上的边缘节点/接入点)的地址,以及目的网络域n中的目的节点。在步骤1014,分布式控制器2计算到网络域2的每个边缘节点/接入点的路径段,这些边缘节点/接入点满足约束并且尚未在spt上。然后,分布式控制器2通过将所有计算出的路径段添加到候选列表来更新spt,并通过将最小路由成本路径段添加到spt来延展spt。在步骤1015,分布式控制器2将spt已延展消息发送回分布式控制器1。spt已延展消息包括gtid、gpid和来自网络域2的本地源地,这些信息可以由分布式控制器1用来唯一标识正在延展的spt。spt已延展消息还包括状态指示符。如果spt已成功延展,则状态指示符设置为成功;如果spt没有跨第二网络域延展,则状态指示符设置为失败,同时spt已延展消息还包括指示失败原因的任何错误代码(例如没有路径段满足约束等)。

在步骤1016,分布式控制器2向下一个分布式控制器传输延展spt消息,以便以类似于步骤1013的方式进一步延展spt,该步骤继续进行,直到达到控制包含目的节点的网络域n的分布式控制器n。在步骤1017,分布式控制器n然后以类似于步骤1014的方式计算从本地源地到目的节点的路径段,并相应地更新spt。在步骤1018,分布式控制器n以类似于步骤1015的方式向分布式控制器1传输spt已延展消息。spt和候选列表还被传输回分布式控制器1,例如作为步骤1018的消息的一部分或者作为单独消息的一部分传输回。在步骤1019,分布式控制器1通过选择spt中从源地到目的地的最短端到端域间路径和/或查看不包括在spt中可能的替代最短路径的候选列表来获得路径。因此,从抽象链路计算最短的端到端域间路径,而无需共享内部域拓扑。应当注意,在一项替代性实施例中,分布式控制器n可以在步骤1019为隧道选择端到端域间路径,并向发起延展spt的分布式控制器传输所选路径。还应当注意,每个分布式控制器可以用类似于方法400和/或600的方式为每个gpid/gtid保存计算出的路径段和/或部分spt树。

图11是跨网络800等分布式控制器网络所控制的网络域管理通信隧道的方法1100的实施例的协议图。方法1100由分布式控制器811等分布式控制器1至n实施,其中每个控制器可以由ne200等ne实施,每个控制器控制网络域813等一个或多个网络域1至n。

方法1100可以类似于方法500,但是会做修改以在网络800上操作。方法1100在根据方法1000等为gtid和gpid计算端到端路径之后发起。在步骤1121,分布式控制器1经由分布式控制器2和任何中间控制器向分布式控制器n传输创建隧道段消息。创建隧道段消息包括隧道源地址、gpid、gtid和节点对列表以表示要以类似于步骤521的方式创建的分段。在步骤1122,分布式控制器n以类似于步骤522的方式建立目的网络域n中的隧道段并分配标签。在步骤1123,分布式控制器n传输包括gpid、gtid、隧道源的标识符、状态标识符的隧道段已创建消息。如果隧道段成功建立,则状态标识符指示成功;如果隧道段无法建立,则状态标识符指示失败。如果建立隧道段失败,则隧道段已创建消息还可以包括错误代码和/或分配的标签。在步骤1124,分布式控制器1以类似于步骤521的方式向包括分布式控制器2的每个中间控制器传输创建隧道段消息,其中每个创建隧道段消息包括下行网络域的标签和接入点/边缘节点接口。每个此类分布式控制器在对应网络域中执行关联建立,并且在步骤1125以类似于步骤1123的方式传输隧道段已创建消息。在步骤1126,分布式控制器1建立从源地到相邻域的隧道段,从而完成域间端到端隧道,而无需在域控制器之间交换内部网络域拓扑或te信息。如同步骤522和525,步骤1122和1126中建立隧道段包括分配链路、端口、λ、标签,和/或保留跨起点和终点之间的关联节点/链路的对应带宽。建立隧道段还包括在网络域中的节点之间和不同网络域之间写入交叉连接。步骤1131、1132、1133、1134、1135和1136以与步骤531至536基本相同的方式逐段地取消隧道,只是移除隧道段和隧道段已移除消息响应遍历控制器网络而不是由父节点直接传送。移除隧道段消息包括要移除的隧道段的gpid、gtid、源地址。接收控制器释放关联于隧道的网络域中的所有资源,释放关联标签,移除交叉连接,并发送响应式隧道段已移除消息。隧道段已移除消息包括源地、gpid、gtid和状态。如果隧道段移除成功,则状态指示成功;如果隧道段无法移除,则状态指示失败,同时该隧道段已移除消息包含指示失败原因的错误代码。

图12是跨网络800等分布式控制器网络所控制的网络域管理路径段的方法1200的实施例的协议图。方法1200由分布式控制器811等分布式控制器1至n实施,其中每个控制器可以由ne200等ne实施,每个控制器控制网络域813等一个或多个网络域1至n。

方法1200可以类似于方法600,但是会做修改以在网络800上操作。方法1200在spt已延展之后发起,例如响应于方法1000的步骤1013和/或1016的延展spt消息而发起。在步骤1241和1242,分布式控制器1向spt上控制域的每个分布式控制器传输保留路径段消息。保留路径段消息包括隧道/路径源地址、gtid和gpid以及标识将无限期存储的spt段的节点对(例如<起点,终点>)列表。保留路径段消息可以包括rr标志,该rr标志可以设置为指示移除关联于隧道并且保留路径段消息中未具体列举的所有计算出的路径段的请求。然后,每个对应分布式控制器无限期地存储与隧道有关的已指示路径段,和/或移除未列举的所有路径段。在步骤1243和1244,分布式控制器均向请求分布式控制器发送路径段已保留消息。路径段已保留消息包括路径/隧道源的地址/标识符、gtid、gpid以及指示状态的数据。如果路径段成功存储,则数据指示成功;如果路径段无法存储,则数据指示失败,同时数据包括指示失败原因的对应错误代码。

分布式控制器1可稍后确定移除存储的路径段,例如因为对应隧道将被移除,因为仅需要指定路径段等等。在步骤1251和1252,分布式控制器1分别向分布式控制器2至n传输移除路径段消息。步骤1251和1252的移除路径段消息可以类似于步骤651的移除路径段消息。具体而言,步骤1251和1252的移除路径段消息可以用多种方式指示要移除的计算出的路径段。例如,移除路径段消息可以仅包含隧道/路径源地址和gtid,这指示对应分布式控制器应移除所有与源地和gtid相关的已存储分段。移除路径段消息可以包含隧道/路径源地址、gtid和gpid,这指示对应分布式控制器应移除所有与隧道/路径源地址、gtid和gpid相关的已存储路径段。移除路径段消息可以包含隧道/路径源地址、gtid和/或gpid,以及起点地址和/或标识符列表,以指示应移除所有关联于源地址、gtid和gpid并且包含起点地址/标识符的计算出的分段。移除路径段消息可以包含隧道/路径源地址、gtid、gpid以及以<起点,终点>等形式表示的节点对列表,这指示应移除源地址、gpid和gtid以及节点对所标识的具体列举路径段。一旦接收到步骤1251和1252的移除路径段消息,对应分布式控制器就从存储器中移除所指示的计算出的路径段。在步骤1253和1254,对应分布式控制器向分布式控制器1传输路径段已移除消息,以指示对应路径段移除请求的状态。步骤1253和1254的路径段已移除消息包括隧道/路径源地址、gtid和gpid以及指示状态的数据。状态为成功时,指示成功移除所请求的路径段;状态为失败时,指示未成功移除所请求的路径段。如果发生失败,则步骤1253和1254的路径段已移除消息还可以包括失败的错误代码和/或原因。

图13是操作网络800中的分布式控制器811等分布式控制器的方法的实施例的流程图。当分布式控制器确定发现网络中的相邻分布式控制器时,方法1300开始。在步骤1301,与相邻分布式控制器交换发现消息以通过控制网络进行重传,其中发现消息指示控制器的角色、能力和网络地址。例如,第一分布式控制器广播发现消息并从网络中所有分布式控制器接收发现消息。在步骤1303,从网络中的其它分布式控制器接收连接和接入点消息。连接和接入点消息指示网络域的域间链路和接入点。基于连接和接入点消息,分布式控制器知道网络的抽象域间拓扑,但不知道各个域的内部拓扑。

在步骤1305,接收计算遍历网络域的从源地到目的地的路径的请求。可以从源地、目的地,控制源域/目的域的分布式控制器和/或从应用层(例如用户/网络管理员)接收请求。在步骤1307,分别将gpid和gtid分配给路径/隧道。计算到分布式控制器所控制的本地域的边缘节点(或到相邻域的边缘节点)的spt。然后选择spt上的最低成本路径段,并且向分布式控制器传输延展spt消息,该分布式控制器控制包含最低成本路径段的尾端节点的域。在步骤1309,从目的网络域接收spt已延展消息。spt已延展消息指示跨源地到目的地的spt。然后,可以从spt选择从源地到目的地的最低成本路径作为路径。在步骤1311,将创建隧道段消息传输给路径上的分布式控制器。创建隧道段消息指示分布式控制器沿路径创建隧道段。分布式控制器也可以接收隧道段已创建消息,该消息指示隧道段已正确创建。应当注意,在一些实施例中,目的域中的分布式控制器负责在步骤1309选择路径并且在步骤1311传输创建隧道段消息。还应当注意,分布式控制器还可以传输移除路径段消息或保留路径段消息,以分别移除或存储计算出的路径段。分布式控制器还可以接收更新的连接和接入点消息,这些消息指示域间的域间链路变化以及域中的接入点变化。如果路径/隧道被中断,则方法1300可以返回到步骤1305,或者可以在计算新的路径/隧道时考虑更新的信息。

图14是混合分布式分层控制器网络1400的实施例的示意图,该混合分布式分层控制器网络1400可以包括网络100和800的全部或部分。网络1400包括分布式控制器1411和网络域1413,其可以分别基本类似于分布式控制器811和网络域813。网络1400还包括子控制器1422和网络域1423,其可以分别基本类似于子控制器111/121和网络域113。网络1400还包括分布式控制器1421,当与子控制器1422交互时,分布式控制器1421可以包括父控制器101的功能,当与其它分布式控制器1411交互时,分布式控制器1421可以包括分布式控制器1411的功能。因此,网络1400是网络100和网络800的混合网络。在示例性网络1400中,分布式控制器1421与子控制器1422交互时可以使用方法300至700,与分布式控制器1411交互时可以使用方法900至1300。因此,网络1400中的控制器可以包括具有所有关联能力的分布式控制器、父控制器以及子控制器的角色。混合分布式分层控制器网络1400支持稳固的定制化控制网络,该定制化控制网络可以进行操作来建立和维护用于在多个域上进行通信的端到端域间路径和隧道,而无需交换内部域拓扑和te信息。如同网络100和800,分布式控制器1411和1421以及子控制器1422连同网络域1413和1423中的硬件都可以由ne200等ne实施。

虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离本文公开的精神和范围。

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