Network congestion processing method and apparatus, and readable medium

By configuring subqueues for the queue and establishing mapping relationships, accurate positioning of network congestion is solved, and the problem of traditional ECN being unable to accurately locate congestion is improved, network service quality and cost are reduced.

WO2025055717A1PCT designated stage expired Publication Date: 2025-03-20ZTE CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/114758
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-13
Filing Date
2024-08-27
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

Traditional ECN-based network congestion control cannot achieve accurate positioning of congestion, making it difficult to avoid the impact of elephant flow in the same cohort on mouse flow.

Method used

When a queue is congested, at least two subqueries are configured for the parent queue, and a mapping relationship between the child queue and the parent queue is established. The pending messages that should enter the parent queue are assigned to each child queue, determine the target subqueue where congestion occurs, ECN mark it, and fairly schedule the target messages and messages in the child queue in which there is no congestion to the parent queue.

Benefits of technology

By accurately identifying elephant flow, avoiding its impact on mouse flow, improving network service quality, reducing switch costs and deployment complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024114758_20032025_PF_FP_ABST
    Figure CN2024114758_20032025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present disclosure is a network congestion processing method. The method comprises: when there is congestion in queues, configuring at least two child queues for a parent queue where congestion occurs, and establishing mapping relationships between the child queues and the parent queue (S11); allocating to the child queues packets to be processed which should enter the parent queue (S12); determining a target child queue where congestion occurs, and performing explicit congestion notification (ECN) marking on a target packet in the target child queue (S13); and scheduling into the parent queue the target packet and packets in the child queues where no congestion occurs (S14). Further provided in the present disclosure are a network congestion processing apparatus and a readable medium.
Need to check novelty before this filing date? Find Prior Art

Description

Network congestion processing method, device and readable medium

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to Chinese patent application No. 202311190448.X filed with the China Patent Office on September 13, 2023, the entire contents of which are incorporated herein by reference. Technical Field

[0003] The present disclosure relates to, but is not limited to, the field of computer technology. Background Art

[0004] ECN (Explicit Congestion Notification) allows traffic receivers to detect network congestion and notify traffic senders via protocol messages, causing them to reduce their packet sending rate. This prevents packet loss caused by congestion early on and maximizes network performance. It offers the following advantages: 1. All traffic senders can detect congestion on intermediate paths early and proactively slow down their sending rates to prevent congestion. 2. In queues forwarded on intermediate switches, packets exceeding the average queue length are marked with ECN and forwarded continuously, eliminating packet discard and retransmission. 3. Because packet loss is reduced, senders no longer need to retransmit packets after a retransmission timer of several seconds or tens of seconds, improving the user experience for latency-sensitive applications. 4. Compared to networks without ECN, network utilization is improved, eliminating the oscillation between overload and underload.

[0005] ECN is queue-based. There are many flows in the queue, and each flow will be affected. However, in reality, the congestion may be caused by a certain large flow. Traditional ECN-based network congestion control cannot accurately locate the congestion.

[0006] Summary of the Invention

[0007] The present disclosure provides a network congestion processing method, device, and readable medium.

[0008] In a first aspect, an embodiment of the present disclosure provides a network congestion handling method, comprising: in the event of congestion in a queue, configuring at least two sub-queues for a congested parent queue, and establishing a mapping relationship between each of the sub-queues and the parent queue; the queue is a queue at an egress port of a network congestion handling device, and the parent queue is at least one of the queues; allocating to-be-processed packets that should enter the parent queue to each of the sub-queues; determining a target sub-queue where congestion occurs, and performing an explicit congestion notification (ECN) marking on a target packet in the target sub-queue; and fairly scheduling the target packet and packets in each of the non-congested sub-queues to the parent queue.

[0009] On the other hand, an embodiment of the present disclosure also provides a network congestion processing device, including: one or more processors; a storage device on which one or more programs are stored; when the one or more programs are executed by the one or more processors, the one or more processors implement the network congestion processing method as described above; one or more I / O interfaces, connected between the processor and the storage device, configured to implement information interaction between the processor and the storage device.

[0010] On the other hand, an embodiment of the present disclosure further provides a computer-readable medium having a computer program stored thereon, wherein when the program is executed by a processor, the network congestion processing method as described above is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] FIG1 is a schematic diagram of switch QoS egress queue scheduling in the related art;

[0012] FIG2 is a schematic diagram of a network congestion processing flow according to an embodiment of the present disclosure;

[0013] FIG3 is another schematic diagram of a network congestion processing flow according to an embodiment of the present disclosure;

