USE OF LINK Utilization AS A LOAD METRICITY

A system that combines link utilization and congestion metrics in load balancing algorithms stabilizes network load, reducing rerouting and improving efficiency by considering actual link usage.

DE102025106960A1Pending Publication Date: 2026-03-26HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-24
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Conventional load balancing algorithms in networks rely solely on congestion metrics, leading to undesirable and costly rerouting due to rapid load spikes or drops when flows are added or removed from links, which are misclassified as zero-load based on outbound queue depth.

Method used

Implementing a system that considers both link utilization and congestion metrics to determine optimal traffic paths, using a combined load metric with finer granularity to reduce unnecessary rerouting.

Benefits of technology

This approach reduces the number of rerouting operations, enhancing network performance and efficiency by stabilizing load distribution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method, a computer system, and a computer-readable medium are provided that enable the use of connection utilization as a load metric. The system monitors the utilization of multiple connections in a network. The system generates a connection utilization load metric for each connection from among the multiple connections. The connection utilization load metric for each connection comprises the amount of data transferred over that connection in a last predetermined period, compared to the total available bandwidth of that connection. The system receives data to be transmitted over the network.The system selects a path from a set of valid paths to route the data, based on a combination of the connection utilization load metric for the respective connection and an overload metric associated with the respective connection, thus reducing the number of flows that need to be rerouted.
Need to check novelty before this filing date? Find Prior Art

Description

STATEMENT ON STATE-FUNDED RESEARCH

[0001] This invention was made with government support under contract number H98230-15-D-0022 / 0003, awarded by the Maryland Procurement Office. The government has certain rights to this invention. BACKGROUND

[0002] Path selection for data transmitted over links in a network can generally be based on a load metric, such as a congestion metric based on the depth of a network device's outbound queue. A link that exhibits bandwidth utilization (e.g., 50% of the available bandwidth), without any outbound queues being blocked and without congestion of downstream lines, may appear uncongested. However, if a new flow is added to the link, the link may suddenly appear congested. Similarly, if a flow is removed from the link, it may suddenly no longer appear congested. The rapid load spikes resulting solely from the congestion metric can cause a load balancing algorithm to perform undesirable and costly rerouting operations. BRIEF DESCRIPTION OF THE FIGURES Fig. Figure 1 shows an environment that facilitates the use of link utilization as a load metric according to one aspect of the present application. Fig. Figure 2 shows a diagram of an exemplary load metric that includes a combination of a link utilization metric and an overload metric, according to one aspect of the present application. Fig. Figure 3 shows a flowchart illustrating a procedure that facilitates the use of link utilization as a load metric according to one aspect of the present application. Fig. Figure 4 shows a computer system that facilitates the use of connection utilization as a load metric according to one aspect of the present application. Fig. Figure 5 shows a computer-readable medium that facilitates the use of link utilization as a load metric according to one aspect of the present application.

[0003] In the illustrations, identical numbers refer to the same elements of the illustration. DETAILED DESCRIPTION

[0004] Aspects of the present application provide a system that can improve load balancing by allocating traffic to paths based on actual link utilization, in addition to congestion metrics.

[0005] In general, systems and networks select traffic paths based on a load metric primarily based on congestion, such as a congestion metric based on the depth of an outbound queue of a device on the network. In conventional methods and systems, a connection that experiences no outbound queue blocking and does not cause downstream congestion can be considered a "zero-load" connection. Because conventional load metrics are based on congestion, this zero-load connection can be selected because it shows no blocking or congestion. However, the bandwidth used by this connection (the "link utilization") can be very high. This means that a large amount of data passes over the connection in a given period of time, compared to the total available bandwidth of the connection.Link utilization can indicate a percentage of the total bandwidth used and is measured as the amount of data transferred over a specific link in a given time period, compared to the total available bandwidth of the link. For example, the amount of data transferred over a link in the last five seconds might be ten gigabits (Gb), which can be expressed as two gigabits per second (Gbps). Another example: A 400 Gbps link transferring 400 Gbps in ten seconds might result in a 10% utilization rate. A high utilization rate can be anything above a predefined threshold, such as 75%.

[0006] Consequently, adding another flow to a heavily utilized link (which, however, appears as a zero-load link based solely on congestion as the load metric) can cause a rapid or abrupt increase or spike in the load, which may prompt a load balancing algorithm to reroute one or more flows. Furthermore, removing a flow from the link can cause a sudden drop in load, which may also result in the rerouting of one or more flows. Performing rerouting operations can impact performance and reduce overall efficiency.

