Congestion Control Method, Apparatus, Electronic Device and Medium

By introducing the overload rate update mechanism of the first congestion sliding window and switching nodes in the data center network, the problem of inaccurate congestion control in the prior art is solved, and efficient congestion management under easy deployment is achieved.

CN118869600BActive Publication Date: 2025-06-10TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202410684955.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-05-29
Publication Date
2025-06-10
Estimated Expiration
2044-05-29

AI Technical Summary

Technical Problem

The prior art is difficult to achieve accurate congestion control in data center networks. The speed reduction and speed-up algorithm of DCQCN is coarse in speed regulation, while HPCC relies on switch status information, resulting in deployment difficulties.

Method used

The transmission rate is adjusted by setting a first congestion sliding window between the source node and the destination node and updating the sliding window based on the overload rate of the switching node. The switching node performs congestion marking and smooth marking of the packets based on the queue height. The destination node inserts the number of marks in the acknowledgement, and the source node adjusts the sending strategy accordingly.

Benefits of technology

It realizes precise execution of congestion control while being easy to deploy, avoids network queue accumulation, improves data transmission efficiency, and reduces the consumption of switch cache resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118869600B_ABST
    Figure CN118869600B_ABST
Patent Text Reader

Abstract

The present disclosure provides a congestion control method, apparatus, electronic device, and medium. The congestion control method includes: sending a message to a destination node based on a first congestion sliding window; receiving an acknowledgment response returned by the destination node, where the acknowledgment response includes a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a smooth mark, and there is at least one switching node between the source node and the destination node, and both the congestion mark and the smooth mark are obtained by the switching node marking the message based on the queue height in the switching node; determining an overload rate of the switching node based on the first quantity and the second quantity; and updating the first congestion sliding window based on the overload rate to control the number of unsent messages accommodated, so as to adjust the sending rate to the destination node. The embodiments of the present disclosure can accurately perform congestion control while being easy to implement and deploy. The embodiments of the present disclosure can be applied to various scenarios such as file transfer.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of data communication, and in particular, to a congestion control method, apparatus, electronic device, and medium. Background Art

[0002] Since the links in a data center network are shared, usually when the data flow through a certain link exceeds one, congestion will occur on that link. When congestion occurs, there will be multiple data flows entering the switch from different ports routed to the same outgoing port. Since the receiving bandwidth of multiple receiving ports is greater than the sending bandwidth of one outgoing port at this time, data packets will accumulate in the buffer queue of the outgoing port, resulting in queue accumulation, which not only reduces the efficiency of transmitting the data flow, but also consumes the buffer resources of the switch.

[0003] Currently, generally, the data center quantitative congestion notification (DCQCN) method or the high-precision congestion control (HPCC) method is used for congestion control. However, the speed adjustment granularity of the deceleration algorithm and the acceleration algorithm of DCQCN is relatively coarse, and it is difficult to accurately perform congestion control. And the execution of congestion control by HPCC depends on obtaining the status information of the switch through which the data flow passes, which requires too high customization of the switch, resulting in its difficulty in being applied to actual production and deployment. How to accurately perform congestion control while being easy to implement and deploy is an urgent problem to be discussed and solved at present. Summary of the Invention

[0004] Embodiments of the present disclosure provide a congestion control method, apparatus, electronic device, and medium, which can accurately perform congestion control while being easy to implement and deploy.

[0005] According to one aspect of the present disclosure, a congestion control method is provided, which is applied to a source node and includes:

[0006] Sending a message to a destination node based on a first congestion sliding window, where the first congestion sliding window is a window that moves in a message queue to be sent, and is used to indicate the first number of messages sent to the destination node. Once a message in the first number of messages receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent messages, and then the accommodated unsent messages are sent;

[0007] Receiving the acknowledgment response returned by the destination node, where the acknowledgment response includes a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a smooth mark, where there is at least one switching node between the source node and the destination node, and both the congestion mark and the smooth mark are obtained by the switching node marking the message based on the queue height in the switching node;

[0008] Determine the overload rate of the switching node based on the first quantity and the second quantity;

[0009] Update the first congestion sliding window based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0010] According to one aspect of the present disclosure, there is provided a congestion control method applied to a destination node. The congestion control method includes:

[0011] Receive packets sent by a source node;

[0012] If it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, based on the packets received within the predetermined time period, determine a first quantity of packets with congestion marks and a second quantity of packets with clear marks, and generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node, where at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the packet based on the queue height within the switching node;

[0013] If a predetermined time period has not elapsed since the last acknowledgment was sent, but a predetermined number of packets are received, determine the first quantity and the second quantity based on the predetermined number of packets, and generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node.

[0014] According to one aspect of the present disclosure, there is provided a congestion control method applied to a source node. The congestion control method further includes:

[0015] Send packets to a destination node based on a first congestion sliding window, where the first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once an acknowledgment is received for a packet among the first number of packets, slide the first congestion sliding window to accommodate more unsent packets, so as to send the accommodated unsent packets;

[0016] Receive the acknowledgment returned by the destination node, where the acknowledgment includes the overload rate of the switching node, where at least one switching node is provided between the source node and the destination node, and the switching node marks the packet based on the queue height within the switching node to obtain a congestion mark and a clear mark, and the overload rate is determined by the destination node based on the first quantity of packets with congestion marks and the second quantity of packets with clear marks;

[0017] Update the first congestion sliding window based on the overload rate to control the number of the unsent packets accommodated, so as to adjust the sending rate to the destination node.

[0018] According to one aspect of the present disclosure, there is provided a congestion control method, which is applied to a destination node, and the congestion control method further includes:

[0019] Receive packets sent by a source node;

[0020] If it is determined that a predetermined period of time has passed since the last acknowledgment was sent, then based on the packets received within the predetermined period of time, determine a first quantity of packets carrying congestion marks and a second quantity of packets carrying clear marks, and determine an overload rate of the switching node based on the first quantity and the second quantity, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node, wherein at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the packets based on the queue height within the switching node;

[0021] If a predetermined period of time has not passed since the last acknowledgment was sent, but a predetermined number of packets are received, then based on the predetermined number of packets, determine the first quantity and the second quantity, and determine an overload rate of the switching node based on the first quantity and the second quantity, generate an acknowledgment based on the overload rate, and return the acknowledgment to the source node.

[0022] According to one aspect of the present disclosure, there is provided a congestion control device, which is arranged in a source node, and the congestion control device includes:

[0023] A first sending unit, configured to send packets to a destination node based on a first congestion sliding window, wherein the first congestion sliding window is a window that moves in a queue of packets to be sent, and is used to indicate a first number of packets sent to the destination node. Once an acknowledgment is received for a packet among the first number of packets, slide the first congestion sliding window to accommodate more unsent packets, so as to send the accommodated unsent packets;

[0024] A first receiving unit, configured to receive the acknowledgment returned by the destination node, where the acknowledgment includes a first quantity of packets carrying congestion marks and a second quantity of packets carrying clear marks, wherein at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the packets based on the queue height within the switching node;

[0025] A first determination unit, configured to determine an overload rate of the switching node based on the first quantity and the second quantity;

[0026] An update unit, configured to update the first congestion sliding window based on the overload rate to control the number of the unsent packets accommodated, so as to adjust a sending rate to the destination node.

[0027] Optionally, the first determination unit is specifically configured to:

[0028] Every first period, determine a statistical marking probability of the switching node in the first period based on the first quantity and the second quantity;

[0029] Determine a statistical queue height of the switching node in the first period based on the statistical marking probability;

[0030] Determine an overload rate of the switching node in the first period based on the statistical queue height.

[0031] Optionally, the first determination unit is specifically configured to:

[0032] Obtain a first sequence of the acknowledgment responses received within the first period;

[0033] Use the first acknowledgment response in the first sequence as an acknowledgment response to be examined, and initialize the statistical marking probability;

[0034] Update the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined;

[0035] Update the acknowledgment response to be examined with the next acknowledgment response in the first sequence, and return to the step of updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined until there is no next acknowledgment response in the first sequence.

[0036] Optionally, the first determination unit is specifically configured to:

[0037] Initialize a first count value and a second count value to 1 respectively;

[0038] If the first count value is less than or equal to the first quantity, increase the statistical marking probability by using a first marking probability increasing algorithm, and increment the first count value by 1;

[0039] Return to the step of increasing the statistical marking probability by using the first marking probability increasing algorithm if the first count value is less than or equal to the first quantity until the first count value is greater than the first quantity;

[0040] If the second count value is less than or equal to the second quantity, use the first marking probability reduction algorithm to reduce the statistical marking probability, and increment the second count value by 1;

[0041] Return the step of if the second count value is less than or equal to the second quantity, use the first marking probability reduction algorithm to reduce the statistical marking probability, until the second count value is greater than the second quantity.

[0042] Optionally, the first determination unit is specifically configured to:

[0043] If the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0044] Use the difference between 1 and the first parameter as the second parameter;

[0045] Add the product of the statistical marking probability and the second parameter to the first parameter to obtain the increased statistical marking probability.

[0046] Optionally, the first determination unit is specifically configured to:

[0047] If the second count value is less than or equal to the second quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0048] Use the difference between 1 and the first parameter as the second parameter;

[0049] Use the product of the statistical marking probability and the second parameter as the reduced statistical marking probability.

[0050] Optionally, the first period is determined by the following method:

[0051] The number of acknowledgment responses received within a unit time;

[0052] The real-time degree of the service to which the message belongs;

[0053] The first determination unit is specifically configured to:

[0054] Based on the number of acknowledgment responses and the real-time degree, determine the first period.

[0055] Optionally, the congestion mark and the unobstructed mark are obtained by the switching node based on the queue height in the switching node to mark the message in the following manner:

[0056] If the queue height in the switching node is less than or equal to the first queue height, add the unobstructed mark to the message;

[0057] If the queue height in the switching node is greater than or equal to the second queue height, add the congestion mark to the packet, where the second queue height is greater than the first queue height;

[0058] If the queue height of the switching node is greater than the first queue height but less than the second queue height, add the congestion mark to the packet with a first probability and add the non-congestion mark to the packet with the complement of the first probability, where the complement of the first probability is the difference between 1 and the first probability, and the first probability linearly varies with the queue height between the first queue height and the second queue height.

[0059] Optionally, the first determination unit is specifically configured to:

[0060] Obtain the first queue height and the second queue height;

[0061] Obtain the critical marking probability corresponding to the second queue height;

[0062] Based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability, determine the statistical queue height.

[0063] Optionally, the first determination unit is specifically configured to:

[0064] Determine a first height difference between the second queue height and the first queue height;

[0065] Determine a first ratio of the statistical marking probability to the critical marking probability;

[0066] Based on the first queue height, the first height difference, and the first ratio, determine the statistical queue height.

[0067] Optionally, the first queue height is between 0 and 10 KB.

[0068] Optionally, the first determination unit is specifically configured to:

[0069] Obtain the bandwidth and the no-load delay of the switching node;

[0070] Based on the bandwidth and the no-load delay, determine the delay-bandwidth product of the switching node;

[0071] Based on the maximum delay of the service to which the packet belongs, determine a first coefficient;

[0072] Based on the first coefficient and the delay-bandwidth product, determine the second queue height.

[0073] Optionally, the first determination unit is specifically configured to:

[0074] Determine the load of the switching node in the first period based on the statistical queue height;

[0075] Obtain the port bandwidth of the switching node;

[0076] Determine the overload rate of the switching node in the first period based on the load, the port bandwidth, and the first period.

[0077] Optionally, the first determining unit is specifically configured to:

[0078] Obtain a queue weight coefficient and a queue fluctuation damping coefficient;

[0079] Determine a second height difference between the statistical queue height of the current first period and the statistical queue height of the previous first period;

[0080] Determine the load of the switching node in the first period based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference.

[0081] Optionally, the first determining unit is specifically configured to:

[0082] Determine a first product of the port bandwidth and the first period;

[0083] Determine the ratio of the load to the first product as the overload rate.

[0084] Optionally, the updating unit is specifically configured to:

[0085] If the overload rate of the previous first period is greater than 0, then when the acknowledgment response is received for the first time in the current first period, reduce the length of the first congestion window based on the overload rate;

[0086] If the overload rate of the previous first period is less than or equal to 0, then increase the length of the first congestion window each time the acknowledgment response is received in the current first period.

[0087] Optionally, the updating unit is specifically configured to:

[0088] When the acknowledgment response is received for the first time in the current first period, determine a first sum of 1 and the overload rate;

[0089] Use the result of dividing the length of the first congestion window by the first sum as the reduced length of the first congestion window.

[0090] Optionally, if the overload rate in the previous first period is greater than 0, when the acknowledgment is received for the first time in the current first period, after reducing the length of the first congestion sliding window based on the overload rate, the updating unit is further specifically configured to:

[0091] If the overload rate in the previous first period is greater than 0, reset the acknowledgment cumulative value to zero;

[0092] The updating unit is specifically configured to:

[0093] If the overload rate in the previous first period is less than or equal to 0, when the acknowledgment is received each time in the current first period, add 1 to the acknowledgment cumulative value;

[0094] If the acknowledgment cumulative value has not reached the predetermined cumulative value, determine the increased length of the first congestion sliding window based on the first rule;

[0095] If the acknowledgment cumulative value reaches the predetermined cumulative value, determine the increased length of the first congestion sliding window based on the second rule.

[0096] Optionally, the updating unit is specifically configured to:

[0097] If the acknowledgment cumulative value has not reached the predetermined cumulative value, obtain the second quantity in the acknowledgment;

[0098] Initialize the third count value to 1;

[0099] If the third count value is less than or equal to the second quantity, use the ratio of the additive increase window coefficient to the length of the first congestion sliding window as the sliding window length increase value, and add the length of the first congestion sliding window and the sliding window length increase value to obtain the increased length of the first congestion sliding window;

[0100] Add 1 to the third count value, and return to the step of using the ratio of the additive increase window coefficient to the length of the first congestion sliding window as the sliding window length increase value if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0101] Optionally, the updating unit is specifically configured to:

[0102] If the acknowledgment cumulative value reaches the predetermined cumulative value, obtain the second quantity in the acknowledgment;

[0103] Initialize the third count value to 1;

[0104] If the third count value is less than or equal to the second quantity, use the product of the predetermined multiple and the length of the first congestion sliding window as the increased length of the first congestion sliding window;

[0105] Increment the third count value by 1, and return to the step of using the product of the predetermined multiple and the length of the first congestion sliding window as the increased length of the first congestion sliding window if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0106] Optionally, the at least one switching node is a plurality of switching nodes, and the message is sent to the destination node through one of the plurality of switching nodes; the acknowledgment response includes the first quantity and the second quantity corresponding to each switching node;

[0107] The first determining unit is specifically configured to:

[0108] Based on the first quantity and the second quantity corresponding to each switching node, determine the overload rate of each switching node;

[0109] The updating unit is specifically configured to:

[0110] Based on the overload rate of each switching node, update the first congestion sliding window of each switching node.

[0111] Optionally, the congestion mark or the unblocked mark is correspondingly recorded in the message with the switching node identifier;

[0112] The first quantity and the second quantity are generated by the destination node in the following manner:

[0113] Initialize the fourth count value and the fifth count value corresponding to each switching node identifier to 0, where the fourth count value indicates the number of messages with the congestion mark added by the switching node corresponding to the switching node identifier, and the fifth count value indicates the number of messages with the unblocked mark added by the switching node corresponding to the switching node identifier;

[0114] When receiving a message, if the message contains the congestion mark corresponding to the switching node of the switching node identifier, increment the fourth count value corresponding to the switching node identifier by 1;

[0115] When receiving a message, if the message contains the unblocked mark corresponding to the switching node of the switching node identifier, increment the fifth count value corresponding to the switching node identifier by 1;

[0116] When a predetermined condition is satisfied, the fourth count value is determined as the first quantity, and the fifth count value is determined as the second quantity.

[0117] Optionally, the acknowledgment response is sent by the destination node in the following manner:

[0118] If it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, then based on the messages received within the predetermined time period, the first quantity and the second quantity are determined, and an acknowledgment response is generated and sent based on the first quantity and the second quantity;

[0119] If a predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of messages are received, then based on the predetermined number of messages, the first quantity and the second quantity are determined, and an acknowledgment response is generated and sent based on the first quantity and the second quantity.

[0120] According to one aspect of the present disclosure, there is provided a congestion control device disposed in a destination node, the device including:

[0121] A second receiving unit, configured to receive messages sent by a source node;

[0122] A second determining unit, if it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, the second determining unit is configured to determine a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a smooth mark based on the messages received within the predetermined time period, and generate an acknowledgment response based on the first quantity and the second quantity, and return the acknowledgment response to the source node, wherein there is at least one switching node between the source node and the destination node, and both the congestion mark and the smooth mark are obtained by marking the messages by the switching node based on the queue height within the switching node;

[0123] A third determining unit, if a predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of messages are received, the third determining unit is configured to determine the first quantity and the second quantity based on the predetermined number of messages, and generate an acknowledgment response based on the first quantity and the second quantity, and return the acknowledgment response to the source node.

[0124] According to one aspect of the present disclosure, there is provided an electronic device including a memory and a processor, the memory storing a computer program, and when the processor executes the computer program, the congestion control method described above is implemented.

[0125] According to one aspect of the present disclosure, there is provided a computer-readable storage medium storing a computer program, which when executed by a processor implements the congestion control method as described above.

[0126] According to one aspect of the present disclosure, there is provided a computer program product including a computer program, which is read and executed by a processor of a computer device, so that the computer device executes the congestion control method as described above.

[0127] In an embodiment of the present disclosure, an acknowledgment response returned by a destination node is received, and an overload rate of a switching node is determined based on a first number of packets carrying a congestion flag and a second number of packets carrying a clear flag included in the acknowledgment response. The overload rate can accurately reflect the current congestion situation of the switching node in the link. In this way, after updating the first congestion sliding window based on the overload rate, the number of target packets to be sent can be accurately controlled, thereby achieving precise congestion control. The first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once a packet in the first congestion sliding window receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent packets, and then the accommodated unsent packets are sent. In this way, when the load state of the switching node reflected by the overload rate is relatively heavy, the length of the first congestion sliding window is not increased, so that no new packets are sent, thereby alleviating network congestion. When the load state of the switching node reflected by the overload rate is relatively light, the length of the first congestion sliding window is increased to accommodate new packets for sending, making full use of the network bandwidth and precisely performing congestion control. At the same time, the method used in the embodiment of the present disclosure only needs to insert the first number of target packets carrying a congestion flag and the second number of target packets carrying a clear flag in the acknowledgment response returned by the destination node, with relatively low customization requirements for the destination node and no need to customize the switching node additionally, which is easy to implement and deploy.

[0128] Other features and advantages of the present disclosure will be described in the following specification, and some of them will become obvious from the specification or be understood by implementing the present disclosure. The objectives and other advantages of the present disclosure can be achieved and obtained through the structures specifically pointed out in the specification, claims and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0129] The drawings are used to provide a further understanding of the technical solutions of the present disclosure, and constitute a part of the specification. They are used together with the embodiments of the present disclosure to explain the technical solutions of the present disclosure, and do not constitute a limitation to the technical solutions of the present disclosure.

[0130] Figures 1A - 1B is an architecture diagram of a congestion control method according to an embodiment of the present disclosure;

[0131] Figure 2A is a schematic diagram of the software form of the congestion control method according to an embodiment of the present disclosure;

[0132] Figure 2B is a schematic diagram of the hardware form of the congestion control method according to an embodiment of the present disclosure;

[0133] Figure 3 is a schematic diagram of the topology of the data center network to which the congestion control method according to an embodiment of the present disclosure is applied;

[0134] Figure 4 is the overall flowchart of the congestion control method for calculating the overload rate by the source node according to an embodiment of the present disclosure applied to the source node side;

[0135] Figure 5 is a schematic diagram of the first congestion sliding window according to an embodiment of the present disclosure;

[0136] Figure 6 is a schematic diagram of the solution model of the congestion control method according to an embodiment of the present disclosure applied to the source node side;

[0137] Figure 7A is a schematic diagram of the system model of the congestion control method according to an embodiment of the present disclosure applied to the source node side;

[0138] Figure 7B is a schematic diagram of the interaction of the congestion control method according to an embodiment of the present disclosure applied to the source node side;

[0139] Figure 8 is the flowchart of the destination node sending an acknowledgment response according to an embodiment of the present disclosure;

[0140] Figure 9 is a schematic diagram of the queue height in the switching node according to an embodiment of the present disclosure;

[0141] Figure 10 is a schematic diagram of the switching node marking packets based on the queue height in the switching node according to an embodiment of the present disclosure;

[0142] Figure 11 is the specific flowchart of determining the overload rate of the switching node based on the first quantity and the second quantity according to an embodiment of the present disclosure;

[0143] Figure 12 is a schematic diagram of determining the first period based on the number of acknowledgment responses and the degree of real-time according to an embodiment of the present disclosure;

[0144] Figure 13It is a specific flowchart for determining the statistical marking probability of a switching node in a first period based on a first quantity and a second quantity according to an embodiment of the present disclosure;

[0145] Figure 14 It is a schematic diagram for obtaining a first sequence of acknowledgment responses received within a first period according to an embodiment of the present disclosure;

[0146] Figure 15 It is a specific flowchart for updating the statistical marking probability based on the first quantity and the second quantity in an acknowledgment response to be examined according to an embodiment of the present disclosure;

[0147] Figure 16 It is a specific flowchart for increasing the statistical marking probability by using a first marking probability increasing algorithm according to an embodiment of the present disclosure;

[0148] Figure 17 It is a specific flowchart for decreasing the statistical marking probability by using a first marking probability decreasing algorithm according to an embodiment of the present disclosure;

[0149] Figure 18 It is a specific flowchart for determining the statistical queue height of a switching node in a first period based on the statistical marking probability according to an embodiment of the present disclosure;

[0150] Figure 19 It is a specific flowchart for obtaining a first queue height and a second queue height according to an embodiment of the present disclosure;

[0151] Figure 20 It is a specific flowchart for obtaining a critical marking probability corresponding to a second queue height according to an embodiment of the present disclosure;

[0152] Figure 21 It is a specific flowchart for determining the overload rate of a switching node in a first period based on the statistical queue height according to an embodiment of the present disclosure;

[0153] Figure 22 It is a specific flowchart for determining the load amount of a switching node in a first period based on the statistical queue height according to an embodiment of the present disclosure;

[0154] Figure 23 It is a specific flowchart for determining the overload rate of a switching node in a first period based on the load amount, port bandwidth, and the first period according to an embodiment of the present disclosure;

[0155] Figure 24 It is a specific flowchart for updating a first congestion sliding window based on the overload rate according to an embodiment of the present disclosure;

[0156] Figure 25A It is a schematic diagram for increasing the length of a first congestion sliding window according to an embodiment of the present disclosure;

[0157] Figure 25B Schematic diagram of reducing the length of the first congestion sliding window according to an embodiment of the present disclosure;

[0158] Figure 26 Specific flowchart of reducing the length of the first congestion sliding window based on the overload rate according to an embodiment of the present disclosure;

[0159] Figure 27 Specific flowchart of increasing the length of the first congestion sliding window according to an embodiment of the present disclosure;

[0160] Figure 28 Specific flowchart of determining the length of the increased first congestion sliding window based on the first rule according to an embodiment of the present disclosure;

[0161] Figure 29 Specific flowchart of determining the length of the increased first congestion sliding window based on the second rule according to an embodiment of the present disclosure;

[0162] Figure 30 Specific flowchart of determining the overload rate of the switching node based on the first quantity and the second quantity and updating the first congestion sliding window based on the overload rate according to another embodiment of the present disclosure;

[0163] Figure 31 Schematic diagram of a message being sent to a destination node through one of multiple switching nodes according to an embodiment of the present disclosure;

[0164] Figure 32 Schematic diagram of simulation data of DCQCN according to an embodiment of the present disclosure;

