Congestion control methods, apparatus, equipment, storage media and products

CN118827547BActive Publication Date: 2026-01-06CHINA MOBILE COMM LTD RES INST +1
-1 Cites 0 Cited by

Patent Information

Application Number
CN202410347131.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-03-25
Publication Date
2026-01-06
Estimated Expiration
2044-03-25

Smart Images

  • Figure CN118827547B_ABST
    Figure CN118827547B_ABST
Patent Text Reader

Abstract

This application discloses a congestion control method, apparatus, device, storage medium, and product. The method includes: identifying the network traffic type of a received data packet based on a set flag bit in the IP header; transferring the data packet to the corresponding message buffer queue based on the identified network traffic type; and forwarding the data packets in the message buffer queues corresponding to each network traffic type based on a set priority scheduling rule. The network traffic types include: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic. The message buffer queues include: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type. This method can adapt to different network transmission requirements such as low latency and high throughput, and can meet the compatibility control requirements of network traffic with multiple congestion control types.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data transmission, and more particularly to a congestion control method, apparatus, device, storage medium, and product. Background Technology

[0002] In network switches, network congestion occurs when the inbound traffic exceeds the outbound bandwidth. Congestion control is used to reduce packet loss in lossy networks or congestion propagation in lossless networks. It also reduces switch buffer usage, thereby reducing latency and improving tolerance to burst traffic.

[0003] Among related technologies, L4S (Low Latency, Low Loss, Scalable Throughput) technology uses dual queues combined with Active Queue Management (AQM) to enable the coexistence of DCTCP (Data Center Transmission Control Protocol) traffic and traditional RENO-type TCP (Transmission Control Protocol) traffic, providing a traffic transmission technology with low latency, low packet loss rate, and scalable throughput. RENO is a TCP congestion control algorithm primarily used to reduce the transmission rate of the TCP sender when the network is congested. It achieves congestion control by dynamically adjusting the sender's window size. For example, when network congestion occurs, the RENO algorithm halves the congestion window to reduce network traffic; when the network recovers, the RENO algorithm gradually increases the congestion window to improve network throughput. L4S technology utilizes the Explicit Congestion Notification (ECN) mechanism in the IP header to mark congestion-encountered (CE) packets at network bottlenecks. This allows the sender to adjust its transmission rate in a timely manner, avoiding queues and delays at bottlenecks. Therefore, L4S technology can significantly reduce packet latency and jitter in network transmission while maintaining high throughput.

[0004] Currently, L4S technology divides traffic into two types of queues (traditional network traffic and L4S traffic). Using ECN (Electronic Network Communication) notification technology can provide low-latency data transmission services. However, this technology is not suitable for transmitting multiple concurrent traffic streams such as elephant streams and mouse streams. Summary of the Invention

[0005] In view of this, embodiments of this application provide a congestion control method, apparatus, device, storage medium, and product, which aim to improve the congestion control effect in scenarios where multiple types of network traffic coexist.

[0006] The technical solution of this application embodiment is implemented as follows:

[0007] In a first aspect, embodiments of this application provide a congestion control method, including:

[0008] Based on the set flag bits in the IP (Internet Protocol) header of the received data packet, the network traffic type to which the data packet belongs is identified;

[0009] Based on the identified network traffic type, the data packet is transferred to the corresponding message buffer queue;

[0010] Based on the set priority scheduling rules, forward the data packets in the message buffer queue corresponding to each of the network traffic types;

[0011] The network traffic types include: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic. The message buffer queues include: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type.

[0012] The method in the above scheme further includes:

[0013] Configure corresponding ECN thresholds and congestion marking probabilities based on the network traffic type corresponding to each message buffer queue;

[0014] Wherein, the ECN threshold of the first queue < the ECN threshold of the third queue < the ECN threshold of the second queue; the congestion labeling probability of the first queue > the congestion labeling probability of the third queue > the congestion labeling probability of the second queue.

[0015] In the above scheme, based on the network traffic type corresponding to each message buffer queue, a corresponding congestion marking probability is configured, including:

[0016] Obtain a pre-set or periodically updated first parameter, which represents the packet loss rate of the network device's port;

[0017] Based on the first parameter, the congestion marking probability of each message buffer queue on the port is set as follows:

[0018] P1=K*P a1 ;

[0019] P2=K*P a2 ;

[0020] P3 = K * P a3 ;

[0021] Wherein, P1 is the congestion marking probability of the first queue, P2 is the congestion marking probability of the second queue, P3 is the congestion marking probability of the third queue, K is the set proportional coefficient, P is the first parameter, a1 is the exponent corresponding to the first queue, a2 is the exponent corresponding to the second queue, a3 is the exponent corresponding to the third queue, and a1 < a3 < a2.

[0022] In the above scheme, based on the network traffic type corresponding to each message buffer queue, a corresponding ECN threshold is configured, including:

[0023] Obtain the configuration parameters and network performance parameters of the network device. The configuration parameters include at least the cache space parameters of the switching chip of the network device and the rated bandwidth of each port of the network device. The network performance parameters include at least the round-trip latency between each port of the network device and neighboring nodes.