[0007] The described aspects provide a system that can improve load balancing by allocating traffic based on actual link utilization, in addition to conventional congestion metrics. This system can reduce the number of costly rerouting operations performed by a load balancing algorithm, potentially leading to increased performance and overall efficiency. While previous zero-load links only consider the congestion associated with the link, the described aspects can consider both link utilization and congestion, resulting in finer granularity in the load metric definition. For example, current utilization measurement methods do not consider the percentage of link utilization and instead only consider a congestion metric, e.g.,An explicit Congestion Avoidance Action (ECA) value is returned as part of an acknowledgment indicating congestion at an intermediate point in a network structure. In the described aspects, the load metric can contain a range of link utilization values, where each number can represent or indicate a percentage of the link's utilization. Thus, the described aspects can employ finer granularity for the load metric by considering both the link utilization metric and the traditional congestion metric when selecting paths over which data should be routed. An example load metric based on both the link utilization metric and the congestion metric is described below. Fig. 2 described.

[0008] Fig. Figure 1 shows an environment 100 that facilitates the use of link utilization as a load metric according to one aspect of the present application. Diagram 100 can contain a network 110 of switches, which can be referred to as a "switch fabric" and can include switches 112, 114, 116, 118, and 120. Each switch can have a unique address or identifier within the switch fabric 110. Various types of endpoints, processing nodes, devices, and networks can be connected to a switch fabric. For example, a storage array 130 can be connected to the switch fabric 110 via switch 112; an HPC network (e.g., InfiniBand, Slingshot, or another high-performance network) 132 can be connected to the switch fabric 110 via switch 114; a number of end hosts, such asHosts 136 and 138 can be connected to switch fabric 110 via switch 118; and an Internet Protocol (IP) / Ethernet network 134 can be connected to switch fabric 110 via switch 120. The HPC network 132 can include multiple networked computer and storage devices running programs simultaneously to perform various complex and resource-intensive tasks. The IP / Ethernet network 134 can include physical Ethernet cabling and an IP-based application layer protocol between network devices, including communication via Transport Communication Protocol (TCP) / IP and User Datagram Protocol (UDP) packets.

[0009] In general, a switch can have edge ports and fabric ports. An edge port can be connected to a device located outside the fabric. A fabric port can be connected to another switch within the fabric via a fabric link. Typically, traffic enters the switch fabric via an inbound port of an edge switch and exits the fabric via an outbound port of another (or the same) edge switch. An ingress link can connect a network interface card (NIC) of an edge device (e.g., an HPC end host) to an ingress edge port of an edge switch. The switch fabric can then transport the traffic to an outbound edge switch, which in turn can forward the traffic to a destination edge device via another NIC.A packet can be routed within Switch Fabric 110 based on its Layer 2 address (“Fabric address”), which can be considered the equivalent of a MAC (Media Access Control) address in Ethernet. The routing path for the packet can be determined based on adaptive forwarding, for example, based on the local programming of the switches within Switch Fabric 110 and the information about load, traffic, and congestion that is available to and associated with Switch Fabric 110.

[0010] In some aspects, Switch Fabric 110 or HPC Network 132 can contain network devices (i.e., switches) capable of performing load balancing algorithms based on link utilization and congestion metrics. The switches can monitor the utilization of links within their respective networks. For example, Switch 118 can monitor the utilization of links connected to its output or input ports. Switch 118 can receive traffic that can be transmitted over valid paths, which may include Link 140, Link 142, or Link 144. Switch 118 can generate a "link utilization load metric" for each of the links 140, 142, and 144. The link utilization metric can be represented by a data set that has been transmitted over a given link (e.g., 140, 142, or 144) within a last predetermined period (e.g., 140 hours).1 second) compared to the total available bandwidth of the connection (e.g., 20 Gbps). Switch 118 can also monitor, receive, and store information related to the congestion of the monitored connections 140, 142, and 144 (also known as the "congestion metric"). The congestion metric can be based on the depth of an outbound queue associated with the respective connection (e.g., the number of packets waiting to be sent in an outbound buffer or queue associated with connection 140, 142, or 144).

