Congestion control method, device and equipment

By distributing credit values ​​at the receiver and adjusting the sender's sending window, end-to-end congestion control is achieved, the problem of insufficient congestion control of transmission protocols in high-performance computing and artificial intelligence scenarios is solved, network bandwidth allocation and delay are optimized, and network bandwidth allocation and delay are improved. network performance.

CN119276788AInactive Publication Date: 2025-01-07NEW H3C TECH CO LTD

Patent Information

Application Number
CN202411434358.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-15
Publication Date
2025-01-07
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

In existing high-performance computing and artificial intelligence scenarios, transmission protocols such as TCP and RDMA have insufficient congestion control algorithms, resulting in flow conflicts, unreasonable bandwidth allocation, incast congestion and high latency problems, especially in data center networks.

Method used

Credit-based rate control (CBRC) algorithm is used to distribute credit values ​​by the receiver, adjust the sender's sending window, realize end-to-end congestion control, avoid switch participation, optimize bandwidth allocation and reduce delay.

Benefits of technology

Effectively optimize network bandwidth allocation, reduce latency, realize traffic load balancing, avoid incast congestion, and improve network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119276788A_ABST
    Figure CN119276788A_ABST
Patent Text Reader

Abstract

The invention provides a congestion control method, a congestion control device and congestion control equipment, which are used for solving the technical problem of congestion control in a super Ethernet transmission (UET) protocol. According to the method, the sending window of the sender is dynamically calculated according to the network side congestion condition by using the PI control module according to the link one-way delay, so that the purposes of reducing congestion and timely utilizing bandwidth are achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of digital communication technology, and in particular to a congestion control method, device and equipment. Background Art

[0002] Artificial intelligence and high-performance computing bring new challenges to networks, such as the need for greater scale, higher bandwidth density, multipathing, rapid response to congestion, and interdependence of individual data flow execution (where tail latency is a key consideration). Existing protocols may address some aspects of the above issues, but because they are designed for general-purpose networks, they lack support for features that are critical to artificial intelligence and high-performance computing, such as multipathing and easy configuration.

[0003] The Ultra Ethernet Consortium (UEC) is a new organization hosted by the Linux Foundation and its Joint Development Foundation Initiative. The goal of UEC is to go beyond existing Ethernet features, such as Remote Direct Memory Access (RDMA) and RDMA over ConvergedEthernet (RoCE) technology to provide a high-performance, distributed, and lossless transport layer optimized for high-performance computing and artificial intelligence. Compared with some of the problems with existing Ethernet features mentioned above, the design of the UEC specification will fill these gaps and provide the larger-scale networking required for these workloads. The goal of UEC is to provide a complete communication stack that solves technical problems across multiple protocol layers and provides easy-to-configure and manage features to achieve higher network utilization and lower tail latency, both of which are critical to reducing the completion time of Artificial Intelligence (AI) and High Performance Computing (HPC) jobs. Specifically, the goals that UEC wants to achieve in the future are:

[0004] 1) Open protocol specifications based on existing IP and Ethernet protocols.

[0005] 2) Multi-path, packet-spraying transmission fully utilizes the AI ​​network without causing congestion or head-of-line blocking, and does not require a centralized load balancing algorithm and routing controller.

[0006] 3) Incast management mechanism to control the fan-in on the final link to the target host with minimal packet loss.

[0007] 4) An efficient rate control algorithm allows transmission to quickly increase to line rate without causing performance loss to competing flows.

[0008] 5) API for out-of-order packet delivery, supporting message completion in both out-of-order and in-order modes, maximizing network and application concurrency and minimizing message latency.

[0009] 6) Scalable future networks to support millions of endpoints.

[0010] 7) Performance and optimal network utilization without the need for network and workload specific congestion algorithm parameter tuning.

[0011] 8) Aims to achieve line-speed performance of 800G, 1.6T and future faster Ethernet on commodity hardware.

[0012] The transmission protocols used in traditional high-performance computing / AI scenarios include TCP, Data Center TCP, RDMA, etc., but the congestion control algorithms involved in these protocols can only guide the control loop of the receiving end based on the interactive information generated by the process of adjusting the data flows of different protocols by the switch queue, which may cause flow conflicts (unreasonable load balancing), unreasonable bandwidth allocation, incast congestion, high latency and other problems. Incast congestion is a specific type of network congestion phenomenon that usually occurs in data center networks or distributed computing environments. It is characterized by multiple senders (source nodes) sending a large amount of data to the same receiver (destination node) almost at the same time, causing the network interface or switch buffer of the receiver to be quickly filled up, and causing serious network performance problems and data packet loss.

[0013] In order to achieve an efficient incast management mechanism, the Ultra Ethernet Transport (UET) protocol supports the use of a credit-based rate control (CBRC) algorithm (also known as a credit-based congestion control algorithm). The principle of this algorithm is mainly based on the edge-queued datagram service (EQDS), that is, by transferring queue-related operations and adjustment processes from the data center network to the host side. The core idea of ​​CBRC is to set a reasonable allocation strategy by distributing credits through the UET host receiving end to ensure that different traffic can share bandwidth fairly when the traffic on this side is not overloaded. This method of achieving end-to-end congestion control without the participation of switches can effectively optimize bandwidth allocation, reduce latency, and effectively achieve the purpose of traffic load balancing. Summary of the invention