[0165] Figure 33 Schematic diagram of simulation data of HPCC according to an embodiment of the present disclosure;

[0166] Figure 34 Schematic diagram of simulation data of a congestion control method according to an embodiment of the present disclosure;

[0167] Figure 35 Interaction schematic diagram of the destination node sending an acknowledgment response according to an embodiment of the present disclosure;

[0168] Figure 36 Overall flowchart of applying the congestion control method for calculating the overload rate by the source node to the destination node side according to an embodiment of the present disclosure;

[0169] Figure 37 Overall flowchart of applying the congestion control method for calculating the overload rate by the destination node to the source node side according to an embodiment of the present disclosure;

[0170] Figure 38AIt is a schematic diagram of a solution model of a congestion control method for calculating an overload rate by a destination node according to an embodiment of the present disclosure;

[0171] Figure 38B It is an interaction schematic diagram of the congestion control method for calculating an overload rate by a destination node according to an embodiment of the present disclosure applied to the source node side;

[0172] Figure 39 It is an overall flowchart of the congestion control method for calculating an overload rate by a destination node according to an embodiment of the present disclosure applied to the destination node side;

[0173] Figure 40 It is an interaction schematic diagram of the congestion control method for calculating an overload rate by a destination node according to an embodiment of the present disclosure applied to the destination node side;

[0174] Figure 41 It is a detailed implementation diagram of an embodiment of the congestion control method according to the present disclosure;

[0175] Figure 42 It is a block diagram of a congestion control device applied to the source node side according to an embodiment of the present disclosure;

[0176] Figure 43 It is a block diagram of a congestion control device applied to the destination node side according to an embodiment of the present disclosure;

[0177] Figure 44 It is a terminal structure diagram for executing the congestion control method according to an embodiment of the present disclosure;

[0178] Figure 45 It is a server structure diagram for executing the congestion control method according to an embodiment of the present disclosure. Detailed implementation manners

[0179] In order to make the objectives, technical solutions and advantages of the present disclosure clearer and more understandable, the present disclosure will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present disclosure and are not used to limit the present disclosure.

[0180] Before further elaborating on the embodiments of the present disclosure, the nouns and terms involved in the embodiments of the present disclosure are explained. The nouns and terms involved in the embodiments of the present disclosure are applicable to the following explanations:

[0181] Data center network: It is a complex arrangement of network devices such as routers, switches, and interfaces, which cooperate with each other to provide faster and more reliable network services.

[0182] Message: It is the data unit exchanged and transmitted in the network, that is, the data block that a node needs to send at one time. A message is also the unit of network transmission. During the transmission process, it will be continuously encapsulated into packets, frames, etc. for transmission. The encapsulation method is to add some information segments, which are the data organized in a certain format in the message header. A message contains the complete data information to be sent, and its length is very inconsistent, with no limit and variable length.

[0183] Explicit Congestion Notification (ECN): Usually, when congestion occurs in the data center network, TCP / IP will actively discard packets. After the source end detects packet loss, it will reduce the congestion window and lower the transmission rate. However, if ECN can be successfully negotiated end-to-end, the router supporting ECN can set a mark in the IP header when congestion occurs to send a signal of impending congestion, rather than directly discarding packets. ECN reduces the number of TCP packet losses, reduces latency (especially jitter) by avoiding retransmission, and improves the performance of applications.

[0184] Since the links in the data center network are shared, usually when the data flow passing through a certain link exceeds one, congestion will occur on that link. When congestion occurs, there will be multiple data flows entering the switch from different ports being routed to the same output port. Since the receiving bandwidth of multiple receiving ports is greater than the sending bandwidth of one output port at this time, packets will accumulate in the buffer queue of the output port, resulting in queue accumulation, which not only reduces the efficiency of the transmitted data flow but also consumes the buffer resources of the switch. Currently, congestion control is generally carried out through the Data Center Quantized Congestion Notification (DCQCN) method or the High Precision Congestion Control (HPCC) method. However, the speed adjustment granularity of the deceleration algorithm and the acceleration algorithm of DCQCN is relatively coarse, making it difficult to accurately perform congestion control. And HPCC's execution of congestion control depends on obtaining the status information of the switch through which the data flow passes, which requires too high customization of the switch, resulting in its difficulty in being applied to actual production and deployment. How to accurately perform congestion control while being easy to implement and deploy is an urgent problem to be discussed and solved currently.

[0185] Based on this, the embodiments of the present disclosure provide a congestion control method, related device, and medium. It can update the first congestion sliding window based on the overload rate of the switching node, thereby accurately controlling the number of target messages sent, and achieving accurate congestion control. At the same time, the method used in the embodiments of the present disclosure only needs to insert the first number of target messages with congestion marks and the second number of target messages with unobstructed marks in the acknowledgment response returned by the destination node, with relatively low customization requirements for the destination node and no need to customize the switching node additionally, making it easy to implement and deploy.

[0186] System architecture and scenario description applied in the embodiments of the present disclosure

[0187] Figure 1A and Figure 1B is a system architecture diagram to which the congestion control method according to an embodiment of the present disclosure is applied. It includes: object terminal 110, Internet 120, gateway 130, and server 140.

[0188] The object terminal 110 is a device for an object to send or receive messages corresponding to packets. It includes various forms such as a desktop computer, a laptop computer, a PDA (Personal Digital Assistant), a mobile phone, a vehicle-mounted terminal, a home theater terminal, a dedicated terminal, etc. Additionally, it can be a single device or a collection composed of multiple devices. For example, multiple devices are connected through a local area network and share a display device for collaborative work, jointly constituting a terminal. The object terminal 110 can also communicate with the Internet 120 in a wired or wireless manner to exchange data.

[0189] The gateway 130 is also called an internetwork connector and a protocol converter. The gateway 130 realizes network interconnection at the transport layer and is a computer system or device that acts as a conversion function. Between two systems using different communication protocols, data formats, or languages, and even with completely different architectures, the gateway 130 is a translator. At the same time, the gateway 130 can also provide filtering and security functions. The message sent by the object terminal 110 to the server 140 needs to be sent to the corresponding server 140 through the gateway 130. The message sent by the server 140 to the object terminal 110 also needs to be sent to the corresponding object terminal 110 through the gateway 130.

[0190] The server 140 refers to a computer system that can provide congestion control services. Compared with the object terminal 110, the server 140 has higher requirements in terms of stability, security, performance, etc. The server 140 can be a high-performance computer in a network platform, a cluster of multiple high-performance computers, a part (such as a virtual machine) allocated from a high-performance computer, a combination of parts (such as virtual machines) allocated from multiple high-performance computers, etc. Additionally, the server 140 includes a connection sending end unit, and the connection sending end unit can provide congestion control functions, reliable reception functions, and reliable delivery functions, and the connection sending end unit can communicate with the Internet 120 in a wired or wireless manner to exchange data, thereby realizing congestion control.

[0191] Figure 2A is a schematic diagram of the software form of the server to which the congestion control method according to an embodiment of the present disclosure is applied. Figure 2B is a schematic diagram of the hardware form of the server to which the congestion control method according to an embodiment of the present disclosure is applied. According to an embodiment of the present disclosure, the source node can be used as a technical component for data transmission and is implemented inside the transport protocol stack. Refer to Figure 2A, in the software form, embodiments of the present disclosure can be implemented inside the software transmission protocol stack. Specifically, embodiments of the present disclosure can be implemented as a congestion control component similar to those inside the TCP protocol stack within the software transmission protocol stack. Referring to Figure 2B , embodiments of the present disclosure can be implemented through smart network cards, i.e., in the form of hardware circuits or CPU microcodes.

[0192] In addition, referring to Figure 2A and Figure 2B , the congestion control method provided by embodiments of the present disclosure can provide data transmission services and congestion control services for artificial intelligence (AI) training, cloud storage, virtual private cloud (VPC), remote dictionary server (Redis) databases, etc.

[0193] Embodiments of the present disclosure can be applied to data transmission scenarios. Referring to Figure 3 , Figure 3 is a schematic diagram of the topology of a data center network to which the congestion control method according to embodiments of the present disclosure is applied. Figure 3 H0 - H15 in can represent multiple servers in a computer room, and the servers are used to store and send packet data. For example: Server H0 stores packet data A, and server H1 stores packet data B. LA0 - LA31 and LC0 - LC7 can represent multiple switches in a computer room, and the switches are used to forward data. Further, servers H0 - H15 can also be connected to external applications, used to receive the packet data corresponding to the application, and transmit it to other servers in the data center network.

[0194] Figure 3 There are three - layer switches in the data center of , namely the access layer, the aggregation layer, and the core layer. Among them, the switches in the access layer include LA16 - LA31, the switches in the aggregation layer include LA0 - LA15, the switches in the core layer include LC0 - LC7, and the servers are connected to the switches in the access layer. It should be noted that in the mainstream data center network, in order to increase the communication bandwidth and connection reliability between servers, the source - node server at the sending end generally uses two links to connect to two switches in the access layer (i.e., the two network interfaces of the server are respectively connected to two switches). Similarly, the destination - node server at the receiving end generally uses two links to connect to two switches in the access layer. For example: Switch H0 uses two links to connect to switches LA16 and LA17 in the access layer.

[0195] Further, the process of a server sending packet data and the process of receiving packet data are combined here forFigure 3 Describe the network architecture of the data center: In Figure 3 , the source node servers at the sending end include H0 - H7, and the destination node servers at the receiving end include H9 - H15. When the source node server at the sending end needs to send the packet data corresponding to a certain application to the destination node server at the receiving end, it first needs to send the packet data to the switch at the access layer. The switch at the access layer forwards the packet data to the switch at the aggregation layer, and the switch at the aggregation layer forwards the packet data to the switch at the core layer. After receiving the packet data forwarded by the switch at the aggregation layer at the core layer, it forwards the packet data to the switch at the aggregation layer, and the switch at the aggregation layer forwards the packet data to the switch at the access layer. Finally, the switch at the access layer forwards the received packet data to the destination node server at the receiving end.

[0196] Exemplarily, if the source node server H1 at the sending end needs to send packet data to the destination node server H9 at the receiving end, there are multiple forwarding paths. Here, the process of the source node server H1 sending packet data A to the destination node server H9 along one of the forwarding paths is described: The source node server H1 first sends the packet data A to the switch LA16 at the access layer. The switch LA16 forwards the packet data A to the switch LA1 at the aggregation layer, causing the switch LA1 to forward the packet data A to the switch LC2 at the core layer. Then, the switch LC2 forwards the packet data A to the switch LA9 at the aggregation layer, and the switch LA9 forwards the packet data A to the switch LA24 at the access layer. Finally, the switch LA24 forwards the packet data A to the destination node server H9 at the receiving end, and the destination node server H9 sends an acknowledgment response to the source node server H1 at the sending end, enabling the source node server H1 to confirm that the destination node server H9 has received the packet data A.

[0197] It should be understood that the above content only shows the description of some application scenarios of the present disclosure. The business scenarios to which the present disclosure can be applied may include but are not limited to the specific embodiments cited above.

[0198] General description of the embodiments of the present disclosure

[0199] It should be emphasized that the embodiments of the present disclosure can be applied to a variety of application scenarios, such as data transmission, distributed applications, high-speed clusters, cloud storage and other scenarios. At present, congestion control is generally performed by the data center quantized congestion notification (DCQCN) method or the high-precision congestion control (HPCC) method. However, the speed adjustment granularity of the DCQCN speed reduction algorithm and the speed increase algorithm is relatively coarse, and it is difficult to accurately perform congestion control. The execution of congestion control by HPCC depends on obtaining the status information of the switch through which the data flow passes, which will require too high customization of the switch, making it difficult to apply it to actual production and deployment. Some embodiments of the present disclosure provide a congestion control method, related devices and media, which can update the first congestion sliding window based on the overload rate and accurately perform congestion control. At the same time, the embodiments of the present disclosure only need to insert the first number of target packets carrying congestion marks and the second number of target packets carrying unblocked marks in the confirmation response returned by the destination node to achieve the desired result. The customization requirements for the destination node are relatively low, and there is no need to customize the switching node additionally, which is easy to implement and deploy.

[0200] Congestion control is a global process. In a data center, the congestion control method can refer to the coordinated action of the source node server at the sending end, the destination node server at the receiving end, and the switching node forwarding the message data to adjust the flow of messages in the data center to achieve the effect of relieving congestion and relieving congestion, so that the network of the data center can withstand the current network load.

[0201] The congestion control method of the disclosed embodiment is executed on the server 110 of the source node and the destination node. The server 110 of the source node transmits the message from the object terminal 110 to the server 110 of the destination node. After the transmission is completed, the destination node transmits the received message to the object terminal 110 through the gateway 130 and the Internet 120, and the object terminal 110 displays the information corresponding to the message to the target object.

[0202] like Figure 4 As shown, according to one embodiment of the present disclosure, applied to a source node, the congestion control method includes:

[0203] Step 410: Send a message to the destination node based on a first congestion sliding window, wherein the first congestion sliding window is a window moving in the queue of messages to be sent, and is used to indicate a first number of messages sent to the destination node. Once a message in the first number of messages receives a confirmation response, the first congestion sliding window is slid to accommodate more unsent messages, so that the accommodated unsent messages are sent.

[0204] Step 420: Receive the acknowledgment reply returned by the destination node. The acknowledgment reply includes a first quantity of packets carrying congestion marks and a second quantity of packets carrying clear marks. There is at least one switching node between the source node and the destination node. Both the congestion mark and the clear mark are obtained by the switching node marking the packets based on the queue height within the switching node.

[0205] Step 430: Determine the overload rate of the switching node based on the first quantity and the second quantity.

[0206] Step 440: Update the first congestion sliding window based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0207] The above steps 410 - 440 are briefly described below.

[0208] In step 410, packets are sent to the destination node based on the first congestion sliding window. The first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once an acknowledgment reply is received for a packet among the first number of packets, the first congestion sliding window is slid to accommodate more unsent packets, so as to send the accommodated unsent packets.

[0209] According to an embodiment of the present disclosure, the source node may be a server that sends packets, and the destination node may be a server that receives packets. The source node corresponds to the destination node, and there is a connection between the source node and the destination node. Moreover, the source node sends packets to the destination node, and after the destination node receives the packets sent by the source node, it needs to return an acknowledgment reply to the corresponding source node of the packet, so that the source node knows that the destination node has received the packet.

[0210] The queue of packets to be sent refers to the queue composed of multiple packets that the source node has not sent yet. Suppose there are packets 1, 2, 3, 4, and 5 at the source node that have not been sent. At this time, the queue composed of packets 1, 2, 3, 4, and 5 can be regarded as the queue of packets to be sent.

[0211] The first congestion sliding window is a state variable maintained by the source node. In the embodiment of the present disclosure, the first congestion sliding window can change dynamically according to the congestion degree of the data center network. Further, the first congestion sliding window refers to a window that moves in the queue of packets to be sent at the source node, and the first congestion sliding window can be used to indicate the first number of packets sent to the destination node. Among them, the first number of packets are the packets that the source node has sent but has not received the acknowledgment reply returned by the destination node. The first number is the size of the first congestion sliding window. Refer to Figure 5, if there are message 2, message 3, message 4, message 5, message 6, message 7, message 8, message 9, message 10, message 11, message 12 and message 13 in the first congestion sliding window, then the first number is 12.

[0212] During the data transmission process, once the source node receives the acknowledgment response for the messages in these first number of messages, it will slide the first congestion sliding window to accommodate more unsent messages, and then send the accommodated unsent messages. Refer to Figure 5 , for example, the current source node has received the acknowledgment response for message 1. The source node sends messages to the destination node based on the first congestion sliding window. There are message 2, message 3, message 4, message 5, message 6, message 7, message 8, message 9, message 10, message 11, message 12 and message 13 in the first congestion sliding window. These messages are all messages that the source node has sent but has not received the acknowledgment response yet. After receiving the acknowledgment response corresponding to message 2, slide the first congestion sliding window to accommodate the unsent message 14, and send message 14 to the destination node.

[0213] In step 420, receive the acknowledgment response returned by the destination node. The acknowledgment response includes the first quantity of messages carrying congestion marks and the second quantity of messages carrying unobstructed marks. Among them, there is at least one switching node between the source node and the destination node. The congestion mark and the unobstructed mark are both obtained by the switching node marking the messages based on the queue height in the switching node.

[0214] According to an embodiment of the present disclosure, the switching node refers to a server for forwarding the messages sent by the source node to the destination node, and the switching node can be a switch. In the data center network topology, there is at least one switching node between the source node and the destination node.

[0215] , for example, when there are multiple messages entering the switching node from different ports and being routed to the same outgoing port, due to the mismatch of the transceiver bandwidth (that is, the receiving bandwidth of two receiving ports is greater than the sending bandwidth of one outgoing port), the data packets will accumulate at the cache of the outgoing port of the switching node, thus forming a cache queue, and the queue height refers to the size of the cache queue. Refer to Figure 3 , assume that switching node LA8 and switching node LA9 simultaneously forward messages to switching node LA24, and switching node LA24 forwards the two messages to destination node H8. At this time, the messages forwarded by switching node LA8 to switching node LA24 and the messages forwarded by switching node LA9 to switching node LA24 will accumulate at the cache of the outgoing port of switching node LA24, forming a cache queue. Refer to Figure 9The packets forwarded by switching node LA8 to switching node LA24 enter from port 1, and the packets forwarded by switching node LA9 to switching node LA24 enter from port 2. These two packets pile up at the buffer of port 3. Figure 9 The shaded part in Figure 9 is the buffer queue, and the size of the shaded part is the queue height of the buffer queue.

[0216] Both the congestion mark and the non-congestion mark are obtained by the switching node marking the packets based on the queue height within the switching node. Exemplarily, when the source node sends a packet, it first sets the explicit congestion mark field in the packet to 0b10 or 0b01 to enable the explicit congestion marking function. After receiving a packet with an explicit congestion mark field, before sending the packet out through the outgoing port, the switching node decides whether to modify the explicit congestion mark field in the packet based on the current queue height. Further, the congestion mark means that the switching node modifies the explicit congestion mark field in the packet to 0b11 based on the current queue height. A packet carrying a congestion mark is a packet with the explicit congestion mark field being 0b11. The non-congestion mark is the explicit congestion mark field when the switching node does not modify the explicit congestion mark field in the packet. A packet carrying a non-congestion mark is a packet with the explicit congestion mark field being 0b10 or 0b01.

[0217] Referring to Figure 6 , exemplarily, assume that there is a switching node between the source node and the destination node, and the source node sends packets to the destination node based on the first congestion window. After receiving the packets, the switching node marks the packets based on the queue height within the switching node to obtain a packet carrying a congestion mark or a packet carrying a non-congestion mark, and forwards the packet to the destination node. After receiving the packet forwarded by the switching node, the destination node counts the marks carried by the packet, and inserts the first quantity of packets carrying a congestion mark and the second quantity of packets carrying a non-congestion mark into the acknowledgment, and sends the acknowledgment to the source node, so that the source node can understand the congestion situation of the current data center network through the first quantity and the second quantity.

[0218] In step 430, the overload rate of the switching node is determined based on the first quantity and the second quantity.

[0219] According to the embodiments of the present disclosure, the overload rate can be used to indicate whether the queue height of the buffer queue inside the current switching node exceeds the critical value of the packets that the switching node can handle. The embodiments of the present disclosure can intuitively understand the situation of the buffer queue inside the current switching node through the overload rate, so as to know the current congestion degree, thereby realizing accurate congestion control.

[0220] In step 440, the first congestion sliding window is updated based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0221] According to an embodiment of the present disclosure, if the updated first congestion sliding window is smaller than the first congestion sliding window before the update, since the source node sends packets based on the first congestion sliding window, when the first congestion sliding window decreases, the number of packets that the current source node can send is less than the number of packets that the source node could send before the update. Further, the sending rate of the source node sending packets to the destination node also decreases. Similarly, if the updated first congestion sliding window is larger than the first congestion sliding window before the update, when the first congestion sliding window increases, the number of packets that the current source node can send also increases correspondingly. Further, the sending rate of the source node sending packets to the destination node also increases.

[0222] Combined with Figure 7A and Figure 7B , assume that there is a switching node 1 between the source node and the destination node, and the source node returns an acknowledgment after receiving two packets. Here, an example is given to illustrate the process of updating the first congestion sliding window: First, the source node sends packet 1 to the destination node based on the current first congestion sliding window. If there is no congestion in the current data center network, after receiving packet 1, the switching node 1 marks packet 1 based on the current queue height and forwards packet 1 with a clear label to the destination node, so that the destination node receives packet 1 with a clear label. After that, the source node also sends packet 2 to the destination node based on the first congestion sliding window. If there is congestion in the current data center network, after receiving packet 2, the switching node 1 marks packet 2 based on the current queue height and forwards packet 2 with a congestion label to the destination node, so that the destination node receives packet 2 with a congestion label. At this time, the destination node has received two packets, and writes the first quantity of the packets with a congestion label and the second quantity of the packets with a clear label into the acknowledgment. Among them, the first quantity is 1 and the second quantity is 1. The destination node returns the acknowledgment to the source node. After receiving the acknowledgment, the source node determines the overload rate of the switching node 1 based on the first quantity and the second quantity in the acknowledgment, and updates the first congestion sliding window based on the overload rate to adjust the sending rate of the source node sending packets to the destination node. It should be noted that the embodiment of the present disclosure realizes precise congestion control by updating the first congestion sliding window based on the overload rate, thereby adjusting the sending rate of the source node sending packets to the destination node.

[0223] The embodiments of the above steps 410 to 440 may receive the acknowledgment response returned by the destination node, and determine the overload rate of the switching node based on the first quantity of the packets carrying the congestion mark and the second quantity of the packets carrying the unblocked mark included in the acknowledgment response. The overload rate can accurately reflect the current congestion situation of the switching node in the link. In this way, after updating the first congestion sliding window based on the overload rate, the number of target packets to be sent can be accurately controlled, thereby achieving precise congestion control. The first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once a packet in the first congestion sliding window receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent packets, and then the accommodated unsent packets are sent. In this way, when the load status of the switching node reflected by the overload rate is relatively heavy, the length of the first congestion sliding window is not increased, so that no new packets are sent, thereby alleviating network congestion. When the load status of the switching node reflected by the overload rate is relatively light, the length of the first congestion sliding window is increased, so that new packets can be accommodated for sending, making full use of the network bandwidth and precisely performing congestion control. At the same time, the method used in the embodiments of the present disclosure only needs to insert the first quantity of the target packets carrying the congestion mark and the second quantity of the target packets carrying the unblocked mark in the acknowledgment response returned by the destination node, with relatively low customization requirements for the destination node, and there is no need to customize the switching node additionally, which is easy to implement and deploy.

[0224] The above is the overall description of steps 410 to 440. Since step 410 has been described in sufficient detail above, only the specific implementation processes of steps 420 to 440 will be described in detail below.

[0225] Detailed description of step 420

[0226] In step 420, an acknowledgment response returned by the destination node is received. The acknowledgment response includes the first quantity of the packets carrying the congestion mark and the second quantity of the packets carrying the unblocked mark. Among them, at least one switching node is provided between the source node and the destination node, and both the congestion mark and the unblocked mark are obtained by the switching node marking the packets based on the queue height in the switching node.

[0227] In one embodiment, the congestion mark and the unobstructed mark in step 420 are obtained by the switching node marking the message based on the queue height in the switching node in the following manner: If the queue height in the switching node is less than or equal to the first queue height, add an unobstructed mark to the message; if the queue height in the switching node is greater than or equal to the second queue height, add a congestion mark to the message, where the second queue height is greater than the first queue height; if the queue height of the switching node is greater than the first queue height but less than the second queue height, add a congestion mark to the message with a first probability and add an unobstructed mark to the message with the complement of the first probability, where the complement of the first probability is the difference between 1 and the first probability, and the first probability changes linearly with the queue height between the first queue height and the second queue height. Exemplarily, assume that the switching node adds a congestion mark to the message with a probability of 30%, then the switching node will simultaneously add an unobstructed mark to the message with a probability of 70%.