[0024] Based on the rated bandwidth and round-trip delay of each port of the network device, a proportionality coefficient for each port of the network device is calculated. The proportionality coefficient represents the ratio of the bandwidth-delay product of a single port to the sum of the bandwidth-delay products of all network ports of the network device.

[0025] Based on the cache space parameters and the proportional coefficient of the target port of the network device, the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port is determined.

[0026] In the above scheme, the cache space parameters include: a first cache space parameter characterizing the size of the on-chip cache space of the switching chip and a second cache space parameter characterizing the size of the off-chip cache space of the switching chip. The step of determining the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port based on the cache space parameters and the proportionality coefficient of the target port of the network device includes:

[0027] Based on the network traffic type corresponding to each message queue, configure the first adjustment coefficient and / or the second adjustment coefficient of the corresponding message buffer queue;

[0028] Calculate the difference between the first cache space parameter and the sum of the bandwidth-delay products of all network ports of the network device;

[0029] The difference and the second cache space parameter are weighted and summed to obtain a sum value; wherein the weight of the difference is the first adjustment coefficient, and the weight of the second cache space parameter is the second adjustment coefficient;

[0030] Based on the scaling factor, the summation value, and the number of queues supported by the target port, the ECN threshold of each message buffer queue of the target port is determined.

[0031] In the above scheme, the set flag bit is an ECN identifier, and the identification of the network traffic type to which the data packet belongs based on the set flag bit in the IP header of the received data packet includes:

[0032] If the ECN identifier of the received data packet is 10 or 11, then the network traffic type of the data packet is determined to be the first type;

[0033] If the ECN identifier of the received data packet is 01, then the network traffic type of the data packet is determined to be the second type;

[0034] If the ECN identifier of the received data packet is 00, then the network traffic type of the data packet is determined to be the third type.

[0035] In the above scheme, forwarding data packets in the message buffer queue corresponding to each network traffic type based on the set priority scheduling rules includes:

[0036] The priority scheduling algorithm based on active queue management forwards data packets in the message buffer queues corresponding to each network traffic type, and marks or randomly drops data packets based on the ECN threshold and congestion marking probability of each message buffer queue.

[0037] Secondly, embodiments of this application provide a congestion control device, including:

[0038] The traffic classification module is used to identify the network traffic type of the received data packet based on a set flag bit in the IP header of the data packet;

[0039] The caching module is used to transfer the data packet into the corresponding message buffer queue based on the identified network traffic type;

[0040] The forwarding module is used to forward data packets in the message buffer queue corresponding to each of the network traffic types based on the set priority scheduling rules.

[0041] The network traffic types include: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic. The message buffer queues include: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type.

[0042] Thirdly, embodiments of this application provide a network device, including: a processor and a memory for storing a computer program capable of running on the processor, wherein the processor, when running the computer program, executes the steps of the method described in the first aspect of embodiments of this application.

[0043] Fourthly, embodiments of this application provide a computer storage medium storing a computer program, which, when executed by a processor, implements the steps of the method described in the first aspect of embodiments of this application.

[0044] Fifthly, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the steps of the method described in the first aspect of embodiments of this application.

[0045] The technical solution provided in this application identifies the network traffic type of the received data packet based on a set flag bit in the IP header; based on the identified network traffic type, the data packet is transferred to the corresponding message buffer queue; and based on a set priority scheduling rule, the data packets in the message buffer queues corresponding to each network traffic type are forwarded. The network traffic types include: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic. The message buffer queues include: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type. Because this application introduces message buffer queues corresponding to three types of network traffic, and forwards data packets in these queues based on set priority scheduling rules, it can adapt to different network transmission requirements such as low latency and high throughput, and can meet the compatibility control requirements of network traffic with multiple congestion control types, thereby improving the congestion control effect in scenarios where multiple types of network traffic coexist. Attached Figure Description

[0046] Figure 1 This is a flowchart illustrating the congestion control method according to an embodiment of this application;

[0047] Figure 2 This is a schematic diagram of the process for identifying network traffic types in an application example of this application;

[0048] Figure 3 This is a schematic diagram illustrating the configuration of congestion marking probabilities for three types of queues in an application example of this application;

[0049] Figure 4 This is a schematic diagram of the network system for forwarding data using a three-queue architecture based on AQM, as described in an application embodiment of this application.

[0050] Figure 5 This is a schematic diagram of the congestion control device according to an embodiment of this application;

[0051] Figure 6 This is a schematic diagram of the structure of an electronic device according to an embodiment of this application. Detailed Implementation

[0052] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.

[0053] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.

[0054] This application provides a congestion control method applied to network devices, such as... Figure 1 As shown, the method includes:

[0055] Step 101: Identify the network traffic type to which the data packet belongs based on the set flag bits in the IP header of the received data packet.

