用于确定与分级转发信息库的路由相关的业务负载分布的装置、系统和方法与流程

文档序号:24398677发布日期:2021-03-27 00:18阅读:99来源:国知局
用于确定与分级转发信息库的路由相关的业务负载分布的装置、系统和方法与流程

1.本申请的各实施例涉及用于确定与分级转发信息库的路由相关的业务负载分布的装置、系统和方法。


背景技术:

2.网络设备(诸如路由器和交换机)通常用于在网络内和/或在网络之间转发业务。这些网络设备可以表示和/或形成这种网络的基础设施。在一些示例中,这些网络设备可以包括和/或维护分级转发信息库(fib),该fib加载有标识和/或定义能够将业务传输到网络内和/或网络之间的不同目的地的各种路径的路由。这些路径中的某些路径在给定时间可能处于活动状态并且传输业务。其他(例如,备用路径)在给定时间可能处于非活动状态并且当前不传输业务。
3.不幸的是,传统的联网技术可能无法轻松地区分网络中的活动路径和非活动路径。此外,传统的联网技术可能无法轻松地确定网络中的活动路径之间的业务负载分布。因此,本公开标识并且解决了对用于确定与分级fib的路由相关的业务负载分布的附加和改进的装置、系统和方法的需求。


技术实现要素:

4.如下面将更详细描述的,本公开总体上涉及用于确定与分级fib的路由相关的业务负载分布的装置、系统和方法。在一个示例中,一种用于完成这种任务的方法可以包括(1)标识网络中包括的网络设备的fib中安装的路由,(2)标识从网络设备通向fib中安装的路由的目的地设备的多个活动路径,(3)通过计算表示经由多个活动路径从网络设备流向目的地设备的业务量的多个业务负载来确定多个活动路径的负载分布,以及(4)至少部分基于多个活动路径的负载分布来做出与多个活动路径相关的运输决策(trafficking decision)。
5.类似地,一种实现上述方法的系统可以包括被配置为执行存储在存储器中的各种模块的物理处理器。在一个示例中,该系统可以包括和/或执行(1)标识模块,其(a)标识网络中包括的网络设备的fib中安装的路由,并且(b)标识从网络设备通向fib中安装的路由的目的地设备的多个活动路径,(2)计算模块,其计算表示经由多个活动路径从网络设备流向目的地设备的业务量的多个业务负载,(3)确定模块,其(a)通过计算表示经由多个活动路径从网络设备流向目的地设备的业务量的多个业务负载来确定多个活动路径的负载分布,以及(b)至少部分基于多个活动路径的负载分布来做出与多个活动路径相关的运输决策。
6.附加地或备选地,一种实现上述方法的装置可以包括存储fib的至少一个存储设备。该装置还可以包括通信地耦合到存储设备的至少一个物理处理器。在一个示例中,物理处理器(1)标识网络中包括的网络设备的转发信息库中安装的路由,(2)标识从网络设备通
向转发信息库中安装的路由的目的地设备的多个活动路径,(3)通过计算表示经由多个活动路径从网络设备流向目的地设备的业务量的多个业务负载来确定多个活动路径的负载分布,以及(4)至少部分基于多个活动路径的负载分布来做出与多个活动路径相关的运输决策。
7.根据本文中描述的一般原理,来自任何上述实施例的特征可以彼此组合使用。通过结合附图和权利要求阅读以下详细描述,将能够更全面地理解这些和其他实施例、特征和优点。
附图说明
8.附图示出了多个示例性实施例,并且是说明书的一部分。与以下描述一起,这些附图示出并且解释了本公开的各种原理。
9.图1是用于确定与分级fib的路由相关的业务负载分布的示例性系统的框图;
10.图2是用于确定与分级fib的路由相关的业务负载分布的另一示例性系统的框图;
11.图3是用于确定与分级fib的路由相关的业务负载分布的示例性方法的流程图;
12.图4是用于确定与分级fib的路由相关的业务负载分布的另一示例性系统的框图;
13.图5是标识在网络的多个活动路径之间的业务负载分布的示例性fib记录的图示;
14.图6是标识在网络的多个活动路径之间的业务负载分布的示例性删节(abridged)fib记录的图示;
15.图7是标识在网络的多个活动路径之间的业务负载分布的示例性fib输出的图示;以及
16.图8是能够结合本文中描述和/或示出的一个或多个实施例来实现和/或使用的示例性计算系统的框图。
17.在整个附图中,相同的附图标记和描述表示相似但不一定相同的元素。虽然本文中描述的示例性实施例易于进行各种修改和替换形式,但是特定实施例在附图中通过示例的方式示出并且将在本文中详细描述。然而,本文中描述的示例性实施例不旨在限于所公开的特定形式。而是,本公开涵盖落入所附权利要求范围内的所有修改、等同物和替代物。
具体实施方式
18.本公开描述了用于确定与分级fib的路由相关的业务负载分布的各种装置、系统和方法。如将在下面更详细地解释的,本公开的实施例可以能够至少部分基于在fib中维护和/或存储的信息来标识和/或映射网络内的活动路径。附加地或备选地,本公开的实施例可以能够确定和/或计算在网络内的活动路径之间的业务负载分布。通过这样做,这些实施例可以使得网络设备能够做出与网络内的活动路径相关的运输决策(例如,业务工程和/或负载均衡决策)。
19.以下将参考图1、2和4提供用于确定与分级fib的路由相关的业务负载分布的示例性装置、系统和相应实现的详细描述。将结合图5和6提供示例性fib记录和/或表示的详细描述。将结合图7提供示例性fib输出的详细描述。将结合图3提供用于确定与分级fib的路由相关的业务负载分布的计算机实现的方法的详细描述。另外,将结合图8提供用于执行这些方法的示例性计算系统的详细描述。
20.图1示出了促进确定与分级fib的路由相关的业务负载分布的示例性系统100。如图1所示,系统100可以包括用于执行一个或多个任务的一个或多个模块102。如下面将更详细解释的,模块102可以包括标识模块104、计算模块106、确定模块108、记录模块110和运输模块112。尽管被示出为单独的元件,但是图1中的模块102中的一个或多个可以表示单个模块、应用和/或操作系统的部分。
21.在某些实施例中,图1中的模块102中的一个或多个可以表示在由计算设备执行时引起计算设备执行一个或多个任务的一个或多个软件应用或程序。例如,并且如下面将更详细描述的,模块102中的一个或多个可以表示存储在一个或多个计算设备(诸如图2所示的设备(例如,计算设备202、计算设备208、网络设备206、节点210(1)-(n)和/或节点212(1)-(n)))上和被配置为在这样的一个或多个计算设备上运行的模块。图1中的模块102中的一个或多个还可以表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
22.如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维持模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、上述各项中的一个或多个的变体或组合、和/或任何其他合适的存储器。
23.如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理设备。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。附加地或备选地,物理处理器130可以执行模块102中的一个或多个以促进确定与分级fib的路由相关的业务负载分布。物理处理器130的示例包括但不限于中央处理单元(cpu)、微处理器、微控制器、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、上述各项中的一个或多个的部分、上述各项中的一个或多个相同的变体或组合、和/或任何其他合适的物理处理器。
24.如图1所示,示例性系统100还可以包括一个或多个fib,诸如fib120。在一些示例中,fib 120可以包括和/或表示包括在网关设备上和/或并入网关设备中的接入接口。在一些示例中,fib 120可以包括和/或表示用于存储促进在网络内转发业务的联网对象的转发表、转发平面和/或数据库。在一个示例中,fib 120可以被存储、维护和/或定位在物理计算设备上的内核空间内。附加地或备选地,fib 120可以被并入、分配给和/或表示虚拟路由器的一部分。因此,fib 120可以由物理设备托管和/或分配给虚拟路由器以用于网络消费者和/或订户使用。
25.如图1所示,fib 120可以包括、存储和/或维护一个或多个路由,诸如路由122(1)-(n)。在一些示例中,路由122(1)-(n)每个可以对应于和/或表示用于标识或指代网络、网络设备和/或网络接口的一部分的数据和/或信息。在一个示例中,路由122(1)-(n)每个可以标识和/或表示能够在网络内和/或在网络之间传输业务的路径。附加地或备选地,路由122(1)-(n)可以包括和/或包含对一个或多个物理设备或接口(诸如“ifd”)、逻辑设备或接口(诸如“ifl”)、下一跳和/或路径段的数据表示和/或引用。路由122(1)-(n)的示例包括但不
限于因特网协议(ip)路由(诸如ipv4和/或ipv6路由)、多协议标签交换(mpls)路由、虚拟专用局域网服务(vlan)路由、边界网关协议(bgp)路由、开放式最短路径优先(ospf)路由、上述各项中的一个或多个的变体或组合、或者任何其他合适的路由。
26.一种用于确定与分级fib的路由相关的业务负载分布的装置可以包括示例性系统100的全部或部分。在一些示例中,图1中的示例可以按照各种方式而被实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可以包括促进计算设备202与208之间的通信的网络204。
27.如图2所示,网络204可以包括和/或表示形成和/或建立通信路径和/或段的各种网络设备和/或节点。例如,网络204可以包括沿着一个或多个活动路径220(1)-(n)从计算设备202向计算设备208转发业务的网络设备206。在该示例中,活动路径220(1)可以包括和/或表示节点210(1)-(n),并且活动路径220(n)可以包括和/或表示节点212(1)-(n)。在一些实施例中,网络设备206可以包括和/或表示存储器140、物理处理器130和/或fib 120。
28.在一些示例中,并且如将在下面更详细描述的,模块102中的一个或多个可以引起网络设备206(1)标识fib 120中安装的路由122(1),(2)标识从网络设备206通向fib 120中安装的路由122(1)的目的地设备(例如,计算设备208)的活动路径220(1)-(n),(3)通过计算表示经由活动路径220(1)-(n)从网络设备206流向目的设备的业务量的多个业务负载来确定活动路径220(1)-(n)的负载分布,以及(4)至少部分基于活动路径220(1)-(n)的负载分布来做出与活动路径220(1)-(n)相关的运输决策。
29.网络设备206、节点210(1)-(n)、节点212(1)-(n)、计算设备202和计算设备208每个通常表示能够读取计算机可执行指令和/或处理网络业务的任何类型或形式的物理计算设备。网络设备206、节点210(1)-(n)、节点212(1)-(n)、计算设备202和计算设备208的示例包括但不限于路由器(诸如提供商边缘路由器、集线器路由器、分支路由器、自治系统边界路由器和/或区域边界路由器)、交换机、集线器、调制解调器、网桥、中继器、网关(诸如宽带网络网关(bng))、多路复用器、网络适配器、网络接口、客户端设备、便携式计算机、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(pda)、多媒体播放器、嵌入式系统、可穿戴设备、游戏机、上述各项中的一个或多个的变体或组合、和/或任何其他合适的网关设备。
30.网络204通常表示能够促进通信或数据传输的任何介质或架构。在一个示例中,网络204可以包括计算设备202和208,即使这些设备在图2中被示出为在网络204外部。附加地或备选地,网络204可以包括促进网络设备206、节点210(1)-(n)、节点212(1)-(n)、计算设备202和计算设备208之间的通信的其他设备。网络204可以促进使用无线和/或有线连接的通信或数据传输。网络204的示例包括但不限于内联网、接入网、第2层网络、第3层网络、多协议标签交换(mpls)网络、ip网络、异构网络(例如,第2层、第3层、ip和/或mpls)网络、广域网(wan)、局域网(lan)、个域网(pan)、互联网、电力线通信(plc)、蜂窝网络(例如,全球移动通信系统(gsm)网络)、上述各项中的一个或多个的变体或组合、和/或任何其他合适的网络。
31.图3是用于确定与分级fib的路由相关的业务负载分布的示例性计算机实现的方法300的流程图。图3所示的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200、图4中的系统400、图8中的系统800、和/或上述各项中的一个或多个的变体或组合。在一个示例中,图3所示的每个步骤可以表示一种算法,该
算法的结构包括多个子步骤和/或由多个子步骤表示,下面将更详细地提供这些多个子步骤的示例。
32.如图3所示,在步骤310,本文中描述的一个或多个系统可以标识网络中包括的网络设备的fib中安装的路由。例如,作为图2中的网络设备206的一部分,接收模块104可以标识fib 120中的路由122(1)。在该示例中,路由122(1)可以标识、定义和/或对应于经由网络204从网络设备206通向计算设备208的一个或多个活动路径。
33.本文中描述的系统可以按照各种方式和/或在各种上下文中执行步骤310。在一些示例中,标识模块104可以在fib 120中搜索一个或多个路由。例如,标识模块104可以在fib 120中搜索通向计算设备208的任何路由。在搜索期间,标识模块104可以标识和/或寻找经由网络204内的一个或多个活动路径从网络设备206通向计算设备208的路由122(1)。
34.返回图3,在步骤320,本文中描述的一个或多个系统可以标识从网络设备通向fib中安装的路由的目的地设备的多个活动路径。例如,作为图2中的网络设备206的一部分,标识模块104可以将活动路径220(1)-(n)标识为从网络设备206通向计算设备208。在该示例中,活动路径220(1)-(n)每个可以包括和/或表示当前从网络设备206向计算设备208传输业务的一系列节点和/或链路。
35.如下面将更详细描述的,网络204还可以包括从网络设备206通向计算设备208的一个或多个非活动(例如,备用)路径。在一些实施例中,这样的非活动路径当前可能未从网络设备206向计算设备208传输业务。在这样的实施例中,非活动路径可以被配置为在发生故障和/或失灵的情况下支持和/或备用活动路径220(1)-(n)。
36.本文中描述的系统可以按照各种方式和/或在各种上下文中执行步骤320。在一些示例中,标识模块104可以在fib 120中搜索标识活动路径220(1)-(n)中包括的每个节点的信息。在搜索期间,标识模块104可以定位和/或寻找将节点210(1)-(n)标识为活动路径220(1)的一部分的信息。附加地或备选地,在搜索期间,标识模块104可以定位和/或寻找将节点212(1)-(n)标识为活动路径220(n)的一部分的信息。
37.作为具体示例,标识模块104可以通过将“显示路由转发表[目的地标签]扩展”作为命令和/或参数输入到fib 120、相应界面和/或相应搜索门户中来搜索fib 120。在该示例中,fib 120、相应界面和/或相应搜索门户可以返回图7中的fib输出700。如图7所示,fib输出700可以包括和/或包含关于从网络设备206通向与标签“478239”相关联的目的地设备的一个或多个活动路径的信息。
[0038]
在一些示例中,标识模块104可以通过输入标识特定输出字段、“详细”关键字和/或“扩展”关键字的命令和/或参数来搜索fib 120。这样的命令和/或参数的示例包括但不限于“显示路由转发表”、“显示路由转发表细节”、“显示路由转发表目的地扩展”、“显示路由转发表扩展”、“显示路由转发表系列mpls”、“显示路由转发表系列mpls ccc”、“显示路由转发表系列vpls”、“显示路由转发表系列vpls扩展”、“显示路由转发表默认表”、“显示路由转发表表逻辑系统名称/路由实例名称”、“显示路由转发表vpn”、“显示pfe路由ip前缀细节”、“显示pfe路由目的地标签”、上述各项中的一个或多个的组合或变体、和/或任何其他合适的命令和/或参数。
[0039]
图4示出了包括从网络设备206引出的各种路径的示例性系统400。如图4所示,从网络节点206引出的一个路径可以包括和/或表示节点210(1)、210(2)、210(3)、210(4)和/
或210(5)。在一个示例中,节点210(1)-(5)中的一个或多个可以形成、建立和/或表示活动路径220(1)。从图4中的网络节点206引出的另一个路径可以包括和/或表示节点212(1)、212(2)、212(3)、212(4)和/或212(5)。在一个示例中,节点212(1)-(5)中的一个或多个可以形成、建立和/或表示活动路径220(n)。
[0040]
如图4所示,系统400还可以包括从网络节点206引出的备用路径420。在一个示例中,备用路径420可以包括和/或表示用于在活动路径220(1)-(n)中的一个或多个经历故障和/或失灵的情况下促进和/或提供故障转移保护的节点410(1)-(n)。在这种情况下,备用路径420可以被激活,并且然后传输流向计算设备208(图4中未示出)的业务的至少一部分。
[0041]
因此,标识模块104可以在fib 120内发现和/或寻找将节点210(1)-210(5)中的一个或多个标识为图4中的活动路径220(1)的一部分的信息。类似地,标识模块104可以在fib 120内发现和/或寻找将节点212(1)-212(5)中的一个或多个标识为图4中的活动路径220(n)的一部分的信息。附加地或备选地,标识模块104可以在fib 120内发现和/或寻找将节点410(1)-410(n)标识为图4中的备用路径420的一部分的信息。
[0042]
在一些示例中,标识模块104可以在fib 120中访问用于标识和/或描述活动路径220(1)-(n)中包括的下一跳的列表的一个或多个单列表项(unilist entry)和/或记录。在这样的示例中,标识模块104然后可以通过分析在fib 120中访问的单列表项和/或记录来标识和/或确定活动路径220(1)-(n)中包括的下一跳。附加地或备选地,单列表项和/或记录可以标识活动路径220(1)-(n)中包括的每个节点。因此,标识模块104和/或确定模块108可以通过分析在fib 120中访问的单列表项和/或记录来确定活动路径220(1)-(n)中包括的每个节点。
[0043]
在一些示例中,记录模块110可以至少部分基于在fib 120内找到的信息来生成活动路径220(1)-(n)之间的负载分布的表示。
[0044]
图5示出了从网络设备206通向计算设备208的活动路径220(1)-(n)之间的负载分布的示例性表示500。在一些示例中,表示500可以对应于和/或表示在fib 120内在图4中的系统400之间分布的负载。例如,图5中的单播下一跳510、520和540可以分别对应于和/或表示图4中的节点210(1)、212(1)和410(1)。类似地,图5中的单列表下一跳514可以分别对应于和/或表示图4中的节点210(3)和212(3)。
[0045]
在一个示例中,表示500可以在fib 120的记录和/或条目中体现、定义和/或描述。如图5所示,表示500可以包括和/或标识fib 120的路由502。在一个示例中,路由502可以标识网络设备206的单列表下一跳504。在该示例中,单列表下一跳504可以表示和/或代表到路径220(1)的单播下一跳510或路径220(n)的单播下一跳520的分支。因此,发送到单列表下一跳504的业务可以遍历和/或行进到单播下一跳510或单播下一跳520。
[0046]
继续该示例,路由502还可以标识沿着活动路径220(1)在单播下一跳510之后的间接下一跳512。在该示例中,路由502还可以标识沿着活动路径220(1)在间接下一跳512之后的单列表下一跳514。如图5所示,单列表下一跳514可以表示和/或代表到单播下一跳516或单播下一跳518的分支。因此,发送到单列表下一跳514的业务可以遍历和/或行进到单播下一跳516或单播下一跳518。
[0047]
继续该示例,路由502可以另外标识沿着活动路径220(n)在单播下一跳520之后的间接下一跳522。在该示例中,路由502还可以标识沿着活动路径220(1)在间接下一跳522之
后的单列表下一跳524。如图5所示,单列表下一跳524可以表示和/或代表到单播下一跳526或单播下一跳528的分支。因此,发送到单列表下一跳524的业务可以遍历和/或行进到单播下一跳526或单播下一跳528。
[0048]
在一些示例中,单播下一跳516、518、526和528中的每个可以通向计算设备208。换言之,单播下一跳516、518、526和528中的每个可以具有朝向计算设备208转发业务的容量和/能力。因此,可以在下一跳516、518、526和528之间分配和/或负载均衡源自网络设备206并且流向计算设备208的业务。
[0049]
在一些示例中,表示500还可以包括和/或标识从网络设备206通向计算设备的一个或多个附加路径。如图5所示,表示500可以包括和/或标识fib 120的路由530。在一个示例中,路由530可以标识网络设备206的复合下一跳532。在该示例中,路由530也可以标识沿着活动路径220(n)在复合下一跳532之后的间接下一跳522。
[0050]
继续该示例,路由530还可以标识沿着活动路径220(n)在间接下一跳522之后的单列表下一跳524。如图5所示,单列表下一跳524可以表示和/或代表到单播下一跳526或单播下一跳528的分支。因此,发送到单列表下一跳524的业务可以遍历和/或行进到单播下一跳526或单播下一跳528。
[0051]
返回图3,在步骤330,本文中描述的一个或多个系统可以通过计算表示经由多个活动路径从网络设备流向目的地设备的业务量的多个业务负载来确定多个活动路径的负载分布。例如,作为图2中的网络设备206的一部分,计算模块106可以计算经由活动路径220(1)-(n)从网络设备206流向计算设备208的业务负载。在该示例中,业务负载可以表示由活动路径220(1)-(n)传输的业务量。
[0052]
另外,作为图2中的网络设备206的一部分,确定模块108可以至少部分基于所计算的业务负载来确定活动路径220(1)-(n)的负载分布。在一个示例中,负载分布可以包括和/或表示从网络设备206流向计算设备208的业务负载的集合。
[0053]
本文中描述的系统可以按照各种方式和/或在各种上下文中执行步骤330。在一些示例中,计算模块106可以至少部分基于与活动路径220(1)-(n)中包括的某些节点相关联的权重和/或平衡值(balance value)来计算业务负载。例如,标识模块104可以访问和/或获取标识来自fib 120的活动路径220(1)-(n)中包括的每个单列表节点的权重值和/或平衡值的信息。更具体地,标识模块104可以访问和/或获取用于标识来自fib 120的活动路径220(1)-(n)中包括的每个单列表节点的权重值和/或平衡值的一个或多个单列表项和/或记录。这些单列表项和/或记录可以指示和/或标识与图5中的单列表下一跳504、514和/或524相关联的权重和/或平衡值。
[0054]
在一个示例中,权重值可以指示和/或用于区分活动路径和非活动路径。附加地或备选地,平衡值可以指示和/或用于确定不平等成本的业务如何在不平等成本负载均衡下在活动路径中包括的不同下一跳之间分布。
[0055]
作为具体示例,标识模块104可以访问和/或获取图5中的单列表下一跳504。在该示例中,单列表下一跳504可以分别指示和/或标识单播下一跳510、520和540的权重值10、10和20。附加地或备选地,单列表下一跳504可以分别指示和/或标识单播下一跳510、520和540的平衡值100、200和300。
[0056]
在一个示例中,标识模块104可以通过分析单列表下一跳504来分别标识单播下一
跳510、520和540的权重值10、10和20。在该示例中,确定模块110可以将单播下一跳510和520的权重值10和10与单播下一跳540的权重值20进行比较。至少部分基于该比较,确定模块110然后可以确定单播下一跳540的权重值与单播下一跳510和520的权重值不同。
[0057]
在一个示例中,最低权重可以对应于和/或指示任何活动路径和/或这些活动路径中包括的节点。相反,最高权重可以对应于和/或指示任何非活动路径和/或这些非活动路径中包括的节点。在该示例中,至少部分基于该比较,确定模块110可以确定单播下一跳510和520的权重值小于单播下一跳540的权重值。结果,确定模块110然后可以确定单播下一跳540被包括在当前没有从网络设备206向计算设备208传输任何业务的非活动路径中。因此,确定模块110可以确定活动路径220(1)和220(n)是活动的,而备用路径420是不活动的。
[0058]
继续该示例,标识模块104可以通过分析单列表下一跳514来分别标识单播下一跳516和518的权重值0和0。在该示例中,确定模块110可以将单播下一跳516的权重值0与单播下一跳518的权重值0进行比较。然后,至少部分基于该比较,确定模块110可以确定单播下一跳516的权重值与单播下一跳518的权重值相同。结果,确定模块110然后可以确定源自单播下一跳516和518的路径和/或段都是活动路径并且当前从网络设备206向计算设备208传输至少一些业务。
[0059]
此外,在该示例中,标识模块104可以通过分析单列表下一跳524来分别标识单播下一跳526和528的权重值60和20。在该示例中,确定模块110可以将单播下一跳526的权重值60与单播下一跳528的权重值20进行比较。然后,至少部分基于该比较,确定模块110可以确定单播下一跳528的权重值与单播下一跳528的权重值不同。更具体地,至少部分基于该比较,确定模块110可以确定单播下一跳528的权重值小于单播下一跳526的权重值。确定模块110然后可以确定单播下一跳526被包括在当前没有从网络设备206向计算设备208传输任何业务的非活动路径中。
[0060]
在一些示例中,计算模块106可以至少部分基于其相应平衡值来计算与路由502相关的由图4中的节点210(1)和节点212(2)处理的业务负载。在一个示例中,计算模块106可以将以下公式应用于活动路径内的特定节点处的总体计算权重(ocw):
[0061]
。在该示例中,ocw可以对应于和/或表示遍历和/或行进通过某个活动路径、段和/或节点的业务的百分比和/或量。
[0062]
例如,可以将单列表下一跳504处的ptr初始化为100,以使得每个单播下一跳510和520的传入ptr为100。因此,在该示例中,单播下一跳510的ocw可以计算为这表示经由路由502从网络设备206转发的所有分组中约有33%遍历单播下一跳510和/或由单播下一跳510处理。此外,在该示例中,单播下一跳520的ocw可以计算为这表示经由路由502从网络设备206转发的所有分组中约有66%遍历单播下一跳520和/或由单播下一跳520处理。
[0063]
在一些示例中,计算模块106可以至少部分基于其相应平衡值来计算与路由502相关的由图4中的节点210(4)和节点210(5)处理的业务负载。例如,单播下一跳516和518的传
入ptr可以对应于和/或等于单播下一跳510的ocw,单播下一跳510是馈入单列表下一跳514的支路、分支和/或段的第一节点,其中该活动路径分为单播下一跳516和518。因此,在该示例中,单播下一跳516的ocw可以计算为这表示经由路由502从网络设备206转发的所有分组中约有11%遍历单播下一跳516和/或由单播下一跳516处理。另外,在该示例中,单播下一跳518的ocw可以计算为这表示经由路由502从网络设备206转发的所有分组中约有22%遍历单播下一跳518和/或由单播下一跳518处理。
[0064]
在一些示例中,计算模块106可以计算与路由502相关的由图5中的节点212(5)处理的业务负载。例如,单播下一跳528的传入ptr可以对应于和/或等于单播下一跳520的ocw,单播下一跳520是馈入单列表下一跳524的支路、分支和/或段的第一节点,其中该路径分为单播下一跳526和528。但是,由于包括单播下一跳526的路径段是不活动的,因此与路由502相关的遍历单播下一跳520和/或由单播下一跳520处理的所有业务可以经由单播下一跳528继续向计算设备208前进。因此,与路由502相关的单播下一跳528的ocw可以计算为这表示经由路由502从网络设备206转发的所有分组中约有66%遍历单播下一跳528和/或由单播下一跳528处理。
[0065]
在一些示例中,计算模块106可以计算与路由530相关的由图5中的节点212(5)处理的业务负载。例如,单列表下一跳524处的ptr可以被初始化为100,以使得单播下一跳528的传入ptr为100。如上所述,由于包括单播下一跳526的路径段是不活动的,因此与路由530相关的源自网络设备206的所有业务可以经由单播下一跳528继续向计算设备208前进。因此,与路由530相关的单播下一跳528的ocw可以计算为这表示经由路由530从网络设备206转发的所有分组中的100%遍历单播下一跳528和/或由单播下一跳528处理。
[0066]
在一些示例中,记录模块110可以生成系统400上的负载分布的表示500和/或将其存储在fib 120中以用于未来参考。在这些示例中,表示500可以指示和/或示出与路由502和/或530相关联的各种权重值、平衡值和/或ocw。
[0067]
附加地或备选地,记录模块110可以生成系统400上的负载分布的图6中的删节表示600和/或将其存储在fib 120中以用于未来参考。如图6所示,删节表示600可以包括和/或表示表示500的缩写形式。在一个示例中,删节表示600可以说明和/或示出路由502、单列表下一跳504和/或单播下一跳516、518、526。在该示例中,删节表示600可以省略在表示500中说明和/或示出的下一跳510、512、514、520、522、524、526和540。
[0068]
附加地或备选地,删节表示600可以说明和/或示出路由530、单列表下一跳524和/或单播下一跳528。在该示例中,删节表示600还可以省略下一跳532,下一跳532在表示500中说明和/或示出。
[0069]
删节表示600可以按照多种方式而被生成。例如,标识模块104可以标识路由502和530。在该示例中,标识模块104然后可以将下一跳516、518和/或528标识为路由502的活动
路径中的最终跳。此外,标识模块104可以标识与路由502相关的通向下一跳516、518和/或528和/或向下一跳516、518和/或528馈送业务的单列表下一跳504。
[0070]
附加地或备选地,标识模块104可以将下一跳528标识为路由530的活动路径中的最终跳。在该示例中,标识模块104可以标识与路由530相关的通向下一跳528和/或向下一跳528馈送业务的单列表下一跳524。
[0071]
继续该示例,记录模块110可以生成删节表示600以说明和/或示出经由单列表下一跳504通向下一跳516、518和/或528的路由以及经由单列表下一跳524通向下一跳528的路由530。在该示例中,记录模块110可以生成删节表示600以省略下一跳510、512、514、520、522、524、526、532和540。此外,删节表示600可以指示和/或示出与路由502和/或530相关联的各种ocw。
[0072]
返回图3,在步骤340,本文中描述的一个或多个系统可以至少部分基于多个活动路径的负载分布来做出与多个活动路径相关的运输决策。例如,作为图2中的网络设备206的一部分,运输模块112可以至少部分基于活动路径220(1)-(n)的负载分布来做出与活动路径220(1)-(n)相关的运输决策。在一个示例中,运输决策可以包括和/或表示活动路径220(1)-(n)的负载均衡决策。附加地或备选地,运输决策可以包括和/或表示活动路径220(1)-(n)的业务工程决策。
[0073]
本文中描述的系统可以按照各种方式和/或在各种上下文中执行步骤340。在一些示例中,确定模块108可以确定活动路径220(1)-(n)的负载分布的至少一部分超过特定阈值。例如,确定模块108可以确定活动路径220(n)当前正在相对于活动路径220(1)传输与路由502相关的不成比例的大量业务。响应于该确定,运输模块112可以通过增加由活动路径220(1)-(n)中的至少一个处理的业务量并且减少由活动路径220(1)-(n)中的至少另一个处理的业务量来修改活动路径220(1)-(n)的负载分布。
[0074]
在一些示例中,确定模块108可以确定活动路径220(1)-(n)的负载分布的当前状态符合特定阈值。例如,确定模块108可以确定活动路径220(1)-(n)当前正在相对于彼此传输与路由502相关的可接受的业务量。响应于该确定,运输模块112可以将活动路径220(1)-(n)的负载分布维持在当前状态。
[0075]
在一些示例中,运输模块112可以至少部分基于和/或鉴于图5中的表示500来做出运输决策。附加地或备选地,运输模块112可以至少部分基于和/或鉴于图6中的删节表示600来做出运输决策。例如,运输模块112可以从fib 120访问和/或获取图6中的删节表示600。在该示例中,运输模块112可以分析删节表示600,并且然后依赖于图6中的删节表示600中呈现的信息来做出运输决策时。
[0076]
在一些示例中,运输模块112可以实施和/或执行运输决策。例如,鉴于活动路径220(1)-(n)的负载分布,运输模块112可以将业务从路由502重新路由到另一路由。附加地或备选地,运输模块112可以在由路由502相连的某些路径和/或段之间重新分配业务负载。
[0077]
图8是能够结合本文中描述和/或示出的一个或多个实施例来实现和/或使用的示例性计算系统800的框图。在一些实施例中,计算系统800的全部或一部分可以执行结合图3描述的一个或多个步骤,和/或是用于单独地或与其他元件组合地执行结合图3描述的一个或多个步骤的装置。计算系统800的全部或一部分还可以执行本文中描述和/或示出的任何其他步骤、方法或过程,和/或是用于执行和/或实现本文中描述和/或示出的任何其他步
骤、方法或过程的装置。
[0078]
计算系统800广泛地表示任何类型或形式的电负载,包括能够执行计算机可读指令的单处理器或多处理器计算设备或系统。计算系统800的示例包括但不限于工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如,骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络设备(例如,网络安全设备、网络控制设备、网络定时设备、ssl vpn(安全套接字层虚拟专用网络)设备等)、网络控制器、网关(例如,服务网关、移动分组网关、多访问网关、安全网关等)、和/或任何其他类型或形式的计算系统或设备。
[0079]
计算系统800可以被编程、配置和/或以其他方式设计为符合一个或多个网络协议。根据某些实施例,计算系统800可以被设计为与开放系统互连(osi)参考模型的一个或多个层的协议一起工作,诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议和/或应用层协议。例如,计算系统800可以包括根据以下各项而配置的网络设备:通用串行总线(usb)协议、电气和电子工程师协会(ieee)1394协议、以太网协议、t1协议、同步光纤网络(sonet)协议、同步数字系列(sdh)协议、综合业务数字网(isdn)协议、异步传输模式(atm)协议、点对点协议(ppp)、点对点协议以太网(pppoe)、atm上的点对点协议(pppoa)、蓝牙协议、ieee 802.xx协议、帧中继协议、令牌环协议、生成树协议和/或任何其他合适的协议。
[0080]
计算系统800可以包括各种网络和/或计算组件。例如,计算系统800可以包括至少一个处理器814和系统存储器816。处理器814通常表示能够处理数据或解释和执行指令的任何类型或形式的处理单元。例如,处理器814可以表示专用集成电路(asic)、片上系统(例如,网络处理器)、硬件加速器、通用处理器和/或任何其他合适的处理元件。
[0081]
处理器814可以根据上面讨论的一个或多个网络协议来处理数据。例如,处理器814可以执行或实现协议栈的一部分,可以处理分组,可以执行存储器操作(例如,对分组进行排队以用于稍后处理),可以执行最终用户应用,和/或可以执行任何其他处理任务。
[0082]
系统存储器816通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器816的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存或任何其他合适的存储器设备。尽管不是必需的,但是在某些实施例中,计算系统800可以包括易失性存储器单元(例如,系统存储器816)和非易失性存储设备(例如,主存储设备832,如下面详细描述的)。系统存储器816可以实现为网络设备中的共享存储器和/或分布式存储器。此外,系统存储器816可以存储在网络操作中使用的分组和/或其他信息。
[0083]
在某些实施例中,除了处理器814和系统存储器816之外,示例性计算系统800还可以包括一个或多个组件或元件。例如,如图8所示,计算系统800可以包括存储器控制器818、输入/输出(i/o)控制器820和通信接口822,每个可以经由通信基础设施812互连。通信基础设施812通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施812的示例包括但不限于通信总线(诸如串行ata(sata)、工业标准架构(isa)、外围组件互连(pci)、pci express(pcie)和/或任何其他合适的总线)和网络。
[0084]
存储器控制器818通常表示能够处理存储器或数据或者控制计算系统800的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器
818可以控制处理器814、系统存储器816和i/o控制器820之间经由通信基础设施812的通信。在一些实施例中,存储器控制器818可以包括可以传送数据(例如,分组)去往或来自链路适配器的直接存储器访问(dma)单元。
[0085]
i/o控制器820通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的设备或模块。例如,在某些实施例中,i/o控制器820可以控制或促进计算系统800的一个或多个元件(诸如处理器814、系统存储器816、通信接口822和存储接口830)之间的数据传输。
[0086]
通信接口822广泛地表示能够促进示例性计算系统800与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口822可以促进计算系统800与包括附加计算系统的私有或公共网络之间的通信。通信接口822的示例包括但不限于链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)以及任何其他合适的接口。在至少一个实施例中,通信接口822可以经由到诸如因特网等网络的直接链路来提供到远程服务器的直接连接。通信接口822还可以通过例如局域网(诸如以太网)、个域网、广域网、专用网(例如,虚拟专用网)、电话或有线网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接间接地提供这种连接。
[0087]
在某些实施例中,通信接口822还可以表示被配置为促进计算系统800与一个或多个附加网络或存储设备之间经由外部总线或通信信道的通信的主机适配器。主机适配器的示例包括但不限于小型计算机系统接口(scsi)主机适配器、通用串行总线(usb)主机适配器、ieee 1394主机适配器、高级技术附件(ata)、并行ata(pata)、串行ata(sata)和外部sata(esata)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口822还可以使得计算系统800能够参与分布式或远程计算。例如,通信接口822可以从远程设备接收指令或者向远程设备发送指令以用于执行。
[0088]
如图8所示,示例性计算系统800还可以包括经由存储接口830耦合到通信基础设施812的主存储设备832和/或备用存储设备834。存储设备832和834通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备832和834可以表示磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口830通常表示用于在存储设备832和834与计算系统800的其他组件之间传输数据的任何类型或形式的接口或设备。
[0089]
在某些实施例中,存储设备832和834可以被配置为从可移动存储单元读取和/或向其写入,该可移动存储单元被配置为存储计算机软件、数据或其他计算机可读信息。合适的可移动存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备832和834还可以包括其他类似的结构或设备以允许将计算机软件、数据或其他计算机可读指令加载到计算机系统800中。例如,存储设备832和834可以被配置为读取和写入软件、数据、或其他计算机可读信息。存储设备832和834可以是计算系统800的一部分,或者可以是通过接口系统访问的单独设备。
[0090]
很多其他设备或子系统可以连接到计算系统800。相反,并非图8所示的所有组件和设备都需要存在以实践本文中描述和/或示出的实施例。上面引用的设备和子系统也可以按照不同于图8所示的方式互连。计算系统800还可以采用任何数目的软件、固件和/或硬件配置。例如,本文中公开的一个或多个示例性实施例可以被编码为计算机可读介质上的
计算机程序(也称为计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输类型介质(诸如载波)和非暂态类型介质(诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,压缩盘(cd)和数字视频盘(dvd))、电子存储介质(例如,固态驱动器和闪存介质)以及其他分配系统)。
[0091]
尽管前述公开内容使用特定框图、流程图和示例阐述了各种实施例,但是本文中描述和/或示出的每个框图组件、流程图步骤、操作和/或组件可以使用各种硬件、软件或固件(或其任何组合)配置单独地和/或集体地实现。另外,包含在其他组件内的组件的任何公开内容应当被认为是示例性的,因为可以实现很多其他架构以实现相同的功能。
[0092]
在一些示例中,图1中的系统100的全部或一部分可以表示云计算或基于网络的环境的部分。云计算和基于网络的环境可以经由因特网提供各种服务和应用。这些云计算和基于网络的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他远程接口来访问。本文中描述的各种功能还可以提供网络交换能力、网关接入能力、网络安全功能、网络的内容高速缓存和递送服务、网络控制服务和/或其他联网功能。
[0093]
另外,本文中描述的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。附加地或备选地,本文中描述的一个或多个模块可以通过在计算设备上执行,在计算设备上存储数据,和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式变换为另一种形式。
[0094]
本文中描述和/或说明的步骤的过程参数和顺序仅作为示例给出,并且可以根据需要而改变。例如,虽然本文中示出和/或描述的步骤可以按照特定顺序而被示出或讨论,但是这些步骤不一定需要以所示或讨论的顺序执行。本文中描述和/或示出的各种示例性方法还可以省略本文中描述或示出的一个或多个步骤,或者除了所公开的那些之外还包括附加的步骤。
[0095]
已经提供了前面的描述以使得本领域的其他技术人员能够最好地利用本文中公开的示例性实施例的各个方面。该示例性描述并非旨在穷举或限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,可以进行很多修改和变化。本文中公开的实施例应当在所有方面都被认为是示例性的而非限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。
[0096]
除非另有说明,否则在说明书和权利要求中使用的术语“连接到(connected to)”和“耦合到(coupled to)”(及其派生词)应当被解释为允许直接和间接(即,经由其他元件或组件)连接。另外,在说明书和权利要求中使用的术语“一个(a)”或“一个(an)”应当被理解为“至少一个(at least one of)”。最后,为了便于使用,说明书和权利要求书中使用的术语“包括(including)”和“具有(having)”(及其派生词)可以与“包括(comprising)”一词互换并且具有相同的含义。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1