[0228] According to an embodiment of the present disclosure, the first queue height refers to the queue height of the switching node corresponding to the lower limit for marking the message. Referring to Figure 10 When the queue height of the switching node exceeds the first queue height, it indicates that congestion may exist at this time, and then the switching node starts to probabilistically add a congestion mark to the message. The second queue height refers to the height of the switching node corresponding to the upper limit for marking the message. Referring to Figure 10 When the queue height of the switching node exceeds the second queue height, it indicates that congestion must exist at this time, and then the probability that the switching node adds a congestion mark to the message is 100%. Further, when the queue height of the switching node is between the first queue height and the second queue height, the probability of adding a congestion mark to the message increases linearly with the increase in the queue height of the switching node. That is to say, the higher the queue height of the switching node, the greater the probability of adding a congestion mark to the message. The first probability refers to the probability of adding a congestion mark to the message.

[0229] Referring to Figure 10 Exemplarily, assume that the first queue height is 5 and the second queue height is 15. If the current queue height in the switching node is less than 5, it indicates that there is no congestion in the current switching node, and at this time, add an unobstructed mark to the message (that is, do not modify the explicit congestion field of the message). If the current queue height in the switching node is 10, between 5 and 15, it indicates that congestion may occur in the current switching node. At this time, the first probability is 50%, and a congestion mark will be added to the message with the first probability and an unobstructed mark will be added to the message with a probability of 50%. If the current queue height in the switching node is 20, it indicates that congestion must occur in the current switching node, and at this time, the probability of adding a congestion mark to the message is 100%.

[0230] The above embodiments can probabilistically mark packets based on the queue height within the switching node, facilitating the source node to more accurately understand the congestion situation inside the current switching node after receiving the first quantity of packets carrying congestion marks and the second quantity of packets carrying unobstructed marks.

[0231] The above is a detailed description of the specific implementation process of the switching node marking packets based on the queue height within the switching node. Next, a detailed description of the specific implementation process of the destination node sending an acknowledgment response will be given.

[0232] In one embodiment, referring to Figure 8 , the acknowledgment response in step 420 is sent by the destination node in the following manner:

[0233] Step 810: If it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, then based on the packets received within the predetermined time period, determine the first quantity and the second quantity, and generate and send an acknowledgment response based on the first quantity and the second quantity;

[0234] Step 820: If a predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of packets have been received, then based on the predetermined number of packets, determine the first quantity and the second quantity, and generate and send an acknowledgment response based on the first quantity and the second quantity.

[0235] Next, steps 810 to 820 will be described in detail.

[0236] In step 810, if it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, then based on the packets received within the predetermined time period, determine the first quantity and the second quantity, and generate and send an acknowledgment response based on the first quantity and the second quantity.

[0237] According to an embodiment of the present disclosure, the predetermined time period can be a preset time period, and the predetermined time period needs to be set according to the packet forwarding ability of the switching node and the packet processing ability of the destination node. The predetermined time period can be one second or one minute. Exemplarily, assume that the predetermined time period is one minute. If the destination node determines that one minute has elapsed since the last acknowledgment response was sent, then based on the packets received within this one minute, determine the first quantity of packets carrying congestion marks and the second quantity of packets carrying unobstructed marks. After determining the first quantity and the second quantity, the destination node inserts the first quantity and the second quantity into the acknowledgment response and returns the acknowledgment response to the source node. Further, when one minute has passed, the destination node will again generate and send an acknowledgment response based on the first quantity and the second quantity counted within this one minute.

[0238] It should be noted that during the idle period of the data center network, there may be a problem that the destination node takes a very long time to receive a message, which will lead to waste of resources in the data center network. Embodiments of the present disclosure avoid the problem of resource waste caused by the idle data center network by setting a predetermined time period, determining a first quantity and a second quantity based on the messages received within the predetermined time period, and generating and sending an acknowledgment response based on the first quantity and the second quantity.

[0239] In step 820, if a predetermined number of messages are received without a predetermined time period having elapsed since the last acknowledgment response was sent, then based on the predetermined number of messages, a first quantity and a second quantity are determined, and an acknowledgment response is generated and sent based on the first quantity and the second quantity.

[0240] It should be noted that when the data center network is busy, the source node will send multiple messages to the destination node within a predetermined time period. At this time, there may be a problem that the destination node receives too many messages within the predetermined time period. In this case, determining the first quantity and the second quantity based on the messages received within the predetermined time period and generating and sending an acknowledgment response based on the first quantity and the second quantity will result in poor real-time performance of the data center network. Therefore, embodiments of the present disclosure, on the basis of setting a predetermined time period, also set a predetermined number to improve the real-time performance of the data center network. Further, the predetermined number is a preset value, and the predetermined number needs to be set according to the message forwarding ability of the switching node and the message processing ability of the destination node. The predetermined number can be 1, can be 5, or can be 10.

[0241] Exemplarily, assume that the predetermined time period is one minute and the predetermined number is 5. If one minute has not elapsed since the last acknowledgment response was sent, but the destination node has received 5 messages, then at this time the destination node determines the first quantity of the messages carrying the congestion flag and the second quantity of the messages carrying the unobstructed flag based on the 5 messages. After determining the first quantity and the second quantity, the destination node inserts the first quantity and the second quantity into the acknowledgment response and returns the acknowledgment response to the source node. Further, in the case where another minute has passed, or in the case where one minute has not passed but the destination node has received 5 messages, the destination will return an acknowledgment response to the source node again.

[0242] The embodiments of the above steps 810 to 820 avoid the problem of resource waste caused by the idle data center network by setting a predetermined time period, determining a first quantity and a second quantity based on the messages received within the predetermined time period, and generating and sending an acknowledgment response based on the first quantity and the second quantity. At the same time, on the basis of setting a predetermined time period, a predetermined number is also set to improve the real-time performance of the data center network.

[0243] Detailed description of step 430

[0244] Step 430, determine the overload rate of the switching node based on the first quantity and the second quantity.

[0245] In one embodiment, referring to Figure 11 , step 430 includes:

[0246] Step 1110, every first period, determine the statistical marking probability of the switching node in the first period based on the first quantity and the second quantity;

[0247] Step 1120, based on the statistical marking probability, determine the statistical queue height of the switching node in the first period;

[0248] Step 1130, based on the statistical queue height, determine the overload rate of the switching node in the first period.

[0249] The following is a detailed description of steps 1110 to 1130:

[0250] In step 1110, every first period, determine the statistical marking probability of the switching node in the first period based on the first quantity and the second quantity.

[0251] According to the embodiments of the present disclosure, although the switching node can probabilistically mark the packets based on the queue height and forward the packets to the destination node, the source node and the destination node do not know the probability of the switching node marking the packets. Based on this, the source node of the embodiments of the present disclosure can, every period, determine the statistical marking probability of the switching node in the first period based on the first quantity of the packets with congestion marks and the second quantity of the packets with unobstructed marks, so as to estimate the probability of the switching node marking the packets based on the queue height in the first period, and then accurately obtain the congestion situation inside the switching node. It should be noted that the statistical marking probability is not updated every first period, but is updated every time an acknowledgment response is received. At this time, the statistical marking probability determined every first period is the statistical marking probability obtained by the last update in the first period. And the statistical marking probability does not refer to the probability of the switching node marking a certain packet, but refers to the average value of the probabilities of the switching node marking all the received packets in the first period.

[0252] In one embodiment, the first period can be determined in the following manner: the number of acknowledgment responses received per unit time; the real-time degree of the service to which the packet belongs; based on the number of acknowledgment responses and the real-time degree, determine the first period.

[0253] According to the embodiment of the present disclosure, it is assumed that the source node receives one confirmation response within two unit times, and the first cycle is one unit time. Since the overload rate is updated once every first cycle, in this case, the overload rate may change every two first cycles, which will waste the computing resources of the source node. In order to save the computing resources of the source node, the number of confirmation responses received within a unit time needs to be considered when determining the first cycle.

[0254] According to the embodiments of the present disclosure, it is assumed that the real-time degree of the service to which the message belongs is high and the first cycle is long. In this case, if there is no congestion inside the switching node in the previous first cycle and the overload rate is low, then the source node will send the message with a larger first congestion sliding window in the first cycle. If the switching node is congested during this process, but is limited to the overload rate being updated once every first cycle, the switching node will be in a congested state for a long time before the next first cycle arrives, thereby greatly reducing the transmission speed of the message, which is not conducive to the real-time nature of the service. Therefore, the degree of real-time nature needs to be considered when determining the first cycle. The degree of real-time nature can be reflected by a percentage. The higher the percentage corresponding to the degree of real-time nature, the stronger the real-time nature of the service to which the message belongs.

[0255] According to an embodiment of the present disclosure, a first score can be determined based on the number of confirmation responses received within a unit time, and a second score can be determined based on the real-time degree of the service to which the message belongs, thereby determining a third score based on the first score and the second score, and determining the first period based on the third score. Wherein, the first score can be determined based on the number of confirmation responses received within a unit time by a table lookup method. According to the correspondence table between the number of confirmation responses received within a unit time and the first score, the first score corresponding to the number of confirmation responses received within a unit time is obtained. The first score can be determined based on the number of confirmation responses received within a unit time by a substitution method. The number of confirmation responses received within a unit time is substituted into the formula of the number of confirmation responses received within a unit time and the first score set in advance, and the first score corresponding to the number of confirmation responses received within a unit time is obtained. Similarly, the second score can be determined based on the real-time degree of the service to which the message belongs by a table lookup method. According to the correspondence table between the real-time degree of the service to which the message belongs and the second score, the second score corresponding to the real-time degree of the service to which the message belongs is obtained. The second score can be determined based on the real-time degree of the service to which the message belongs by a substitution method. Substitute the real-time degree of the service to which the message belongs into a preset formula of the real-time degree of the service to which the message belongs and the second score to obtain the second score corresponding to the real-time degree of the service to which the message belongs.

[0256] Further, the third score may be the sum of the first score and the second score. Alternatively, different weights may be assigned to the first score and the second score respectively according to the importance of the real-time degree of the service to which the message belongs and the importance of the number of acknowledgment responses received within a unit time, and the third score is determined as the weighted sum of the first score and the second score. To determine the first period based on the third score, a look-up table method may be adopted. According to the correspondence table between the third score and the first period, the first period corresponding to the third score is obtained. To determine the first period based on the third score, a substitution method may also be adopted. The third score is substituted into the formula of the third score and the first period set in advance to obtain the first period corresponding to the third score.

[0257] Referring to Figure 12 , assuming that the first score, the second score, and the first period are all obtained by the look-up table method, and the third score is the sum of the first score and the second score. If the number of acknowledgment responses received within the current unit is 13 and the real-time degree of the service to which the message belongs is 65%, it can be determined that the first score corresponding to the number of acknowledgment responses received within the current unit is 10, and the second score corresponding to the real-time degree of the service to which the message belongs is 12. The sum of the first score and the second score is 22, and the first period corresponding to it can be determined to be 1 unit time.

[0258] The specific method of "every first period, determining the statistical marking probability of the switching node based on the first quantity and the second quantity" will be described in detail below.

[0259] In step 1120, based on the statistical marking probability, determine the statistical queue height of the switching node in the first period.

[0260] According to the embodiments of the present disclosure, the statistical queue height does not refer to the queue height of the switching node at a certain moment, but the average value of the queue height of the switching node in the first period. Exemplarily, after calculating the statistical marking probability, the embodiments of the present disclosure can also calculate the average value of the queue height of the switching node in the first period based on the statistical marking probability, so as to more accurately know the congestion situation in the switching node.

[0261] The specific method of "based on the statistical marking probability, determining the statistical queue height of the switching node in the first period" will be described in detail below.

[0262] In step 1130, based on the statistical queue height, determine the overload rate of the switching node in the first period.

[0263] According to an embodiment of the present disclosure, the overload rate can also reflect the degree of overload of the switching node in the first period, and the magnitude of the overload rate reflects the current congestion state of the ports of the switching node. The embodiments of the present disclosure can determine the overload rate of the switching node in the first period based on the statistical queue height, so as to determine the degree of overload of the switching node in the first period, which is convenient for more accurately understanding the congestion state of the ports of the switching node.

[0264] The specific method of "determining the overload rate of the switching node in the first period based on the statistical queue height" will be described in detail below.

[0265] In the embodiments of the above steps 1110 to 1130, every other period, the average value of the probability of marking all the packets received by the switching node in the first period can be determined based on the first quantity and the second quantity, and based on this, the average value of the queue height of the switching node in the first period can be calculated, so as to determine the degree of overload of the switching node in the first period, which is convenient for accurately knowing the congestion situation in the switching node, thereby realizing precise congestion control.

[0266] The above is the overall description of steps 1110 to 1130. The following will describe the specific implementation processes of steps 1110, 1120, and 1130 in detail.

[0267] In one embodiment, referring to Figure 13 , step 1110 includes:

[0268] Step 1310, obtaining a first sequence of acknowledgment responses received within the first period;

[0269] Step 1320, taking the first acknowledgment response in the first sequence as the acknowledgment response to be examined, and initializing the statistical marking probability;

[0270] Step 1330, updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined;

[0271] Step 1340, updating the acknowledgment response to be examined with the next acknowledgment response in the first sequence, and returning to the step of updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined until there is no next acknowledgment response in the first sequence.

[0272] The following will describe steps 1310 to 1340 in detail:

[0273] In step 1310, a first sequence of acknowledgment responses received within the first period is obtained.

[0274] According to an embodiment of the present disclosure, the first sequence refers to the sequence composed of the acknowledgment responses received within the first period. Referring to Figure 14, Exemplarily, in the first cycle, acknowledgment reply 1, acknowledgment reply 2, acknowledgment reply 3, acknowledgment reply 4, and acknowledgment reply 5 are received. The first sequence is the sequence composed of acknowledgment reply 1, acknowledgment reply 2, acknowledgment reply 3, acknowledgment reply 4, and acknowledgment reply 5.

[0275] In step 1320, the first acknowledgment reply in the first sequence is used as the acknowledgment reply to be examined, and the statistical marking probability is initialized.

[0276] According to an embodiment of the present disclosure, the acknowledgment reply to be examined refers to the acknowledgment reply required for calculating the current statistical marking probability. After the source node receives an acknowledgment reply returned by the destination node each time, it is necessary to calculate the statistical marking probability once, that is, update the statistical marking probability each time an acknowledgment reply is received. In chronological order, the first acknowledgment reply in the first sequence refers to the first acknowledgment reply received in the current first cycle. Therefore, first, the first acknowledgment reply in the first sequence needs to be used as the acknowledgment reply to be examined. Refer to Figure 14 , Exemplarily, the first sequence is the sequence composed of acknowledgment reply 1, acknowledgment reply 2, acknowledgment reply 3, acknowledgment reply 4, and acknowledgment reply 5. At this time, acknowledgment reply 1 in the first sequence is used as the acknowledgment reply to be examined.

[0277] Furthermore, the statistical marking probability at this time (referring to the statistical marking probability that has not been updated) can be the statistical marking probability calculated in the previous first cycle.

[0278] In step 1330, the statistical marking probability is updated based on the first quantity and the second quantity in the acknowledgment reply to be examined.

[0279] According to an embodiment of the present disclosure, the first quantity of the packets carrying congestion marks and the second quantity of the packets carrying unobstructed marks are inserted in the acknowledgment reply to be examined. After determining the acknowledgment reply to be examined, the statistical marking probability can be updated based on the first quantity and the second quantity, so as to obtain the updated statistical marking probability. The updated statistical marking probability reflects the average probability of the switching node marking all the received packets during the time period corresponding to the acknowledgment reply to be examined. Among them, the time period corresponding to the acknowledgment reply to be examined refers to the time from the previous acknowledgment reply received by the source node to the acknowledgment reply received by the source node.

[0280] The specific method of "updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment reply to be examined" will be described in detail below.

[0281] In step 1340, update the confirmation response to be examined with the next confirmation response in the first sequence to be examined and confirmed. Return to the step of updating the statistical marking probability based on the first quantity and the second quantity in the confirmation response to be examined until there is no next confirmation response in the first sequence.

[0282] According to an embodiment of the present disclosure, when there are multiple confirmation responses in the first sequence, there is a corresponding relationship between the number of times of updating the statistical marking probability and the number of confirmation responses, that is, the statistical marking probability is updated as many times as there are confirmation responses in the first sequence. Exemplarily, assume that confirmation response 1, confirmation response 2, and confirmation response 3 are received within the first period, and confirmation response 1, confirmation response 2, and confirmation response 3 are determined as the first sequence. During the process of updating the statistical marking probability, first use confirmation response 1 in the first sequence as the confirmation response to be examined and initialize the statistical marking probability. Then update the statistical marking probability based on the first quantity and the second quantity in confirmation response 1 to obtain statistical marking probability 1. After that, update the confirmation response to be examined with confirmation response 2, and update statistical marking probability 1 based on the first quantity and the second quantity in confirmation response 2 to obtain statistical marking probability 2. Finally, update the confirmation response to be examined with confirmation response 3, and update statistical marking probability 2 based on the first quantity and the second quantity in confirmation response 3 to obtain statistical marking probability 3. At this time, there is no next confirmation response in the first sequence.

[0283] The embodiments of the above steps 1310 to 1340 facilitate subsequent calculation of the statistical queue height and the overload rate of the switching node based on the statistical marking probability for more accurate congestion control by obtaining the first sequence of confirmation responses received within the first period, using the first confirmation response in the first sequence as the response to be examined, updating the statistical marking probability based on the first quantity and the second quantity in the response to be examined, and iteratively updating the statistical marking probability according to the number of confirmation responses in the first sequence.

[0284] The above is the overall description of steps 1310 to 1340. The following describes the specific implementation process of step 1330 in detail.

[0285] In one embodiment, referring to Figure 15 , step 1330 includes:

[0286] Step 1510, initialize the first count value and the second count value to 1 respectively;

[0287] Step 1520, if the first count value is less than or equal to the first quantity, use the first marking probability increasing algorithm to increase the statistical marking probability and increment the first count value by 1;

[0288] Step 1530: Return to the step of increasing the statistical marking probability using the first marking probability increasing algorithm until the first count value is greater than the first quantity if the first count value is less than or equal to the first quantity.

[0289] Step 1540: If the second count value is less than or equal to the second quantity, reduce the statistical marking probability using the first marking probability decreasing algorithm and increment the second count value by 1.

[0290] Step 1550: Return to the step of reducing the statistical marking probability using the first marking probability decreasing algorithm until the second count value is greater than the second quantity if the second count value is less than or equal to the second quantity.

[0291] The following provides a detailed description of Steps 1510 to 1550:

[0292] In Step 1510, initialize the first count value and the second count value to 1 respectively.

[0293] According to an embodiment of the present disclosure, the first count value is used to indicate the number of times the step of increasing the statistical marking probability is executed. In practical applications, the first count value is similar to a register and is used to count the number of times the step of increasing the statistical marking probability is currently executed. The second count value is used to indicate the number of times the step of reducing the statistical marking probability is executed. In practical applications, the second count value is similar to a register and is used to count the number of times the step of reducing the statistical marking probability is currently executed.

[0294] Furthermore, since the source node needs to update the statistical marking probability every time an acknowledgment is received, and when updating the statistical marking probability, the number of times the step of increasing the statistical marking probability is executed and the number of times the step of reducing the statistical marking probability is executed are determined by the first quantity and the second quantity in the acknowledgment. Because the first quantity and the second quantity in each acknowledgment may not be the same, the number of times the step of increasing the statistical marking probability is executed and the number of times the step of reducing the statistical marking probability is executed also need to be changed. Based on this, the source node needs to initialize the first count value and the second count value every time an acknowledgment is received.

[0295] In Step 1520, if the first count value is less than or equal to the first quantity, increase the statistical marking probability using the first marking probability increasing algorithm and increment the first count value by 1.

[0296] According to an embodiment of the present disclosure, the first marking probability increasing algorithm refers to the algorithm used to increase the statistical marking probability when updating the statistical marking probability. Each time the step of increasing the statistical marking probability is executed, it means increasing the statistical marking probability using the first marking probability increasing algorithm. When receiving an acknowledgment and updating the statistical marking probability, the number of times the step of increasing the statistical marking probability is executed is the same as the first quantity in the acknowledgment.

[0297] It should be noted that since the first count value and the second count value are initialized to 1 after each acknowledgment response is received, and the first count value is incremented only after one step of increasing the statistical marking probability is executed. This means that, in fact, the number of times the current step of increasing the statistical marking probability is executed is the first count value minus 1. Therefore, if the first count value is less than or equal to the first quantity, one step of increasing the statistical probability needs to be executed. At the same time, every time one step of increasing the statistical probability is executed, the first count value needs to be incremented by 1 to indicate that one more step of increasing the statistical probability has been executed.

[0298] Exemplarily, if the first quantity in acknowledgment response A is 5. After the source node receives acknowledgment response A, it first initializes the first count value and the second count value to 1. At this time, the first count value is less than 5, and it is necessary to use the first marking probability increase algorithm to increase the statistical marking probability and increment the first count value by 1 to indicate that one step of increasing the statistical probability has been executed.

[0299] The specific method of "if the first count value is less than or equal to the first quantity, use the first marking probability increase algorithm to increase the statistical marking probability and increment the first count value by 1" will be described in detail below.

[0300] In step 1530, return to the step of using the first marking probability increase algorithm to increase the statistical marking probability if the first count value is less than or equal to the first quantity until the first count value is greater than the first quantity.

[0301] According to an embodiment of the present disclosure, since the first quantity in the acknowledgment response refers to the number of packets carrying congestion markings, the first quantity is proportional to the statistical marking probability. That is to say, as the first quantity increases, the statistical marking probability also needs to increase. To more accurately estimate the statistical marking probability, when the source node receives each acknowledgment response, it will execute the first marking probability increase algorithm based on the first quantity in the acknowledgment response, and the number of times of iteratively executing the first marking probability increase algorithm is the same as the first quantity. Since the embodiment of the present disclosure counts the number of times of executing the first marking probability increase algorithm through the first count value, the step of increasing the execution of the statistical marking probability will not stop until the first count value is greater than the first quantity.

[0302] Exemplarily, if the first quantity in the acknowledgment A is 5. After the source node receives the acknowledgment A, it first initializes the first count value and the second count value to 1. At this time, the first count value is less than 5, and it is necessary to use the first marking probability increase algorithm to increase the statistical marking probability, and increment the first count value by 1 to obtain the first count value of 2. However, at this time, the first count value is still less than 5, so the first marking probability increase algorithm is still used to increase the statistical marking probability, and the first count value is incremented by 1 to obtain the first count value of 3. After that, the first marking probability increase algorithm is iteratively executed to increase the statistical marking probability until the first count value is greater than the first quantity.

[0303] In step 1540, if the second count value is less than or equal to the second quantity, use the first marking probability decrease algorithm to decrease the statistical marking probability, and increment the second count value by 1.

[0304] According to an embodiment of the present disclosure, the first marking probability decrease algorithm refers to an algorithm used to decrease the statistical marking probability when updating the statistical marking probability. Each time the step of decreasing the statistical marking probability is executed, it means using the first marking probability decrease algorithm to decrease the statistical marking probability once. When receiving each acknowledgment and updating the statistical marking probability, the number of times the step of decreasing the statistical marking probability is executed is the same as the second quantity in the acknowledgment.

[0305] It should be noted that because the first count value and the second count value are initialized to 1 after receiving each acknowledgment, and the second count value will be incremented by 1 only after executing a step of decreasing the statistical marking probability. This means that, in fact, the current number of times the step of decreasing the statistical marking probability is executed is the second count value minus 1. Therefore, if the second count value is less than or equal to the second quantity, it is necessary to execute a step of decreasing the statistical probability. At the same time, whenever a step of decreasing the statistical probability is executed, the second count value needs to be incremented by 1 to indicate that a step of decreasing the statistical probability has been executed again.