[0014] In view of this, the present invention provides a congestion control method, apparatus and device for solving the technical problem of congestion control in the Ultra Ethernet transmission UET protocol.

[0015] Based on one aspect of the present invention, the present invention provides a congestion control method, which is applied to a receiving network device supporting a Ultra Ethernet transmission UET protocol, and the method comprises:

[0016] Receive the message sent by the sender and obtain the actual one-way delay of the traffic link corresponding to the first sender

[0017]

[0018] The congestion management module calculates the actual one-way delay of the traffic link corresponding to the current first sender. The one-way delay reference value with this traffic link (i.e. the traffic link corresponding to the current first sender) The relationship between determines whether traffic link congestion on the network side currently occurs;

[0019] When it is determined that the traffic link on the network side is congested, the proportional integral PI control module is based on the actual one-way delay of the traffic link. One-way delay reference value The deviation is used to adjust the sending window cwnd published to the sender i (t);

[0020] When it is determined that there is no traffic link congestion on the network side, the upper limit of the sending window of the last hop link between the first sender and the receiver is set As the send window cwnd published to the first sender i (t).

[0021] Furthermore, the method for determining whether traffic link congestion currently occurs on the network side is:

[0022] The congestion management module continuously performs a preset number of measurements. If the preset number of measurements all measure the actual one-way delay of the corresponding traffic link, Both are greater than the one-way delay reference value of the traffic link It is determined that the traffic link is congested on the network side.

[0023] Further, when it is determined that the traffic link congestion on the network side occurs, the method of adjusting the sending window sent to the sender by the proportional integral PI control module is:

[0024] The actual one-way delay of the traffic link corresponding to the first sender One-way delay reference value The difference is used as the input of the PI control module, and the output of the PI control module is used as the sending window control factor C i (t) to adjust the send window cwnd published to the sender i (t).

[0025] Furthermore, the output of the PI control module is used as the sending window control factor C i (t) to adjust the send window cwnd published to the sender i The method of (t) is:

[0026] The sending window control factor C i (t) is used as the input variable of the hyperbolic tangent function tanh(x), and the difference between 1 and the function value of tanh(x) is added to the sending window cwnd at the previous moment. i The product of (t-1) is used as the adjusted sending window cwnd published to the first sender i (t).

[0027] Furthermore, the method further comprises:

[0028] Publish the adjusted send window cwnd to the first sender i (t) Compare and take the smaller value as the final sending window cwnd published to the corresponding sender i (t).

[0029] Furthermore, the upper limit of the sending window of the last hop link between the first sender and the receiver is The calculation method is:

[0030] When N connections evenly share the bandwidth of the last hop link at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth delay product BDP of the last hop link and N; the BDP of the last hop link is the bandwidth of the last hop link multiplied by the benchmark one-way delay when the last hop link is not congested or,

[0031] When N different senders prioritize their flows at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth-delay product BDP of the last hop link and N multiplied by the priority weight coefficient of the corresponding flow.

[0032] Based on another aspect of the present invention, the present invention further provides a congestion control device, which is applied to a receiving network device supporting the Ultra Ethernet Transmission UET protocol, and the device includes:

[0033] The transceiver module is used to receive the message sent by the sender; and to publish the finalized sending window cwnd to the first sender. i (t);

[0034] Congestion management module, used to calculate the actual one-way delay of the traffic link corresponding to the first sender And the one-way delay reference value According to the actual one-way delay of the traffic link corresponding to the current first sender One-way delay reference value with this traffic link The relationship between determines whether traffic link congestion on the network side currently occurs;

[0035] The PI control module is used to determine the actual one-way delay of the traffic link when it is determined that the traffic link on the network side is congested. One-way delay reference value The deviation is used to adjust the sending window cwnd published to the sender i (t);

[0036] The congestion management module is also used to, when it is determined that no traffic link congestion occurs on the network side, set the upper limit of the sending window of the last hop link between the first sender and the receiver. As the send window cwnd published to the first sender i (t).

[0037] Furthermore, the PI control module includes:

[0038] PI control unit, the input of which is the actual one-way delay of the traffic link corresponding to the first sender One-way delay reference value The output of the PI control unit is the sending window control factor C i (t), C i (t) Used to adjust the send window cwnd published to the sender i (t);

[0039] The adjustment unit is used to adjust the sending window control factor C i (t) is used as the input variable of the hyperbolic tangent function tanh(x), and the difference between 1 and the function value of tanh(x) is added to the sending window cwnd at the previous moment. i The product of (t-1) is used as the adjusted sending window cwnd published to the first sender i (t).

[0040] Furthermore, the PI control module further includes:

[0041] A comparison unit is used to publish the adjusted sending window cwnd to the first sender. i (t) Compare and take the smaller value as the final sending window cwnd published to the corresponding sender i (t).

[0042] Furthermore, the congestion management module is also used to calculate the upper limit of the sending window of the last hop link between the first sender and the receiver. The calculation method is:

[0043] When N connections evenly share the bandwidth of the last hop link at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth delay product BDP of the last hop link and N; the BDP of the last hop link is the bandwidth of the last hop link multiplied by the benchmark one-way delay when the last hop link is not congested or,

[0044] When N different senders prioritize their flows at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth-delay product BDP of the last hop link and N multiplied by the priority weight coefficient of the corresponding flow.

[0045] The device provided by the present invention can be implemented in software, hardware or a combination of software and hardware. When implemented in a software module, the program code of the software module is loaded into the storage medium of the device, and the processor reads the program code in the storage medium and executes it. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments of the present invention or the description of the prior art will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments recorded in the present invention. For ordinary technicians in this field, other drawings can also be obtained based on these drawings of the embodiments of the present invention.

[0047] Figure 1 A schematic diagram provided for an embodiment of the present invention;

[0048] Figure 2 A schematic diagram of a UET component and a data transmission process provided by an embodiment of the present invention;

[0049] Figure 3 It is a schematic diagram of the process of receiving messages and issuing credit values ​​by the receiver in CBRC;

[0050] Figure 4A schematic diagram of the structure of a PID control module used in an embodiment of the present invention;

[0051] Figure 5 is a schematic diagram of a function curve of a tanh(x) function used to adjust a sending window;

[0052] Figure 6 A schematic diagram of a congestion control method according to an embodiment of the present invention;

[0053] Figure 7 A schematic diagram of the structure of an electronic device provided in one embodiment of the present invention for implementing the congestion control method provided in the present invention. DETAILED DESCRIPTION

[0054] The terms used in the embodiments of the present invention are only for the purpose of describing specific embodiments, rather than limiting the embodiments of the present invention. The singular forms of "a", "said" and "the" used in the embodiments of the present invention are also intended to include plural forms, unless the context clearly indicates other meanings. Although the embodiments of the present invention may be described in a first, second, or third manner, this description is only used to distinguish similar information, entities, or steps, rather than to describe a specific order or sequence. For example, without departing from the scope of the embodiments of the present invention, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. For another example, in some scenarios, the first information may refer to one information or to multiple information of the same type. In addition, the word "if" used may be interpreted as "at..." or "when..." or "in response to determination". The "and / or" in the present invention is only a kind of association relationship describing the associated objects, indicating that there may be three relationships, for example, A and / or B, which may represent: A exists alone, A and B exist at the same time, and B exists alone, wherein A and B may be singular or plural. In addition, in the description of the present invention, unless otherwise specified, "multiple" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or plural.

[0055] Figure 1The figure is a schematic diagram of the overall architecture of the UET protocol. CBRC belongs to the congestion management module in the overall architecture of the UET, and the congestion management module is located in the packet delivery sublayer (PDS). The application layer (Software APIs) will first send the message (msg) to the semantics sublayer (Semantics Sublayer, SES) through libfabrics (a common low-level network API). SES will split the received complete message msg into packets (packets for short) and hand them over to PDS. PDS sends and receives messages based on congestion management.

[0056] Figure 2 A schematic diagram of the UET component and data transmission process provided for an embodiment of the present invention. When a message reaches the PDS and needs to be sent, the PDS message sending module will ask the congestion management module whether it can send a packet, and the CBRC will make a judgment based on the current credit value (number of bytes) of the sender on this end. If the credit value is sufficient to send a message of the current size, the congestion management module will reply with a signal that can be sent to notify the PDS that it can send a packet; if the credit value is insufficient, the PDS is not allowed to send a packet, and at the same time, the PDS is notified to send a smaller RTS (Request to Send) control message to request the receiver to publish a larger credit value to itself (the sender). From this perspective, the key to the design of CBRC lies in the process of publishing the receiver's credit value. The ideal credit value publishing strategy should not only reduce the probability of incast congestion, but also reasonably allocate bandwidth to multiple senders.

[0057] The distribution process of credit value by the CBRC receiver in the current UET protocol draft is as follows: the receiver will maintain two sets of queues, namely the Active Sender List (ASL) and the Idle Sender List (ISL). The former stores all senders whose requested credit value has not been met, and the latter stores all senders whose requested credit value has been met. When the credit value requested by the sender in the ASL is met, it will be transferred to the ISL; when the sender in the ISL sends a new credit value to the receiver, it will be transferred to the ASL.

[0058] Figure 3 The figure is a schematic diagram of the process of receiving the message and issuing the credit value by the receiver in CBRC. The process of the PDS receiver message processing and the credit value timer module issuing the credit value based on CBRC is briefly described as follows:

[0059] Figure 3The message processing process of the message receiving and processing module is as follows:

[0060] S301. The receiver receives a message from the sender and determines whether the credit value timer module has timed out. If so, the credit value timer module is called to publish a new credit value (the specific process will be mentioned later);

[0061] S302. If the credit value timer module has not timed out, determine whether the received message carries the new requested credit value calculated by the sender (i.e., the pull target value. Whenever the sender finds that it has used up the previous credit value, it will calculate a pull target value for the receiver to indicate that it needs more credit value). If not, enter the normal PDS message processing process;