[0011] Switch 118 can receive data to be transmitted over Switch Fabric 110. Switch 118 can select a path from a set of valid paths to route the data (e.g., over one of connections 140, 142, or 144) based on a combination of the link utilization metric and the congestion metric for that connection. The link utilization metric can range from a predetermined value (e.g., values ​​from 0 to 100, which are less than a predetermined value of 101), and the congestion metric can range from a predetermined value (e.g., values ​​from 101 to 200, which are greater than or equal to a predetermined value of 101). In some aspects, each metric can have a range with the same or different number of values ​​(e.g.,The values ​​of the congestion metric can range from 101 to 150. The examples of ranges used for the link utilization metric and the congestion metric are for illustrative purposes only. Other values, ranges, scales, and units can be used to specify the link utilization metric and the congestion metric and their corresponding values.

[0012] The combination of the connection utilization metric and the congestion metric can be based, for example, on summing or productting the determined values ​​for each of the connection utilization and congestion metrics. The combination can also be based on summing or productting a weighted value of the two figures; that is, the connection utilization metric is assigned a first weight and the congestion metric a second weight. Each metric or combination of metrics can be compared against predefined thresholds to determine whether data should be routed over a given connection. Examples of determining the combination of connection utilization and congestion metrics are given below with reference to... Fig. 2 described.

[0013] The described aspects can lead to improved load balancing by allocating traffic based on a load metric that considers both the utilization of the links and congestion. By taking into account the actual current (or relatively recent) utilization of the links, these aspects can help avoid rapid increases and decreases in load, which can significantly reduce the number of unnecessary and costly diversions.

[0014] Fig. Diagram 200 shows an example load metric that combines a link utilization metric and an overload metric, according to one aspect of the present application. The described aspects of the load metric with finer granularity can indicate a predefined zero-load link based on both the link utilization and the overload associated with the link. Diagram 200 shows: a range 210 for the link utilization load metric (LULM), containing values ​​from '0' to '100'; and a range 220 for the overload metric (CM), containing values ​​from '101' to '200'. Each of the ranges 210 and 220 can be delimited in 25-unit increments. A dark circle on each range can indicate a predefined threshold for that range. For example, an element 212 can indicate an initial predefined threshold for the LULM with a value of '25', which, for example,This could correspond to a utilization rate of 25%. An element 222 can specify a second predetermined threshold for CM with a value of "115", which could, for example, correspond to the depth of an output buffer indicating a certain congestion rate. Although diagram 200 shows two boundary ranges of 100 values ​​each, these ranges and values ​​are provided for illustrative purposes only. Other values ​​can also be used to identify, mark, or calculate the link utilization and congestion metrics.

[0015] Diagram 200 can display data used to determine a metric (i.e., "metric determination") and to compare current load measurements (including link utilization and overload) against benchmarks or thresholds. An element 230 presents example values ​​for a scenario. As described above, the first predetermined threshold (PDT) for the link utilization metric (LULM) can have a value of "25," and the second predetermined threshold (PDT) for the overload metric (CM) can have a value of "115." In the scenario represented by element 230, a link can have a measured LULM value of "5" and a measured CM value of "106." These values ​​can be determined by the system during operation, for example, based on information measured by a device or transmitted to a device connected to and monitoring the link.Furthermore, in the depicted scenario, a first weight X (for LULM) can be assigned the value "5" and a second weight Y (for CM) the value "2". These assigned values ​​can be configured by the system or an administrative user connected to the device or the network.

[0016] Diagram 200 also includes a Table 240, which illustrates various conditions and combinations of the LULM and the CM that determine whether a connection should be considered as a path for forwarding data (e.g., packets). Table 240 may contain rows or entries, such as entries 250-260, each specifying: a condition 242; an application / determination 244; and a result 246. The scenarios, ranges, values, thresholds, conditions, applications, and results related to Fig. The figures shown and described in Figure 2 are for illustrative purposes only. Other measurements, conditions, values, and results are also conceivable.

[0017] Entry 250 indicates a condition that the LULM is less than the first predetermined threshold. Applying this condition can determine whether 5 is less than 25. Since this determination is true, the result can display the value "TRUE".

[0018] Similarly, entry 252 specifies the condition that the LULM is less than the first predefined threshold and the CM is less than the second predefined threshold. Applying this condition can determine whether 5 is less than 25 and 106 is less than 115. Since this determination is true, the result can display the value "TRUE".

[0019] Entries 254, 256, 258, and 260 can display conditions based on a combination of the LULM and the CM. For example, entry 254 displays a condition that the sum of the LULM and CM is less than the sum of the first predefined threshold and the second predefined threshold. Applying this condition can determine whether 111 is less than 140. Since this determination is true, the result can display the value "TRUE".

[0020] Another example: Entry 256 specifies the condition that the sum of a weighted value of the LULM (i.e., LULM multiplied or scaled by a first weight) and a weighted value of the CM (i.e., CM multiplied or scaled by a second weight) is less than a threshold (“a third predetermined threshold”). The third predetermined threshold could be, for example, one of the following: a summation of the first predetermined threshold, scaled by the first weight, and the second predetermined threshold, scaled by the second weight (e.g., a value of 355, as specified by an element 262); a summation of the first predetermined threshold and the second predetermined threshold (e.g., a value of 140, as specified by an element 264 and also by an element 261 in entry 254). and another predetermined threshold (e.g. a value of 300, as specified by an element 266).

[0021] The corresponding application of the condition with these three possible values ​​for the third predetermined threshold can lead to the following results: a determination of whether 237 is less than 355 (the third predetermined threshold, as specified by element 262), which can yield a result with a value of "TRUE"; a determination of whether 237 is less than 140 (the third predetermined threshold, as specified by element 264), which can yield a result with a value of "FALSE"; and a determination of whether 237 is less than 300 (the third predetermined threshold, as specified by element 266), which can yield a result with a value of "TRUE". Entry 256 shows how the conditions and the values ​​chosen for the assigned weights, as well as the predetermined thresholds, can influence the result of the application or determination.

[0022] Another example: Entry 258 specifies the condition that the product of LULM and CM is less than the product of the first predefined threshold and the second predefined threshold. Applying this condition can determine whether 530 is less than 2875. Since this determination is true, the result can display the value "TRUE".

[0023] Another example: Entry 260 specifies the condition that the product of a weighted value of the LULM and a weighted value of the CM is less than the product of a similarly weighted value of the first predefined threshold and a similarly weighted value of the second predefined threshold. Applying this condition can determine whether 5,300 is less than 28,750. Since this determination is true, the result can display the value "TRUE".

[0024] The conditions used in entries 250-260 for scenario 230 are based on the same first and second predefined thresholds and the same first and second weights. All values ​​used in scenario 230 are provided for illustrative purposes only. As described above in relation to entry 256, in other scenarios the predefined thresholds (including the first, second, and third predefined thresholds described above) and the assigned weights may differ and may be assigned or configured by the system or an administrative user connected to the system. Furthermore, other ranges, range values, values, conditions, specifications, and outcomes are also conceivable.

[0025] If a conditional determination for a connection returns a result of "TRUE", the system can route data over that connection. In some aspects, the system can add all connections that return a result of "TRUE" to a list or pool of connections associated with a set of preferred paths over which data should be routed. Furthermore, the result 246 can be a binary value (e.g., "TRUE" or "FALSE", as shown in Table 240) or have multiple values. For example, the value for result 246 can be a range between "1" and "10" (where "1" represents the lowest combined LULM and CM value), with a predetermined threshold within that range defining whether a connection is associated with the set of preferred paths.Thus, regardless of whether it uses binary or multiple values ​​for the result 246, the system can determine a set of preferred paths and choose between them. The value for result 246 can, for example, be determined based on a difference between a measured metric and a predefined threshold.

[0026] A first connection may contain measured metrics that are closer to the predefined thresholds than the measured metrics of a second connection. For example, in scenario 230, the first predefined threshold for LULM (which is "25") and the second predefined threshold for CM (which is "115") can be represented as a tuple: "[LULM PDT, CM PDT] = [25, 155]". The first connection may contain measured metrics of "[LULM, CM] = [24, 114]", while the second connection may contain measured metrics of "[LULM, CM] = [5, 108]". The system can determine that the difference between the measured metrics of the first connection is closer to the predefined thresholds than the measured metrics of the second connection.Consequently, the first link can be assigned a result value of "9" (indicating a high LULM and CM combination), while the second link can be assigned a result value of "2" (indicating a low LULM and CM combination). The system can assign any binary value or range of values ​​to a link based on the conditions and findings, and it can add a link to the list or pool of links associated with the set of preferred paths for data transmission. The links in the list or pool can be ordered based on the value of the corresponding result, for example, ordered from lowest combined LULM and CM to highest combined LULM and CM.

[0027] Fig. Figure 3 shows a flowchart 300 illustrating a procedure that facilitates the use of link utilization as a load metric according to one aspect of the present application. During operation, the system monitors the utilization of multiple links in a network (Process 302). For example, switch 118 in Fig. 1. Monitor the utilization of links 140, 142, and 144. Other switches in Switch Fabric 110 can also monitor the utilization of connections assigned to a respective switch; for example, Switch 120 can monitor the utilization of connections 144, 146, and 148.

[0028] The system generates a link utilization metric for each connection from the plurality of connections. This link utilization metric comprises the amount of data transferred over that connection in a last predetermined period, compared to the total available bandwidth of that connection (Operation 304). The link utilization metric can be specified by the amount of data transferred over a given connection (e.g., connection 140, which originates from switch 118 in system 110). Fig. 1 is monitored) in a last predetermined period compared to the total available bandwidth of the link. For example, on a link with a data transfer rate of 100 Gbps in a current period or time interval of 10 seconds (i.e., at a rate of 10 Gbps) and a total available bandwidth for the link of 30 Gbps, the link utilization might be approximately 33% (i.e., 10 Gbps / 30 Gbps). Furthermore, the system can generate a congestion metric associated with the link. For example, switch 118 can monitor, receive, and store information about the congestion of monitored link 140. The congestion metric can be based on the depth of an outbound queue (e.g., the number of packets in the outbound queue waiting to be sent) associated with the respective monitored link (e.g., link 140).

