在SDN控制层次中抽象波长交换光网络流量工程拓扑的系统和方法与流程

文档序号:18325033发布日期:2019-08-03 10:54阅读:216来源:国知局
本申请要求2016年12月16日递交的发明名称为“在sdn控制层次中抽象波长交换光网络流量工程拓扑的系统和方法”的第15/382,242号美国非临时专利申请案的在先申请优先权,该在先申请的全部内容以引入的方式并入本文本中。本发明涉及通信网络,具体而言,涉及软件定义网络的网络路由。
背景技术
::软件定义网络(softwaredefinednetworking,sdn)是一种将网络控制和转发功能解耦的网络范式。将控制平面从数据平面解耦能够集中网络控制,从而实现有效的策略管控和灵活的管理。集中网络控制有利于各种网络功能,例如网络测量、流量工程、增强服务质量以及增强接入控制。随着支持sdn的节点和协议的可用性越来越高,许多组织已经开始部署sdn网络。技术实现要素:在包括多个网络域的sdn网络中,多域服务协调器(multi-domainservicecoordinator,mdsc)确定通过所述网络的路由,所述mdsc也可称为超级控制器。具体而言,所述mdsc为网络容量请求提供服务,为了服务于这种请求,所述mdsc需要能够计算通过所述网络的端到端路径。在所述sdn网络中,所述网络域不必是同构的,并且可包括一个或多个分组域以及一个或多个光域。每个所述网络域的sdn控制器负责维护每个域的网络拓扑,所述sdn控制器维护包含其相应网络域的网络拓扑信息的流量工程数据库(trafficengineeringdatabase,ted)。所述mdsc为其sdn中的所有所述网络域维护所述网络拓扑的ted所需的成本高昂。因此,为所述mdsc提供了每个所述网络域的所述网络拓扑的抽象。本发明公开了一种用于在sdn环境中抽象波长交换光网络(wavelength-switchedopticalnetwork,wson)的拓扑的系统和方法。在一个实施例中,本发明包括一种方法,所述方法包括为每个可达的源-目的(source-destination,s-d)节点对确定可用于源-目的节点对连接的光通道(opticalchannel,och)路径的最大数量。本发明还包括:如果指定了预选时延阈值,则针对所有可用och路径确定满足所述预选时延阈值的路径的最大数量,并且向mdsc报告所述可用och路径。在一个实施例中,所述方法还针对每个可达的源-目的节点对确定可用于源-目的连接的och路径的最大数量,包括:针对光复用段(opticalmultiplexsection,oms)链路的一组预选光波长中的所有波长,确定所述一组预选光波长中的某个波长是否可用于源-目的节点对连接;以及当所述波长可用时,将所述oms链路包括在所述波长的lambda平面中。在一个实施例中,所述方法还包括基于lambda平面确定所述源-目的节点对之间的最大流。在一个实施例中,所述方法还包括:计算所述最大流包括将所有lambda平面中的每个lambda平面中的och路径数量相加。在一个实施例中,每个lambda平面的所述最大流包括所述lambda平面中的och路径的数量。在一个实施例中,所述方法还包括将所述最大流转换为带宽等效编码。在一个实施例中,所述方法还包括将所述带宽等效编码发送到北向接口(northboundinterface,nbi)。在一个实施例中,报告所述可用och路径还包括:为当前源-目的节点对确定可用于源-目的节点连接的och路径的最大数量,以及当向所述mdsc的所述报告是按序进行的时,向所述mdsc报告所述最大数量。在一个实施例中,报告所述可用och路径还包括:当所述报告不是按序进行的时,报告所有可达的源-目的节点对的可用于源-目的节点连接的所述och路径的最大数量。在一个实施例中,所述方法响应来自所述mdsc的拉模式请求,其中所述拉模式请求包括一组指定的源-目的节点对。在一个实施例中,所述方法响应在ted中维护的网络拓扑的更新。在一个实施例中,当指定了所述预选时延阈值时,所述确定包括:为每个lambda平面设置初始网络拓扑作为最大流拓扑,其包括可用于源-目的节点对连接的所述och路径的最大数量;基于以延迟作为链路权重的最短路径算法为每个lambda平面确定最短路径;当最短路径长度小于或等于所述预选时延阈值时,记录所述最短路径;以及从所述最大流拓扑中移除所述最短路径的链路。在一个实施例中,所述方法还包括:重复所述设置、确定、记录和移除步骤,直到所述源-目的节点对不再连接;以及将所有lambda平面上记录的路径数量相加,其中总和构成了满足时延约束的最大带宽,所述时延约束包括所述预选时延阈值。在一个实施例中,当每个lambda平面的所述路径数量为零时,所述方法还包括以下步骤:将每个lambda平面的所述初始拓扑设置为原始lambda平面拓扑;基于以所述预选时延阈值作为链路权重的最短路径算法为每个lambda平面运行最短路径,以确定最短时延路径;当所述最短路径的长度小于所述预选时延阈值时,将每个lambda平面的路径数量增加1;移除所述最短路径上的链路;以及重复所述确定、增加和移除,直到所述源-目的节点对不再连接或所述最短路径的时延大于所述预选时延阈值。在一个实施例中,针对所述可达的s-d节点对中的一个的计算不会影响所述可达的s-d节点对中的另一个的波长可用性。在一个实施例中,本发明包括一种方法,包括:针对oms链路的一组预选光波长中的所有波长,确定所述一组预选光波长中的某个波长是否可用于源-目的节点对连接。如果所述波长可用,则将所述oms链路包括在所述波长的lambda平面中。本发明还包括:以延迟作为链路权重,确定每个lambda平面的源-目的节点对之间的最短路径;以及针对最短路径计算成功的所有lambda平面选择总路径延迟最小的所述最短路径。在一个实施例中,所述方法还包括记录所选路径的时延。在一个实施例中,所述方法还包括将所记录的时延发送到sdn控制器的nbi。在一个实施例中,在类型长度值(type-length-value,tlv)报告结构的预定字段中将所记录的时延发送到所述nbi。在一个实施例中,响应于来自mdsc的拉模式请求来发送所记录的时延,其中所述mdsc通过所述nbi可通信地耦合到所述sdn控制器。在一个实施例中,本发明包括一种sdn控制器。所述sdn控制器包括:处理器;nbi,包括用于可通信地耦合到mdsc的一个或多个端口;以及耦合到所述处理器的存储器,所述存储器存储包括wson抽象模块的程序指令。所述wson抽象模块在由所述处理器执行时使得所述处理器通过所述nbi向所述mdsc传送耦合到所述sdn控制器的波长交换光网络的抽象。所述wson抽象模块在由所述处理器执行时还使得所述处理器通过以下方式生成所述抽象:响应于来自所述mdsc的请求确定一个源-目的节点对之间的最小时延och路径,或者确定每个可达的源-目的节点对之间的可用och路径的最大数量,或者确定每个可达的源-目的节点对之间满足预选时延阈值条件的och路径的最大数量。在一个实施例中,在确定每个可达的源-目的节点对之间的可用och路径的最大数量时,所述wson抽象模块使得所述处理器执行以下步骤:针对oms链路的一组预选光波长中的所有波长,确定所述一组预选光波长中的某个波长是否可用于源-目的节点对连接;当所述波长可用时,将所述oms链路包括在所述波长的lambda平面中;将所有lambda平面中的每个lambda平面中的och路径数量相加,其中每个可达的源-目的节点对之间的所述可用och路径的最大数量包括所述och路径数量的总和。为清晰起见,在本发明的范围内,前述实施例中的任何一个可以与前述其它实施例中的任何一个或多个组合来创建新的实施例。结合附图和权利要求,可以在下文的详细描述中更清楚地理解这些和其它特征。附图说明为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。图1为sdn系统的框图。图2为光网络的框图。图3为sdn系统的一个实施例的框图。图4为用于生成光网络域抽象的方法的一个实施例的流程图。图5为图4中方法的一部分的详细流程图。图6为定义lambda平面的光网络拓扑的一个实施例的示意图。图7为可以与图4中的方法结合使用的方法的一个实施例的流程图。图8(包括子图8a和8b)为图4中方法的一部分的详细流程图。图9为图4中方法的一部分的详细流程图。图10为可以与图4中的方法结合使用的方法的一个实施例的流程图。图11为可以与图4中的方法结合使用的方法的一个实施例的流程图。图12所示为类型长度值(type-length-value,tlv)报告结构的实施例。图13所示为tlv报告结构的一个实施例。图14为拉模式操作的一个实施例的梯形图。图15所示为tlv请求结构的一个实施例。图16为推模式操作的一个实施例的梯形图。图17为推模式操作的一个实施例的梯形图。图18为sdn控制器的一个实施例的框图。图19为用于实施本文公开的一种或多种方法的装置。图20为用于实施本文公开的一种或多种方法的装置。具体实施方式首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。图1为sdn系统100的一个示例的示意图。在本示例实施例中,sdn系统100包括三个网络域:分组网络域102和104、光网络域106,以及它们各自的sdn控制器108、110和112。分组网络域102和104的底层基础设施包括电网络,光网络域106的底层基础设施包括wson。网络域102、104和106中的每一个由其各自的sdn控制器管理:sdn控制器108和110分别用于分组网络域102和104,光域sdn控制器112用于光网络域106。每个sdn控制器108、110和112可也称为物理网络控制器(physicalnetworkcontroller,pnc)。网络域102、104和106中的每一个在单个网络管理域下运行。对应的sdn控制器108-112中的每一个负责管理和控制其各自的网络域。sdn控制器108-112可通信地耦合到mdsc114。mdsc114也可称为超级控制器。虽然本文将使用mdsc,但是受益于本发明的本领域技术人员可以理解,在本发明的上下文中,mdsc和超级控制器是同义的。sdn系统100的管理和控制由mdsc114负责。具体而言,在采用标签交换路径(label-switchedpath,lsp)路由协议的sdn系统100的一个实施例中,mdsc114可能需要计算sdn系统100内的源节点与目的节点之间的端到端路径。例如,考虑端点118与端点120之间的端到端路径116(图1中的虚线所示)。端点118和120用于在它们各自的网络102和104中充当接入节点。端点118连接到网络域102中的边缘节点122,端点120耦合到网络域104中的边缘节点124。端点118和120也可称为s-d节点对,或者称为边界节点对。端到端路径116包括穿过分组网络域102的分段126、穿过光网络域106的分段128和穿过分组网络域104的第三分段130。虽然端到端路径116示意性地示为连续路径,但是流量经由内部节点以及内部节点之间的链路流经位于网络边界处的边缘节点之间的网络域102-106中的每一个,边缘节点包括例如分组网络102中的边缘节点122、光网络域106中的边缘节点132以及分组网络104中的边缘节点124。例如,边缘节点122之间的网络域102中的分段126包括一个或多个内部节点133以及连接链路134,边缘节点132之间的光网络域106中的分段128包括内部节点136和链路138,边缘节点124之间的网络域104中的分段130包括内部节点140和链路142。边缘节点122、132和124以及内部节点133、136和140是用于在它们各自的网络中执行转发功能的软件可编程网络设备。边缘节点122、132和124也可用于提供分组网络域102、104与光网络域106之间的互连点。在网络之间,链路143连接边缘节点122和132,链路144连接边缘节点132和边缘节点124。mdsc114用于确定通过网络域102-106中的每一个的端到端路径116。因为链路包括波长复用光纤,所以光网络域106提出了一个特殊的挑战。换言之,每个链路138包括一个携带多个光波长的oms。端到端路径116的包括链路138的分段128是och路径,其跨越构成oms链路的一个或多个链路138。分段128中的每个链路138使用相同的光波长。这一点可以结合图2进一步了解。图2更详细地示出了光网络域106。图2示出了图1的光域106。在图2中,边缘节点132a、132b之间的端到端路径116的示例分段128包括两个内部节点136a和136b。每个光节点,例如节点136a、136b,包括一个可增加、降低或交叉连接波长的波长开关。这些内部节点通过链路138a和138c分别耦合到边缘节点132a和132b。链路138b连接内部节点136a和136b。当mdsc114响应于连接请求而提供端到端路径时,其发现如下端到端路径:将要包括在该路径中的每个链路处有相同可用波长。这种提供也可称为路由和波长分配(routingandwavelengthassignment,rwa)。因此,在图2的示例中,分段128是包括使用同一波长λ1的链路138a、138b、138c的och路径。图3所示为与图1的sdn系统100类似的sdn系统100的框图。图3的sdn系统100包括图1的sdn系统100中未示出的其它细节。与光网络域106相关联的sdn控制器112获取和/或维护光网络域106的完整拓扑视图。该完整拓扑视图包括在耦合到sdn控制器112的ted302中。ted302可根据路径计算单元协议(pathcomputationelementprotocol,pcep)或其它任何有助于sdn控制器112与光网络域106之间的通信的适当协议来创建和/或更新。如受益于本发明的本领域技术人员会了解的,在至少一些实施例中,pcep可以是在sdn控制器112上执行的应用程序接口。在这方面,sdn控制器112可以是虚拟机(virtualmachine,vm)、虚拟机监视器或用于管理和控制光网络域106的任何其它设备。或者,在至少一些实施例中,可通过通用多协议标记交换(generalizedmulti-protocollabelswitching,gmpls)协议创建和/或更新ted302,gmpls协议也可以是在sdn控制器112上执行的应用程序接口。为了使mdsc114能够计算端到端路径116,如图1至图2所示,原则上sdn控制器112可以将ted302暴露给mdsc114。但是,域控制器级别上的大量数据使得这不切实际;在mdsc114的级别上,数据过于详细,并且这种方法不可扩展。因此,如下文进一步详述,sdn控制器112根据本发明的原则生成光网络域106的拓扑的抽象视图,即抽象拓扑304,并且通过其nbi306等将该拓扑传送到mdsc114。nbi306可包括可通信地耦合到mdsc114的一个或多个端口,如下文结合图18所述。此外,依然如下文所述,可响应于从mdsc114发送到sdn控制器112的请求308提供抽象拓扑304。图4示出了例如由图1和图3中的sdn控制器112实施的方法400的流程图,方法400用于生成光网络域的,例如图1和图3中的光网络域106的网络拓扑的抽象视图。方法400开始于方框401。在方框402中,确定是否要向mdsc报告最小时延路径。例如,如下文进一步描述的,mdsc,例如图1和图3中的mdsc114,可向图1和图3中的sdn控制器112传递请求。该请求可包括时延约束,例如最小可用时延路径,或如下文所述,不可超过的时延阈值。或者,如图1和图3所示的sdn控制器112可基于某个策略来报告最小时延路径。如果不报告最小时延路径,则方框402通过其分支“否”前进到方框404。在方框404中,为每个可达的源-目的节点对确定源-目的连接的可用och路径的最大数量。如果例如在och路径上可用的波长在将源耦合到其边缘节点的入口链路上或在将目的地耦合到其边缘节点的出口链路上不可用,并且边缘节点不包括用于在波长之间进行转换的再生器,则源-目的节点对可能是不可达的。方框404将在下文结合图5进一步描述。在方框406中,确定是否要满足路径时延约束,该路径时延约束采用不可超过的时延阈值这一形式。换言之,在方框406中,根据来自mdsc的请求或根据策略等,确定要报告的可用路径是否受到预选时延阈值的约束,其中,可用路径上的延迟不超过预选时延阈值。如果路径确定受到时延约束,例如要满足预选时延阈值,则方框406通过分支“是”进入方框408。在方框408中,基于所有可用och路径确定满足时延阈值的och路径的最大数量。换言之,在方框408处,对所有可用och路径进行删减以包含那些满足,即小于或等于,预选时延阈值的可用路径。方框408将在下文结合图8(包括子图8a和8b)更详细地描述。在方框410中,将方框408中的可用och路径报告给图1和图3中的mdsc114。如下文进一步描述,可用路径可通过发送到图3中sdn控制器112的nbi306的pcep应答进行报告。可结合方框410使用的报告结构将在下文结合图12和图13描述。如果当前s-d节点对不是最后可达s-d节点对,则方法400通过图4中方框411的分支“否”返回到方框402,遍历可达的s-d节点对以继续确定可用och路径。为了进一步了解本发明的原则,图5更详细地示出了图4中的方框404。为了确定方框404中可用och路径的最大数量,在方框502中,基于lambda平面确定流。lambda平面的概念结合图6进行描述,基于可结合方框502使用的lambda平面确定最大流的流程结合图7进行描述。在方框504中,将所有lambda平面中的每个lambda平面的最大流相加,以产生要在图4中的方框410中报告的最大流。图6示出了四个光网络拓扑602、604、606和608的示意表示。网络拓扑602示出了包括标记为a、b、g和h的四个边缘节点132以及标记为c、e和f的三个内部节点136的原始网络拓扑。网络拓扑604-608用于介绍如与结合图7描述的方法结合使用的lambda平面(λ-平面)的概念。λ-平面被定义为针对给定光波长(λ)值的密闭光拓扑。为简单起见,图6中的示例实施例基于三个波长l1、l2和l3(未在图6中示出)。受益于本发明的本领域技术人员会理解,通常,oms链路上支持的波长的集合包括更多波长。网络拓扑604、606、608分别对应于波长l1、l2和l3。节点132和136通过如上文所述包括oms链路的链路138连接。因此,可在链路138上传输多个光波长,并且任何未被另外占用的复用光波长都可用于边界节点对之间的端到端路径(未在图6中示出)。节点a与b之间的链路138标记为138ab。类似地,节点c与f之间的链路138标记为138cf,以此类推。通过示例来说明λ-平面,表1示出了各链路上三个波长l1、l2、l3之间的可用性:表1然后,l1-平面(表示波长l1的λ-平面)包括单个och路径610,如网络拓扑604所示。och路径610构成链路138ae、138ef和138fd。类似地,l2-平面包括两个och路径612(包括链路138ab、138bd)和614(包括链路138ac、138cf、138fd),如网络拓扑606所示。l3-平面包括单个och路径616(包括链路138ac、138cd),如网络拓扑608所示。在拓扑604中,由于存在共享链路128fd,所以节点a、c、f和d之间没有备选路径。类似地,在拓扑608中,由于存在共享链路138ac,所以节点a、c、f和d之间没有备选路径。现参考图7,图7所示为基于结合图6描述的lambda平面概念确定最大流的方法700的流程图。在各种示例实施例中,方法700可体现为可调用的软件程序,或者体现为专用集成电路(application-specificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga)或类似硬件设备中的硬件引擎。方法700在方框701处开始。在方框702处,进入环路以遍历一个s-d对之间的oms链路的一组预选光波长。在方框704中,确定该组预选波长中的某个波长是否可用。如果该组预选波长中的该特定波长可用,则在方框706中,将oms链路包括在该特定波长的lambda平面中。通过方框708经由分支“否”返回方框702,方法700循环以确定该组预选波长中的所有波长的可用性。在方框708中,如果该组预选波长中的最后一个波长的可用性已经确定并且包括在对应的lambda平面中,则方法700通过方框708的分支“是”跳出环路。在方框710中,为每个lambda平面确定源-目的节点对之间的最大流。在确定最大流时,具有如图6中拓扑604中的链路138fd和拓扑608中的链路138ac等共享链路的可能路径构成单个流。方法700返回方框711。考虑图6中网络拓扑604、606和608的lambda平面的示例,其中这些平面对应于波长l1、l2和l3的lambda平面,对于波长l1,在方框706中,在l1-平面中包括图6中的链路138ae、138ef和138fd,l1-平面的最大流为1。对于波长l2,有两次通过环路的行程,在方框706处,在每次环路行程中分别添加图6中l2-平面的链路138ab、138bd和链路138ac、138ef、138fd。l1-平面的最大流为2。对于波长l3,在方框706处,添加图6中l3-平面的链路138ac、138cd,l3-平面的最大流为1。这些可使用预定的och通道带宽来表示为最大带宽。例如,如果och通道的带宽为10千兆比特/秒(简单地表示为10g),则l2-平面的最大流以带宽表示就是20g。在返回方框406的分支“否”之前,将结合图8(包括子图8a和8b)中的流程图更详细地描述图4中的方框408。在方框802中,确定基于lambda平面的最大流。在方框802中可使用结合图7描述的方法700。在方框804中,针对每个lambda平面将初始拓扑设置为方框802中的最大流拓扑。在方框806中,针对每个lambda平面,运行以延迟作为链路权重的最短路径算法。在方框808中,如果延迟小于预选时延阈值,则方框808通过其分支“是”进入方框810。在方框810中,记录最短路径并从拓扑中移除最短路径的链路。在方框812中,如果当前s-d节点对仍然连接,则方框812通过其分支“否”退出以遍历lambda平面。否则,方框812通过其分支“是”进入方框814。如果没有延迟满足预选时延阈值,则也可通过方框808的分支“否”进入方框814。在方框814中,如果所记录的满足预选时延阈值的路径的数量kλ对于任何lambda平面都不为零,则方框814通过其分支“是”进入方框816。在方框816中,对所有lambda平面中的路径数量kλ求和。换言之,所有lambda平面中的所记录的路径数量kλ的总和构成了满足时延约束的最大带宽,其中该时延约束包括预选时延阈值。方框408前进到图4中的方框410以报告满足预选时延阈值的最大可用带宽。否则,在方框814中,如果没有路径延迟满足预选时延阈值的lambda平面,则方框814通过其分支“否”进入方框818。在方框818中,针对每个lambda平面将初始拓扑设置为原始lambda平面拓扑。在方框820中,针对每个lambda平面运行以延迟作为链路权重的最短路径算法以确定最短时延路径。在方框822中,如果存在最短路径,并且路径时延小于预选时延阈值,则方框822通过其分支“是”进入方框824。在方框824中,将满足lambda平面的时延阈值的路径的数量kλ增加1。在方框826中,从拓扑中移除最短路径的链路,并且方框826返回方框820以遍历lambda平面。当路径不再存在,即,源-目的节点对不再连接,或者路径时延超过预选时延阈值时,方框406通过方框822处的分支“否”跳出环路,方框816前进到图4中的方框410以报告满足预选时延阈值的最大可用带宽。返回图4,在方框406处,如果在方框406中要报告的路径不受时延约束,则方框406通过其分支“否”前进到方框414。在方框414中,确定要报告的路径是否基于具有预选网格间距t的时延网格。换言之,时延网格可以看作是以预选间隔t进行分隔的路径时延的索引。如果要报告时延网格的每个“点”处的路径数量,或等效来说为带宽,则方框通过分支“是”前进到方框416。在至少一些实施例中,基于时延网格的报告可根据来自mdsc的请求或者通过策略指定。在方框416中,为每个s-d节点对确定时延网格的每个点处的最大带宽。在返回方框402的分支“是”之前,转到图9以便更详细地考虑图4中的方框416。在方框902中,确定基于lambda平面的最大流。在方框902处可使用结合图7描述的方法700。在方框904中,将时延位于时延网格中的点x*t与(x+1)*t之间的路径的数量,表示为kx,初始化为零,并将每个lambda平面的初始拓扑设置为最大流拓扑。数字x是时延网格中的点的索引。在至少一些实施例中可使用的x的值在下文描述。在方框906中,针对每个lambda平面,运行以延迟作为链路权重的最短路径算法,并确定最短路径及其对应的时延t。在方框908中,将时延网格id定义为t/t,在至少一些实施例中,该时延网格id可用作时延网格中的点的索引x。并且,将具有时延网格idt/t的路径的数量,表示为kt/t,增加1。在方框910中,移除最短路径的链路。在方框912中,如果在方框910处移除链路之后,s-d节点对仍然连接,则方法通过分支“是”返回方框906以继续提取每个lambda平面的时延。如果s-d节点对不再连接,则方框912通过分支“否”退出环路到达方框914。在方框914中,对于每个时延网格点x,针对s-d节点对将对应的路径数量kx编码为网格点x处的最大带宽。在图4中的方框410处,针对s-d节点对将每个时延网格点处的最大带宽报告给图1和图3中的mdsc114。在报告时延网格点处的最大带宽时可结合方框410使用的报告结构将在下文结合图13描述。在所有可达的s-d节点对都已报告后,s-d节点对上的环路通过图4中的方框411的分支“是”退出,方法400在方框412处结束。返回图4,在方框402中,如果要报告最小时延路径,则方框402通过分支“是”向下进入方框418。在方框418中,为每个s-d对确定最小时延路径。图10更详细地示出了方框418。在方框1002中,进入环路以遍历一个s-d对之间的oms链路的一组预选光波长。在方框1004中,针对该组预选波长中的每个预选波长确定某个波长是否可用。如果这些预选波长中的该特定波长可用,则在方框1006中,将oms链路包括在该特定波长的lambda平面中。在方框1008中,经由其分支“否”,通过返回到方框1002的环路,确定该组预选波长中的所有波长的可用性。在方框1008中,如果该组预选波长中的最后一个波长的可用性已经确定并且包括在对应的lambda平面中,则方法1008通过其分支“是”跳出环路到达方框1010。在方框1010中,以延迟作为链路权重,计算每个lambda平面的s-d节点对之间的最短路径。在方框1012中,针对最短路径计算成功的所有lambda平面选择总路径延迟最小的最短路径。在方框1014中,记录所选路径的时延并将其发送到sdn控制器的nbi,例如图3中的sdn控制器112的nbi306。在图4中的方框410处,将s-d节点对的时延报告给图1和图3中的mdsc114。可结合方框410使用的报告结构将在下文结合图12和图13描述。在所有可达的s-d节点对都已报告后,s-d节点对上的环路通过方框411的分支“是”退出,方法400在方框412处结束。在图1和图3中的sdn系统100的至少一些实施例中,可用路径可递增地或按序报告给图1和图3中的mdsc114。在递增式更新中,报告每个s-d节点对的结果而不等待其它s-d节点对的结果。或者,可在确定所有s-d节点对的所有可用路径之后批量报告结果。例如,可基于某个策略选择替代性方式。在图11中,提供了一种在向mdsc114报告路径时可结合图4中的方框410使用的方法1100的流程图。在各种示例实施例中,方法1100可体现为可调用的软件程序,或者体现为asic或fpga中的硬件引擎。方法1100在方框1101处开始。在方框1102中,确定是否要按序报告可用路径,以及s-d节点对是否非最后一个s-d节点对。如果这两个条件都成立,则方框1102通过分支“是”向下进入方框1104,将当前s-d节点对的可用och路径报告给图3中的mdsc114。可结合方框1104使用的报告结构将在下文结合图12描述。否则,方框1102通过分支“否”前进到方框1106。在方框1106中,确定当前s-d节点对是否为要报告可用och路径的最后一个s-d节点对。若是,则方框1106通过分支“是”前进到方框1108以批量报告所有s-d节点对的可用och路径。可结合方框1108使用的报告结构也将在下文结合图12描述。如果在方框1106中,当前s-d节点对是最后一个s-d节点对,则方法1100在方框1110处返回。返回图4,在所有可达的s-d节点对都已报告后,遍历s-d节点对的环路通过方框411的分支“是”退出,方法400在方框412处结束。现将结合图12和图13描述用于报告可用路径的pcep结构。图12所示为一种pcep报告结构,其可在至少一些实施例中用来报告s-d节点对的最大可用带宽,如上文结合图4所述。pcep报告结构也可称为类型长度值(type-length-value,tlv)结构。tlv结构1202在例如图11中的方框1108处所描述的批量报告中使用,tlv结构1203在例如图11中的方框1104处所描述的递增式报告中使用。tlv结构1202包括多个字段1204-1216。字段1204包括类型值,在至少一些实施例中其包括一个16位的值,用于确定tlv的类型。该类型值可由因特网地址分配组织(internetassignednumbersauthority,iana)分配。字段1206是预留字段,长度也是16位。字段1208包括源节点标识(identifier,id),其包括一个32位的值。图12中的示例tlv结构1202示出了字段1208的两个实例,即字段1208a和1208b,但是这种tlv结构中可包括任意数量的字段1208以容纳所有要报告可用och路径的s-d节点对,如虚线所示。字段1210包括源节点对应于字段1208中的源节点id的s-d节点对的目的节点id。在至少一些实施例中,目的节点id包括一个32位的值。对应于两个字段1208a、1208b,示出了两个字段1210a和1210b。通过字段1208和1210中的id表示的s-d节点对的可用带宽(bandwidth,b/w)在字段1212中报告,并且包括长度为32位的浮点值。对应于两个字段1208a、1208b,示出了两个字段1212a和1212b。每个字段1214包括与s-d路径相关联的时延,该时延包括一个32位的整数值。对应于两个字段1208a、1208b,示出了两个字段1214a和1214b。每个字段1216包括路径的共享风险链路组(sharedrisklinkgroup,srlg)编号。对应于两个字段1208a、1208b,示出了两个字段1216a和1216b。tlv结构1203包括字段1204-1214,如结合tlv结构1202所述。但是,仅包括字段1208、1210、1212和1214中的每一个的一个实例,表示递增式报告协议,或等效地,按序报告协议。图13所示为tlv结构1302,其可与上文结合图4中的方框416描述的时延网格报告结合使用。tlv结构1302包括字段1204、1208、1210和1212,这些字段分别包括类型值、源节点id、目的节点id和可用b/w,如结合图12所述。同样如上文所述,包括预留字段1206。在字段1212中报告的可用b/w可表示所有时延网格处的可用b/w,并且在至少一些实施例中包括一个32位的浮点值。字段1304中包括上文表示为t的时延网格间距。在至少一些实施例中,时延网格间距也包括一个32位的整数值,表示时延网格的时间间隔,单位为毫秒。每个字段1306包括如上文结合图4中的方框416所述的时延网格id,并且包括一个32位的整数值。相应时延网格id处的可用带宽包含在字段1308中,并且包括一个32位的浮点值。在示例tlv结构1302中,示出了字段1306和1308的两个实例,即,字段1306a、1306b和1308a、1308b。但是,如虚线所指示,这种tlv结构通常可包括字段1306和1308的任意数量的实例以容纳具有对应“点”数的时延网格。上述各种字段的长度仅为示例,替代性实施例中可能具有不同的字段长度。在至少一些实施例中,图1和图3中的sdn控制器112可响应于来自图1和图3中的mdsc114的请求而报告可用och路径。这可称为拉模式,来自mdsc114的请求可称为拉模式请求。或者,图1和图3中的sdn控制器112可响应于某个事件向图1和图3中的mdsc114报告可用och路径,其中该事件可以是例如图3中的ted302发生变化;这可称为推模式。图14所示为根据至少一些实施例的示例拉模式操作的梯形图。图15和图16所示为根据至少一些实施例的示例推模式操作的梯形图。现参考图14,示出了示例拉模式操作1400的梯形图。图14从上到下描绘了包括拉模式操作1400的一系列动作,以及参与梯形图所绘动作的实体。如上文所述,msdc114可能需要计算一个或多个s-d节点对之间的通过网络的端到端路径。因此,mdsc114可向sdn控制器112发送pcep请求1402。pcep请求1402可包括关于要报告的och路径的一个或多个参数。例如,pcep请求1402可包括以下内容中的一个或多个:将通过所报告的och路径连接的一组s-d节点对、最大带宽请求、最小时延请求或抽象拓扑请求,其在至少一些实施例中可以是隐含的,如结合图15进一步描述的那样。图15所示为可与图14中的pcep请求1402结合使用的示例tlv结构1500。响应于pcep请求1402,sdn控制器112向mdsc114发送pcep应答1404。pcep应答1404包括tlv结构,例如图12中的tlv结构1202。现参考图15,tlv结构1500包括字段1502,字段1502包括类型值,类型值是一个16位的整数值,其将tlv结构1500标识为pcep请求。类型值可由iana分配。字段1504预留。在至少一些实施例中,字段1506、1508、1510和1512是1位的标记。如果设置标记“a”,其可以例如以字段1506中的值“1”表示,则请求的是抽象拓扑。在至少一些实施例中,标记“a”可省略,抽象拓扑请求隐含在类型值中。如果设置标记“b”,例如以字段1508中的“1”表示,则请求的是最大带宽路径。如果设置标记“l”,以字段1510中的“1”表示,则请求的是最小时延路径;如果设置标记“d”,以字段1512中的“1”表示,则请求的是不同的路径,例如,不共享物理链路的路径。虽然在至少一些实施例中,所设置的标记可通过对应字段中的值“1”来表示,但是替代性实施例可通过值“0”来表示所设置的标记。字段1514a、1514b和1516a、1516b分别包括源节点id和目的节点id,例如,如上文结合图12所述。如虚线所示,tlv结构1500可包括与图1、图3和图14中的mdsc114需要提供连接的s-d节点对的数量对应的任意数量的字段对1514、1516。转到如图16中的推模式操作1600和图17中的1700的梯形图所例示的推模式操作,首先参考图16。推模式操作1600结合可用och路径的批量报告使用,如上文结合图4中的方框410和图11中的方框1108所述。在推模式操作1600中,例如图3中的ted302这样的ted发生变化后,sdn控制器112向mdsc114发送pcep报告消息1602a和1602b。如虚线所示,可基于网络的具体变化递增地发送任意数量的pcep报告消息1602,因为这些变化已反映在ted的变化中。因此,例如,pcep报告消息1602可包括图12中的tlv结构1203。现参考图17,示出了根据本发明另一实施例的推模式操作1700的梯形图。具体而言,推模式操作1700基于如上文结合图11所述的递增式报告。基于ted302的初始实例化,sdn控制器112向mdsc114发送pcep报告消息1702。例如,pcep报告消息1702可以是批量报告,并且包括图12中的tlv结构1202。然后,标记为s1的源节点1701向mdsc114发送服务请求1703,请求到目的节点d1(未在图17中示出)的端到端路径。s1-d1定义了第一s-d节点对。mdcs114调度该请求,随后向sdn控制器112下发pcep发起的lsp请求1704以提供节点对s1-d1之间的端到端路径。sdn控制器112将请求映射到其rwa过程中以开始提供光lsp,并且sdn控制器112相应地更新ted302。sdn控制器112对更新后的网络拓扑进行抽象,如上文所述,并且向mdsc114发送pcep报告消息1706。pcep报告消息1706可以是,例如,包括图12中的tlv结构1203的递增式报告消息。然后,标记为s2的第二源节点1708向mdsc114发送服务请求1710,请求到目的节点d2(未在图17中示出)的端到端路径。s2-d2定义了第二s-d节点对。mdcs114调度该请求,并向sdn控制器112下发pcep发起的lsp请求1712以提供节点对s2-d2之间的端到端路径。如先前一样,sdn控制器112将请求映射到其rwa过程中以开始提供光lsp,并且sdn控制器112相应地更新ted302。sdn控制器112对更新后的网络拓扑进行抽象,并且向mdsc114发送pcep报告消息1714。pcep报告消息1714可以是与pcep报告消息1706类似的递增式报告消息。本发明的特征/方法可使用硬件、固件和/或安装在硬件上运行的软件来实施。图18为可用于通过图1和图3所示光网络域106等网络的至少一部分来传送和处理流量的sdn控制器112的一个实施例的方框图。本文公开的其它网络组件(例如mdsc、源节点、目的节点等)可以具有相似结构并且包括一个或多个相似组件。sdn控制器112包括耦合到收发器(tx/rx)1820的一个或多个下行端口1810,tx/rx1820包括发射器、接收器或它们的组合。tx/rx1820通过下行端口1810传输和/或接收来自其它网络节点的帧。例如,在至少一些实施例中,sdn控制器112通过下行端口1810连接到图3中的ted302。类似地,sdn控制器112包括耦合到多个上行端口1840的另一tx/rx1820,其中,tx/rx1820通过上行端口1840传输和/或接收来自其它节点的帧。在至少一些实施例中,图3中的nbi306包括上行端口1840。下行端口1810和/或上行端口1840包括电和/或光发射和/或接收组件。tx/rx1820通过有线连接或光连接传输和/或接收来自其它网元的数据(例如数据包),视实施例而定,其中,其它网元包括例如图1和图3中的mdsc114。处理器1830耦合到tx/rx1820,用于处理帧和/或确定向哪些节点发送(例如传输)数据包。在一个实施例中,处理器1830包括一个或多个多核处理器和/或存储器模块1850,用作数据存储器、缓冲区等。处理器1830实现为通用处理器或实现为一个或多个asic、fpga和/或数字信号处理器(digitalsignalprocessor,dsp)的一部分。虽然将处理器1830示为单个处理器,但其并不仅限于此,而是可以包括多个处理器。图18示出了存储器模块1850耦合到处理器1830以及存储器模块1850是用于存储各类数据和/或指令的非瞬时性介质。存储器模块1850包括存储器设备,包括辅助存储设备、只读存储器(read-onlymemory,rom)和随机存取存储器(random-accessmemory,ram)。辅助存储器通常包括一个或多个磁盘驱动器、光驱、固态驱动器(solid-statedrive,ssd)和/或磁带驱动器,并且用于数据的非易失性存储,而且如果ram的容量不足以存储所有工作数据则辅助存储器充当溢流数据存储设备。辅助存储设备用于存储程序,当选择执行这些程序时,这些程序将加载到ram中。rom用于存储指令,可能还存储在程序执行期间读取的数据。rom为非易失性存储器设备,相对于辅助存储设备的较大存储容量而言,其存储容量通常较小。ram用于存储易失性数据,可能还存储指令。访问rom和ram通常都快于访问辅助存储器。存储器模块1850用于存储用于执行本文所描述的各种实施例的指令。在一个实施例中,存储器模块1850包括通过处理器1830的执行来实现的wson抽象模块1860。在替代性实施例中,处理器1830包括wson抽象模块1860。在一个实施例中,根据本发明实施例来实现wson抽象模块1860以执行wson抽象,如结合图4至图11、图14、图15和图17所述。因此,例如,wson抽象模块1860在由处理器1830执行时使得处理器通过nbi(例如图3中的nbi306)向mdsc(例如图1和图3中的mdsc114)传送耦合到sdn控制器112的波长交换光网络(例如图1和图3中的光网络域106)的抽象。wson抽象模块1860在由处理器执行时还使得处理器通过以下方式生成抽象:例如,根据具体情况,响应于来自mdsc的请求确定一个源-目的节点对之间的最小时延och路径;或者确定每个可达的源-目的节点对之间的可用och路径的最大数量;或者确定每个可达的源-目的节点对之间满足预选时延阈值条件的och路径的最大数量,如上文结合图4中的方框404、408和418所述。又例如,在确定och路径的最大数量时,wson抽象模块1860还使得处理器1830针对包括一组预选光波长的所有oms链路确定该组预选光波长中的某个波长是否可用于源-目的节点对连接。如果该波长可用,则处理器还将oms链路包括在该波长的lambda平面中,并且将所有lambda平面中的每个lambda平面中的och路径数量相加,其中每个可达的源-目的节点对之间的可用och路径的最大数量包括och路径数量的总和,如上文结合图4和图5中的方框404以及图7所述。此外,sdn控制器112可包括任何其它用于实现wson抽象模块1860的机制,例如硬件引擎,其作为处理器1830的组件或作为耦合到处理器1830的单独硬件块,如本领域技术人员在阅读本发明后可以理解的。应理解,通过将可执行指令编程和/或加载到sdn控制器112上,处理器1830、缓存和长期存储器中的至少一个被改变,从而将处理器1830的一部分转换成特定机器或装置,例如具有包括本发明原则的功能的多核转发架构。加载可执行软件至计算机所实现的功能可以通过现有技术中公知的设计规则转换成硬件实施,这在电力工程和软件工程领域是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所涉及的任何问题。通常,仍在经受频繁改变的设计优选可在软件中实施,因为重改硬件实施方案比重改软件设计更为昂贵。通常,稳定及大规模生产的设计更适于在硬件(如asic)中实施,因为运行硬件实施的大规模生产比软件实施更为便宜。设计通常可以以软件形式进行开发和测试,之后通过现有技术中公知的设计规则转变成asic中的等效硬件实施,其反映软件指令的逻辑设计。由新asic控制的机器是一特定的机器或装置,同样地,编程和/或加载有可执行指令的电脑可视为特定的机器或装置。图19示出了用于实施本文描述的例如图4的方法400等一种或多种方法的装置1900。装置1900包括:构件1902,用于为每个可达的源-目的节点对确定源-目的连接的可用och路径的最大数量;构件1904,用于在指定了预选时延阈值的情况下确定满足该预选时延阈值的och路径的最大数量;以及构件1906,用于将可用och路径报告给服务协调器。图20示出了用于实施本文描述的例如图7的方法700等一种或多种方法的装置2000。装置2000包括:构件2002,用于针对光复用段(opticalmultiplexsection,oms)链路的一组预选光波长中的所有波长,确定该组预选光波长中的某个波长是否可用于源-目的节点对连接;构件2004,用于当该波长可用时将oms链路包括在该波长的lambda平面中;构件2006,用于使用以延迟作为链路权重的最短路径算法计算每个lambda平面的源-目的节点对之间的最短路径;以及构件2008,用于针对最短路径计算成功的所有lambda平面选择总路径延迟最小的最短路径。本发明的任何处理可以通过使处理器(例如,通用多核处理器)执行计算机程序来实施。在此情况下,可以向计算机或使用任何类型的非暂时性计算机可读媒体的网络设备提供计算机程序产品。计算机程序产品可以存储于计算机或网络设备中的非暂时性计算机可读媒体中。非暂时性计算机可读媒体包含任何类型的有形存储媒体。非瞬时性计算机可读介质的示例包括磁性存储介质(如软盘、磁带、硬盘驱动器等)、光磁性存储介质(如磁光盘)、只读光盘(compactdiscread-onlymemory,cd-rom)、可录光盘(compactdiscrecordable,cd-r),可重写光盘(compactdiscrewritable,cd-r/w)、数字多功能光盘(digitalversatiledisc,dvd)、蓝光(注册商标)光盘(blu-raydisc,bd)和半导体存储器(如掩模rom、可编程rom(programmablerom,prom)、可擦prom、闪存rom和ram)。还可以向计算机或使用任何类型的暂时性计算机可读媒体的网络设备提供计算机程序产品。暂时性计算机可读媒体的实例包含电信号、光信号和电磁波。暂时性计算机可读媒体可以经由有线通信线(例如,电线和光纤)或无线通信线向计算机提供程序。虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1