用于在基于度量路由的网络中执行流量工程的方法和系统的制作方法

文档序号:7578109阅读:196来源:国知局
专利名称:用于在基于度量路由的网络中执行流量工程的方法和系统的制作方法
技术领域
本发明一般涉及网络领域,并且在示例性实施例中,本发明涉及在基于度量路由的网络中执行流量工程的方法和系统。
背景技术
在各种数据网络中,使用最短路径优先(SPF)路由方法来确定数据应该在网络中从任意源节点路由到任意目的节点的路径。使用SPF路由方法的数据网络的示例是使用内部网关协议(IGP)的OSPF或IS-IS版本的因特网协议(IP)网络。
在基于SPF路由的网络中的节点由单向链路连接。为每条链路分配一个被称为度量(metric)的正数。任意穿过网络的路径的长度都被定义为组成该路径的链路上的度量的和。根据该定义,从源节点行进到目的节点的数据在这两个节点之间的最短路径上行进。如果多于一条路径具有相同代价,则在这些相同代价的路径之间以某种方式共享数据负载或带宽。
然后,网络度量的选择确定数据穿过网络的路由。穿过给定的网络路由中的某些选择可能比其他选择更令人满意。基于度量的流量工程是选择度量以实现所需路由的过程。出于以下多个原因中的任意原因,某些路由可能比其他路由更优选,所述原因例如是1.为了使网络中的每条链路都将带宽利用率(例如所利用的网络容量的百分比)保持在某个百分比之下,或者尽可能的低,以防止拥塞。
2.为了使网络中的每条链路即使在网络中的某些元件发生故障,或者被有目的地禁用,并且必须将带宽路由到网络中别处的时候,也可以将带宽利用率保持在某个百分比之下,或者尽可能的低。
本领域中的这两个方面已经作为一些之前的学术研究的主题1.从链路利用率的测量中估计网络中的点到点带宽需求(例如参见ACM SIGCOMM 2003中由Yin Zhang、Matthew Roughen、CarstenLund和David Donoho编写的“An Information-Theoretic Approachto Traffic Matrix Estimation”)。点到点带宽需求的知识对于在修改网络的度量和/或拓扑的情况下计算未来的链路利用率是必需的。
2.用于基于正常网络操作下的链路利用率来选择网络中的度量,从而避免拥塞的算法(例如参见“Traffic engineering with traditional IProuting protocols”,IEEE通信杂志,40(10)118-124,2002)。

发明内容
根据本发明的一个方面,提供了一种用于估计网络内的点到点带宽需求的系统,所述网络包括多个节点以及在多个节点之间的多条链路。所述系统包括网络控制器,用于确定网络中一组链路的链路流量量度,以及确定网络中一组节点之间的点到点带宽需求量度,所述链路流量量度每个都指示出各条链路的测定利用率,所述点到点带宽需求量度每个都指示出这组节点中包括的源节点和目的节点之间的测定需求。耦合到网络控制器的需求估计模块处理来自网络控制器的链路流量量度和点到点带宽需求量度,并且利用链路流量量度和点到点带宽需求量度来计算用于多个节点的多个点到点带宽需求估计。
根据本发明的另一方面,提供了一种用于估计网络内的点到点带宽需求的方法,所述网络包括多个节点以及在多个节点之间的多条链路。所述方法包括确定网络中一组链路的链路流量量度,所述链路流量量度每个都指示出各条链路的测定利用率。确定网络中一组节点之间的点到点带宽需求量度,所述点到点带宽需求量度每个都指示出这组节点中包括的源节点和目的节点之间的测定需求。利用链路流量量度和点到点带宽需求量度来计算用于多个节点的多个点到点带宽需求估计。
所述多个点到点需求估计可以用来仿真在网络路由状态改变情况下(例如网络拓扑改变、由于网络组件故障所产生的改变,或者在基于最短路径优先来路由的网络中的度量改变)的网络路由。
所述多个点到点需求估计还可以用来执行网络的路由仿真,以便在多个点到点需求估计中的每一个点到点需求估计下识别出网络内的每条链路的链路利用率。
在一个实施例中,所述多个点到点需求估计可以用来使多个点到点需求估计上以及多个网络故障情形上的链路利用率最优化。
链路流量量度的确定可以包括利用网络控制器来执行对一组链路的流量的测量。
点到点带宽需求量度的确定可以包括利用网络控制器来执行对一组节点中的节点之间的带宽需求的测量。
在一个实施例中,如果链路流量量度和点到点带宽需求量度不一致,则计算点到点带宽需求估计来调和所述不一致性。
所述方法还包括对多个节点的在先点到点带宽需求估计,并且在点到点带宽需求估计的计算中使用所述在先点到点带宽需求估计。所述计算可以包括识别出一组链路流量值,使得存在这样一组有效的点到点带宽需求水平当通过网络路由时,假设网络中没有故障,这组有效的点到点带宽需求水平产生上述一组链路流量值。
在一个示例性实施例中,上述一组链路流量值的识别使得上述一组有效的点到点带宽需求水平紧密匹配点到点带宽需求量度。上述一组有效的点到点带宽需求水平与点到点带宽需求量度之间的差别可以被最小化。
在另一示例性实施例中,上述一组链路流量值的识别使得上述一组链路流量值紧密匹配链路流量量度。
所述计算可以包括识别出一组靠近所述点到点带宽需求量度的点到点带宽需求水平。
所述计算还可以包括识别出一组点到点需求带宽水平,使得计算出的一组链路流量值与识别出的这组点到点带宽需求水平相对应,所述计算出的这组链路流量值是基于识别出的这组点到点带宽需求水平而计算出的。
所述计算还可以包括识别出一组点到点需求带宽水平,使得识别出的这组点到点需求水平紧密匹配在先点到点需求带宽水平。
根据本发明的另一方面,提供了一种用于使与网络的链路相关联的度量最优化的系统,所述网络利用最短路径优先(SPF)的路由方法来路由。所述系统包括度量流量工程模块,用于识别出至少一种可应用于该网络的故障情形,识别出至少一种可应用于通过该网络路由的点到点需求的带宽水平情形,并且自动计算网络的多条链路中的每条链路的度量,从而使通过网络的需求路由在所述至少一种故障情形中以及在所述至少一种带宽水平情形中最优化。耦合到所述度量流量工程模块的转换模块,根据计算出的网络的多条链路中的每条链路的度量,将网络配置改变发送到网络控制器。
根据本发明的又一方面,提供了一种用于使与网络的链路相关联的度量最优化的方法,所述网络利用最短路径优先(SPF)的路由方法来路由。所述方法包括识别出至少一种可应用于该网络的故障情形。还识别出至少一种可应用于通过该网络路由的点到点需求的带宽水平情形。自动计算网络的多条链路中的每条链路的度量,从而使通过该网络的需求路由对于所述至少一种故障情形以及所述至少一种带宽水平情形最优化。
该方法还可以包括识别出可应用于该网络的多种故障情形和多种带宽水平情形,并且自动计算该网络的多条链路中的每条链路的度量,从而使由度量确定的需求路由所产生的链路利用率对于网络的多条链路中的每条链路,对于所述多种故障情形中的每种故障情形,以及对于所述多种带宽水平情形中的每种带宽水平情形,都可以在预定阈值以下。
所述自动计算可以是计算网络的多条链路中的每条链路的度量,从而使多条链路中的每条链路的最大链路利用率最小化,所述最大链路利用率是在所述多条链路上、所述多种故障情形上以及所述多种带宽水平情形上的最大链路利用率,并且所述最小化在链路度量的所有可能选择上被执行。
所述至少一种故障情形可以是由于网络操作者为了禁止网络中的至少一部分而采取的自发动作的结果。
所述方法还可以包括应用在最短路径优先的路由方法中计算出的用于多条链路中的每条链路的度量,以便根据计算出的度量来路由网络内的流量。
所述方法还可以包括将由于自动计算出的用于至少一条链路的度量的应用而产生的,在至少一种故障情形以及至少一种带宽水平情形上的最大链路利用率传送到用户。
在一个示例性实施例中,所述最大链路利用率的传送包括指出是否有至少一个最大链路利用率超过预定的阈值链路利用率。所述最大链路利用率的传送可以包括产生用户界面,在该用户界面中,直观地指出至少一个最大链路利用率。
所述方法还可以包括将计算出的度量存储在网络内,以便根据所存储的度量,利用最短路径优先的路由方法来路由网络。
所述方法还可以包括识别出为其分别计算度量的网络中的多条链路,以作为网络的核心链路。在一个实施例中,对于核心链路的任意度量选择,识别出沿着通过网络核心的公共路由的多组点到点需求,并且将这些需求聚集起来,并且在自动计算中将其看作单个需求。
根据本发明的又一方面,提供了一种用于将基于最短路径优先(SPF)来路由的网络从第一路由状态迁移到第二路由状态的系统。所述系统包括转换模块,用于产生中间网络规划的序列,所述中间网络规划中的每一个都修改根据在前的网络规划的在前的网络状态,从而改变至少一种需求在网络中的路由,所述中间网络规划的序列用于将网络从第一路由状态迁移到第二路由状态。网络控制器根据中间网络规划的序列来顺序配置网络,从而将网络从第一路由状态迁移到第二路由状态。序列中的每个中间网络规划都将网络配置为在至少一种预定限制内进行操作。
本发明的另一方面提供了一种用于将基于最短路径优先(SPF)来路由的网络从第一路由规划迁移到第二路由规划的方法,所述第一路由规划使第一组度量与网络的链路相关联,所述第二路由规划使第二组度量与网络的链路相关联。所述方法包括产生中间网络规划的序列,所述中间网络规划中的每一个都修改根据在前的网络规划的在前的网络状态,从而改变至少一种需求在网络中的路由,中间网络规划的序列用于将网络从依照第一网络规划的第一路由状态迁移到依照第二网络规划的第二路由状态。然后,根据中间网络规划的序列来顺序配置网络,从而将网络从第一路由状态迁移到第二路由状态。所述序列中的每个中间网络规划都将网络配置为在至少一种预定限制内进行操作。
所述至少一种预定限制可以是使在前的网络状态和所产生的网络状态之间的收敛时间小于预定的最大时间、不超过网络的至少一条链路的预定容量的带宽需求的最大百分比增长,或者与网络内的点到点需求相关联的最大需求延迟。在一个实施例中,最大需求延迟被指定为与点到点需求相关联的现有需求延迟上的百分比增长。所述至少一种预定限制还可以是网络的至少一条链路的最大链路带宽利用率,其中所述最大链路带宽利用率是在网络的至少一种故障情形上。所述至少一种预定限制还可以是将在网络上提供的最小服务质量,或者在多种故障情形上的最大链路带宽利用率。
所述中间网络规划序列的产生可以包括定义网络路由状态树,该树以第一路由状态作为根,以及在该树中识别出从根到第二网络路由状态的路径,从而作为路径中的每个节点的各个网络状态将网络配置为在至少一种预定限制内进行操作。
所述中间网络规划序列的产生可以包括确定中间网络规划的第一序列超过第一限制,并且然后修改第一限制,以产生至少一种预定限制,其中根据该至少一种预定限制来产生中间网络规划的序列。
在一个示例性实施例中,中间网络规划序列中的特定中间网络规划可以只在单个度量上与在前中间网络规划不同。在另一实施例中,中间网络规划序列中的特定中间网络规划可以有至少一个度量与在前中间网络规划不同,或者网络的至少一条链路的状态与由在前中间网络规划指定的在前状态不同。例如,所述状态可以是活动状态,并且在前状态是非活动状态,或者所述状态是非活动状态,并且在前状态是活动状态。
所述方法可以包括识别出第一组链路,并且其中序列中的第一中间网络规划与在前中间网络规划的不同之处在于第一组链路内的每条链路的状态与由在前中间网络规划指定的在前状态不同。
所述网络的顺序配置可以包括顺序将中间网络规划序列中的每个中间网络规划从转换序列模块传送到网络控制器,其中所述转换序列模块接收来自网络控制器的确认,该确认表明特定的中间网络规划在传送后续中间网络规划之前已经被配置。
本发明的另一方面在于提供了一种用于产生界面来显示关于网络的信息的自动化方法,该方法包括识别出网络节点的至少一个集合,以构成网络站点。产生所述界面将包括的第一显示,该第一显示描绘了代表网络内的各个网络节点和网络链路的图形节点和图形链路,其中网络节点的至少一个集合由所述显示内的单个图形节点来代表。产生所述界面将包括的第二显示,所述第二显示描绘了网络节点的至少一个集合,以及所述至少一个集合中的节点之间的网络链路。所述界面的产生是与将第一和第二显示提供到用户同步发生的。
所述网络节点的集合的识别可以包括将网络节点的至少一个集合识别为位于公共的物理位置。
所述第二显示的产生可以包括还在第二显示内描绘出所述至少一个集合中的节点与所述至少一个集合外的节点之间的网络链路。
在网络中的一对节点之间的至少两条链路可以被显示为构成回路,以便于这对节点之间的双向通信,所述第一显示的产生包括代表了节点对之间的回路的图形回路。
所述方法可以包括产生图形回路,从而直观地指出节点对之间的带宽容量。
可以产生图形回路,从而描绘出构成所代表的网络回路的网络链路,以直观地指示出所代表的网络回路的带宽利用率(例如通过根据颜色/利用率索引对图形链路着色,或者通过与所述带宽利用率成比例地对图形链路的一部分着色)。
可以产生所述界面,以给出对关于网络的故障情形的用户说明,并且提供对响应于故障情形的通过网络的重路由需求的显示。
可以产生所述界面,以给出对关于网络的带宽需求水平的用户说明,并且提供对响应于指定的带宽需求水平的网络内带宽利用率的显示。
甚至还可以产生所述界面,以给出对网络流量服务等级的用户说明,并且提供一种或多种指定的网络流量服务等级特有的带宽需求和带宽利用率信息。
在一个示例性实施例中,可以产生所述界面,以提供对与网络中属于指定的网络流量服务等级的网络流量可获得的容量总量相等的容量的指示,并且以容量的比例示出带宽利用率信息。
还可以产生所述界面,以显示在所定义的最坏情况的故障情形中,对于网络中至少一条链路的带宽需求和带宽利用率信息中的至少一种。
可以基于多种故障情形和多种需求带宽水平中的最高利用率对将显示在界面内的每条链路着色,从而将多条链路描绘为具有多种故障情形和多种需求带宽水平中的至少一种所表现出的利用率。
本发明的又一方面在于,提供了一种用于使基于最短路径优先来路由的网络内的路由最优化的方法。该方法包括估计网络内的带宽需求。利用估计出的带宽需求来确定当前状态中网络内的带宽利用率。执行与网络的链路相关联的度量的最优化,从而识别出网络的所需状态,在所述所需状态内,相对于当前状态降低了网络内的带宽利用率。产生转换序列,从而将网络从当前状态迁移到所需状态。
本发明的其他特征将从以下的附图和详细描述中显现出来。