[0014] FIG4 is another schematic diagram of a network congestion processing process according to an embodiment of the present disclosure;

[0015] FIG5 is a schematic diagram of network congestion processing provided by an exemplary embodiment of the present disclosure;

[0016] FIG6 is a schematic structural diagram of a network congestion processing device provided by an embodiment of the present disclosure. DETAILED DESCRIPTION

[0017] Example embodiments will be described more fully hereinafter with reference to the accompanying drawings, but the example embodiments may be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of this disclosure to those skilled in the art.

[0018] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.

[0019] The terms used herein are used only to describe specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a," "an," and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It will also be understood that when the terms "comprising" and / or "made of" are used in this specification, the presence of the features, wholes, steps, operations, elements, and / or components is specified, but the presence or addition of one or more other features, wholes, steps, operations, elements, components, and / or groups thereof is not excluded.

[0020] The embodiments described herein may be described with reference to plan views and / or cross-sectional views, with the aid of idealized schematic diagrams of the present disclosure. Thus, the example illustrations may be modified based on manufacturing techniques and / or tolerances. Therefore, the embodiments are not limited to the embodiments shown in the accompanying drawings, but include modifications of the configurations formed based on the manufacturing process. Therefore, the regions illustrated in the accompanying drawings are schematic in nature, and the shapes of the regions shown in the drawings illustrate specific shapes of the regions of the elements, but are not intended to be limiting.

[0021] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and the present disclosure, and will not be interpreted as having an idealized or overly formal meaning unless expressly defined as such herein.

[0022] Figure 1 is a schematic diagram of switch QoS egress queue scheduling in related technologies. As shown in Figure 1, data center switches generally support standard QoS (Quality of Service), with eight queues per egress, queues 0-7. Each queue sends packets to a destination port (TP), where they are shaped and then emitted from the switch.

[0023] When congestion occurs in a data center switch's lossless queue and the queue's used buffer exceeds the ECN threshold, the switch will add an ECN flag to the forwarded packets, setting the ECN field to 11. This ECN flag indicates packet congestion. Upon receiving the ECN-marked packet, the destination server sends a CNP (Congestion Notification Packets) message to the source server. Upon receiving the CNP message, the source server reduces its packet sending rate. This inevitably impacts the "rat" flow within the same queue. A "rat" flow refers to packets that continuously transmit large amounts of data over a network link; a "rat" flow refers to packets that transmit small amounts of data over a short period of time over a network link. Traffic in scenarios like sending emails, browsing the web, and chatting on WeChat all fall into the "rat" flow category, while traffic in scenarios like VM migration, data migration, and MapReduce fall into the "rat" flow category.

[0024] In related technologies, the messages in the queue are mirrored to the CPU and then sent to the controller for elephant flow identification, or the ACL (Access Control Lists) rules are controlled and sent to the switch device for elephant flow control. The switch CPU and controller require a large amount of computing resources, and the switch chip requires a large amount of ACL resources. The solution is complex to implement and has high deployment requirements, which inevitably increases the cost of the switch.

[0025] In order to at least solve the above technical problems, an embodiment of the present disclosure provides a network congestion processing method, which is applied to a network congestion processing device. In the embodiment of the present disclosure, the network congestion processing device can be a message forwarding device such as a switch.

[0026] FIG2 is a schematic diagram of a network congestion processing flow provided by an embodiment of the present disclosure. As shown in FIG2 , the network congestion processing method may include the following steps S11 to S14 .

[0027] In step S11, when congestion occurs in a queue, at least two sub-queues are configured for the congested parent queue, and a mapping relationship between each sub-queue and the parent queue is established.

[0028] The queue is a queue of an egress port of a network congestion processing device, and the parent queue is at least one of the queues.

[0029] The CPU of the network congestion handling device periodically polls the queues at the outbound port of the network congestion handling device. When it detects that one or more queues are experiencing network congestion, it configures multiple child queues for each congested queue (called a parent queue) and establishes a mapping relationship between each child queue and the parent queue.

[0030] In step S12, the to-be-processed messages that should enter the parent queue are distributed to each child queue.

[0031] Since the mapping relationship between each sub-queue and the parent queue has been established, the to-be-processed messages that should enter the parent queue are evenly distributed to each sub-queue.

[0032] In step S13, the target sub-queue where congestion occurs is determined, and the target message in the target sub-queue is ECN marked.

[0033] The network congestion processing device determines the buffer depth of each subqueue, determines the subqueue with a buffer depth greater than a preset threshold, and identifies the subqueue as the target subqueue where congestion occurs. The target message in the target subqueue is marked with an ECN mark.