[0306] Exemplarily, if the second quantity in the acknowledgment A is 4. After the source node receives the acknowledgment A, it first initializes the first count value and the second count value to 1. At this time, the second count value is less than 4, and it is necessary to use the first marking probability decrease algorithm to decrease the statistical marking probability, and increment the second count value by 1 to indicate that a step of decreasing the statistical probability has been executed.

[0307] The specific method of "if the second count value is less than or equal to the second quantity, use the first marking probability decrease algorithm to decrease the statistical marking probability, and increment the second count value by 1" will be described in detail below.

[0308] In step 1550, return to the step of reducing the statistical marking probability using the first marking probability reduction algorithm until the second count value is greater than the second quantity if the second count value is less than or equal to the second quantity.

[0309] According to an embodiment of the present disclosure, since the second quantity in the acknowledgment refers to the number of packets carrying the unobstructed mark, the second quantity is inversely proportional to the statistical marking probability. That is to say, as the second quantity increases, the statistical marking probability will decrease accordingly. In order to more accurately estimate the statistical marking probability, when the source node receives each acknowledgment, it will execute the first marking probability reduction algorithm based on the second quantity in the acknowledgment, and the number of times of iteratively executing the first marking probability reduction algorithm is the same as the second quantity. Since the embodiment of the present disclosure counts the number of times of executing the first marking probability reduction algorithm through the second count value, the step of reducing the statistical marking probability will not stop until the second count value is greater than the second quantity.

[0310] Exemplarily, if the first quantity in acknowledgment A is 5 and the second quantity is 3. After the source node receives acknowledgment A, it first initializes the first count value and the second count value to 1. At this time, the first count value is less than 5, and it is necessary to use the first marking probability increase algorithm to increase the statistical marking probability, and add 1 to the first count value to get the first count value of 2. However, at this time, the first count value is still less than 5, so the first marking probability increase algorithm will still be used to increase the statistical marking probability, and add 1 to the first count value to get the first count value of 3. After that, the first marking probability increase algorithm is iteratively executed to increase the statistical marking probability until the first count value is greater than the first quantity. After that, since the second count value is less than 3 at this time, it is necessary to use the first marking probability reduction algorithm to reduce the statistical marking probability, and add 1 to the second count value to get the second count value of 2. However, at this time, the second count value is still less than 3, so the first marking probability reduction algorithm will still be used to reduce the statistical marking probability, and add 1 to the second count value to get the second count value of 3. However, at this time, the second count value is not greater than 3, so the first marking probability reduction algorithm will still be used to reduce the statistical marking probability, and add 1 to the second count value to get the second count value of 4. At this time, the second count value is already greater than 3, so the step of statistical marking probability is stopped.

[0311] The embodiments of the above steps 1510 to 1550 count the number of times of executing the first marking probability increase algorithm through the first count value, and the step of increasing the statistical marking probability will not stop until the first count value is greater than the first quantity. And the number of times of executing the first marking probability reduction algorithm is counted through the second count value, and the step of reducing the statistical marking probability will not stop until the second count value is greater than the second quantity. The embodiment of the present disclosure accurately estimates the statistical marking probability through the above method, improving the accuracy of congestion control.

[0312] The above is the overall description of steps 1510 to 1550. The following will describe the specific implementation processes of steps 1520 and 1540 in detail.

[0313] In one embodiment, referring to Figure 16 , step 1520 includes:

[0314] Step 1610: If the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0315] Step 1620: Use the difference between 1 and the first parameter as the second parameter;

[0316] Step 1630: Add the product of the statistical marking probability and the second parameter to the first parameter to obtain the increased statistical marking probability.

[0317] The following will describe steps 1610 to 1630 in detail:

[0318] In step 1610, if the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1.

[0319] According to an embodiment of the present disclosure, the first parameter refers to the weight for updating the statistical marking probability. The first parameter controls the trend of increasing the statistical marking probability and the trend of decreasing the statistical marking probability. The magnitude of the first parameter is directly proportional to the trend of updating the statistical marking probability. Exemplarily, the larger the first parameter, the greater the difference between the statistical marking probability before update and the statistical marking probability after update; similarly, the smaller the first parameter, the smaller the difference between the statistical marking probability before update and the statistical marking probability after update.

[0320] In step 1620, use the difference between 1 and the first parameter as the second parameter.

[0321] In one implementation manner, when updating the weight of the statistical marking probability, the second parameter is also required. The second parameter is the difference between 1 and the first parameter. The second parameter is also used to control the trend of increasing the statistical marking probability and the trend of decreasing the statistical marking probability.

[0322] Here, step 1620 is illustrated in combination with a formula: First, obtain the first parameter w, and use the difference between 1 and the first parameter (1 - w) as the second parameter.

[0323] In step 1630, add the product of the statistical marking probability and the second parameter to the first parameter to obtain the increased statistical marking probability.

[0324] According to an embodiment of the present disclosure, the statistical marking probability in "multiplying the statistical marking probability by the second parameter" here refers to the statistical marking probability obtained from the previous update. Specifically, if the current first count value is equal to 1, it means that the previous update of the statistical marking probability was the previous received acknowledgment, and the current updated statistical marking probability needs to use the statistically marked probability obtained from the last update corresponding to the previous acknowledgment. If the current first count value is less than or equal to the first quantity and not equal to 1, the current updated statistical marking probability needs to use the statistically marked probability obtained when the first count value was last updated.

[0325] The following explains step 1630 in combination with a formula: First, obtain the first parameter w, and use the difference between 1 and the first parameter (1 - w) as the second parameter. Then multiply the statistically marked probability er obtained from the previous update 1 by the second parameter (1 - w) to get er 1 (1 - w), and add it to the first parameter w to obtain the increased statistical marking probability er. Specifically, the increased statistical marking probability er can be expressed as:

[0326] er = er 1 (1 - w) + w,

[0327] where w represents the first parameter; (1 - w) represents the second parameter; er 1 represents the statistically marked probability obtained from the previous update; er represents the increased statistical marking probability.

[0328] The embodiments of the above steps 1610 to 1630 obtain the first parameter, determine the second parameter using the difference between 1 and the first parameter, and add the product of the statistically marked probability obtained from the previous update and the second parameter to the first parameter to obtain the increased statistical marking probability. Through the above steps, the updated statistical marking probability is accurately calculated, improving the accuracy of congestion control.

[0329] In one embodiment, referring to Figure 17 , step 1540 includes:

[0330] Step 1710, if the second count value is less than or equal to the second quantity, obtain the first parameter, where the first parameter is between 0 and 1;

[0331] Step 1720, use the difference between 1 and the first parameter as the second parameter;

[0332] Step 1730, use the product of the statistical marking probability and the second parameter as the reduced statistical marking probability.

[0333] The following provides a detailed description of steps 1710 to 1730:

[0334] In step 1710, if the second count value is less than or equal to the second quantity, obtain a first parameter, where the first parameter is between 0 and 1.

[0335] The specific implementation manner of the embodiment of the present disclosure is similar to the specific implementation manner of "if the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1" in step 1610 above, and will not be elaborated herein.

[0336] In step 1720, use the difference between 1 and the first parameter as the second parameter.

[0337] The specific implementation manner of the embodiment of the present disclosure is similar to the specific implementation manner of "use the difference between 1 and the first parameter as the second parameter" in step 1620 above, and will not be elaborated herein.

[0338] In step 1730, use the product of the statistical marking probability and the second parameter as the reduced statistical marking probability.

[0339] According to the embodiment of the present disclosure, the statistical marking probability in "use the product of the statistical marking probability and the second parameter" here refers to the statistical marking probability obtained from the previous update. Specifically, if the current second count value is equal to 1 and the first quantity in the current received acknowledgment is 0, it means that the previous update of the statistical marking probability was the previous received acknowledgment, then the current update of the statistical marking probability needs to use the statistical marking probability finally obtained from the previous acknowledgment. If the current second count value is equal to 1 and the first quantity in the current received acknowledgment is not 0, it means that the previous update of the statistical marking probability was after receiving the current acknowledgment and performing the step of increasing the statistical marking probability, then the current update of the statistical marking probability needs to use the statistical marking probability obtained when the first count value was previously updated. If the current second count value is less than or equal to the first quantity and not 1, then the current update of the statistical marking probability needs to use the statistical marking probability obtained when the second count value was previously updated.

[0340] Here, step 1730 is described in combination with a formula: First, obtain the first parameter w, and use the difference between 1 and the first parameter (1 - w) as the second parameter. Then multiply the statistical marking probability er 1 obtained from the previous update by the second parameter (1 - w) er 1 (1 - w) as the reduced statistical marking probability er. Specifically, the reduced statistical marking probability er can be expressed as:

[0341] er = er 1 (1 - w),

[0342] where w represents the first parameter; (1 - w) represents the second parameter; er 1Indicates the statistical marking probability obtained from the previous update; er indicates the reduced statistical marking probability.

[0343] In the embodiment of the above steps 1710 to 1730, by obtaining the first parameter, determining the second parameter with the difference between 1 and the first parameter, and taking the product of the statistical marking probability obtained from the previous update and the second parameter as the reduced statistical marking probability. Through the above steps, the updated statistical marking probability is accurately calculated, improving the accuracy of congestion control.

[0344] In one embodiment, referring to Figure 18 , step 1120 includes:

[0345] Step 1810, obtaining the first queue height and the second queue height;

[0346] Step 1820, obtaining the critical marking probability corresponding to the second queue height;

[0347] Step 1830, determining the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability.

[0348] The following is a detailed description of steps 1810 to 1830:

[0349] In step 1810, the first queue height and the second queue height are obtained.

[0350] In one embodiment, the first queue height refers to the queue height of the switching node corresponding to the lower limit of marking the packet. The first queue height in the embodiments of the present disclosure is between 0 and 10 KB.

[0351] It should be noted that in the existing data center network topology, the configuration of the first queue height is relatively conservative, and the first queue height is generally set to 200 KB. The setting of the first queue height in the embodiments of the present disclosure is more aggressive compared to the first queue height configured in the prior art. By configuring the first queue height in this way, the source node can more accurately understand the congestion situation inside the switching node, thereby achieving more precise congestion control.

[0352] Exemplarily, the current congestion control effect is generally reflected by the queue height of the switching node, the bandwidth utilization rate, and the fairness of the bandwidth of different data flows to which the packets belong. The embodiments of the present disclosure prove through multiple groups of experiments that when the first queue height is set between 0 and 10 KB, more precise congestion control can be achieved. The queue height of the switching node, the bandwidth utilization rate, and the fairness of the bandwidth of different data flows corresponding to different first queue heights are shown in Table 1:

[0353]

[0354] Table 1

[0355] As shown in Table 1, when the first queue height is set to 5KB and 10KB, the queue height of the switching node is relatively low, and the bandwidth utilization rate is high. The fairness of the bandwidth of the data streams to which different packets belong is also higher than that of the data streams to which different packets belong corresponding to other first queue heights. It can be seen from this that when the first queue height is set between 0 and 10KB, more precise congestion control can be achieved.

[0356] According to an embodiment of the present disclosure, the value of the second queue height is related to the performance target of the service to which the packet belongs. If the service pursues extreme latency, then the throughput can be slightly sacrificed, and the second queue height can be set to a relatively small value. Correspondingly, if the service pursues the highest throughput, then a slight latency can be tolerated, and the second queue height can be set to a relatively large value.

[0357] The specific method for "obtaining the second queue height" will be described in detail below.

[0358] In step 1820, obtain the critical marking probability corresponding to the second queue height.

[0359] According to an embodiment of the present disclosure, the critical marking probability refers to the first probability corresponding to the second queue height. Referring to Figure 10 , assuming that the y-axis coordinates corresponding to the first queue height to the second queue height are the linear interval of the increase of the first probability, then the critical marking probability is the largest first probability in this linear interval.

[0360] Exemplarily, the critical marking probability can be 100%, or it can be other values. In order to facilitate more precise calculation of the statistical marking probability in the embodiments of the present disclosure, the critical marking probability needs to be determined as a relatively high value, such as 100%.

[0361] In step 1830, determine the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability.

[0362] According to an embodiment of the present disclosure, the statistical queue height refers to the average value of the queue heights of the switching node in the first period. Since the statistical marking probability refers to the average value of the probabilities of marking all the packets received by the switching node in the first period, and the switching node marks the packets based on the internal queue height, as well as the first queue height, the second queue height, and the critical marking probability of the switching node. Therefore, the statistical queue height can be deduced inversely according to the statistical marking probability, the first queue height, the second queue height, and the critical marking probability.

[0363] The specific method for "determining the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability" will be described in detail below.

[0364] The embodiments of the above steps 1810 to 1830 can deduce the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability, which is convenient for calculating the overload rate based on the statistical queue height later. By the above steps, the updated statistical marking probability is accurately calculated, improving the accuracy of congestion control.

[0365] In one embodiment, referring to Figure 19 , step 1810 includes:

[0366] Step 1910, obtain the bandwidth and the no-load delay of the switching node;

[0367] Step 1920, determine the delay-bandwidth product of the switching node based on the bandwidth and the no-load delay;

[0368] Step 1930, determine the first coefficient based on the maximum delay of the service to which the packet belongs;

[0369] Step 1940, determine the second queue height based on the first coefficient and the delay-bandwidth product.

[0370] The following will describe steps 1910 to 1940 in detail:

[0371] In step 1910, obtain the bandwidth and the no-load delay of the switching node.

[0372] According to the embodiments of the present disclosure, the bandwidth of the switching node refers to the amount of data transmitted by the switching node per second, which can be used to represent the data transmission ability of the link to which the switching node belongs. The no-load delay can be expressed as the communication time in the data center network. Exemplarily, assuming that in the case of the data center network being idle, it takes 6 ms for packet A to travel from the source node to the destination node, then the no-load delay is 6 ms.

[0373] In the actual transmission, the performance of the services in the data center network can be evaluated through the bandwidth and the no-load delay of the switching node.

[0374] In step 1920, determine the delay-bandwidth product of the switching node based on the bandwidth and the no-load delay.

[0375] According to an embodiment of the present disclosure, the delay-bandwidth product refers to a network performance metric, and the delay-bandwidth product is the product of the bandwidth and the no-load delay. Further, since the bandwidth represents the data transmission capacity of the link to which the switching node belongs, and the no-load delay represents the communication time in the data center network, the delay-bandwidth product can represent the maximum amount of data that can be transmitted by the data center network at any specific time. Moreover, the delay-bandwidth product can be equivalent to the maximum amount of data in the packets that the source node has sent but has not yet received an acknowledgment for.

[0376] Exemplarily, assume that the bandwidth is 100 Gbps and the no-load delay is 10 us, then the bandwidth product of the switching node is 100 Gbps * 10 us = 125 KB.

[0377] In step 1930, based on the maximum delay of the service to which the packet belongs, determine the first coefficient.

[0378] According to an embodiment of the present disclosure, the value of the first coefficient is related to the performance target of the service to which the packet belongs, and the range to which the first coefficient belongs can be between 0.5 and 2.

[0379] Exemplarily, if the service to which the packet belongs pursues a large delay, the first coefficient can be determined to be between 0.5 and 1.5. Correspondingly, if the service to which the packet belongs pursues the highest throughput, then it can tolerate a slight delay, and the first coefficient is confirmed to be between 1.5 and 2.

[0380] In step 1940, based on the first coefficient and the delay-bandwidth product, determine the second queue height.

[0381] According to an embodiment of the present disclosure, the second queue height can be the product of the first coefficient and the delay-bandwidth product. The embodiment of the present disclosure determines the second queue height through the first coefficient and the delay-bandwidth product, taking into account the maximum amount of data that can be transmitted by the data center network at any specific time, and improving the accuracy of congestion control.

[0382] Exemplarily, assume that the service to which the packet belongs pursues the highest throughput, then at this time it can tolerate a slight delay, and the first coefficient is confirmed to be 2. When the delay-bandwidth product is 100 KB, the second queue height is the product of the first coefficient and the delay-bandwidth product, that is, the second queue height is 200 KB.

[0383] The above embodiments of steps 1910 to 1940 determine the second queue height based on the first coefficient and the delay-bandwidth product, not only taking into account the maximum amount of data that can be transmitted by the data center network at any specific time, but also taking into account the performance metrics pursued by the service to which the packet belongs, and improving the accuracy of congestion control.

[0384] In one embodiment, refer to Figure 20, step 1830 includes:

[0385] Step 2010, determine the first height difference between the second queue height and the first queue height;

[0386] Step 2020, determine the first ratio of the statistical marking probability to the critical marking probability;

[0387] Step 2030, determine the statistical queue height based on the first queue height, the first height difference, and the first ratio.

[0388] The following is a detailed description of steps 2010 to 2030:

[0389] In step 2010, determine the first height difference between the second queue height and the first queue height.

[0390] According to an embodiment of the present disclosure, with reference to Figure 9 , the first height difference between the second queue height and the first queue height corresponds to the linear interval of the queue height at which the switching node adds a congestion mark.

[0391] Exemplarily, step 2010 is described herein in combination with a formula: First, obtain that the first queue height is K min and the second queue height is K max , and then determine that the first height difference between the second queue height K max and the first queue height K min is (K max -K min ).

[0392] In step 2020, determine the first ratio of the statistical marking probability to the critical marking probability.

[0393] According to an embodiment of the present disclosure, the first ratio refers to the ratio of the statistical marking probability to the critical marking probability. Further, calculating the first ratio is for more accurately estimating the queue height corresponding to the statistical marking probability subsequently.

[0394] Exemplarily, step 2020 is described herein in combination with a formula: It has been determined above that the statistical marking probability is er and the critical marking probability is P max , and thus the first ratio of the statistical marking probability er to the critical marking probability P max can be determined as

[0395] In step 2030, determine the statistical queue height based on the first queue height, the first height difference, and the first ratio.

[0396] According to an embodiment of the present disclosure, the first queue height is the lower limit for the switching node to add a congestion mark to a packet. When the queue height of the switching node exceeds the first queue height, the switching node will add a congestion mark to the packet. The first height difference corresponds to the linear interval of the queue height at which the switching node adds a congestion mark, and the first ratio corresponds to the ratio of the statistical marking probability to the critical marking probability. The value by which the queue of the switching node exceeds the first queue height can be calculated by multiplying the first height difference by the first ratio. Further, by adding the product of the first height difference and the first ratio to the first queue height, the statistical queue height can be deduced backwards.

[0397] Exemplarily, step 2030 is described here in combination with a formula: It has been determined above that the first queue height is K min , the second queue height is K max , and the first ratio is The first height difference is (K max -K min ), indicating that based on the first queue height K min , the first height difference (K max -K min ) and the first ratio The formula for determining the statistical queue height q is:

[0398]

[0399] Wherein, K min represents the first queue height; K max represents the second queue height; (K max -K min ) represents the first height difference; er represents the statistical marking probability; P max represents the critical marking probability; represents the first ratio; q represents the statistical queue height.

[0400] The embodiments of the above steps 2010 to 2030 can deduce the statistical queue height based on the first height difference between the second queue height and the first queue height, the first ratio of the statistical marking probability to the critical marking probability, and the first queue height. By accurately calculating the updated statistical marking probability through the above steps, the accuracy of congestion control is improved.

[0401] In one embodiment, referring to Figure 21 , step 1130 includes:

[0402] Step 2110, determine the load of the switching node in the first period based on the statistical queue height;

[0403] Step 2120, obtain the port bandwidth of the switching node;

[0404] Step 2130: Determine the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period.

[0405] The following is a detailed description of steps 2110 to 2130:

[0406] In step 2110, determine the load of the switching node in the first period based on the statistical queue height.

[0407] According to an embodiment of the present disclosure, the load is the amount of data corresponding to the packets processed by the switching node in the first period. Further, an excessively high load may cause the switching node to be unable to process requests for other packets, and may even cause the switching node to malfunction. Since the statistical queue height refers to the average of the queue heights of the switching node in the first period. Therefore, an embodiment of the present disclosure can calculate the load of the switching node in the first period based on the statistical queue height.

[0408] The specific method for "determining the load of the switching node in the first period based on the statistical queue height" will be described in detail below.

[0409] In step 2120, obtain the port bandwidth of the switching node.

[0410] According to an embodiment of the present disclosure, the port bandwidth determines the maximum data transmission speed that the port of the switching node can handle. Exemplarily, a switching node with a higher port bandwidth can support a higher data transmission speed, thus meeting the network applications with high bandwidth requirements. Therefore, in order to facilitate subsequent estimation of the load corresponding to the switching node under overload, it is first necessary to obtain the maximum data transmission speed that the port of the switching node can handle, that is, the port bandwidth of the switching node.

[0411] In step 2130, based on, determine the overload rate of the switching node in the first period.

[0412] According to an embodiment of the present disclosure, the load is the amount of data corresponding to the packets processed by the switching node in the first period, the port bandwidth determines the maximum data transmission speed that the port of the switching node can handle, and the first period determines the period for updating the overload rate. After determining the load, port bandwidth, and the first period, the overload rate of the switching node in the first period can also be calculated based on the load, port bandwidth, and the first period, which facilitates subsequent evaluation of whether the switching node is congested according to the overload rate of the switching node in the first period, and improves the accuracy of detecting congestion.

[0413] The specific method for "determining the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period" will be described in detail below.

[0414] The embodiments of the above steps 2110 to 2130 can calculate the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period, facilitating subsequent evaluation of whether the switching node is congested according to the overload rate of the switching node in the first period, and improving the accuracy of congestion detection.

[0415] The above is the overall description of steps 2110 to 2130. The following will separately describe the specific implementation processes of steps 2110 and 2130 in detail.

[0416] In one embodiment, referring to Figure 22 , step 2110 includes:

[0417] Step 2210, obtain the queue weight coefficient and the queue fluctuation damping coefficient;

[0418] Step 2220, determine the second height difference between the statistical queue height of the current first period and the statistical queue height of the previous first period;

[0419] Step 2230, based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference, determine the load of the switching node in the first period.

[0420] The following will describe steps 2210 to 2230 in detail:

[0421] In step 2210, obtain the queue weight coefficient and the queue fluctuation damping coefficient.

[0422] According to the embodiments of the present disclosure, the queue weight coefficient is the weight assigned to the internal queue height of the switching node in each first period. Generally, the queue weight coefficient is 1. The queue fluctuation damping coefficient is the weight assigned to the change trend of the internal queue height of the switching node in each first period. Generally, the queue fluctuation damping coefficient is 0.5 - 1.0.

[0423] In step 2220, determine the second height difference between the statistical queue height of the current first period and the statistical queue height of the previous first period.

[0424] According to the embodiments of the present disclosure, the second height difference is the difference between the statistical queue height of the current first period and the statistical queue height of the previous first period. The second height difference reflects the change trend of the internal queue height of the switching node. The embodiments of the present disclosure consider not only the internal queue height of the switching node in the current first period but also the internal queue height when calculating the load of the switching node, improving the accuracy of congestion detection.

[0425] In step 2230, based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference, determine the load of the switching node in the first period.

[0426] According to an embodiment of the present disclosure, the queue weight coefficient is the weight assigned to the internal queue height of the switching node in each first period, and the statistical queue height refers to the average of the queue heights of the switching node in the first period. The queue fluctuation damping coefficient is the weight assigned to the change trend of the internal queue height of the switching node in each first period, and the second height difference reflects the change trend of the internal queue height of the switching node. The load corresponding to the queue height of the switching node in the first period can be calculated through the queue weight coefficient and the statistical queue height, and the load consumed by the change of the internal queue height of the switching node can be calculated through the queue fluctuation damping coefficient and the second height difference. The load of the switching node in the first period can be determined through the load corresponding to the queue height of the switching node in the first period and the load consumed by the change of the internal queue height of the switching node.

