Dynamic network bandwidth allocation and management based on centralized controller
阅读说明:本技术 基于集中式控制器的动态网络带宽分配与管理 (Dynamic network bandwidth allocation and management based on centralized controller ) 是由 F·艾凡迪 蔡秀彦 蔡人杰 于 2019-12-31 设计创作,主要内容包括:本文涉及基于集中式控制器的动态网络带宽分配与管理。提供了一种接收与包括网络设备的网络相关联的拓扑数据和路径数据的设备。该设备基于拓扑数据和路径数据来确定通过网络的针对新路径的计划带宽,并且基于该计划带宽来对新路径排序以生成排序列表。该设备从排序列表选择标识第一新路径的信息,其中第一新路径包括第一计划带宽。该设备基于第一计划带宽来确定第一新路径是否能够经由通过网络的单个路由而被提供,并且当第一新路径无法经由单个路由而被提供时,针对第一新路径标识通过网络的两个或更多个路由。该设备使得第一计划带宽,由针对两个或更多个路由的两个或更多个网络设备预留。(This document relates to dynamic network bandwidth allocation and management based on a centralized controller. An apparatus is provided that receives topology data and path data associated with a network that includes network devices. The device determines a planned bandwidth for the new path through the network based on the topology data and the path data, and orders the new path based on the planned bandwidth to generate an ordered list. The device selects information identifying a first new path from the ordered list, wherein the first new path includes a first projected bandwidth. The device determines whether the first new path can be provided via a single route through the network based on the first planned bandwidth, and identifies two or more routes through the network for the first new path when the first new path cannot be provided via the single route. The device causes the first planned bandwidth to be reserved by two or more network devices for two or more routes.)
1. A method, comprising:
receiving, by a device, topology data and path data associated with a network,
wherein the network comprises a plurality of network devices interconnected by links;
determining, by the device, a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data;
ordering, by the device, the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate an ordered list of the plurality of new paths;
selecting, by the device, information identifying a first new path from the ordered list of the plurality of new paths,
wherein the first new path comprises a first planned bandwidth of the plurality of planned bandwidths;
determining, by the device, based on the first planned bandwidth, whether the first new path can be provided via a single route through the network;
identifying, by the device, two or more routes through the network for the first new path when the first new path cannot be provided via the single route through the network; and
causing, by the device, the first planned bandwidth to be reserved, for a first new path, by two or more network devices of the plurality of network devices for the two or more routes through the network.
2. The method of claim 1, further comprising:
when the first new path is capable of being provided via a single route through the network, causing the first planned bandwidth to be reserved, for the first new path, by two or more of the plurality of network devices for the single route through the network.
3. The method of claim 1, further comprising:
selecting information identifying a second new path from the ordered list of the plurality of new paths when the first new path can be provided via a single route through the network,
wherein the second new path comprises a second planned bandwidth of the plurality of planned bandwidths, an
Wherein the second projected bandwidth is less than the first projected bandwidth.
4. The method of claim 3, further comprising:
determining, based on the second planned bandwidth, whether the second new path can be provided via another single route through the network;
identifying two or more additional routes through the network for the second new path when the second new path cannot be provided via the other single route through the network; and
causing the second planned bandwidth to be reserved, for the second new path, by two or more of the plurality of network devices for the other two or more routes through the network.
5. The method of claim 1, further comprising:
selecting information identifying each remaining new path from the ordered list of the plurality of new paths when the first new path can be provided via a single route through the network,
wherein each remaining new path comprises a corresponding planned bandwidth of the plurality of planned bandwidths; and
such that the corresponding planned bandwidth is reserved by two or more of the plurality of network devices for each remaining new path.
6. The method of claim 1, wherein the topology data comprises data identifying one or more of:
the plurality of network devices are connected to the network,
said link interconnecting a plurality of network devices, or
Utilization of the plurality of network devices.
7. The method of claim 1, wherein the path data comprises data identifying one or more of:
a path through the network provided by the plurality of network devices,
the source of the path through the network,
a destination of said path through said network, or
Utilization of the path through the network.
8. An apparatus, comprising:
one or more memories; and
one or more processors communicatively coupled with the one or more memories to:
topology data associated with a network is received,
wherein the network comprises a plurality of network devices interconnected by links, an
Wherein the topology data includes data identifying one or more of:
the plurality of network devices are connected to the network,
the link interconnecting the plurality of network devices, or
Utilization of the plurality of network devices;
receiving path data associated with a network,
wherein the path data comprises data identifying one or more of:
a path through the network provided by the plurality of network devices,
the source of the path through the network,
a destination of said path through said network, or
Utilization of the path through the network;
determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data;
ranking the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths;
selecting information identifying a first new path from the ordered list of the plurality of new paths,
wherein the first new path comprises a first planned bandwidth of the plurality of planned bandwidths;
determining, based on the first planned bandwidth, whether a first new path can be provided via a single route through the network;
when the first new path is capable of being provided via the single route through the network, causing the first planned bandwidth to be reserved, for the first new path, by two or more of the plurality of network devices for the single route through the network.
9. The apparatus of claim 8, wherein when determining whether the first new path can be provided via the single route through the network, the one or more processors are to:
determining whether the first new path can be provided via the single route through the network based on a Constrained Shortest Path First (CSPF) constraint.
10. The apparatus of claim 8, wherein the one or more processors are further to:
information is received that indicates a time period during which,
wherein the one or more processors, when receiving the topology data and the path data associated with the network, are to:
receiving the topology data and the path data associated with the network relating to the start of the period, and
wherein when determining the plurality of projected bandwidths through the network for the plurality of new paths, the one or more processors are to:
determining the plurality of projected bandwidths for the plurality of new paths through the network in relation to the end of the period of time.
11. The apparatus of claim 8, wherein the one or more processors are further to:
receiving information indicating a time period; and is
Aggregating the utilization of the paths through the network over the period of time to determine a total bandwidth,
wherein the total bandwidth is based on a sum of the plurality of projected bandwidths for the plurality of new paths through the network.
12. The apparatus of claim 8, wherein the one or more processors are further to:
receiving attributes for the plurality of new paths through the network,
wherein when determining the plurality of projected bandwidths through the network for the plurality of new paths, the one or more processors are to:
determining the plurality of projected bandwidths for the plurality of new paths through the network based on the attributes for the plurality of new paths through the network.
13. The apparatus of claim 8, wherein the one or more processors are further to:
receiving bandwidth thresholds associated with the plurality of new paths through the network,
wherein when determining whether the first new path can be provided via the single route through the network, the one or more processors are to:
determining whether the first new path can be provided via the single route through the network based on the bandwidth threshold.
14. The apparatus of claim 8, wherein the one or more processors are further to:
identifying two or more routes through the network for the first new path when the first new path cannot be provided via the single route through the network; and is
Causing the first planned bandwidth to be reserved, for the first new path, by two or more network devices of the plurality of network devices for the two or more routes through the network.
15. A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
receiving topology data and path data associated with a network,
wherein the network comprises a plurality of network devices interconnected by links;
determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data;
ranking the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths;
selecting information identifying each of a plurality of new paths from the ordered list of the plurality of new paths based on an ordering associated with the plurality of new paths,
determining, based on the plurality of projected bandwidths, that each new path of the plurality of paths can be provided via a single route through the network or via two or more routes through the network; and
causing the plurality of planned bandwidths to be reserved by the plurality of network devices for the plurality of new paths.
16. The non-transitory computer-readable medium of claim 15, wherein the topology data comprises data identifying one or more of:
the plurality of network devices are connected to the network,
the link interconnecting the plurality of network devices, or
Utilization of the plurality of network devices.
17. The non-transitory computer-readable medium of claim 15, wherein the path data comprises data identifying one or more of:
a path through the network provided by the plurality of network devices,
the source of the path through the network,
a destination of said path through said network, or
Utilization of the path through the network.
18. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions that cause the one or more processors to determine that each of the plurality of new paths can be provided via a single route through the network or via two or more routes through the network cause the one or more processors to:
determining, based on a Constrained Shortest Path First (CSPF) constraint, that each of the plurality of new paths can be provided via a single route through the network or via two or more routes through the network.
19. The non-transitory computer-readable medium of claim 15, wherein the instructions further comprise:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
information is received that indicates a time period during which,
wherein the one or more instructions that cause the one or more processors to receive the topology data and the path data associated with the network cause the one or more processors to:
receiving the topology data and the path data associated with the network relating to the start of the period, an
Wherein the one or more instructions that cause the one or more processors to determine the plurality of projected bandwidths for the plurality of new paths through the network cause the one or more processors to:
determining the plurality of projected bandwidths for the plurality of new paths through the network in relation to the end of the period of time.
20. The non-transitory computer-readable medium of claim 15, wherein the instructions further comprise:
one or more instructions that, when executed by one or more processors, further cause the one or more processors to:
receiving attributes for the plurality of new paths through the network,
wherein the one or more instructions that cause the one or more processors to determine the plurality of projected bandwidths for the plurality of new paths through the network cause the one or more processors to:
determining the plurality of projected bandwidths for the plurality of new paths through the network based on the attributes for the plurality of new paths through the network.
Background
Network bandwidth management is a process of measuring and controlling communications (e.g., traffic, packets, etc.) over network links to avoid filling one or more of the links with capacity or over-filling the links, which can result in network congestion and poor network performance.
Disclosure of Invention
According to some implementations, a method may include receiving topology data and path data associated with a network, wherein the network includes a plurality of network devices interconnected by links, and determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data. The method may include ranking a plurality of new paths based on a plurality of planned bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths, and selecting information identifying a first new path from the ranked list of the plurality of new paths, wherein the first new path includes a first planned bandwidth of the plurality of planned bandwidths. The method may include determining whether the first new path can be provided via a single route through the network based on the first planned bandwidth, and identifying two or more routes through the network for the first new path when the first new path cannot be provided via the single route through the network. The method may include causing the first planned bandwidth to be reserved, for the first new path, by two or more devices of the plurality of network devices for two or more routes through the network.
According to some implementations, an apparatus may include: one or more memories, and one or more processors communicatively coupled to the one or more memories to receive topology data associated with a network, wherein the network comprises a plurality of network devices interconnected by links, and wherein the topology data comprises data identifying one or more of: a plurality of network devices, a link interconnecting a plurality of network devices, or a utilization of a plurality of network devices. The one or more processors may receive path data associated with a network, wherein the path data includes data identifying one or more of: a path through the network, a source of the path through the network, a destination of the path through the network, or a utilization of the path through the network provided by the plurality of network devices. The one or more processors may determine a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data, and may order the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate an ordered list of the plurality of new paths. The one or more processors may select information identifying a first new path from an ordered list of a plurality of new paths, wherein the first new path includes a first planned bandwidth of a plurality of planned bandwidths, and may determine whether the first new path can be provided via a single route through the network based on the first planned bandwidth. The one or more processors may cause the first projected bandwidth to be reserved for the first new path by two or more of the plurality of network devices for a single route through the network when the first new path is capable of being provided via the single route through the network.
According to some implementations, a non-transitory computer-readable medium may store instructions, including one or more instructions that, when executed by one or more processors, cause the one or more processors to receive topology data and path data associated with a network, wherein the network includes a plurality of network devices interconnected by links. The one or more instructions may cause the one or more processors to determine a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data, and rank the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths. The one or more instructions may cause the one or more processors to select, from an ordered list of the plurality of new paths, information identifying each of the plurality of new paths based on an ordering associated with the plurality of new paths, and determine, based on the plurality of projected bandwidths, whether each of the plurality of new paths can be provided via a single route through the network or via two or more routes through the network. The one or more instructions may cause the one or more processors to cause a plurality of projected bandwidths to be reserved by the plurality of network devices for the plurality of new paths.
Drawings
1A-1I are illustrations of one or more example implementations described herein.
FIG. 2 is an illustration of an example environment in which systems and/or methods described herein may be implemented.
FIG. 3 is an illustration of example components of one or more devices of FIG. 2.
Fig. 4-6 are flowcharts of example processes for providing centralized allocation and management of dynamic network bandwidth.
Detailed Description
The following description of specific embodiments of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Currently, some network devices (e.g., routers, switches, gateways, firewalls, etc.) utilize internal logic to manage network bandwidth in a distributed manner over links provided between network devices. In such systems, each network device manages network bandwidth without needing to know how other networks manage the network bandwidth, which results in inefficient network bandwidth allocation, inefficient utilization of network resources, and traffic disruption in the network. This causes computing resources (e.g., processing resources, memory resources, etc.), network resources, etc. to be wasted in identifying and/or correcting traffic disruptions, rerouting traffic, locating lost traffic, etc.
Some implementations described herein provide a controller platform that provides centralized dynamic network bandwidth allocation and management. For example, the controller platform may receive topology data and path data associated with a network, where the network includes network devices interconnected by links. The controller platform may determine a planned bandwidth for the new path through the network based on the topology data and the path data, and may rank the new path based on the planned bandwidth for the new path to generate a ranked list of the new path. The controller platform may select information identifying each of the new paths from the ordered list of new paths based on an ordering associated with the new paths, and may determine whether each of the new paths is capable of being provided via a single route through the network or via two or more routes through the network based on the projected bandwidth. The controller platform may cause the planned bandwidth to be reserved by the network device for the new path.
In this manner, traffic may be efficiently routed in the network, which reduces or prevents traffic disruption in the network (e.g., resulting in traffic being lost, resulting in traffic being delayed, requiring rerouting of traffic, etc.). This, in turn, saves computing resources (e.g., processing resources, memory resources, etc.), network resources, etc., that would otherwise be wasted in identifying and/or correcting traffic disruptions, rerouting traffic, locating lost traffic, etc.
Fig. 1A-1I are illustrations of one or
As shown in fig. 1A and further by reference numeral 105, an endpoint device may provide traffic to and/or receive traffic from a network. In some implementations, traffic from the endpoint device may be provided to one or more of the network devices, and the one or more network devices may process the traffic accordingly (e.g., by forwarding the traffic to other network devices and/or the endpoint device). In some implementations, traffic may be processed by one or more network devices and forwarded to an endpoint device.
As shown in fig. 1A and further illustrated by reference numeral 110, a controller platform may receive topology data associated with a network. In some implementations, the topology data may include data identifying: a network device (e.g., data identifying a type of network device, a network identifier of the network device, a location of the network device, hardware and/or software associated with the network device, other network devices adjacent to the network device, links connected to the network device, ports associated with the network device, etc.), links interconnecting network devices (e.g., data identifying a type of link, a protocol used by the link, the network device to which the link is connected, ports associated with the network device, etc.), utilization of the network device (e.g., capacity of the network device, throughput of the network device, etc.), and so forth. The controller platform may periodically receive topology data from the network (e.g., over a particular time interval in seconds, minutes, hours, days, etc.), may continuously receive topology data from the network, etc. For example, the controller platform may provide a request for topology data to the network device, and the network device may provide the topology data to the controller platform based on the request.
As shown in fig. 1B and indicated by
As shown in fig. 1C and by
In one example, a projected bandwidth may be determined to prevent congestion of traffic identified in a current path of the network. In this way, the controller platform may prevent traffic congestion in the network and may prevent packet loss due to traffic congestion. This, in turn, saves computational resources (e.g., processing resources, memory resources, etc.), network resources, etc., that would otherwise be wasted in identifying lost packets, recovering lost packets, retransmitting lost packets, etc.
In some implementations, a network may include hundreds, thousands, etc. of network devices and/or links that generate thousands, millions, billions, etc. of data points. In this manner, the controller platform may handle thousands, millions, billions of and thus may provide "big data" capability during a particular time period (e.g., when determining new paths and projected bandwidth).
In some implementations, the controller platform may assign attributes to each of the new paths. The attributes for the new path may include an attribute identifying a name of the new path, an attribute identifying a minimum signaling bandwidth of the new path (e.g., a minimum bandwidth allowed for signaling of the new path), an attribute identifying a maximum signaling bandwidth of the new path (e.g., a maximum bandwidth allowed for signaling of the new path), a combining bandwidth (e.g., a lower bandwidth threshold on aggregated bandwidth usage for the new path), a splitting bandwidth (e.g., a higher bandwidth threshold on aggregated bandwidth usage for the new path), and so forth.
As shown in fig. 1D and by reference numeral 125, the controller platform may order the plurality of new paths based on the projected bandwidths for the plurality of new paths to generate an ordered list of the plurality of new paths. For example, if one new path has a planned bandwidth of 30 gigabits, another new path has a planned bandwidth of 50 gigabits, and yet another new path has a planned bandwidth of 60 gigabits, the controller platform may order the new path with the planned bandwidth of 60 gigabits to a first position in the ordered list, order the new path with the planned bandwidth of 50 gigabits to a second position, and order the new path with the planned bandwidth of 30 gigabits to a third position in the ordered list.
As shown in fig. 1E and indicated by reference numeral 130, the controller platform may select a first new path from the ordered list of new paths that includes a first planned loan in the planned bandwidth. The first projected bandwidth may be a maximum bandwidth of the projected bandwidths. In some implementations, the controller platform may attempt to reserve the planned bandwidth in the network based on an ordered list of the plurality of new paths. In this manner, the controller platform may first reserve the largest projected bandwidth in the network, then may reserve the second largest projected bandwidth in the network, and so on. The controller platform may reserve a maximum of planned bandwidth in the network in this manner, as each planned bandwidth is preferably provided via a single route through the network, in order to reduce maintenance of path state information in the network devices. In this manner, the controller platform may conserve computing resources of the network device that would otherwise be wasted in maintaining path state information.
As shown in fig. 1F and by reference numeral 135, the controller platform may determine whether the first new path can be provided via a single route through the network based on the first projected bandwidth. In some implementations, the controller platform may determine whether the first new path can be provided via a single route through the network based on Constrained Shortest Path First (CSPF) constraints. The path computed using CSPF is the shortest path that satisfies the constraint set. The set of constraints may include constraints associated with a minimum bandwidth required for each link (e.g., bandwidth guarantee constraints), end-to-end delay, maximum number of traversed links, include/exclude nodes, and the like. The controller platform may determine that the first new path may be provided via the single route when the first projected bandwidth may be accommodated by the single route (e.g., based on CSPF constraints). The controller platform may determine that the first new path cannot be provided via the single route when the first planned bandwidth cannot be accommodated by the single route (e.g., based on CSPF constraints).
As shown in fig. 1G and by
As shown in fig. 1H and by
As shown in fig. 1I and indicated by reference numeral 150, the controller platform may cause bandwidth to be reserved through the network for a plurality of new paths. For example, the controller platform may cause a first planned bandwidth to be reserved over the network for a first new path, may cause a second planned bandwidth to be reserved over the network for a second new path, and so on. In some implementations, the controller platform may reserve bandwidth for multiple new paths by providing instructions to one or more of the network devices indicating that the one or more network devices and links associated with the one or more network devices are reserved bandwidth for the multiple new paths. One or more network devices may receive the instructions and may reserve bandwidth for the plurality of new paths based on the instructions. For example, the controller device may provide instructions to three network devices indicating that the three network devices (e.g., and two links provided between the three network devices) are to reserve a first planned bandwidth for the first new path. The three network devices may receive the instruction and may reserve the first planned bandwidth for the first new path based on the instruction.
In some implementations, the controller platform may instruct the network device to signal one or more paths through the network that do not have any bandwidth reservations along the paths. Although the network device still keeps the bandwidth reservation unknown, the controller platform may create a network model and may maintain the bandwidth reservation locally. This may provide the controller platform with the flexibility to relocate bandwidth resources and determine the best path without having to consider whether resources have been released by the network device.
In this manner, traffic may be continuously routed in the network, reducing and preventing traffic disruption in the network (e.g., causing traffic loss, causing traffic delay, requiring traffic rerouting, etc.). This saves computing resources (e.g., processing resources, memory resources, etc.), network resources, etc., that would otherwise be wasted in identifying and/or correcting traffic disruptions, rerouting traffic, locating lost traffic, etc. Further, implementations described herein use rigorous, computerized processes to perform previously unexecuted tasks. For example, there currently exists no technology that provides centralized dynamic network bandwidth allocation and management.
As noted above, FIGS. 1A-1I are provided as examples only. Other examples may be different than that described in FIGS. 1A-1I.
FIG. 2 is an illustration of an
The controller platform 220 includes one or more devices that provide centralized dynamic network bandwidth allocation and management. In some implementations, the controller platform 220 may be designed to be modular such that certain software components may be swapped in and out depending on particular needs. In this way, the controller platform 220 may be easily and/or quickly reconfigured for different uses. In some implementations, the controller platform 220 may receive information from one or
In some implementations, as shown, the controller platform 220 may be hosted in a cloud computing environment 222. Note that although implementations described herein describe the controller platform 220 as being hosted in the cloud computing environment 222, in some implementations, the controller platform 220 may not be cloud-based (i.e., may be implemented outside of the cloud computing environment) or may be partially cloud-based.
The cloud computing environment 222 includes the environment of the host controller platform 220. The cloud computing environment 222 may provide computing, software, data access, storage, etc. services that do not require end users to know the physical location and configuration of the systems and/or devices hosting the controller platform 220. As shown, the cloud computing environment 22 may include a set of computing resources 224 (collectively referred to as "computing
As further shown in FIG. 2, the
Applications 224-1 include one or more software applications that may be provided to
Virtual machine 224-2 comprises a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. The virtual machine 224-2 may be a system virtual machine or a process virtual machine depending on the usage and extent to which the virtual machine 224-2 corresponds to any real machine. The system virtual machine may provide a complete system platform, supporting the execution of a complete operating system ("OS"). The process virtual machine may execute a single program and may support a single process. In some implementations, the virtual machine 224-2 may execute on behalf of a user (e.g., a user of the
Virtualized storage 224-3 includes one or more storage systems and/or one or more devices that use virtualization techniques among the devices of storage systems or computing
The hypervisor 224-4 may provide hardware virtualization techniques that allow multiple operating systems (e.g., "guest operating systems") to be executed on a host computer at the same time, such as the
The
The number and management of the devices and networks shown in fig. 2 are provided as an example. Indeed, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or devices and/or networks managed in a different manner than shown in FIG. 2. Further, two or more of the devices shown in fig. 2 may be implemented within a single device, or a single device shown in fig. 2 may be implemented as multiple, distributed devices. Additionally or alternatively, a set of devices (e.g., one or more devices) of
Fig. 3 is an illustration of example components of a
The
The software instructions may be read into
The number and management of components shown in FIG. 3 are provided as an example. In fact,
Fig. 4 is a flow diagram of an example process 400 for providing centralized allocation and management of dynamic network bandwidth. In some implementations, one or more of the process blocks of fig. 4 may be executed by a controller platform (e.g., controller platform 220). In some implementations, one or more of the process blocks of fig. 4 may be performed by another device or a group of devices separate from or including the controller platform, such as an endpoint device (e.g., endpoint device 210) and/or a network device (e.g., network device 240).
As shown in fig. 4, process 400 may include receiving topology data and path data associated with a network, wherein the network includes a plurality of network devices interconnected by links (block 410). For example, in conjunction with the description of fig. 1A-3 above, a controller platform (e.g., using
As further shown in fig. 4, process 400 may include determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data (block 420). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 4, process 400 may include ordering the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate an ordered list of the plurality of new paths (block 430). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 4, process 400 may include selecting information identifying a first new path from an ordered list of a plurality of new paths, wherein the first new path includes a first planned bandwidth of the plurality of planned bandwidths (block 440). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 4, process 400 may include determining whether the first new path can be provided via a single route through the network based on the first projected bandwidth (block 450). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 4, process 400 may include identifying two or more routes through the network for the first new path when the first new path cannot be provided via a single route through the network (block 460). For example, in conjunction with the description of fig. 1A-3 above, when the first new path cannot be provided via a single route through the network, the controller platform (e.g., using the
As further shown in fig. 4, process 400 may include causing the first planned bandwidth to be reserved, for the first new path, by two or more network devices of the plurality of network devices for two or more routes through the network (block 470). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
Process 400 may include additional implementations such as any single implementation or any combination of implementations described below and/or implementations related to one or more other processes described elsewhere herein.
In some implementations, when the first new path is capable of being provided via a single route through the network, the controller platform may cause the first projected bandwidth to be reserved for the first new path by two or more network devices of the plurality of network devices through the network.
In some implementations, when the first new path can be provided via a single route through the network, the controller platform may select information identifying a second new path from an ordered list of a plurality of new paths. The second new path may include a second planned bandwidth of the plurality of planned bandwidths, and the second planned bandwidth may be less than the first planned bandwidth. In some implementations, the controller platform may determine whether the second new path can be provided via another single route through the network based on the second planned bandwidth, may identify two or more additional routes through the network for the second new path when the second new path cannot be provided via another single route through the network, and may cause the second planned bandwidth to be reserved, for the second new path, by two or more network devices of the plurality of network devices for the two or more additional routes through the network.
In some implementations, when the first new path is capable of being provided via a single route through the network, the controller platform may select information identifying each remaining new path from an ordered list of a plurality of new paths, wherein each remaining new path may include a corresponding planned bandwidth of the plurality of planned bandwidths. The controller platform may cause the corresponding planned bandwidth to be reserved by two or more of the plurality of network devices for each remaining new path.
In some implementations, the topology data may include data identifying: data of one or more of the plurality of network devices, links interconnecting the plurality of network devices, and/or utilization of the plurality of network devices. In some implementations, the path data may include data identifying one or more of: one or more paths through the network provided by the plurality of network devices, a source of the path through the network, a destination of the path through the network, and/or a utilization of the path through the network.
Although fig. 4 shows example blocks of process 400, in some implementations, process 400 may include additional blocks, fewer blocks, different blocks, or blocks managed in a different manner than described in fig. 4. Additionally or alternatively, two or more blocks of process 400 may be performed in parallel.
Fig. 5 is a flow diagram of an
As shown in fig. 5,
As further shown in fig. 5,
As further shown in fig. 5,
As further shown in fig. 5,
As further shown in fig. 5,
As further shown in fig. 5,
As further shown in fig. 5,
In some implementations, when determining whether the first new path can be provided via a single route through the network, the controller platform may determine whether the first new path can be provided via a single route through the network based on Constrained Shortest Path First (CSPF) constraints. In some implementations, the controller platform may receive information indicating a time period, may receive topology data and path data associated with the network relating to a beginning of the time period, and may determine a plurality of projected bandwidths for a plurality of new paths through the network relating to an end of the time period.
In some implementations, the controller platform may receive information indicating a time period and may aggregate utilization of paths through the network over the time period to determine the total bandwidth. The sum of the plurality of projected bandwidths for the plurality of new paths through the network may be substantially equal to the total bandwidth. In some implementations, the controller platform may receive attributes for a plurality of new paths through the network and determine a plurality of projected bandwidths for the plurality of new paths through the network based on the attributes for the plurality of new paths through the network.
In some implementations, the controller platform may receive thresholds associated with a plurality of new paths through the network and may determine whether the first new path can be provided via a single route through the network based on the bandwidth thresholds. In some implementations, when the first new path cannot be provided via a single route through the network, the controller platform may identify two or more routes through the network for the first new path and may cause the first projected bandwidth to be reserved by two or more network devices of the plurality of network devices for the two or more routes through the network for the first new path.
Although fig. 5 shows example blocks of
Fig. 6 is a flow diagram of an example process 600 that provides centralized dynamic network bandwidth allocation and management. In some implementations, one or more of the process blocks of fig. 6 may be executed by a controller platform (e.g., controller platform 220). In some implementations, one or more of the process blocks of fig. 6 may be performed by another device or a group of devices separate from or including the controller platform, such as an endpoint device (e.g., endpoint device 210) and/or a network device (e.g., network device 240).
As shown in fig. 6, process 600 may include receiving topology data and path data associated with a network, wherein the network includes a plurality of network devices interconnected by links (block 610). For example, in conjunction with the description of fig. 1A-3 above, a controller platform (e.g., using
As further shown in fig. 6, process 600 may include determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data (block 620). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 6, process 600 may include ordering the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate an ordered list of the plurality of new paths (block 630). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 6, process 600 may include selecting information identifying each of the plurality of new paths from the ordered list of the plurality of new paths based on the rankings associated with the plurality of new paths (block 640). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 6, process 600 may include determining whether each of a plurality of new paths can be provided via a single route through the network or via two or more routes through the network based on the plurality of projected bandwidths (block 650). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
As further shown in fig. 6, process 600 may include causing a plurality of projected bandwidths to be reserved by a plurality of network devices for a plurality of new paths (block 660). For example, in conjunction with the description of fig. 1A-3 above, the controller platform (e.g., using the
Process 600 may include additional implementations such as any single implementation or any combination of implementations described below and/or implementations related to one or more other processes described elsewhere herein.
In some implementations, the topology data can include data identifying one or more of: one or more of the plurality of network devices, a link interconnecting the plurality of network devices, and/or a utilization of the plurality of network devices. In some implementations, the path data may include data identifying one or more of: one or more paths through the network provided by the plurality of network devices, a source of the path through the network, a destination of the path through the network, and/or a utilization of the path through the network.
In some implementations, the controller platform may determine whether each of the plurality of new paths can be provided via a single route through the network or via two or more routes through the network based on a Constrained Shortest Path First (CSPF) contract.
In some implementations, the controller platform may receive information indicating a time period, may receive topology data and path data associated with the network related to a beginning of the time period, and may determine a plurality of projected bandwidths for a plurality of new paths through the network related to an end of the time period. In some implementations, the controller platform may receive attributes for a plurality of new paths through the network and determine a plurality of projected bandwidths for the plurality of new paths through the network based on the attributes for the plurality of new paths through the network.
Although fig. 6 shows example blocks of the process 600, in some implementations, the process 600 may include additional blocks, fewer blocks, different blocks, or blocks managed in a different manner than depicted in fig. 6. Additionally or alternatively, two or more blocks of process 400 may be performed in parallel.
The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
The term "component" as used herein is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software.
It is to be understood that the systems and/or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code for implementing the systems and/or methods is not limited to these implementations. Thus, the operations and/or acts of the systems and/or methods described herein are not described with reference to specific software code, it being understood that software and hardware may be designed to implement the systems and/or methods based on the description herein.
Even though particular combinations of features are emphasized in the claims and/or disclosed in the specification, these combinations are not intended to limit the various implementations of the disclosure. In fact, many of these features may be combined in ways not explicitly emphasized in the claims and/or specification. Even though each dependent claim listed below may depend directly on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the set of claims.
No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. In addition, the articles "a" and "an" as used herein are intended to include one or more items, and may be used interchangeably with "one or more". Further, the term "group" as used herein is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with "one or more. Where only one item is intended, the phrase "only one" or the like is used. Furthermore, as used herein, the terms "having," "possessing," or similar terms are intended to be open-ended terms. Further, unless expressly emphasized, the phrase "based on" is intended to mean "based, at least in part, on.
Clause 1. a method, comprising:
by receiving topology data and path data associated with a network,
wherein the network comprises a plurality of network devices interconnected by links;
determining, by the device, a plurality of projected bandwidths for the plurality of new paths through the network based on the topology data and the path data;
ranking, by the appliance, the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths;
selecting, by the appliance, information identifying a first new path from the ordered list of new paths,
wherein the first new path comprises a first planned bandwidth of the plurality of planned bandwidths;
determining, by the device, based on the first planned bandwidth, whether the first new path can be provided via a single route through the network;
identifying, by the device, two or more routes through the network for the first new path when the first new path cannot be provided via the single route through the network; and
the first planned bandwidth is reserved, by the device, for the first new path by two or more network devices of the plurality of network devices for two or more routes through the network.
Clause 2. the method according to clause 1, further comprising:
when the first new path is capable of being provided via a single route through the network, the first planned bandwidth is caused to be reserved for the first path by two or more of the plurality of network devices for the single route through the network.
Clause 3. the method according to clause 1, further comprising:
when a first new path can be provided via a single route through the network, information identifying a second new path is selected from an ordered list of a plurality of new paths,
wherein the second new path includes a second planned bandwidth of the plurality of planned bandwidths, an
Wherein the second projected bandwidth is less than the first projected bandwidth.
Clause 4. the method according to clause 3, further comprising:
determining, based on the second planned bandwidth, whether the second new path can be provided via another single route through the network;
identifying two or more additional routes through the network for the second new path when the second new path cannot be provided via another single route through the network; and
such that the second planned bandwidth is reserved, for the second new path, by two or more network devices of the plurality of network devices for another two or more routes through the network.
Clause 5. the method according to clause 1, further comprising:
when the first new path is capable of being provided via a single route through the network, information identifying each remaining new path is selected from an ordered list of a plurality of new paths,
wherein each remaining new path includes a corresponding projected bandwidth of the plurality of projected bandwidths; and
such that the corresponding planned bandwidth is reserved by two or more of the plurality of network devices for each remaining new path.
Clause 6. the method of clause 1, wherein the topology data includes data identifying one or more of:
a plurality of network devices, each of which is associated with a network device,
a link interconnecting a plurality of network devices, or
Utilization of a plurality of network devices.
Clause 7. the method of clause 1, wherein the path data comprises data identifying one or more of:
the path through the network provided by the plurality of network devices,
the source of the path through the network,
the destination of a path through the network, or
Utilization of a path through the network.
Clause 8. an apparatus, comprising:
one or more memories; and
one or more processors, the one or more processors communicatively coupled with the one or more memories, to:
topology data associated with a network is received,
wherein the network comprises a plurality of network devices interconnected by links, an
Wherein the topology data includes data identifying one or more of:
a plurality of network devices, each of which is associated with a network device,
a link interconnecting a plurality of network devices, or
Utilization of a plurality of network devices.
Receiving path data associated with a network,
wherein the path data comprises data identifying one or more of:
the path through the network provided by the plurality of network devices,
the source of the path through the network,
the destination of a path through the network, or
Utilization of a path through the network.
Determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data;
ranking the plurality of new paths based on the plurality of projected bandwidths for the plurality of new paths to generate a ranked list of the plurality of new paths;
selecting information identifying a first new path from an ordered list of a plurality of new paths,
wherein the first new path comprises a first planned bandwidth of the plurality of planned bandwidths;
determining, based on the first projected bandwidth, whether the first new path can be provided via a single route through the network;
when the first new path is capable of being provided via a single route through the network, the first planned bandwidth is caused to be reserved for the first new path by two or more of the plurality of network devices for the single route through the network.
Clause 9. the apparatus of clause 8, wherein when determining whether the first new path can be provided via a single route through the network, the one or more processors are to:
determining whether the first new path can be provided via a single route through the network based on a Constrained Shortest Path First (CSPF) constraint.
Clause 10. the apparatus of clause 8, wherein the one or more processors are further to:
information is received that indicates a time period during which,
wherein upon receiving topology data and path data associated with the network, the one or more processors are to:
receiving topology data and path data associated with the network relating to the start of the time period, and
wherein when determining a plurality of projected bandwidths through the network for a plurality of new paths, the one or more processors are to:
a plurality of projected bandwidths for a plurality of new paths through the network relating to the end of the time period is determined.
Clause 11. the apparatus of clause 8, wherein the one or more processors are further to:
receiving information indicating a time period; and is
Aggregate utilization of paths through the network over a period of time to determine a total bandwidth,
wherein the total bandwidth is based on a summation of a plurality of projected bandwidths for a plurality of new paths through the network.
Clause 12. the apparatus of clause 8, wherein the one or more processors are further to:
attributes for a plurality of new paths through the network are received,
wherein when determining a plurality of projected bandwidths through the network for a plurality of new paths, the one or more processors are to:
a plurality of projected bandwidths for the plurality of new paths through the network is determined based on the attributes for the plurality of new paths through the network.
Clause 13. the apparatus of clause 8, wherein the one or more processors are further to:
receiving bandwidth thresholds associated with a plurality of new paths through the network,
wherein when determining whether the first new path can be provided via a single route through the network, the one or more processors are to:
based on the bandwidth threshold, it is determined whether the first new path can be provided via a single route through the network.
Clause 14. the apparatus of clause 8, wherein the one or more processors are further to:
identifying two or more routes through the network for the first new path when the first new path cannot be provided via a single route through the network; and is
Such that the first planned bandwidth is reserved for the first new path by two or more network devices of the plurality of network devices that are traversing the network.
Clause 15. a non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
receiving topology data and path data associated with a network,
wherein the network comprises a plurality of network devices interconnected by links;
determining a plurality of projected bandwidths for a plurality of new paths through the network based on the topology data and the path data;
ranking the plurality of new paths based on the plurality of projected bandwidths of the plurality of new paths to generate a ranked list of the plurality of new paths;
selecting information identifying each of the plurality of new paths from the ordered list of the plurality of new paths based on the rankings associated with the plurality of new paths,
determining, based on the plurality of projected bandwidths, that each new path of the plurality of paths can be provided via a single route through the network or via two or more routes through the network;
such that a plurality of planned bandwidths is reserved by the plurality of network devices for the plurality of new paths.
Clause 16. the non-transitory computer-readable medium according to clause 15, wherein the topology data includes data identifying one or more of:
a plurality of network devices, each of which is associated with a network device,
a link interconnecting a plurality of network devices, or
Utilization of a plurality of network devices.
Clause 17. the non-transitory computer-readable medium according to clause 15, wherein the path data includes data identifying one or more of:
the path through the network provided by the plurality of network devices,
the source of the path through the network,
the destination of a path through the network, or
Utilization of a path through the network.
Clause 18. the non-transitory computer-readable medium of clause 15, wherein the one or more instructions that cause the one or more processors to determine that each of the plurality of new paths can be provided via a single route through the network or via two or more routes through the network cause the one or more processors to:
determining, based on a Constrained Shortest Path First (CSPF) constraint, that each of a plurality of new paths can be provided via a single route through the network or via two or more routes through the network.
Clause 19. the non-transitory computer-readable medium of clause 15, wherein the instructions further comprise:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
information is received that indicates a time period during which,
one or more instructions, wherein the one or more processors are caused to receive topology data and path data associated with a network, the one or more processors are caused to:
receiving topology data and path data associated with the network relating to the start of the time period, an
Wherein the one or more instructions that cause the one or more processors to determine a plurality of projected bandwidths for the plurality of new paths through the network cause the one or more processors to:
a plurality of projected bandwidths for a plurality of new paths through the network relating to the end of the time period is determined.
Clause 20. the non-transitory computer-readable medium of clause 15, wherein the instructions further comprise:
one or more instructions that, when executed by one or more processors, further cause the one or more processors to:
attributes for a plurality of new paths through the network are received,
wherein the one or more instructions that cause the one or more processors to determine a plurality of projected bandwidths through the network for the plurality of new paths cause the one or more processors to:
determining a pass through based on attributes for a plurality of new paths through a network
A plurality of projected bandwidths of the network for the plurality of new paths.
- 上一篇:一种医用注射器针头装配设备
- 下一篇:一种模块化交换机及网络架构