[0062] S303. If the message carries a pull target value, the receiver will determine whether the pull target value is greater than the credit value issued to the sender last time, and whether the sender is in the ASL queue. If one of the two judgment conditions is negative, or both are negative, no processing is performed; otherwise, S304 is executed.

[0063] S304. If the results of both judgment conditions are yes, the receiver inserts the sender into the tail of the ASL queue and publishes a new credit value to the sender when it is polled;

[0064] S305. If the sender is originally in the ISL queue (before being placed at the tail of the ASL queue), remove it from the ISL queue.

[0065] Figure 3 The processing of the credit timer module is as follows:

[0066] S310. When the credit timer module times out, first determine whether the ASL queue is empty; if not empty, execute S311, if empty, execute S320;

[0067] S311. If the ASL queue is not empty, obtain the relevant information corresponding to the sender in the ASL queue header (sender task ID, sender IP port, and the credit value last published to the sender by the receiver), and calculate the credit value that should be published to the sender according to the following formula (expressed by sender.pull):

[0068] sender.pull=min(sender.pull_target,sender.pull+MTU) (Formula 1)

[0069] Among them, sender.pull on the right side of the equation represents the credit value that the receiver issued to the sender last time, sender.pull_target represents the credit value requested by the sender this time, and MTU is the maximum transmission unit (usually 1500 bytes). min() is the minimum value function, which means taking the minimum value from two values.

[0070] S312. The receiver will encapsulate the calculated credit value (i.e. sender.pull) into a PDS control message and reply to the sender.

[0071] S313. Determine whether the calculated credit value satisfies the credit value requested by the sender. If so, remove the sender from the ASL queue and move it to the end of the ISL queue. If not, keep the sender in the ASL (insert it to the end of the ASL queue).

[0072] S320. If the ASL queue is empty, determine whether the ISL queue is empty. If the ISL queue is empty, do not perform any operation. If the ISL queue is not empty, execute S321.

[0073] S321. Obtain the sender information stored in the ISL queue header, and issue a credit value of sender.pull+k*MTU size to the sender.

[0074] Among them, sender.pull is the credit value that the receiver last published to the sender, k is the credit value publishing coefficient, and MTU is the maximum transmission unit. According to the protocol, the k value needs to be determined according to the actual receiving capacity of the receiver, so the value may not be the same in different scenarios.

[0075] S322. The receiver carries the calculated new credit value via a PDS control message and sends it to the corresponding sender.

[0076] S323. Determine whether the calculated new credit value is less than the credit value requested by the sender (i.e., the pull target value) plus the sum of a maximum sending window. If it is less than, it means that the receiver can continue to release credit values ​​to the sender in the future, and execute S324; if it is not less than, it means that the credit value released to the sender is already large enough and does not need to be released to it in the future. No processing is performed at this time, which is equivalent to the sender being in a "free state".

[0077] The value of the maximum sending window max cwnd is usually 1.5 times the product of bandwidth and delay. This value depends on the bandwidth and delay values ​​of the specific scenario.

[0078] S324. Put the sender back to the tail of the ISL queue.

[0079] The inventors analyzed the congestion control method based on the CBRC algorithm and found that only the receiver side publishes the credit value according to its own receiving capacity to drive the sender. Although it can avoid last-hop congestion (i.e. incast congestion), it cannot perceive and alleviate the network congestion (in-network congestion). The receiver publishes a fixed credit value, which means that the sender uses a fixed sending window. Once a bottleneck link on the network side is congested, the CBRC algorithm cannot notify the sender to adjust the sending window in time, which further aggravates the decline in transmission performance.

[0080] In addition, relying solely on the receiver to publish credits to drive the sender may result in insufficient link bandwidth utilization. Since there are many short-duration flows in the data center, when part of this flow is transmitted, the corresponding bandwidth will be released. Other flows on the same link cannot perceive this situation and therefore will not increase the sending rate to grab the excess bandwidth, which will cause a waste of available link bandwidth.

[0081] In order to avoid incast congestion and timely utilize the available link bandwidth, the present invention proposes a congestion control scheme for dynamically adjusting the sender's sending window. The scheme uses a PI control module to dynamically calculate the sender's sending window according to the one-way delay of the link and the congestion situation on the network side, thereby achieving the purpose of alleviating congestion and timely utilizing bandwidth.

[0082] The specific implementation process of the present invention is described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be noted that the step processes shown in the accompanying drawings and embodiments can be executed in a computer system such as a set of computer executable instructions, and one or more of the exemplified method steps can be single or multiple or aggregated together and run in the computer system in the form of a software module or a virtual device. Moreover, although the exemplified step processes have time and sequential logic, the present invention is not limited to these steps in certain cases. They can be executed in an order different from that here. Under the guidance of the purpose of the present invention, simple changes or combinations of the execution order of these steps should also fall within the scope of the disclosure of the embodiments of the present invention.