在附图的图形中,以示例的方式,而不是限制的方式示出了本发明,在附图中相同的标号指示相似的元件,在附图中图1根据本发明的示例性实施例示出了流量工程系统的框图。
图2A和2B根据本发明的示例性实施例,示出了网络规划数据结构的图形表示,所述网络规划数据结构可以用于存储关于现有以及所需网络规划的信息。
图3是图2所示的网络规划结构所涉及的示例性网络的图形表示。
图4根据本发明的示例性实施例,示出了用于计算网络规划结构的带宽利用率结构的方法的流程图。
图5根据本发明的示例性实施例,示出了度量流量工程模块的体系结构细节的框图。
图6是示例性网络的图形表示,并且示出了示例性核心网络规划模块如何创建核心网络规划。
图7根据本发明的示例性实施例,示出了可以由核心网络规划创建模块实现的,用于创建需求结构的方法的流程图。
图8是两种示例性需求结构的图形表示。
图9根据本发明的示例性实施例,示出了用于在度量最优化模块中使度量最优化的方法的流程图。
图10根据本发明的示例性实施例,示出了转换模块(changeovermodule)的体系结构的框图。
图11根据本发明的示例性实施例,示出了可以由转换序列产生模块创建的转换序列的数据结构的框图。
图12根据本发明的示例性实施例,示出了可以由转换序列产生模块实现的,用于产生转换序列的方法的流程图。
图13根据本发明的示例性实施例,示出了可以由转换信令模块利用网络控制器实现来执行转换序列的方法的流程图。
图14是根据本发明一个示例性实施例的转换序列结构的图形表示,以及网络中的链路利用率表和转换序列的每个步骤。
图15根据本发明的示例性实施例,示出了需求估计模块与流量工程系统中的其他元件进行交互的框图。
图16根据本发明的示例性实施例,示出了可以由基本需求估计器实现的,用于计算基本需求的方法的流程图。
图17根据本发明的示例性实施例,示出了可以由需求变化估计器实现的,用于计算需求变化的方法的流程图。
图18到图21示出了在本发明一个示例性实施例中,可以由GUI产生并表示的示例性界面。
图22以计算机系统的示例性形式示出了机器的图形表示,在所述计算机系统内,可以执行用于致使机器执行这里所述的方法和算法中的任意一个或多个的一组指令。
具体实施例方式
这里将描述示例性流量工程系统,以及由系统执行的各种示例性方法和功能。在以下描述中,出于解释的目的而提出了大量具体细节,以便对本发明提供全面的理解。但是,本领域的技术人员显而易见,没有这些具体细节也可以实施本发明。
图1根据本发明的一个示例性实施例,示出了流量工程系统10的框图。图中的箭头表示穿过系统10的数据流的方向。
示例性网络100是基于SPF路由的电信网络,在该网络上,系统10通过操作链路度量和/或激活或禁止网络100中的各种元件或元件集合,来执行流量工程。
网络控制器105进行操作,从而从网络100中提取出配置和利用率测量结果,并且在网络100上执行配置改变。网络控制器105例如可以是下列形式中的一种或多种1.用于自动执行这些任务的专用软件和/或硬件,2.能够手工与网络100进行交互,从而提取出必要信息或修改网络配置的人工网络控制者,或者3.网络100本身中能够执行测量和控制所需功能的软件和/或硬件。网络控制器105建立被方便地称为现有网络规划115的数据结构。现有网络规划115由图形用户界面(GUI)140和度量流量工程模块125用来建立所需网络规划130。现有网络规划115和所需网络规划130两者都被输入到转换模块135,该转换模块135建立转换序列(例如用于将网络100从现有配置改变到所需配置的网络拓扑和度量配置改变的序列)。然后,由转换模块135创建的转换序列被发送到网络控制器105,该网络控制器105在网络100上逐步实现改变。现有网络规划115是一种使用以下信息建立的数据结构1.直接从网络控制器105获得的,关于网络100的拓扑的信息。
2.关于网络100中的点到点带宽需求的信息,该信息如果无法经由网络控制器105而直接从网络100中读取,则从需求估计模块110中获得。否则,该信息可以从网络控制器105中获得。
3.被方便地标注为扩充网络数据120的额外网络规划信息,该信息无法经由网络控制器105而直接从网络100中获得。该扩充网络数据120例如可以由网络100中的各种共享风险链路组(SRLG)(例如已经确定具有某种一起发生故障的合理可能性的链路组)组成。
GUI140为用户提供现有网络规划115的表示,从而使用户了解网络100的当前状态。GUI140还协助创建所需网络规划130。所需网络规划130例如可以以下列方式而不同于现有网络规划1151.在现有网络规划115中处于活动状态(例如所有组件都处于正确地工作中)的一些SRLG在所需网络规划130中处于非活动状态(例如所述组件都未在工作中)。所需网络规划130中的这种改变是由用户通过GUI140来执行的。例如,如果用户出于维护的目的而想要从网络100中除去一个节点,用户则可以创建所需网络规划130,在该所需网络规划130中,相应节点被禁止,并且使用度量流量工程模块125来确定一组用于所需网络规划130的度量,在这组度量下,相应节点的禁止对链路利用率具有最小影响。然后,转换模块135确定度量改变以及发生节点禁止的顺序,从而以对网络100的最小扰乱而改变到所需网络规划130。
2.在现有网络规划115中处于非活动状态的一些SRLG在所需网络规划130中处于活动状态。所需网络规划130中的这种改变可以由用户通过GUI140来执行的。例如,假设用户已经如以上1.中所述而禁止了一个节点,并且一旦维护完成,用户就想要重新激活该节点。现有网络规划115是在1.中的所需网络规划130,并且所需网络规划130是在1.中的现有网络规划115。然后,转换模块135将确定应该执行度量改变和节点重新激活的顺序,以便使网络100变回其初始配置。
3.一些度量在现有网络规划115中可能与在所需网络规划130中有所不同。这可能是度量流量工程模块125改变所需网络规划130的度量,以提高网络100的利用率特性的结果,或者也可以由GUI140的用户来手工改变度量。然后,转换模块135可以确定应该在网络100本身上改变这些度量的顺序。
图2A和2B根据本发明的示例性实施例,示出了网络规划数据结构200,该网络规划数据结构200用于存储关于现有网络规划115和所需网络规划130两者的信息。
示例性网络规划结构200包括拓扑结构205、需求结构220、共享风险链路组结构230和带宽利用率结构235。
拓扑结构205包含关于网络拓扑的信息,例如网络100的物理结构及其内部配置。示出的拓扑结构205还包含链路数据结构210和节点数据结构215。链路数据结构210列出了网络100中的链路。网络链路是单向的,从网络100中的一个节点到另一节点。对于网络100中的每条链路,链路数据结构210记录了链路名称、链路发起的节点(From节点)、链路终止的节点(To节点)、例如以兆位每秒(Mb/s)表示的链路容量、链路度量、链路延迟以及该链路是否是核心链路。链路延迟是数据穿过相应链路所花费的时间(例如以毫秒(ms)表示)。核心网络的概念将在下文中详细解释。
节点数据结构215列出了网络100中的节点。对于网络100中的每个节点,节点数据结构215列出了节点名称以及该节点是否是核心节点。核心节点的概念也将在下文中详细描述。
现在转到需求结构220,该结构220包含穿过网络100的一列带宽需求。带宽需求可以是确实(或可能)从网络100中的一个源节点或一组源节点流到网络100中的一个目的节点或一组目的节点的真实的或者假设的带宽水平。每个带宽需求包含一组源节点和一组目的节点,以及一个或多个与需求相关联的带宽水平225。每个带宽水平225包含带宽水平名称以及以兆位每秒(Mb/s)表示的带宽水平本身。需求可以包含多于一个带宽水平225,以例如代表在一天中不同时间上的带宽水平,或者如果需求带宽不是确切已知的,而是从对网络100的测量中估计出来的,则需求可以包含多于一个带宽水平225可以代表不同的假设带宽水平。
共享风险链路组(SRLG)结构230包含网络100上的一个或多个SRLG的定义。在示例性实施例中,SRLG是多组网络链路,这些网络链路具有某种在同一时间同时发生故障的不可忽略的可能性。例如,SRLG可以是网络100中的一个回路,该回路连接两个节点并包含两条链路,一条链路在一个方向上连接节点,而另一条链路在相反方向上连接节点。在典型的IP网络中,如果这些链路中的一条发生故障(例如由于在链路发起节点上的链路接口卡发生故障),另一条也将发生故障。这样,应该考虑这两条链路一起发生故障的情况。SRLG的另一示例是在特定节点处发起和终止的所有链路。如果该特定节点将发生故障或被禁止,所有这些链路将同时变为非活动状态。SRLG的又一示例是沿着同一物理管道(conduit)放置的一组回路内的一组链路。如果该管道在物理上被切断,所有这些链路则将同时发生故障。
SRLG结构230这样列出了多个SRLG,并且指示出在这些SRLG中包括哪些链路。在用于示出示例性网络规划结构200的示例数据中,存在四个回路、一条管道和一个可以发生故障的节点。在图3中将对此进行描述。
对于SRLG结构230中列出的每个SRLG,用一个标志指示出相应SRLG是否处于活动状态。这些标志能够指示出具有相同拓扑结构的两个不同网络规划结构(例如现有网络规划115和所需网络规划130)之间的拓扑差异。如果SRLG没有被激活,那么出于路由的目的,则指示SRLG中的链路在网络100中不存在。
在本发明的一个示例性实施例中,在SRLG结构中列出的一个SRLG可以被看作特殊情况,并且总是被列出“无故障”SRLG。这个特殊情况的SRLG可以是空的SRLG,即不包含链路。特殊情况的SRLG是为了方便而提供的,因此在不同故障情形下,以一次通过一个SRLG的方式执行循环来计算网络行为的操作将包括作为这些情形之一的无故障的情形。
在本发明的一个示例性实施例中,带宽利用率结构235可以以如下参考图4将描述的方式从网络规划数据结构200的其余部分中计算出来。对于需求结构220中命名的每个带宽水平,将带宽水平利用率结构240包括在带宽利用率结构235中。对于网络100中的每条链路,以及对于SRLG结构230中列出的每个SRLG,带宽利用率结构235记录了特定链路的百分比带宽利用率,其中需求结构220中的需求被路由通过SRLG中的链路在其中是非活动的网络100。
图3示出了图2所示的网络规划结构200中的数据所涉及的示例性网络301。网络301中的三个节点A、B和C被图示为325、335和330。在链路数据结构210中列出的每条链路在这里被图示为从链路的发起节点到终止节点的箭头。这里以两对的形式示出了连接节点A和节点B的四条链路。第一链路对300包括图2所示的SRLG结构230中的SRLG列表中的回路1。第二链路对305相似地包括回路2。回路3和回路4被示为链路对310和315。由于在310和315中的四条链路是在节点C处发起和终止的一组链路,因此它们构成了被标注为节点C的SRLG,并且因此如果节点C发生故障,这四条链路也将发生故障。由于组成300和305的四条链路沿着相同的物理路由连接节点A和节点B,因此它们还一起构成了SRLG320,该SRLG320代表两个回路300和305一起位于的单个管道。
图4示出了根据本发明的示例性实施例的方法401的流程图,该方法401用于从网络规划结构200中除了带宽利用率结构235之外的其他组件,即拓扑结构205、需求结构220和共享风险链路组结构230中计算带宽利用率结构235。
在方框400中,指定符号来代表给定的网络规划。该网络规划具有被编号为k=1,...,p的链路,其中每条链路具有容量C(k)。需求结构220包含需求i=1,...,n,其中每个需求具有b个带宽水平,b=1,...,B。源节点和目的节点被指定为S(i)和D(i),i=1,...,n。用bw(i,b)给出第i个需求的第b个带宽水平。在SRLG结构230中的SRLG被编号为j=1,...,m。
在方框405中,将存储带宽利用率结构235的数组U被初始化为0。就是说,将对于所有SRLG j=1,...m、链路k=1,...,p和带宽水平b=1,...,B的B(j,k,b)都设置为0。计数器i、j和b被设置为1。这些将分别索引需求、SRLG和带宽水平。
在方框410中,计算出穿过网络100从源节点S(i)到目的节点D(i)的需求i的最短路径路由,在所述网络100中已经除去了与SRLG j相关联的链路。最短路径是使用拓扑中链路中的每条链路上的度量而计算出的。对于该过程,可以使用多个公知算法中的任意算法,所述公知算法例如包括Dijkstra算法。如果从源节点到目的节点之间存在多于一条最短路径,则在这些最短路径之间存在各种分流方法,并且方法401在这里模仿被建模的网络100所使用的方法。例如,可以使用等代价多路径(ECMP)算法,在该算法中,将数据流平均分流到具有相等长度的所有路径中。
由该需求所采用的路由确定该需求在网络100中的每条链路上的利用率。将D(k)(k从1到p)设置为该需求i通过链路k的利用率(Mb/s)。
在方框415中,将需求i的利用率的向量D添加到带宽水平利用率结构240中,所述需求i具有发生故障的SRLG j以及带宽水平b。
方框420、425、430、435、440和445协助执行通过方框410的循环,该循环对于i从1到n、j从1到m和b从1到B的每种组合(即对于每个需求、SRLG和带宽水平)都执行一次。
最后,一旦所有循环结束,方框450就将以U(Mb/s)表示的利用率转换到以每条链路的容量的百分比表示的利用率。U中的每个条目除以网络中相应链路的容量。于是所得到的U就是所需的利用率结构。
图5根据本发明的示例性实施例,提供了关于度量流量工程模块125的体系结构的更多细节的框图。现在将参考图5来描述关于由度量流量工程模块125执行的各种功能的更多细节。
现有网络规划500被输入到度量流量工程模块125中。度量流量工程模块125进行操作,以替换现有网络规划500中的一些或全部链路度量,从而改善规划需求所产生的路由。
出于解释的目的,认为典型电信网络的链路可以被划分为核心节点和非核心节点。连接两个核心节点的链路是核心链路,否则就是非核心链路。在本发明的一个示例性实施例中,由度量流量工程模块125执行的流量工程过程通过只改变核心链路中的度量进行操作。这可以通过减少可以被修改的变量数目来降低最优化任务的复杂性。而且,通常情况是这样的整个网络上的非核心链路(例如边缘链路或对等链路)的度量都被标准化,并且如果不破坏网络的配置方针,就无法改变它。而且,通过限制网络核心的最优化,可以将从核心外发起的需求聚集成通过核心的较小量需求,从而进一步降低最优化任务的复杂性。因此,所示度量流量工程模块125包括核心网络规划创建模块510,该模块以在图6、7和8中将描述的方式将现有网络规划500转换成只包含核心节点、链路和需求的核心网络规划515。
应该注意,在本发明的其他实施例中,或许可以将整个网络定义为核心,在这种情况下,模块510和525变得不相关。
如上所述,核心网络规划创建模块510创建核心网络规划515,为了解释的目的,将核心网络规划515看作以上参考图2所描述的网络规划结构200。根据本发明的示例性实施例,度量最优化模块520将核心网络规划515用作输入,并且将核心网络规划515中的度量改变为更加优选的一组度量。然后,相应的核心链路度量被初始网络规划500中的核心度量修改模块525所改变。核心网络规划创建模块510还可以以某种方式创建核心网络规划515,所述方式是使有益于核心网络规划515的路由的度量改变也同样有益于通过初始网络规划500的核心组件的路由。
图6是示例性网络601的图形表示,并且示出了核心网络规划创建模块510如何根据本发明的一个示例性实施例创建核心网络规划515。图6还示出了示例性电信网络中的各种非核心元件。
在网络规划结构200中,网络601中的每个节点都被定义为核心节点或非核心节点。在图6中,在网络核心600中包围的节点已经被定义为核心节点,而在网络核心600外的那些节点是非核心节点。例如,节点615是非核心节点,而节点605是核心节点。诸如箭头610之类的双向箭头代表包含两条链路的回路,在每个方向上各有一条。诸如箭头635之类的单向箭头示出了链路。连接两个核心节点的链路被定义为核心链路(例如在610中的两条链路);其他的相关链路是非核心链路(例如链路635)。
每个靠近回路或链路的圈形数字(例如圈形数字640)都代表回路中的链路或链路自身的度量。诸如节点615之类的边缘节点充当在示例性网络601内发起和终止的需求的源和目的地。
电信网络通常是彼此对等的,因此每个电信网络运载发起于另一网络的流量,或者去往其他网络的流量。网络管理员能够改变它们的对等安排,从而在一定程度上控制来自其他网络的数据在何处进入其网络,以及控制来自其网络的数据在何处进入其他网络。
在网络规划结构200中,可以通过包括代表每个对等网络的特殊节点来表示网络对等。节点620是代表对等网络的“特殊节点”的示例。具体而言,节点620代表对等网络,在示例性网络601中,可以通过节点625或节点630来访问该对等网络。在示例性网络601中,去往对等网络中的目的地的需求将从节点630或节点625出去,至于从哪个节点出去,则依赖于其中哪个节点在从源到目的地620的最短路径上。这样,通过改变网络601内的度量,可以影响到去往对等网络的数据流在其路径上的最后一个节点是节点625还是节点630。
但是,如果对等网络是进入示例性网络601的需求的源,那么利用网络601内的度量改变则不会影响到数据流在网络601中通过的第一个节点。在该示例中,在节点620处发起的数据可以通过节点630或节点625流入网络601中,但是这不能通过改变网络601内的度量来改变。
得出一个结论为了对发起于例如由网络规划结构200中的节点620代表的对等网络的需求建模,往往依赖于流量从何处进入网络601而将源节点指定为节点630或节点625。但是,为了对以由节点620代表的对等网络为目的地的需求建模,可以将目的节点指定为节点630,并且网络601中的度量选择将决定采用到对等网络(节点620)的两条路径中的哪一条。
图7示出了根据本发明的示例性实施例的算法701的流程图,算法701可以由核心网络规划创建模块510用来构建新的需求结构220,该需求结构220替代网络规划500中的现有需求结构220。新的网络需求结构220将需求的源和目的地看作核心节点。这样可以构建核心网络规划515,从而除去所有非核心节点和非核心链路,因此可以将520中的度量最优化仅仅限制在核心链路中的度量上。
方框700描述了用于代表流程图中的输入(例如现有)网络需求结构220的符号。对于每个i=1,...,n,NS(i)、ND(i)和NBW(i)分别是现有网络需求结构220中的每个需求的源节点、目的节点和带宽水平。在方框705中,计数器i被设置为1。
方框710将CS(i)设置为在主体网络中,到节点NS(i)的度量距离最短的核心节点的集合。例如,如果NS(i)是图6中的节点630,那么CS(i)被设置为集合{CR1.A,CR2.A},这是因为这两个核心节点距离节点630的距离都是5,并且因此它们是距离630最近的核心节点。
方框710还将CD(i)设置为在主体网络中,到节点ND(i)的度量距离最短的核心节点的集合。例如,如果ND(i)是图6中的节点620,那么CD(i)被设置为集合{CR1.A,CR2.A,CR1.C,CR2.C},这是因为这四个核心节点距离节点620的距离都是10,并且因此它们是距离620最近的核心节点。
方框715检查计数器i是否已经到达n,即网络需求的总数。如果没有,方框720则增加i,并且继续执行通过710的循环。如果i=n,流程则进入方框725。
方框725构建源和目的地对的列表{(CS(1),CD(1)),...,(CS(n),CD(n))}中的所有唯一对的集合。m被设置为该唯一对列表的长度,该唯一对列表被记作(S(j),D(j)),j=1,...,m。
对于j从1到m的每个唯一对(S(j),D(j)),方框730计算带宽BW(j),该BW(j)是对应于与(S(j),D(j))相同的所有源和目的地对(CS(i),CD(i))的所有带宽NBW(i)的和。
这样一来,构建了具有唯一的源和目的节点集合的m个需求,这些需求是从相同核心节点的集合进入和离开网络核心600的所有输入网络需求的聚集。在方框735中,向量S、D和BW代表这些聚集需求中的每个需求的源节点集合、目的节点集合和聚集带宽。这样,在流程图中代表的算法701结束。
图8示出了两个示例性需求结构800和805,它们在结构上与以上参考图2所描述的需求结构220相对应。第一需求结构800包含了通过图6所代表的示例性网络601的需求的示例列表。第二需求结构805包含了在例如使用图7所述的算法701而由核心网络规划创建模块5 10将这些需求聚集到核心路由器的集合之间的需求中时,所形成的这些需求的列表。
由于在示例性网络601中,CR1.A是最靠近ER1.A的单个核心节点,因此第一需求结构800中的从ER1.A到CR1.B的第一需求被转换成第二需求结构805中的从CR1.A到CR1.B的需求。
后面三个需求都具有最靠近相同的核心路由器集合,即{CR1.A,CR2.A}的源。它们的目的节点也都最靠近(例如在平常感觉上)相同的核心路由器CR1.B。这些需求以总带宽30(即这三个需求的带宽和)被聚集到805中的单个核心需求中。
在800中的第五需求具有距离四个核心路由器{CR1.A,CR2.A,CR1.C,CR2.C}距离相等(距离=10)的目的节点。因此在805中,这些核心路由器都是相应需求的目的节点。
图9示出了根据本发明的一个示例性实施例的方法901的流程图,方法901用于在度量最优化模块520中使度量最优化。
示例性方法901的具体最优化目标是在网络规划结构200指定的所有链路上、所有SRLG故障上以及所有带宽水平上采用最大链路利用率的情形下,使最大链路利用率最小化。链路利用率越高,链路就越可能经历拥塞,并且因此导致穿过该链路的数据传输中断。通过确保在所有链路上、SRLG故障上以及带宽水平上的最大链路利用率尽可能的低,方法901试图在以下多种操作状况下,提供对主体网络601的所有链路的低利用率,所述操作状况包括1.“无故障”SRLG操作模式,在该操作模式中,网络601的所有元件都正常工作。
2.在网络规划500中列出的任意其他SRLG故障下的操作,所述SRLG故障包括(如果包括在列表中)回路故障、节点故障以及诸如管道故障的其他SRLG故障。
3.在不同带宽水平下的操作,所述不同带宽水平可以代表在一天或一星期中不同时间的带宽。
4.在不同带宽水平下的操作,所述不同带宽水平可以代表关于网络中每个需求的实际带宽水平是什么的不同假设。这些假设例如可以由需求估计模块(110)创建。
注意,如果只将网络规划500中节点的子集定义为核心节点,那么该最优化将只在这些核心节点之间的核心链路上发生。这意味着将不会尝试使非核心链路的利用率最小化。除了将最优化限制到核心上的计算优点之外,这种限制还具有忽略接入到网络601的小接入链路中的拥塞的优点,在网络601中,或许因为只能利用一条接入链路将某些带宽需求带入核心网络,因此在此处拥塞可能是无法避免的。
在第一方框900中,将网络规划500定义为利用p条链路k=1,...,p和m个SRLG j=1,...,m来索引。对于每个k,将m(k)定义为链路k上的当前度量。两个计数器t_1和t_2被设置为0。
在方框905中,对于q个带宽水平l=1,...,q中的每个带宽水平,使用从度量m计算的路由来计算网络规划500中的带宽水平结构。这些带宽水平结构例如可以使用以上参考图4所描述的方法401来计算。找到三元组(j_0,k_0,l_0),从而使在带宽水平l_0、SRLG j_0、链路k_0中的利用率在网络规划中的所有带宽水平中的所有链路和SRLG中的所有利用率中最高。将B_max设置为该最大带宽水平。
在方框910中,将两个计数器t_1和t_2加1。
在判断框915中,对计数器进行测试。在示例性实施例中,对方法901中可以执行的最大叠代次数设置一个界限max_tries_no_progress,而不会在降低这一目标上取得进展。如果t_1超过该界限,则终止最优化循环。而且,无论取得进展与否都对该算法中的最大叠代次数也设置一个界限total_tries。如果t_2超过该界限,则终止最优化循环。
如果在判断框915中的条件都不满足,方框920则增大链路k_0的度量,所述链路k_0是在方框905中找到的具有最高利用率的链路。通过增大该度量,则存在通过链路k_0路由的一些需求现在将被路由到别处的可能性,这是因为现在存在通过网络的新的更短路径。
方框925执行与方框905相同的计算,从而找到在新的度量设置下产生最高利用率的三元组(j_0,k_0,l_0)。该最高利用率被存储在B_newmax中。
判断框930检查新的利用率B_newmax是否小于之前的最大利用率B_max。如果是,则在降低最大利用率方面已经取得进展。在这种情况下,方框935重新将计数器t_1设置到0,并且将B_max设置到新的最大利用率B_newmax,并且流程从方框905处继续。如果不是,流程则直接从方框905处继续。
在判断框915中的测试之一满足之后,方法901终止。向量m包含了新的最优度量,并且获得了新的最小的最大利用率B_max。
图10示出了根据本发明的示例性实施例的转换模块135的框图。在转换模块135中的子模块之间的数据流被示出。
图10示出了转换模块135的两个输入,即1.现有网络规划115,将会想起,该现有网络规划115是代表了主体网络的当前状态的网络规划结构(如图2所示)。
2.所需网络规划130,该所需网络规划130代表了主体网络的所需新状态的网络规划结构。这两种规划除了在拓扑中的每条链路上(可能)具有不同的度量之外,具有相同的拓扑结构205。它们除了在一种规划中处于活动状态的一些SRLG可能在另一种规划中处于非活动状态(反之亦然)之外,这两种规划具有相同的需求结构220和相同的SRLG结构230。
转换模块135可以执行两种任务。第一种由转换序列产生模块1015执行,该任务用于产生逐步改变的转换序列1020,从而将主体网络从现有网络规划115中反映出的状态迁移到所需网络规划130中反映出的状态。在转换序列1020中的每个步骤例如可以是SRLG的激活、SRLG的禁止或者单个链路的度量改变。
然后,由转换信令模块1025在主体网络上执行转换序列1020。转换信令模块1025将信号发送到网络控制器1030,从而指示控制器1030应对主体网络1035执行哪些改变。在已经成功地执行了转换序列1020中的每个改变之后,网络控制器1030回复转换信令模块1025改变已被成功执行,并且转换信令模块1025将转换序列1020中的下一改变发送到网络控制器1030。
图11示出了根据本发明的示例性实施例的转换序列1020的数据结构1100的框图,该数据结构可以由转换序列产生模块1015来创建。
转换序列数据结构1100包含一列转换步骤结构1105,这些转换步骤结构1105被编号为从1到转换序列1020中的步骤总数。每个转换步骤结构1105由三种可能的子结构(记作1115、1120和1125)之一所组成。
具体而言,如果由转换步骤结构1105代表的步骤是网络规划中的SRLG的激活,转换步骤结构1105则包含结构1115。结构1115包含了激活命令,以及当前处于非活动状态并且在转换序列的该步骤中必须被激活的SRLG的索引。
如果由转换步骤结构1105代表的步骤是网络规划中的SRLG的禁止,转换步骤结构1105则包含结构1120。结构1120包含了禁止命令,以及当前处于活动状态并且在转换序列的该步骤中必须被禁止的SRLG的索引。
如果由转换步骤结构1105代表的步骤是改变网络规划中的链路度量,转换步骤结构1105则包含结构1125。结构1125包含了改变度量的命令,以及其度量必须被改变的链路的索引和该链路的度量必须改变到的新度量。
图12示出了根据本发明的示例性实施例的方法1201的流程图,转换序列产生模块1015可以使用该方法1201来产生转换序列1020。
该方法由于以下原因而有助于找到在网络中应该执行的改变的顺序1.改变没必要一次全部执行。基于最短路径路由的网络在每次执行度量改变,或者激活或禁止主体网络的元件时,都需要时间来重新找到通过主体网络的最短路径路由。在这段时间中,主体网络可能被扰乱,其中主体网络的一些部分已经更新到新的路由,而其他部分还未更新。诸如单个度量改变或者激活或禁止单个元件之类的小改变将更快地收敛到网络中的一组新的路由,而不会引起像大量改变同时发生时那样的扰乱。
2.假设随后必须顺序执行多个小改变,则期望应该可以接受中间路由(例如在转换序列1020的步骤中的部分而非全部步骤已经完成时产生的那些路由)。例如,在主体网络的正常操作下,在通过主体网络的需求当前使用的带宽水平下,这些中间路由不应导致过高的利用率。其他考虑可能也是非常重要的。例如,可能需要这些中间阶段中的利用率在一个SRLG发生故障的情况下不会过高,从而如果该故障发生在执行转换序列的中间,主体网络也不会发生拥塞。而且,可能需要确保网络中的路由延迟在中间步骤的任意步骤中都不会过高,从而对主体网络中的所有用户都可以满足一定的服务质量。
在开始框1200中,由转换序列产生模块1015接收到现有和所需网络规划115和130。这些规划115和130在图12的流程图中被记作P1(现有网络)和P2(所需网络)。
在方框1205中,将集合V设置为空集合,所述集合V将包含已经检查过可接受性的所有可能的部分转换序列。计数器i被设置为1,并且当前中间网络规划P被设置为现有网络规划P1。
在方框1210中,搜索适当的转换步骤,当应用到当前中间网络规划P时,该转换步骤将使网络规划在更靠近所需网络规划P2的方向上移动一步,并且该转换步骤将提供可接受的中间网络规划。搜索到的转换步骤A(i)应该使得部分转换序列A(1),...,A(i)不在V中。这样可以确保已经检查过的可能的转换序列不会被再次检查。A(i)应该是下列转换步骤之一1.在P中处于非活动状态而在P2中处于活动状态的SRLG的激活,
2.在P中处于活动状态而在P2中处于非活动状态的SRLG的禁止,3.链路度量从其P中的值到P2中的(不同)值的改变。
在方框1215中,流程依赖于是否可以找到这样的A(i)而被分开。如果否,则无法找到可接受的转换序列,并且方法1201在方框1220处结束。
如果可以找到这样的A(i),则将部分转换序列A(1),...,A(i)添加到V中,并且利用在A(i)中指定的改变来更新当前中间网络规划P。然后,使用例如以上参考图4所描述的方法401来计算当前中间网络规划P的带宽利用率结构。
在方框1230中,当前中间网络规划P的带宽利用率结构被检查,以判断该带宽利用率是否可接受。而且,检查在P中路由的需求的延迟,判断该延迟是否可接受。如果当前中间网络规划P可接受,方框1235则推进计数器i。方框1240检查当前中间网络规划P是否与所需网络规划P2相同,在相同的情况下,A(1),...,A(i)就是从P1到P2的完整转换序列1020,并且方法1201在方框1245处终止。如果不相同,方法1201则返回1210,并且找到下一个A(i)。
如果在方框1230处没有发现当前中间网络规划P具有合适的利用率水平和/或路由延迟,方法1201则返回。在方框1250处,i减1。如果在判断框1255处确定i等于0,则无法找到合适的序列,并且方法1201在结束框1220处不成功地结束。如果不是,方法1201则返回方框1210,以尝试找到将会合适的另一A(i)。
图13是根据本发明的示例性实施例描述方法1301的流程图,转换信令模块1025可以利用网络控制器1030而使用方法1301来执行转换序列1020。
在开始框1300处,转换信令模块1025接收到转换序列1020。将该序列中的n个步骤标注为A(1),...,A(n)。
在方框1305中,计数器i被初始化为1。
在方框1310中,转换序列步骤A(i)的与转换序列1020相关联的转换序列数据结构1100被发送到网络控制器1030,以用于在主体网络1035上实现转换。
在方框1315中,方法1301等待接收来自网络控制器1030的确认,该确认表明转换序列步骤已被成功执行,并且网络1035已经对其自身进行了完全的重新配置,以根据新的度量或者由转换序列步骤发送的元件活动来重新路由数据。
在方框1320中,来自转换信令模块1025的确认被检查。如果该动作成功地完成,则在1325中累加计数器i。在方框1330中,如果i大于n,则转换已经成功完成,并且方法1301在1335处结束。如果在1325处i不大于n,则方法1301返回1310,以将下一步骤发送到网络控制器1030。
如果在方框1320处确定动作没有成功完成,则转换未成功,并且方法1301在方框1340处结束。
图14是在转换序列1020的每个步骤下的转换序列结构1405和网络1035中的链路利用率表1400的图形表示。
对于图14所提供的示例,产生转换序列1020的现有网络规划115是图2中的网络规划结构200。所需网络规划130除了以下两点之外,都与现有网络规划115相同1.SRLG“回路2”被禁止,2.两条链路3.1和4.1的度量已经从10改变到5。
在现有网络规划115下,在“无故障”的故障情形下,如带宽水平利用率结构240中,标注为“无故障”的行中以及在转换步骤0下,在图14中标注为1400的利用率表的行中所示,只有两条链路被利用链路1.1和链路2.1,这两条链路的利用率都是75%。这是因为在网络规划中,从节点A到节点B的单个需求以其带宽(750Mb/s)的一半沿着链路1.1被路由,并且以其带宽的另一半沿着链路2.1被路由,其中链路1.1是从A到B的最短路径之一,而链路2.1是从A到B的另一最短路径。
在转换序列结构1405的步骤1下,链路3.1的度量从10改变到5。该改变对于从A到B的最短路由没有影响,并且如表1400的步骤1中所示,利用率保持不变。
在转换序列结构1405的步骤2下,链路4.1的度量从10改变到5。在该改变之后,存在三个从A到B的最短路由两个之前的路由,以及通过链路3.1和4.1的路径,它们也具有总的路由长度10。如表1400的步骤2所示,链路利用率反映出从A到B的需求现在被沿着这三个路由中的每一个所传输的500Mb/s所满足,从而致使链路1.1、2.1、3.1和4.1中的每一条上的利用率都为50%。
最后,在转换序列结构1405的步骤3中,标注为“回路2”的SRLG被禁止。现在只存在两个从A到B的最短路由。一个是通过链路1.1,另一个是通过链路3.1和4.1。由于链路2.1是回路2的一部分,因此不再可以通过被禁止的链路2.1来路由流量。因此链路利用率如表1400的行3所示。
注意,转换序列结构1405的三个转换步骤的执行顺序可能是非常重要的。例如,如果首先执行禁止步骤,则将只存在从A到B的单个最短路径,即通过链路1.1。这样链路利用率将是150%=1500/100,这将导致网络中的严重拥塞。
图15根据本发明的示例性实施例,示出了之前参考图1所描述的需求估计模块110与系统10的其余部分的交互过程的框图。需求估计模块110被描绘为图15中的方框1500。
需求估计模块110构建了表示网络100的当前状态的网络规划结构200,并且将该结构存储为“现有网络规划”115。需求估计模块110从不同的源得到网络规划结构200的各个组件,并且将它们集成在一起。
由于拓扑结构1510中的信息通常可以从网络配置中读取,因此由网络控制器105来提供拓扑结构1510。共享风险链路组结构由扩充网络数据1525提供。扩充网络数据1525通常使用网络100的外部知识来构建,并且无法从网络控制器105本身获得。例如,两条回路是否位于相同的管道中,以及两条链路是否将因此共同构成一个SRLG不是网络控制器105能够通过读取网络配置而检测到的信息。
网络规划结构200中的需求结构220是使用以下三个分离的输入而由需求估计模块110来构建,这三个输入即1.链路利用率测量1515(例如被表示为链路容量的百分比);以及
2.通过网络控制器105获得的需求测量1520(例如以Mb/s表示);以及3.在先需求结构1535,该在先需求结构1535是扩充网络数据1525的一部分。在先需求结构1535是如图2所示的需求结构220形式的数据结构,并且包含了单个带宽水平225。在先需求结构1535列出了网络100中存在的所有需求源和目的地。这些需求中的每种需求的相应带宽水平是需求带宽水平的在先估计。该估计可以通过需求水平的历史测量,或者通过使用基于网络的利用率测量的一些外部估计程序,或者通过一些其他的估计方法来获得。
需求测量1520是在先需求结构1535中的需求的子集,连同直接从网络100中获得的这些需求带宽水平的测量的列表。如果需求测量1520的该列表包括在先需求结构1535中的所有需求,那么所有需求带宽水平都是已知的,并且需求估计模块110变得多余。如果在先需求结构中的需求都没有或者只有一些包含在需求测量1520的列表中,那么需求估计模块110的任务是使用链路利用率测量1515、已知的需求测量和在先需求对那些还没有对其进行测量的链路提供估计。
需求估计模块110利用代表需求带宽的最好估计的单个带宽水平(例如以Mb/s表示),或者利用每个都具有对需求带宽的不同估计的多个带宽水平来产生需求结构220。这些多个带宽水平一起表示需求带宽估计中的变化。每个带宽水平代表不同的带宽水平情形,因此系统10的GUI140和其他组件可以评估不同带宽水平情形下的拓扑和度量改变的影响,或者执行度量流量工程来迎合最坏情况的带宽水平情形。
在示例性实施例中,所示需求估计模块110包括子模块。第一子模块是基本需求估计器1550,该基本需求估计器1550进行操作,从而在假定的在先需求结构、链路利用率测量和需求测量的情况下,产生单个需求带宽水平。图16描绘了可以由基本需求估计器1550实现的算法方法1601的流程图。第二子模块是需求变化估计器1545,该需求变化估计器1545进行操作,从而构建在先需求结构1535中的带宽水平的变化,并且然后利用这些变化来调用基本需求估计器1550,从而基本需求估计器1550将带宽水平估计中的变化返回需求变化估计器1545。从这些变化中,需求变化估计器1545构建一组用于需求结构220的带宽水平225,这组带宽水平将被插入到现有网络规划115中。图17示出了根据本发明的示例性实施例的可以由需求变化估计器1545实现的算法方法1701。
如上所述,图16示出了可以由基本需求估计器1550实现的,用于估计需求结构的带宽水平的算法方法1601。
在方框1600中,示出了输入数据的符号。以p条链路来指定拓扑结构。以n个需求来指定需求结构,并且相应的带宽水平bw_prior(1),...,bw_prior(n)代表n个需求中的每个需求的在先带宽水平。链路利用率测量由链路的子集1(1),...,1(a)(a<=p),连同一组相应的链路利用率测量u_m(1),...,u_m(a)来一起代表。需求测量由需求的子集d(1),...,d(b)(b<=n),连同一组相应的测定带宽水平bw_m(1),...,bw_m(b)来一起代表。
需求带宽和链路利用率的测量可能彼此不完全一致,这是因为错误的测量系统,或者因为在稍有不同的时刻采用了不同的测量。因此,在方框1605中执行的估计的第一步骤是找到一组完全一致的链路和需求测量,这组链路和需求测量尽可能靠近给定的测量。具体而言,方框1605找到被称为u(1),...,u(p)的每条链路的链路利用率,使得1.假设在网络100中没有故障,并且因此网络100在“无故障”SRLG下运行时,存在至少一组通过使用了给定拓扑和度量设置的网络100进行路由的需求带宽水平,该组需求带宽水平将产生利用率u(1),...,u(p)。
2.这些需求的子集d(1),...,d(b)的带宽水平尽可能紧密地匹配测定的需求带宽水平bw_m(1),...,bw_m(b)。
3.这些链路利用率的子集1(1),...1(a)的链路利用率尽可能紧密地匹配测定的链路利用率u_m(1),...,u_m(a)。
一种找到这样一组利用率的方法是解下述线性规划。令A是用于网络的n×p维路由矩阵,即假定利用率u的p维向量和需求带宽水平bw的n维向量,A×bw=u。然后该线性规划以A×bw=u为条件使如下表达式最小化s_1Σi=1a|u(i)-u_m(l(i))|+s_2Σi=1b|bw(i)-bw_m(d(i))|]]>正实数s_1和s_2的相对大小决定了如下第一匹配相对于第二匹配的相对重要性,所述第一匹配是使给定的链路利用率测量匹配所产生的向量u,所述第二匹配是使给定的需求测量匹配产生u的潜在需求bw。这些例如将依赖于某人对这两组测量中的每组测量所具有的相对置信度而变化。
一旦已经计算出向量u,方框1610就执行实际的需求估计。具体而言,基本需求估计器1450试图找到一组紧密地匹配所述数据(例如测定的链路利用率和需求带宽水平)的需求带宽水平,并且这组需求带宽水平接近指定的在先带宽水平bw_prior。这样,基本需求估计器1550寻找满足如下条件的估计带宽水平bw_base(1),...,bw_base(n)的集合1.这些需求的子集d(1),...,d(b)等于bw(1),...,bw(b),2.这些需求产生的链路利用率(即向量A×bw_base)等于u(1),...,u(n),3.带宽水平bw_base(1),...,bw_base(n)尽可能接近bw_prior(1),...,bw_prior(n)。
注意,因为u满足方框1605中的需求,因此将至少存在一个满足1.和2.的向量bw_base。一种找到这样一个向量的方法是在形式上重写以上三个需求如下1.bw_base(d(i))=bw(i),其中i=1,...,n,2.A×bw_base=u,3.使Σi=1n(bw_base(i)-bw_prior(i))2]]>最小化并且使用二次规划来解bw_base。方框1615结束了方法1601。所需带宽估计是bw_base(1),...,bw_base(n)。
图17根据本发明的示例性实施例示出了可以由图15所示的需求变化估计器1545实现的算法方法1701,该算法方法1701用于估计网络规划结构200的需求结构220的带宽水平范围,即在假定可获得的利用率测量以及可以通过网络控制器105从网络中获得的需求带宽的情况下的所有可行的需求带宽水平估计。
方框1700示出了方法1701的输入。这些输入除了两个附加输入之外都与图16中方法1601的输入相同。一个附加输入是B,即将估计的多组带宽水平的数目。另一个附加输入是正数V,该正数V是对已指定的在先置信度bw_rior的量度。V=0的值表明完全相信在先带宽,并且在这种情况下,所有带宽水平集合1,...,B都将等于在先带宽本身。V越大,对在先带宽的置信度越小,并且将由方法1701产生的多组带宽水平的范围越大(但是,受限于利用率和带宽需求估计)。
在方框1705中,从1到B的计数器被设置为1。
在方框1710中,构建新的在先带宽向量bw_prior_var。该向量的每个值bw_prior_var(i)(i=1,...,n)被设置为bw_prior(i)+N(i)。这里,每个N(i)是从具有均值0和方差V的正态分布中产生的随机变量。这里可以使用除这些正态分布之外的其他分布来产生在先带宽中的可变性。
在方框1715中,利用在方框1700中指定的所有输入1-4来调用图16所示的的方法1601,但是用在先带宽向量bw_prior_var来代替bw_prior。该程序产生带宽水平的估计,即向量bw_var_b。
在方框1720和1725中,检查叠代是否已经完成,并且如果叠代没有完成,则累加计数器b。一旦叠代完成,流程就前进至方框1730,并且方法1701结束。向量bw_var_1,...,bw_var_B是由该程序估计出的B个带宽水平。
如上所述,GUI140为用户提供现有网络规划115的直观表示,以便帮助用户了解网络的当前状态。以下描述的图18到图22示出了在本发明的一个示例性实施例中可以由GUI140产生和提供的示例性界面。
首先转到图18,界面1800在主要窗口1804中提供主体网络的站点外视图1802,并在次要窗口1808中提供主体网络的一部分的站点内视图1806。站点外视图1802描绘了网络站点的位置,每个站点可能包括位于公共物理位置的节点的集合。在站点外视图1802中,连接两个不同站点1810中的两个节点的回路(例如两条或多条链路)被示为连接相应的两个站点1810。站点外视图1802还允许用户选择将特定站点1810显示在次要窗口1808中,以作为站点内视图1806。具体而言,对于被选站点,站点内视图1806示出了该站点内包括的节点以及在该站点处的节点之间的回路连接。站点内视图1806还示出了被连接到被选站点内的节点的回路,该回路如同在朝着相应节点所连接的另一站点的节点的方向上离开次要窗口1808一样。通过提供视图的两级层次结构,界面1800提供了对复杂的网络拓扑、高利用率区域或者站点外路由的容易理解的概观。
从图18中还要注意,主体网络内的示例性回路是双向的,并且包含两条链路,每条链路在特定方向上运载网络流量。在一个实施例中,回路容量是这些链路的组合容量。站点外视图1802和站点内视图1806两者将回路描绘为连接节点或站点的长方形。这些长方形中的每一个都利用与相应回路的容量成比例的宽度,或者利用与相应回路的容量相关的物理尺寸来描绘。例如,回路的容量越高,相应长方形的宽度就越宽。此外,所示代表回路的长方形中的每一个都在中间被划分为两个更细的长方形,更细的长方形中的每一个代表回路内的各个链路。箭头与这些更细长方形中的每一个相关联,从而示出网络流量沿着由各个更细长方形表示的链路行进的方向。
在一个示例性实施例中,代表链路的更细长方形中的每一个,或者代表回路的复合长方形中的每一个都可以被着色(或者直观地进行区分),从而提供对相应链路或回路的百分比利用率的直观表示。例如,与长方形相关联的颜色可以依赖于利用率水平而变化,从而对不可接受的高利用率提供清晰的直观信号。例如,可以依赖于利用率是低(例如小于50%)、中或者高(例如大于100%)而以绿色、橙色或红色来描绘利用率。长方形也可以通过对与带宽利用率成比例的图形链路的一部分着色,来直观地指示带宽利用率(例如在对长方形的50%着色的地方,就指示出50%的带宽利用率)。
此外,可以对代表这些站点1810中的每个站点的方框着色,或者直观地进行区分,以识别相应站点1810内的任意站点内链路的最大利用率。例如,如果特定站点1810内的链路之一具有大于100%的利用率,则可以至少将描绘站点1810的方框部分地涂成红色。这样一来,在用户查看站点外试图1802时,就为用户提供了方便的直观提示,以识别问题站点。
由GUI140提供的界面还可以用于直观地描绘在一种或多种故障情形下通过主体网络的需求的路由。因此,图19示出了示例性界面1900,在该界面1900中,示出了在被选故障情形下通过网络的需求的路由。例如,在主要窗口1804中示出的站点外视图1802内,用户可以选择发生故障的特定回路。在图19所示的示例性界面1900中,回路1904被选为故障回路。
所示界面1900还包括表窗口1902,该表窗口1902提供了用户可选择的通过网络的各种带宽需求(例如在SIC和WDC之间的带宽需求)的列表。在表窗口1902中示出的任意需求的用户选择致使通过主体网络的被选需求所采用的实际路由被示出在站点外视图1802内。
在用户选择了特定故障情形(例如将一条或多条回路选为故障回路)之后,界面1900描绘出被选需求(例如从表窗口1902内示出的各种需求中选出的)的重路由,以及利用颜色(或者其他可视区别)指示出的在故障情形下的带宽利用率。此外,重路由还可以被直观地描绘在站点外视图1802和站点内视图1806两者内。例如,在图19中,以虚线示出了被选需求的重路由。此外,可以用红色示出超过相应回路性链路的最大容量的任意链路或回路的利用率。
在示例性实施例中,界面1900还提供了在不同带宽水平下被路由的需求的视图。因此,提供了不同带宽水平的下拉菜单1908,并且用户可以从这些不同的带宽水平中进行选择。然后,被选带宽水平被应用于界面1900内的站点外视图1802和站点内视图1806中所描绘的路由。
可以利用不同的服务等级来标注网络(例如IP网络)内的分组,所述服务等级确定了分组的相关优先级。网络可以赋予一个等级的分组比另一等级的分组更高的优先级,从而较低优先级的分组只能利用链路带宽中不需要服务于较高优先级分组的那部分。例如考虑1000Mb/s的链路,其50%装满来自较低优先级服务等级的分组,并且另50%装满来自较高优先级服务等级的分组。从较低优先级数据流的角度来看,链路的带宽容量被完全利用。但是,从较高优先级数据流的角度来看,还可获得链路带宽容量的50%,这是因为较高优先级数据流可以按需要取代较低优先级数据流。
在本发明的一个示例性实施例中,在网络对来自多于一个服务等级的分组进行路由的情况下,GUI140提供从特定服务等级的视点(或角度)查看网络的便利性。在一个实施例中,由GUI140提供的用户界面可以允许用户从下拉菜单中选择服务等级视图。因此,图19所示的示例性界面1900包括服务等级菜单下拉菜单1910,该下拉菜单1910提供了用户可将其选为服务等级视图的多个服务等级。在图19所示的状态中,已经选择了“所有”服务等级。一旦从下拉菜单1910中选出一个服务等级,就可以改变界面1900中提供的视图内的链路尺寸(例如由更细长方形来表示),从而表示从被选服务等级的角度来看的相应链路的容量(例如扣除所有更高优先级服务等级的利用率之后的链路的全部容量)。因此,所显示出的利用率是来自被选服务等级的分组对链路的利用率,该利用率是作为“所看见的”利用率的一部分。如以上示例所述,例如考虑网络支持两种服务等级的情况,每种服务等级使用链路容量的50%。从以下三种角度来看,特定链路的表现有所不同1.从“所有”服务等级的角度这时,链路宽度代表1000Mb/s,并且链路被示为完全利用(例如被涂成红色)。
2.从“较低优先级”服务等级的角度相应链路的宽度较小,代表500Mb/s,并且链路被示为完全利用(例如被涂成红色)。
3.从“较高优先级”服务等级的角度相应链路的宽度示出其具有1000Mb/s的容量,并且链路容量的50%被示为可用(例如链路被涂成橙色)。
以上论述了“故障情形”的概念。将会了解,故障情形可以包括一组链路同时发生故障的情形(例如,由于如果回路发生故障,则相应回路内的链路也都将发生故障,因此回路中的两条链路可以形成故障情形)。如上所述,由GUI140提供的用于仿真和最优化的界面考虑了在一列指定的故障情形上的主体网络的行为。
对于主体网络中的任意特定链路,感兴趣的是在多种不同的故障情形上的特定链路的最大利用率。如果特定链路的最大利用率超过预定容量(例如利用率超过链路容量的100%),则意味着存在一种或多种故障情形,一旦出现这些故障情形,就将导致网络的重路由,这将导致相应链路中的拥塞。因此,GUI140可以提供一种“最坏情况”显示模式,该“最坏情况”显示模式同时示出在导致特定链路达到其最大利用率的特定故障情形下的不同链路的利用率。图20示出了示例性界面2000,该界面2000直观地标识在一种或多种故障情形下发生拥塞的链路2002。界面2000还允许用户回顾导致例链路拥塞的情形。例如,通过用户选择拥塞链路之一,可以由界面2000(例如以与图19所示的界面1900中描绘故障情形相似的方式)显示导致被选链路拥塞的一种或多种故障情形。
最后,GUI140还可以以表格形式提供以上参考图18到图20所描述的,以图形形式示出的信息。图21示出了显示逐条链路细节的表格报告2100。具体而言,可以对于上述界面1800、1900和2000中的每一个,产生示例性表格报告2100的列表,该报告的一行用于提供关于特定链路的信息。此外,报告2100内的行可以按照“最坏情况”利用率进行排序。例如,参考界面2000提供的“最坏情况”信息,在表格报告2100内,直观地区分出在示例性界面2000中识别为导致拥塞的三条链路2002(例如利用红色的“WC Util(%)”值)。表格报告2100显示关于链路的信息,并且显示哪种SRLG故障致使相应链路构成“最坏情况”故障,以及哪种“最坏情况”带宽水平造成这种状态。该显示允许用户方便地识别问题链路,以及识别导致该问题的情况(例如SRLG故障和带宽水平),以便可以采取适当的动作(例如通过利用度量流量工程模块125来执行度量最优化,或者通过加大识别出的问题链路的容量)。
图22以计算机系统2200的示例性形式示出了机器的图形表示,在所述计算机系统2200内,可以执行一组指令,这组指令用于致使机器执行这里所描述的方法和算法中的任意一种或多种。在其他实施例中,机器作为独立设备进行操作,或者可以连接(例如通过网络连接)到其他机器。在通过网络连接的部署中,机器可以作为服务器-客户机网络环境中的服务器或客户机进行操作,或者作为对等(分布式)网络环境中对等机器进行操作。所述机器可以是服务器计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或桥,或者能够执行指定该机器所采取的动作的一组指令(顺序的或其他的)的任意机器。此外,虽然只示出单个机器,但是术语“机器”也将用来包括多个机器的任意集合,这些机器独立或共同执行一组(或多组)指令,从而执行这里所描述的方法中的任意一种或多种。
示例性计算机系统2200包括处理器2202(例如中央处理单元(CPU)、图形处理单元(GPU)或其两者)、主存储器2204和静态存储器2206,它们彼此之间经由总线2208进行通信。计算机系统2200还可以包括视频显示单元2210(例如液晶显示(LCD)或者阴极射线管(CRT))。计算机系统2200还包括混合输入设备2212(例如键盘)、用户界面(UI)导航设备2214(例如鼠标)、盘驱动单元2216、信号产生设备2218(例如扬声器)和网络接口设备2220。
盘驱动单元2216包括机器可读介质2222,在该机器可读介质2222上存储了一组或多组指令(例如软件2224),这些指令包含了这里所描述的方法、功能或算法中的一种或多种。在计算机系统2200执行软件2224期间,软件2224还可以全部或至少部分位于主存储器2204和/或处理器2202内,这时主存储器2204和处理器2202也构成机器可读介质。
软件2224还可以经由网络接口设备2220发送到网络2226上,或者从网络2226上被接收。
虽然在示例性实施例中,机器可读介质2222被示为单个介质,但是术语“机器可读介质”可以用于包括存储了一组或多组指令的单个介质或多个介质(例如集中式或分布式数据库和/或相关联的缓存和服务器)。术语“机器可读介质”还将被用于包括能够存储、编码或运载用于由机器执行的一组指令,并且致使机器执行本发明的方法中的一种或多种的任意介质。因此,术语“机器可读介质”将被用于包括,但不局限于,固态存储器、光和磁介质以及载波信号。
总之,本发明的上述示例性实施例提供了有益于实现基于度量的流量工程的增强和附加功能。例如,各个示例性实施例试图解决下列实际任务1.点到点的需求信息通常只能从网络利用率的测量中部分推断出来。流量工程系统10应该能够对这些需求的不确定知识起作用。流量的智能路由通常在网络发生故障的情况下,例如当网络中的一个或多个元件(链路或节点)发生故障时最有用。于是,通常通过这些元件路由的流量将通过不包含这些元件的最短路径而被路由,从而致使没有发生故障的元件具有更高的利用率。网络度量选择不仅适用于正常操作下的网络,还适用于大量故障情形中的任意一种故障情形下的网络。
2.大网络将附接很多边缘设备和对等设备,所有这些设备都充当单独的流量源和目的地。这会导致路由表的大小和复杂性呈指数增长。流量工程算法的增强有益于使这些算法在这种复杂性有巨大增长的情况下,也能保持其有效性。
3.虽然诸如利用率水平之类的客观标准可以用于引导流量工程程序,但是可能也需要考虑更多主观标准,并且出于这个原因,网络可视化系统是非常有用的,这种网络可视化系统即使对于大的复杂网络,也能够以人类可懂的方式提供重要判断标准的视图。
4.即使在找到满足流量工程需求的一组新的度量后,用于将当前网络配置逐步转换到所需配置的方法也会提供某种益处,所述将当前网络配置逐步转换到所需配置的过程无需中断网络活动,并且在该过程的中间步骤期间,网络具有可预测并且可接受的性能。上述示例性转换系统试图解决这个问题。
权利要求
1.一种用于估计网络内的点到点带宽需求的系统,所述网络包括多个节点以及在所述多个节点之间的多条链路,所述系统包括网络控制器,用于确定所述网络中一组链路的链路流量量度,以及确定所述网络中一组节点之间的点到点带宽需求量度,所述链路流量量度每个都指示出各条链路的测定利用率,所述点到点带宽需求量度每个都指示出所述这组节点中包括的源节点和目的节点之间的测定需求;以及耦合到所述网络控制器的需求估计模块,用于接收来自所述网络控制器的所述链路流量量度和所述点到点带宽需求量度,并且用于利用所述链路流量量度和所述点到点带宽需求量度来计算用于所述多个节点的多个点到点带宽需求估计。
2.一种用于估计网络内的点到点带宽需求的方法,所述网络包括多个节点以及在所述多个节点之间的多条链路,所述方法包括确定所述网络中一组链路的链路流量量度,所述链路流量量度每个都指示出各条链路的测定利用率;确定所述网络中一组节点之间的点到点带宽需求量度,所述点到点带宽需求量度每个都指示出所述这组节点中包括的源节点和目的节点之间的测定需求;并且利用所述链路流量量度和所述点到点带宽需求量度来计算用于所述多个节点的多个点到点带宽需求估计。
3.如权利要求2所述的方法,包括利用所述多个点到点需求估计来仿真在网络路由状态改变情况下的网络路由。
4.如权利要求2所述的方法,其中所述改变包括网络拓扑改变。
5.如权利要求2所述的方法,其中所述改变由网络组件的故障产生。
6.如权利要求2所述的方法,其中所述网络是基于最短路径优先来路由的网络,并且所述改变由与所述网络中的多条链路相关联的度量改变产生。
7.如权利要求2所述的方法,包括利用所述多个点到点需求估计来执行所述网络的路由仿真,以便在所述多个点到点需求估计中的每一个点到点需求估计下识别出所述网络内的每条链路的链路利用率。
8.如权利要求2所述的方法,包括利用所述多个点到点需求估计使所述多个点到点需求估计上,以及多个网络故障情形上的链路利用率最优化。
9.如权利要求2所述的方法,其中所述链路流量量度的确定包括利用网络控制器来执行对所述这组链路的流量的测量。
10.如权利要求2所述的方法,其中所述点到点带宽需求量度的确定包括利用网络控制器来执行对所述这组节点中的节点之间的带宽需求的测量。
11.如权利要求2所述的方法,其中如果所述链路流量量度和所述点到点带宽需求量度不一致,则计算所述点到点带宽需求估计来调和所述不一致性。
12.如权利要求11所述的方法,包括获取所述多个节点的在先点到点带宽需求估计,并且在所述点到点带宽需求估计的计算中使用所述在先点到点带宽需求估计。
13.如权利要求2所述的方法,其中所述计算包括识别出一组链路流量值,使得存在一组有效的点到点带宽需求水平,当通过所述网络路由时,所述这组有效的点到点带宽需求水平产生所述这组链路流量值。
14.如权利要求13所述的方法,其中所述识别出一组链路流量值使得所述这组有效的点到点带宽需求水平紧密匹配所述点到点带宽需求量度。
15.如权利要求14所述的方法,其中使所述这组有效的点到点带宽需求水平与所述点到点带宽需求量度之间的差别最小化。
16.如权利要求15所述的方法,其中所述识别出一组链路流量值使得所述这组链路流量值紧密匹配所述链路流量量度。
17.如权利要求2所述的方法,其中所述计算包括识别出一组靠近所述点到点带宽需求量度的点到点带宽需求水平。
18.如权利要求17所述的方法,其中所述计算包括识别出一组点到点需求带宽水平,使得计算出的这组链路流量值与所述识别出的这组点到点带宽需求水平相对应,所述计算出的这组链路流量值是基于所述识别出的这组点到点带宽需求水平而计算出的。
19.如权利要求18所述的方法,其中所述计算包括识别出一组点到点需求带宽水平,使得所述识别出的这组点到点需求水平紧密匹配所述在先点到点需求带宽水平。
20.一种用于使与网络的链路相关联的度量最优化的系统,所述网络利用最短路径优先的路由方法来路由,所述系统包括度量流量工程模块,用于识别出至少一种可应用于所述网络的故障情形,识别出至少一种可应用于通过所述网络路由的点到点需求的带宽水平情形,并且自动计算网络的多条链路中的每条链路的度量,从而使通过所述网络的需求路由在所述至少一种故障情形中以及在所述至少一种带宽水平情形中最优化;以及耦合到所述度量流量工程模块的转换模块,用于根据所述计算出的所述网络的多条链路中的每条链路的度量,将网络配置改变发送到网络控制器。
21.一种用于使与网络的链路相关联的度量最优化的方法,所述网络利用最短路径优先的路由方法来路由,所述方法包括识别出至少一种可应用于所述网络的故障情形;识别出至少一种可应用于通过所述网络路由的点到点需求的带宽水平情形;并且自动计算网络的多条链路中的每条链路的度量,从而使通过所述网络的需求路由对于所述至少一种故障情形以及所述至少一种带宽水平情形最优化。
22.如权利要求21所述的方法,包括识别出可应用于所述网络的多种故障情形和多种带宽水平情形,并且自动计算所述网络的多条链路中的每条链路的度量,从而使由所述度量确定的需求路由所产生的链路利用率对于所述网络的多条链路中的每条链路,对于所述多种故障情形中的每种故障情形,以及对于所述多种带宽水平情形中的每种带宽水平情形,都在预定阈值以下。
23.如权利要求22所述的方法,其中所述自动计算用于计算所述网络的多条链路中的每条链路的度量,从而使所述多条链路中的每条链路的最大链路利用率最小化,所述最大链路利用率是在所述多条链路上、所述多种故障情形上以及所述多种带宽水平情形上的最大链路利用率,并且所述最小化在链路度量的所有可能选择上被执行。
24.如权利要求21所述的方法,其中所述至少一种故障情形是由于网络操作者为了禁止所述网络中的至少一部分而采取的自发动作而产生的。
25.如权利要求21所述的方法,包括应用在所述最短路径优先的路由方法中计算出的用于所述多条链路中的每条链路的度量,以便根据所述计算出的度量来路由所述网络内的流量。
26.如权利要求21所述的方法,包括将由于自动计算出的用于至少一条链路的度量的应用而产生的,在所述至少一种故障情形以及所述至少一种带宽水平情形上的所述最大链路利用率传送到用户。
27.如权利要求26所述的方法,其中所述最大链路利用率的传送包括指出是否有至少一个最大链路利用率超过预定的阈值链路利用率。
28.如权利要求26所述的方法,其中所述最大链路利用率的传送包括产生用户界面,在该用户界面中,直观地指出至少一个最大链路利用率。
29.如权利要求21所述的方法,包括将所述计算出的度量存储在所述网络内,以便根据所存储的度量,利用所述最短路径优先的路由方法来路由所述网络。
30.如权利要求21所述的方法,包括识别出为其分别计算度量的所述网络中的多条链路,以作为所述网络的核心链路。
31.如权利要求30所述的方法,其中对于所述核心链路的任意度量选择,识别出沿着通过所述网络核心的公共路由的多组点到点需求,并且将这些需求聚集起来,并且在所述自动计算中看作单个需求。
32.一种用于将基于最短路径优先来路由的网络从第一路由状态迁移到第二路由状态的系统,所述系统包括转换模块,用于产生中间网络规划的序列,所述中间网络规划中的每一个都修改根据在前的网络规划的在前网络状态,从而改变至少一种需求在所述网络的路由,所述中间网络规划的序列用于将所述网络从所述第一路由状态迁移到所述第二路由状态;以及网络控制器,该网络控制器根据所述中间网络规划的序列来顺序配置所述网络,从而将所述网络从所述第一路由状态迁移到所述第二路由状态,其中所述序列中的每个中间网络规划都将所述网络配置为在至少一种预定限制内进行操作。
33.一种用于将基于最短路径优先来路由的网络从第一路由规划转换到第二路由规划的方法,所述第一路由规划使第一组度量与所述网络的链路相关联,所述第二路由规划使第二组度量与所述网络的链路相关联,所述方法包括产生中间网络规划的序列,所述中间网络规划中的每一个都修改根据在前的网络规划的在前网络状态,从而改变至少一种需求在所述网络的路由,所述中间网络规划的序列用于将所述网络从依照所述第一网络规划的第一路由状态转换到依照所述第二网络规划的第二路由状态;并且根据所述中间网络规划的序列来顺序配置所述网络,从而将所述网络从所述第一路由状态转换到所述第二路由状态,其中所述序列中的每个中间网络规划都将所述网络配置为在至少一种预定限制内进行操作。
34.如权利要求33所述的方法,其中所述预定限制是所述在前的网络状态和所产生的网络状态之间的收敛时间小于预定的最大时间。
35.如权利要求33所述的方法,其中所述至少一种预定限制是带宽需求的最大百分比增长不超过所述网络的至少一条链路的预定容量。
36.如权利要求33所述的方法,其中所述至少一种预定限制是与所述网络内的点到点需求相关联的最大需求延迟。
37.如权利要求36所述的方法,其中所述最大需求延迟被指定为与所述点到点需求相关联的现有需求延迟上的百分比增长。
38.如权利要求33所述的方法,其中所述至少一种预定限制是所述网络的至少一条链路的最大链路带宽利用率,其中所述最大链路带宽利用率是在所述网络的至少一种故障情形上。
39.如权利要求33所述的方法,其中所述至少一种预定限制是将在所述网络上提供的最小服务质量。
40.如权利要求33所述的方法,其中所述至少一种预定限制是在多种故障情形上的最大链路带宽利用率。
41.如权利要求33所述的方法,其中所述中间网络规划序列的产生包括定义网络路由状态树,该树以所述第一路由状态作为根,以及在该树中识别出从所述根到所述第二网络路由状态的路径,从而作为所述路径中的每个节点的各个网络状态将所述网络配置为在所述至少一种预定限制内进行操作。
42.如权利要求33所述的方法,其中所述中间网络规划序列的产生包括确定中间网络规划的第一序列超过第一限制,并且然后修改所述第一限制,以产生所述至少一种预定限制,其中根据所述至少一种预定限制来产生所述中间网络规划的序列。
43.如权利要求33所述的方法,其中所述中间网络规划序列中的特定中间网络规划只有单个度量与在前中间网络规划不同。
44.如权利要求33所述的方法,其中所述中间网络规划序列中的特定中间网络规划有至少一个度量与在前中间网络规划不同。
45.如权利要求33所述的方法,其中所述中间网络规划序列中的特定中间网络规划与在前中间网络规划的不同之处在于所述网络的至少一条链路的状态与由所述在前中间网络规划指定的在前状态不同。
46.如权利要求45所述的方法,其中所述状态是活动状态,并且所述在前状态是非活动状态,或者所述状态是非活动状态,并且所述在前状态是活动状态。
47.如权利要求33所述的方法,包括识别出第一组链路,并且其中所述序列中的第一中间网络规划与在前中间网络规划的不同之处在于所述第一组链路内的每条链路的状态与由所述在前中间网络规划指定的在前状态不同。
48.如权利要求33所述的方法,其中所述网络的顺序配置包括顺序将所述中间网络规划序列中的每个中间网络规划从转换序列模块传送到网络控制器,其中所述转换序列模块接收来自所述网络控制器的确认,该确认表明特定的中间网络规划在传送后续中间网络规划之前已经被配置。
49.一种用于产生界面来显示关于网络的信息的自动化方法,该方法包括识别出网络节点的至少一个集合,以构成网络站点;产生所述界面将包括的第一显示,所述第一显示描绘了代表所述网络内的各个网络节点和网络链路的图形节点和图形链路,其中所述网络节点的至少一个集合由所述显示内的单个图形节点来代表;产生所述界面将包括的第二显示,所述第二显示描绘了所述网络节点的至少一个集合,以及所述至少一个集合中的节点之间的网络链路;以及与将所述第一和第二显示提供到用户同步地产生所述界面。
50.如权利要求49所述的方法,其中所述网络节点的集合的识别包括将所述网络节点的至少一个集合识别为位于公共的物理位置。
51.如权利要求49所述的方法,其中所述第二显示的产生包括还在所述第二显示内描绘出所述至少一个集合中的节点与所述至少一个集合外的节点之间的网络链路。
52.如权利要求49所述的方法,其中在所述网络中的一对节点之间的至少两条链路构成回路,以便于所述对的节点之间的双向通信,所述第一显示的产生包括代表了所述节点对之间的回路的图形回路。
53.如权利要求52所述的方法,包括产生所述图形回路,以直观地指出所述节点对之间的带宽容量。
54.如权利要求53所述的方法,其中所述产生图形回路,以直观地指出带宽容量的步骤包括标出所述图形回路的尺寸,以指示出所述带宽容量。
55.如权利要求52所述的方法,包括产生所述图形回路,以描绘构成所代表的网络回路的网络链路。
56.如权利要求52所述的方法,包括产生所述图形回路,以直观地指出所代表的网络回路的带宽利用率。
57.如权利要求56所述的方法,其中所述产生图形链路,以直观地指出带宽利用率的步骤包括根据颜色/利用率索引对所述图形链路着色。
58.如权利要求56所述的方法,其中所述产生图形链路,以直观地指出带宽利用率的步骤包括与所述带宽利用率成比例地对所述图形链路的一部分着色。
59.如权利要求49所述的方法,包括产生所述界面,以给出对关于所述网络的故障情形的用户说明,并且提供对响应于所述故障情形的通过所述网络的重路由需求的显示。
60.如权利要求49所述的方法,包括产生所述界面,以给出对关于所述网络的带宽需求水平的用户说明,并且提供对响应于所述指定的带宽需求水平的所述网络内带宽利用率的显示。
61.如权利要求49所述的方法,包括产生所述界面,以给出对网络流量服务等级的用户说明,并且提供一种或多种所述指定的网络流量服务等级特有的带宽需求和带宽利用率信息。
62.如权利要求49所述的方法,包括产生所述界面,以提供对与所述网络中属于所述指定的网络流量服务等级的网络流量可获得的容量总量相等的容量的指示,并且以容量的比例示出所述带宽利用率信息。
63.如权利要求49所述的方法,包括产生所述界面,以显示在所定义的最坏情况的故障情形中,对于所述网络中至少一条链路的带宽需求和带宽利用率信息中的至少一种。
64.如权利要求63所述的方法,其中基于多种故障情形和多种需求带宽水平中的最高利用率对将显示在所述界面内每条链路着色,从而将所述多条链路描绘为具有对所述多种故障情形和多种需求带宽水平中的至少一种所表现出的利用率。
65.一种用于使基于最短路径优先来路由的网络内的路由最优化的方法,该方法包括估计所述网络内的带宽需求;利用估计出的带宽需求来确定当前状态中所述网络内的带宽利用率;执行与所述网络的链路相关联的度量的最优化,从而识别出所述网络的所需状态,在所述所需状态内,相对于所述当前状态降低了所述网络内的带宽利用率;并且产生转换序列,从而将所述网络从所述当前状态迁移到所述所需状态。
全文摘要
一种系统,用于将基于最短路径优先来路由的网络从第一路由状态迁移到第二路由状态,该系统包括用于产生中间网络规划的转换模块,所述中间网络规划中的每一个修改根据在先网络规划的在先网络状态,从而使网络中至少一种需求的路由改变。中间网络规划的序列将网络从第一路由状态迁移到第二路由状态。网络控制器根据中间网络规划的序列来顺序配置网络,从而将网络从第一路由状态迁移到第二路由状态。该序列中的每个中间网络规划都将网络配置为在至少一种预定限制内进行操作。
文档编号H04L12/24GK1705887SQ200380101602
公开日2005年12月7日 申请日期2003年10月17日 优先权日2002年10月18日
发明者艾伦·古斯 申请人:卡里德恩科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1