[0056] Here, the sending end can set a flag in the IP header of the data packet according to the traffic type or the type of congestion control algorithm. In this way, the network device can identify the network traffic type to which the received data packet belongs based on the set flag.

[0057] For example, the network traffic types in this application embodiment include: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic. For instance, the setting flag of data packets using congestion control based on the DCTCP algorithm can be configured as the first type, the setting flag of data packets using congestion control based on the BBR (Bottleneck Bandwidth and Round-trip Propagation Time) algorithm can be configured as the second type, and the setting flag of data packets using congestion control based on the RENO algorithm can be configured as the third type.

[0058] For example, the setting flag can be the ECN identifier configured in the IP header, such as the ECN field in the IPv4 header, or the two least significant bits of the ToS (Type of Service) field in the IPv6 header.

[0059] Step 102: Based on the identified network traffic type, transfer the data packet to the corresponding message buffer queue.

[0060] In this embodiment of the application, the message buffer queue includes: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type.

[0061] Understandably, after identifying the network traffic type of the received data packet based on the aforementioned ECN identifier, the network device can transfer the data packet to the corresponding message buffer queue to achieve caching of different types of network traffic.

[0062] Step 103: Based on the set priority scheduling rules, forward the data packets in the message buffer queue corresponding to each of the network traffic types.

[0063] Here, network devices can use L4S technology to forward data packets in the aforementioned three message buffer queues. That is, they can forward data packets in the message buffer queues corresponding to each network traffic type based on the priority scheduling algorithm of active queue management, and mark or randomly drop data packets based on the ECN threshold and congestion marking probability of each message buffer queue.

[0064] It is understood that, since this application embodiment introduces message buffer queues corresponding to three types of network traffic, and forwards data packets in the message buffer queues corresponding to these three types of network traffic based on the set priority scheduling rules, it can adapt to different network transmission requirements such as low latency and high throughput, and can meet the compatibility control requirements of network traffic with multiple congestion control types, thereby improving the congestion control effect in scenarios where multiple types of network traffic coexist. For example, the method in this application embodiment can achieve friendly coexistence of network traffic with different congestion control methods such as CUBIC, BBR, and DCTCP, thereby achieving the compatibility control requirements of network traffic with multiple congestion control types and effectively improving the congestion control effect in scenarios where multiple types of network traffic coexist.

[0065] For example, the set flag is an ECN identifier, and the identification of the network traffic type to which the data packet belongs based on the set flag in the IP header of the received data packet includes:

[0066] If the ECN identifier of the received data packet is 10 or 11, then the network traffic type of the data packet is determined to be the first type;

[0067] If the ECN identifier of the received data packet is 01, then the network traffic type of the data packet is determined to be the second type;

[0068] If the ECN identifier of the received data packet is 00, then the network traffic type of the data packet is determined to be the third type.

[0069] In one application example, the correspondence between ECN identifiers and network traffic types is shown in Table 1 below:

[0070] Table 1

[0071]

[0072] For example, refer to Figure 2 After receiving data packets, network devices can identify network traffic types, which may specifically include:

[0073] Step 201: Identify the value of the ECN identifier in the data packet.

[0074] Step 202: Determine if the ECN identifier is equal to 01. If yes, proceed to step 203; otherwise, proceed to step 204.

[0075] Step 203: Transfer the data packet to the second queue.

[0076] Here, if the ECN identifier is 01, the data packet is determined to be throughput-sensitive network traffic, that is, the second type of network traffic, and the data packet is transferred to the second queue.

[0077] Step 204: Determine if the ECN identifier is equal to 10. If yes, proceed to step 205; otherwise, proceed to step 206.

[0078] Step 205: Transfer the data packet to the first queue.

[0079] Here, if the ECN identifier is 10, the data packet is determined to be latency-sensitive network traffic, that is, the first type of network traffic, and the data packet is transferred to the first queue.

[0080] Step 206: Determine if the ECN identifier is equal to 11. If yes, proceed to step 205; otherwise, proceed to step 207.

[0081] Here, if the ECN identifier is 11, it indicates that there is congestion in the network. Then, step 205 is executed to transfer the data packet to the first queue, i.e., the delay-sensitive data buffer queue, so as to forward it to the receiving end as soon as possible through the network device.

[0082] Step 207: Transfer the data packet to the third queue.

[0083] Here, the network device transfers data packets of network traffic other than those that are latency-sensitive and throughput-sensitive to the third queue.

[0084] Exemplarily, the method in this application embodiment further includes:

[0085] Configure corresponding ECN thresholds and congestion marking probabilities based on the network traffic type corresponding to each message buffer queue;

[0086] Wherein, the ECN threshold of the first queue < the ECN threshold of the third queue < the ECN threshold of the second queue; the congestion labeling probability of the first queue > the congestion labeling probability of the third queue > the congestion labeling probability of the second queue.