[0083] Figure 4 The schematic diagram of the structure of the PID control module used in one embodiment of the present invention. The full name of the PID control module is the proportional-integral-derivative control module / controller, which consists of a proportional unit, an integral unit, and a derivative unit. The PID control module is mainly suitable for systems that are generally linear and whose dynamic characteristics do not change over time. For example, typical application scenarios of PID in industry include: temperature control, flow control, liquid level control, etc.

[0084] The basic principle of PID is to calculate a control quantity by summing the three units of proportional (P), integral (I) and differential (D) according to the size of the error, and then input this control quantity into the controlled system (Process). After receiving the input, the system will output a corresponding output (Output). The PID control module then detects the output and calculates the error (Error) with the set reference value, and then repeats the above process. The proportional unit considers the current error of the system, the integral unit considers the sum of the errors in the past period of time, and the differential unit considers the degree of error in the future. Some applications only require some units of the PID controller, and the parameters of the unnecessary units (K_p, K_i or K_d) can be set to zero. Therefore, the PID control module can become a PI control module, a PD control module, a P control module or an I control module. Among them, the proportional integral PI control module is more commonly used. Since the D control module is very sensitive to system feedback (feedback), if there is no I control module, it is difficult for the system output to stabilize to the reference value.

[0085] The PI control module used in the embodiment of the present invention can be based on the PID control module to limit the time, and the parameter (K_d) corresponding to the differential (D) unit in the PID control module can be set to zero, so that only the proportional (P) unit and the integral (I) unit therein are used to form the PI control module used in the embodiment of the present invention.

[0086] The basic idea of ​​the method for congestion control of traffic between a sender and a receiver provided by the present invention is: taking the difference between the actual one-way delay of the link between the first sender and the receiver and the one-way delay reference value as the input of the PI control module, taking the output of the PI control module as the sending window control factor, and dynamically adjusting the sending window sent to the first sender based on the currently obtained sending window control factor, thereby dynamically adjusting the sending window sent to the sender according to the congestion situation on the network side, thereby achieving the purpose of alleviating congestion and timely utilizing bandwidth.

[0087] The following first describes in detail a method for the PI control module to dynamically adjust a sending window sent to a sender based on a one-way link delay.

[0088] Before implementing the congestion control method provided by the present invention, multiple senders supporting the UET protocol need to establish connections with the receiving device, and the sender and the receiver need to use the network time protocol NTP for inter-terminal time synchronization, and measure the minimum round-trip delay of each connection (flow) to obtain the benchmark one-way delay with the connection link. After starting up, different end-side devices (senders) call the libfabrics interface to send tasks, and libfabrics sends the tasks to the semantic sublayer SES in the form of complete information (messages); SES splits the messages into packets and submits them to the packet transmission sublayer PDS on the network card device side for sending. The sender PDS sends the messages carrying the sending timestamp in the sending queue to the receiver PDS. The congestion management of the receiver is based on calculating the one-way delay of the link based on the timestamp of the received message and the sending timestamp carried by the message.

[0089] Ideally, when the link and the switch devices in it are not congested, the measured one-way delay of a message on a certain flow i from the sender to the receiver can be considered as the benchmark one-way delay Since there is often a backlog of messages in the device queue during actual transmission, the one-way delay of the message is generally greater than Therefore, the actual one-way delay reference value should be set slightly larger than When congestion occurs on the network side, assume that the one-way delay reference value of a flow is Its The relationship is:

[0090]

[0091] Among them, α is a magnification factor greater than 1 (α is generally an empirical value and can be set between 1.1-1.2).

[0092] When the receiver calculates the actual one-way delay of a certain flow i After that, the difference between the actual one-way delay and the one-way delay reference value can be used as the deviation of the PI control module, which will be used as the input of the PI control module to calculate the next control amount. Therefore, the input of the PI control module corresponding to a certain flow i at time t is the difference E between the actual one-way delay and the one-way delay reference value. i (t) can be expressed as:

[0093]

[0094] E i (t) After input into the PI control module, the PI control module calculates and outputs the sending window control factor C i (t):

[0095]

[0096] Among them, K p and K iThey are the proportional gain coefficient and integral gain coefficient of the PI control module. The selection of these two values ​​will affect the convergence speed and oscillation of the PI control module and needs to be determined according to the actual scenario. τ is the integral factor, represents the sum of the cumulative errors of the one-way delay from time 0 to time t, so C i (t) can also be expressed as:

[0097]

[0098] When C i When (t) is greater than 0, it means that the amount of flying data in the link between the current receiver and the i-th sender exceeds the amount that the link capacity can accommodate. At this time, the sending window published to the sender should be quickly reduced; otherwise, it means that there is still available bandwidth in the link. At this time, the sending window published to the sender should be quickly increased.

[0099] In one embodiment of the present invention, when increasing or decreasing the sending window published to the sender, the speed of increase or decrease (i.e., slope) is also taken into consideration, and an adjustment function is introduced to gradually slow down the speed of increase or decrease to avoid excessive occupation of bandwidth.

[0100] In view of the above considerations, an embodiment of the present invention introduces the hyperbolic tangent function tanh(x) as an adjustment function, and scales the sending window control factor output by the PI control module through the following formula and calculates the sending window cwnd published to the sender corresponding to the i-th stream at time t i (t):

