Data center network multipath congestion control method and system based on network telemetering
By receiving ACK packets carrying network telemetry information, updating path status information and dynamically adjusting congestion windows, the problem that existing multipath congestion control algorithms cannot fully utilize multiple paths, and efficient inter-multipath load balancing and congestion control are achieved.
Patent Information
- Application Number
- CN202510521215.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-24
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2045-04-24
AI Technical Summary
The existing multipath congestion control algorithm cannot fully utilize multiple equivalent paths between nodes in the data center network, resulting in low bandwidth utilization and inability to deal with congestion in the network in time.
By receiving ACK packets carrying network telemetry information, update the path status information in the map array, dynamically adjust the congestion window, and allocate the data packets to multiple paths to achieve load balancing and congestion control between multiple paths.
The detailed usage status information collection and dynamic congestion window adjustment of multipath collection are realized, which improves bandwidth utilization among multipaths and the accuracy of congestion processing, and reduces packet queuing and transmission delays.
Smart Images

Figure CN120090979A_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 receiver-based congestion control. 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. Receiver-based congestion control, 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 timestamp, queue length, total transmitted bytes, link bandwidth, etc. The receiver copies the metadata into the ACK packet and returns it to the sender, and the sender adjusts the transmission rate according to the fine-grained network load information. This method can make the network load converge quickly when congestion occurs or the link is idle. However, the 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. The existing multi-path congestion control algorithms use ECN and RTT to sense the congestion situation 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 the switch will perform hashing based on the flow number, entropy value, etc. in the data packet when forwarding 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, the 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 typically adopt a 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 building high-performance networks, proposed by Charles Clos in the 1950s and 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 art, the present invention proposes a multi-path congestion control method and system for data center networks based on network telemetry, achieving 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: 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 nth 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; Taking the improvement of the average utilization rate of the multi-path set and the early response to upcoming congestion as the balance goal, dynamically adjusting the congestion window based on the updated map array; Taking the shortest time consumed for the data packet to complete transmission on multiple paths as the optimization goal, and allocating the data in the congestion window to multiple paths to achieve reasonable data allocation among multi-paths.
[0010] Further, 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 output port utilization information in the INT information in the data packet header is Q. It is set that D = Q.
[0011] Further, when receiving an ACK packet carrying INT information, the ACK packet carries the The entropy values correspond to the utilization information of multiple switch output ports on the path, and the output port utilization of the most congested link segment is taken 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 paths between two nodes in the network; When the flow starts to be sent, 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; After receiving the ACK packet with INT information, the sender of the flow takes the output port utilization of the most congested link segment as the status information of the corresponding path.
[0012] Furthermore, with the goal of balancing the improvement of the average utilization rate of the multi-path set and the early response to upcoming congestion, based on the updated map array, the congestion window is dynamically adjusted. Specifically, the dynamic adjustment of the congestion window is as follows: is the number of available entropy values Set the upper threshold and the lower threshold , is the average utilization rate of the paths corresponding to the available entropy values Set the upper utilization threshold and the lower utilization threshold ; If , then the congestion window remains unchanged; If , then the congestion window decreases by subtraction; If , then the congestion window decreases multiplicatively; If , then the congestion window increases additively; If , then the congestion window increases additively; If , then the congestion window remains unchanged; If , then the congestion window increases multiplicatively; If , then the congestion window increases additively; If , then the congestion window remains unchanged.
[0013] Furthermore, with the goal of optimizing to minimize the time consumed for the data packet to complete transmission on multiple paths, the data in the congestion window is allocated to multiple paths to achieve reasonable data distribution among multiple paths. Specifically: Optimization objective: ; Constraint conditions: ; ; 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 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 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.
[0014] Furthermore, the data in the congestion window is allocated 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 stream uses the corresponding entropy value with the usage probability , and can approximately minimize the total transmission time when allocating the data in the congestion window to multiple paths; The calculation formula of the usage probability is as follows: ; Among them, represents the number of data packets transmitted on the path corresponding to the th entropy value.
[0015] Furthermore, use the utilization rate of the exit port 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: When the status information is greater than the congestion threshold, it indicates that the path corresponding to the entropy value is suspended from use 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.
[0016] Further, 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 from use due to congestion, specifically: The suspension time of the entropy value Is positively correlated with the utilization rate of the outgoing port of the most congested link segment Is positively correlated; , where ; Among them, 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 The maximum allowable value.
[0017] Further, after the suspension of the corresponding path of the entropy value ends, data packets are directly sprayed 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 this entropy value being used; If the received INT information shows that the congestion of the path has not been relieved, at this time, increase the number Value, so that this entropy value will obtain a new suspension time to cope with continuous congestion.
[0018] A multi-path congestion control system for a data center network based on network telemetry data includes a path status information acquisition and update module, an entropy value usage module, a window dynamic adjustment module, and an inter-path data distribution module; 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 rate 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 segment 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; The window dynamic adjustment module is used to dynamically adjust the congestion window with the goal of balancing to improve the average utilization rate of the multi-path set and to respond to upcoming congestion in advance; The path - based data distribution module is used to distribute 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 distribution among multiple paths.
[0019] The advantages of the multi - path congestion control method and system for data center networks based on network telemetry provided by the present invention are as follows: The detailed usage status information of the multi - path set is collected by directly calculating the utilization rate of the egress port by the switch, providing more detailed decision - making information for multi - path congestion control and load - balancing algorithms; The congestion window is adjusted based on the number of available entropy values stored at the end - side and the average utilization rate of the egress port corresponding to the available entropy values, enabling earlier and more accurate handling of congestion in the network; More refined end - side load - balancing measures are designed 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; A more refined pause - use time is designed for the congested entropy values, which can effectively cope with different degrees of congestion in the multi - path set. Brief Description of the Drawings
[0020] Figure 1 is a schematic flow chart of the present invention; Figure 2 is a schematic flow chart of the data packet from the sender to the receiver; Figure 3 is a schematic diagram of the INT field; Figure 4 is a schematic diagram of the network telemetry information collection process; Figure 5 is a flow chart of data distribution among multiple paths; Figure 6 is a schematic diagram of the multi - path congestion control architecture. Detailed Embodiments
[0021] Next, the technical solutions 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 embodiments disclosed below.
[0022] 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 among multiple paths, and specifically includes: Receiving an ACK packet carrying INT information, where the ACK packet carries the The entropy value corresponds to the utilization information of multiple switch output ports on the path. The output port utilization of the most congested link segment is taken as the status information of the corresponding path. 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, where the map array stores the usage status information of the multi-path set of the flow. The ACK packet is a protocol mechanism used to confirm the correct transmission of data packets in network communication; 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, the congestion window is dynamically adjusted based on the updated map array; Taking the shortest time consumed for the data packet to complete transmission on multiple paths as the optimization goal, the data in the congestion window is allocated to multiple paths to achieve reasonable data allocation among multiple paths.
[0023] In this embodiment, the status information of multiple paths is accurately collected through network telemetry information. The sender can timely and accurately adjust the congestion control window based on the finer-grained network load information, 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 output port utilization rates, 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 is 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.
[0024] 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 output port utilization of the most congested link segment of the path, which is more detailed load information and can provide more detailed information for making decisions on congestion window adjustment and data allocation among paths.
[0025] The multi-path congestion control method of this embodiment mainly includes four parts: collection of network telemetry information, adjustment of congestion window, data allocation among multiple paths, and pause usage of congested paths, as Figure 2As shown in the figure, the switch records the INT information required by the congestion control method on the data packet. The receiver attaches the INT information to the ACK packet and returns it to the sender, so that the sender 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 this entropy value. If it is determined from the INT information that the path is not 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 probability 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.
[0026] Specifically, in one embodiment, the collection of network telemetry information is specifically as follows: The INT information used in this embodiment is as Figure 3 shown. 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. 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 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, and there are as many 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. The calculation formula of the out-port utilization is as follows: ; (1) Among them, represents the queue length of the switch out-port, represents the amount of data sent by the out-port within the most recent RTT, represents the link bandwidth. Therefore, represents the estimate of the in-flight bytes on the link, that is, the estimate of the bytes that have been sent but have not yet received confirmation from 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 degree of the link. When is greater than 1, it means that this section of the link is congested and the switch has established a queue at the out-port. On the contrary, when is less than 1, it means that the link is not congested.
[0027] The process of collecting network telemetry information is asFigure 4 As shown. The sender of each flow maintains an array of maps 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 existing 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 data packet and returns it to the sender. After the sender of the flow receives the ACK packet with INT information, it takes the utilization rate of the outgoing port of the most congested link segment 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 by the map array serves as the decision basis for congestion control and end-side load balancing.
[0028] In one embodiment, the adjustment of the congestion window is specifically as follows: Each flow maintains an array of maps at the sender, recording 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 outgoing port of the busiest link segment of this path; if , it means that the path corresponding to this entropy value has been suspended from use due to congestion.
[0029] 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 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 as follows.
[0030] 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 upcoming congestion in advance to avoid congestion. To balance these two goals, the dynamic adjustment of the congestion window is specifically as follows: is the number of available entropy values Set the upper threshold and the lower threshold , is the average utilization rate of the paths corresponding to the available entropy values Set the upper utilization rate threshold and the lower utilization rate threshold ; 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 is less than , it is considered that the utilization rate of the multi - paths is low; when the average utilization rate is greater than , it is considered that the utilization rate of the multi - paths is high; when the average utilization rate is greater than and less than , it is considered that the utilization rate of the multi - paths 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: State 1: , 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. 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.
[0031] State 2: , 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.
[0032] State 3: 1, 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 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.
[0033] State 4: If so, 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.
[0034] State 5: If so, 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 desired utilization rate At this time, the window increases additively to further improve the utilization rate of the available paths.
[0035] State 6: If so, the congestion window remains unchanged. At this time, the number of available paths is moderate and the average utilization rate of the available paths is high. There is local congestion in the network, and there are still a certain number of paths available, but these paths have reached the maximum load. To avoid causing widespread congestion of the available paths, the window remains unchanged at this time.
[0036] State 7: If so, the congestion window increases multiplicatively. At this time, the number of available paths is large and the average utilization rate of the available paths is low. Most paths in the network are not congested, and the utilization rate of these paths is far from the upper utilization threshold (i.e., the desired utilization rate). At this time, the window increases multiplicatively to quickly improve the utilization rate of the available paths.
[0037] State 8: If so, the congestion window increases additively. At this time, the number of available paths is large and the average utilization rate of the available paths is moderate. Most paths in the network are not congested, and the average utilization rate of the available paths is close to but has not reached the upper utilization threshold At this time, the congestion control window increases additively to improve the utilization rate.
[0038] State 9: If so, the congestion window remains unchanged. At this time, the number of available paths is large and the average utilization rate of the available paths is high. Although most paths are not congested at this time, these paths have reached the maximum load. To avoid causing widespread congestion of the available paths, the window remains unchanged at this time.
[0039] When increasing additively and multiplicatively, the more the number of available paths or the lower the average congestion degree of the available paths, the greater the increase amplitude of the congestion window. When decreasing additively or multiplicatively, the fewer the number of available paths or the higher the average congestion degree of the available paths, the greater the decrease amplitude of the congestion window. By combining the above 9 states, a concise congestion control strategy can be obtained as shown in Table 1 below: Table 1
[0040] Among them, represents the congestion window before update, represents the congestion window after update, is the total number of a pre-set stream entropy value, is the multiplicative increase factor, is the multiplicative decrease factor, is the additive increase factor, additive decrease factor.
[0041] In one embodiment, the data distribution among multiple paths is specifically as follows: 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 available entropy values for a stream 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: ; (2) 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, and is the time required to complete the transmission of
[0042] 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 transmitted data packets and can be expressed as . Therefore, should satisfy the following constraint conditions: ; (3) Among them, is the number of data packets transmitted on the path corresponding to the The utilization rate of the exit end of the most congested link in the path corresponding to an entropy value is the packet size and
[0043] is the link bandwidth. At the same time, assuming that there are a total ofpackets to be transmitted in the congestion control window, the following constraint conditions should also be satisfied: ; (4) From the optimization objective (2) and the constraint conditions (3) and (4), can be solved as: ; (5) wherein is the utilization rate of the exit end of the most congested link in the path corresponding to the th entropy value
[0044] 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 packets transmitted in the path corresponding to the th entropy value, the usage probability of the corresponding entropy value can be calculated as: ; (6) wherein is the number of packets transmitted in the path corresponding to the
[0045] th entropy value. 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 Figure 5 .
[0046] In one embodiment, the out - port utilization rate is used as the status information of the corresponding path to determine 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
[0047] The suspension of the congested path is specifically as follows: When a path corresponding to an entropy value becomes congested, that is, when the out - port utilization rate 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 hotspot. Therefore, a suspension time needs to be set for the congested entropy value. First, a minimum suspension time , 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.
[0048] The pause time of the entropy value should be positively correlated with the utilization rate of the output port of the most congested link segment , so the pause time of the entropy value can be set to , , , where is the congestion sensitivity adjustment coefficient, and the squared form makes the entropy value with severe congestion be "more strongly" punished. At the same time, in order to handle the situation of continuous congestion, if an entropy value is congested continuously, its pause time should gradually become longer. Therefore, the pause 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 pause time of the entropy value can be expressed by the following formula: , where ; (7) In addition, after the pause 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 pause 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 indicates 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 pause time to deal with the problem of continuous congestion.
[0049] 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 based on 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 one-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 of the flow, a map array with a size of is maintained to record the usage status information of the paths corresponding to multiple entropy values.
[0050] 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 becomes 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.
[0051] When 0 , it indicates that the path corresponding to this entropy value is not 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 path-interleaved data distribution module (see the above for the calculation of the usage probability). To reduce the computational overhead, on the sender network card, each entropy value's should-be-used probability can be recalculated through the path-interleaved data distribution module and the congestion window can be recalculated through the congestion window calculation module at regular intervals, thereby implementing the multi-path congestion control method.
[0052] In this embodiment, by collecting network telemetry information, adjusting the congestion window, allocating data among multiple paths, and suspending the use of congested paths, it aims to optimize the existing multi-path congestion control algorithm based on ECN and RTT, which has the problems of slow congestion perception and inability to 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: 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.
[0053] 2) Adjust the congestion window based on the number of available entropy values stored on the end side and the detailed load information of the paths corresponding to the available entropy values, enabling earlier and more accurate handling of network congestion.
[0054] 3) Design 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 data to obtain a smaller completion time when transmitted on the multi-path set.
[0055] 4) Design a more refined suspension time for congested entropy values, effectively coping with different degrees of congestion in the multi-path set.
[0056] As mentioned above, the above is only a 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 of the present invention and its inventive concept, making equivalent substitutions or changes, should be covered by the protection scope of the present invention.
Claims
1. A data center network multipath congestion control method based on network telemetry, characterized in that: include: Receive the ACK packet carrying INT information. The ACK packet carries the The entropy value corresponds to the utilization information of multiple switch output ports on the path. The output port utilization of the most congested link is taken as the state information of the corresponding path. The flow number and entropy value in the ACK packet are used to update the fine-grained state information of the corresponding position in the map array. The congestion window is dynamically adjusted based on the updated map array, with the goal of improving the average utilization of the multipath set and responding to the upcoming congestion in advance. The optimization goal is to minimize the time it takes for data packets to complete transmission on multiple paths, and the data in the congestion window is distributed to multiple paths to achieve reasonable data distribution among multiple paths.
2. The data center network multipath congestion control method based on network telemetry according to claim 1, characterized in that: The INT information includes hop count, flow number, and entropy value; The hop count indicates the total number of switches that the data packet has passed through; The flow number indicates 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 for a data packet, it performs hashing based on the flow number, entropy value, and the switch’s own information; The number of times a data packet is forwarded through the switch is D, and the number of outbound port utilization information in the INT information in the packet header is Q. Set D=Q.
3. The data center network multipath congestion control method based on network telemetry according to claim 1, characterized in that: When receiving an ACK packet carrying INT information, the ACK packet carries the The entropy value corresponds to the utilization information of multiple switch output ports on the path, and the output port utilization of the most congested link is taken as the status information of the corresponding path, which specifically includes: 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 pre-set and greater than the number of paths actually existing between two nodes in the network. When the stream starts to be sent, 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 receiving the ACK packet with INT information, the sender of the flow takes the outbound port utilization of the most congested link as the status information of the corresponding path.
4. The data center network multipath congestion control method based on network telemetry according to claim 1, characterized in that: In order to improve the average utilization of the multipath set and respond to the upcoming congestion in advance, the congestion window is dynamically adjusted based on the updated map array. The dynamic adjustment of the congestion window is as follows: is the amount of available entropy Set the upper threshold and lower threshold , is the average utilization of the path corresponding to the available entropy value Setting the upper utilization threshold and lower utilization threshold ; like , The congestion window remains unchanged; like , then the congestion window is reduced by subtraction; like , then the congestion window is multiplicatively reduced; like , then the congestion window increases additively; like , then the congestion window increases additively; like , the congestion window remains unchanged; like , then the congestion window increases multiplicatively; like , then the congestion window increases additively; like , the congestion window remains unchanged.
5. The data center network multipath congestion control method based on network telemetry according to claim 1, characterized in that: With the optimization goal of minimizing the time it takes for data packets to complete transmission on multiple paths, the data in the congestion window is distributed to multiple paths to achieve reasonable data distribution among multiple paths. Specifically: Optimization goal: Constraints: in, For the The entropy value corresponds to the number of packets transmitted by the path. For the The entropy value corresponds to the number of packets transmitted by the path. For the The entropy value corresponds to the path to complete the transmission The time it takes for a data packet to For the The entropy value corresponds to the path to complete the transmission The time it takes for a data packet to is the amount of entropy available from the sender to the receiver of the stream, is the transmission time of a data packet on a non-congested link on a path, For the The entropy value corresponds to the utilization rate of the most congested link in the path. is the packet size, is the link bandwidth, is the number of packets to be transmitted in the congestion control window.
6. The data center network multipath congestion control method based on network telemetry according to claim 5, characterized in that: Distribute the data in the congestion window to multiple paths, specifically: The number of data packets is calculated based on the optimization objectives and constraints. , using the number of packets Calculate the first The usage probability of the path corresponding to the entropy value ; The sender of the flow uses the probability By using the corresponding entropy value, we can approximately minimize the total transmission time when allocating the data in the congestion window to multiple paths; The probability of use The calculation formula is as follows: in, Indicates The entropy value corresponds to the number of packets transmitted by the path.
7. The data center network multipath congestion control method based on network telemetry according to claim 1, characterized in that: The outbound port utilization rate of the most congested link is used as the status information of the corresponding path to determine whether the path corresponding to the entropy value continues to be used, specifically: When the state information is greater than the congestion threshold, it means that the path corresponding to the entropy value is suspended due to congestion; When the state 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 data center network multipath congestion control method based on network telemetry according to claim 7, characterized in that: When the state information is greater than the congestion threshold, it means that the path corresponding to the entropy value is suspended due to congestion, specifically: Entropy suspension time The outbound port utilization of the most congested link There is a positive correlation; ,in in, is the minimum suspension time, Indicates the number of times the entropy value is continuously congested. is the congestion sensitivity adjustment coefficient, is the dynamic factor of the cumulative effect of congestion, Dynamic Factor The maximum allowed value.
9. The data center network multipath congestion control method based on network telemetry according to claim 7, characterized in that: After the entropy value pauses and the corresponding path is suspended, data packets are directly sprayed on the path; After receiving the INT information corresponding to the entropy value, the map array is updated. If the INT information shows that the congestion of the path has been relieved, the probability of the entropy value being used is recalculated; If the received INT information shows that the congestion on the path has not been relieved, the number of times is increased. The entropy value will get a new pause time to cope with continued congestion.
10. A data center network multipath congestion control system based on network telemetry, characterized in that: It includes a module for acquiring and updating path status information, a module for dynamically adjusting windows, and a module for allocating data between paths; The path status information acquisition and update module is used to receive an ACK packet carrying INT information, the ACK packet carries the The entropy value corresponds to the utilization information of multiple switch output ports on the path. The output port utilization of the most congested link is taken as the state information of the corresponding path. The flow number and entropy value in the ACK packet are used to update the fine-grained state information of 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 of the multipath set and responding in advance to the upcoming congestion; The inter-path data distribution module is used to distribute the data in the congestion window to multiple paths with the optimization goal of minimizing the time consumed by data packets to complete transmission on multiple paths, so as to achieve reasonable distribution of data among multiple paths.
Citation Information
Patent Citations
Data center network congestion control method and device, equipment and storage medium
CN116915706A
Coordinating congestion control and adaptive load balancing
TW202508260A
Congestion control based on network telemetry
US20220311711A1
Method and system for controlling network traffic based on reasons for packet loss
US20240171515A1
Link detection method and related apparatus
WO2019233284A1
Cited By
Implementation method of leaf-ridge type architecture transparent proxy based on programmable switch
CN121486317A