[0087] In this embodiment, for the first type of network traffic, such as latency-sensitive mouse traffic, which requires good queuing delay (i.e., shallow queue depth), the ECN threshold of the first queue is set relatively low, and the congestion marking probability is set relatively high. For the second type of network traffic, such as throughput-sensitive elephant traffic, which requires a large buffer queue to handle sudden congestion, the ECN threshold of the second queue is set relatively high to ensure high throughput of the data flow, and the congestion marking probability is set relatively low. For the third type of network traffic, the ECN threshold of the third queue is set between the ECN thresholds of the above two queues, and the congestion marking probability can be set between the above two queues.

[0088] For example, based on the network traffic type corresponding to each of the message buffer queues, a corresponding congestion marking probability is configured, including:

[0089] Obtain a pre-set or periodically updated first parameter, which represents the packet loss rate of the network device's port;

[0090] Based on the first parameter, the congestion marking probability of each message buffer queue on the port is set as follows:

[0091] P1=K*P a1 ;

[0092] P2=K*P a2 ;

[0093] P3 = K * P a3 ;

[0094] Wherein, P1 is the congestion marking probability of the first queue, P2 is the congestion marking probability of the second queue, P3 is the congestion marking probability of the third queue, K is the set proportional coefficient, P is the first parameter, a1 is the exponent corresponding to the first queue, a2 is the exponent corresponding to the second queue, a3 is the exponent corresponding to the third queue, and a1 < a3 < a2.

[0095] Here, the first parameter P can be a fixed value set according to the storage, computing and forwarding capabilities of the network device, or it can be a value calculated and updated periodically according to a preset algorithm. This application embodiment does not limit this.

[0096] In an application example, the congestion marking probabilities of the three types of queues mentioned above are as follows: Figure 3 As shown, where, Figure 3 In the coordinate system shown, the horizontal axis represents the value of the first parameter P, and the vertical axis represents the value of the congestion marking probability. K has a value of 1, a1 is 0.5, a2 is 2, and a3 is 1. That is, the congestion marking probability P1 of the first queue can be expressed as P... 0.5 The congestion marking probability P2 of the second queue can be expressed as P 2 The congestion marking probability P3 of the third queue can be represented as P.

[0097] For example, based on the network traffic type corresponding to each of the message buffer queues, a corresponding ECN threshold is configured, including:

[0098] Obtain the configuration parameters and network performance parameters of the network device. The configuration parameters include at least the cache space parameters of the switching chip of the network device and the rated bandwidth of each port of the network device. The network performance parameters include at least the round-trip latency between each port of the network device and neighboring nodes.

[0099] Based on the rated bandwidth and round-trip delay of each port of the network device, a proportionality coefficient for each port of the network device is calculated. The proportionality coefficient represents the ratio of the bandwidth-delay product of a single port to the sum of the bandwidth-delay products of all network ports of the network device.

[0100] Based on the cache space parameters and the proportional coefficient of the target port of the network device, the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port is determined.

[0101] Here, the network device includes a control chip and a switching chip, with the message buffer queue located on the switching chip. The control chip and the switching chip communicate via physical connection lines. The control chip can be a field-programmable gate array (FPGA) chip or a central processing unit (CPU). Optionally, the control chip and switching chip in the network device can also be integrated, meaning that control and forwarding functions are integrated onto a single chip.

[0102] For example, the buffers of network device nodes can be managed based on switch architectures such as CIOQ (combined input output queuing) and VOQ (Virtual output queuing). The message buffer queue can use only the on-chip cache space of the switching chip, or a hybrid caching method that uses both the on-chip and off-chip cache spaces of the switching chip.

[0103] Here, the cache space parameters of the switching chip may include: a first cache space parameter characterizing the size of the on-chip cache space of the switching chip and a second cache space parameter characterizing the size of the off-chip cache space of the switching chip. The first cache space parameter can be understood as the configured rated on-chip cache space, and the second cache space parameter can be understood as the configured rated off-chip cache space.

[0104] In one application example, the network device, using the Juniper QFX5210 switch, supports 64 full-duplex 100Gbps ports, meaning each port has a rated bandwidth of 100Gbps; the on-chip cache space is 42MB (i.e., the first cache space parameter), and the DRAM (Dynamic Random Access Memory) cache space is 16GB (i.e., the second cache space parameter).

[0105] Here, Round-Trip Time (RTT) is an important performance metric, representing the total delay from when the sender begins sending data until the sender receives an acknowledgment from the receiver. The RTT between each port of a network device and its neighboring nodes can be obtained through configuration files or probe packets. For example, based on the configuration file, the RTT set within a data center might be 10µs, while the RTT set in a wide area network might be 50ms. Alternatively, the minimum RTT of adjacent network nodes can be obtained through probe packets, such as by sending a ping packet from the outgoing interface to obtain the RTT from the outgoing interface to the next-hop node. This embodiment of the application does not limit this approach.

[0106] Here, the Bandwidth Delay Product (BDP) refers to the product of a data link's capacity (bits per second) and its round-trip communication delay (in seconds).