[0427] Exemplarily, the step 2230 is described here in combination with a formula: First, obtain the queue weight coefficient α and the queue fluctuation damping coefficient β. Then, determine the statistical queue height q of the current first period and the statistical queue height q l of the previous first period, and the second height difference (q - q l ). Finally, based on the queue weight coefficient α, the statistical queue height q l , the queue fluctuation damping coefficient β, and the second height difference (q - q l ), determine the load of the switching node in the first period. It shows that based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference, the load of the switching node in the first period is determined as:

[0428] s = α·q + β·(q - q l ),

[0429] where α represents the queue weight coefficient; β represents the queue fluctuation damping coefficient; q represents the statistical queue height of the current first period; q l represents the statistical queue height of the previous first period; (q - q l ) represents the second height difference; s represents the load of the switching node in the first period.

[0430] The embodiments of the above steps 2210 to 2230 determine the second height difference between the statistical queue height of the current first period and the statistical queue height of the previous first period, and determine the load of the switching node in the first period based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference. When calculating the load of the switching node, the steps of the embodiments of the present disclosure not only consider the internal queue height of the switching node in the current first period, but also consider the internal queue height, improving the accuracy of congestion detection.

[0431] In one embodiment, referring to Figure 23 , step 2130 includes:

[0432] Step 2310, determining the port bandwidth and the first product of the first period;

[0433] Step 2320, determining the ratio of the load to the first product as the overload rate.

[0434] The following is a detailed description of steps 2310 to 2320:

[0435] In step 2310, the port bandwidth and the first product of the first period are determined.

[0436] According to the embodiment of the present disclosure, the first product is the product of the port bandwidth and the first period. The first product can indicate the maximum amount of data that the switching node port can process in the first period.

[0437] Here, step 2310 is described in combination with a formula: First, obtain the port bandwidth B and the first period T, and then determine the first product of the port bandwidth B and the first period T as B.T.

[0438] In step 2320, the ratio of the load to the first product is determined as the overload rate.

[0439] According to the embodiment of the present disclosure, the first product indicates the maximum amount of data that the switching node port can process in the first period, and the load indicates the amount of data corresponding to the packets processed by the switching node in the first period. By calculating the ratio of the load to the first product, the overload rate of the switching node in the first period can be determined.

[0440] Here, step 2320 is described in combination with a formula: First, obtain the port bandwidth B and the first period T, and then determine the first product of the port bandwidth B and the first period T as B.T. Since the load s has been determined above, at this time, the ratio of the load s to the first product B.T can be determined as the overload rate. The formula for determining the overload rate is shown as:

[0441]

[0442] Wherein, s represents the load; B represents the port bandwidth; T represents the first period; B.T represents the first product; o represents the overload rate.

[0443] In the embodiments of steps 2310 to 2320 above, first, based on the port bandwidth and the first period, the maximum data volume that the switching node port can process in the first period is determined. Then, by calculating the ratio of the load and the maximum data volume that the switching node port can process in the first period, the overload rate of the switching node in the first period is determined. Through the above steps, the embodiments of the present disclosure can facilitate subsequent evaluation of whether the switching node is congested according to the overload rate of the switching node in the first period, improving the accuracy of congestion detection.

[0444] Detailed description of step 440

[0445] Step 440: Update the first congestion sliding window based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0446] In one embodiment, referring to Figure 24 , step 440 includes:

[0447] Step 2410: If the overload rate of the previous first period is greater than 0, when the acknowledgment response is received for the first time in the current first period, reduce the length of the first congestion sliding window based on the overload rate;

[0448] Step 2420: If the overload rate of the previous first period is less than or equal to 0, increase the length of the first congestion sliding window every time an acknowledgment response is received in the current first period.

[0449] The following is a detailed description of steps 2410 to 2420:

[0450] In step 2410, if the overload rate of the previous first period is greater than 0, when the acknowledgment response is received for the first time in the current first period, reduce the length of the first congestion sliding window based on the overload rate.

[0451] According to an embodiment of the present disclosure, it is possible to determine whether the switching node is overloaded in the first period corresponding to the overload rate by comparing the overload rate with 0. If the overload rate in the previous first period is greater than 0, it indicates that the switching node was overloaded in the previous first period. Here, overload means that the amount of data in the cache of the switching node has exceeded the maximum amount of data that the switching node can handle. The overload of the switching node in the previous first period indicates that congestion has occurred in the switching node. At this time, some measures need to be taken to relieve the congestion in the switching node. Based on this, if the overload rate in the previous first period is greater than 0, the embodiment of the present disclosure will reduce the length of the first congestion sliding window based on the overload rate when the confirmation response is received for the first time in the current first period. Further, by reducing the length of the first congestion sliding window, the number of packets in the subsequent data center network (i.e., the packets that have been sent by the source node but have not been received by the destination node) can be correspondingly reduced, thereby achieving the purpose of relieving the congestion in the switching node.

[0452] Exemplarily, referring to Figure 25A , the first congestion sliding window before update is used to indicate 12 packets sent to the destination node. Once a confirmation response is received for one of the 12 packets, the first congestion sliding window is slid to accommodate more unsent packets, so as to send the accommodated unsent packets. If the overload rate in the previous period is greater than 0, then when the confirmation response is received for the first time in the current first period, the length of the first congestion sliding window is reduced based on the overload rate. The reduced first congestion sliding window is used to indicate 10 packets sent to the destination node. Correspondingly, the number of packets in the subsequent data center network is also reduced, achieving precise congestion control.

[0453] The specific method of "if the overload rate in the previous first period is greater than 0, then when the confirmation response is received for the first time in the current first period, the length of the first congestion sliding window is reduced based on the overload rate" will be described in detail below.

[0454] In step 2420, if the overload rate in the previous first period is less than or equal to 0, the length of the first congestion sliding window is increased each time a confirmation response is received in the current first period.

[0455] According to an embodiment of the present disclosure, steps 2420 and 2410 are actually different branch steps. If the overload rate of the previous first cycle is greater than 0, it indicates that the switching node was in an overloaded state in the previous first cycle, and step 2410 is executed. If the overload rate of the previous first cycle is less than or equal to 0, it indicates that the switching node was in an underloaded state in the previous first cycle, and step 2420 is executed. Underloading indicates that the amount of data in the buffer of the switching node is less than the maximum amount of data that the switching node can process. The underloading of the switching node in the previous first cycle indicates that there is no congestion in the switching node, or the congestion situation of the switching node has been alleviated. However, in this case, the resources of the switching node may not be fully utilized. Therefore, some means need to be taken at this time to fully utilize the resources of the switching node.

[0456] Based on this, if the overload rate of the previous first cycle is less than 0, the embodiment of the present disclosure will increase the length of the first congestion sliding window based on the overload rate when the first acknowledgment is received for the first time in the current first cycle. Further, by increasing the length of the first congestion sliding window, the number of packets in the subsequent data center network (i.e., the packets that have been sent by the source node but not received by the destination node) can be correspondingly increased, thereby fully utilizing the resources of the switching node.

[0457] Exemplarily, referring to Figure 25B , the first congestion sliding window before update is used to indicate 12 packets sent to the destination node. Once an acknowledgment is received for one of the 12 packets, the first congestion sliding window is slid to accommodate more unsent packets, and then the accommodated unsent packets are sent. If the overload rate of the previous cycle is less than 0, then when the first acknowledgment is received for the first time in the current first cycle, the length of the first congestion sliding window is increased based on the overload rate. The increased first congestion sliding window is used to indicate 15 packets sent to the destination node. Correspondingly, the number of packets in the subsequent data center network is also increased, and the resources of the switching node are fully utilized.

[0458] The specific method of "if the overload rate of the previous first cycle is less than or equal to 0, then the length of the first congestion sliding window is increased every time an acknowledgment is received in the current first cycle" will be described in detail below.

[0459] In the above embodiments of steps 2410 to 2420, when the overload rate of the previous first cycle is greater than 0, the length of the first congestion sliding window is decreased every time an acknowledgment is received in the current first cycle, thereby reducing the number of packets in the subsequent data center network and achieving precise congestion control. At the same time, when the overload rate of the previous first cycle is less than or equal to 0, the length of the first congestion sliding window is increased every time an acknowledgment is received in the current first cycle, thereby increasing the number of packets in the subsequent data center network and fully utilizing the resources of the switching node.

[0460] The above is the overall description of steps 2410 and 2420. The following will separately describe the specific implementation processes of steps 2410 and 2420 in detail.

[0461] In one embodiment, referring to Figure 26 , step 2410 includes:

[0462] Step 2610, when receiving an acknowledgment for the first time in the current first cycle, determine the first sum of 1 and the overload rate;

[0463] Step 2620, use the result of dividing the length of the first congestion sliding window by the first sum as the reduced length of the first congestion sliding window.

[0464] The following will describe steps 2610 to 2620 in detail:

[0465] In step 2610, when receiving an acknowledgment for the first time in the current first cycle, determine the first sum of 1 and the overload rate.

[0466] According to an embodiment of the present disclosure, the first sum refers to the sum of 1 plus the overload rate. If the overload rate in the previous first cycle is greater than 0, it indicates that the switching node was in an overloaded state in the previous first cycle. Then, when receiving an acknowledgment for the first time in the current first cycle, it is necessary to reduce the length of the first congestion sliding window to relieve the congestion in the switching node. First, the first sum of 1 and the overload rate will be determined to facilitate reducing the length of the first congestion sliding window based on the first sum of 1 and the overload rate later.

[0467] Here, step 2610 will be described in combination with a formula: First, obtain the overload rate o, and then determine the first sum of 1 and the overload rate o, and the first sum is (1 + o).

[0468] In step 2620, use the result of dividing the length of the first congestion sliding window by the first sum as the reduced length of the first congestion sliding window.

[0469] According to an embodiment of the present disclosure, the first congestion sliding window in "the result of dividing the length of the first congestion sliding window by the first sum" refers to the first congestion sliding window calculated after receiving the last acknowledgment in the previous first cycle. By using the result of dividing the length of the first congestion sliding window by the first sum as the reduced length of the first congestion sliding window, the congestion in the switching node can be relieved, and accurate congestion control can be achieved.

[0470] The following is an explanation of step 2620 in combination with a formula: First, obtain the overload rate o, determine the first sum (1 + o) of 1 and the overload rate o, and then use the result of dividing the length wc of the first congestion window by the first sum (1 + o) as the reduced length cwnd of the first congestion window. The formula indicating that the result of dividing the length of the first congestion window by the first sum is used as the reduced length of the first congestion window is:

[0471]

[0472] Where cwnd represents the reduced length of the first congestion window; wc represents the first congestion window calculated after the last acknowledgment received in the previous first period; o represents the overload rate; and (1 + o) represents the first sum.

[0473] Exemplarily, if the first congestion window wc calculated after the last acknowledgment received in the previous first period is 10 and the overload rate o is 1, then the reduced length cwnd of the first congestion window is 5.

[0474] The above embodiments of steps 2610 to 2620 can relieve the congestion situation in the switching node and achieve precise congestion control by determining the first sum of 1 and the overload rate and using the result of dividing the length of the first congestion window by the first sum as the reduced length of the first congestion window.

[0475] In one embodiment, referring to Figure 27 , after step 2410, the congestion control method further includes:

[0476] Step 2710: If the overload rate of the previous first period is greater than 0, reset the acknowledgment cumulative value to zero;

[0477] Step 2420 includes:

[0478] Step 2720: If the overload rate of the previous first period is less than or equal to 0, then add 1 to the acknowledgment cumulative value each time an acknowledgment is received in the current first period;

[0479] Step 2730: If the acknowledgment cumulative value has not reached the predetermined cumulative value, determine the increased length of the first congestion window based on the first rule;

[0480] Step 2740: If the acknowledgment cumulative value reaches the predetermined cumulative value, determine the increased length of the first congestion window based on the second rule.

[0481] The following is a detailed description of steps 2710 to 2740:

[0482] In step 2710, if the overload rate of the previous first period is greater than 0, reset the acknowledgment cumulative value to zero.

[0483] According to an embodiment of the present disclosure, the acknowledgment response accumulation value refers to the number of the first cycles in which the switching node is continuously underloaded before the previous first cycle, where when the overload rate is less than or equal to 0, it is determined that the switching node is in an underloaded state. Exemplarily, if the overload rate of the previous first cycle is greater than 0, but before the previous first cycle, there are 5 consecutive first cycles in which the overload rate of the switching node is less than or equal to 0, then the acknowledgment response accumulation value is 5.

[0484] Furthermore, since the acknowledgment response accumulation value indicates the number of the first cycles in which the switching node is continuously underloaded before the previous first cycle, if the overload rate of the previous first cycle is greater than 0, the acknowledgment response accumulation value needs to be reset to zero.

[0485] In step 2720, if the overload rate of the previous first cycle is less than or equal to 0, then each time an acknowledgment response is received in the current first cycle, the acknowledgment response accumulation value is incremented by 1.

[0486] According to an embodiment of the present disclosure, since the acknowledgment response accumulation value indicates the number of the first cycles in which the switching node is continuously underloaded before the previous first cycle, if the overload rate of the previous first cycle is less than or equal to 0, it means that the switching node is still in an underloaded state in the previous first cycle. At this time, the acknowledgment response accumulation value needs to be incremented by 1 to count the number of the first cycles in which the switching node is continuously underloaded.

[0487] In step 2730, if the acknowledgment response accumulation value does not reach the predetermined accumulation value, the length of the increased first congestion sliding window is determined based on the first rule.

[0488] According to an embodiment of the present disclosure, the predetermined accumulation value refers to a preset threshold for the number of the first cycles of continuous underloading, and the predetermined accumulation value is generally set to 5. The first rule refers to a technical means for increasing the first congestion sliding window. It should be noted that when the acknowledgment response accumulation value does not reach the predetermined accumulation value, it indicates that in several first cycles before the previous first cycle, the switching node has experienced an overload situation, and the method of reducing the first congestion sliding window has been adopted for congestion control. And after the previous first cycle, the congestion control of the switching node has achieved initial results, and the cache resources inside the switching node have been alleviated. Furthermore, to reduce the risk of waste of the cache resources inside the switching node, it is necessary to determine the length of the increased first congestion sliding window based on the first rule, so as to reduce the occurrence of congestion inside the switching node while making full use of the cache resources inside the switching node.

[0489] The specific method of "determining the length of the increased first congestion sliding window based on the first rule" will be described in detail below.

[0490] In step 2740, if it is confirmed that the acknowledgment cumulative value reaches a predetermined cumulative value, determine the length of the increased first congestion sliding window based on the second rule.

[0491] According to an embodiment of the present disclosure, the second rule refers to a technical means for increasing the first congestion sliding window, and the second rule is more aggressive than the first rule. That is, the growth trend of the first congestion sliding window corresponding to the increase of the first congestion sliding window by the second rule is faster than the growth trend of the first congestion sliding window corresponding to the increase of the first congestion sliding window by the first rule. When the acknowledgment cumulative value reaches the predetermined cumulative value, it indicates that there are multiple first cycles in an underloaded state before the previous first cycle in the switching node. At this time, the cache resources inside the switching node have not been fully utilized for a long time, and some aggressive means need to be taken to fully utilize the cache resources inside the switching node. Further, to fully utilize the cache resources inside the switching node, it is necessary to further determine the length of the increased first congestion sliding window based on the second rule to improve the utilization rate of the cache resources inside the switching node. Specifically, because the acknowledgment cumulative value in step 2740 is greater than the acknowledgment cumulative value in step 2730, in order to fully utilize the cache resources inside the switching node, the second rule is more aggressive than the first rule.

[0492] Exemplarily, assume that the predetermined cumulative value is 5. When the acknowledgment cumulative value determined in the current first cycle is 3, it is necessary to determine the length of the increased first congestion sliding window based on the first rule. When the acknowledgment cumulative value determined in the current first cycle is 6, it is necessary to determine the length of the increased first congestion sliding window based on the second rule.

[0493] The specific method of "determining the length of the increased first congestion sliding window based on the second rule" will be described in detail below.

[0494] The embodiments of the above steps 2710 to 2740 can, when the acknowledgment cumulative value does not reach the predetermined cumulative value, further determine the length of the increased first congestion sliding window based on the first rule to reduce the occurrence of congestion inside the switching node while fully utilizing the cache resources inside the switching node. Moreover, when the acknowledgment cumulative value reaches the predetermined cumulative value, further determine the length of the increased first congestion sliding window based on the second rule, which is more aggressive than the first rule, to improve the utilization rate of the cache resources inside the switching node.

[0495] The above is the overall description of steps 2710 to 2740. The following will separately describe the specific implementation processes of steps 2730 and 2740 in detail.

[0496] In one embodiment, referring to Figure 28 , step 2730 includes:

[0497] Step 2810: If it is confirmed that the cumulative value of acknowledgments has not reached the predetermined cumulative value, obtain the second quantity in the acknowledgment.

[0498] Step 2820: Initialize the third count value to 1.

[0499] Step 2830: If the third count value is less than or equal to the second quantity, use the ratio of the additive window increment coefficient to the length of the first congestion sliding window as the window length increment value, and add the length of the first congestion sliding window and the window length increment value to obtain the increased length of the first congestion sliding window.

[0500] Step 2840: Increment the third count value by 1, and return to the step of using the ratio of the additive window increment coefficient to the length of the first congestion sliding window as the window length increment value if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0501] The following is a detailed description of Steps 2810 to 2840:

[0502] In Step 2810, if it is confirmed that the cumulative value of acknowledgments has not reached the predetermined cumulative value, obtain the second quantity in the acknowledgment.

[0503] According to an embodiment of the present disclosure, if the cumulative value of acknowledgments has not reached the predetermined cumulative value, it indicates that the cache resources inside the current switching node are not fully utilized. At this time, whenever an acknowledgment from the destination node is received, the second quantity of the packets carrying the clear flag in the acknowledgment will be obtained, so as to estimate the state of the cache resources inside the current switching node, and facilitate increasing the length of the first congestion sliding window according to the state of the cache resources inside the current switching node subsequently.

[0504] In Step 2820, initialize the third count value to 1.

[0505] According to an embodiment of the present disclosure, the third count value is used to indicate the number of times of performing the step of increasing the first congestion sliding window. In practical applications, the third count value is similar to a register and is used to count the number of times of performing the step of increasing the first congestion sliding window currently.

[0506] Since in the case where the overload rate is less than or equal to 0, the source node needs to increase the length of the first congestion sliding window every time an acknowledgment is received, and when increasing the length of the first congestion sliding window, the number of times of performing the step of increasing the first congestion sliding window is determined by the second quantity in the acknowledgment. Because the second quantity in each acknowledgment may not be the same, the number of times of performing the step of increasing the first congestion sliding window also needs to be changed. Based on this, the source node needs to initialize the third count value every time an acknowledgment is received.

[0507] In step 2830, if the third count value is less than or equal to the second quantity, the ratio of the additive window increase coefficient to the length of the first congestion sliding window is used as the increase value of the sliding window length, and the length of the first congestion sliding window is added to the increase value of the sliding window length to obtain the increased length of the first congestion sliding window.

[0508] According to an embodiment of the present disclosure, the additive window increase coefficient is a coefficient for adjusting the value of the first congestion sliding window.

[0509] It should be noted that in the case where the overload rate in the previous first period is less than or equal to 0, when each acknowledgment is received and the first congestion sliding window is increased, the number of times of performing the step of increasing the first congestion sliding window is the same as the second quantity in the acknowledgment. Since the third count value is initialized to 1 each time an acknowledgment is received, and the third count value is incremented only after one step of increasing the first congestion sliding window is executed, this means that the actual number of times of performing the step of increasing the first congestion sliding window currently is the third count value minus one. Therefore, if the third count value is less than the second quantity, one step of increasing the first congestion sliding window needs to be executed. Specifically, when performing the step of increasing the first congestion sliding window, first, the ratio of the additive window increase coefficient to the length of the first congestion sliding window before update is used as the increase value of the sliding window length. The increase value of the sliding window length is the increase number for increasing the first congestion sliding window. After obtaining the increase value of the sliding window length, the length of the first congestion sliding window is added to the increase value of the sliding window length to obtain the increased length of the first congestion sliding window.

[0510] Here, step 2830 is described in combination with a formula: If the third count value is less than or equal to the second quantity, the ratio of the additive window increase coefficient θ to the length cwnd of the first congestion sliding window 1 is used as the increase value of the sliding window length, and the length cwnd of the first congestion sliding window 1 is added to the increase value of the sliding window length to obtain the increased length of the first congestion sliding window. It shows that the formula for calculating the increased length of the first congestion sliding window is:

[0511]

[0512] where cwnd 1 represents the first congestion sliding window before update; θ represents the additive window increase coefficient; represents the ratio of the additive window increase coefficient to the length of the first congestion sliding window, and cwnd represents the increased first congestion sliding window.

[0513] Further, when the overload rate is less than or equal to 0, if the currently received acknowledgment is the first acknowledgment corresponding to the current first cycle and the third count value is 1, the first congestion window before update is the first congestion window corresponding to the last acknowledgment received in the previous first cycle. If the currently received acknowledgment is not the first acknowledgment corresponding to the current first cycle and the third count value is 1, the first congestion window before update is the first congestion window calculated when the last acknowledgment was received. When the third count value is greater than 1 and less than or equal to the second quantity, the first congestion window before update is the first congestion window obtained when the step of increasing the first congestion window was last executed.

[0514] In step 2840, increment the third count value by 1 and return the ratio of the additive increase window coefficient to the length of the first congestion window as the increase value of the window length until the third count value is greater than the second quantity.

[0515] According to an embodiment of the present disclosure, since the third count value is used to indicate the number of times the step of increasing the first congestion window is executed, each time the step of increasing the first congestion window is completed, the third count value needs to be incremented synchronously by one.

[0516] Further, in order to more accurately calculate the increased first congestion window, congestion control is performed. Each time the source node receives an acknowledgment, it executes the step of increasing the first congestion window once based on the second quantity in the acknowledgment, and the number of times of iteratively executing the step of increasing the first congestion window is the same as the second quantity. Since the embodiment of the present disclosure counts the number of times the step of increasing the first congestion window is executed through the third count value, the execution of the step of increasing the first congestion window will not stop until the third count value is greater than the second quantity.

[0517] Exemplarily, if the second quantity in acknowledgment A is 3, after the source node receives acknowledgment A, it first initializes the third count value to 1. At this time, the third count value is less than 3, and the ratio of the additive increase window coefficient to the length of the first congestion window needs to be used as the increase value of the window length, and the length of the first congestion window is added to the increase value of the window length to obtain the length of the increased first congestion window, and the third count value is incremented by 1 to obtain the third count value of 2. However, at this time, the third count value is still less than 3, so the step of increasing the first congestion window will still be executed once to update the first congestion window, and the third count value is incremented by 1 to obtain the third count value of 3. However, at this time, the third count value is not greater than 3, so the step of increasing the first congestion window will still be executed once to update the first congestion window, and the third count value is incremented by 1 to obtain the third count value of 4. At this time, the third count value is already greater than 3, so the execution of the step of increasing the first congestion window stops.

[0518] In the embodiment of the above steps 2810 to 2840, when the overload rate is less than or equal to 0 and the cumulative value of the acknowledgment response has not reached the predetermined cumulative value, the number of times of executing the increase of the first congestion sliding window is counted by the third count value, and the step of increasing the first congestion sliding window will not stop until the third count value is greater than the second quantity. The embodiment of the present disclosure accurately obtains the increased first congestion sliding window through the above method, and sends messages according to the increased first congestion sliding window, making full use of the utilization rate of the buffer resources in the switching node.

[0519] In one embodiment, referring to Figure 29 , step 2740 includes:

[0520] Step 2910, if the cumulative value of the acknowledgment response reaches the predetermined cumulative value, obtain the second quantity in the acknowledgment response;

[0521] Step 2920, initialize the third count value to 1;

[0522] Step 2930, if the third count value is less than or equal to the second quantity, use the product of the predetermined multiple and the length of the first congestion sliding window as the length of the increased first congestion sliding window;

[0523] Step 2940, add 1 to the third count value, and return to the step of using the product of the predetermined multiple and the length of the first congestion sliding window as the length of the increased first congestion sliding window if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0524] The following will describe steps 2910 to 2940 in detail:

[0525] In step 2910, if the cumulative value of the acknowledgment response reaches the predetermined cumulative value, obtain the second quantity in the acknowledgment response.

[0526] According to the embodiment of the present disclosure, if the cumulative value of the acknowledgment response reaches the predetermined cumulative value, it indicates that there are multiple first cycles in the underload state before the previous first cycle in the switching node. At this time, the buffer resources inside the switching node have not been fully utilized for a long time, and some radical means need to be taken to fully utilize the buffer resources inside the switching node. At this time, whenever an acknowledgment response from the destination node is received, the second quantity of the messages with the unobstructed flag carried in the acknowledgment response will be obtained, so as to estimate the state of the buffer resources inside the current switching node, and facilitate subsequent increasing the length of the first congestion sliding window according to the state of the buffer resources inside the current switching node.

[0527] In step 2920, initialize the third count value to 1.

[0528] The specific implementation manner of the embodiment of the present disclosure is similar to the specific implementation manner of "initializing the third count value to 1" in step 2820 above, and will not be elaborated here.

[0529] In step 2930, if the third count value is less than or equal to the second quantity, the product of the predetermined multiple and the length of the first congestion window is used as the increased length of the first congestion window.

[0530] According to an embodiment of the present disclosure, the predetermined multiple refers to the multiplier for increasing the value of the first congestion window. By adjusting the size of the predetermined multiple, the increasing trend of the value of the first congestion window can be adjusted. Further, generally, the predetermined multiple is set to 1.1. Exemplarily, assuming that the predetermined multiple is set to 1.1, step 2930 is described here in combination with a formula: If the third count value is less than or equal to the second quantity, the product of the predetermined multiple and the length of the first congestion window before update is used as the increased length of the first congestion window. The formula indicating that the product of the predetermined multiple and the length of the first congestion window is used as the increased length of the first congestion window is:

[0531] cwnd = cwnd 1 .1.1,

[0532] where cwnd represents the increased first congestion window; cwnd 1 represents the first congestion window before update.

[0533] In step 2940, the third count value is incremented by 1, and the step of using the product of the predetermined multiple and the length of the first congestion window as the increased length of the first congestion window if the third count value is less than or equal to the second quantity is returned until the third count value is greater than the second quantity.

[0534] It should be noted that the step of iteratively increasing the first congestion window in step 2940 is similar to the step of iteratively increasing the first congestion window in step 2840. Both are based on the second quantity in the acknowledgment to perform a step of increasing the first congestion window once, and the number of times of iteratively performing a step of increasing the first congestion window once is the same as the second quantity. However, the step of increasing the first congestion window in step 2940 and the step of increasing the first congestion window in step 2840 are not the same. Because the situation corresponding to step 2940 is that the cumulative value of the acknowledgment reaches the predetermined cumulative value, and the method of increasing the first congestion window is the second rule, while the situation corresponding to step 2840 is that the cumulative value of the acknowledgment does not reach the predetermined cumulative value, and the method of increasing the first congestion window is the first rule, so step 2940 is more aggressive than step 2840.

[0535] In the embodiment of the above steps 2910 to 2940, when the overload rate is less than or equal to 0 and the cumulative value of the acknowledgment response reaches a predetermined cumulative value, the number of times of increasing the first congestion sliding window is counted by the third count value, and the step of increasing the first congestion sliding window is not stopped until the third count value is greater than the second quantity. Moreover, the embodiment of the present disclosure uses a second rule that is more aggressive than the first rule to iteratively determine the length of the increased first congestion sliding window, accurately improving the utilization rate of the cache resources inside the switching node.

[0536] Another embodiment of determining the overload rate of the switching node based on the first quantity and the second quantity and updating the first congestion sliding window based on the overload rate

[0537] In one embodiment, referring to Figure 30 , at least one switching node is a plurality of switching nodes, and the message is sent to the destination node through one of the plurality of switching nodes; the acknowledgment response includes the first quantity and the second quantity corresponding to each switching node;

[0538] Step 430 includes:

[0539] Step 3010, determining the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node;

[0540] Step 440 includes:

[0541] Step 3020, updating the first congestion sliding window of each switching node.

[0542] The following is a detailed description of step 3010 and step 3020:

[0543] In step 3010, the overload rate of each switching node is determined based on the first quantity and the second quantity corresponding to each switching node.

[0544] According to an embodiment of the present disclosure, when there are multiple switching nodes between a source node and a destination node, a message sent by the source node only passes through one of the multiple switching nodes. Further, to obtain the congestion situation among the multiple switching nodes between the source node and the destination node, it is necessary to send multiple messages from the source node to the destination node so that the messages reach the destination node through different forwarding paths (each forwarding path corresponds to a switching node). Through the above steps, the destination node can receive the messages with congestion marks and the messages with smooth marks corresponding to each switching node. Then, insert the first quantity and the second quantity corresponding to each switching node into the acknowledgment response, and return the acknowledgment response to the source node, so that the source node determines the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node. Finally, obtain the congestion situation inside each switching node according to the overload rate of each switching node.

[0545] Exemplarily, referring to Figure 31 , there are four switching nodes between the source node and the destination node, namely switching node 1, switching node 2, switching node 3, and switching node 4. To obtain the congestion situation of these four switching nodes, the source node sends multiple messages to each of these four switching nodes respectively, so that the destination node receives the messages with congestion marks and the messages with smooth marks corresponding to each switching node. Further, the source node respectively receives the messages with congestion marks and the messages with smooth marks forwarded by the four switching nodes, and counts the messages with congestion marks and the messages with smooth marks forwarded by each switching node, returns the acknowledgment response 1 corresponding to switching node 1 to the source node, returns the acknowledgment response 2 corresponding to switching node 2 to the source node, returns the acknowledgment response 3 corresponding to switching node 3 to the source node, and returns the acknowledgment response 4 corresponding to switching node 4 to the source node. After receiving the acknowledgment response 1, acknowledgment response 2, acknowledgment response 3, and acknowledgment response 4, the source node calculates the overload rate corresponding to switching node 1 based on the received acknowledgment response 1, calculates the overload rate corresponding to switching node 2 based on the received acknowledgment response 2, calculates the overload rate corresponding to switching node 3 based on the received acknowledgment response 3, and calculates the overload rate corresponding to switching node 4 based on the received acknowledgment response 4.

[0546] Further, the congestion mark or the smooth mark is correspondingly recorded in the message with the switching node identifier; the first quantity and the second quantity are generated by the destination node in the following manner: initializing the fourth count value and the fifth count value corresponding to each switching node identifier to 0, where the fourth count value indicates the number of messages with a congestion mark added by the switching node corresponding to the switching node identifier, and the fifth count value indicates the number of messages with a smooth mark added by the switching node corresponding to the switching node identifier; when receiving a message, if the message contains a congestion mark corresponding to the switching node of the switching node identifier, increment the fourth count value corresponding to the switching node identifier by 1; when receiving a message, if the message contains a smooth mark corresponding to the switching node of the switching node identifier, increment the fifth count value corresponding to the switching node identifier by 1; when a predetermined condition is met, determine the fourth count value as the first quantity and the fifth count value as the second quantity.

[0547] It should be noted that in the case where there are multiple switching nodes between the source node and the destination node, in order to obtain the congestion situation of the multiple switching nodes between the source node and the destination node, it is necessary to send multiple messages from the source node to the destination node so that the messages reach the destination node through different forwarding paths. In order for the source node to distinguish different messages with congestion / smooth marks forwarded by different switching nodes, the switching node in the embodiment of the present disclosure will also add a switching node identifier to the message when adding a congestion / smooth mark to the message, so that the destination node can know the switching node that added the congestion / smooth mark to the message when receiving the message.

[0548] According to the embodiment of the present disclosure, the fourth count value is used to indicate the number of messages with a congestion mark added by the switching node corresponding to the switching node identifier in the message. In practical applications, the fourth count value is similar to a register and is used to count the number of messages with a congestion mark added by the switching node corresponding to the switching node identifier received by the current destination node. The fifth count value is used to indicate the number of messages with a smooth mark added by the switching node corresponding to the switching node identifier in the message. In practical applications, the fifth count value is similar to a register and is used to count the number of messages with a smooth mark added by the switching node corresponding to the switching node identifier received by the current destination node.

[0549] Since the source node needs to re-initialize the number of messages with a congestion mark added by the switching node corresponding to the switching node identifier in the messages received by the destination node and the number of messages with a smooth mark added by the switching node corresponding to the switching node identifier in the messages received by the destination node every time it receives an acknowledgment reply. Therefore, after the destination node sends an acknowledgment reply to the source node, it first needs to initialize the fourth count value and the fifth count value corresponding to each switching node identifier to 0.

[0550] Exemplarily, referring toFigure 35 Assume that there are multiple switching nodes between the current source node and the destination node. In this case, the packet sent by the source node only passes through one of the multiple switching nodes. After the destination node sends an acknowledgment reply to the source node and before the current source node sends a packet, the destination node first initializes the fourth count value and the fifth count value corresponding to each switching node identifier to 0. Then, when the destination node receives a packet sent by the source node, if the packet contains a congestion mark corresponding to switching node 1 with a switching node identifier, the fourth count value corresponding to the switching node identifier is incremented by 1, indicating that a packet carrying a congestion mark forwarded by switching node 1 is currently received. Similarly, when the destination node receives a packet sent by the source node, if the packet contains a clear mark corresponding to switching node 1 with a switching node identifier, the fifth count value corresponding to the switching node identifier is incremented by 1, indicating that a packet carrying a clear mark forwarded by switching node 1 is currently received. Further, when a predetermined time period has elapsed since the destination node sent the last acknowledgment reply, the current fourth count value is determined as the first quantity, and the fifth count value is determined as the second quantity. Additionally, if a predetermined time period has not elapsed since the destination node sent the last acknowledgment reply, but the total number of packets forwarded by switching node 1 received by the destination node reaches a predetermined number, at this time, the current fourth count value is determined as the first quantity corresponding to switching node 1, and the fifth count value is determined as the second quantity corresponding to switching node 1. After determining the first quantity and the second quantity corresponding to switching node 1, the first quantity and the second quantity corresponding to switching node 1 are inserted into acknowledgment reply 1, and acknowledgment reply 1 is returned to the source node so that the source node determines the overload rate of switching node 1 based on the first quantity and the second quantity in acknowledgment reply 1.

[0551] In step 3020, the first congestion sliding window of each switching node is updated.

[0552] According to an embodiment of the present disclosure, when there are multiple switching nodes between the source node and the destination node, after the source node receives the acknowledgment reply corresponding to each switching node, it determines the overload rate of each switching node based on the first quantity and the second quantity in the acknowledgment reply. After that, the first congestion sliding window corresponding to the packet sent by the source node to each switching node is also updated based on the overload rate of each switching node to control the number of packets sent by the source node to each switching node, thereby achieving precise control of the congestion of each switching node.

[0553] Exemplarily, referring to Figure 31After the source node calculates the overload rates corresponding to the four switching nodes based on the received acknowledgment reply, it will also update the first congestion sliding window corresponding to the packet sent by the source node to switching node 1 based on the overload rate corresponding to switching node 1. Similarly, the source node will also update the first congestion sliding window corresponding to the packet sent by the source node to switching node 2 based on the overload rate corresponding to switching node 2, update the first congestion sliding window corresponding to the packet sent by the source node to switching node 3 based on the overload rate corresponding to switching node 3, and update the first congestion sliding window corresponding to the packet sent by the source node to switching node 4 based on the overload rate corresponding to switching node 4.

[0554] Exemplarily, currently, the congestion control effect is generally evaluated by three performance indicators: the bandwidth utilization rate of the switching node, the degree of queue accumulation of the switching node, and the fairness of the data stream to which the packet belongs. Refer to Figures 32 - 34 , the embodiments of the present disclosure adopt multiple groups of control experiments to test the three performance indicators of DCQCN, HPCC, and the congestion control method of the embodiments of the present disclosure respectively, so as to verify that the congestion control effect of the embodiments of the present disclosure is better than that of DCQCN and HPCC. Further, Figures 32 - 34 The first curve graph in Figures 32 - 34 is the curve graph of the rate of sending packets when four source nodes send packets to the same destination node through different switching nodes, and is used to evaluate the fairness of the data stream to which the packet belongs. Figures 32 - 34 The second curve graph in is the bandwidth change of the port of the switching node when the source node sends packets to the destination node through the switching node, and is used to evaluate the bandwidth utilization rate of the switching node.

[0555] Figure 32 Figure 32 is a schematic diagram of the simulation data of DCQCN according to the embodiments of the present disclosure. It can be seen from Figure 32 that when DCQCN is adopted, the rate change range of the packets sent by the source node to the destination node is large, and the rates allocated to the data streams to which different packets belong are not fair. Moreover, near the end of the transmission, the speed at which the switching node grabs the idle bandwidth is very slow, and the queue height of the switching node fluctuates between 100KB and 500KB.

[0556] Refer to Figure 33 Figure 33 is a schematic diagram of the simulation data of HPCC according to the embodiments of the present disclosure. It can be seen from Figure 33 ​​It can be seen that when HPCC is adopted, although the rates allocated to the data streams to which different packets belong are relatively fair, there are obvious fluctuations in the bandwidth of the switching node, which may lead to throughput loss of the switching node. Moreover, the queue height of the switching node remains above 250 KB for a long time at the beginning, and there may be congestion.

[0557] Referring to Figure 34 , Figure 34 is a schematic diagram of simulation data of the congestion control method according to an embodiment of the present disclosure. It can be seen from Figure 34 that when the congestion control method according to the embodiment of the present disclosure is adopted, the rates allocated to the data streams to which different packets belong are relatively fair, and the bandwidth of the switching node remains at 100% all the time. The final transmission completion time is 7000 us, which is nearly 12.5% less than Figure 32 of DCQCN and Figure 33 of HPCC. Moreover, the queue height of the switching node in this solution fluctuates around 10 KB, which is significantly lower than Figure 32 of DCQCN and Figure 33 of HPCC, indicating that the inside of the switching node can maintain an unobstructed state.

[0558] The embodiments of the above steps 3010 to 3020 can determine the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node, and update the first congestion sliding window of each switching node based on the overload rate of each switching node. By updating the first congestion sliding window of each switching node, accurate congestion control can be achieved for multiple switching nodes from the source node to the destination node.

[0559] Description of the congestion control method for calculating the overload rate by the source node according to the embodiment of the present disclosure applied to the destination node side

[0560] In addition, as Figure 36 shown, the congestion control method provided by the embodiment of the present disclosure is applied to the destination node. The congestion control method includes:

[0561] Step 3610, receiving a packet sent by the source node;

[0562] Step 3620, if it is determined that a predetermined time period has passed since the last acknowledgment was sent, then based on the packets received within the predetermined time period, determine the first quantity of the packets carrying congestion marks and the second quantity of the packets carrying unobstructed marks, and generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node. There is at least one switching node between the source node and the destination node. Both the congestion mark and the unobstructed mark are obtained by the switching node marking the packet based on the queue height inside the switching node;

[0563] Step 3630: If a predetermined time period has not elapsed since the last acknowledgment was sent, but a predetermined number of packets are received, determine a first quantity and a second quantity based on the predetermined number of packets, generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node.

[0564] The following provides a detailed description of Steps 3610 to 3630.

[0565] In Step 3610, receive a packet sent by the source node.

[0566] According to an embodiment of the present disclosure, the source node sends packets to the destination node based on a first congestion sliding window, and at least one switching node is provided between the source node and the destination node. After receiving the packet sent by the source node, the switching node forwards the packet to the destination node, so that the destination node receives the packet sent by the source node.

[0567] In Step 3620, if it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, determine a first quantity of packets with a congestion flag and a second quantity of packets with a clear flag based on the packets received within the predetermined time period, generate an acknowledgment based on the first quantity and the second quantity, and return the acknowledgment to the source node, where at least one switching node is provided between the source node and the destination node, and both the congestion flag and the clear flag are obtained by the switching node marking the packets based on the queue height within the switching node.

[0568] The specific implementation of "if it is determined that a predetermined time period has elapsed since the last acknowledgment was sent, determine a first quantity of packets with a congestion flag and a second quantity of packets with a clear flag based on the packets received within the predetermined time period, and generate an acknowledgment based on the first quantity and the second quantity" in the embodiment of the present disclosure is similar to the specific implementation in Step 810 above, and will not be elaborated here.

[0569] The specific implementation of "at least one switching node is provided between the source node and the destination node, and both the congestion flag and the clear flag are obtained by the switching node marking the packets based on the queue height within the switching node" in the embodiment of the present disclosure is similar to the specific implementation in Step 420 above, and will not be elaborated here.

[0570] Further, after the destination node calculates the first quantity and the second quantity and generates an acknowledgment response based on the first quantity and the second quantity, in order to facilitate the source node to understand the congestion condition of the switching node, the destination node also needs to return the acknowledgment response to the source node. After receiving the acknowledgment response, the source node calculates the overload rate based on the first quantity of the packets carrying the congestion flag and the second quantity of the packets carrying the unblocked flag in the acknowledgment response, and adjusts the first congestion window based on the overload rate, thereby realizing precise congestion control.

[0571] In step 3630, if a predetermined number of packets are received without a predetermined time period having elapsed since the last acknowledgment response was sent, then based on the predetermined number of packets, the first quantity and the second quantity are determined, and an acknowledgment response is generated based on the first quantity and the second quantity, and the acknowledgment response is returned to the source node.

[0572] The specific implementation manner of "if a predetermined number of packets are received without a predetermined time period having elapsed since the last acknowledgment response was sent, then based on the predetermined number of packets, the first quantity and the second quantity are determined, and an acknowledgment response is generated based on the first quantity and the second quantity" in the embodiments of the present disclosure is similar to the specific implementation manner in step 820 above, and will not be elaborated here.

[0573] Further, after the destination node calculates the first quantity and the second quantity and generates an acknowledgment response based on the first quantity and the second quantity, the destination node also needs to return the acknowledgment response to the source node.

[0574] The destination node in the embodiments of step 3610 and step 3630 can count the first quantity of packets carrying congestion flags and the second quantity of packets carrying clear flags, and insert the first quantity and the second quantity into the acknowledgment response, so that the source node can receive the acknowledgment response returned by the destination node. And determine the overload rate of the switching node based on the first quantity of packets carrying congestion flags and the second quantity of packets carrying clear flags included in the acknowledgment response. The overload rate can accurately reflect the current congestion situation of the switching node in the link. In this way, after updating the first congestion sliding window based on the overload rate, the number of target packets to be sent can be accurately controlled, thus achieving precise congestion control. The first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once a packet in the first number of packets receives an acknowledgment response, slide the first congestion sliding window to accommodate more unsent packets, and then send the accommodated unsent packets. In this way, when the load status of the switching node reflected by the overload rate is heavy, the length of the first congestion sliding window is not increased, so that no new packets are sent, alleviating network congestion. When the load status of the switching node reflected by the overload rate is light, the length of the first congestion sliding window is increased, so as to accommodate new packets for sending, making full use of the network bandwidth and precisely performing congestion control. At the same time, the method used in the embodiments of the present disclosure only needs to insert the first quantity of target packets carrying congestion flags and the second quantity of target packets carrying clear flags into the acknowledgment response returned by the destination node, with relatively low customization requirements for the destination node, and there is no need to customize the switching node additionally, which is easy to implement and deploy.

[0575] Description of the congestion control method for calculating the overload rate by the destination node in the embodiments of the present disclosure applied to the source node side

[0576] In addition, as Figure 37 shown, the congestion control method provided in the embodiments of the present disclosure is applied to the source node, and the congestion control method includes:

[0577] Step 3710: Send packets to the destination node based on the first congestion sliding window, where the first congestion sliding window is a window that moves in the queue of packets to be sent, and is used to indicate the first number of packets sent to the destination node. Once a packet in the first number of packets receives an acknowledgment response, slide the first congestion sliding window to accommodate more unsent packets, and then send the accommodated unsent packets;

[0578] Step 3720: Receive the acknowledgment reply returned by the destination node. The acknowledgment reply includes the overload rate of the switching node. There is at least one switching node between the source node and the destination node. The switching node marks the packets based on the queue height within the switching node to obtain congestion marks and unobstructed marks. The overload rate is determined by the destination node based on the first quantity of packets with congestion marks and the second quantity of packets with unobstructed marks.

[0579] Step 3730: Update the first congestion sliding window based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0580] The following provides a detailed description of steps 3710 to 3730.

[0581] In step 3710, packets are sent to the destination node based on the first congestion sliding window. The first congestion sliding window is a window that moves in the queue of packets to be sent, indicating the first number of packets sent to the destination node. Once an acknowledgment reply is received for a packet among the first number of packets, the first congestion sliding window is slid to accommodate more unsent packets, and thus the accommodated unsent packets are sent.

[0582] The specific implementation manner of the embodiment of the present disclosure is similar to the specific implementation manner in step 410 above, and will not be elaborated here.

[0583] In step 3720, receive the acknowledgment reply returned by the destination node. The acknowledgment reply includes the overload rate of the switching node. There is at least one switching node between the source node and the destination node. The switching node marks the packets based on the queue height within the switching node to obtain congestion marks and unobstructed marks. The overload rate is determined by the destination node based on the first quantity of packets with congestion marks and the second quantity of packets with unobstructed marks.

[0584] According to the embodiment of the present disclosure, in steps 420 - 430, the destination node returns an acknowledgment reply carrying the first quantity and the second quantity to the source node, so that the source node determines the overload rate based on the first quantity and the second quantity in the acknowledgment reply. Different from steps 420 - 430, in the embodiment of the present disclosure, the destination node can also calculate the overload rate of the switching node based on the first quantity of packets directly carrying congestion marks and the second quantity of packets carrying unobstructed marks, and generate an acknowledgment reply based on the overload rate, and return the acknowledgment reply carrying the overload rate to the source node. In this step, the destination node calculates the overload rate, and the source node does not need to calculate the overload rate.

[0585] Refer to Figure 38A and Figure 38B, After calculating the overload rate of the switching node, the destination node generates an acknowledgment response based on the overload rate and returns the acknowledgment response to the source node. Based on this, the source node does not need to calculate the overload rate anymore and only needs to update the first congestion window based on the overload rate in the acknowledgment response, achieving precise congestion control.

[0586] Further, the specific implementation of "the switching node marks the packets based on the queue height within the switching node to obtain a congestion mark and a clear mark" in the embodiments of the present disclosure is similar to the specific implementation in step 420 above. The specific implementation of "the overload rate is determined by the destination node based on the first quantity of packets with congestion marks and the second quantity of packets with clear marks" in the embodiments of the present disclosure is similar to the specific implementation in step 430 above, and will not be elaborated here.

[0587] In step 3730, the first congestion sliding window is updated based on the overload rate to control the number of unsent packets accommodated, thereby adjusting the sending rate to the destination node.

[0588] The specific implementation of the embodiments of the present disclosure is similar to the specific implementation in step 440 above, and will not be elaborated here.

[0589] The source node in the embodiments of the above steps 3710 and 3730 can receive the acknowledgment response returned by the destination node and update the first congestion sliding window based on the overload rate of the switching node in the acknowledgment response. The overload rate can accurately reflect the current congestion situation of the switching node in the link. In this way, after updating the first congestion sliding window based on the overload rate, the number of target packets to be sent can be accurately controlled, thereby achieving precise congestion control. The first congestion sliding window is a window that moves in the queue of packets to be sent and is used to indicate the first number of packets sent to the destination node. Once a packet in the first congestion sliding window receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent packets, so as to send the accommodated unsent packets. In this way, when the load status of the switching node reflected by the overload rate is relatively heavy, the length of the first congestion sliding window is not increased, so that no new packets are sent, alleviating network congestion. When the load status of the switching node reflected by the overload rate is relatively light, the length of the first congestion sliding window is increased to accommodate new packets for sending, making full use of the network bandwidth and achieving precise congestion control. At the same time, the method used in the embodiments of the present disclosure only needs to insert the overload rate of the switching node in the acknowledgment response returned by the destination node, has relatively low customization requirements for the destination node, and does not require additional customization of the switching node, making it easy to implement and deploy.

