Multi-Path Congestion Control Method and System for Data Center Networks Based on Network Telemetry
By receiving ACK packets carrying INT information to update the path status information and dynamically adjusting the congestion window, the problem that the multipath congestion control algorithm cannot accurately evaluate the path status is solved, and load balancing between multiple paths in the data center network is achieved.
Patent Information
- Application Number
- CN202510521215.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-24
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2045-04-24
AI Technical Summary
The existing multipath congestion control algorithms cannot accurately evaluate the usage status of multipath sets in data center networks, resulting in the inability to timely adjust the transmission rate and reasonably allocate data, and the inability to make full use of network bandwidth resources.
By receiving ACK packets carrying INT information, obtaining the switch out port utilization, updating the path status information in the map array, dynamically adjusting the congestion window, and reasonably allocating data packets between multiple paths to achieve load balancing between multiple paths.
The average utilization rate of multipath sets is improved, network congestion can be handled earlier and more accurately, bandwidth resources of different paths are fully utilized, packet queues are reduced, and data transmission time is optimized.
Smart Images

Figure CN120090979B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of computer networks, and in particular, to a multi-path congestion control method and system for a data center network based on network telemetry. Background Art
[0002] With the development of network transmission technology, the network bandwidth of data centers has grown to 100 Gbps, and this speed continues to increase. Traditional TCP / IP networks are difficult to meet new requirements. On the one hand, high-speed data transmission causes extremely high CPU overhead. On the other hand, it cannot meet the service requirements sensitive to latency. Remote Direct Memory Access (RDMA) reduces CPU occupancy and transmission latency through kernel bypass and zero-copy technology. RDMA has been widely deployed in data center networks. In an RDMA network, congestion can cause packet queuing, increasing transmission latency, triggering PFC storms and deadlocks, resulting in a large number of unnecessary retransmissions and even timeouts. Therefore, an efficient congestion control strategy must be set for the data center.
[0003] Most current congestion control algorithms are designed for single paths. Congestion control algorithms can be divided into four types: congestion control based on Explicit Congestion Notification (ECN), congestion control based on Round Trip Time (RTT), congestion control based on In-Net Telemetry (INT) information, and congestion control based on the receiver. Among them, ECN refers to Explicit Congestion Notification, RTT refers to the total time required for a data packet to be transmitted from the sender to the receiver and then returned to the sender, and INT refers to network telemetry technology. Its core idea is to use the data packet itself as a carrier to collect network performance and status data on the path in real time during the transmission process, so as to achieve fine-grained and real-time monitoring of network behavior.
[0004] In the congestion control method based on ECN, when the queue length of the switch exceeds the ECN threshold, the switch marks the ECN field in the IP header of the data packet. The receiver attaches the ECN information to the ACK data packet and returns it to the sender, and the sender adjusts the sending rate according to the ECN information. In the congestion control algorithm based on RTT, the network card accurately records the sending time of the data packet and the time when the ACK reply is received, so as to sense the change in the queuing time of the data packet in the switch. The congestion control algorithm based on RTT senses the congestion situation of the path through RTT and adjusts the rate accordingly. Congestion control based on the receiver, also known as active congestion control, typically involves the receiver scheduling the sender to send data packets according to its receiving ability.
[0005] In INT-based congestion control, when a data packet passes through a switch, the switch uses the INT feature of its application-specific integrated circuit to insert some metadata into the data packet, including information such as timestamps, queue lengths, total transmitted bytes, and link bandwidth. The receiver copies the metadata into the ACK packet and returns it to the sender, and the sender adjusts the transmission rate based on the fine-grained network load information. This method can make the network load converge quickly when congestion occurs or the link is idle. However, existing INT-based congestion control algorithms are designed for single-path transmission and do not consider how to make full use of the multiple equivalent paths between nodes in the data center network, making the congestion control algorithm sensitive to local congestion and unable to further improve the bandwidth utilization rate.
[0006] There are few congestion control algorithms designed for multi-path. Existing multi-path congestion control algorithms use ECN and RTT to sense the congestion of multiple paths, so as to adjust the transmission rate. Specifically, in the multi-path congestion control algorithm, the sender of each flow has many entropy values that can be used. The entropy value is carried in the data packet, and when the switch forwards the data packet, it will perform hashing based on the flow number, entropy value, etc. in the data packet, and select a port from all available ports to forward the data packet according to the hashing result. Therefore, for a flow, a certain entropy value can uniquely determine a path. After receiving the data packet, the receiver copies the entropy value and ECN information into the ACK packet and returns it to the sender. The sender can then know the status information of the path corresponding to this entropy value. The sender stores the ECN information of multiple paths in a bitmap array, sets the bit corresponding to the entropy value marked by ECN to 1, and sets the bit corresponding to the entropy value not marked by ECN to 0. The sender preferentially uses the entropy values not marked by ECN, and the entropy values marked by ECN can be used again after a period of time. To sum up, existing multi-path congestion control algorithms sense the congestion status of multiple paths through ECN and RTT, and the sender adjusts the transmission rate accordingly and makes a load balancing strategy at the end side. However, the congestion control algorithm based on ECN and RTT senses congestion slowly and there is inevitable data packet queuing. On the other hand, ECN and RTT cannot provide detailed path status information, making it impossible for the sender's load balancing strategy to make accurate decisions on the exploration and utilization of multiple paths.
[0007] Data center networks usually adopt the Clos topology structure and use multiple parallel links to expand capacity. Congestion control algorithms designed for multi-path can make more full use of network bandwidth resources. Existing multi-path congestion control algorithms based on ECN and RTT cannot accurately evaluate the usage status of the multi-path set, thus unable to adjust the sending rate in a timely manner and cannot reasonably allocate data among multi-paths. Among them, the Clos topology structure is a core architecture for constructing high-performance networks, proposed by Charles Clos in the 1950s, mainly used for data center network design. Its core features include hierarchical design, full-interconnection structure, non-blocking characteristics, and scalability. Summary of the Invention
[0008] Based on the technical problems existing in the background technology, the present invention proposes a multi-path congestion control method and system for data center networks based on network telemetry, realizing congestion control and load balancing among multi-paths.
[0009] The multi-path congestion control method for data center networks based on network telemetry proposed by the present invention includes:
[0010] Receiving an ACK packet carrying INT information. The ACK packet carries the utilization information of multiple switch output ports on the path corresponding to the th entropy value. Taking the output port utilization rate of the most congested link segment as the status information of the corresponding path, and using the flow number and entropy value in the ACK packet to update the fine-grained status information at the corresponding position in the map array;
[0011] Taking improving the average utilization rate of the multi-path set and early response to upcoming congestion as the balance goal, dynamically adjusting the congestion window based on the updated map array;
[0012] Taking the shortest time consumed for the data packet to complete transmission on multiple paths as the optimization goal, allocating the data in the congestion window to multiple paths to achieve reasonable data allocation among multi-paths.
[0013] Further, the INT information includes the hop count, flow number, and entropy value;
[0014] The hop count represents the total number of switches the data packet has passed through;
[0015] The flow number represents the number of the flow to which the data packet belongs;
[0016] The entropy value is used to determine the path the data packet will take;
[0017] When the switch selects the forwarding port of the data packet, it performs hashing according to the flow number, entropy value, and the switch's own information;
[0018] The number of times a data packet is forwarded by the switch is D, and the number of out - port utilization information in the INT information in the data packet header is Q. It is set that D = Q.
[0019] Further, when receiving an ACK packet carrying INT information, the ACK packet carries the utilization information of multiple switch out - ports on the path corresponding to the th entropy value. Taking the out - port utilization rate of the most congested link segment as the status information of the corresponding path, specifically including:
[0020] The sender of each flow maintains a map array to record the status information of multiple paths corresponding to multiple entropy values. The number of entropy values is preset and greater than the number of actual paths between two nodes in the network;
[0021] When the flow starts to send, the sender evenly sprays the data in the initial congestion window on all entropy values. When the receiver receives a data packet with INT information, it copies the INT information into the ACK data packet and returns it to the sender;
[0022] After receiving the ACK packet with INT information, the sender of the flow takes the out - port utilization rate of the most congested link segment as the status information of the corresponding path.
[0023] Further, with the goal of balancing the improvement of the average utilization rate of the multi - path set and the early response to upcoming congestion, when dynamically adjusting the congestion window based on the updated map array, the dynamic adjustment of the congestion window is specifically as follows:
[0024] Let be the upper limit threshold and the lower limit threshold , and let be the upper limit utilization threshold and the lower limit utilization threshold ;
[0025] If , then the congestion window remains unchanged;
[0026] If , then the congestion window decreases by subtraction;
[0027] If , then the congestion window decreases multiplicatively;
[0028] If , then the congestion window increases additively;
[0029] If , then the congestion window increases additively;
[0030] If , the congestion window remains unchanged;
[0031] If , the congestion window increases multiplicatively;
[0032] If , the congestion window increases additively;
[0033] If , the congestion window remains unchanged.
[0034] Furthermore, with the optimization goal of minimizing the time taken for data packets to complete transmission on multiple paths, the data in the congestion window is allocated to multiple paths to achieve a reasonable distribution of data among multiple paths. Specifically:
[0035] Optimization goal:
[0036] ;
[0037] Constraint conditions:
[0038] ;
[0039] ;
[0040] Among them, is the number of data packets transmitted on the path corresponding to the th entropy value, is the number of data packets transmitted on the path corresponding to the th entropy value, is the time taken to complete the transmission of data packets on the path corresponding to the th entropy value, is the time taken to complete the transmission of data packets on the path corresponding to the th entropy value, is the number of available entropy values for a flow from the sender to the receiver, is the transmission time of a data packet on a non-congested link of a path, is the utilization rate of the exit end of the most congested link segment of the path corresponding to the th entropy value, is the data packet size, is the link bandwidth, is the number of data packets to be transmitted in the congestion control window.
[0041] Furthermore, the data in the congestion window is allocated to multiple paths. Specifically:
[0042] Based on the optimization goal and constraint conditions, the number of data packets , using the number of data packets calculate the usage probability of the entropy value corresponding to the path corresponding to the th entropy value;
[0043] The sender of the flow uses the corresponding entropy value with the usage probability to approximately minimize the total transmission time when distributing the data in the congestion window to multiple paths;
[0044] The formula for the usage probability is as follows:
[0045] ;
[0046] wherein, represents the number of data packets transmitted by the path corresponding to the th entropy value.
[0047] Furthermore, use the out - port utilization rate of the most congested link segment as the status information of the corresponding path to determine whether the path corresponding to the entropy value continues to be used. Specifically:
[0048] When the status information is greater than the congestion threshold, it means that the path corresponding to the entropy value is suspended from use due to congestion;
[0049] When the status information is less than or equal to the congestion threshold, it indicates that the path corresponding to the entropy value continues to be used.
[0050] Furthermore, in the case where when the status information is greater than the congestion threshold, it means that the path corresponding to the entropy value is suspended from use due to congestion, specifically:
[0051] The suspension time of the entropy value is positively correlated with the out - port utilization rate
[0052] of the most congested link segment; ;
[0053] wherein, is the minimum suspension time, represents the number of consecutive congestions of the entropy value, is the congestion sensitivity adjustment coefficient, is the dynamic factor of the congestion cumulative effect, is the dynamic factor 's maximum allowable value.
[0054] Furthermore, after the suspension of the path corresponding to the entropy value ends, directly spray data packets on this path;
[0055] After receiving the INT information corresponding to the entropy value, update the map array. If the INT information indicates that the congestion on the path has been relieved, recalculate the probability of using the entropy value.
[0056] If the received INT information indicates that the congestion on the path has not been relieved, increase the value at this time, so that the entropy value will obtain a new pause usage time to cope with continuous congestion.
[0057] A multi-path congestion control system for a data center network based on network telemetry includes a path status information acquisition and update module, an entropy value usage module, a window dynamic adjustment module, and an inter-path data allocation module.
[0058] The path status information acquisition and update module is used to receive the ACK packet carrying the INT information. The ACK packet carries the utilization information of the outgoing ports of multiple switches on the path corresponding to the th entropy value. Take the utilization rate of the outgoing port of the most congested link as the status information of the corresponding path, and use the flow number and entropy value in the ACK packet to update the information at the corresponding position in the map array.
[0059] The window dynamic adjustment module is used to dynamically adjust the congestion window with the goal of improving the average utilization rate of the multi-path set and responding to upcoming congestion in advance.
[0060] The inter-path data allocation module is used to allocate the data in the congestion window to multiple paths with the goal of minimizing the time consumed for the data packet to complete transmission on multiple paths, so as to achieve reasonable data allocation among multiple paths.
[0061] The advantages of the multi-path congestion control method and system for a data center network based on network telemetry provided by the present invention are as follows: using the utilization rate of the outgoing port directly calculated by the switch to collect the detailed usage status information of the multi-path set, providing more detailed decision-making information for multi-path congestion control and load balancing algorithms; adjusting the congestion window based on the number of available entropy values stored at the end side and the average utilization rate of the outgoing ports of the paths corresponding to the available entropy values, which can handle congestion in the network earlier and more accurately; designing more refined end-side load balancing measures using detailed multi-path status information, making full use of the remaining different bandwidth resources of different paths, and enabling the data to obtain a smaller completion time when transmitted on the multi-path set; designing a more refined pause usage time for the congested entropy value, which can effectively cope with different degrees of congestion in the multi-path set. BRIEF DESCRIPTION OF THE DRAWINGS
[0062] Figure 1 is a schematic flowchart of the present invention;
[0063] Figure 2Schematic diagram of the process of data packets from the sender to the receiver;
[0064] Figure 3 Schematic diagram of the INT field;
[0065] Figure 4 Schematic diagram of the process of collecting network telemetry information;
[0066] Figure 5 Flowchart of data distribution between multiple paths;
[0067] Figure 6 Schematic diagram of the multi-path congestion control architecture. Detailed implementation manners
[0068] Next, the technical solution of the present invention will be described in detail through specific embodiments. Many specific details are set forth in the following description in order to fully understand the present invention. However, the present invention can be implemented in many other ways different from those described herein, and those skilled in the art can make similar improvements without departing from the connotation of the present invention. Therefore, the present invention is not limited by the specific implementations disclosed below.
[0069] As Figures 1 to 6 , the multi-path congestion control method for data center networks based on network telemetry proposed by the present invention realizes congestion control and load balancing between multiple paths, specifically including:
[0070] Receiving an ACK packet carrying INT information, where the ACK packet carries the utilization information of multiple switch output ports on the path corresponding to the th entropy value. Taking the output port utilization rate of the most congested link segment as the status information of the corresponding path, and using the flow number and entropy value in the ACK packet to update the fine-grained status information at the corresponding position in the map array, where the map array stores the usage status information of the multi-path set of the flow, and the ACK packet is a protocol mechanism used to confirm the correct transmission of data packets in network communication;
[0071] Based on the updated map array, dynamically adjust the congestion window with the goal of improving the average utilization rate of the multi-path set and responding in advance to upcoming congestion;
[0072] With the goal of optimizing the shortest time for data packets to be transmitted on multiple paths, distribute the data in the congestion window to multiple paths to achieve reasonable data distribution between multiple paths.
[0073] In this embodiment, the status information of multiple paths is accurately collected through network telemetry information. Based on the more fine-grained network load information, the sender can adjust the congestion control window in a timely and accurate manner, reducing the occurrence of queuing in the switch. At the same time, for the links that are not yet congested, different amounts of data can be allocated according to the different utilization rates of their output ports, making full use of the bandwidth resources of multiple paths. For the congested links, more accurate pause usage times can be set according to their congestion degrees, avoiding the problem of using the link again before the congestion of the link has been eliminated. In summary, this embodiment can make more full use of the bandwidth of multiple equivalent paths in the data center, thereby reducing the overall flow completion time.
[0074] It should be noted that each position in the existing bitmap array stores only 1 bit of data. The map array in this embodiment stores the utilization rate of the output port of the most congested segment of the path, which is more detailed load information and can provide more detailed information for congestion window adjustment and data allocation between paths to make decisions.
[0075] The multi-path congestion control method in this embodiment mainly includes four parts: collection of network telemetry information, adjustment of congestion window, data allocation between multiple paths, and pause usage of congested paths. As Figure 2 shown, the switch records the INT information required by the congestion control method on the data packet, and the receiver attaches the INT information to the ACK packet and returns it to the sender, and the sender thus obtains the usage status information of the multi-path set. If it is determined from the INT information that the path is congested, a pause usage time is calculated and set for the entropy value. If it is determined from the INT information that the path is not yet congested, the status information of the corresponding entropy value in the map array needs to be updated. Based on the fine-grained load information of multiple paths in the map array, the sender can adjust the congestion window in a timely and accurate manner. And the usage probabilities of multiple entropy values can be calculated, so as to realize transmitting different amounts of data on paths in different states to optimize the total transmission time.
[0076] Specifically, in one embodiment, the collection of network telemetry information is specifically as follows:
[0077] The INT information used in this embodiment is as Figure 3As shown in the figure. The hop count indicates how many switches the data packet has passed through in total. The flow ID indicates the ID of the flow to which the data packet belongs, and the entropy value is used to determine the path that the data packet will take. When a switch selects the forwarding port for a data packet, it performs hashing based on the flow ID, the entropy value, and the switch's own information. That is, when the flow ID and the entropy value of the data packet are determined, the path that the data packet will take is uniquely determined. The number of switches that the data packet has passed through is equal to the number of out-port utilization information in the INT information in the data packet header. That is, if the number of times the data packet is forwarded by the switch is D, and the number of out-port utilization information in the INT information in the data packet header is Q, it is set that D = Q, and this information can be directly calculated by the programmable switch. Out-port utilization is calculated as follows:
[0078] ; (1)
[0079] Among them, represents the queue length of the switch's out-port, represents the amount of data sent by the out-port within the most recent RTT, represents the link bandwidth. Therefore, represents an estimate of the in-flight bytes on the link, that is, an estimate of the number of bytes that have been sent but not yet acknowledged by the receiver. represents the maximum amount of data that the link can send within one RTT. represents the normalized in-flight bytes, and also represents the ratio of the data to be transmitted to the transmission capacity within one RTT, that is, the out-port utilization, which can reflect the congestion level of the link. When is greater than 1, it indicates that this section of the link is congested, and the switch has established a queue at the out-port. Conversely, when is less than 1, it indicates that the link is not yet congested.
[0080] The process of collecting network telemetry information is as shown in Figure 4 the figure. The sender of each flow maintains a map array to record the status information of multiple paths corresponding to multiple entropy values. The number of entropy values is preset and should be greater than the number of actual paths between two nodes in the network. When the flow starts to be sent, since there is no status information of the paths corresponding to the entropy values, the sender evenly distributes the data in the initial congestion window over all entropy values. When the receiver receives a data packet with INT information, it copies the INT information into the ACK packet and returns it to the sender. After the sender of the flow receives the ACK packet with INT information, it takes the out-port utilization of the most congested section of the link as the status information of this path, that is, , Represents the link index, accurately collects the status information of multiple paths through network telemetry information, and updates the information at the corresponding position in the map array based on the flow number and entropy value in the ACK packet. The fine-grained load information recorded in the map array is used as the decision basis for congestion control and end-side load balancing.
[0081] In one embodiment, the adjustment of the congestion window is specifically as follows:
[0082] Each flow maintains a map array at the sender, which records the status information of the paths corresponding to multiple entropy values. In the map array represents the status information of the path corresponding to the th entropy value of a certain flow. If , then represents the utilization rate of the output port of the busiest section of this path; if , it means that the path corresponding to this entropy value has been suspended due to congestion.
[0083] If the congestion window of a flow is adjusted based on the status information of a single path, on the one hand, the congestion control algorithm will be sensitive to local congestion in the network, and on the other hand, the congestion control window will fluctuate frequently, which is not conducive to the convergence of the sending rates of multiple flows in the network. Therefore, in this embodiment, the congestion control window is adjusted based on the overall status information of the multi-path set, that is, according to the number of available entropy values in the map array and the average utilization rate of the paths corresponding to the available entropy values to adjust the window size. The detailed congestion control algorithm is described as follows.
[0084] The congestion control method has two goals. One is to make full use of the link bandwidth resources, that is, to make the average utilization rate of the multi-path set relatively high. The other is to be able to respond to the upcoming congestion in advance to avoid congestion. To balance these two goals, the dynamic adjustment of the congestion window is specifically as follows:
[0085] is the number of available entropy values Set the upper threshold and the lower threshold , and set the upper utilization rate threshold and the lower utilization rate threshold for the average utilization rate of the paths corresponding to the available entropy values; when the number of available entropy values is less than , it is considered that the number of available paths is insufficient; when the number of available entropy values is greater than , it is considered that the number of available paths is sufficient; when the number of available entropy values is greater than and less than , it is considered that the number of available paths is moderate. When the average utilization rate of the paths corresponding to the available entropy values Less than When it is, the utilization rate of the multi - path is considered low; when the average utilization rate is greater than it is considered that the utilization rate of the multi - path is high; when the average utilization rate is greater than and less than it is considered that the utilization rate of the multi - path is moderate. For example, a set of possible values is , , , . According to the number of available entropy values and the average congestion degree of the paths corresponding to the available entropy values the network state can be divided into 9 types, and the corresponding window adjustment strategies are as follows:
[0086] State 1: then the congestion window remains unchanged. At this time, the number of available paths is small but the average utilization rate of the available paths is low, and the two indicators have contradictory expectations for window adjustment. Although the network congestion area is large, the window can be temporarily not reduced, but the existing available paths with low utilization rate can be fully used. In this state, the window remains unchanged temporarily and waits for congestion to occur.
[0087] State 2: then the congestion window decreases by subtraction. At this time, the number of available paths is small and the average utilization rate of the available paths is moderate. The network congestion area is large, and the utilization rate of the available paths is already close to the congestion state. At this time, in order to avoid the occurrence of network - wide congestion and respond to congestion in advance, the congestion window decreases by subtraction.
[0088] State 3: 1, then the congestion window decreases multiplicatively. At this time, the number of available paths is small and the average utilization rate of the available paths is high. At this time, the network congestion area is large, and the average utilization rate of the available paths has exceeded the upper - limit utilization rate threshold (i.e., the expected utilization rate), the network load is saturated, and network - wide congestion may occur at any time. At this time, the congestion window decreases multiplicatively.
[0089] State 4: then the congestion window increases additively. At this time, the number of available paths is moderate and the average utilization rate of the available paths is low. At this time, there is local congestion in the network, but there are still a certain number of paths available. In order to further improve the utilization rate of the available paths, the congestion window increases additively.
[0090] State 5: then the congestion window increases additively. At this time, the number of available paths is moderate and the average utilization rate of the available paths is moderate. There is local congestion in the network, but there are still a certain number of paths available, and the average utilization rate of these paths has not reached the expected utilization rate , at this time, the addition increases the window, further improving the utilization rate of available paths.
[0091] State 6: , the congestion window remains unchanged. At this time, the number of available paths is moderate and the average utilization rate of available paths is relatively high. There is local congestion in the network, and there are still a certain number of paths available, but these paths have reached their maximum load. To avoid causing large-scale congestion of available paths, the window remains unchanged at this time.
[0092] State 7: , the congestion window increases multiplicatively. At this time, the number of available paths is large and the average utilization rate of available paths is low. Most paths in the network are not congested, and the utilization rate of these paths is far from the upper limit utilization threshold (i.e., the desired utilization rate). At this time, the window is increased multiplicatively to rapidly improve the utilization rate of available paths.
[0093] State 8: , the congestion window increases additively. At this time, the number of available paths is large and the average utilization rate of available paths is moderate. Most paths in the network are not congested, and the average utilization rate of available paths is close to but has not reached the upper limit utilization threshold , at this time, the congestion control window is increased additively to improve the utilization rate.
[0094] State 9: , the congestion window remains unchanged. At this time, the number of available paths is large and the average utilization rate of available paths is high. Although most paths are not congested at this time, these paths have reached their maximum load. To avoid causing large-scale congestion of available paths, the window remains unchanged at this time.
[0095] When increasing additively and multiplicatively, the larger the number of available paths or the lower the average congestion degree of available paths, the greater the increase amplitude of the congestion window. When decreasing additively or multiplicatively, the smaller the number of available paths or the higher the average congestion degree of available paths, the greater the decrease amplitude of the congestion window. Combining the above 9 states, a concise congestion control strategy can be obtained as shown in Table 1 below:
[0096] Table 1
[0097]
[0098] Among them, represents the congestion window before update, represents the congestion window after update, is the total number of entropy values of a pre-set flow, is the multiplicative increase factor, is the multiplicative decrease factor, is the additive increase factor, Additive reduction factor.
[0099] In one of the embodiments, the data distribution among multiple paths is specifically as follows:
[0100] When distributing the data in the congestion window to multiple paths, the optimization goal is to minimize the time consumed for the data packets to complete transmission on multiple paths. Assume that the number of entropy values available for a flow from the sender to the receiver is , The utilization rates of the paths corresponding to the entropy values are respectively , , …, . represents the number of data packets transmitted on the path corresponding to the th entropy value, represents the time required to complete the transmission of data packets on the path corresponding to the th entropy value. Therefore, the optimization goal can be expressed as follows:
[0101] ; (2)
[0102] where, is the number of data packets transmitted on the path corresponding to the th entropy value, is the time required to complete the transmission of data packets on the path corresponding to the th entropy value.
[0103] Consider the scenario where there is only one congested link on the path that the data packet passes through, and the transmission time of the data packet on the non-congested link is relatively fixed. represents the sum of the transmission time of the data packet on the congested link and the transmission time on the non-congested link . The transmission time on the congested link is related to the number of data packets transmitted and can be expressed as . Therefore, should satisfy the following constraint conditions:
[0104] ; (3)
[0105] where, is the utilization rate of the exit end of the most congested link on the path corresponding to the th entropy value, is the data packet size, is the link bandwidth.
[0106] Meanwhile, assume that there are a total of data packets to be transmitted in the congestion control window, then the following constraint conditions should also be satisfied:
[0107] ; (4)
[0108] From the optimization objective (2) and the constraint conditions (3) and (4), the following can be solved :
[0109] ; (5)
[0110] wherein is the utilization rate of the exit end of the most congested link in the -th entropy value corresponding path.
[0111] Furthermore, considering the difference in traffic volume, if continuous use of a certain entropy value causes load imbalance between paths, therefore, from the number of data packets transmitted in the -th entropy value corresponding path the usage probability of the corresponding entropy value can be calculated :
[0112] ; (6)
[0113] wherein is the number of data packets transmitted in the -th entropy value corresponding path.
[0114] The sender of the flow uses the corresponding entropy value with a certain usage probability to approximately minimize the total transmission time when distributing the data in the congestion window to multiple paths. An example of the data distribution algorithm between multiple paths is as Figure 5 .
[0115] In one embodiment, the out-port utilization rate is used as the status information of the corresponding path to determine whether the entropy value corresponding path continues to be used. Specifically: when the status information is greater than the congestion threshold, it indicates that the path corresponding to the entropy value is suspended due to congestion; when the status information is less than or equal to the congestion threshold, it indicates that the path corresponding to the entropy value continues to be used.
[0116] The suspension of the use of the congested path is specifically as follows:
[0117] When a certain entropy value corresponding path becomes congested, that is, when the utilization rate of the exit end of the most congested link in the path is greater than 1, the relevant sender will stop using this entropy value to bypass the congestion hot spot. Therefore, a suspension time needs to be set for the congested entropy value. First, a minimum suspension time is set. On the one hand, it can avoid exacerbating the slight congestion of the link, and on the other hand, it can avoid some flows frequently preempting bandwidth, thus causing unfairness to other flows.
[0118] The suspension time of the entropy value should be positively correlated with the utilization rate of the output port of the most congested link Therefore, the suspension time of the entropy value can be set to ,, , where is the congestion sensitivity adjustment coefficient, and the squared form makes the entropy value of severe congestion be "more strongly" punished. At the same time, to handle the situation of continuous congestion, if an entropy value is congested continuously, its suspension time should gradually become longer. So the suspension time of the entropy value can be set to . Among them, , is the dynamic factor of the congestion accumulation effect, represents the number of consecutive congestions of the entropy value, is the maximum allowable value of the dynamic factor . When increases to , it will no longer increase, preventing the sender from being unable to utilize this entropy value in time when the congestion of the path corresponding to the entropy value disappears, resulting in the idleness of the relevant path. To sum up, the suspension time of the entropy value can be expressed by the following formula:
[0119] , where ; (7)
[0120] In addition, after the suspension time of the entropy value ends, instead of sending a probe packet to detect the usage status information of the path, data packets are directly sprayed on this path. This can avoid the time overhead of one RTT brought by the probe packet and is more conducive to improving the utilization rate of the path. That is, after the suspension time of the entropy value ends, the entropy value can be reused. At this time, the usage probability of the entropy value can be temporarily set to the reciprocal of the number of all available entropy values. After receiving the INT information corresponding to this entropy value, update the map array and recalculate the probability that this entropy value should be used. If the received INT feedback information shows that the congestion of the path has not been relieved, at this time will increase, so that this entropy value will get a new and longer suspension time to cope with the problem of continuous congestion.
[0121] As an embodiment, such as Figure 6As shown, this embodiment includes three major modules: a sender, a programmable switch, and a receiver. The sender sends data packets through a data sending module. The port selection module of the programmable switch determines the forwarding port according to the hash results of the flow number, entropy value, switch's own information, etc. The out-port utilization rate is directly calculated on the programmable switch. Each time a data packet passes through a switch, the INT information marking module adds new hop-by-hop INT information to the packet header. After the data receiving module of the receiver receives the packet carrying INT information, it copies the INT information, entropy value, etc. to the ACK packet through the INT information feedback module and returns it to the sender. After the sender receives the ACK packet carrying INT information, it uses the INT information processing module to take the maximum value of the out-port utilization rates of multiple hops as the usage status of the path corresponding to this entropy value, and updates the map array stored on the end side. Assume that there are entropy values available for use by the sender of the flow. Then, on the sender side of the flow, a map array of size is maintained, which records the usage status information of the paths corresponding to multiple entropy values.
[0122] When the maximum out-port utilization rate of the path corresponding to the th entropy value is greater than 1, it indicates that the path has become congested. At this time, is set to -1. At the same time, a pause time calculation module calculates a pause usage time for this entropy value, and a timer module sets a timer. After the pause usage time ends, the path is reused. That is, after the pause usage time ends, the entropy value can be reused. At this time, the usage probability of the entropy value can be temporarily set to the reciprocal of the number of all available entropy values. If after reusing this entropy value, it is found that the congestion of the path corresponding to this entropy value has not been eliminated, then is updated to -2, and the pause usage time is recalculated according to the formula. In the formula, is the opposite of to cope with possible continuous congestion in the network.
[0123] When 0 , it indicates that the path corresponding to this entropy value has not become congested and can be used normally. The adjustment of the congestion window and the data distribution among multiple paths are both determined by the status information of all non-congested entropy values in the map array. Whether the sender can send data packets is determined by the congestion window and the number of bytes in flight. The entropy value in the data packet to be sent is determined by the usage probability of the entropy value calculated by the inter-path data distribution module (see the above for the calculation of the usage probability). To reduce the computational overhead, the network card on the sender side can recalculate the probability that each entropy value should be used through the inter-path data distribution module and recalculate the congestion window through the congestion window calculation module at regular intervals, thereby implementing the multi-path congestion control method.
[0124] In this embodiment, by collecting network telemetry information, adjusting the congestion window, distributing data among multiple paths, and suspending the use of congested paths, it aims to optimize the problem that the existing multi-path congestion control algorithm based on ECN and RTT has a slow perception of congestion and cannot accurately evaluate the usage status of paths. This problem will further lead to the multi-path congestion control algorithm being unable to handle network congestion in a timely manner and unable to fully utilize the bandwidth resources of the multi-path set. The main advantages of this embodiment are as follows:
[0125] 1) Use the egress port utilization rate directly calculated by the switch to collect detailed usage status information of the multi-path set, providing more detailed decision-making information for multi-path congestion control and load balancing algorithms.
[0126] 2) Adjust the congestion window based on the number of available entropy values stored at the end side and the detailed load information of the paths corresponding to the available entropy values, which can handle network congestion earlier and more accurately.
[0127] 3) Design a more refined end-side load balancing measure using detailed multi-path status information, making full use of the remaining different bandwidth resources of different paths, and enabling data to obtain a smaller completion time when transmitted on the multi-path set.
[0128] 4) Design a more refined suspension time for congested entropy values, which can effectively cope with different degrees of congestion in the multi-path set.
[0129] As mentioned above, the above is only the preferred specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present invention, according to the technical solution and inventive concept of the present invention, making equivalent replacements or changes, shall be covered by the protection scope of the present invention.
Claims
1. A multi-path congestion control method for a data center network based on network telemetry, characterized in that, Including: Receive an ACK packet carrying INT information. The ACK packet carries the utilization information of multiple switch output ports on the path corresponding to the entropy value. Take the output port utilization of the most congested link segment as the status information of the corresponding path, and use the flow number and entropy value in the ACK packet to update the fine-grained status information at the corresponding position in the map array; Taking the improvement of the average utilization rate of the multi-path set and the early response to the upcoming congestion as the balance goal, dynamically adjusting the congestion window based on the updated map array; Taking the shortest time for the data packet to complete transmission on multiple paths as the optimization goal, distributing the data in the congestion window to multiple paths to achieve reasonable data distribution among multiple paths.
2. The method for multi-path congestion control of a data center network based on network telemetry according to claim 1, wherein The INT information includes the hop count, flow number, and entropy value; The hop count represents the total number of switches that the data packet has passed through; The flow number represents the number of the flow to which the data packet belongs; The entropy value is used to determine the path that the data packet will take; When the switch selects the forwarding port of the data packet, it performs hashing according to the flow number, entropy value, and the switch's own information; The number of times the data packet is forwarded by the switch is D, and the number of out-port utilization information in the INT information in the data packet header is Q, and it is set that D = Q.
3. The multi-path congestion control method for a data center network based on network telemetry according to claim 1, wherein Upon receiving the ACK packet carrying INT information, the ACK packet carries the utilization information of multiple switch egress ports on the path corresponding to the entropy value. Taking the egress port utilization of the most congested link segment as the status information of the corresponding path, specifically including: The sender of each flow maintains a map array to record the status information of multiple paths corresponding to multiple entropy values. The number of entropy values is preset and greater than the number of actual existing paths between two nodes in the network; At the beginning of the flow sending, the sender evenly sprays the data in the initial congestion window on all entropy values. When the receiver receives the data packet with INT information, it copies the INT information into the ACK data packet and returns it to the sender; After the sender of the flow receives the ACK packet with INT information, it takes the out-port utilization rate of the most congested link segment as the status information of the corresponding path.
4. The multi-path congestion control method for a data center network based on network telemetry according to claim 1, wherein In the process of dynamically adjusting the congestion window based on the updated map array with the balance goal of improving the average utilization rate of the multi-path set and the early response to the upcoming congestion, the specific dynamic adjustment of the congestion window is as follows: For the number of available entropy values Set the upper limit threshold And the lower limit threshold , which is the average utilization rate of the path corresponding to the available entropy value Set the upper limit utilization rate threshold And the lower limit utilization rate threshold ; If , then the congestion window remains unchanged; If , the congestion window decreases additively; If , the congestion window is multiplicatively decreased; If , the congestion window increases additively; If , the congestion window increases additively; If , the congestion window remains unchanged; If , the congestion window increases multiplicatively; If , the congestion window increases additively; If , the congestion window remains unchanged.
5. The method for multi-path congestion control of a data center network based on network telemetry according to claim 1, wherein In the process of taking the shortest time for the data packet to complete transmission on multiple paths as the optimization goal, distributing the data in the congestion window to multiple paths to achieve reasonable data distribution among multiple paths, specifically: Optimization goal: Constraint conditions: Among them, is the number of data packets transmitted through the path corresponding to the th entropy value, is the number of data packets transmitted through the path corresponding to the th entropy value, is the time taken for the th entropy value corresponding path to complete the transmission of data packets, is the time taken for the th entropy value corresponding path to complete the transmission of data packets, is the number of available entropy values of a stream from the sender to the receiver, is the transmission time of a data packet on a non-congested link of a path, is the utilization rate of the exit end of the most congested link segment of the th entropy value corresponding path, is the data packet size, is the link bandwidth, is the number of data packets to be transmitted in the congestion control window.
6. The method for multi-path congestion control of a data center network based on network telemetry according to claim 5, wherein Distributing the data in the congestion window to multiple paths, specifically: Calculate the number of data packets based on the optimization objective and constraint conditions , and use the number of data packets to calculate the usage probability of the entropy value corresponding to the path corresponding to the -th entropy value ; The sender of the flow can approximately minimize the total transmission time when distributing the data in the congestion window to multiple paths by using the corresponding entropy value with probability ; The usage probability is calculated as follows: Among them, represents the number of data packets transmitted by the path corresponding to the entropy value.
7. The method for multi-path congestion control of a data center network based on network telemetry according to claim 1, wherein Using the out-port utilization rate of the most congested link segment as the status information of the corresponding path to judge whether the path corresponding to the entropy value continues to be used, specifically: When the status information is greater than the congestion threshold, it indicates that the path corresponding to the entropy value is suspended due to congestion; When the status information is less than or equal to the congestion threshold, it indicates that the path corresponding to the entropy value continues to be used.
8. The method for multi-path congestion control of a data center network based on network telemetry according to claim 7, wherein In the case where when the status information is greater than the congestion threshold, it indicates that the path corresponding to the entropy value is suspended due to congestion, specifically: Suspension time of entropy value And the utilization rate of the outgoing port of the most congested link Show a positive correlation; , wherein Among them, is the minimum pause usage time, represents the number of consecutive congestions of the entropy value, is the congestion sensitivity adjustment coefficient, is the dynamic factor of the congestion cumulative effect, is the dynamic factor 's maximum allowable value.
9. The multi-path congestion control method for a data center network based on network telemetry according to claim 7, characterized in that, After the suspension of the path corresponding to the entropy value ends, directly spray the data packet on this path; After receiving the INT information corresponding to this entropy value, update the map array. If the INT information shows that the congestion of the path has been relieved, recalculate the probability of using this entropy value; If the received INT information indicates that the congestion of the path has not been relieved, increase the value at this time, so that the entropy value will obtain a new suspension time to cope with continuous congestion.
10. A multi-path congestion control system for a data center network based on network telemetry, characterized in that Including a path status information acquisition and update module, a window dynamic adjustment module, and a data distribution module between paths; The acquisition and update module of the path status information is used to receive the ACK packet carrying the INT information. The ACK packet carries the utilization information of multiple switch egress ports on the path corresponding to the entropy value. The egress port utilization of the most congested link segment is taken as the status information of the corresponding path, and the flow number and entropy value in the ACK packet are used to update the fine-grained status information at the corresponding position in the map array; The window dynamic adjustment module is used to dynamically adjust the congestion window based on the updated map array with the balance goal of improving the average utilization rate of the multi-path set and the early response to the upcoming congestion; The inter-path data allocation module is used to allocate the data in the congestion window to multiple paths with the optimization goal of minimizing the time consumed for the data packet to complete transmission on multiple paths, so as to achieve reasonable data allocation among multiple paths.
Citation Information
Patent Citations
Coordinating congestion control and adaptive load balancing
TW202508260A
Method and system for controlling network traffic based on reasons for packet loss
US20240171515A1