[0101] cwnd i (t) = [1-tanh(C i (t))]×cwnd i (t-1)(Formula 5)

[0102] in, The tanh function is a monotonically increasing S-type function with a value range of (-1,1). Time t refers to the time node when the RTT is currently received from the congestion management module, and t-1 refers to the time node when the RTT was last received from the congestion management module. The initial value of the sending window cwnd can be set based on the bandwidth-delay product BDP of the corresponding link.

[0103] Figure 5 A schematic diagram of a function curve of the tanh(x) function used to adjust the sending window.

[0104] based on Figure 5 From formula 5, we can know that when C i When (t)>0, it means that the flight data volume is greater than the network link capacity. At this time, 1-tanh(C i(t)) is less than 1, the sending window published at time t will be smaller than the previous time, and as C i As (t) increases, the degree of reduction in the sending window should gradually decrease (the sensitivity decreases);

[0105] When C i When (t)<0, it means that the flight data volume is less than the network link capacity. At this time, 1-tanh(C i (t)) is greater than 1, the sending window published at time t will be larger than the previous time, and as C i (t) decreases, and the degree of increase in the sending window should gradually decrease. Therefore, the use of the tanh function can not only control whether the sending window should be increased or decreased at the next moment, but also make the degree of increase or decrease more reasonable.

[0106] Figure 6 A schematic flow chart of the steps of a congestion control method provided in one embodiment of the present invention. The method is applied to a receiving network device supporting the UET protocol for ultra-Ethernet transmission. UET involves a complete communication stack. The present invention mainly optimizes the packet transmission sublayer PDS on the network card side. The method includes:

[0107] S601. The receiver receives the message sent by the sender and obtains the actual one-way delay of the traffic link corresponding to the first sender.

[0108] Assuming that the link capacity corresponding to the last hop of the receiver is the bandwidth-delay product BDP of the link, the number of connections (flows) that the receiver can obtain through the congestion management module at time t is N (because some flows are destroyed after completion, or some flows are newly started, so this value may be different at different times and will be updated at any time). The first sender refers to any one of the N senders that establish a connection and traffic forwarding relationship with the receiver. For the convenience of description, it is represented by the i-th flow below.

[0109] When sending a message, the sender will carry a sending timestamp in the message header. At time t, the receiver's PDS module will pass the received message and the corresponding sending timestamp and receiving timestamp of the message to the congestion management module. After calculation by the congestion management module, the actual one-way delay of the first sender's corresponding traffic link can be obtained from the congestion management module.

[0110] The baseline one-way delay of the traffic link (i-th flow) corresponding to the first sender The one-way delay reference value of the traffic link is obtained by measuring in advance when the link has no traffic load, and calculating it according to formula 1.

[0111] S602. The congestion management module of the receiving party determines the actual one-way delay of the traffic link corresponding to the current first sender. One-way delay reference value with this traffic link The relationship between determines whether traffic link congestion on the network side currently occurs;

[0112] In one embodiment of the present invention, whether congestion occurs on the network side is determined in the following manner: in order to avoid interference from delay jitter, if the congestion management module of the receiving side measures that the actual one-way delay of the i-th flow is greater than the one-way delay reference value of the i-th flow for a preset number of consecutive times (for example, 3 times), If the traffic link is congested on the network side, the congestion management module will enable the PI control module to adjust the sending window sent to the sender, thereby reducing the negative impact of network side congestion on the transmission process. At the same time, by adjusting the sending window size, the available bandwidth in the link is used in a timely manner to avoid bandwidth waste.

[0113] S603. When it is determined that the traffic link on the network side is congested, the PI control module controls the traffic link based on the actual one-way delay. One-way delay reference value The deviation is used to adjust the sending window published to the sender;

[0114] The actual one-way delay based on the traffic link One-way delay reference value The method to adjust the sending window sent to the sender by the deviation is:

[0115] The actual one-way delay of the traffic link corresponding to the first sender One-way delay reference value The difference is used as the input of the PI control module, and the output of the PI control module is used as the sending window control factor C i (t) to adjust the send window cwnd published to the sender i (t).

[0116] In one embodiment of the present invention, the hyperbolic tangent function tanh(x) is introduced as an adjustment function to adjust the transmission window control factor C output by the PI control module. i (t) Scale and calculate the sending window cwnd published to the first sender at time t i (t). The specific adjustment method refers to Formula 5, that is, C i (t) is used as the input variable of tanh(x), and the difference between 1 and the function value of tanh(x) is added to the sending window cwnd at the previous moment. i The product of (t-1) is used as the adjusted sending window cwnd published to the first senderi (t).

[0117] S604. When it is determined that there is no traffic link congestion on the network side, the receiver increases the upper limit of the sending window of the last hop link between the first sender and the receiver. As the send window cwnd published to the first sender i (t).

[0118] In one embodiment of the present invention, when it is determined that traffic link congestion occurs on the network side, in order to prevent the cumulative sending windows of multiple senders connected to the receiver from exceeding the upper limit of the sending window of the last hop link connected to the receiver, This leads to incast congestion. The method further includes the following steps:

[0119] S605. The receiver calculates the upper limit of the sending window of the last hop link between the first sender and the receiver through the congestion management module. Publish the adjusted send window cwnd to the first sender i (t) Compare and take the smaller value as the final sending window cwnd published to the corresponding sender i (t).

[0120] The receiver calculates the upper limit of the last hop link sending window corresponding to the first sender among the N connections at time t through the congestion management module. The upper limit of the sending window will serve as the upper limit to prevent incast congestion.

[0121] In one embodiment of the present invention, when N connections at time t evenly share the bandwidth of the last hop link, the congestion management module calculates the upper limit of the sending window corresponding to each connection when N connections at time t evenly share the bandwidth of the last hop link as follows:

[0122]

[0123] The BDP of the last hop link is the bandwidth of the last hop link multiplied by the baseline one-way delay when the last hop link is not congested.

[0124] In another embodiment of the present invention, when different senders' flows are prioritized, the upper limit of the last-hop sending window corresponding to each sender can also be calculated based on the flow priority. For example, a corresponding priority weight coefficient is assigned to each flow after normalization based on the priorities of N flows, and the priority weight coefficient of each flow is multiplied by Formula 6 to obtain the upper limit of the last-hop sending window corresponding to each sender, thereby adapting to scenarios with different requirements for bandwidth allocation.

[0125] Based on the above steps, after obtaining the sending window cwnd published to the first sender i (t), the congestion management module returns the value of the sending window to the PDS and feeds it back to the sender, and the above process is repeated until all flows are transmitted.

[0126] In one embodiment of the present invention, the sending window-based congestion control method provided by the embodiment of the present invention is combined with the existing credit-based congestion control method using the CBRC algorithm. The user determines the congestion control method to be used in advance through testing in an actual scenario, and the user can select and switch the congestion control method to be used through the configuration interface.

[0127] Figure 7 The electronic device structure diagram for implementing the congestion control method provided by the present invention is provided in one embodiment of the present invention. The device 700 includes: a processor 710 such as a central processing unit (CPU), a communication bus 720, a communication interface 740, and a memory 730. The processor 710 and the memory 730 can communicate with each other through the communication bus 720. The memory 730 stores a computer program, and when the computer program is executed by the processor 710, the function of one or more steps in the congestion control method provided by the present invention can be implemented.

[0128] Memory refers to a device based on a certain storage medium for storing computer programs and / or data. It can be a volatile memory (VM, often called memory) or a non-volatile memory (NVM). Memory refers to an internal memory that directly exchanges data with the processor. It can read and write data at any time and at a very fast speed. It is used as a storage medium for temporary data of the operating system and other running programs. Memory can be synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), etc. Non-volatile memory refers to a memory that uses a persistent storage medium. It has the characteristics of large capacity and persistent data storage. It can be a storage class memory (SCM), a solid state disk (SSD), a NAND flash memory, a disk, etc. SCM is the industry's general term for new storage media between memory and flash memory. It is a composite storage technology that combines persistent storage characteristics and memory characteristics. Its access speed is slower than DRAM and faster than SSD hard disks.

[0129] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.

