Apparatus, system and method for determining traffic load distribution associated with routing of a hierarchical forwarding information base
By identifying and computing the service load distribution of active paths in the FIB of network equipment, the problem of traditional technology being difficult to distinguish active paths from determining load distribution is solved, and optimized transportation decisions and network performance improvements are achieved.
Patent Information
- Application Number
- CN201911157910.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-25
- Filing Date
- 2019-11-22
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2040-11-23
AI Technical Summary
Traditional networking technology is difficult to distinguish between active paths and inactive paths in the network, and it is difficult to determine the distribution of business loads between active paths.
By identifying the routes installed in the FIB of the network device, multiple active paths are identified, traffic volume transmitted through these paths is calculated, load distribution of the paths is determined, and transportation decisions are made based on this.
It realizes effective identification of active paths in the network and determines load distribution, can make optimized transportation decisions, and improves the network's business engineering and load balancing capabilities.
Smart Images

Figure CN112559166B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present application relate to an apparatus, system, and method for determining a traffic load distribution associated with routing of a hierarchical forwarding information base. Background Art
[0002] Network devices (such as routers and switches) are typically used to forward traffic within a network and / or between networks. These network devices may represent and / or form the infrastructure of such a network. In some examples, these network devices may include and / or maintain a hierarchical forwarding information base (FIB), which is loaded with routes that identify and / or define various paths that can transmit traffic to different destinations within and / or between networks. Some of these paths may be active and transmit traffic at a given time. Others (e.g., alternate paths) may be inactive and not currently transmitting traffic at a given time.
[0003] Unfortunately, conventional networking techniques may not be able to easily distinguish between active and inactive paths in a network. Furthermore, conventional networking techniques may not be able to easily determine traffic load distribution between active paths in a network. Therefore, the present disclosure identifies and addresses the need for additional and improved apparatus, systems, and methods for determining traffic load distribution associated with routing of a hierarchical FIB. Summary of the invention
[0004] As will be described in more detail below, the present disclosure generally relates to apparatus, systems, and methods for determining traffic load distribution associated with routes of a hierarchical FIB. In one example, a method for accomplishing such a task may include (1) identifying routes installed in a FIB of a network device included in a network, (2) identifying multiple active paths from the network device to a destination device of the routes installed in the FIB, (3) determining a load distribution of the multiple active paths by calculating multiple traffic loads representing traffic volumes flowing from the network device to the destination device via the multiple active paths, and (4) making a traffic decision associated with the multiple active paths based at least in part on the load distribution of the multiple active paths.
[0005] Similarly, a system implementing the above method may include a physical processor configured to execute various modules stored in a memory. In one example, the system may include and / or execute (1) an identification module that (A) identifies routes installed in a FIB of a network device included in the network, and (B) identifies multiple active paths from the network device to a destination device of the route installed in the FIB, (2) a calculation module that calculates multiple traffic loads representing traffic flowing from the network device to the destination device via the multiple active paths, (3) a determination module that (A) determines a load distribution of the multiple active paths by calculating multiple traffic loads representing traffic flowing from the network device to the destination device via the multiple active paths, and (B) makes a transportation decision related to the multiple active paths based at least in part on the load distribution of the multiple active paths.
[0006] Additionally or alternatively, an apparatus for implementing the above method may include at least one storage device storing the FIB. The apparatus may also include at least one physical processor communicatively coupled to the storage device. In one example, the physical processor (1) identifies routes installed in a forwarding information base of a network device included in a network, (2) identifies multiple active paths from the network device to a destination device of the routes installed in the forwarding information base, (3) determines a load distribution of the multiple active paths by calculating multiple traffic loads representing traffic volumes flowing from the network device to the destination device via the multiple active paths, and (4) makes a transportation decision related to the multiple active paths based at least in part on the load distribution of the multiple active paths.
[0007] Features from any of the above-described embodiments may be used in combination with each other according to the general principles described herein. These and other embodiments, features and advantages will be more fully understood from the following detailed description read in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The accompanying drawings illustrate several exemplary embodiments and are a part of the specification. Together with the following description, these drawings illustrate and explain various principles of the present disclosure.
[0009] Figure 1 is a block diagram of an exemplary system for determining traffic load distribution associated with routing of a hierarchical FIB;
[0010] Figure 2 is a block diagram of another exemplary system for determining traffic load distribution associated with routing of a hierarchical FIB;
[0011] Figure 3 is a flow chart of an exemplary method for determining traffic load distribution associated with routing of a hierarchical FIB;
[0012] Figure 4 is a block diagram of another exemplary system for determining traffic load distribution associated with routing of a hierarchical FIB;
[0013] Figure 5 is a diagram of an exemplary FIB record identifying traffic load distribution among multiple active paths of a network;
[0014] Figure 6 is a diagram of an exemplary abridged FIB record identifying traffic load distribution among multiple active paths of a network;
[0015] Figure 7 is a diagram of an exemplary FIB output identifying traffic load distribution among multiple active paths of a network; and
[0016] Figure 8 is a block diagram of an exemplary computing system that can be implemented and / or used in conjunction with one or more of the embodiments described and / or illustrated herein.
[0017] Throughout the drawings, the same reference numerals and descriptions represent similar but not necessarily identical elements. Although the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the specific forms disclosed. Instead, the present disclosure encompasses all modifications, equivalents, and alternatives that fall within the scope of the appended claims. DETAILED DESCRIPTION
[0018] The present disclosure describes various devices, systems and methods for determining traffic load distribution associated with routing of a hierarchical FIB. As will be explained in more detail below, embodiments of the present disclosure may be able to identify and / or map active paths within a network based at least in part on information maintained and / or stored in the FIB. Additionally or alternatively, embodiments of the present disclosure may be able to determine and / or calculate traffic load distribution between active paths within a network. By doing so, these embodiments may enable network devices to make transportation decisions (e.g., traffic engineering and / or load balancing decisions) associated with active paths within the network.
[0019] The following will refer to Figure 1 , 2 4 and 5 provide a detailed description of exemplary apparatus, systems, and corresponding implementations for determining traffic load distribution associated with routing of a hierarchical FIB. Figure 5 and 6 A detailed description of an exemplary FIB record and / or representation is provided. Figure 7 Provides a detailed description of an exemplary FIB output. Figure 3A detailed description of a computer-implemented method for determining traffic load distribution associated with routing of a hierarchical FIB is provided. Figure 8 A detailed description of an exemplary computing system for performing these methods is provided.
[0020] Figure 1 An exemplary system 100 is shown that facilitates determining traffic load distribution associated with routing of a hierarchical FIB. Figure 1 As shown, the system 100 may include one or more modules 102 for performing one or more tasks. As will be explained in more detail below, the modules 102 may include an identification module 104, a calculation module 106, a determination module 108, a recording module 110, and a transportation module 112. Although shown as separate elements, Figure 1 One or more of modules 102 in may represent portions of a single module, application, and / or operating system.
[0021] In certain embodiments, Figure 1 One or more of the modules 102 in the example may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, and as will be described in more detail below, one or more of the modules 102 may represent software applications or programs stored on one or more computing devices (such as Figure 2 Modules on the devices shown (e.g., computing device 202, computing device 208, network device 206, nodes 210(1)-(N) and / or nodes 212(1)-(N))) and configured to run on such one or more computing devices. Figure 1 One or more of the modules 102 in may also represent all or part of one or more special-purpose computers configured to perform one or more tasks.
[0022] like Figure 1 As shown, the exemplary system 100 may also include one or more memory devices, such as memory 140. Memory 140 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, memory 140 may store, load, and / or maintain one or more of modules 102. Examples of memory 140 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), optical drive, cache, variations or combinations of one or more of the above, and / or any other suitable memory.
[0023] like Figure 1As shown, the exemplary system 100 may also include one or more physical processors, such as physical processor 130. Physical processor 130 generally represents a hardware-implemented processing device of any type or form capable of interpreting and / or executing computer-readable instructions. In one example, physical processor 130 may access and / or modify one or more of modules 102 stored in memory 140. Additionally or alternatively, physical processor 130 may execute one or more of modules 102 to facilitate determining a traffic load distribution associated with routing of a hierarchical FIB. Examples of physical processor 130 include, but are not limited to, a central processing unit (CPU), a microprocessor, a microcontroller, a field programmable gate array (FPGA) implementing a soft-core processor, an application-specific integrated circuit (ASIC), a portion of one or more of the above, one or more of the same variants or combinations of the above, and / or any other suitable physical processor.
[0024] like Figure 1 As shown, exemplary system 100 may also include one or more FIBs, such as FIB 120. In some examples, FIB 120 may include and / or represent an access interface included on a gateway device and / or incorporated into a gateway device. In some examples, FIB 120 may include and / or represent a forwarding table, a forwarding plane, and / or a database for storing networking objects that facilitate forwarding services within a network. In one example, FIB 120 may be stored, maintained, and / or located in kernel space on a physical computing device. Additionally or alternatively, FIB 120 may be incorporated into, assigned to, and / or represent a portion of a virtual router. Therefore, FIB 120 may be hosted by a physical device and / or assigned to a virtual router for use by network consumers and / or subscribers.
[0025] like Figure 1As shown, FIB 120 may include, store and / or maintain one or more routes, such as routes 122(1)-(N). In some examples, routes 122(1)-(N) may each correspond to and / or represent data and / or information used to identify or refer to a portion of a network, a network device and / or a network interface. In one example, routes 122(1)-(N) may each identify and / or represent a path capable of transmitting traffic within a network and / or between networks. Additionally or alternatively, routes 122(1)-(N) may include and / or contain data representations and / or references to one or more physical devices or interfaces (such as "ifd"), logical devices or interfaces (such as "ifl"), next hops and / or path segments. Examples of routes 122(1)-(N) include, but are not limited to, Internet Protocol (IP) routing (such as IPv4 and / or IPv6 routing), Multiprotocol Label Switching (MPLS) routing, Virtual Private LAN Service (VLAN) routing, Border Gateway Protocol (BGP) routing, Open Shortest Path First (OSPF) routing, variations or combinations of one or more of the foregoing, or any other suitable routing.
[0026] An apparatus for determining a traffic load distribution associated with routing of a hierarchical FIB may include all or part of exemplary system 100. In some examples, Figure 1 The examples in can be implemented in various ways. For example, all or part of the exemplary system 100 can represent Figure 2 As shown in FIG. Figure 2 As shown, system 200 may include a network 204 that facilitates communications between computing devices 202 and 208 .
[0027] like Figure 2 As shown, network 204 may include and / or represent various network devices and / or nodes that form and / or establish communication paths and / or segments. For example, network 204 may include network device 206 that forwards traffic from computing device 202 to computing device 208 along one or more active paths 220(1)-(N). In this example, active path 220(1) may include and / or represent nodes 210(1)-(N), and active path 220(N) may include and / or represent nodes 212(1)-(N). In some embodiments, network device 206 may include and / or represent memory 140, physical processor 130, and / or FIB 120.
[0028] In some examples, and as will be described in more detail below, one or more of modules 102 may cause network device 206(1) to identify route 122(1) installed in FIB 120, (2) to identify active paths 220(1)-(N) leading from network device 206 to a destination device (e.g., computing device 208) of route 122(1) installed in FIB 120, (3) to determine a load distribution for active paths 220(1)-(N) by calculating a plurality of traffic loads representing traffic flowing from network device 206 to the destination device via active paths 220(1)-(N), and (4) to make a transportation decision related to active paths 220(1)-(N) based at least in part on the load distribution for active paths 220(1)-(N).
[0029] Network device 206, nodes 210(1)-(N), nodes 212(1)-(N), computing device 202, and computing device 208 each generally represent any type or form of physical computing device capable of reading computer-executable instructions and / or processing network traffic. Examples of network device 206, nodes 210(1)-(N), nodes 212(1)-(N), computing device 202, and computing device 208 include, but are not limited to, routers (such as provider edge routers, hub routers, branch routers, autonomous system boundary routers, and / or regional boundary routers), switches, hubs, modems, bridges, repeaters, gateways (such as broadband network gateways (BNGs)), multiplexers, network adapters, network interfaces, client devices, portable computers, tablet computers, desktop computers, servers, cellular phones, personal digital assistants (PDAs), multimedia players, embedded systems, wearable devices, gaming consoles, variations or combinations of one or more of the foregoing, and / or any other suitable gateway devices.
[0030] Network 204 generally represents any medium or architecture capable of facilitating communication or data transfer. In one example, network 204 may include computing devices 202 and 208, even if these devices are located on Figure 2204. Additionally or alternatively, network 204 may include other devices that facilitate communication between network device 206, nodes 210(1)-(N), nodes 212(1)-(N), computing device 202, and computing device 208. Network 204 may facilitate communication or data transmission using wireless and / or wired connections. Examples of network 204 include, but are not limited to, an intranet, an access network, a layer 2 network, a layer 3 network, a multi-protocol label switching (MPLS) network, an IP network, a heterogeneous network (e.g., layer 2, layer 3, IP, and / or MPLS) network, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communication (PLC), a cellular network (e.g., a global system for mobile communications (GSM) network), variations or combinations of one or more of the foregoing, and / or any other suitable network.
[0031] Figure 3 is a flow chart of an exemplary computer-implemented method 300 for determining traffic load distribution associated with routing of a hierarchical FIB. Figure 3 The steps shown may be performed by any suitable computer executable code and / or computing system, including Figure 1 System 100 in Figure 2 System 200, Figure 4 System 400, Figure 8 In one example, the system 800 of , and / or any variation or combination of any one or more of the above. Figure 3 Each step shown may represent an algorithm whose structure includes and / or is represented by multiple sub-steps, examples of which are provided in more detail below.
[0032] like Figure 3 As shown, at step 310, one or more systems described herein may identify routes installed in the FIB of a network device included in the network. Figure 2 As part of network device 206 in network 204, receiving module 104 can identify route 122(1) in FIB 120. In this example, route 122(1) can identify, define, and / or correspond to one or more active paths leading from network device 206 to computing device 208 via network 204.
[0033] The systems described herein may perform step 310 in various ways and / or in various contexts. In some examples, identification module 104 may search FIB 120 for one or more routes. For example, identification module 104 may search FIB 120 for any routes leading to computing device 208. During the search, identification module 104 may identify and / or find a route 122(1) leading from network device 206 to computing device 208 via one or more active paths within network 204.
[0034] return Figure 3 At step 320, one or more systems described herein may identify multiple active paths from the network device to the destination device of the route installed in the FIB. Figure 2 As part of network device 206 in FIG. 1 , identification module 104 can identify active paths 220(1)-(N) as leading from network device 206 to computing device 208. In this example, active paths 220(1)-(N) can each include and / or represent a series of nodes and / or links that are currently transmitting traffic from network device 206 to computing device 208.
[0035] As will be described in greater detail below, network 204 may also include one or more inactive (e.g., backup) paths leading from network device 206 to computing device 208. In some embodiments, such inactive paths may not currently be transmitting traffic from network device 206 to computing device 208. In such embodiments, the inactive paths may be configured to support and / or backup active paths 220(1)-(N) in the event of a failure and / or malfunction.
[0036] The systems described herein may perform step 320 in various ways and / or in various contexts. In some examples, identification module 104 may search FIB 120 for information identifying each node included in active path 220(1)-(N). During the search, identification module 104 may locate and / or search for information identifying nodes 210(1)-(N) as part of active path 220(1). Additionally or alternatively, during the search, identification module 104 may locate and / or search for information identifying nodes 212(1)-(N) as part of active path 220(N).
[0037] As a specific example, identification module 104 may search FIB 120 by inputting "show routing table [destination tag] extension" as a command and / or parameter into FIB 120, a corresponding interface, and / or a corresponding search portal. In this example, FIB 120, a corresponding interface, and / or a corresponding search portal may return Figure 7 The FIB output in is 700. Figure 7 As shown, FIB output 700 may include and / or contain information regarding one or more active paths from network device 206 to a destination device associated with tag “478239”.
[0038] In some examples, identification module 104 may search FIB 120 by inputting commands and / or parameters that identify specific output fields, a "detailed" keyword, and / or an "extended" keyword. Examples of such commands and / or parameters include, but are not limited to, "show routing forwarding table," "show routing forwarding table details," "show routing forwarding table destination extension," "show routing forwarding table extension," "show routing forwarding table series mpls," "show routing forwarding table series mpls ccc," "show routing forwarding table series vpls," "show routing forwarding table series vpls extension," "show routing forwarding table default table," "show routing forwarding table table logical system name / routing instance name," "show routing forwarding table vpn," "show pfe route ip prefix details," "show pfe route destination label," combinations or variations of one or more of the foregoing, and / or any other suitable commands and / or parameters.
[0039] Figure 4 An exemplary system 400 is shown including various paths emanating from a network device 206. Figure 4 As shown, a path leading from network node 206 may include and / or represent nodes 210(1), 210(2), 210(3), 210(4), and / or 210(5). In one example, one or more of nodes 210(1)-(5) may form, establish, and / or represent active path 220(1). Figure 4 Another path derived from network node 206 in may include and / or represent nodes 212(1), 212(2), 212(3), 212(4), and / or 212(5). In one example, one or more of nodes 212(1)-(5) may form, establish, and / or represent active path 220(N).
[0040] like Figure 4 As shown, system 400 may also include backup paths 420 emanating from network nodes 206. In one example, backup paths 420 may include and / or represent nodes 410(1)-(N) for facilitating and / or providing failover protection in the event that one or more of active paths 220(1)-(N) experience a failure and / or malfunction. In this case, backup paths 420 may be activated and then transmit traffic to computing device 208( Figure 4 At least a portion of the business (not shown).
[0041] Thus, identification module 104 may discover and / or search within FIB 120 for nodes that identify one or more of nodes 210(1)-210(5) as Figure 4 Similarly, identification module 104 can discover and / or search within FIB 120 for information identifying one or more of nodes 212(1)-212(5) as a Figure 4 Additionally or alternatively, identification module 104 may discover and / or search within FIB 120 for nodes 410(1)-410(N) identified as a portion of active path 220(N). Figure 4 Information of a portion of the backup path 420.
[0042] In some examples, identification module 104 may access one or more unilist entries and / or records in FIB 120 that identify and / or describe a list of next hops included in active paths 220(1)-(N). In such examples, identification module 104 may then identify and / or determine the next hops included in active paths 220(1)-(N) by analyzing the unilist entries and / or records accessed in FIB 120. Additionally or alternatively, the unilist entries and / or records may identify each node included in active paths 220(1)-(N). Thus, identification module 104 and / or determination module 108 may determine each node included in active paths 220(1)-(N) by analyzing the unilist entries and / or records accessed in FIB 120.
[0043] In some examples, logging module 110 may generate a representation of the load distribution among active paths 220 ( 1 )-(N) based at least in part on information found within FIB 120 .
[0044] Figure 5 An exemplary representation 500 of load distribution between active paths 220(1)-(N) leading from network device 206 to computing device 208 is shown. In some examples, representation 500 may correspond to and / or represent a load distribution within FIB 120. Figure 4 The load is distributed among the systems 400. For example, Figure 5 The unicast next hops 510, 520, and 540 in the example may correspond to and / or represent Figure 4 Nodes 210(1), 212(1), and 410(1) in . Similarly, Figure 5 The single-list next hop 514 in the table may correspond to and / or represent Figure 4 Nodes 210(3) and 212(3) in .
[0045] In one example, representation 500 may be embodied, defined, and / or described in a record and / or entry of FIB 120. Figure 5 As shown, representation 500 may include and / or identify route 502 of FIB 120. In one example, route 502 may identify single-list next hop 504 of network device 206. In this example, single-list next hop 504 may represent and / or be representative of a branch to unicast next hop 510 of path 220(1) or unicast next hop 520 of path 220(N). Thus, traffic sent to single-list next hop 504 may traverse and / or travel to unicast next hop 510 or unicast next hop 520.
[0046] Continuing with this example, route 502 may also identify an indirect next hop 512 following unicast next hop 510 along active path 220(1). In this example, route 502 may also identify a single-list next hop 514 following indirect next hop 512 along active path 220(1). Figure 5 As shown, single-list next hop 514 can represent and / or be representative of a branch to unicast next hop 516 or unicast next hop 518. Thus, traffic sent to single-list next hop 514 can traverse and / or travel to unicast next hop 516 or unicast next hop 518.
[0047] Continuing with this example, route 502 may additionally identify an indirect next hop 522 following unicast next hop 520 along active path 220(N). In this example, route 502 may also identify a single-cast next hop 524 following indirect next hop 522 along active path 220(1). Figure 5 As shown, single-list next hop 524 can represent and / or be representative of a branch to unicast next hop 526 or unicast next hop 528. Thus, traffic sent to single-list next hop 524 can traverse and / or travel to unicast next hop 526 or unicast next hop 528.
[0048] In some examples, each of unicast next hops 516, 518, 526, and 528 may lead to computing device 208. In other words, each of unicast next hops 516, 518, 526, and 528 may have the capacity and / or capability to forward traffic toward computing device 208. Thus, traffic originating from network device 206 and flowing to computing device 208 may be distributed and / or load balanced among next hops 516, 518, 526, and 528.
[0049] In some examples, representation 500 may also include and / or identify one or more additional paths from network device 206 to the computing device. Figure 5As shown, representation 500 may include and / or identify route 530 of FIB 120. In one example, route 530 may identify a composite next hop 532 of network device 206. In this example, route 530 may also identify an indirect next hop 522 following composite next hop 532 along active path 220(N).
[0050] Continuing with this example, route 530 may also identify a single-list next hop 524 following indirect next hop 522 along active path 220(N). Figure 5 As shown, single-list next hop 524 can represent and / or be representative of a branch to unicast next hop 526 or unicast next hop 528. Thus, traffic sent to single-list next hop 524 can traverse and / or travel to unicast next hop 526 or unicast next hop 528.
[0051] return Figure 3 At step 330, one or more systems described herein may determine a load distribution of the plurality of active paths by calculating a plurality of traffic loads representing the traffic volume flowing from the network device to the destination device via the plurality of active paths. Figure 2 As a portion of the network device 206 in FIG. 2 , the calculation module 106 can calculate the traffic load flowing from the network device 206 to the computing device 208 via the active paths 220(1)-(N). In this example, the traffic load can represent the amount of traffic transmitted by the active paths 220(1)-(N).
[0052] In addition, as Figure 2 As part of the network device 206 in the computing device 208, the determination module 108 can determine the load distribution of the active paths 220(1)-(N) based at least in part on the calculated traffic load. In one example, the load distribution can include and / or represent a set of traffic loads flowing from the network device 206 to the computing device 208.
[0053] The systems described herein may perform step 330 in a variety of ways and / or in a variety of contexts. In some examples, calculation module 106 may calculate the traffic load based at least in part on weights and / or balance values associated with certain nodes included in active paths 220(1)-(N). For example, identification module 104 may access and / or obtain information identifying weight values and / or balance values for each single-list node included in active paths 220(1)-(N) from FIB 120. More specifically, identification module 104 may access and / or obtain one or more single-list items and / or records for identifying weight values and / or balance values for each single-list node included in active paths 220(1)-(N) from FIB 120. These single-list items and / or records may indicate and / or identify information associated with certain nodes included in active paths 220(1)-(N). Figure 5 The weights and / or balancing values associated with the single-column next hops 504, 514, and / or 524 in FIG.
[0054] In one example, the weight value may indicate and / or be used to distinguish active paths from inactive paths. Additionally or alternatively, the balance value may indicate and / or be used to determine how unequal cost traffic is distributed between different next hops included in the active path under unequal cost load balancing.
[0055] As a specific example, the identification module 104 may access and / or obtain Figure 5 504 in the single-list next hop. In this example, the single-list next hop 504 may indicate and / or identify weight values of 10, 10, and 20 for the unicast next hops 510, 520, and 540, respectively. Additionally or alternatively, the single-list next hop 504 may indicate and / or identify balance values of 100, 200, and 300 for the unicast next hops 510, 520, and 540, respectively.
[0056] In one example, identification module 104 may identify weight values of 10, 10, and 20 for unicast next hops 510, 520, and 540, respectively, by analyzing unicast list next hops 504. In this example, determination module 110 may compare weight values of 10 and 10 for unicast next hops 510 and 520 with weight value 20 for unicast next hop 540. Based at least in part on the comparison, determination module 110 may then determine that the weight value for unicast next hop 540 is different from the weight values for unicast next hops 510 and 520.
[0057] In one example, the lowest weight may correspond to and / or indicate any active paths and / or nodes included in these active paths. Conversely, the highest weight may correspond to and / or indicate any inactive paths and / or nodes included in these inactive paths. In this example, based at least in part on the comparison, the determination module 110 may determine that the weight values of the unicast next hops 510 and 520 are less than the weight value of the unicast next hop 540. As a result, the determination module 110 may then determine that the unicast next hop 540 is included in the inactive paths that are not currently transmitting any traffic from the network device 206 to the computing device 208. Therefore, the determination module 110 may determine that the active paths 220(1) and 220(N) are active, while the backup path 420 is inactive.
[0058] Continuing with this example, identification module 104 can identify weight values of 0 and 0 for unicast next hops 516 and 518, respectively, by analyzing unicast list next hop 514. In this example, determination module 110 can compare the weight value of 0 for unicast next hop 516 with the weight value of 0 for unicast next hop 518. Then, based at least in part on the comparison, determination module 110 can determine that the weight value for unicast next hop 516 is the same as the weight value for unicast next hop 518. As a result, determination module 110 can then determine that paths and / or segments originating from unicast next hops 516 and 518 are both active paths and are currently transmitting at least some traffic from network device 206 to computing device 208.
[0059] Furthermore, in this example, the identification module 104 can identify weight values of 60 and 20 for the unicast next hops 526 and 528, respectively, by analyzing the single-list next hop 524. In this example, the determination module 110 can compare the weight value of 60 for the unicast next hop 526 with the weight value of 20 for the unicast next hop 528. Then, based at least in part on the comparison, the determination module 110 can determine that the weight value of the unicast next hop 528 is different from the weight value of the unicast next hop 528. More specifically, based at least in part on the comparison, the determination module 110 can determine that the weight value of the unicast next hop 528 is less than the weight value of the unicast next hop 526. The determination module 110 can then determine that the unicast next hop 526 is included in an inactive path that is not currently transmitting any traffic from the network device 206 to the computing device 208.
[0060] In some examples, calculation module 106 can calculate the associated route 502 based at least in part on its corresponding balance value. Figure 4 In one example, the calculation module 106 may apply the following formula to the overall calculation weight (OCW) at a particular node within the active path:
[0061] In this example, the OCW may correspond to and / or represent a percentage and / or amount of traffic traversing and / or traveling through a certain activity path, segment, and / or node.
[0062] For example, the PTR at the single-column next hop 504 may be initialized to 100 so that the incoming PTR of each unicast next hop 510 and 520 is 100. Thus, in this example, the OCW of the unicast next hop 510 may be calculated as This means that approximately 33% of all packets forwarded from network device 206 via route 502 traverse and / or are processed by unicast next hop 510. Furthermore, in this example, the OCW of unicast next hop 520 can be calculated as This indicates that approximately 66% of all packets forwarded from network device 206 via route 502 traverse and / or are processed by unicast next hop 520 .
[0063] In some examples, calculation module 106 can calculate the associated route 502 based at least in part on its corresponding balance value. Figure 4 5. For example, the incoming PTRs of unicast next hops 516 and 518 may correspond to and / or be equal to the OCW of unicast next hop 510, which is the first node of a branch, leg, and / or segment that feeds into single-list next hop 514, where the active path splits into unicast next hops 516 and 518. Thus, in this example, the OCW of unicast next hop 516 may be calculated as This means that approximately 11% of all packets forwarded from network device 206 via route 502 traverse and / or are processed by unicast next hop 516. Additionally, in this example, the OCW of unicast next hop 518 can be calculated as This indicates that approximately 22% of all packets forwarded from network device 206 via route 502 traverse and / or are processed by unicast next hop 518 .
[0064] In some examples, the calculation module 106 can calculate the Figure 5 For example, the incoming PTR of unicast next hop 528 may correspond to and / or be equal to the OCW of unicast next hop 520, which is the first node of a branch, fork, and / or segment that feeds into single-list next hop 524, where the path splits into unicast next hops 526 and 528. However, because the path segment including unicast next hop 526 is inactive, all traffic associated with route 502 that traverses and / or is processed by unicast next hop 520 may continue to proceed toward computing device 208 via unicast next hop 528. Therefore, the OCW of unicast next hop 528 associated with route 502 may be calculated as This indicates that approximately 66% of all packets forwarded from network device 206 via route 502 traverse and / or are processed by unicast next hop 528 .
[0065] In some examples, the calculation module 106 can calculate the Figure 5For example, the PTR at single-column next hop 524 may be initialized to 100 so that the incoming PTR of unicast next hop 528 is 100. As described above, since the path segment including unicast next hop 526 is inactive, all traffic originating from network device 206 associated with route 530 may continue to proceed to computing device 208 via unicast next hop 528. Therefore, the OCW of unicast next hop 528 associated with route 530 may be calculated as This means that 100% of all packets forwarded from network device 206 via route 530 traverse and / or are processed by unicast next hop 528 .
[0066] In some examples, recording module 110 can generate representation 500 of the load distribution on system 400 and / or store it in FIB 120 for future reference. In these examples, representation 500 can indicate and / or show various weight values, balance values, and / or OCWs associated with routes 502 and / or 530.
[0067] Additionally or alternatively, the recording module 110 may generate a load distribution on the system 400. Figure 6 The abridged representation 600 in FIG. 1 and / or stored in FIB 120 for future reference. Figure 6 As shown, the abridged representation 600 may include and / or represent an abbreviated form of the representation 500. In one example, the abridged representation 600 may illustrate and / or show the route 502, the single-list next hop 504, and / or the unicast next hops 516, 518, 526. In this example, the abridged representation 600 may omit the next hops 510, 512, 514, 520, 522, 524, 526, and 540 illustrated and / or shown in the representation 500.
[0068] Additionally or alternatively, abridged representation 600 may illustrate and / or show route 530, single-list next hop 524, and / or unicast next hop 528. In this example, abridged representation 600 may also omit next hop 532, which is illustrated and / or shown in representation 500.
[0069] The abridged representation 600 can be generated in a variety of ways. For example, the identification module 104 can identify the routes 502 and 530. In this example, the identification module 104 can then identify the next hops 516, 518, and / or 528 as the final hops in the active path of the route 502. In addition, the identification module 104 can identify the single-list next hop 504 associated with the route 502 that leads to the next hop 516, 518, and / or 528 and / or feeds traffic to the next hop 516, 518, and / or 528.
[0070] Additionally or alternatively, identification module 104 can identify next hop 528 as the final hop in the active path of route 530. In this example, identification module 104 can identify a single-list next hop 524 associated with route 530 that leads to next hop 528 and / or feeds traffic to next hop 528.
[0071] Continuing with this example, the recording module 110 can generate the abridged representation 600 to illustrate and / or show the routes to the next hops 516, 518, and / or 528 via the single-listed next hop 504 and the route 530 to the next hop 528 via the single-listed next hop 524. In this example, the recording module 110 can generate the abridged representation 600 to omit the next hops 510, 512, 514, 520, 522, 524, 526, 532, and 540. Furthermore, the abridged representation 600 can indicate and / or show various OCWs associated with the routes 502 and / or 530.
[0072] return Figure 3 At step 340, one or more systems described herein may make a transportation decision associated with the plurality of active paths based at least in part on the load distribution of the plurality of active paths. Figure 2 As part of network device 206 in FIG. 1 , transport module 112 can make transport decisions related to active paths 220(1)-(N) based at least in part on the load distribution of active paths 220(1)-(N). In one example, the transport decisions can include and / or represent load balancing decisions for active paths 220(1)-(N). Additionally or alternatively, the transport decisions can include and / or represent traffic engineering decisions for active paths 220(1)-(N).
[0073] The systems described herein may perform step 340 in various manners and / or in various contexts. In some examples, determination module 108 may determine that at least a portion of the load distribution of active paths 220(1)-(N) exceeds a particular threshold. For example, determination module 108 may determine that active path 220(N) is currently transporting a disproportionately large amount of traffic associated with route 502 relative to active path 220(1). In response to this determination, transport module 112 may modify the load distribution of active paths 220(1)-(N) by increasing the amount of traffic handled by at least one of active paths 220(1)-(N) and decreasing the amount of traffic handled by at least another of active paths 220(1)-(N).
[0074] In some examples, determination module 108 may determine that a current state of the load distribution of active paths 220(1)-(N) meets a particular threshold. For example, determination module 108 may determine that active paths 220(1)-(N) are currently transporting an acceptable amount of traffic associated with route 502 relative to each other. In response to this determination, transport module 112 may maintain the load distribution of active paths 220(1)-(N) at the current state.
[0075] In some examples, the transport module 112 may be based at least in part on and / or in view of Figure 5 Additionally or alternatively, the transport module 112 may be based at least in part on and / or in view of the representation 500 in FIG. Figure 6 For example, the transport module 112 may access and / or obtain from the FIB 120 Figure 6 In this example, the transport module 112 can analyze the abridged representation 600 and then rely on Figure 6 The redactions in 600 indicate the information presented when making a transportation decision.
[0076] In some examples, transport module 112 can implement and / or execute transport decisions. For example, transport module 112 can reroute traffic from route 502 to another route given the load distribution of active paths 220(1)-(N). Additionally or alternatively, transport module 112 can redistribute traffic load between certain paths and / or segments connected by route 502.
[0077] Figure 8 is a block diagram of an exemplary computing system 800 that can be implemented and / or used in conjunction with one or more embodiments described and / or illustrated herein. In some embodiments, all or a portion of computing system 800 may execute a combination of Figure 3 One or more steps described, and / or used alone or in combination with other elements to perform the combined Figure 3 All or part of the computing system 800 may also perform any other steps, methods, or processes described and / or illustrated herein, and / or be a device for performing and / or implementing any other steps, methods, or processes described and / or illustrated herein.
[0078] The computing system 800 broadly represents any type or form of electrical load, including a single processor or multi-processor computing device or system capable of executing computer-readable instructions. Examples of the computing system 800 include, but are not limited to, a workstation, a laptop computer, a client terminal, a server, a distributed computing system, a mobile device, a network switch, a network router (e.g., a backbone router, an edge router, a core router, a mobile service router, a broadband router, etc.), a network device (e.g., a network security device, a network control device, a network timing device, an SSL VPN (Secure Sockets Layer Virtual Private Network) device, etc.), a network controller, a gateway (e.g., a service gateway, a mobile packet gateway, a multi-access gateway, a security gateway, etc.), and / or any other type or form of computing system or device.
[0079] The computing system 800 may be programmed, configured, and / or otherwise designed to comply with one or more network protocols. According to certain embodiments, the computing system 800 may be designed to work with protocols of one or more layers of the Open Systems Interconnection (OSI) reference model, such as physical layer protocols, link layer protocols, network layer protocols, transport layer protocols, session layer protocols, presentation layer protocols, and / or application layer protocols. For example, the computing system 800 may include network devices configured according to the following: Universal Serial Bus (USB) protocol, Institute of Electrical and Electronics Engineers (IEEE) 1394 protocol, Ethernet protocol, T1 protocol, Synchronous Optical Network (SONET) protocol, Synchronous Digital Hierarchy (SDH) protocol, Integrated Services Digital Network (ISDN) protocol, Asynchronous Transfer Mode (ATM) protocol, Point-to-Point Protocol (PPP), Point-to-Point Protocol Ethernet (PPPoE), Point-to-Point Protocol over ATM (PPPoA), Bluetooth protocol, IEEE 802.XX protocol, Frame Relay protocol, Token Ring protocol, Spanning Tree Protocol, and / or any other suitable protocol.
[0080] The computing system 800 may include various network and / or computing components. For example, the computing system 800 may include at least one processor 814 and a system memory 816. The processor 814 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. For example, the processor 814 may represent an application specific integrated circuit (ASIC), a system on a chip (e.g., a network processor), a hardware accelerator, a general purpose processor, and / or any other suitable processing element.
[0081] Processor 814 may process data according to one or more of the network protocols discussed above. For example, processor 814 may execute or implement a portion of a protocol stack, may process packets, may perform memory operations (e.g., queue packets for later processing), may execute end-user applications, and / or may perform any other processing tasks.
[0082] The system memory 816 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or other computer-readable instructions. Examples of system memory 816 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory device. Although not required, in some embodiments, the computing system 800 may include a volatile memory unit (e.g., system memory 816) and a non-volatile storage device (e.g., main storage device 832, as described in detail below). The system memory 816 can be implemented as a shared memory and / or distributed memory in a network device. In addition, the system memory 816 can store packets and / or other information used in network operations.
[0083] In some embodiments, the exemplary computing system 800 may include one or more components or elements in addition to the processor 814 and the system memory 816. For example, Figure 8 As shown, computing system 800 may include memory controller 818, input / output (I / O) controller 820, and communication interface 822, each of which may be interconnected via communication infrastructure 812. Communication infrastructure 812 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure 812 include, but are not limited to, communication buses (such as Serial ATA (SATA), Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI Express (PCIe), and / or any other suitable bus) and networks.
[0084] Memory controller 818 generally represents any type or form of device capable of handling memory or data or controlling communications between one or more components of computing system 800. For example, in some embodiments, memory controller 818 may control communications between processor 814, system memory 816, and I / O controller 820 via communication infrastructure 812. In some embodiments, memory controller 818 may include a direct memory access (DMA) unit that may transfer data (e.g., packets) to or from a link adapter.
[0085] I / O controller 820 generally represents any type or form of device or module capable of coordinating and / or controlling the input and output functions of a computing device. For example, in some embodiments, I / O controller 820 may control or facilitate data transfer between one or more elements of computing system 800, such as processor 814, system memory 816, communication interface 822, and storage interface 830.
[0086] The communication interface 822 broadly represents any type or form of communication device or adapter that can facilitate communication between the exemplary computing system 800 and one or more additional devices. For example, in some embodiments, the communication interface 822 can facilitate communication between the computing system 800 and a private or public network including additional computing systems. Examples of the communication interface 822 include, but are not limited to, a link adapter, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), and any other suitable interface. In at least one embodiment, the communication interface 822 can provide a direct connection to a remote server via a direct link to a network such as the Internet. The communication interface 822 can also provide such a connection indirectly through, for example, a local area network (such as an Ethernet), a personal area network, a wide area network, a private network (e.g., a virtual private network), a telephone or wired network, a cellular phone connection, a satellite data connection, or any other suitable connection.
[0087] In some embodiments, the communication interface 822 may also represent a host adapter configured to facilitate communication between the computing system 800 and one or more additional network or storage devices via an external bus or communication channel. Examples of host adapters include, but are not limited to, a small computer system interface (SCSI) host adapter, a universal serial bus (USB) host adapter, an IEEE 1394 host adapter, an advanced technology attachment (ATA), a parallel ATA (PATA), a serial ATA (SATA) and an external SATA (eSATA) host adapter, a fiber channel interface adapter, an Ethernet adapter, and the like. The communication interface 822 may also enable the computing system 800 to participate in distributed or remote computing. For example, the communication interface 822 may receive instructions from a remote device or send instructions to a remote device for execution.
[0088] like Figure 8 As shown, the exemplary computing system 800 may also include a primary storage device 832 and / or a backup storage device 834 coupled to the communication infrastructure 812 via a storage interface 830. The storage devices 832 and 834 generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, the storage devices 832 and 834 may represent a disk drive (e.g., a so-called hard disk drive), a solid-state drive, a floppy disk drive, a tape drive, an optical drive, a flash drive, etc. The storage interface 830 generally represents any type or form of interface or device for transferring data between the storage devices 832 and 834 and other components of the computing system 800.
[0089] In some embodiments, storage devices 832 and 834 can be configured to read from and / or write to a removable storage unit that is configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tapes, optical disks, flash memory devices, and the like. Storage devices 832 and 834 can also include other similar structures or devices to allow computer software, data, or other computer-readable instructions to be loaded into computer system 800. For example, storage devices 832 and 834 can be configured to read and write software, data, or other computer-readable information. Storage devices 832 and 834 can be part of computing system 800, or can be separate devices accessed through an interface system.
[0090] Many other devices or subsystems can be connected to the computing system 800. Figure 8 All components and devices shown need to be present to practice the embodiments described and / or shown herein. The devices and subsystems referenced above may also be configured differently. Figure 8 The computing system 800 may also employ any number of software, firmware, and / or hardware configurations. For example, one or more exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmission-type media (such as carrier waves) and non-transient-type media (such as magnetic storage media (e.g., hard drives and floppy disks), optical storage media (e.g., compact disks (CDs) and digital video disks (DVDs)), electronic storage media (e.g., solid-state drives and flash memory media), and other distribution systems).
[0091] Although the foregoing disclosures have set forth various embodiments using specific block diagrams, flow charts, and examples, each block diagram component, flow chart step, operation, and / or component described and / or illustrated herein may be implemented individually and / or collectively using various hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered exemplary, as many other architectures may be implemented to achieve the same functionality.
[0092] In some examples, Figure 1All or part of the system 100 in the embodiment may represent a portion of a cloud computing or network-based environment. Cloud computing and network-based environments may provide various services and applications via the Internet. These cloud computing and network-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessed through a web browser or other remote interface. The various functions described herein may also provide network switching capabilities, gateway access capabilities, network security functions, network content caching and delivery services, network control services, and / or other networking functions.
[0093] In addition, one or more modules described herein may convert data, physical devices, and / or representations of physical devices from one form to another. Additionally or alternatively, one or more modules described herein may transform a processor, volatile memory, non-volatile memory, and / or any other portion of a physical computing device from one form to another by executing on a computing device, storing data on a computing device, and / or otherwise interacting with a computing device.
[0094] The process parameters and order of the steps described and / or illustrated herein are given as examples only and may be changed as needed. For example, although the steps shown and / or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order shown or discussed. The various exemplary methods described and / or illustrated herein may also omit one or more steps described or illustrated herein, or include additional steps in addition to those disclosed.
[0095] The foregoing description has been provided to enable others skilled in the art to best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or limited to any precise form disclosed. Many modifications and variations may be made without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects as exemplary and non-restrictive. In determining the scope of the present disclosure, reference should be made to the attached claims and their equivalents.
[0096] Unless otherwise indicated, the terms "connected to" and "coupled to" (and their derivatives) used in the specification and claims should be interpreted as allowing both direct and indirect (i.e., via other elements or components) connections. In addition, the terms "a" or "an" used in the specification and claims should be understood as "at least one of". Finally, for ease of use, the terms "including" and "having" (and their derivatives) used in the specification and claims are interchangeable with the term "comprising" and have the same meaning.
Claims
1. A method comprising: identifying routes installed in forwarding information bases of network devices included in the network; Identifying a plurality of active paths from the network device to a destination device of the route installed in the forwarding information base, wherein identifying the plurality of active paths comprises: accessing in the forwarding information base a single list entry identifying a list of unicast next hops included in the plurality of active paths leading from the network device to the destination device; and identifying the unicast next hop included in the plurality of active paths based at least in part on the unicast list entry accessed in the forwarding information base; determining a load distribution of the plurality of active paths by calculating a plurality of traffic loads, the plurality of traffic loads representing traffic volumes flowing from the network device to the destination device via the plurality of active paths; and A transportation decision associated with the plurality of active routes is made based at least in part on the load distribution of the plurality of active routes.
2. The method of claim 1, wherein the transportation decision comprises at least one of the following: load balancing decisions for the plurality of active paths; and A business engineering decision is made related to the plurality of activity paths.
3. The method of claim 2, wherein making the load balancing decision comprises: determining that at least a portion of the load distribution of the plurality of active paths exceeds a particular threshold; as well as In response to determining that the portion of the load distribution exceeds the particular threshold, modifying the load distribution of the plurality of active paths by increasing the amount of traffic processed by at least one of the active paths and decreasing the amount of traffic processed by at least another of the active paths.
4. The method of claim 2, wherein making the load balancing decision comprises: determining that a current state of the load distribution of the plurality of active paths meets a specific threshold; as well as In response to determining that the load distribution meets the specific threshold, the load distribution of the plurality of active paths is maintained at the current state.
5. The method of claim 1 , wherein identifying the plurality of active paths leading from the network device to the destination device comprises: searching the forwarding information base for information identifying each node included in the plurality of active paths; during said searching, searching within said forwarding information base said information identifying each node included in said plurality of active paths; as well as A representation of the plurality of active paths is generated based at least in part on the information found within the forwarding information base.
6. The method according to claim 5, wherein: The single list entry identifies each node included in the plurality of active paths; and Wherein identifying the unicast next hop included in the plurality of active paths comprises determining each node included in the plurality of active paths based at least in part on the single-list entry accessed in the forwarding information base.
7. The method of claim 1 , wherein determining the load distribution of the plurality of active paths comprises: obtaining, from the forwarding information base, information identifying a balance value for each node included in the plurality of active paths; as well as The plurality of traffic loads are calculated based at least in part on a balance value for each node included in the plurality of active paths.
8. The method according to claim 7, wherein calculating the plurality of service loads comprises: Initializing propagation traffic ratios for the plurality of active paths; identifying a first activity path included in the plurality of activity paths; determining a balance value for a next hop of the first active path; as well as The overall calculated weight for the next hop included in the first active path is calculated by: multiplying the propagated traffic ratio for the plurality of active paths by the balance value for the next hop; as well as A product of the propagation traffic ratio and the balance value for the next hop is divided by a sum of all balance values for all next hops included in the plurality of active paths.
9. The method according to claim 8, wherein calculating the plurality of service loads comprises: identifying the overall calculated weight for the next hop included in the first active path; identifying a balance value for a subsequent hop of the first active path; as well as The overall calculation weight for the next hop included in the first active path is calculated by: multiplying the overall calculated weight for the next hop by the balance value for the subsequent hop; as well as The product of the overall calculated weight for the next hop and the balance value for the next hop is divided by the sum of all balance values for all next hops included in the plurality of active paths.
10. The method according to claim 1, wherein calculating the plurality of service loads comprises: identifying a plurality of final hops included in the plurality of active paths; as well as calculating a plurality of overall calculation weights for the plurality of final hops; The method further comprises generating an abridged representation of the load distribution, the abridged representation: identifying the route installed in the forwarding information base; identifying the plurality of overall calculation weights for the plurality of final hops; as well as At least one hop included in the plurality of active paths is omitted.
11. The method of claim 10, wherein making the transportation decision comprises making the transportation decision based at least in part on the abridged representation of the load distribution.
12. The method of claim 10, further comprising storing the truncated representation of the load distribution in the forwarding information base for future reference.
13. A system comprising: An identification module is stored in a memory, the identification module: identifying routes installed in forwarding information bases of network devices included in the network; as well as Identifying a plurality of active paths from the network device to a destination device of the route installed in the forwarding information base, wherein identifying the plurality of active paths comprises: accessing in the forwarding information base a single list entry identifying a list of unicast next hops included in the plurality of active paths leading from the network device to the destination device; and identifying the unicast next hop included in the plurality of active paths based at least in part on the unicast list entry accessed in the forwarding information base; a calculation module stored in the memory, the calculation module calculating a plurality of traffic loads, the plurality of traffic loads representing the traffic volume flowing from the network device to the destination device via the plurality of active paths; A determination module stored in a memory, the determination module: determining a load distribution of the plurality of active paths by calculating a plurality of traffic loads, the plurality of traffic loads representing traffic volumes flowing from the network device to the destination device via the plurality of active paths; and making transportation decisions associated with the plurality of active paths based at least in part on the load distributions of the plurality of active paths; and At least one physical processor is configured to execute the identification module, the calculation module, and the determination module.
14. An apparatus comprising: a storage device storing a forwarding information base including a plurality of routes from the network device to a plurality of destination devices; as well as at least one physical processor communicatively coupled to the storage device, wherein the physical processor: identifying routes installed in forwarding information bases of network devices included in the network; Identifying a plurality of active paths from the network device to a destination device of the route installed in the forwarding information base, wherein identifying the plurality of active paths comprises: accessing in the forwarding information base a single list entry identifying a list of unicast next hops included in the plurality of active paths leading from the network device to the destination device; and identifying the unicast next hop included in the plurality of active paths based at least in part on the unicast list entry accessed in the forwarding information base; determining a load distribution of the plurality of active paths by calculating a plurality of traffic loads, the plurality of traffic loads representing traffic volumes flowing from the network device to the destination device via the plurality of active paths; and A transportation decision associated with the plurality of active routes is made based at least in part on the load distribution of the plurality of active routes.
Citation Information
Patent Citations
Systems and methods for load-balancing in a data center
US20150312153A1
Method, system, and apparatus for forwarding network traffic using minimal forwarding information bases
US20170279709A1