[0107] It is understandable that the bandwidth-delay product (BDP) of each port of the network device is obtained by multiplying the rated bandwidth and round-trip time of each port, and the total bandwidth-delay product (BDP) is obtained by adding the BDPs of all ports of the network device. sum This allows us to calculate the proportionality coefficient R for each port, which is the BDP of a single port divided by the total bandwidth-delay product BDP. sum The proportional coefficient R of the port is obtained.

[0108] It should be noted that the ECN threshold determined by the method in this application embodiment can automatically configure the ECN threshold by calculating the message buffer queue based on the on-chip cache of the switching chip of the network device, or the requirements of the on-chip cache and off-chip cache, thereby effectively improving the congestion control effect of the network device. In addition, compared with the AI ​​ECN threshold dynamic adjustment method, the method in this application embodiment sets the ECN threshold based on a simple basis and with low computational overhead, which can effectively reduce the complexity of ECN threshold setting.

[0109] For example, determining the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port based on the cache space parameters and the proportional coefficient of the target port of the network device includes:

[0110] Based on the network traffic type corresponding to each message queue, configure the first adjustment coefficient and / or the second adjustment coefficient of the corresponding message buffer queue;

[0111] Calculate the difference between the first cache space parameter and the sum of the bandwidth-delay products of all network ports of the network device;

[0112] The difference and the second cache space parameter are weighted and summed to obtain a sum value; wherein the weight of the difference is the first adjustment coefficient, and the weight of the second cache space parameter is the second adjustment coefficient;

[0113] Based on the scaling factor, the summation value, and the number of queues supported by the target port, the ECN threshold of each message buffer queue of the target port is determined.

[0114] Understandably, for different types of message buffer queues, the aforementioned first adjustment coefficient and / or second adjustment coefficient can be configured accordingly, resulting in different ECN thresholds for different types of message buffer queues. For example, for a low-latency mouse stream message buffer queue, a smaller α coefficient can be selected to calculate a smaller ECN threshold value, ensuring low latency and low packet loss rate for the mouse stream; for a high-throughput elephant stream message buffer queue, a larger α coefficient can be selected to calculate a larger ECN threshold value, ensuring the high throughput requirements of the elephant stream. In this way, the different requirements of message buffer queues and ECN threshold values ​​for scenarios such as low-latency mouse streams and high-throughput elephant streams can be accommodated.

[0115] In one application example, the ECN threshold can be calculated using the following formula:

[0116] T≤R*(α*(bf1-BDP sum )+β*bf2) / q

[0117] Where T is the ECN threshold of the message buffer queue of the target port, R is the scaling factor of the target port, bf1 is the first buffer space parameter, and BDP is the first buffer space parameter. sum is the sum of the bandwidth-delay products of all network ports of the network device, bf2 is the second buffer space parameter, α is the first adjustment coefficient, β is the second adjustment coefficient, and q is the number of queues supported by the target port.

[0118] It is understood that α is the on-chip cache adjustment coefficient, and β is the off-chip cache adjustment coefficient. For example, the default value of α can be set to 1, and its size can be adjusted according to the total port BDP value and the size of the on-chip cache. The larger the value of α, the larger the threshold value of ECN; if the network node does not support off-chip cache, then the value of β is 0.

[0119] The present application will now be described in further detail with reference to an application embodiment.

[0120] Figure 4 This diagram illustrates the structure of a network system for three-queue data forwarding based on AQM, as shown in this application embodiment. The network system includes a sender, network nodes (i.e., network devices), and a receiver. In this application embodiment, the identification, forwarding, and processing of traffic data specifically includes:

[0121] 1. The sending end sets a flag in the IP packet header according to the traffic type or the type of congestion control algorithm.

[0122] Here, the sender can use ECN identifiers to classify traffic as follows: 00 for other network traffic, 01 for throughput-sensitive network traffic, and 10 for latency-sensitive network traffic. Furthermore, the sender can also identify CNPs (Congestion Notification Packets) and adjust the transmission rate based on congestion control algorithms.

[0123] 2. Network nodes identify the network traffic type based on the flag bit, transfer it to the corresponding message buffer queue, and schedule and forward data packets according to priority.

[0124] In this application example, network nodes create buffer queues according to three queues. These three queues can be viewed as an atomic queue group, including a latency-sensitive queue (corresponding to the first queue mentioned above), a throughput-sensitive queue (corresponding to the second queue mentioned above), and a other type of queue (the default queue, corresponding to the third queue mentioned above). All three queues are managed using the AQM algorithm, and different ECN thresholds, identifiers, or packet loss rates P are set according to their type.

[0125] Network nodes have the functions of identifying ECN-tagged traffic, three-queue management, and priority scheduling, as detailed below:

[0126] (1) Identify network traffic types based on ECN classifier (also known as flow classifier): Identify different traffic types based on ECN flag bits and place the traffic of that type in the corresponding message buffer queue, i.e., buffer latency-sensitive traffic to the first queue Q1, buffer throughput-sensitive traffic to the second queue Q2, and buffer other types of traffic to the third queue Q3.