[0034] In step S14, the target message and messages in each sub-queue that is not congested are fairly scheduled to the main queue.

[0035] The network congestion handling device fairly dispatches packets from each subqueue to the parent queue. Because of this fair scheduling of subqueues, if the parent queue experiences network congestion, backpressure will be applied to a subqueue, triggering ECN for that subqueue, while other subqueues remain unaffected. Accordingly, traffic in the congested subqueue is considered "elephant traffic," while traffic in the remaining non-congested subqueues is considered "rat traffic."

[0036] The network congestion handling method provided by the disclosed embodiments includes: configuring at least two sub-queues for a congested parent queue in the event of queue congestion, and establishing a mapping relationship between each sub-queue and the parent queue; allocating pending packets that should enter the parent queue to each sub-queue; determining a target sub-queue experiencing congestion, marking target packets in the target sub-queue with an explicit congestion notification (ECN), and scheduling the target packets and packets in non-congested sub-queues to the parent queue. By establishing a mapping relationship between the congested parent queue and each sub-queue, the disclosed embodiments allocate pending packets that should enter the parent queue to each sub-queue and mark packets with ECN based on the congested sub-queue. This allows for precise ECN triggering, accurate identification of "significant flows," and mitigation of the impact of "significant flows" on "minor flows" within the same queue, thereby improving network quality of service. Compared to related techniques that utilize a switch CPU or controller to identify "significant flows," the disclosed embodiments offer advantages such as low cost and ease of deployment.

[0037] In some embodiments, as shown in FIG3 , after performing ECN marking on the target message in the target sub-queue (i.e., step S13), and before scheduling the target message and messages in each sub-queue where congestion does not occur to the parent queue (i.e., step S14), the network congestion handling method may further include the following steps: step S13′, setting a first drop priority for the target message, and setting a second drop priority for messages in each sub-queue where congestion does not occur, wherein the first drop priority is lower than the second drop priority.

[0038] Drop priority is represented by color and is used to determine the order in which packets are dropped when a queue is congested. It has no effect on the mapping between local priorities and queues. There are three colors, and the IEEE-defined priority levels are Green, Yellow, and Red, from lowest to highest. In this embodiment, the first drop priority level can be either Yellow or Red, and the second drop priority level can be Green.

[0039] Lossless Ethernet switches have ECN enabled by default. Each egress port has eight queues with ECN enabled. Green, yellow, and red packets have different ECN marking thresholds. Green has the highest threshold, yellow has the second lowest, and red has the lowest. This means red packets are most likely to be marked by ECN.

[0040] Accordingly, after the target message and the messages in each sub-queue that is not congested are fairly scheduled to the parent queue (i.e., step S14), the network congestion handling method may further include the following steps: In step S15, the parent queue performs ECN marking on the messages scheduled to the parent queue according to the drop priority from low to high.

[0041] Because the drop priority of target packets leaving the target sub-queue experiencing congestion (i.e., the first drop priority) is lower than the drop priority of packets leaving other sub-queues that have not experienced congestion (i.e., the second drop priority), the parent queue prioritizes ECN marking for target packets leaving the target sub-queue experiencing congestion. In this way, the parent queue can prioritize ECN marking for large flows, alleviating network congestion and, in other words, mitigating the impact of non-ECN-marked large flows on small flows.

[0042] In some embodiments, the network congestion handling device's egress port is configured with a counter corresponding to each queue. The device determines that a queue is congested by determining that the queue corresponding to the counter with an increasing value is congested. In other words, a counter is configured for each queue at the egress port of the network congestion handling device. The device periodically polls the counter corresponding to each queue. If the counter value increases, the device enables a pre-mapping function for the corresponding queue, i.e., configuring multiple sub-queues for the queue and establishing a mapping relationship between each sub-queue and the queue.

[0043] In some embodiments, configuring at least two sub-queues for the congested mother queue (i.e., step S11) includes the following steps: configuring at least two consecutive idle sub-queues for the congested target queue, wherein the number of sub-queues can be 2 n , n is a natural number.

[0044] In some embodiments, the fair scheduling of the target message and messages in each non-congested sub-queue to the parent queue (i.e., step S14) may include the following steps: using a round-robin algorithm to fairly schedule the target message and messages in each non-congested sub-queue to the parent queue.