[0590] Description of the congestion control method for calculating the overload rate by the destination node in the embodiments of the present disclosure applied to the destination node side

[0591] In addition, as Figure 39 shown, the congestion control method provided by the embodiments of the present disclosure is applied to a destination node, and the congestion control method includes:

[0592] Step 3910: Receive a message sent by a source node;

[0593] Step 3920: If it is determined that a predetermined period of time has elapsed since the last acknowledgment response was sent, then based on the messages received within the predetermined period of time, determine a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a clear mark, and determine an overload rate of the switching node based on the first quantity and the second quantity. Generate an acknowledgment response based on the overload rate and return the acknowledgment response to the source node, where at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the messages based on the queue height within the switching node;

[0594] Step 3930: If a predetermined number of messages are received but a predetermined period of time has not elapsed since the last acknowledgment response was sent, then based on the predetermined number of messages, determine the first quantity and the second quantity, and determine the overload rate of the switching node based on the first quantity and the second quantity. Generate an acknowledgment response based on the overload rate and return the acknowledgment response to the source node.

[0595] The following provides a detailed description of steps 3910 to 3930.

[0596] In step 3910, receive a message sent by a source node.

[0597] The specific implementation manner of the embodiments of the present disclosure is similar to the specific implementation manner in step 3610 above, and details thereof will not be elaborated herein.

[0598] In step 3920, if it is determined that a predetermined period of time has elapsed since the last acknowledgment response was sent, then based on the messages received within the predetermined period of time, determine a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a clear mark, and determine an overload rate of the switching node based on the first quantity and the second quantity. Generate an acknowledgment response based on the overload rate and return the acknowledgment response to the source node, where at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the messages based on the queue height within the switching node.

[0599] Refer to Figure 40, after determining the first quantity and the second quantity, the destination node in the embodiment of the present disclosure does not generate an acknowledgment response based on the first quantity and the second quantity and return it to the source node. Instead, the destination node first determines the overload rate of the switching node based on the first quantity and the second quantity, and then generates an acknowledgment response based on the overload rate and returns the acknowledgment response to the source node. Based on this, the source node side does not need to calculate the overload rate of the switching node anymore, and can directly adjust the first congestion sliding window based on the overload rate, so as to achieve precise congestion control. Further, "generating an acknowledgment response based on the overload rate" means putting the overload rate into a field in the acknowledgment response, so that the acknowledgment response can carry the overload rate, and the source node receives the acknowledgment response including the overload rate.

[0600] The specific implementation manner of "if it is determined that a predetermined time period has passed since the last acknowledgment response was sent, then based on the packets received within the predetermined time period, determine the first quantity of the packets carrying the congestion mark and the second quantity of the packets carrying the unobstructed mark" in the embodiment of the present disclosure is similar to the specific implementation manner in step 810 above, and will not be elaborated here.

[0601] The specific implementation manner of "determining the overload rate of the switching node based on the first quantity and the second quantity" in the embodiment of the present disclosure is similar to the specific implementation manner in step 430 above, and will not be elaborated here.

[0602] The specific implementation manner of "there is at least one switching node between the source node and the destination node, and both the congestion mark and the unobstructed mark are obtained by the switching node marking the packets based on the queue height in the switching node" in the embodiment of the present disclosure is similar to the specific implementation manner in step 420 above, and will not be elaborated here.

[0603] In step 3930, if a predetermined time period has not passed since the last acknowledgment response was sent, but a predetermined number of packets are received, then based on the predetermined number of packets, determine the first quantity and the second quantity, and determine the overload rate of the switching node based on the first quantity and the second quantity, generate an acknowledgment response based on the overload rate, and return the acknowledgment response to the source node.

[0604] The specific implementation manner of "if a predetermined time period has not passed since the last acknowledgment response was sent, but a predetermined number of packets are received, then based on the predetermined number of packets, determine the first quantity and the second quantity" in the embodiment of the present disclosure is similar to the specific implementation manner in step 820 above, and will not be elaborated here.

[0605] The specific implementation manner of "determining the overload rate of the switching node based on the first quantity and the second quantity" in the embodiment of the present disclosure is similar to the specific implementation manner in step 430 above, and will not be elaborated here.

[0606] The destination node in the embodiments of the above steps 3910 and 3930 can determine the overload rate of the switching node based on the first quantity of packets carrying congestion marks and the second quantity of packets carrying unobstructed marks. The overload rate can accurately reflect the current congestion situation of the switching node in the link. After that, the destination node generates an acknowledgment response based on the overload rate and returns the acknowledgment response to the source node, so that the source node can update the first congestion sliding window based on the overload rate. In this way, after updating the first congestion sliding window based on the overload rate, the number of target packets to be sent can be accurately controlled, thereby achieving precise congestion control. The first congestion sliding window is a window that moves in the queue of packets to be sent and is used to indicate the first number of packets sent to the destination node. Once a packet in the first congestion sliding window receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent packets, and then the accommodated unsent packets are sent. In this way, when the load status of the switching node reflected by the overload rate is relatively heavy, the length of the first congestion sliding window is not increased, so that no new packets are sent, alleviating network congestion. When the load status of the switching node reflected by the overload rate is relatively light, the length of the first congestion sliding window is increased to accommodate new packets for sending, making full use of the network bandwidth and achieving precise congestion control. The method used in the embodiments of the present disclosure only needs to insert the overload rate of the switching node in the acknowledgment response returned by the destination node, has relatively low customization requirements for the destination node, and does not require additional customization of the switching node, making it easy to implement and deploy.

[0607] Implementation details diagram of the congestion control method in the embodiments of the present disclosure

[0608] The following refers to Figure 41 , and details of the implementation of the congestion control method in the embodiments of the present disclosure are described in detail by way of example.

[0609] In step 4110, packets are sent to the destination node based on the first congestion sliding window, where the first congestion sliding window is a window that moves in the queue of packets to be sent and is used to indicate the first number of packets sent to the destination node. Once a packet in the first number of packets receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent packets, and then the accommodated unsent packets are sent.

[0610] In step 4120, there is at least one switching node between the source node and the destination node, and both the congestion mark and the unobstructed mark are obtained by the switching node marking the packet based on the queue height in the switching node.

[0611] In one embodiment, the congestion mark and the unobstructed mark are obtained by the switching node marking the packet based on the queue height in the switching node in the following manner:

[0612] If the queue height in the switching node is less than or equal to the first queue height, add a smooth mark to the message.

[0613] If the queue height in the switching node is greater than or equal to the second queue height, add a congestion mark to the message, where the second queue height is greater than the first queue height.

[0614] If the queue height of the switching node is greater than the first queue height but less than the second queue height, add a congestion mark to the message with a first probability and add a smooth mark to the message with the complement of the first probability, where the complement of the first probability is the difference between 1 and the first probability, and the first probability varies linearly with the queue height between the first queue height and the second queue height.

[0615] In step 4131, if it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, determine a first quantity and a second quantity based on the messages received within the predetermined time period, and generate and send an acknowledgment response based on the first quantity and the second quantity.

[0616] In step 4132, if the predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of messages have been received, determine a first quantity and a second quantity based on the predetermined number of messages, and generate and send an acknowledgment response based on the first quantity and the second quantity.

[0617] In step 4141, receive the acknowledgment response returned by the destination node; obtain a first sequence of acknowledgment responses received within the first period.

[0618] In one embodiment, the first period is determined in the following manner:

[0619] The number of acknowledgment responses received per unit time;

[0620] The real-time degree of the service to which the message belongs;

[0621] Based on the number of acknowledgment responses and the real-time degree, determine the first period.

[0622] In step 4142, take the first acknowledgment response in the first sequence as the acknowledgment response to be examined, and initialize the statistical marking probability.

[0623] In step 4143, update the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined.

[0624] In one embodiment, updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined includes:

[0625] Initialize the first count value and the second count value to 1 respectively;

[0626] If the first count value is less than or equal to the first quantity, use the first marking probability increasing algorithm to increase the statistical marking probability and increment the first count value by 1;

[0627] Return the step of using the first marking probability increasing algorithm to increase the statistical marking probability if the first count value is less than or equal to the first quantity until the first count value is greater than the first quantity;

[0628] If the second count value is less than or equal to the second quantity, use the first marking probability decreasing algorithm to decrease the statistical marking probability and increment the second count value by 1;

[0629] Return the step of using the first marking probability decreasing algorithm to decrease the statistical marking probability if the second count value is less than or equal to the second quantity until the second count value is greater than the second quantity.

[0630] In one embodiment, if the first count value is less than or equal to the first quantity, using the first marking probability increasing algorithm to increase the statistical marking probability includes:

[0631] If the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0632] Use the difference between 1 and the first parameter as the second parameter;

[0633] Add the product of the statistical marking probability and the second parameter to the first parameter to obtain the increased statistical marking probability.

[0634] In one embodiment, if the second count value is less than or equal to the second quantity, using the first marking probability decreasing algorithm to decrease the statistical marking probability includes:

[0635] If the second count value is less than or equal to the second quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0636] Use the difference between 1 and the first parameter as the second parameter;

[0637] Use the product of the statistical marking probability and the second parameter as the decreased statistical marking probability.

[0638] In step 4144, update the confirmation response to be examined with the next confirmation response in the first sequence to be examined for confirmation, and return the step of updating the statistical marking probability based on the first quantity and the second quantity in the confirmation response to be examined until there is no next confirmation response in the first sequence.

[0639] In step 4151, obtain the first queue height and the second queue height.

[0640] In one embodiment, the first queue height is between 0 and 10 KB.

[0641] In one embodiment, the second queue height is obtained as follows:

[0642] Obtain the bandwidth and no-load delay of the switching node;

[0643] Based on the bandwidth and no-load delay, determine the delay-bandwidth product of the switching node;

[0644] Based on the maximum delay of the service to which the packet belongs, determine the first coefficient;

[0645] Based on the first coefficient and the delay-bandwidth product, determine the second queue height.

[0646] In step 4152, obtain the critical marking probability corresponding to the second queue height.

[0647] In step 4153, based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability, determine the statistical queue height.

[0648] In one embodiment, determining the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability includes:

[0649] Determine the first height difference between the second queue height and the first queue height;

[0650] Determine the first ratio of the statistical marking probability to the critical marking probability;

[0651] Based on the first queue height, the first height difference, and the first ratio, determine the statistical queue height.

[0652] In step 4161, based on the statistical queue height, determine the load of the switching node in the first period.

[0653] In one embodiment, determining the load of the switching node in the first period based on the statistical queue height includes:

[0654] Obtain the queue weight coefficient and the queue fluctuation damping coefficient;

[0655] Determine the second height difference between the statistical queue height of the current first period and the statistical queue height of the previous first period;

[0656] Based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference, determine the load of the switching node in the first period.

[0657] In step 4162, obtain the port bandwidth of the switching node.

[0658] In step 4163, based on the load, the port bandwidth, and the first period, determine the overload rate of the switching node in the first period.

[0659] In one embodiment, determining the overload rate of the switching node in the first period based on the load, port bandwidth, and the first period includes:

[0660] Determine the first product of the port bandwidth and the first period;

[0661] Determine the ratio of the load to the first product as the overload rate.

[0662] In step 4171, if the overload rate of the previous first period is greater than 0, when the acknowledgment response is received for the first time in the current first period, reduce the length of the first congestion window based on the overload rate.

[0663] In one embodiment, when the acknowledgment response is received for the first time in the current first period, reducing the length of the first congestion window based on the overload rate includes:

[0664] When the acknowledgment response is received for the first time in the current first period, determine the first sum of 1 and the overload rate;

[0665] Use the result of dividing the length of the first congestion window by the first sum as the reduced length of the first congestion window.

[0666] In one embodiment, after reducing the length of the first congestion window based on the overload rate when the acknowledgment response is received for the first time in the current first period if the overload rate of the previous first period is greater than 0, the congestion control method further includes:

[0667] If the overload rate of the previous first period is greater than 0, reset the acknowledgment response cumulative value to zero.

[0668] In step 4172, if the overload rate of the previous first period is less than or equal to 0, increase the length of the first congestion window each time an acknowledgment response is received in the current first period.

[0669] In one embodiment, if the overload rate of the previous first period is less than or equal to 0, increasing the length of the first congestion window each time an acknowledgment response is received in the current first period includes:

[0670] If the overload rate of the previous first period is less than or equal to 0, add 1 to the acknowledgment response cumulative value each time an acknowledgment response is received in the current first period;

[0671] If the acknowledgment response cumulative value has not reached the predetermined cumulative value, determine the increased length of the first congestion window based on the first rule;

[0672] If the acknowledgment response cumulative value has reached the predetermined cumulative value, determine the increased length of the first congestion window based on the second rule.

[0673] In one embodiment, if the cumulative acknowledgment value does not reach the predetermined cumulative value, determining the length of the increased first congestion window based on the first rule includes:

[0674] If the cumulative acknowledgment value does not reach the predetermined cumulative value, obtain the second quantity in the acknowledgment;

[0675] Initialize the third count value to 1;

[0676] If the third count value is less than or equal to the second quantity, use the ratio of the additive increase window coefficient to the length of the first congestion window as the window length increase value, and add the length of the first congestion window and the window length increase value to obtain the length of the increased first congestion window;

[0677] Increment the third count value by 1, and return the step of using the ratio of the additive increase window coefficient to the length of the first congestion window as the window length increase value if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0678] In one embodiment, if the cumulative acknowledgment value reaches the predetermined cumulative value, determining the length of the increased first congestion window based on the second rule includes:

[0679] If the cumulative acknowledgment value reaches the predetermined cumulative value, obtain the second quantity in the acknowledgment;

[0680] Initialize the third count value to 1;

[0681] If the third count value is less than or equal to the second quantity, use the product of the predetermined multiple and the length of the first congestion window as the length of the increased first congestion window;

[0682] Increment the third count value by 1, and return the step of using the product of the predetermined multiple and the length of the first congestion window as the length of the increased first congestion window if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0683] Description of the devices and equipment in the embodiments of the present disclosure

[0684] It can be understood that although the steps in the above various flowcharts are sequentially shown according to the indication of the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in this embodiment, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the above flowcharts may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.

[0685] It should be noted that in each specific implementation manner of this application, when it comes to performing relevant processing based on data related to object characteristics such as object attribute information or attribute information sets, the permission or consent of the object will be obtained first. Moreover, the collection, use, and processing of these data will comply with relevant laws, regulations, and standards. In addition, when the embodiments of this application need to obtain object attribute information, the individual permission or individual consent of the object will be obtained by means of a pop-up window or jumping to a confirmation page. After clearly obtaining the individual permission or individual consent of the object, the necessary object-related data for the normal operation of the embodiments of this application will be obtained.

[0686] Figure 42 FIG. 4200 is a schematic structural diagram of a congestion control device 4200 provided by an embodiment of the present disclosure. The congestion control device 4200 is disposed in a source node. The congestion control device 4200 includes:

[0687] A first sending unit 4210, configured to send a message to a destination node based on a first congestion sliding window, where the first congestion sliding window is a window that moves in a message queue to be sent, and is used to indicate a first number of messages sent to the destination node. Once a message in the first number of messages receives an acknowledgment response, the first congestion sliding window is slid to accommodate more unsent messages, so as to send the accommodated unsent messages;

[0688] A first receiving unit 4220, configured to receive an acknowledgment response returned by the destination node. The acknowledgment response includes a first quantity of messages carrying a congestion mark and a second quantity of messages carrying a smooth mark. There is at least one switching node between the source node and the destination node. Both the congestion mark and the smooth mark are obtained by the switching node marking the message based on the queue height in the switching node;

[0689] A first determining unit 4230, configured to determine the overload rate of the switching node based on the first quantity and the second quantity;

[0690] An update unit 4240, configured to update a first congestion sliding window based on an overload rate to control the number of unsent packets accommodated, so as to adjust the sending rate to a destination node.

[0691] Optionally, the first determination unit 4230 is specifically configured to:

[0692] Every first period, determine a statistical marking probability of the switching node in the first period based on a first quantity and a second quantity;

[0693] Based on the statistical marking probability, determine a statistical queue height of the switching node in the first period;

[0694] Based on the statistical queue height, determine an overload rate of the switching node in the first period.

[0695] Optionally, the first determination unit 4230 is specifically configured to:

[0696] Obtain a first sequence of acknowledgment responses received within the first period;

[0697] Use the first acknowledgment response in the first sequence as the acknowledgment response to be examined, and initialize the statistical marking probability;

[0698] Based on the first quantity and the second quantity in the acknowledgment response to be examined, update the statistical marking probability;

[0699] Update the acknowledgment response to be examined with the next acknowledgment response in the first sequence, and return to the step of updating the statistical marking probability based on the first quantity and the second quantity in the acknowledgment response to be examined until there is no next acknowledgment response in the first sequence.

[0700] Optionally, the first determination unit 4230 is specifically configured to:

[0701] Initialize a first count value and a second count value to 1 respectively;

[0702] If the first count value is less than or equal to the first quantity, increase the statistical marking probability by using a first marking probability increasing algorithm, and increment the first count value by 1;

[0703] Return to the step of increasing the statistical marking probability by using the first marking probability increasing algorithm if the first count value is less than or equal to the first quantity until the first count value is greater than the first quantity;

[0704] If the second count value is less than or equal to the second quantity, decrease the statistical marking probability by using a first marking probability decreasing algorithm, and increment the second count value by 1;

[0705] Return to the step of decreasing the statistical marking probability by using the first marking probability decreasing algorithm if the second count value is less than or equal to the second quantity until the second count value is greater than the second quantity.

[0706] Optionally, the first determination unit 4230 is specifically configured to:

[0707] If the first count value is less than or equal to the first quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0708] Use the difference between 1 and the first parameter as the second parameter;

[0709] Add the product of the statistical marking probability and the second parameter to the first parameter to obtain the increased statistical marking probability.

[0710] Optionally, the first determination unit 4230 is specifically configured to:

[0711] If the second count value is less than or equal to the second quantity, obtain a first parameter, where the first parameter is between 0 and 1;

[0712] Use the difference between 1 and the first parameter as the second parameter;

[0713] Use the product of the statistical marking probability and the second parameter as the reduced statistical marking probability.

[0714] Optionally, the first period is determined in the following manner:

[0715] The number of acknowledgment responses received within a unit time;

[0716] The real-time degree of the service to which the message belongs;

[0717] The first determination unit 4230 is specifically configured to:

[0718] Determine the first period based on the number of acknowledgment responses and the real-time degree.

[0719] Optionally, the congestion mark and the unobstructed mark are obtained by the switching node marking the message based on the queue height within the switching node in the following manner:

[0720] If the queue height within the switching node is less than or equal to the first queue height, add an unobstructed mark to the message;

[0721] If the queue height within the switching node is greater than or equal to the second queue height, add a congestion mark to the message, where the second queue height is greater than the first queue height;

[0722] If the queue height of the switching node is greater than the first queue height but less than the second queue height, add a congestion mark to the message with a first probability and add an unobstructed mark to the message with the complement of the first probability, where the complement of the first probability is the difference between 1 and the first probability, and the first probability changes linearly with the queue height between the first queue height and the second queue height.

[0723] Optionally, the first determination unit 4230 is specifically configured to:

[0724] Obtain the first queue height and the second queue height;

[0725] Obtain the critical marking probability corresponding to the second queue height;

[0726] Determine the statistical queue height based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability.

[0727] Optionally, the first determination unit 4230 is specifically configured to:

[0728] Determine the first height difference between the second queue height and the first queue height;

[0729] Determine the first ratio of the statistical marking probability to the critical marking probability;

[0730] Determine the statistical queue height based on the first queue height, the first height difference, and the first ratio.

[0731] Optionally, the first queue height is between 0 and 10 KB.

[0732] Optionally, the first determination unit 4230 is specifically configured to:

[0733] Obtain the bandwidth and the no-load delay of the switching node;

[0734] Determine the delay-bandwidth product of the switching node based on the bandwidth and the no-load delay;

[0735] Determine the first coefficient based on the maximum delay of the service to which the message belongs;

[0736] Determine the second queue height based on the first coefficient and the delay-bandwidth product.

[0737] Optionally, the first determination unit 4230 is specifically configured to:

[0738] Determine the load of the switching node in the first period based on the statistical queue height;

[0739] Obtain the port bandwidth of the switching node;

[0740] Determine the overload rate of the switching node in the first period based on the load, the port bandwidth, and the first period.

[0741] Optionally, the first determination unit 4230 is specifically configured to:

[0742] Obtain the queue weight coefficient and the queue fluctuation damping coefficient;

[0743] Determine the second height difference between the statistical queue height in the current first period and the statistical queue height in the previous first period;

[0744] Determine the load of the switching node in the first period based on the queue weight coefficient, the statistical queue height, the queue fluctuation damping coefficient, and the second height difference.

[0745] Optionally, the first determination unit 4230 is specifically configured to:

[0746] Determine the first product of the port bandwidth and the first period;

[0747] Determine the ratio of the load to the first product as the overload rate.

[0748] Optionally, the updating unit 4240 is specifically configured to:

[0749] If the overload rate of the previous first period is greater than 0, when the confirmation response is received for the first time in the current first period, reduce the length of the first congestion sliding window based on the overload rate;

[0750] If the overload rate of the previous first period is less than or equal to 0, increase the length of the first congestion sliding window every time a confirmation response is received in the current first period.

[0751] Optionally, the updating unit 4240 is specifically configured to:

[0752] When the confirmation response is received for the first time in the current first period, determine the first sum of 1 and the overload rate;

[0753] Use the result of dividing the length of the first congestion sliding window by the first sum as the reduced length of the first congestion sliding window.

[0754] Optionally, after reducing the length of the first congestion sliding window based on the overload rate when the overload rate of the previous first period is greater than 0 and the confirmation response is received for the first time in the current first period, the updating unit 4240 is further specifically configured to:

[0755] If the overload rate of the previous first period is greater than 0, reset the confirmation response accumulation value to zero;

[0756] The updating unit 4240 is specifically configured to:

[0757] If the overload rate of the previous first period is less than or equal to 0, add 1 to the confirmation response accumulation value every time a confirmation response is received in the current first period;

[0758] If the confirmation response accumulation value has not reached the predetermined accumulation value, determine the increased length of the first congestion sliding window based on the first rule;

[0759] If the confirmation response accumulation value reaches the predetermined accumulation value, determine the increased length of the first congestion sliding window based on the second rule.

[0760] Optionally, the updating unit 4240 is specifically configured to:

[0761] If the cumulative value of the acknowledgment response has not reached the predetermined cumulative value, obtain the second quantity in the acknowledgment response;

[0762] Initialize the third count value to 1;

[0763] If the third count value is less than or equal to the second quantity, use the ratio of the additive window-increasing coefficient to the length of the first congestion sliding window as the increased value of the sliding window length, and add the length of the first congestion sliding window and the increased value of the sliding window length to obtain the increased length of the first congestion sliding window;

[0764] Increment the third count value by 1, and return the step of using the ratio of the additive window-increasing coefficient to the length of the first congestion sliding window as the increased value of the sliding window length if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0765] Optionally, the updating unit 4240 is specifically configured to:

[0766] If the cumulative value of the acknowledgment response reaches the predetermined cumulative value, obtain the second quantity in the acknowledgment response;

[0767] Initialize the third count value to 1;

[0768] If the third count value is less than or equal to the second quantity, use the product of the predetermined multiple and the length of the first congestion sliding window as the increased length of the first congestion sliding window;

[0769] Increment the third count value by 1, and return the step of using the product of the predetermined multiple and the length of the first congestion sliding window as the increased length of the first congestion sliding window if the third count value is less than or equal to the second quantity, until the third count value is greater than the second quantity.