[0029] The system receives data to be transmitted or forwarded over the network (Operation 306). The data can be received over a connection monitored by a neighboring switch. For example, Switch 120 can receive data over connection 144 from one of its neighboring switches (e.g., Switch 118, which monitors connection 144), and the data can be transmitted or forwarded by Switch 120 over the network via one of its monitored connections 146 and 148. The data can also be received from an endpoint, processing node, device, or network connected to the switch fabric or network 110 via Switch 120 (e.g., from the IP / Ethernet network 134).

[0030] The system selects a path from a set of valid paths for routing the data, based on a combination of the connection utilization metric for that connection and a congestion metric associated with that connection (Operation 308). The system can select the path based on various conditions and stipulations applied to the combination of the connection utilization and congestion metrics. Furthermore, the system can select the path based on various thresholds used for comparison, such as the first predetermined threshold for the connection utilization metric and the second predetermined threshold for the congestion metric (as in Scenario 230 of [reference missing]). Fig. 2); and the third predetermined threshold (as specified by elements 261-270 in Table 240 of Fig. 2 (specified).

[0031] The system reduces the number of flows to be rerouted by selecting the path based on the combination of the link utilization metric for each link and the congestion metric associated with that link (Operation 310). As above regarding Fig. As described in section 2, the system can return various results for each connection as a result of applying the condition to the currently measured LULM and CM and the given thresholds, including, for example: a binary result of "TRUE" or "FALSE"; and a value within a predefined range of values ​​based on a difference between the currently measured [LULM, CM] and the predetermined thresholds for [LULM PDT, CM PDT]. The system can select a connection for forwarding if the result is "TRUE", or the system can add the connection to a list or pool of possible connections associated with preferred paths over which data should be forwarded.The system can also select a connection over which data should be routed, or add the connection to a list of possible connections over which data should be routed, if the result yields a specific value within the predefined range. In a range of "1" to "10", the specific value could be, for example, any assigned or determined result value less than "3". Such a specific value could indicate that the connection is being considered as a possible route for route selection.

[0032] By selecting a connection that matches a load metric based on both connection utilization and congestion, the system can reduce the likelihood that forwarding data over a selected connection will increase the load to the point of congestion and necessitate rerouting. By reducing the number of rerouting operations, the system can achieve improved load balancing, potentially leading to increased performance and overall efficiency.

[0033] Fig. Figure 4 shows a computer system 400 that facilitates the use of link utilization as a load metric according to one aspect of the present application. The computer system 400 comprises a processor 402, a memory 404, and a storage device 406. The memory 404 may include volatile memory (e.g., random-access memory (RAM)) that serves as managed memory and can be used to store one or more memory pools. In addition, the computer system 400 may be coupled with peripheral I / O user devices 410 (e.g., a display device 411, a keyboard 412, and a pointing device 413). The storage device 406 contains a non-transitory, computer-readable storage medium and stores an operating system 416, instructions 418, and data 432. The computer system 400 may have fewer or more units or instructions than those shown in Figure 406. Fig. 4 shown.

[0034] Instructions 418 may contain instructions which, when executed by computer system 400, may cause computer system 400 to perform the procedures and / or processes described in this disclosure. In particular, instructions 418 may contain instructions 420 to monitor the utilization of a plurality of connections associated with the computer system operating on the network, as above with respect to switches 118 and 120 of Fig. 1 and process 302 of Fig. 3 described.

[0035] Instructions 418 can contain instructions 422 to generate a link utilization metric for a given connection from the plurality of connections, where the link utilization metric for the given connection comprises the amount of data transferred over the given connection in a last predetermined period compared to the total available bandwidth of the given connection. The generation of the link utilization metric is described above with reference to switch 118. Fig. 1. The metric determination of Fig. 2 and process 304 of Fig. 3 described.

[0036] Instructions 418 can contain instructions 424 to receive data to be forwarded over the network, as above in relation to the switch fabric or network 110 of Fig. 1 and process 306 of Fig. 3 described

[0037] Instructions 418 may contain instructions 426 to select from a set of valid paths a path over which the data should be routed based on a combination of the link utilization load metric for that link and a congestion metric associated with that link, as above with respect to switch 118 of network 110 in Fig. 1 and process 308 of Fig. 3 described.

[0038] Instructions 418 may contain instructions 430 to reduce the number of flows to be rerouted by selecting the path based on the combination of the link utilization load metric for the respective link and the congestion metric associated with that link, as above with respect to environment 100. Fig. 1, scenario 230 and the metric determination of Fig. 2 and process 310 of Fig. 3 described.

[0039] The 418 commands can execute more commands than those in Fig. The four shown contain them. For example, the 418 commands can be used to perform the operations described above in relation to the environment of Fig. 1. The metric determination of Fig. 2, which are shown in the flowchart of Fig. 3 processes shown and the commands of the CRM 500 in Fig. 5 included.

[0040] The data 432 may include all data required as input or generated as output by the methods, operations, communications, and / or processes described in this disclosure. In particular, the data 432 may store at least the following: data; an indicator of a connection and the connection utilization; the amount of data transferred over a connection in a period of time; a predetermined period of time; the total available bandwidth of a connection; an indicator of a set of valid paths; a selected path; a connection utilization metric (LULM); a congestion metric (CM); a combination of the LULM and the CM; a first, second, or third predetermined threshold; a range of values; a predetermined value; a summation; a product; a weight or factor; a weight assigned to the LULM or the CM;an indicator of a plurality of unordered packets, a new ordered flow or a flow to be rerouted; a number of flows; a reduced number of flows; an indicator of a path; a list or pool of connections or paths; an order or ranking of connections or paths; a ranking of a plurality of connections or paths; a condition; and a result of an application or determination.

[0041] Fig. Figure 5 shows a computer-readable medium 500 that facilitates the use of link utilization as a load metric according to one aspect of the present application. CRM 500 can be a non-transitory computer-readable medium or device that stores instructions which, when executed by a computer or processor, cause the computer or processor to perform a procedure.

[0042] CRM 500 can store instructions 510 to monitor the utilization of multiple connections associated with a device in a network, where the connection utilization metric for each connection comprises the amount of data transferred over that connection in a recent predetermined period compared to the total available bandwidth of that connection, as described above with respect to switches 118 and 120. Fig. 1 and process 302 from Fig. 3 described. CRM 500 can store instructions 512 to generate a connection utilization load metric for a given connection from the plurality of connections, where the connection utilization load metric for that connection comprises the amount of data transferred over that connection in a last predetermined period, compared to the total available bandwidth of that connection, as described above with respect to, for example, Switch 118. Fig. 1. Metric determination, conditions, applications and results from Fig. 2 and process 304 from Fig. 3 described.

[0043] CRM 500 can also store instructions 514 to receive data to be forwarded over the network, as above in relation to Switch Fabric or Network 110. Fig. 1 and Operation 306 of Fig. 3 described. CRM 500 can store instructions 516 to select a path from a set of valid paths over which the data should be routed, based on a combination of the connection utilization metric for that connection and a congestion metric associated with that connection. The selection from the paths is described above with reference to switch 118 of network 110 in Fig. 1 described, and various ways to combine the connection utilization metric and the congestion metric are above with regard to metric determination, conditions, applications and results of Fig. 2 described.

[0044] CRM 500 can store instructions 518 to reduce the number of streams to be rerouted by selecting the path based on the combination of the connection utilization load metric for the respective connection and the congestion metric associated with that connection, as described above in relation to environment 100. Fig. 1, scenario 230 and the metric determination of Fig. 2 and process 310 of Fig. 3 described.

[0045] CRM 500 can handle more instructions than those in Fig. 5 shown. For example, CRM 500 can also include instructions for performing the operations described above in relation to the environment of Fig. 1. The metric determination of Fig. 2, which are shown in the flowchart of Fig. 3 processes shown and instructions 418 of computer system 400 in Fig. Save 4.

[0046] The term "network device" refers to a device, component, or computing unit that can provide a communication pipeline for packets sent from a "processing node" or an "endpoint node." A processing or endpoint node can refer to a device, component, or hardware component that can serve as the source or destination of data, such as a control packet or a data packet. An example of a network device is a switch, as discussed above. Fig. 1 described.

[0047] In general, the disclosed aspects provide a method, a computer system, and a computer-readable medium that facilitate the use of link utilization as a load metric. During operation, the system monitors the utilization of a plurality of links in a network. The system generates a link utilization load metric for each link from the plurality of links, wherein the link utilization load metric for each link comprises the amount of data transferred over that link in a last predetermined time period, compared to the total available bandwidth of that link. The system receives data to be transmitted (i.e., forwarded) over the network.The system selects a path from a set of valid paths over which the data should be forwarded, based on a combination of the connection utilization metric for the respective connection and an overload metric assigned to the respective connection.

[0048] In one variation of this aspect, the path selection is also based on the fact that the connection utilization metric is smaller than a first predetermined threshold.

[0049] In another variation of this aspect, the path selection is based on the overload metric being smaller than a second predetermined threshold.

[0050] In another variant, the connection utilization metric includes a first range of values ​​that is smaller than a predetermined value, and the overload metric includes a second range of values ​​that is greater than or equal to the predetermined value.

[0051] In another variant, the path selection is based on the fact that the combination of the connection utilization metric and the congestion metric is less than a third predefined threshold.

[0052] In another variant, the combination is based on at least one of the following elements: a summation of the connection utilization metric and the overload metric; a product of the connection utilization metric and the overload metric; a first weight assigned to the connection utilization metric; or a second weight assigned to the overload metric.

[0053] In another variant, the data to be transmitted consists of a plurality of unordered packets.

[0054] In another variant, the data to be transmitted includes at least one of the following elements: a new ordered flow or a flow to be rerouted.

[0055] In another variant, the system reduces the number of flows to be rerouted by selecting the path based on the combination of the connection utilization metric for the respective connection and the congestion metric associated with the respective connection.

[0056] In another aspect, a computer system comprises a processor and a memory device that stores instructions which, when executed by the processor, are intended to perform the following tasks: The instructions are intended to monitor the utilization of a plurality of connections connected to the computer system operating on the network. The instructions are further intended to generate a connection utilization metric for each connection from among the plurality of connections. This connection utilization metric comprises the amount of data transferred over that connection in a last predetermined time period, compared to the total available bandwidth of that connection. The instructions are also intended to receive data to be forwarded over the network.The instructions also serve to select a path from a set of valid paths over which the data should be routed, based on a combination of the connection utilization metric for that connection and an overload metric associated with that connection. The computer system may also contain instructions to perform the operations described herein, including those relating to the environment of [the system]. Fig. 1; the determination of the metric of Fig. 2; the one in the flowchart of Fig. 3 operations shown; and the instructions of CRM 500 in Fig. 5.

[0057] In another aspect, a non-transitory computer-readable storage medium (or CRM) stores instructions for monitoring the utilization of multiple connections connected to a device on a network. These instructions are further used to generate a connection utilization load metric for each connection from among the multiple connections. The connection utilization load metric for each connection comprises the amount of data transferred over that connection in a last predetermined time period, compared to the total available bandwidth of that connection. The instructions are also used to receive data to be forwarded over the network.The instructions also serve to select a path from a set of valid paths over which the data should be routed, based on a combination of the connection utilization metric for that connection and an overload metric associated with that connection. The CRM can also store instructions for performing the operations described above, specifically regarding the environment of [the CRM]. Fig. 1; the determination of the metric of Fig. 2; the one in the flowchart of Fig. 3 operations shown; and instructions 418 of the computer system 400 in Fig. 4.

[0058] The foregoing description is intended to enable the person skilled in the art to produce and use the aspects and examples and is given in connection with a specific application and its requirements. Various modifications of the disclosed aspects will be readily apparent to the person skilled in the art, and the general principles defined herein can be applied to other aspects and applications without departing from the spirit and scope of this disclosure. Therefore, the aspects described here are not limited to those shown but have the broadest possible scope consistent with the principles and features disclosed herein.

[0059] Furthermore, the foregoing descriptions of the aspects serve only for illustration and description. They do not claim to be exhaustive and do not limit the aspects described herein to the disclosed forms. Accordingly, many modifications and variations will be obvious to those skilled in the art. Moreover, the above disclosure is not intended to limit the aspects described herein. The scope of the aspects described herein is defined by the attached claims.

Claims

[1] A procedure, comprising: Monitoring the utilization of multiple connections in a network; Generating a connection utilization load metric for each connection from the plurality of connections, where the link utilization load metric for each link comprises the amount of data transferred over that link in a last predetermined period, compared to the total available bandwidth of that link; Receiving data that is to be transmitted over the network; and Selecting a path from a set of valid paths over which the data should be routed, based on a combination of the connection utilization load metric for the respective connection and a congestion metric associated with the respective connection. [2] Method according to claim 1, wherein the selection of the path is further based on the fact that the link utilization load metric is smaller than a first predetermined threshold. [3] Method according to claim 2, wherein the selection of the path is further based on the fact that the overload metric is smaller than a second predetermined threshold. [4] Method according to claim 1, where the connection utilization load metric includes an initial range of values ​​that are less than a predefined value, and where the overload metric includes a second range of values ​​that are greater than or equal to the specified value. [5] Method according to claim 1, wherein the selection of the path is further based on the fact that the combination of the link utilization load metric and the overload metric is less than a third predetermined threshold. [6] The method of claim 5, wherein the combination is based on at least one of the following: a summation of the connection utilization load metric and the overload metric; a product of the connection utilization load metric and the overload metric; a first weight assigned to the link utilization load metric; or a second weight that is assigned to the overload metric. [7] Method according to claim 1, wherein the data to be transmitted comprise a plurality of unordered packets. [8] The method of claim 1, wherein the data to be transmitted comprise at least one of the following: a newly arranged river or a river to be diverted. [9] The method of claim 1, further comprising: Reducing the number of flows to be rerouted by selecting the path based on the combination of the link utilization load metric for the respective link and the congestion metric associated with the respective link. [10] A computer system operating in a network, wherein the computer system comprises: a processor and a storage device that stores instructions which, when executed by the processor, are intended to: Monitoring the utilization of multiple connections assigned to the computer system operating on the network; Generating a link utilization load metric for a given link from the plurality of links, wherein the link utilization load metric for that link comprises the amount of data transferred over that link in a last predetermined period, compared to the total available bandwidth of that link; Receiving data that is to be forwarded over the network; and Selecting a path from a set of valid paths over which the data should be routed, based on a combination of the connection utilization load metric for the respective connection and an overload metric assigned to the respective connection. [11] Computer system according to claim 10, wherein the instructions are further intended for: Select the path based on at least one of the following: The connection utilization load metric is less than a first predetermined threshold; or The connection utilization load metric is less than a first predetermined threshold, and the congestion metric is less than a second predetermined threshold. [12] Computer system according to claim 10, where the connection utilization load metric includes an initial range of values ​​that are less than a predefined value, and where the overload metric includes a second range of values ​​that are greater than or equal to the specified value. [13] The computer system according to claim 10, wherein the instructions are further defined for: The path is further selected based on the fact that the combination of the connection utilization load metric and the congestion metric is less than a third predetermined threshold. [14] Computer system according to claim 13, wherein the combination is based on at least one of the following: a summation of the connection utilization load metric and the overload metric; a product of the connection utilization load metric and the overload metric; a first weight that is assigned to the link utilization load metric; or a second weight that is assigned to the overload metric. [15] Computer system according to claim 10, wherein the data to be transmitted comprises at least one of the following: a plurality of unordered packages; a river in a new arrangement or a river to be diverted. [16] The computer system according to claim 10, wherein the instructions are further defined for: Reducing the number of flows to be rerouted by selecting the path based on the combination of the link utilization load metric for the respective link and the congestion metric associated with that link. [17] A non-transitory computer-readable medium that stores instructions for: Monitoring the utilization of multiple connections assigned to a device in a network; Generating a connection utilization load metric for each connection from the plurality of connections, where the link utilization load metric for each link comprises the amount of data transferred over that link in a last predetermined period, compared to the total available bandwidth of that link; Receiving data that is to be forwarded over the network; and Selecting a path over which the data should be routed from a set of valid paths based on a combination of the connection utilization load metric for the respective connection and an overload metric assigned to the respective connection. [18] Non-transitory computer-readable medium according to claim 17, wherein the selection of the path is further based on at least one of the following: The connection utilization load metric is less than a first predetermined threshold; or The connection utilization load metric is less than a first predetermined threshold, and the congestion metric is below a second predetermined threshold. [19] Non-transitory computer-readable medium according to claim 17, wherein the instructions are intended for: Furthermore, the path is selected based on the fact that the combination of the connection utilization load metric and the congestion metric is less than a third predetermined threshold. the combination is based on at least one of the following: a summation of the connection utilization load metric and the overload metric; a product of the connection utilization load metric and the overload metric; a first weight that is assigned to the link utilization load metric; or a second weight that is assigned to the overload metric. [20] Non-transitory computer-readable medium according to claim 17, wherein the instructions are further intended for: Reducing the number of flows to be rerouted by selecting the path based on the combination of the link utilization load metric for the respective link and the congestion metric associated with that link.