[0045] The switch's chip service process determines the forwarding queues 0-7 for packets. If queue pre-mapping is disabled, packets are directly routed to queues 0-7. If queue pre-mapping is enabled, packets are mapped to 128 subqueues based on their quintuple information. These 128 subqueues utilize RR fair scheduling. If network congestion occurs in the parent queue, congestion in a subqueue (typically the large traffic queue) is triggered. This allows the subqueue to accurately trigger ECN, and packets from this subqueue are marked yellow before being routed to the parent queue.

[0046] In some embodiments, allocating pending messages that should enter the parent queue to the subqueues (i.e., step 12) includes the following steps: allocating pending messages to the subqueues using a hash algorithm based on quintuple information of the pending messages that should enter the parent queue, i.e., allocating pending messages to consecutive idle subqueues to achieve discrete and uniform message distribution. The quintuple information may include: source MAC address, destination MAC address, source IP address, destination IP address, and IP protocol number.

[0047] In some embodiments, as shown in FIG4 , after the target message and messages in each non-congested sub-queue are fairly scheduled to the parent queue (i.e., step S14), the network congestion handling method may further include the following steps: Step S15′, if the messages in the parent queue do not have an ECN mark, deleting each sub-queue and releasing the resources occupied by each sub-queue.

[0048] If the elephant flow disappears, the CPU of the network congestion processing device will delete the sub-queues and release the resources of each sub-queue, and the relevant messages will be forwarded directly by the main queue.

[0049] To clearly illustrate the solution of the embodiment of the present disclosure, the network congestion handling process is described below with reference to FIG5 using a specific example.

[0050] As shown in Figure 5, suppose queue 7 on port 10 of the switch is congested due to an elephant flow, triggering ECN marking for queue 7. The switch's local CPU polls the ECN counters of each of the eight queues on each port of the switch every second. If the counter value for queue 7 on port 10 increases, the switch enables queue pre-mapping for queue 7 on port 10, allocating 128 idle subqueues, such as 1000-1127, to queue 7 (the parent queue). Queue 7 is mapped to these 128 subqueues using a hash of the packet's 5-tuple information, establishing a mapping relationship between queue 7 and the 128 subqueues. These 128 subqueues are scheduled using the RR algorithm, and all point to queue 7.

[0051] If the elephant flow is mapped to subqueue 1001 and other traffic is mapped to other subqueues, then congestion in queue 7 will trigger subqueue congestion. Using RR fair scheduling, the elephant flow in subqueue 1001 will be congested, while other rat flows will be forwarded normally. Therefore, ECN marking will be triggered in subqueue 1001, setting the ECN field value of the message to 11. This will notify the upstream switch to reduce the traffic flow for the elephant flow in subqueue 1001. Furthermore, the messages in subqueue 1001 (i.e., the elephant flow) are marked yellow and enter queue 7, while the messages in other subqueues (i.e., the rat flows) are marked green and enter queue 7. Queue 7 will prioritize ECN marking for the yellow elephant flows, while the green rat flows will remain unaffected.

[0052] By enabling the queue pre-mapping function, the packets in the queue experiencing network congestion are hashed into 128 sub-queues. The sub-queues are then used to accurately identify the "biggest" flows, reducing the impact of "biggest" flows on "smallest" flows from 100% to less than 1%.

[0053] The disclosed embodiment proposes an improved ECN implementation scheme. When the local CPU of the switch detects network congestion in a queue on the output port of the switch chip, it enables the queue pre-mapping function of this queue (the parent queue), allocates consecutive idle queues as the sub-queues to which this parent queue is mapped, and maps the traffic to each sub-queue using the hash of the packet five-tuple (source and destination MAC address, source and destination IP address, and IP protocol number). Since network congestion in the parent queue will cause back pressure on a sub-queue to cause network congestion, this will trigger ECN for that specific sub-queue, while other sub-queues will not be affected in any way. The CPU of the subsequent switch monitors the network congestion status of each sub-queue. The congested sub-queue will be marked with ECN and the message color will be changed to yellow before entering the parent queue. Since yellow messages have a lower priority than green messages, the parent queue ECN will take effect before the yellow messages. Through the above scheme, ECN can be controlled more accurately, and the mouse flow on the parent queue will not be affected by the elephant flow in any way.

[0054] An embodiment of the present disclosure further provides a network congestion processing device, as shown in FIG6 , comprising: one or more processors 601, a storage device 602, and one or more I / O interfaces 603; wherein the storage device 602 stores one or more programs, and when the one or more programs are executed by the one or more processors, the one or more processors 601 implement the network congestion processing method provided in the aforementioned embodiments; the I / O interface 603 is connected between the processor 601 and the storage device 602, and is configured to implement information interaction between the processor 601 and the storage device 602.