[0127] For example, if the ECN flag is 00, it is an other flow, and the data packet is transferred to the third queue Q3; if the ECN flag is 01, the flow is a throughput-sensitive flow, and the data packet is transferred to the second queue Q2; if the ECN flag is 10, the flow is a delay-sensitive flow, and the data packet is transferred to the first queue Q1; if the ECN flag is 11, it indicates that there is congestion in the network, and the data packet is transferred to the delay-sensitive queue Q1 (i.e., the first queue Q1) to be forwarded to the receiving end as soon as possible.

[0128] (2) Network nodes mark or randomly drop network traffic based on the ECN parameters and identification probabilities of different message buffer queues.

[0129] For the latency-sensitive first queue Q1, the ECN threshold is the lowest among the three queues, the probability of packet loss is the highest, and a shallow queue depth is maintained to ensure the shortest queuing latency.

[0130] For the throughput-sensitive second queue Q2, the ECN threshold is lower than that of the three queues, resulting in the lowest packet loss probability. This allows the queue to maintain high throughput even with a slight increase in latency.

[0131] For the third queue Q3 of other network traffic, the ECN threshold value is between the two queues above, the packet loss probability is between the two, and it stores classic TCP traffic or traffic types that cannot be identified.

[0132] (3) Network nodes forward data packets.

[0133] The priority scheduler of a network node can select an existing buffer queue scheduling algorithm as needed to forward data packets. For example, it can use scheduling algorithms such as FQ-CoDel (Fair Queuing control delay) or FQ-PIE (Fair Queuing Proportional Integral controller Enhanced) to ensure relatively fair scheduling of data packets in the three queues based on priority.

[0134] 3. The receiving end receives the data, identifies the congestion marker, and constructs a CNP to feed back to the sending end.

[0135] For example, if the receiving end repeatedly receives a Congestion Mark (CE) within a set time period, it will not repeatedly send a Congestion Mark (CNP) to the sending end. For instance, if it is determined that there is already a CE mark message within 50us, it will not send a CNP back to the sending end.

[0136] In order to implement the method of the embodiments of this application, the embodiments of this application also provide a congestion control device, which corresponds to the above-described congestion control method. The steps in the embodiments of the above-described congestion control method are also fully applicable to the embodiments of this congestion control device.

[0137] like Figure 5 As shown, the congestion control device includes: a traffic classification module 501, a caching module 502, and a forwarding module 503.

[0138] The traffic classification module 501 is used to identify the network traffic type to which the received data packet belongs based on a set flag bit in the IP header of the data packet; the caching module 502 is used to transfer the data packet into the corresponding message buffer queue based on the identified network traffic type; the forwarding module 503 is used to forward the data packets in the message buffer queue corresponding to each network traffic type based on a set priority scheduling rule; wherein, the network traffic type includes: a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic, and the message buffer queue includes: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type.

[0139] For example, the congestion control device further includes a configuration module 504, which is used to configure the corresponding ECN threshold and congestion label probability based on the network traffic type corresponding to each of the message buffer queues;

[0140] Wherein, the ECN threshold of the first queue < the ECN threshold of the third queue < the ECN threshold of the second queue; the congestion labeling probability of the first queue > the congestion labeling probability of the third queue > the congestion labeling probability of the second queue.

[0141] For example, the configuration module 504 is specifically used for:

[0142] Obtain a pre-set or periodically updated first parameter, which represents the packet loss rate of the network device's port;

[0143] Based on the first parameter, the congestion marking probability of each message buffer queue on the port is set as follows:

[0144] P1=K*P a1 ;

[0145] P2=K*P a2 ;

[0146] P3 = K * P a3 ;

[0147] Wherein, P1 is the congestion marking probability of the first queue, P2 is the congestion marking probability of the second queue, P3 is the congestion marking probability of the third queue, K is the set proportional coefficient, P is the first parameter, a1 is the exponent corresponding to the first queue, a2 is the exponent corresponding to the second queue, a3 is the exponent corresponding to the third queue, and a1 < a3 < a2.

[0148] For example, the configuration module 504 is specifically used for:

[0149] Obtain the configuration parameters and network performance parameters of the network device. The configuration parameters include at least the cache space parameters of the switching chip of the network device and the rated bandwidth of each port of the network device. The network performance parameters include at least the round-trip latency between each port of the network device and neighboring nodes.

[0150] Based on the rated bandwidth and round-trip delay of each port of the network device, a proportionality coefficient for each port of the network device is calculated. The proportionality coefficient represents the ratio of the bandwidth-delay product of a single port to the sum of the bandwidth-delay products of all network ports of the network device.

[0151] Based on the cache space parameters and the proportional coefficient of the target port of the network device, the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port is determined.

[0152] For example, the cache space parameters include: a first cache space parameter characterizing the size of the on-chip cache space of the switching chip and a second cache space parameter characterizing the size of the off-chip cache space of the switching chip. The step of determining the ECN threshold of the message buffer queue corresponding to each network traffic type on the target port based on the cache space parameters and the proportionality coefficient of the target port of the network device includes:

[0153] Based on the network traffic type corresponding to each message queue, configure the first adjustment coefficient and / or the second adjustment coefficient of the corresponding message buffer queue;

[0154] Calculate the difference between the first cache space parameter and the sum of the bandwidth-delay products of all network ports of the network device;

[0155] The difference and the second cache space parameter are weighted and summed to obtain a sum value; wherein the weight of the difference is the first adjustment coefficient, and the weight of the second cache space parameter is the second adjustment coefficient;

[0156] Based on the scaling factor, the summation value, and the number of queues supported by the target port, the ECN threshold of each message buffer queue of the target port is determined.

[0157] For example, the setting flag is an ECN identifier, and the traffic classification module 501 is specifically used for:

[0158] If the ECN identifier of the received data packet is 10 or 11, then the network traffic type of the data packet is determined to be the first type;

[0159] If the ECN identifier of the received data packet is 01, then the network traffic type of the data packet is determined to be the second type;

[0160] If the ECN identifier of the received data packet is 00, then the network traffic type of the data packet is determined to be the third type.

[0161] For example, the forwarding module 503 is specifically used for:

[0162] The priority scheduling algorithm based on active queue management forwards data packets in the message buffer queues corresponding to each network traffic type, and marks or randomly drops data packets based on the ECN threshold and congestion marking probability of each message buffer queue.

[0163] In practical applications, the traffic classification module 501, caching module 502, forwarding module 503, and configuration module 504 can be implemented by the processor in the network device. Of course, the processor needs to run the computer program in memory to implement its functions.

[0164] It should be noted that the congestion control device provided in the above embodiments is only illustrated by the division of the above program modules. In practical applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above. In addition, the congestion control device and the congestion control method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0165] Based on the hardware implementation of the above program modules, and in order to implement the method of the embodiments of this application, the embodiments of this application also provide a network device. Figure 6 This is only an exemplary structure of the network device, not the entire structure; implementation is possible as needed. Figure 6 The structure shown may be part or all of the structure.

[0166] like Figure 6 As shown, the network device 600 provided in this embodiment includes at least one processor 601, a memory 602, a user interface 603, and at least one network interface 604. The various components in the network device 600 are coupled together via a bus system 605. It can be understood that the bus system 605 is used to implement communication between these components. In addition to a data bus, the bus system 605 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in… Figure 6 The general designated all buses as Bus System 605.

[0167] The user interface 603 may include a monitor, keyboard, mouse, trackball, click wheel, buttons, touchpad, or touch screen.

[0168] The memory 602 in this embodiment is used to store various types of data to support the operation of the network device. Examples of such data include any computer program used to operate on the network device.

[0169] The congestion control method disclosed in this application can be applied to or implemented by processor 601. Processor 601 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the congestion control method can be completed by integrated logic circuits in the hardware of processor 601 or by instructions in software form. The processor 601 can be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 601 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules can be located in a storage medium, specifically memory 602. Processor 601 reads information from memory 602 and, in conjunction with its hardware, completes the steps of the congestion control method provided in the embodiments of this application.

[0170] In an exemplary embodiment, the network device 600 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.

[0171] It is understood that memory 602 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), Sync Link Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.

[0172] In an exemplary embodiment, this application also provides a computer storage medium, specifically a computer-readable storage medium, such as a memory 602 storing a computer program. This computer program can be executed by the processor 601 of the network device 600 to complete the steps described in the method of this application embodiment. The computer-readable storage medium can be a ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM, etc.

[0173] In an exemplary embodiment, this application also provides a computer program product, including a computer program that can be executed by a processor 601 of a network device 600 to perform the steps described in the method of this application embodiment.

[0174] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0175] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.

[0176] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A congestion control method characterized by, The method comprises: identifying a network traffic type to which a received data packet belongs based on a set flag in an IP packet header of the data packet; transferring the data packet into a corresponding message buffer queue based on the identified network traffic type; forwarding data packets in the message buffer queue corresponding to each network traffic type based on a set priority scheduling rule; wherein the network traffic type comprises a first type indicating latency-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic, and the message buffer queue comprises a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type; The method further comprises: configuring a corresponding Explicit Congestion Notification (ECN) threshold and congestion marking probability based on the network traffic type corresponding to each message buffer queue; wherein the ECN threshold of the first queue < the ECN threshold of the third queue < the ECN threshold of the second queue, and the congestion marking probability of the first queue > the congestion marking probability of the third queue > the congestion marking probability of the second queue; configuring a corresponding ECN threshold based on the network traffic type corresponding to each message buffer queue comprises: obtaining configuration parameters and network performance parameters of a network device, wherein the configuration parameters at least include cache space parameters of a switch chip of the network device and rated bandwidths of each port of the network device, and the network performance parameters at least include round-trip delays between each port of the network device and a neighbor node; calculating a proportionality coefficient of each port of the network device based on the rated bandwidths of each port of the network device and the round-trip delays, wherein the proportionality coefficient represents a ratio of a bandwidth-delay product of a single port to a sum of bandwidth-delay products of all network ports of the network device; determining an ECN threshold of a message buffer queue corresponding to each network traffic type on a target port of the network device based on the cache space parameters and the proportionality coefficient of the target port.