[0770] Optionally, at least one switching node is multiple switching nodes, and the message is sent to the destination node through one of the multiple switching nodes; the acknowledgment response includes the first quantity and the second quantity corresponding to each switching node;

[0771] The first determining unit 4230 is specifically configured to:

[0772] Determine the overload rate of each switching node based on the first quantity and the second quantity corresponding to each switching node;

[0773] The updating unit 4240 is specifically configured to:

[0774] Update the first congestion sliding window of each switching node based on the overload rate of each switching node.

[0775] Optionally, the congestion mark or the unobstructed mark is correspondingly recorded in the message with the switching node identifier;

[0776] The first quantity and the second quantity are generated by the destination node in the following manner:

[0777] Initialize the fourth count value and the fifth count value corresponding to each switching node identifier to 0, where the fourth count value indicates the number of packets with congestion marks added by the switching node identified by the switching node identifier, and the fifth count value indicates the number of packets with clear marks added by the switching node identified by the switching node identifier;

[0778] When a packet is received, if the packet contains a congestion mark corresponding to the switching node identified by the switching node identifier, increment the fourth count value corresponding to the switching node identifier by 1;

[0779] When a packet is received, if the packet contains a clear mark corresponding to the switching node identified by the switching node identifier, increment the fifth count value corresponding to the switching node identifier by 1;

[0780] When a predetermined condition is met, determine the fourth count value as the first quantity and the fifth count value as the second quantity.

[0781] Optionally, the acknowledgment response is sent by the destination node in the following manner:

[0782] If it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, determine the first quantity and the second quantity based on the packets received within the predetermined time period, and generate and send an acknowledgment response based on the first quantity and the second quantity;

[0783] If a predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of packets are received, determine the first quantity and the second quantity based on the predetermined number of packets, and generate and send an acknowledgment response based on the first quantity and the second quantity.

[0784] Figure 43 FIG. 4300 is a schematic structural diagram of the congestion control device provided in the embodiment of the present disclosure. The congestion control device 4300 is disposed in the destination node, and the congestion control device 4300 includes:

[0785] A second receiving unit 4310, configured to receive a packet sent by a source node;

[0786] A second determining unit 4320, if it is determined that a predetermined time period has elapsed since the last acknowledgment response was sent, the second determining unit 4320 is configured to determine a first quantity of packets carrying congestion marks and a second quantity of packets carrying clear marks based on the packets received within the predetermined time period, generate an acknowledgment response based on the first quantity and the second quantity, and return the acknowledgment response to the source node, where at least one switching node is provided between the source node and the destination node, and both the congestion mark and the clear mark are obtained by the switching node marking the packet based on the queue height in the switching node;

[0787] The third determination unit 4330, if a predetermined time period has not elapsed since the last acknowledgment response was sent, but a predetermined number of messages are received, is configured to determine a first quantity and a second quantity based on the predetermined number of messages, generate an acknowledgment response based on the first quantity and the second quantity, and return the acknowledgment response to the source node.

[0788] Referring to Figure 44 , Figure 44 FIG. is a block diagram of a part of a terminal for implementing the congestion control method according to an embodiment of the present disclosure. The terminal includes: a radio frequency (RF) circuit 4410, a memory 4415, an input unit 4430, a display unit 4440, a sensor 4450, an audio circuit 4460, a wireless fidelity (WiFi) module 4470, a processor 4480, and a power supply 4490 and other components. Those skilled in the art can understand that Figure 44 The shown terminal structure does not limit a mobile phone or a computer, and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0789] The RF circuit 4410 can be used for receiving and transmitting signals during information reception or call processes. Specifically, after receiving the downlink information of the base station, it is given to the processor 4480 for processing; in addition, the designed uplink data is sent to the base station.

[0790] The memory 4415 can be used for storing software programs and modules. The processor 4480 executes various functional applications and data processing of the content terminal by running the software programs and modules stored in the memory 4415.

[0791] The input unit 4430 can be used for receiving input digital or character information, and generating key signal inputs related to the settings and function controls of the content terminal. Specifically, the input unit 4430 may include a touch panel 4431 and other input devices 4432.

[0792] The display unit 4440 can be used for displaying input information or provided information and various menus of the content terminal. The display unit 4440 may include a display panel 4441.

[0793] The audio circuit 4460, the speaker 4461, and the microphone 4462 can provide an audio interface.

[0794] In this embodiment, the processor 4480 included in the terminal can execute the congestion control method of the previous embodiment.

[0795] The terminals in the embodiments of the present disclosure include, but are not limited to, mobile phones, computers, intelligent voice interaction devices, intelligent household appliances, vehicle-mounted terminals, aircraft, etc. The embodiments of the present invention can be applied to various scenarios, including but not limited to content recommendation, data screening, etc.

[0796] Figure 45 The structural block diagram of a part of the server for implementing the congestion control method in the embodiments of the present disclosure. The server may vary greatly due to configuration or performance, and may include one or more central processing units (CPUs for short) 4522 (for example, one or more processors) and a memory 4532, and one or more storage media 4530 (for example, one or more mass storage devices) for storing application programs 4542 or data 4544. Among them, the memory 4532 and the storage media 4530 may be transient storage or persistent storage. The program stored in the storage media 4530 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the server. Further, the central processing unit 4522 may be configured to communicate with the storage media 4530 and execute a series of instruction operations in the storage media 4530 on the server.

[0797] The server may further include one or more power supplies 4526, one or more wired or wireless network interfaces 4550, one or more input / output interfaces 4558, and / or one or more operating systems 4541, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.

[0798] The central processing unit 4522 in the server may be used to execute the congestion control method in the embodiments of the present disclosure.

[0799] The embodiments of the present disclosure further provide a computer-readable storage medium for storing program codes for executing the congestion control methods in the foregoing respective embodiments.

[0800] The embodiments of the present disclosure further provide a computer program product, which includes a computer program. The processor of the computer device reads and executes the computer program, so that the computer device executes to implement the above-mentioned congestion control method.

[0801] In the description of the present disclosure and the above-mentioned accompanying drawings, the terms "first", "second", "third", "fourth", etc. (if any) are used to distinguish similar content and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "comprising" and "including" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products, or devices.

[0802] It should be understood that in the present disclosure, "at least one (item)" means one or more, and "a plurality" means two or more. "And / or" is used to describe the association relationship of associated content and indicates that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and both A and B exist at the same time. Among them, A and B can be singular or plural. The character " / " generally means that the content before and after is an "or" relationship. "At least one (one) of the following" or its similar expression means any combination of these items, including any combination of single item (one) or plural items (ones). For example, at least one (one) of a, b, or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0803] It should be understood that in the description of the embodiments of the present disclosure, the meaning of "a plurality (or multiple items)" is more than two. Understandings such as greater than, less than, exceeding, etc. do not include the present number, and understandings such as above, below, within, etc. include the present number.

[0804] In several embodiments provided by the present disclosure, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of units is only a logical function division, and there can be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. The displayed or discussed coupling, direct coupling, or communication connection to each other can be an indirect coupling or communication connection through some interfaces, devices, or units, and can be in electrical, mechanical, or other forms.

[0805] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0806] In addition, each functional unit in various embodiments of the present disclosure may be integrated in a processing unit, may exist separately as individual physical units, or two or more units may be integrated in one unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units.

[0807] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present disclosure, in essence, or the part that contributes to the prior art, or all or part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, server 130, or network device, etc.) to execute all or part of the steps of the methods in various embodiments of the present disclosure. The aforementioned storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical discs that can store program codes.

[0808] It should also be understood that the various embodiments provided in the present disclosure can be combined arbitrarily to achieve different technical effects.

[0809] The above is a specific description of the embodiments of the present disclosure, but the present disclosure is not limited to the above embodiments. Those skilled in the art can also make various equivalent deformations or substitutions without departing from the spirit of the present disclosure, and these equivalent deformations or substitutions are all included within the scope defined by the claims of the present disclosure.

Claims

1. A congestion control method, characterized in that: Applied to a source node, the congestion control method comprises: Sending a message to a destination node based on a first congestion sliding window, wherein the first congestion sliding window is a window moving in a queue of messages to be sent, and is used to indicate a first number of messages sent to the destination node, and once a message among the first number of messages receives a confirmation response, the first congestion sliding window is slid to accommodate more unsent messages, thereby sending the accommodated unsent messages; receiving the confirmation response returned by the destination node, the confirmation response including a first number of packets carrying a congestion mark and a second number of packets carrying a smooth mark, wherein at least one switching node is provided between the source node and the destination node, and the congestion mark and the smooth mark are both obtained by the switching node marking the packets based on a queue height in the switching node; Every first cycle, the first confirmation response in the first sequence is used as the confirmation response to be examined, and the statistical marking probability is initialized, the first sequence includes the confirmation responses received in the first cycle; the first number and the second number in the confirmation response to be examined are obtained, and the statistical marking probability is increased by the first number of times using a first marking probability increase algorithm, the first marking probability increase algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; the statistical marking probability is reduced by the second number of times using a first marking probability reduction algorithm, the first marking probability reduction algorithm indicates that the value of the statistical marking probability after the decrease decreases linearly with the value before the decrease; the confirmation response to be examined is updated with the next confirmation response of the confirmation response to be examined in the first sequence, and the step of obtaining the first number and the second number in the confirmation response to be examined is returned until there is no next confirmation response in the first sequence; based on the statistical marking probability, the overload rate of the switching node in the first cycle is determined; The first congestion sliding window is updated based on the overload rate to control the number of the unsent messages accommodated therein, thereby adjusting the sending rate to the destination node.

2. The congestion control method according to claim 1, characterized in that: The determining, based on the statistical marking probability, the overload rate of the switching node in the first cycle includes: Determining a statistical queue height of the switching node in the first cycle based on the statistical marking probability; Based on the statistical queue height, an overload rate of the switching node in the first cycle is determined.

3. The congestion control method according to claim 2, characterized in that: The step of increasing the statistical marking probability by the first number of times using the first marking probability increasing algorithm includes: Initialize the first count value to 1; If the first count value is less than or equal to the first number, using a first marking probability increasing algorithm to increase the statistical marking probability and add 1 to the first count value; Returning to the step of increasing the statistical marking probability by using a first marking probability increasing algorithm if the first count value is less than or equal to the first number until the first count value is greater than the first number; The reducing the statistical marking probability by the second number of times using the first marking probability reducing algorithm includes: Initialize the second count value to 1; If the second count value is less than or equal to the second number, using a first marking probability reduction algorithm to reduce the statistical marking probability and increase the second count value by 1; Return to the step of reducing the statistical marking probability by using the first marking probability reduction algorithm if the second count value is less than or equal to the second number until the second count value is greater than the second number.

4. The congestion control method according to claim 2, characterized in that: The congestion mark and the unblocked mark are obtained by the switching node by marking the message based on the queue height in the switching node in the following manner: If the queue height in the switching node is less than or equal to the first queue height, adding the unblocked mark to the message; If the queue height in the switching node is greater than or equal to a second queue height, adding the congestion mark to the message, and the second queue height is greater than the first queue height; If the queue height of the switching node is greater than the first queue height but less than the second queue height, the congestion mark is added to the message with a first probability, and the unblocked mark is added to the message with a complement of the first probability, wherein the complement of the first probability is the difference between 1 and the first probability, and the first probability changes linearly with the queue height between the first queue height and the second queue height.

5. The congestion control method according to claim 4, characterized in that: The determining, based on the statistical marking probability, a statistical queue height of the switching node in the first cycle includes: Obtaining the first queue height and the second queue height; Obtaining a critical marking probability corresponding to the second queue height; The statistical queue height is determined based on the statistical marking probability, the first queue height, the second queue height, and the critical marking probability.

6. The congestion control method according to claim 2, characterized in that: The determining, based on the statistical queue height, the overload rate of the switching node in the first cycle includes: Determining the load of the switching node in the first cycle based on the statistical queue height; Obtaining the port bandwidth of the switching node; The overload rate of the switching node in the first period is determined based on the load, the port bandwidth and the first period.

7. The congestion control method according to claim 1, characterized in that: The updating the first congestion sliding window based on the overload rate includes: If the overload rate of the previous first cycle is greater than 0, when the confirmation response is received for the first time in the current first cycle, reducing the length of the first congestion sliding window based on the overload rate; If the overload rate of the previous first cycle is less than or equal to 0, the length of the first congestion sliding window is increased each time the confirmation response is received in the current first cycle.

8. The congestion control method according to claim 7, characterized in that: When the confirmation response is received for the first time in the current first cycle, reducing the length of the first congestion sliding window based on the overload rate includes: When the confirmation response is received for the first time in the current first cycle, determining a first sum of 1 and the overload rate; A result of dividing the length of the first congestion sliding window by the first sum is used as the reduced length of the first congestion sliding window.

9. The congestion control method according to claim 7, characterized in that: If the overload rate of the previous first cycle is greater than 0, then when the confirmation response is received for the first time in the current first cycle, after reducing the length of the first congestion sliding window based on the overload rate, the congestion control method further includes: If the overload rate of the previous first cycle is greater than 0, the confirmation response cumulative value is reset to zero; If the overload rate of the previous first cycle is less than or equal to 0, increasing the length of the first congestion sliding window each time the confirmation response is received in the current first cycle, includes: If the overload rate of the previous first cycle is less than or equal to 0, then the confirmation response cumulative value is increased by 1 each time the confirmation response is received in the current first cycle; If the confirmation response cumulative value does not reach the predetermined cumulative value, determining the increased length of the first congestion sliding window based on a first rule; If the confirmation response cumulative value reaches a predetermined cumulative value, the increased length of the first congestion sliding window is determined based on a second rule.

10. The congestion control method according to claim 1, characterized in that: The at least one switching node is a plurality of switching nodes, the message is sent to the destination node via a switching node among the plurality of switching nodes; the confirmation response includes the first quantity and the second quantity corresponding to each switching node; Every first period, taking the first confirmation response in the first sequence as the confirmation response to be examined and initializing the statistical marking probability, the first sequence including the confirmation responses received in the first period; Obtain the first number and the second number in the confirmation response to be examined, increase the statistical marking probability by the first number of times using a first marking probability increasing algorithm, wherein the first marking probability increasing algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; reduce the statistical marking probability by the second number of times using a first marking probability decreasing algorithm, wherein the first marking probability decreasing algorithm indicates that the value of the statistical marking probability after the decrease decreases linearly with the value before the decrease; update the confirmation response to be examined with the next confirmation response of the confirmation response to be examined in the first sequence, and return to the step of obtaining the first number and the second number in the confirmation response to be examined, until there is no next confirmation response in the first sequence; Based on the statistical marking probability, determining the overload rate of the switching node in the first cycle, including: every first cycle, taking the first confirmation response in the first sequence as the confirmation response to be investigated, and initializing the statistical marking probability of each switching node, the first sequence including the confirmation responses received in the first cycle; for each switching node, obtaining the first number and the second number corresponding to the switching node in the confirmation response to be investigated, using a first marking probability increase algorithm to increase the statistical marking probability of the switching node by the first number of times; using a first marking probability reduction algorithm to reduce the statistical marking probability of the switching node by the second number of times; updating the confirmation response to be investigated with the next confirmation response of the confirmation response to be investigated in the first sequence, and returning to the step of obtaining the first number and the second number corresponding to the switching node in the confirmation response to be investigated until there is no next confirmation response in the first sequence; determining the overload rate of each switching node in the first cycle based on the statistical marking probability corresponding to each switching node; The updating of the first congestion sliding window based on the overload rate includes: updating the first congestion sliding window of each switching node based on the overload rate of each switching node.

11. The congestion control method according to claim 1, characterized in that: The confirmation response is sent by the destination node in the following manner: If it is determined that a predetermined time period has passed since the last confirmation response was issued, determining the first quantity and the second quantity based on the messages received within the predetermined time period, and generating and issuing the confirmation response based on the first quantity and the second quantity; If a predetermined period of time has not passed since the last confirmation response was issued, but a predetermined number of messages are received, the first number and the second number are determined based on the predetermined number of messages, and the confirmation response is generated and issued based on the first number and the second number.

12. A congestion control method, characterized in that: Applied to a destination node, the congestion control method comprises: Receive the message sent by the source node; If it is determined that a predetermined time period has passed since the last confirmation response was sent, then based on the messages received within the predetermined time period, a first number of messages carrying a congestion mark and a second number of messages carrying a smooth mark are determined, and a confirmation response is generated based on the first number and the second number, and the confirmation response is returned to the source node, wherein at least one switching node is provided between the source node and the destination node, and the congestion mark and the smooth mark are both obtained by the switching node marking the message based on the queue height in the switching node; If a predetermined time period has not passed since the last confirmation response was sent, but a predetermined number of messages have been received, the first number and the second number are determined based on the predetermined number of messages, and a confirmation response is generated based on the first number and the second number, and the confirmation response is returned to the source node, so that the source node uses the first confirmation response in a first sequence as the confirmation response to be examined every first cycle, and initializes the statistical marking probability, wherein the first sequence includes the confirmation responses received in the first cycle; obtains the first number and the second number in the confirmation response to be examined, and increases the statistical marking probability by the first number of times using a first marking probability increase algorithm. Increase, the first marking probability increasing algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; using the first marking probability reducing algorithm, the statistical marking probability is reduced by the second number of times, and the first marking probability reducing algorithm indicates that the value of the statistical marking probability after the reduction decreases linearly with the value before the reduction; update the confirmation response to be examined with the next confirmation response of the confirmation response to be examined in the first sequence, and return to the step of obtaining the first number and the second number in the confirmation response to be examined until there is no next confirmation response in the first sequence; based on the statistical marking probability, determine the overload rate of the switching node in the first cycle.

13. A congestion control method, characterized in that: Applied to the source node, the congestion control method further includes: Sending a message to a destination node based on a first congestion sliding window, wherein the first congestion sliding window is a window moving in a queue of messages to be sent, and is used to indicate a first number of messages sent to the destination node, and once a message among the first number of messages receives a confirmation response, the first congestion sliding window is slid to accommodate more unsent messages, thereby sending the accommodated unsent messages; Receive the confirmation response returned by the destination node, the confirmation response includes the overload rate of the switching node, wherein at least one switching node is provided between the source node and the destination node, the switching node marks the message based on the queue height in the switching node to obtain a congestion mark and a smooth mark, the overload rate is determined by the destination node based on a first number of messages with congestion marks and a second number of messages with smooth marks, the destination node initializes a statistical marking probability, and increases the statistical marking probability by the first number of times using a first marking probability increase algorithm, the first marking probability increase algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; and the first marking probability reduction algorithm is used to reduce the statistical marking probability by the second number of times; based on the statistical marking probability, determine the overload rate of the switching node, and the first marking probability reduction algorithm indicates that the value of the statistical marking probability after the reduction decreases linearly with the value before the reduction; The first congestion sliding window is updated based on the overload rate to control the number of the unsent messages accommodated therein, thereby adjusting the sending rate to the destination node.

14. A congestion control method, characterized in that: Applied to the destination node, the congestion control method further comprises: Receive the message sent by the source node; If it is determined that a predetermined time period has passed since the last confirmation response was issued, then based on the messages received within the predetermined time period, determine a first number of messages carrying a congestion mark and a second number of messages carrying a smooth mark; initialize the statistical marking probability, and use a first marking probability increase algorithm to increase the statistical marking probability by the first number of times, wherein the first marking probability increase algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; use a first marking probability reduction algorithm to reduce the statistical marking probability by the second number of times, wherein the first marking probability reduction algorithm indicates that the value of the statistical marking probability after the decrease decreases linearly with the value before the decrease; determine the overload rate of the switching node within the predetermined time period based on the statistical marking probability; generate a confirmation response based on the overload rate, and return the confirmation response to the source node, wherein at least one of the switching nodes is provided between the source node and the destination node, and the congestion mark and the smooth mark are both obtained by the switching node marking the message based on the queue height in the switching node; If a predetermined time period has not passed since the last confirmation response was sent, but a predetermined number of messages have been received, the first number and the second number are determined based on the predetermined number of messages, and an overload rate of the switching node is determined based on the first number and the second number, a confirmation response is generated based on the overload rate, and the confirmation response is returned to the source node.

15. A congestion control device, characterized in that: Set in a source node, the device includes: A first sending unit, configured to send a message to a destination node based on a first congestion sliding window, wherein the first congestion sliding window is a window moving in a queue of messages to be sent, and is configured to indicate a first number of messages sent to the destination node, and once a message among the first number of messages receives a confirmation response, the first congestion sliding window is slid to accommodate more unsent messages, thereby sending the accommodated unsent messages; a first receiving unit, configured to receive the confirmation response returned by the destination node, the confirmation response including a first number of packets carrying a congestion mark and a second number of packets carrying a smooth mark, wherein at least one switching node is provided between the source node and the destination node, and the congestion mark and the smooth mark are both obtained by the switching node marking the packets based on a queue height in the switching node; A first determining unit is configured to use, every first cycle, the first confirmation response in a first sequence as the confirmation response to be examined and initialize the statistical marking probability, wherein the first sequence includes the confirmation responses received in the first cycle; obtain the first number and the second number in the confirmation response to be examined, and increase the statistical marking probability by the first number of times using a first marking probability increasing algorithm, wherein the first marking probability increasing algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; reduce the statistical marking probability by the second number of times using a first marking probability decreasing algorithm, wherein the first marking probability decreasing algorithm indicates that the value of the statistical marking probability after the decrease decreases linearly with the value before the decrease; update the confirmation response to be examined with the next confirmation response of the confirmation response to be examined in the first sequence, and return to the step of obtaining the first number and the second number in the confirmation response to be examined until there is no next confirmation response in the first sequence; determine the overload rate of the switching node in the first cycle based on the statistical marking probability; An updating unit is used to update the first congestion sliding window based on the overload rate to control the number of the unsent messages accommodated therein, thereby adjusting the sending rate to the destination node.

16. A congestion control device, characterized in that: Set in a destination node, the device includes: A second receiving unit, used for receiving a message sent by a source node; a second determining unit, if it is determined that a predetermined time period has passed since the last confirmation response was sent, the second determining unit is used to determine a first number of messages carrying a congestion mark and a second number of messages carrying a smooth mark based on messages received within the predetermined time period, and generate a confirmation response based on the first number and the second number, and return the confirmation response to the source node, wherein at least one switching node is provided between the source node and the destination node, and the congestion mark and the smooth mark are both obtained by the switching node marking the message based on the queue height in the switching node; A third determining unit, if a predetermined time period has not passed since the last confirmation response was sent, but a predetermined number of messages have been received, the third determining unit is used to determine the first number and the second number based on the predetermined number of messages, and generate a confirmation response based on the first number and the second number, and return the confirmation response to the source node, so that the source node uses the first confirmation response in the first sequence as the confirmation response to be examined every first cycle, and initializes the statistical marking probability, the first sequence includes the confirmation responses received in the first cycle; obtains the first number and the second number in the confirmation response to be examined, and uses a first marking probability increase algorithm to perform the required statistical marking probability. The first number of times is increased, and the first marking probability increasing algorithm indicates that the value of the statistical marking probability after the increase increases linearly with the value before the increase; the statistical marking probability is reduced by the first marking probability decreasing algorithm, and the first marking probability reducing algorithm indicates that the value of the statistical marking probability after the reduction decreases linearly with the value before the reduction; the confirmation response to be examined is updated with the next confirmation response of the confirmation response to be examined in the first sequence, and the step of obtaining the first number and the second number in the confirmation response to be examined is returned until there is no next confirmation response in the first sequence; based on the statistical marking probability, the overload rate of the switching node in the first cycle is determined.

17. An electronic device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the congestion control method according to any one of claims 1 to 14 is implemented.

18. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the congestion control method according to any one of claims 1 to 14 is implemented.

19. A computer program product, comprising a computer program, characterized in that The computer program is read and executed by a processor of a computer device, so that the computer device executes the congestion control method according to any one of claims 1 to 14.

Citation Information

Patent Citations

  • Network congestion data processing method, device and system and computer equipment

    CN116155811A