[0055] Among them, the processor 601 is a device with data processing capabilities, including but not limited to a central processing unit (CPU); the storage device 602 is a device with data storage capabilities, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and flash memory (FLASH); the I / O interface (read-write interface) 603 is connected between the processor 601 and the storage device 602, and can realize information interaction between the processor 601 and the storage device 702, including but not limited to a data bus (Bus), etc.

[0056] An embodiment of the present disclosure further provides a computer-readable medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the network congestion processing method provided in the aforementioned embodiments is implemented.

[0057] It will be appreciated by those skilled in the art that all or some of the steps in the method disclosed above, and the functional modules / units in the device can be implemented as software, firmware, hardware, and appropriate combinations thereof. In a hardware implementation, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As is well known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those skilled in the art that communication media generally embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.

[0058] Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted only in a general illustrative sense and not for purposes of limitation. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly indicated, features, characteristics, and / or elements described in conjunction with a particular embodiment may be used alone or in combination with features, characteristics, and / or elements described in conjunction with other embodiments. Therefore, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as set forth in the appended claims.

Claims

1. A method for handling network congestion, comprising: In the case of congestion in a queue, at least two sub-queues are configured for the congested mother queue, and a mapping relationship between each of the sub-queues and the mother queue is established; the queue is a queue of an egress port of a network congestion processing device, and the mother queue is at least one of the queues; Allocating the to-be-processed messages that should enter the parent queue to each of the child queues; Determine a target sub-queue where congestion occurs, and perform an explicit congestion notification (ECN) mark on a target message in the target sub-queue; The target message and messages in each of the sub-queues without congestion are fairly scheduled to the main queue.

2. The method of claim 1, wherein: After the target message in the target sub-queue is marked with an explicit congestion notification (ECN), the target message and messages in each of the sub-queues where congestion does not occur are scheduled before the parent queue, and the method further includes: Setting a first discard priority for the target message, and setting a second discard priority for the messages in each of the sub-queues where no congestion occurs, wherein the first discard priority is lower than the second discard priority; After scheduling the target message and the messages in each of the sub-queues where congestion does not occur to the parent queue, the method further includes: The mother queue performs ECN marking on the messages scheduled to the mother queue according to the discarding priorities from low to high.

3. The method of claim 2, wherein: The discarding priority is represented by color, the first discarding priority is yellow or red, and the second discarding priority is green.

4. The method of claim 1, wherein: The network congestion processing device output port is configured with a counter corresponding to each of the queues one by one, and the queue congestion is determined in the following manner: it is determined that the queue corresponding to the counter with an increased value is congested.

5. The method of claim 1, wherein: The configuring at least two sub-queues for the congested parent queue includes: Configure at least two consecutive idle sub-queues for the target queue where congestion occurs.

6. The method of claim 1, wherein: The fair scheduling of the target message and messages in each of the sub-queues without congestion to the parent queue includes: A polling scheduling algorithm is adopted to fairly schedule the target message and the messages in each of the sub-queues that are not congested to the main queue.

7. The method of claim 1, wherein: The allocating the to-be-processed messages that should enter the parent queue to each of the child queues includes: According to the five-tuple information of the to-be-processed messages that should enter the parent queue, the to-be-processed messages are distributed to each of the sub-queues through a hash algorithm.

8. The method according to any one of claims 1 to 7, wherein: After the target message and the messages in each of the sub-queues where congestion does not occur are fairly scheduled to the parent queue, the method further includes: When the messages in the parent queue have no ECN mark, each of the sub-queues is deleted, and the resources occupied by each of the sub-queues are released.

9. A network congestion processing device, comprising: one or more processors; a storage device having one or more programs stored thereon; When the one or more programs are executed by the one or more processors, the one or more processors implement the network congestion processing method according to any one of claims 1 to 8; One or more I / O interfaces are connected between the one or more processors and the storage device and are configured to implement information interaction between the one or more processors and the storage device.

10. A computer readable medium having a computer program stored thereon, wherein: When the program is executed, the network congestion processing method according to any one of claims 1 to 8 is implemented.

Citation Information

Patent Citations

  • A switch port traffic queue method and apparatus

    CN109246031A

  • Flow control method and device

    CN109818879A

  • Flow regulation and control method and device, network equipment and computer readable storage medium

    CN111371690A

  • Method and device for identifying stream

    CN116132335A

  • Small packet priority congestion control for data center traffic

    US20140164640A1