2. The method of claim 1, wherein, configuring a corresponding congestion marking probability based on the network traffic type corresponding to each message buffer queue comprises: obtaining a first parameter that is pre-set or periodically updated, wherein the first parameter represents a packet loss rate of a port of a network device; setting congestion marking probabilities of each message buffer queue on the port based on the first parameter, specifically as follows: P1 = K*P a1 ; P2 = K * P a2 ; P3 = K*P a3 ; wherein P1 is the congestion marking probability of the first queue, P2 is the congestion marking probability of the second queue, P3 is the congestion marking probability of the third queue, K is a set proportionality coefficient, P is the first parameter, a1 is an index corresponding to the first queue, a2 is an index corresponding to the second queue, and a3 is an index corresponding to the third queue, and a1 < a3 < a2.

3. The method of claim 1, wherein, The cache space parameters include: a first cache space parameter representing an on-chip cache space size of the switch chip and a second cache space parameter representing an off-chip cache space size of the switch chip; and the ECN thresholds of the message buffer queues corresponding to each network traffic type on the target port of the network device are determined based on the cache space parameters and the proportional coefficient of the target port, including: a first adjustment coefficient and / or a second adjustment coefficient of each message buffer queue are configured based on the network traffic type corresponding to each message buffer queue; a difference value between the first cache space parameter and a sum of bandwidth-delay products of all network ports of the network device is obtained; a sum value is obtained by weighted sum of the difference value and the second cache space parameter; wherein the weight value of the difference value is the first adjustment coefficient, and the weight value of the second cache space parameter is the second adjustment coefficient; the ECN thresholds of each message buffer queue of the target port are determined based on the proportional coefficient, the sum value and the number of queues supported by the target port.

4. The method of claim 1, wherein, The set flag is an ECN identifier, and the network traffic type to which the received data packet belongs is identified based on the set flag in the IP packet header of the received data packet, including: if the ECN identifier of the received data packet is 10 or 11, it is determined that the network traffic type of the data packet is the first type; if the ECN identifier of the received data packet is 01, it is determined that the network traffic type of the data packet is the second type; if the ECN identifier of the received data packet is 00, it is determined that the network traffic type of the data packet is the third type.

5. The method of claim 1, wherein, The data packets in the message buffer queue corresponding to each network traffic type are forwarded based on the set priority scheduling rule, including: The data packets in the message buffer queue corresponding to each network traffic type are forwarded based on the priority scheduling algorithm of active queue management, and the data packets are marked or randomly discarded based on the ECN threshold and congestion marking probability of each message buffer queue.

6. A congestion control apparatus characterized by comprising: including: a traffic classification module for identifying the network traffic type to which the received data packet belongs based on the set flag in the IP packet header of the received data packet; a cache module for transferring the data packet into the corresponding message buffer queue based on the identified network traffic type; a forwarding module for forwarding the data packets in the message buffer queue corresponding to each network traffic type based on the set priority scheduling rule; wherein the network traffic types include: a first type indicating delay-sensitive network traffic, a second type indicating throughput-sensitive network traffic, and a third type indicating other network traffic, and the message buffer queues include: a first queue corresponding to the first type, a second queue corresponding to the second type, and a third queue corresponding to the third type. The configuration module is configured to configure the ECN threshold and the congestion marking probability of each message buffer queue according to the network traffic type corresponding to the message buffer queue; wherein the ECN threshold of the first queue < the ECN threshold of the third queue < the ECN threshold of the second queue; and the congestion marking probability of the first queue > the congestion marking probability of the third queue > the congestion marking probability of the second queue. The configuration module is specifically configured to: obtain configuration parameters and network performance parameters of a network device, wherein the configuration parameters at least include buffer space parameters of a switch chip of the network device and rated bandwidths of each port of the network device, and the network performance parameters at least include round-trip delays between each port of the network device and a neighbor node; calculate a proportion coefficient of each port of the network device based on the rated bandwidths of each port of the network device and the round-trip delays, wherein the proportion coefficient represents a ratio of a bandwidth-delay product of a single port to a sum of bandwidth-delay products of all network ports of the network device; determine an ECN threshold of a message buffer queue corresponding to each network traffic type on a target port of the network device based on the buffer space parameters and the proportion coefficient of the target port.

7. A network device, comprising: comprise: a processor and a memory for storing a computer program capable of running on the processor, wherein, the processor is configured to execute the steps of the method in any one of claims 1 to 5 when running the computer program.

8. A computer storage medium having stored thereon a computer program, characterized in that the computer program, when executed by the processor, implements the steps of the method in any one of claims 1 to 5.

9. A computer program product comprising a computer program, characterized in that, the computer program, when executed by the processor, implements the steps of the method in any one of claims 1 to 5. the computer program, when executed by the processor, implements the steps of the method in any one of claims 1 to 5.