[0130] It should be appreciated that embodiments of the present invention may be implemented or implemented by computer hardware, a combination of hardware and software, or by computer instructions stored in a non-transitory (or non-persistent) memory. The method may be implemented in a computer program using standard programming techniques, including a non-transitory storage medium configured with a computer program, wherein the storage medium configured in this way causes the computer to operate in a specific and predefined manner. Each program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, if necessary, the program may be implemented in an assembly or machine language. In any case, the language may be a compiled or interpreted language. In addition, the program may be run on a programmed ASIC for this purpose. In addition, the operation of the process described in the present invention may be performed in any suitable order, unless the present invention otherwise indicates or otherwise clearly contradicts the context. The process described in the present invention (or variations and / or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions, and may be implemented as a code (e.g., executable instructions, one or more computer programs, or one or more applications) executed on one or more processors in common, by hardware or a combination thereof. The computer program includes a plurality of instructions that may be executed by one or more processors.

[0131] Further, the method can be implemented in any type of computing platform that is operably connected to a suitable computer, including but not limited to a personal computer, a minicomputer, a mainframe, a workstation, a network or distributed computing environment, a separate or integrated computer platform, or in communication with a charged particle tool or other imaging device, etc. Various aspects of the present invention can be implemented in machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, an optical read and / or write storage medium, a RAM, a ROM, etc., so that it can be read by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the process described herein. In addition, the machine-readable code, or portions thereof, can be transmitted via a wired or wireless network. When such media includes instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor, the invention described in the present invention includes these and other different types of non-transitory computer-readable storage media. When programmed according to the methods and techniques of the present invention, the present invention also includes the computer itself.

[0132] The above description is only an embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims

1. A congestion control method, characterized in that: The method is applied to a receiving network device supporting the Ultra Ethernet Transmission (UET) protocol, and the method comprises: Receive the message sent by the sender and obtain the actual one-way delay of the traffic link corresponding to the first sender The congestion management module calculates the actual one-way delay of the traffic link corresponding to the current first sender. One-way delay reference value with this traffic link The relationship between determines whether traffic link congestion on the network side currently occurs; When it is determined that the traffic link on the network side is congested, the proportional integral PI control module is based on the actual one-way delay of the traffic link. One-way delay reference value The deviation is used to adjust the sending window cwnd published to the sender i (t); When it is determined that there is no traffic link congestion on the network side, the upper limit of the sending window of the last hop link between the first sender and the receiver is set As the send window cwnd published to the first sender i (t).

2. The method according to claim 1, characterized in that The method for determining whether traffic link congestion currently occurs on the network side is: The congestion management module continuously performs a preset number of measurements. If the preset number of measurements all measure the actual one-way delay of the corresponding traffic link, Both are greater than the one-way delay reference value of the traffic link It is determined that the traffic link is congested on the network side.

3. The method according to claim 1, characterized in that When it is determined that the traffic link congestion on the network side occurs, the method by which the proportional integral PI control module adjusts the sending window sent to the sender is: The actual one-way delay of the traffic link corresponding to the first sender One-way delay reference value The difference is used as the input of the PI control module, and the output of the PI control module is used as the sending window control factor C i (t) to adjust the send window cwnd published to the sender i (t).

4. The method according to claim 3, characterized in that The output of the PI control module is used as the sending window control factor C i (t) to adjust the send window cwnd published to the sender i The method of (t) is: The sending window control factor C i (t) is used as the input variable of the hyperbolic tangent function tanh(x), and the difference between 1 and the function value of tanh(x) is added to the sending window cwnd at the previous moment. i The product of (t-1) is used as the adjusted sending window cwnd published to the first sender i (t).

5. The method according to claim 4, characterized in that The method further comprises: Publish the adjusted send window cwnd to the first sender i (t) Compare and take the smaller value as the final sending window cwnd published to the corresponding sender i (t).

6. The method according to claim 1, characterized in that The upper limit of the sending window of the last hop link between the first sender and the receiver The calculation method is: When N connections evenly share the bandwidth of the last hop link at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth delay product BDP of the last hop link and N; the BDP of the last hop link is the bandwidth of the last hop link multiplied by the benchmark one-way delay when the last hop link is not congested or, When N different senders prioritize their flows at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth-delay product BDP of the last hop link and N multiplied by the priority weight coefficient of the corresponding flow.

7. A congestion control device, characterized in that: The device is applied to a receiving network device supporting the ultra-Ethernet transmission UET protocol, and the device includes: The transceiver module is used to receive the message sent by the sender; and to publish the finalized sending window cwnd to the first sender. i (t); Congestion management module, used to calculate the actual one-way delay of the traffic link corresponding to the first sender And the one-way delay reference value According to the actual one-way delay of the traffic link corresponding to the current first sender One-way delay reference value with this traffic link The relationship between determines whether traffic link congestion on the network side currently occurs; The PI control module is used to determine the actual one-way delay of the traffic link when it is determined that the traffic link on the network side is congested. One-way delay reference value The deviation is used to adjust the sending window cwnd published to the sender i (t); The congestion management module is also used to, when it is determined that no traffic link congestion occurs on the network side, set the upper limit of the sending window of the last hop link between the first sender and the receiver. As the send window cwnd published to the first sender i (t).

8. The device according to claim 7, characterized in that The PI control module includes: PI control unit, the input of which is the actual one-way delay of the traffic link corresponding to the first sender One-way delay reference value The output of the PI control unit is the sending window control factor C i (t), C i (t) Used to adjust the send window cwnd published to the sender i (t); The adjustment unit is used to adjust the sending window control factor C i (t) is used as the input variable of the hyperbolic tangent function tanh(x), and the difference between 1 and the function value of tanh(x) is added to the sending window cwnd at the previous moment. i The product of (t-1) is used as the adjusted sending window cwnd published to the first sender i (t).

9. The device according to claim 8, characterized in that The PI control module also includes: A comparison unit is used to publish the adjusted sending window cwnd to the first sender. i (t) Compare and take the smaller value as the final sending window cwnd published to the corresponding sender i (t).

10. The device according to claim 7, characterized in that The congestion management module is also used to calculate the upper limit of the sending window of the last hop link between the first sender and the receiver. The calculation method is: When N connections evenly share the bandwidth of the last hop link at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth delay product BDP of the last hop link and N; the BDP of the last hop link is the bandwidth of the last hop link multiplied by the benchmark one-way delay when the last hop link is not congested or, When N different senders prioritize their flows at time t, the upper limit of the sending window of the last hop link is The quotient of the bandwidth-delay product BDP of the last hop link and N multiplied by the priority weight coefficient of the corresponding flow.

11. An electronic device, characterized in that: It includes a processor, a communication interface, a storage medium and a communication bus, wherein the processor, the communication interface and the storage medium communicate with each other via the communication bus; Storage medium for storing computer programs; A processor, for implementing the method according to any one of claims 1 to 6 when executing a computer program stored on a storage medium.

Citation Information

Patent Citations

  • Network congestion control method and device

    CN113438181A

Cited By

  • Secure data transmission method and system for API (Application Program Interface) and medium

    CN120768703A