Network congestion scheduling method, electronic device, storage medium and program product
By identifying and adjusting the working queue routing on the congested links in the network, the network congestion problem is solved and the network transmission efficiency is quickly restored.
Patent Information
- Application Number
- PCT/CN2024/109871
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-28
- Filing Date
- 2024-08-05
- Publication Date
- 2025-04-03
AI Technical Summary
The prior art cannot quickly solve the problem when the network is congested, and usually relies on manual troubleshooting or waiting for the network to recover on its own, resulting in a decrease in network transmission efficiency.
By identifying multiple work queues on the congested link in the network, determining the work queue to be called out, and determining the target traffic forwarding path based on the traffic of the network link, adjusting the routing of the work queue to schedule part of the traffic on the congested link to the low-load link.
It realizes that when a network link congestion occurs, part of the traffic on the congested link is quickly dispatched, network delay is reduced, network processing capacity is improved, and network congestion problems are solved.
Smart Images

Figure CN2024109871_03042025_PF_FP_ABST
Abstract
Description
Network congestion scheduling method, electronic device, storage medium and program product
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] The embodiments of this application are based on and claim the priority of Chinese patent application with application number 202311288644.0 and application date September 28, 2023. The entire contents of the Chinese patent application are hereby introduced into the embodiments of this application as a reference. Technical Field
[0003] The present application relates to the field of communication technology, and in particular to a scheduling method for network congestion, an electronic device, a storage medium, and a program product. Background Art
[0004] With the rapid growth of Internet users, network congestion has emerged. Network congestion occurs when too many data packets arrive within a certain period of time. Network devices, such as routers, are unable to process these packets promptly, causing them to accumulate in buffers and increase network transmission latency. This increased latency, in turn, reduces the network's ability to process data packets. This cycle continues, causing a sharp decline in network transmission efficiency and leading to network congestion.
[0005] Currently, when network congestion occurs, users can only rely on manual troubleshooting and fault location, or wait for the network to recover on its own. Manual troubleshooting takes a long time.
[0006] Summary of the Invention
[0007] The embodiments of the present application provide a network congestion scheduling method, electronic device, storage medium and program product, which can schedule a portion of the traffic on the congested link when link congestion occurs in the network to quickly resolve the problem of network congestion.
[0008] The present application provides a method for scheduling network congestion, which is applied to an electronic device and includes:
[0009] In response to link congestion occurring in the network, determining a plurality of work queues on the congested link in the network;
[0010] Determine a work queue to be called out on the congested link from multiple work queues on the congested link;
[0011] Determining a target traffic forwarding path based on traffic of links in the network, wherein the target traffic forwarding path is used to forward traffic to be transferred out of the work queue;
[0012] Determine a change route for the work queue to be called out based on the target address and target traffic forwarding path of the work queue to be called out;
[0013] The changed route is sent to the target source LAN access device of the work queue to be called out, wherein the target source LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
[0014] The present invention provides a network congestion scheduling device, including:
[0015] a first determining module configured to determine a plurality of work queues on a congested link in the network in response to link congestion occurring in the network;
[0016] A second determining module is configured to determine a waiting-to-be-called work queue on the congested link from a plurality of work queues on the congested link;
[0017] a third determining module configured to determine a target traffic forwarding path based on traffic of a link in the network, wherein the target traffic forwarding path is used to forward traffic to be transferred out of the work queue;
[0018] A fourth determining module is configured to determine a change route of the work queue to be called out based on a target address and a target traffic forwarding path of the work queue to be called out;
[0019] The sending module is configured to send the changed route to the target source end LAN access device of the work queue to be called out, wherein the target source end LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
[0020] An embodiment of the present application provides an electronic device, comprising:
[0021] a memory for storing computer-executable instructions;
[0022] The processor is configured to implement the network congestion scheduling method provided in the embodiment of the present application when executing the computer executable instructions stored in the memory.
[0023] An embodiment of the present application provides a computer-readable storage medium storing a computer program or computer-executable instructions. When the computer program or computer-executable instructions are executed by a processor, the method for scheduling network congestion provided in the embodiment of the present application is implemented.
[0024] An embodiment of the present application provides a computer program product, including a computer program or computer-executable instructions. When the computer program or computer-executable instructions are executed by a processor, the network congestion scheduling method provided in the embodiment of the present application is implemented.
[0025] The embodiments of the present application have the following beneficial effects:
[0026] When network congestion occurs, based on the traffic of the links in the network, a target traffic forwarding path for forwarding the traffic to be transferred out of the work queue is determined, thereby ensuring that the target traffic forwarding path can carry part of the traffic on the congested link, and based on the target address of the work queue to be transferred out and the target traffic forwarding path, a change route for the work queue to be transferred out is determined, and by sending the route to the target source LAN access device, the target traffic forwarding path is controlled to output part of the traffic on the congested link, so that the network congestion problem can be solved. In addition, when link congestion occurs in the network, the embodiment of the present application starts to schedule part of the traffic on the congested link from the target source LAN access device, thereby ensuring that the network congestion problem can be quickly solved. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] FIG1 is a schematic diagram of the architecture of a business system provided in an embodiment of the present application;
[0028] FIG2A is a first structural diagram of an electronic device provided in an embodiment of the present application;
[0029] FIG2B is a second structural diagram of an electronic device provided in an embodiment of the present application;
[0030] FIG3A is a schematic diagram of a first flow chart of a method for scheduling network congestion provided in an embodiment of the present application;
[0031] FIG3B is a schematic diagram of a second flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0032] FIG3C is a schematic diagram of a third flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0033] FIG3D is a schematic diagram of a fourth flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0034] FIG3E is a fifth flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0035] FIG3F is a sixth flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0036] FIG3G is a seventh flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0037] FIG3H is a schematic diagram of an eighth flow chart of the method for scheduling network congestion provided in an embodiment of the present application;
[0038] FIG4A is a first schematic diagram of a network architecture provided by an embodiment of the present application;
[0039] FIG4B is a second schematic diagram of a network architecture provided in an embodiment of the present application;
[0040] FIG5 is a schematic diagram of high performance computing (HPC) provided in an embodiment of the present application;
[0041] FIG6 is a schematic diagram of a classic fat-tree network architecture provided in an embodiment of the present application;
[0042] FIG7 is a schematic diagram of an HPC two-layer network architecture when load balancing is provided in an embodiment of the present application;
[0043] FIG8 is a schematic diagram of an HPC two-layer network architecture when network congestion occurs, provided by an embodiment of the present application;
[0044] FIG9 is a daily traffic curve of the LA to LC link provided in an embodiment of the present application;
[0045] FIG10 is an ECN daily statistical curve of a link from LA to LC provided in an embodiment of the present application;
[0046] FIG11 is a network structure diagram of link congestion after a LC to LA downlink failure according to an embodiment of the present application;
[0047] FIG12 is a schematic diagram of a three-tier HPC network architecture when load balancing is provided in an embodiment of the present application;
[0048] FIG13 is a schematic diagram of a three-layer network architecture for detouring after a downlink failure from LC to LA provided in an embodiment of the present application;
[0049] FIG14 is a schematic diagram of an HPC three-layer network architecture when network congestion is provided in an embodiment of the present application;
[0050] FIG15 is a schematic diagram of an HPC three-layer network architecture after a secondary failure according to an embodiment of the present application;
[0051] FIG16 is a curve showing a change in ECN statistics count of a port provided by an embodiment of the present application;
[0052] FIG17 is a flowchart of a method for scheduling network congestion provided in an embodiment of the present application;
[0053] FIG18 is a flowchart of a method for scheduling congestion in a Layer 2 network architecture according to an embodiment of the present application;
[0054] FIG19 is a schematic diagram of a two-layer network architecture provided in an embodiment of the present application;
[0055] FIG20 is a flowchart of a method for scheduling congestion in a three-layer network architecture according to an embodiment of the present application;
[0056] FIG21 is a curve showing changes in ECN statistical counts after adopting the scheduling method provided in an embodiment of the present application. DETAILED DESCRIPTION
[0057] In order to make the purpose, technical solutions and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limiting this application. All other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application.
[0058] In the following description, the terms "first\second" are only used to distinguish similar objects and do not represent a specific order for the objects. It can be understood that "first\second" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0059] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0060] Before further describing the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations.
[0061] 1) High Performance Computing (HPC) provides more powerful computing performance than traditional computers or servers by aggregating computing power. It is mainly used in scientific research, weather forecasting, artificial intelligence (AI), image processing and other fields.
[0062] 2) Graphics Processing Unit (GPU), also known as a graphics card or graphics card. This is a microprocessor specifically designed to perform image and graphics-related operations on personal computers, servers, and game consoles. It is also widely used in scientific computing, artificial intelligence, and other fields.
[0063] 3) Remote Direct Memory Access (RDMA) is a technology that bypasses the remote host's operating system kernel to access data in its memory. By bypassing the operating system, it not only saves a significant amount of central processing unit (CPU) resources, but also improves system throughput and reduces network communication latency. It is particularly suitable for scenarios involving massively parallel computing, such as AI.
[0064] 4) InfiniBand (IB) is a computer network communication standard for high-performance computing, offering extremely high throughput and low latency. InfiniBand can be considered a network specifically designed for RDMA, similar to today's mainstream Ethernet, but the two are incompatible.
[0065] 5) Remote Direct Data Access over Converged Ethernet (RoCE) is an RDMA technology based on traditional Ethernet networks. Based on RoCE, the high-speed, ultra-low-latency, and extremely low-CPU-utilization RDMA technology can be deployed on the most widely used Ethernet network.
[0066] 6) Queue Pair (QP): Work queues can be paired. A work queue pair is a combination of a send work queue (SQ) and a receive work queue (RQ). The work queue is the basic unit of RDMA network communication.
[0067] 7) Explicit Congestion Notification (ECN). When network congestion occurs, the TCP protocol actively discards packets and then ensures reliable transmission through retransmission and acknowledgment. ECN reduces packet loss and retransmissions, allowing the sender to proactively reduce the packet sending rate.
[0068] 8) Sampled Flow (sFlow) is a network traffic detection technology based on packet sampling, primarily used for statistical analysis of network traffic. sFlow provides interface-based traffic analysis, enabling real-time monitoring of traffic conditions and the identification of abnormal traffic and the source of attack traffic.
[0069] 9) High-speed data collection technology (telemetry) is a technology for remotely collecting high-speed data from switches. The switch uses push mode to periodically and proactively send information such as port traffic statistics, CPU and memory data, and other information to the collection module. Compared to the question-and-answer interaction of traditional pull modes such as SNMP collection, this provides more real-time and high-speed data collection.
[0070] 10) Border Gateway Protocol (BGP): A dynamic routing protocol that ensures reachable routes between autonomous systems (ASs) and selects the best route. It is the foundation of Internet communications.
[0071] 11) Artificial Intelligence (AI) refers to a large and complex neural network that requires increasing the depth and width of the model by storing more parameters to improve the model's performance. The parameters start from tens of billions, and it is used to train large amounts of data and produce high-quality prediction results.
[0072] Embodiments of the present application provide a method, device, electronic device, computer-readable storage medium, and computer program product for scheduling network congestion, which can schedule a portion of the traffic on the congested link when link congestion occurs in the network to solve the problem of network congestion.
[0073] The following describes exemplary applications of the electronic device provided by the embodiments of the present application. The electronic device provided by the embodiments of the present application can be implemented as various types of computer devices including a controller, such as a server or a terminal. The following describes exemplary applications when the electronic device is implemented as a server.
[0074] Referring to FIG. 1 , FIG. 1 is a schematic diagram of the architecture of a business system 10 provided in an embodiment of the present application. The business system 10 may include: a source server 100, a destination server 200, a network 300, and a server 400. The source server 100 communicates with the destination server 200 via the network 300, wherein the network 300 may be a wide area network or a local area network, or a combination of the two. The communication process between the source server 100 and the destination server 200 will be described below in conjunction with FIG. 2A . The communication process between the source server 100 and the destination server 200 can also be understood as the data transmission process between the source server 100 and the destination server 200.
[0075] Source server 100 may include a network interface card 104 and a main processing system 108. Main processing system 108 includes a host 106 (or CPU) and host memory 107 (other conventional computer system hardware, such as a hard disk and bus, are not shown in FIG. 2A ). Main processing system 108 also runs various software components, such as an operating system 105 and an application 101 running on operating system 105. Destination server 200 includes a network interface card 204 and a main processing system 208. Main processing system 208 includes a host 206 (CPU) and host memory 207. Main processing system 208 also runs various software components, such as an operating system 205 and an application 201 running on operating system 205.
[0076] The network interface card 104 (also known as a network adapter or communication adapter) contains a cache 102. Within cache 102, queue pairs can be configured, referred to as work queues (QPs). A QP is a virtual interface provided by the network interface card to an application. It consists of a send work queue (Send Work Queue) and a receive work queue (Receive Work Queue). The send work queue and receive work queue are always generated together and appear in pairs, remaining paired for the duration of their existence. The instructions sent by an application to the network interface card are called work queue elements (WQEs). Before application 101 on source server 100 sends data to application 201 on destination server 200 via RDMA, source server 100 and destination server 200 first establish a QP pair, specifying that QP 103 and QP 203 will jointly implement data transmission between application 101 and application 201, and then add the corresponding queue pair identifier to the data subsequently sent. Data is typically transmitted in the form of messages. Therefore, in some application scenarios, the data transmitted between the source server 100 and the destination server 200 may also be referred to as messages. As data travels from the source server 100 to the destination server 200 via the multi-path network 300, routing devices in the network select a forwarding path based on the five-tuple information in the data, thereby enabling data transmission between the source server 100 and the destination server 200.
[0077] Server 400 monitors the data transmission status of each link in network 300. Once congestion occurs on a link in network 300, server 400, in response to the link congestion, identifies multiple work queues on the congested link in the network. From the multiple work queues on the congested link, server 400 identifies a work queue to be called out on the congested link. Based on the traffic on the links in the network, server 400 determines a target traffic forwarding path for forwarding the traffic of the work queue to be called out. Based on the target address and target traffic forwarding path of the work queue to be called out, server 400 determines a route change for the work queue to be called out. Server 400 then sends the route change to network 300. Based on the guidance of the route change, network 300 transmits the traffic (data) output by source server 100 to destination server 200, bypassing the congested link. This allows for scheduling a portion of the traffic on the congested link when network link congestion occurs, quickly resolving the network congestion problem.
[0078] In some embodiments, the server can implement the network congestion scheduling method provided in the embodiment of the present application by running various computer executable instructions or computer programs. For example, computer executable instructions can be commands, machine instructions or software instructions at the microprogram level. The computer program can be a native program or software module in the operating system; it can be a local (Native) application (APPlication, APP), that is, a program that needs to be installed in the operating system to run, such as an instant messaging APP; it can also be a small program that can be embedded in any APP, that is, a program that can be run only by downloading it to a browser environment. In short, the above-mentioned computer executable instructions can be instructions in any form, and the above-mentioned computer program can be an application, module or plug-in in any form.
[0079] Referring to FIG2B , FIG2B is a schematic diagram of the structure of an electronic device provided in an embodiment of the present application. Taking server 400 as an example, the electronic device 400 shown in FIG2B includes: at least one processor 410, a memory 450, and at least one network interface 420. The various components in the destination server 200 are coupled together via a bus system 440. It is understood that the bus system 440 is used to achieve connection and communication between these components. In addition to including a data bus, the bus system 440 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 440 in FIG2B.
[0080] The processor 410 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.
[0081] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical drives, etc. The memory 450 may optionally include one or more storage devices that are physically remote from the processor 410.
[0082] The memory 450 includes volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 450 described in the embodiments of the present application is intended to include any suitable type of memory.
[0083] In some embodiments, the memory 450 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplified below.
[0084] Operating system 451, including system programs for processing various basic system services and performing hardware-related tasks, such as the framework layer, core library layer, and driver layer, which are used to implement various basic services and process hardware-based tasks;
[0085] The network communication module 452 is used to reach other electronic devices via one or more (wired or wireless) network interfaces 420 . Exemplary network interfaces 420 include Bluetooth, Wireless LAN (WiFi), and Universal Serial Bus (USB).
[0086] In some embodiments, the apparatus provided in the embodiments of the present application can be implemented in software. FIG2B shows a network congestion scheduling apparatus 453 stored in memory 450. The apparatus 453 can be software in the form of a program or plug-in, and includes the following software modules: a first determination module 4531, a second determination module 4532, a third determination module 4533, a fourth determination module 4534, and a sending module 4535. These modules are logical and can be arbitrarily combined or further separated according to the functions implemented. The functions of each module will be described below.
[0087] The network congestion scheduling method provided by the embodiment of the present application will be described in conjunction with exemplary applications and implementations of electronic devices provided by the embodiment of the present application, and will be described in conjunction with the steps shown in Figure 3A. The network congestion scheduling method includes steps 101 to 105.
[0088] In step 101 , in response to link congestion occurring in the network, a plurality of work queues on the congested link in the network are determined.
[0089] In the embodiment of the present application, the occurrence of link congestion in the network can be understood as the occurrence of congestion in a link in the network. Congestion can be understood as the traffic required to be transmitted by the link exceeding the link load, resulting in traffic accumulation on the link, resulting in a decrease in the performance of the entire network.
[0090] In the embodiments of the present application, a link can be understood as a physical line between two nodes. A node is a network device in a network. Network devices may include, but are not limited to, a local area network access device (LA), a local area network core device (LC), and a super local area network access device (Super-LC). Accordingly, the links involved in the embodiments of the present application may include: LA=>LC, LC=>Super-LC, Super-LC=>LC, LC=>LA, LA=>Super-LC, Super-LC=>LA, and Super-LC=>LC.
[0091] Among them, the congested link is a link in the network where congestion occurs. The embodiment of the present application does not make specific restrictions on the implementation method of "detecting link congestion in the network". When link congestion occurs in the network, the explicit congestion notification (ETC) count of the link will be at a higher value (that is, the ETC count is greater than or equal to the ECN count threshold), wherein the ECN count threshold can be a pre-set threshold and can be adjusted according to actual needs. As an implementation method, the congestion of the link can be determined by the ETC count. Exemplarily, if the ETC count is greater than or equal to the ECN count threshold, the link congestion can be determined. As an implementation method, the congestion of the link can be determined by the load condition of the link. Among them, the embodiment of the present application only exemplarily introduces two implementation methods of "determining the congestion condition of the link", and the above implementation methods do not constitute specific restrictions.
[0092] The embodiments of this application do not specifically limit the entity that performs the action of "monitoring link congestion." As one implementation, a detection module can be used to detect link congestion. Upon determining that a link is congested, the detection module sends an ECN congestion notification to the server. Alternatively, the detection module can be integrated within the server, allowing the server to detect link congestion.
[0093] In the embodiment of the present application, a link can correspond to multiple work queues. The embodiment of the present application does not specifically limit the number of work queues on the link, and the number of work queues on the link can be configured according to demand. For example, there can be 4 work queues on a link.
[0094] Among them, the work queue (QP, Queue Pair) includes a send work queue (Send Work Queue) and a receive work queue (Receive Work Queue). The send work queue and the receive work queue are generated together and appear in pairs. The send work queue and the receive work queue will remain in a paired state during their existence.
[0095] In step 102, a work queue to be called out on the congested link is determined from multiple work queues on the congested link.
[0096] The work queue to be called out is one of the multiple work queues.
[0097] Referring to FIG. 3B , FIG. 3B shows that step 102 in FIG. 3A can be implemented through the following steps 1021 to 1022 , which are described in detail below.
[0098] In step 1021 , the flow parameters of each work queue on the congested link within a plurality of sampling periods are determined.
[0099] The embodiments of this application do not specifically limit the entity that performs the action of collecting the work queue's traffic. As an implementation method, a flow collection module can be used to collect the work queue's traffic. The flow collection module transmits the collected work queue's traffic to a server, allowing the server to read the traffic parameters of the traffic. As an implementation method, the flow collection module can be integrated within the server, that is, the server independently collects the work queue's traffic and reads the traffic parameters.
[0100] The flow parameters involved in the embodiments of the present application include one of the following: a peak value of the flow; an average value of the flow; a flow value obtained by weighted summation of the flow based on the duration of the flow in multiple sampling periods.
[0101] In the embodiment of the present application, the traffic collected during multiple sampling periods can be counted, and then the traffic collected during multiple sampling periods can be averaged to obtain the average traffic value of the work queue. The average processing can include but is not limited to: arithmetic mean, geometric mean, etc.
[0102] The average traffic value in the embodiment of the present application can characterize the congestion of the work queue. Based on the average traffic value, the more congested work queue to be called out among multiple work queues can be determined, and the traffic of the work queue to be called out is subsequently output through the target traffic forwarding path, thereby effectively alleviating network congestion.
[0103] In an embodiment of the present application, a curve showing flow rate changes over time may be drawn based on the flow rate collected during a sampling period, and then the peak value of the flow rate during the sampling period may be determined based on the curve.
[0104] The peak value of the traffic in the embodiment of the present application can characterize the sudden congestion in the work queue. Based on the peak value of the traffic, the work queue to be called out that is suddenly congested among multiple work queues can be determined, and the traffic of the work queue to be called out is subsequently output through the target traffic forwarding path, thereby accurately alleviating network congestion.
[0105] In an embodiment of the present application, the durations corresponding to the flows collected in multiple sampling periods can be counted, the durations corresponding to the flows in multiple sampling periods can be mapped, the weight of the flows in each sampling period can be obtained, and based on the weight of the flows in each sampling period, the flows can be weighted and summed to obtain the weighted summed flow value of the work queue in one sampling period.
[0106] The weighted summed traffic value in the embodiment of the present application can accurately characterize the congestion of the work queue (hereinafter referred to as "work queue congestion situation" for the convenience of description). Based on the weighted summed traffic value, the work queue to be called out of the multiple work queues that need to forward traffic can be determined, thereby effectively alleviating network congestion.
[0107] Among them, the sampling period can be a pre-set period for sampling the traffic of the work queue, which can be adjusted according to actual needs. The embodiment of the present application does not specifically limit the time of the multiple sampling periods. As an implementation method, the multiple sampling periods can be the N sampling periods closest to the location where link congestion is determined to occur in the network, where N is a positive integer greater than 1. As an implementation method, the multiple sampling periods can be multiple sampling periods within a set time. For example, traffic data can be collected between 8:00 and 10:00 every day.
[0108] In step 1022, based on traffic parameters, a work queue to be called out is screened from multiple work queues on the congested link.
[0109] In an embodiment of the present application, the congested link includes multiple work queues, among which the traffic of some work queues needs to be transferred to the target traffic forwarding path for forwarding. In this embodiment of the present application, the work queue that needs to forward traffic on the congested link is called the work queue to be transferred out.
[0110] The embodiments of the present application do not make specific limitations on the implementation method of screening out the work queues to be called out from multiple work queues on a congested link based on traffic parameters. For example: as an implementation method, a work queue with a larger average traffic value (greater than a traffic average value threshold, the traffic average value threshold can be a preset threshold, which can be adjusted according to actual needs) can be screened out as the work queue to be called out. As an implementation method, a work queue with a peak traffic value greater than a peak threshold can be screened out from queues of multiple actions as the work queue to be called out. The peak threshold can be a preset threshold, which can be adjusted according to actual needs. As an implementation method, a work queue with a weighted traffic value greater than a traffic value threshold can be screened out as the work queue to be called out. The traffic value threshold can be a preset threshold, which can be adjusted according to actual needs.
[0111] In some implementations, the load rate of each work queue on the congested link may also be obtained. Based on the load rate, the work queue to be transferred out is screened from multiple work queues on the congested link. For example, the work queue on the congested link with the highest load rate may be used as the work queue to be transferred out.
[0112] The embodiments of the present application are merely exemplary introductions of several implementation methods for determining a work queue to be called out on a congested link from multiple work queues on the congested link, and the above implementation methods do not constitute specific limitations.
[0113] In step 103, a target traffic forwarding path is determined based on traffic of links in the network, wherein the target traffic forwarding path is used to forward traffic to be transferred out of the work queue.
[0114] In the embodiments of the present application, a path can be understood as a passage connecting a source server and a destination server, used for traffic transmission. The LA connected to the source server on the path is referred to as the source LA, and the LA connected to the destination server on the path is referred to as the destination LA. For example, referring to Figure 4A, LA-1 and LA-2 are source LAs, and LA-3 and LA-4 are destination LAs.
[0115] The target traffic forwarding path is the path used to forward traffic to be removed from the work queue. One end of the target traffic forwarding path is connected to the source server of the work queue, and the other end of the target traffic forwarding path is connected to the destination server of the work queue.
[0116] For example, referring to Figure 4A , the original path of the work queue to be called out is: LA-1=>LC-1=>LA-3. The source server of the work queue to be called out is the source server (e.g., IP: 1.1.1.1), and the destination server of the work queue to be called out is the destination server (e.g., IP: 2.2.2.2).
[0117] Continuing with the above example, LA-1 => LC-2 => LA-3 can be used as the target forwarding path for traffic to be removed from the work queue. The source server for LA-1 => LC-2 => LA-3 is the source server (IP: 1.1.1.1), and the destination server for the LA-1 => LC-2 => LA-3 path is the destination server (IP: 2.2.2.2).
[0118] An embodiment of the present application also provides an implementation method for determining a target traffic forwarding path, which can be seen in FIG3C . FIG3C shows that before step 103 in FIG3A , steps 31 to 32 can be executed, and step 103 shown in FIG3A can be implemented by executing step 1031 , which is described in detail below.
[0119] In step 31, a first work queue having the same target address as the work queue to be called out is screened out from the link from the target source LAN access device to the LAN core device.
[0120] The target source LAN access device is a LAN access device (e.g., a switch at the access layer) connected to a source server for outputting traffic from the work queue to be transferred out. On the link from the target source LAN access device (target source LA) to the LAN core device (LC), the first work queue with the same target address as the work queue to be transferred out is selected for the following two reasons.
[0121] The first aspect to consider is: the target address is used to indicate that the traffic reaches the specified destination server. In the embodiment of the present application, the work queue with the same target address as the work queue to be called out is first determined. For the convenience of description, the embodiment of the present application refers to the work queue with the same target address as the work queue to be called out as the second work queue. The second work queue has the same target address as the work queue to be called out, so the traffic of the second work queue and the traffic of the work queue to be forwarded will go to the same destination server. Therefore, the traffic of the second work queue can be forwarded to the destination server together with the traffic of the work queue to be forwarded.
[0122] Secondly, on the link from the target source LAN access device to the LAN core device, the first work queue with the same target address as the work queue to be called out is screened out, which can ensure that the traffic output from the target source LAN access device by the first work queue is forwarded, thereby reducing the risk of secondary congestion.
[0123] The embodiments of the present application are not limited to filtering out a first work queue having the same target address as the work queue to be called out on a link from a target source LAN access device to a LAN core device. In some implementations, a first work queue having the same target address as the work queue to be called out can be filtered out on other links, for example, filtering out a first work queue having the same target address as the work queue to be called out on a link from another LAN access device to a LAN core device.
[0124] For example, referring to FIG. 4A , assuming that the source server [IP: 1.1.1.1] is the source server that outputs the traffic to be transferred out of the work queue, the target source-end LAN access devices may include: LA-1 and LA-2.
[0125] In the embodiment of the present application, the LAN core device is a device connected to the LAN access device, that is, a switch located at the aggregation layer. For example, please refer to Figure 4A. The LAN core device may include: LC-1 and LC-2.
[0126] It should be noted that the first work queue involved in the embodiments of the present application includes a work queue to be called out. For example, work queue 1 is a work queue to be called out, and the work queues with the same destination address as work queue 1 include: work queue 2, work queue 3, and work queue 4. Then the first work queue includes: work queue 1, work queue 2, work queue 3, and work queue 4.
[0127] In step 32, the sum of the traffic of the first work queue is determined as the total forwarding traffic.
[0128] The traffic of the first work queue involved in the embodiment of the present application may include but is not limited to: historical traffic, real-time traffic, and traffic after mapping historical traffic and real-time traffic.
[0129] The implementation method for determining the total forwarding traffic in the embodiments of the present application is not specifically limited. As an implementation method, the real-time traffic of the first working queue can be summed to determine the total forwarding traffic. As an implementation method, the historical traffic of the first working queue can be summed to determine the total forwarding traffic. As an implementation method, the total forwarding traffic can be determined as the weighted sum of the historical traffic of the first working queue and the real-time traffic of the first working queue.
[0130] The embodiment of the present application also provides an implementation method for determining the target traffic forwarding path, which can be seen in Figure 3C. Step 103 shown in Figure 3A can be implemented by executing step 1031, which is described in detail below.
[0131] In step 1031 , a target traffic forwarding path for forwarding traffic to be transferred out of the work queue is determined based on the total forwarding traffic and the traffic of links in the network.
[0132] The embodiment of the present application does not specifically limit the number of target traffic forwarding paths for forwarding traffic to be transferred out of the work queue. As an implementation method, a target traffic forwarding path can be obtained, and the traffic to be transferred out of the work queue can be forwarded based on this target traffic forwarding path.
[0133] As an implementation method, multiple target traffic forwarding paths may be obtained, and subsequently one target traffic forwarding path for forwarding traffic to be transferred out of the work queue is selected from the multiple target traffic forwarding paths.
[0134] Please refer to Figure 3D, which shows that step 1031 in Figure 3C can be implemented by executing steps 10311 to 10312, which are described in detail below.
[0135] In step 10311, based on the load rates of multiple candidate links from the LAN access device to the LAN core device in the network, multiple candidate links are screened to obtain a candidate link set.
[0136] The candidate link set includes at least one candidate link.
[0137] The candidate link involved in the embodiments of the present application can be understood as a link between a source LAN access device (source LA) and a LAN core device (LC) in the network. The source server connected to the source LAN access device of the candidate link is the source server corresponding to the work queue to be called out, so that the target traffic forwarding path subsequently generated based on the candidate link can forward traffic from the work queue to be called out.
[0138] The present application also provides an implementation method for determining a candidate link set. See FIG3E . Step 10311 shown in FIG3D can be implemented by executing step 103111 or step 103112 , as described in detail below.
[0139] In step 103111, when the load rate of any candidate link is less than the load rate threshold, the set formed by any candidate links is determined as the candidate link set.
[0140] This embodiment of the present application does not impose any specific limitation on the load rate of the candidate links involved in step 103111.
[0141] As an implementation, the load rate of a candidate link may include the real-time load rate of the candidate link. The real-time load rate can represent the real-time load of the candidate link. Determining a set of candidate links whose real-time load rates are less than a load rate threshold as a candidate link set ensures that all candidate links in the candidate link set are real-time low-load links. Because all candidate links in the candidate link set are real-time low-load links, network load balancing can be achieved by using these real-time low-load links to forward traffic to be transferred out of the work queue.
[0142] As an implementation, the load rate of a candidate link can include the candidate link's historical load rate. This historical load rate can represent the stable and accurate load status of the candidate link. Determining a set of candidate links whose historical load rates are less than a load rate threshold as a candidate link set ensures that all candidate links in the candidate link set are low-load links. Because all candidate links in the candidate link set are real-time low-load links, network load balancing can be achieved by using these real-time low-load links to forward traffic waiting to be transferred out of the work queue.
[0143] As an implementation method, the load rate of a candidate link may include: a load rate obtained by mapping a historical load rate to a real-time load rate. The mapped load rate can accurately represent the load condition of the candidate link in combination with the real-time load rate and the historical load rate. The set of candidate links whose mapped load rates are less than a load rate threshold is determined as the candidate link set, which can ensure that all candidate links in the candidate link set are low-load links. Since all candidate links in the candidate link set are real-time low-load links, using real-time low-load links to forward traffic to be transferred out of the work queue can achieve network load balancing.
[0144] The embodiments of the present application do not specifically limit the mapped load rate. For example, the mapped load rate may be a load rate that is a linear combination of the historical load rate and the real-time load rate. For example, the mapped load rate may be a load rate that is a weighted average of the historical load rate and the real-time load rate.
[0145] The embodiment of the present application also provides an implementation method for mapping the historical load rate to the real-time load rate. For example, the load rate after mapping the historical load rate to the real-time load rate is determined in the following manner: when the historical load rate is less than the first load rate threshold, and the real-time load rate is less than the second load rate threshold, the historical load rate and the real-time load rate are weighted and summed to obtain the load rate obtained after mapping the historical load rate to the real-time load rate. The embodiment of the present application does not make specific restrictions on the numerical values of the above-mentioned first load rate threshold and the second load rate threshold. For example, the first load rate threshold can be 30%, and the second load rate threshold can be 50%.
[0146] This implementation performs a weighted summation of the historical load rate and the real-time load rate to obtain a load rate that maps the historical load rate to the real-time load rate. This mapped load rate accurately represents the load of the candidate links. The set of candidate links whose mapped load rates are less than the load rate threshold is defined as the candidate link set, ensuring that all candidate links in the candidate link set are low-load links. Because all candidate links in the candidate link set are real-time low-load links, network load balancing can be achieved by using these real-time low-load links to forward traffic waiting to be transferred out of the work queue.
[0147] The embodiment of the present application does not impose a specific limitation on the numerical value of the load rate threshold in step 103111. The load rate threshold can be set according to the actual application situation. In some implementations, the load rate threshold can be a constant value. For example, the load rate threshold can be 30%, 50%, etc., or it can be a dynamic value adjusted according to demand. In some implementations, the load rate threshold can be a variable. For example, the load rate threshold can be determined based on the total forwarding traffic. For example, the total forwarding traffic is inversely proportional to the load rate. The larger the total forwarding traffic, the smaller the load rate threshold can be set to ensure that the candidate links in the candidate link set can carry the total forwarding traffic.
[0148] In this implementation, a set formed by any candidate links with a load rate less than a load rate threshold is determined as a candidate link set to ensure that the candidate links in the candidate link set can carry the total forwarding traffic.
[0149] In step 103112, the plurality of candidate links are sorted in ascending order based on their load rates, and a set of candidate links that are ranked at the top in the sorting result is determined as the candidate link set.
[0150] The load rate includes one of the following: a historical load rate over multiple sampling periods; a real-time load rate; or a load rate obtained by mapping the historical load rate to the real-time load rate. In this implementation, the load rates of multiple candidate links are arranged in ascending order, and the set of candidate links ranked first is used to determine the candidate link set. In this implementation, the candidate links ranked first can be understood as those with low load rates.
[0151] In this implementation, the candidate link set includes some candidate links with low load rates, and the purpose of load balancing can be achieved by forwarding traffic using the target traffic forwarding path obtained based on these candidate links.
[0152] It is worth noting that the embodiments of the present application are merely exemplary introductions of several implementation methods for determining a candidate link set. The above implementation methods do not constitute specific limitations. In actual applications, the above methods can be used to determine a candidate link set, or other methods can be used to determine a candidate link set.
[0153] Following step 10311 , in step 10312 , based on the total forwarding traffic and the candidate link set, a target traffic forwarding path for forwarding traffic to be transferred out of the work queue is determined.
[0154] In this implementation, the total forwarding traffic is taken into consideration during the process of determining the target traffic forwarding path, thereby ensuring that the selected (determined) target traffic forwarding path can carry the total forwarding traffic.
[0155] The embodiment of the present application also provides an implementation method for determining a change route of a work queue to be called out. Referring to FIG3F , FIG3F shows that step 10312 in FIG3C can be iteratively processed, and the iterative processing can be implemented by executing steps 103121 to 103123, as described in detail below.
[0156] In step 103121, a target candidate link is selected from at least one candidate link included in the candidate link set.
[0157] The embodiments of the present application do not specifically limit the method for selecting the target candidate link. As an implementation method, at least one candidate link with the lowest load rate can be selected from the candidate link set as the target candidate link. As an implementation method, a candidate link can be randomly selected from the candidate link set as the target candidate link.
[0158] When the remaining bandwidth of any link in the downlink of the target candidate link cannot carry the total forwarding traffic, it is necessary to re-determine the target candidate link. This embodiment of the application also provides an implementation method for determining the candidate link. After step 103121, step 103122a can be executed, which is described in detail below.
[0159] In step 103122a, when the remaining bandwidth of any link in the uplink of the target candidate link cannot carry the total forwarding traffic, or the remaining bandwidth of any link in the downlink of the target candidate link cannot carry the total forwarding traffic, the target candidate link is deleted from the candidate link set to obtain a new candidate link set.
[0160] Among them, the embodiment of the present application can convert the remaining bandwidth into traffic through the conversion relationship between bandwidth and traffic, and then compare the traffic converted from the bandwidth with the total forwarding traffic. When the traffic converted from the bandwidth is greater than or equal to the total forwarding traffic, it means that the remaining bandwidth can carry the total forwarding traffic; when the traffic converted from the bandwidth is less than the total forwarding traffic, it means that the remaining bandwidth cannot carry the total forwarding traffic.
[0161] In the embodiment of the present application, the new candidate link set is used to continue iteration, that is, step 103121 is continued based on the new candidate link set. When the remaining bandwidth of any link in the downlink cannot carry the total forwarding traffic, it is determined that the downlink link cannot carry the total forwarding traffic. In this case, a new target candidate link is selected from the candidate link set.
[0162] The following describes the method for selecting the target candidate link in conjunction with Figure 4A. The candidate link set is [LA-1=>LC-2, LA-1=>LC-3, LA-1=>LC-4]. The downlink links of LA-1=>LC-2 (target candidate link) include: LC-2=>LA-3, LC-2=>LA-4. If the remaining bandwidth of LC-2=>LA-3 and LC-2=>LA-4 cannot carry the total forwarding traffic, LA-1=>LC-2 is deleted from [LA-1=>LC-2, LA-1=>LC-3, LA-1=>LC-4] (candidate link set) to obtain [LA-1=>LC-3, LA-1=>LC-4] (new candidate link set). Then, the target candidate link is selected from [LA-1=>LC-3, LA-1=>LC-4].
[0163] In an embodiment of the present application, if it is determined that the remaining bandwidth of any link in the uplinks including the target candidate link is insufficient to carry the total forwarding traffic, or the remaining bandwidth of any link in the downlinks of the target candidate link is insufficient to carry the total forwarding traffic, another candidate link is selected from the previously constructed set of candidate links as the target candidate link. The process of reselecting the target candidate link eliminates the need to determine the candidate link, shortening the time spent determining the target candidate link to a certain extent and ensuring efficient traffic scheduling.
[0164] In step 103122b, when the remaining bandwidth of each link in the uplink of the target candidate link is capable of carrying the total forwarding traffic, and the remaining bandwidth of each link in the downlink of the target candidate link is capable of carrying the total forwarding traffic, the path formed by the target candidate link and the downlink will be determined as the target traffic forwarding path.
[0165] In the embodiment of the present application, the remaining bandwidth of each link in the uplink containing the target candidate link is first determined to be sufficient to carry the total forwarding traffic. If the remaining bandwidth of each link in the uplink containing the target candidate link is sufficient to carry the total forwarding traffic, the remaining bandwidth of each link in the downlink is then determined to be sufficient to carry the total forwarding traffic. The uplink and downlink are described below with reference to specific figures.
[0166] When the target candidate link is located in a two-layer architecture, the uplink includes: the target candidate link. The downlink includes: the link from the LAN core device (LA) to the destination LAN access device (destination LA). For example, referring to Figure 4A, the uplink is: LA-1=>LC-1 (target candidate link), and the downlink may include: LC-1=>LA-3, LC-1=>LA-4. In Figure 4A, LA-3 and LA-4 are connected to the destination server, and LA-3 and LA-4 are the destination LAN access devices.
[0167] When the target candidate link is located in a three-layer architecture, the uplink links include: the target candidate link, the link from the LAN core device (LC) to the super LAN core device (Super-LC) on the path to the work queue to be called out. The downlink links include: the link from the super LAN core device (Super-LC) to the downlink LAN core device (downlink LC), and the link from the downlink LAN core device (downlink LC) to the destination LAN access device (destination LA). For example, referring to Figure 4B, the uplink links include: LA-1=>LC-1 (target candidate link), LC-1=>Super-LC-1, and LC-1 to Super-LC-2. The downlink of LA-1=>LC-1 can include: Super-LC-1=>LC-2, Super-LC-1=>LC-3, Super-LC-1=>LC-4, Super-LC-2=>LC-2, Super-LC-2=>LC-3, Super-LC-2=>LC-4, LC-2=>LA-3, LC-2=>LA-4, LC-3=>LA-3, LC-3=>LA-4, LC-4=>LA-3, LC-4=>LA-4.
[0168] The following describes the process of generating the target traffic forwarding path, using Figure 4A. The downlinks of LA-1 => LC-2 (the target candidate link) include LC-2 => LA-3 and LC-2 => LA-4. If the remaining bandwidth of LC-2 => LA-4 can carry the total forwarding traffic, the path LA-1 => LC-2 => LA-4 is determined to be the target traffic forwarding path.
[0169] The following describes the process of generating the target traffic forwarding path with reference to Figure 4B. LA-1=>LC-1 (target candidate link) If the remaining bandwidth from LC-1 to Super-LC-1 can carry the total forwarding traffic. Determine whether the remaining bandwidth of Super-LC-1=>LC-2, Super-LC-1=>LC-3, and Super-LC-1=>LC-4 can carry the total forwarding traffic. If the remaining bandwidth of Super-LC-1=>LC-2 can carry the total forwarding traffic. Determine whether the remaining bandwidth of LC-2=>LA-3 and LC-2=>LA-4 can carry the total forwarding traffic. If the remaining bandwidth of LC-2=>LA-4 can carry the total forwarding traffic. Determine the path: LA-1=>LC-1=>Super-LC-1=>LC-2=>LA-4 as the target traffic forwarding path.
[0170] In step 103123, when the iteration stop condition is reached, the iteration ends.
[0171] As an implementation manner, the iteration stopping condition includes: determining a target traffic forwarding path.
[0172] In this implementation, when a target traffic forwarding path is determined, no judgment is made on whether other candidate links in the candidate link set can carry the total forwarding traffic, which reduces the data processing volume of the server to a certain extent and ensures the efficiency of traffic scheduling.
[0173] As an implementation manner, the iteration stopping condition includes: the candidate link set is empty.
[0174] In this implementation, for each candidate link in the candidate link set, whether its downlink link can carry the total forwarding traffic is determined, thereby obtaining multiple target traffic forwarding paths. All of the multiple target traffic forwarding paths can be used to forward traffic to be transferred out of the work queue.
[0175] As an implementation method, after determining the target traffic forwarding path, another target candidate link can be selected from the candidate link set. Then, a determination can be made as to whether the remaining bandwidth of this selected candidate link can carry the total forwarding traffic. Alternatively, a simultaneous determination can be made as to whether the remaining bandwidth of all candidate links in the candidate link set can carry the total forwarding traffic. Both of these implementation methods can yield multiple target traffic forwarding paths.
[0176] In the process of actual application, there is a situation that the traffic of the work queue to be transferred out cannot be forwarded (output) through the target traffic forwarding path. In order to ensure the smooth progress of traffic scheduling, the embodiment of the present application also provides an implementation method of replacing the target traffic forwarding path. When the number of target traffic forwarding paths is multiple and the traffic of the work queue to be transferred out cannot be output through a sampled target traffic forwarding path, the traffic of the work queue to be transferred out is output based on other target traffic forwarding paths, wherein the other target traffic forwarding paths are target traffic forwarding paths other than one target traffic forwarding path in the multiple target traffic forwarding paths. In this implementation method, the process of determining the target traffic forwarding path is omitted in the process of reselecting the target candidate link, which shortens the time consumed in determining the target traffic forwarding path to a certain extent, thereby ensuring the efficiency of traffic scheduling.
[0177] In step 104 , a change route of the work queue to be called out is determined based on the target address and target traffic forwarding path of the work queue to be called out.
[0178] In the embodiment of the present application, the route change includes: the destination address, the egress port, and the next hop information. The egress port and the next hop information are calculated based on the target traffic forwarding path. The calculation process is related to the network architecture and will be described in detail later.
[0179] In step 105, the changed route is sent to the target source LAN access device of the work queue to be called out, wherein the target source LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
[0180] In some implementations, the route change can be sent to other devices in the network, such as the source LAN core device (LC) of the work queue to be called out, the super LAN core device (Super-LC, i.e., the switch at the core layer) of the work queue to be called out, etc.
[0181] This implementation provides an implementation for restoring routing, as shown in FIG3G . FIG3G shows that after step 105 in FIG3A , steps 106 a to 107 a may be performed, which are described in detail below.
[0182] In step 106a, the duration of the traffic to be transferred out of the work queue passing through the target traffic forwarding path is counted.
[0183] In this embodiment of the present application, the end point of the duration of the traffic to be transferred out of the work queue passing through the target traffic forwarding path is the current time. The starting point of the duration of the traffic to be transferred out of the work queue passing through the target traffic forwarding path may include any of the following times: the time when the route change is generated, the time when the route change is issued, the time when the traffic is forwarded, the time when network congestion is determined, and the time when the target traffic forwarding path is determined.
[0184] In step 107a, in response to the duration reaching a preset time, a recovery instruction is sent to the target source-end LAN access device in the work queue to be called out.
[0185] In an embodiment of the present application, the recovery instruction is used to instruct the target source-end LAN access device to output the traffic to be called out of the work queue based on the restored congested link.
[0186] The preset time can be set as needed. As an implementation, the preset time can be determined based on the starting point of the duration of the traffic to be transferred out of the work queue passing through the target traffic forwarding path. As an implementation, the preset time can be set based on the duration required to recover from network congestion according to historical data statistics. For example, if historical data statistics indicate that the duration required to recover from network congestion is 3 minutes, the preset time can be set to 3 minutes.
[0187] In this implementation, the duration of the traffic to be called out of the work queue through the target traffic forwarding path reaches a preset time, and the target source LAN access device outputs the traffic to be called out of the work queue based on the restored congested link, thereby achieving load balancing of the entire network.
[0188] The embodiment of the present application further provides an implementation method for restoring routing, which can be seen in FIG3H . FIG3H shows that after step 105 shown in FIG3A , steps 106b to 107b can be executed, which are described in detail below.
[0189] In step 106b, the congestion level of the congested link is detected.
[0190] Among them, the embodiments of the present application are not limited to the congestion degree detection method. For example, the congestion degree of a congested link can be determined by the explicit congestion notification (ETC) count of the link. The higher the ECN count, the higher the congestion degree of the congested link. The congestion degree of a congested link can also be determined by the load condition of the congested link. The higher the load of the congested link, the higher the congestion degree of the congested link.
[0191] In step 107b, in response to the congestion level indicating that the congested link has returned to normal, a recovery instruction is sent to the target source-end LAN access device in the queue for the work to be called out.
[0192] For example, when the detected congestion level is less than the congestion level threshold, it indicates that the congested link has returned to normal and is no longer congested; when the detected congestion level is greater than or equal to the congestion level threshold, it indicates that the congested link is still in a congested state, wherein the congestion level threshold can be a pre-set threshold and can be adjusted according to demand.
[0193] In this implementation, after the congested link returns to normal, the target source LAN access device outputs the traffic to be transferred out of the work queue based on the restored congested link, thereby achieving load balancing of the entire network.
[0194] The following describes an exemplary application of the embodiments of the present application in a practical application scenario.
[0195] The embodiments of the present application can be used in various networks, such as gaming networks, cloud computing networks, etc. The following takes a training network for a large model as an example.
[0196] The training task of large artificial intelligence (AI) models lasts for a long time, generally ranging from dozens of hours to dozens of days. During the training process of large models, the instantaneous communication volume of the GPU is large, sometimes up to more than 100 gigabytes (Gb) / second, and the communication volume is as high as more than 100 Gb / second for a short duration. Compared with other business traffic, AI large models have very obvious characteristics: (1) Burstiness. The training task is calculated in parallel on different GPUs. Usually, communication will not be carried out until multiple calculation results are completed. This results in the network being idle most of the time. A large amount of data needs to be transmitted in a short time. Taking a 200 gigabits per second (200G) port as an example, its peak traffic can reach 190 gigabits per second (190G) and last for 3 seconds. Therefore, the traffic distribution of AI large models is uneven and has burstiness; (2) Periodicity. AI training tasks have a fixed iteration cycle, that is, the traffic transmission process is periodic. In the embodiment of the present application, the calculation of a route can be applied to multiple model training cycles. The task of training neural network models places stringent requirements on the network, and general data communication networks (DCNs) cannot meet the network requirements of neural network model training.
[0197] InfiniBand (IB) networking solutions, coupled with RDMA, can meet the network requirements of neural network model training. However, IB networks that support RDMA are very expensive. Therefore, the current mainstream data communication network (DCN) relies on RDMA for data transmission. However, RDMA-based data transmission is prone to network congestion in neural network model applications.
[0198] The purpose of the embodiments of the present application is to alleviate the problem of network congestion in the application scenarios of neural network models.
[0199] Referring to Figure 5 , the infrastructure in the large AI model includes a large number of compute nodes (e.g., HPC servers) and a series of network nodes (interconnect machines). Network node 501 may include, but is not limited to, InfiniBand switches and Ethernet switches. Compute node 502 is typically a GPU server equipped with multiple SmartNICs, which may include SmartNICs for RDMA-based data transmission.
[0200] Large AI models can be implemented through networks such as high-performance computing (HPC) networks and data communication networks (DCN). Both the high-performance computing (HPC) and data communication networks use the classic fat-tree architecture.
[0201] Please refer to Figure 6, which is a Fat-tree network architecture provided in an embodiment of the present application. A typical feature of the Fat-tree network architecture is that the convergence ratio of the entire network is 1:1. In Figure 6, the bandwidth between the network port of the server and the switch (LA) port (corresponding to a line in ①) is 100G, then the bandwidth from the LAN access device (LA, Lan Access) switch port to the LAN core device (LC, Lan Core) switch port (corresponding to a line in ②) is 200G, and the bandwidth from the LC switch port to the super LAN access device (Super-LC) switch port (corresponding to a line in ③) is 400G. Therefore, using the calculation method of "total number of lines * line bandwidth", it is easy to find that the total bandwidth of the server outlet, the total bandwidth of the LA outlet, and the total bandwidth of the LC outlet are the same.
[0202] The disaster recovery capability of a fat-tree network architecture is related to link bandwidth utilization. Assuming that link bandwidth utilization in the network is maintained at approximately 50%, if approximately half of the links or devices fail, normal operation without packet loss will continue after routing convergence. Therefore, the fat-tree network architecture is widely applicable. The fat-tree network architecture is suitable for high-performance computing networks (HPC) and data communication networks (DCN). The following uses the fat-tree network architecture in a high-performance computing network (HPC) as an example to illustrate:
[0203] Compared to DCN, HPC typically maintains 100% bandwidth utilization between servers and LA switches. Furthermore, to prevent transmission speed drops due to failures, HPC designs include a certain amount of redundant bandwidth between LA and LC, and between LC and Super-LC. Furthermore, to prevent the occurrence of large flows (where the source IP, destination IP, protocol number, source port number, and destination port number are always the same) in the network, multiple pairs of QPs are typically established between the source (source server) and the destination (destination server), and these pairs are evenly distributed across different LA to LC and LC to Super-LC links.
[0204] Fat-tree network architectures in high-performance computing (HPC) networks mainly include the HPC two-tier network architecture and the HPC three-tier network architecture. Both can experience congestion, as described below.
[0205] Congestion scenarios in the HPC Layer 2 network architecture:
[0206] For example, refer to Figure 7. The HPC example shown in Figure 7 includes load balancing of four QPs (①, ②, ③, and ④) in a two-layer network architecture. Assume that the server network interface card is 100G. There are four pairs of QPs (①, ②, ③, and ④) between the source server 1.1.1.1 and the destination server 2.2.2.2. Initially, the paths taken by each of these four pairs of QPs are different. The initial path information for these four pairs of QPs is shown in Table 1.
[0207] Table 1. Initial path distribution and QP status of the four QPs in the HPC two-layer network architecture
[0208] As shown in Table 1, if no failure occurs, the initial path is optimal. However, network failures are often unpredictable in the real world, even though their probability of occurrence is low. Assume that at time T, the uplink LA-1 => LC-1 fails, causing QP path ① to fail. Switch LA-1 will then automatically complete routing convergence (re-hashing the path) and restore the network to a steady state. During this time, the QP path ① changes as follows:
[0209] Original path: LA-1=>LC-1=>LA-3.
[0210] New path: LA-1=>LC-2=>LA-4.
[0211] This presents a new problem: the paths of QPs ① and ② are identical. Even worse, the number of QPs distributed along the 100G link from LA-4 to the destination server will increase from two to three, as shown in Figure 8. This means that three QPs (①, ②, and ④) will evenly share the downstream 100G bandwidth from LA-4 to the destination server. Consequently, the transmission rate of these QPs (①, ②, and ④) will decrease from the current 50G to approximately 33G (significantly increasing transmission latency on the service side). The path distribution of these four QPs in the network is shown in Table 2.
[0212] Table 2. Four QP states after a failure of the LA=>LC uplink (LA-1=>LC-1) in the HPC two-layer network architecture
[0213] In reality, if a link failure occurs in the network, it is very likely to cause congestion on other links. In HPC, congestion is not manifested by the usual prolonged high traffic levels, but rather by a brief, momentary increase in traffic.
[0214] Figure 9 shows the daily traffic curve for a link between LA and LC. The peak traffic is 42 Gb / s (the switch physical port has a 200 Gb bandwidth). Figure 10 shows that the ECN count has remained high since the moment of the failure, indicating link congestion to a certain extent.
[0215] In addition to the LA=>LC uplink failure scenario, congestion can also occur on the LC=>LA downlink. As shown in Figure 11, congestion occurs on the LC=>LA downlink (LC-1=>LA-3). The status of the four QPs (①, ②, ③, and ④) in the network is shown in Table 3. The traffic and ECN distribution on the congested link (LC-1=>LA-3) are similar to those on the uplink (LA-1=>LC-1 in Figure 10) and are not further described here.
[0216] Table 3. Four QP states after a failure of the LC=>LA downlink (LC-1=>LA-3) in the HPC two-layer network architecture
[0217] Congestion scenarios in the HPC three-layer network architecture:
[0218] When the size of the HPC server cluster exceeds 4096 network cards (4K cards), the two-layer network architecture can no longer meet the network needs of the business. At this time, a three-layer network architecture needs to be introduced.
[0219] The difference between a three-tier network architecture and a two-tier network architecture is that the LAs and LCs in a three-tier network architecture are not fully meshed. Instead, the three-tier network architecture introduces the concept of rails. A rail is an independent two-tier network topology. Different rails are interconnected through Super-LCs (super LAN core devices). Specifically, two servers (source and destination servers) across a rail need to be connected via Super-LCs, as shown in Figure 12.
[0220] Taking Figure 12 as an example, assuming the server network card is 100G, there are four pairs of QPs (①, ②, ③, and ④) between the source server 1.1.1.1 and the destination server 2.2.2.2. Initially, they take different paths, as shown in Table 4.
[0221] Table 4. Initial path distribution of four QPs in the three-layer network architecture
[0222] In addition to the fact that cross-track communication traffic between source and destination servers is forwarded to the third-layer devices (Super-LC-1 and Super-LC-2), there is also a failure scenario within a track that causes traffic to bypass the third-layer devices (Super-LC-1 and Super-LC-2).
[0223] As shown in Figure 13, if the link from LC-1 to LA-3 and the link from LC-1 to LA-4 fail simultaneously, both LA-3 and LA-4 will revoke the BGP route to the destination server 3.3.3.3. At this time, LC-1 can only reach the destination server 3.3.3.3 through Super-LC-1 or Super-LC-2.
[0224] The implementation of the detour after a fault in the LC to LA downlink (LC-1 => LA-3) can be seen in Figure 13. The path changes of QP numbered ① before and after the fault are as follows:
[0225] Original path: LA-1=>LC-1=>LA-3.
[0226] New path: LA-1=>LC-1=>Super-LC-1=>LC-2=>LA-3.
[0227] For a three-layer network architecture, failure scenarios are similar to those in the Layer 2 traffic model. Assume that a failure occurs on the LC-1 to Super-LC-1 link or the Super-LC-1 to LC-3 link in the QP path (numbered ①) in Figure 12. After the network completes automatic convergence, this could cause congestion on the (LC-1 to Super-LC-2, Super-LC-2 to LC-4, LC-4 to LA-4) links. As shown in Figure 14, the four QPs in the network at this point are listed in Table 5. The process of failure convergence, congestion, and service data transmission speed reduction is similar to that of a Layer 2 network architecture and will not be further described here.
[0228] Table 5. Initial path distribution of four QPs in the three-layer network architecture
[0229] In the scenario where traffic bypasses Layer 3 devices after all downlink links of LC=>LA fail within a track, if the link between the LC and Super continues to fail, it may cause congestion on other links after the network completes automatic convergence, and even reduce the speed of business data transmission. Figure 15 shows the congestion situation after the link failure of LC=>LA (LC-1=>LA-3, LC-1=>LA-4), and the traffic of QP numbered ① bypasses Layer 3 and converges after the second failure of LC=>Super-LC (LC-1=>Super-LC-1, LC-2=>Super-LC-1). The specific process is not much different from other congestion scenarios, and the details are not repeated here. The path changes of QP numbered ① are as follows:
[0230] Original path: LA-1=>LC-1=>Super-LC-1=>LC-3=>LA-3.
[0231] New path: LA-1=>LC-1=>Super-LC-2=>LC-4=>LA-4.
[0232] As can be seen from this diagram, the three QP pairs (①, ②, and ④) will evenly share the 100G bandwidth from LA-4 to the destination server. Their transmission rates will drop from 50G to approximately 33.3G, and the ECN ratio (LC-4=>LA-4) will increase significantly. This indicates congestion in the LC-4=>LA-4 network. When network congestion occurs, manual troubleshooting and fault location are the only options, or waiting for the network to recover. Manual troubleshooting is time-consuming.
[0233] The embodiment of the present application injects 32-bit BGP routes into the access layer switch (LA). In this way, a portion of the traffic on the congested link is automatically dispatched to a group of links with lower loads, and the congestion relief time is stabilized at about 3 minutes.
[0234] The embodiment of the present application can be directly applied to the RoCE network of the AI large model, and the network quality can be judged by observing the changing trend of ECN in the network. Under normal circumstances, when the ECN count is lower than 500, the business is basically unaware and the AI training task is not affected; but the network will usually be configured with a lower (such as: 200, 100, etc.) ECN count threshold, and then observe the quality of the network. Once the ECN count is greater than the detection alarm threshold, an ECN alarm will be generated. Although the AI large model has the characteristics of burstiness and periodicity, since the embodiment of the present application can quickly solve the problem of network congestion, it will not affect the training process of the AI large model.
[0235] Whether it's a small or medium-sized GPU server cluster with 4K or smaller graphics cards, or a large or extra-large GPU server cluster with 4K or larger graphics cards, when problems like increased communication latency, slowdowns, or even freezes occur, if the problem is network-related, it often manifests as a surge in the ECN count on a particular link, which remains high, as shown in Figure 10. Under normal circumstances, when the QP traffic on a link is relatively load-balanced, the ECN count is very low. Figure 16 shows the daily ECN statistics for a port.
[0236] The ECN count on the congested link is the core quantitative indicator for judging network congestion in the embodiment of the present application. Because the size of the ECN count directly represents the network quality, it will also indirectly feedback to the GPU server side.
[0237] The following describes the network congestion scheduling method provided by an embodiment of the present application in conjunction with Figure 17.
[0238] When the detection module (detection platform) finds that a link is congested, that is, the ECN count on the link reaches the configured ECN count threshold (flow analysis), the detection module will generate an ECN alarm to the alarm module and notify the control module for processing, that is, execute the network congestion scheduling method provided in the embodiment of the present application.
[0239] The specific processing process is as follows:
[0240] First, the controller 1701 (control module) pulls the five-tuple information of all QPs on the congested link from the flow collection module 1702 (sflow), and sorts the average flow of the last 6 sampling periods to find the QP with the largest flow (which can be expressed as QP-A in this embodiment of the application).
[0241] Then, the controller 1701 combines the information on other links collected by the flow collection module to derive the network forwarding path of QP-A (the network forwarding path is the complete path from the source LA access switch to the destination LA access switch) and finds the source LA where the QP-A flow is located.
[0242] Next, based on the destination IP address of QP-A, a 32-bit route is generated and sent to the target source LA. The route's egress port and next hop information need to be calculated. The calculation process and route content are related to the network architecture and will be described in detail later.
[0243] The source LA is the LA connected to the source server, and the target source LA is the source LA of the congested work queue.
[0244] Once the route is sent to the source LA, QP-A traffic will bypass the congested link. After a period of time, the detection platform receives an ECN alarm and the path is restored.
[0245] The following describes the routing calculation method using a two-layer network architecture and a three-layer network architecture:
[0246] The routing calculation method under the two-layer network architecture is as follows:
[0247] After finding four low-load links on the source LA, the LC is also locked. This process only requires a single deterministic hash algorithm to determine the new path (network forwarding path) of the QP. This is explained in detail below with reference to Figures 18 and 19.
[0248] Step 11: Determine the source LA.
[0249] The source LA is the LA to which the source server is connected.
[0250] Step 12: Add the traffic of all links from the source LA to the LC with the same destination IP and QP-A to obtain the total traffic (total_flow_size).
[0251] Step 13: Obtain the traffic (referred to as telemetry traffic) of all links from the source end LA to LC using high-speed data collection (telemetry) technology, and sort them in ascending order.
[0252] Step 14: Select N source-end LA-LC links (for example, N=4) with the lowest traffic load rates from all source-end LA-LC links.
[0253] Refer to Figure 19. LA-01 to LC-04 are congested links. The four lowest-loaded links from the source LA (LA-01) to LC are: LA-01 => LC-02, LA-01 => LC-03, LA-01 => LC-30, and LA-01 => LC-32.
[0254] Step 15: Determine whether the remaining bandwidth of the source LA to LC link can carry the total_flow_size traffic. If the remaining bandwidth of the LA to LC link can carry the total_flow_size traffic, proceed to step 16; otherwise, proceed to step 14.
[0255] Step 16: Using the deterministic hash algorithm, obtain the destination LA of the QP-A and determine whether the remaining bandwidth of the link from the LC to the destination LA can carry the total_flow_size traffic. If the remaining bandwidth from the LC to the destination LA can carry the total_flow_size traffic, proceed to step 17.
[0256] Among them, the destination LA is the LA connected to the destination server. Among them, the deterministic hash algorithm is an algorithm that can generate a fixed output hash value, and given the same input data, the same hash result can always be obtained. This algorithm is very useful in distributed systems, especially when dealing with data storage and distribution, to ensure the integrity and consistency of data. Deterministic hashing can be used to ensure that the location of data in a distributed storage system is fixed, so that when the data needs to be accessed, the server storing the data can be quickly located. When implementing deterministic hashing, a specific hash function can be used, and certain methods (for example, adding a fixed prefix or suffix) can be used to ensure the consistency of the output hash value. In this way, even for different data, the hash values obtained after hashing will be arranged in a specific way, which is convenient for searching and locating in a distributed system.
[0257] Step 17: Based on the source LA to LC link and the LC to target LA link, a network forwarding path is obtained.
[0258] The routing calculation method under the three-layer network architecture is as follows:
[0259] The idea of organizing is similar to the two-layer network architecture, but it requires multiple uses of the deterministic hash algorithm to determine the new path of the QP. The following is a detailed explanation with reference to Figure 20.
[0260] Step 21: Determine the source end LA.
[0261] Step 22: Add the QP traffic with the same destination IP and QP-A in all links from the source LA to the LC to obtain total_flow_size.
[0262] Step 23: Obtain telemetry traffic from all links from the source LA to LC and sort it in ascending order.
[0263] Step 24: Select N source-end LA-LC links (for example, N=4) with the lowest traffic load rates from all source-end LA-LC links.
[0264] Step 25: Determine whether the remaining bandwidth of the source LA to LC link can carry the total_flow_size traffic. If the remaining bandwidth of the LA to LC link can carry the total_flow_size, proceed to step 26.
[0265] Step 26: Use the deterministic hash algorithm to obtain the Super-LC in the QP-A path and determine whether the remaining bandwidth from the LC to the Super-LC can carry the total_flow_size traffic. If so, proceed to Step 27; otherwise, proceed to Step 24.
[0266] Step 27: Determine the downstream LC of the Super-LC of QP-A based on the deterministic hash algorithm, and determine whether the remaining bandwidth from the Super-LC to the downstream LC can carry the total_flow_size traffic. If the remaining bandwidth from the Super-LC to the downstream LC can carry the total_flow_size traffic, execute 28; otherwise, execute step 24.
[0267] Step 28: Determine the destination LA of the QP-A using a deterministic hash algorithm, and determine whether the remaining bandwidth from the downlink LC to the destination LA can carry the total_flow_size traffic. If so, proceed to step 29; otherwise, proceed to step 24.
[0268] Step 29: Based on the source LA to LC link, the Super-LC to the downstream LC link, the Super-LC to the downstream LC link, and the downstream LC to the destination LA link, a network forwarding path is obtained.
[0269] Regarding routes delivered to the target LA, if there is no congestion, the device's BGP announcements in the network all use the aggregate route / 26. For example, for the destination server 2.2.2.2, all traffic from LA-01 to it uses 2.2.2.0 / 24.
[0270] When network congestion occurs, the controller writes a BGP route to the source LA with a destination address of 2.2.2.2, a mask length of 32, and both the as-path attribute and the optional transparent transmission (community) attribute inherited from its parent route 2.2.2.0 / 24. The next hop information (nexthop) is taken from a subset of the parent route. The next hop of the parent route is the IP addresses of all LC interconnected ports that have established a normal BGP neighbor relationship with the LA.
[0271] To avoid routing loops and traffic black holes, the controller also adds the no-advertise attribute to routes written by the controller, prohibiting the device from publishing them to other devices (peers). At the same time, when the parent route 2.2.2.0 / 24 is revoked or its attributes change, the controller will synchronously update the child route 2.2.2.2 / 32.
[0272] After implementing the scheduling method provided in the embodiments of this application, the network's ETC count can be seen in Figure 21. The arrow indicates the moment when the controller, after analyzing all flows on the congested link through sflow, finds the source LA corresponding to the maximum QP and aligns it with the issued 32-bit route. It can be clearly seen that the ECN count drops to almost zero after scheduling. For specific data, see Table 6. Network congestion is immediately eliminated after scheduling.
[0273] Table 6. Details of ECN values 3 minutes before and after controller scheduling
[0274] It is worth noting that the above embodiment is only an exemplary embodiment of a method for a controller to send BGP routes to the source LA. The embodiment of the present application does not specifically limit the type of routes. For example, the controller can send and use policy-based routing (PBR).
[0275] In summary, when network congestion occurs, the embodiment of the present application determines the target traffic forwarding path for forwarding the traffic to be transferred out of the work queue based on the traffic of the links in the network, thereby ensuring that the target traffic forwarding path can carry part of the traffic on the congested link, and determines the changed route of the work queue to be transferred out based on the target address and target traffic forwarding path of the work queue to be transferred out, and controls the target traffic forwarding path to output part of the traffic on the congested link by sending the route to the target source LAN access device, so that the network congestion problem can be solved. In addition, when link congestion occurs in the network, the embodiment of the present application starts to schedule part of the traffic on the congested link from the target source LAN access device, thereby ensuring that the network congestion problem can be quickly solved.
[0276] The following continues to describe an exemplary structure of the network congestion scheduling device 453 provided in an embodiment of the present application implemented as a software module. In some embodiments, as shown in Figure 2B, the software modules stored in the network congestion scheduling device 453 in the memory 440 may include: a first determination module 4531, a second determination module 4532, a third determination module 4533, a fourth determination module 4534, and a sending module 4535.
[0277] The first determining module 4531 is configured to determine a plurality of work queues on a congested link in the network in response to link congestion occurring in the network.
[0278] The second determining module 4532 is configured to determine a to-be-called-out work queue on the congested link from a plurality of work queues on the congested link.
[0279] The third determining module 4533 is configured to determine a target traffic forwarding path for forwarding traffic to be transferred out of the work queue based on traffic of links in the network.
[0280] The fourth determining module 4534 is configured to determine a changed route of the work queue to be called out based on the target address and target traffic forwarding path of the work queue to be called out.
[0281] The sending module 4535 is configured to send the changed route to the target source LAN access device of the work queue to be called out, wherein the target source LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
[0282] In the above scheme, the network congestion scheduling device 453 also includes a fifth determination module, which is configured to determine the target source LAN access device of the work queue to be called out; screen out the first work queue with the same target address as the work queue to be called out on the link from the target source LAN access device to the LAN core device; sum up the traffic of the first work queue and determine it as the total forwarding traffic; the third determination module 4533 is also configured to determine the target traffic forwarding path for forwarding the traffic of the work queue to be called out based on the total forwarding traffic and the traffic of the link in the network.
[0283] In the above scheme, the third determination module 4533 is also configured to screen multiple candidate links based on the load rates of multiple candidate links from the LAN access device to the LAN core device in the network to obtain a candidate link set, wherein the candidate link set includes at least one candidate link; based on the total forwarding traffic and the candidate link set, determine the target traffic forwarding path for forwarding the traffic to be called out of the work queue.
[0284] In the above scheme, the third determination module 4533 is further configured to select a target candidate link from at least one candidate link included in the candidate link set; when the remaining bandwidth of each link in the uplink link containing the target candidate link can carry the total forwarding traffic, and the remaining bandwidth of each link in the downlink link of the target candidate link can carry the total forwarding traffic, the path formed by the target candidate link and the downlink will be determined as the target traffic forwarding path; when the iteration stop condition is reached, the iteration is terminated, wherein the iteration stop condition includes one of the following: determining a target traffic forwarding path; the candidate link set is empty.
[0285] In the above scheme, the third determination module 4533 is also configured to delete the target candidate link from the candidate link set and obtain a new candidate link set when the remaining bandwidth of any link in the uplink link including the target candidate link cannot carry the total forwarding traffic, or the remaining bandwidth of any link in the downlink link of the target candidate link cannot carry the total forwarding traffic; wherein, the new candidate link set is used to continue the iteration.
[0286] In the above scheme, when the target candidate link is located in a two-layer architecture, the downlink links include: the link from the LAN core device to the destination LAN access device;
[0287] When the target candidate link is located under a three-layer architecture, the uplink link also includes: a link from the LAN core device to the super LAN core device on the path of the work queue to be called out; the downlink link also includes: a link from the super LAN core device to the downlink LAN core device, and a link from the downlink LAN core device to the destination LAN access device.
[0288] In the above scheme, the third determination module 4533 is further configured to, when the load rate of any candidate link is less than the load rate threshold, determine the set formed by any candidate links as the candidate link set; or based on the load rates of multiple candidate links, sort the multiple candidate links in ascending order, and determine the set of some candidate links arranged at the front in the sorting result as the candidate link set; wherein the load rate includes one of the following: historical load rate within multiple sampling periods; real-time load rate; load rate obtained by mapping the historical load rate and the real-time load rate.
[0289] In the above scheme, the third determination module 4533 is also configured to perform weighted sum processing on the historical load rate and the real-time load rate when the historical load rate is less than the first load rate threshold and the real-time load rate is less than the second load rate threshold, and obtain the load rate after mapping the historical load rate and the real-time load rate.
[0290] In the above scheme, when there are multiple target traffic forwarding paths and the traffic to be called out of the work queue cannot be output through a sampled target traffic forwarding path, the traffic to be called out of the work queue is output based on other target traffic forwarding paths, wherein the other target traffic forwarding paths are target traffic forwarding paths among the multiple target traffic forwarding paths except the one target traffic forwarding path.
[0291] In the above scheme, the network congestion scheduling device 453 also includes a recovery module, which is configured to count the duration of the traffic to be called out of the work queue passing through the target traffic forwarding path; in response to the duration reaching a preset time, a recovery instruction is issued to the target source-end LAN access device of the work queue to be called out, wherein the recovery instruction is used to instruct the target source-end LAN access device to output the traffic to be called out of the work queue based on the restored congested link.
[0292] In the above scheme, the network congestion scheduling device 453 also includes a recovery module, which is configured to detect the congestion level of the congested link; in response to the congestion level indicating that the congested link has returned to normal, a recovery instruction is issued to the target source-end LAN access device of the work queue to be called out, wherein the recovery instruction is used to instruct the target source-end LAN access device to output the traffic of the work queue to be called out based on the restored congested link.
[0293] In the above scheme, the second determination module is further configured to determine the traffic parameters of each work queue on the congested link within multiple sampling periods; based on the traffic parameters, filter out the work queues to be called out from the multiple work queues on the congested link, wherein the traffic parameters include one of the following: peak traffic value; average traffic value; traffic value after weighted summation of traffic based on the duration of traffic within multiple sampling periods.
[0294] Embodiments of the present application provide a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a controller reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the controller to perform the network congestion scheduling method described in the embodiments of the present application.
[0295] An embodiment of the present application provides a computer-readable storage medium storing computer-executable instructions, wherein computer-executable instructions or computer programs are stored. When the computer-executable instructions or computer programs are executed by a processor, the processor will execute the network congestion scheduling method provided in an embodiment of the present application, for example, the network congestion scheduling method shown in Figure 3A.
[0296] In some embodiments, the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface storage, optical disk, or CD-ROM; or various devices including one or any combination of the above memories.
[0297] In some embodiments, computer-executable instructions may be in the form of a program, software, software module, script, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0298] As an example, computer-executable instructions may, but need not, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, such as in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinating files (e.g., files storing one or more modules, subroutines, or code portions).
[0299] By way of example, computer-executable instructions may be deployed to be executed on one electronic device, or on multiple electronic devices located at one site, or on multiple electronic devices distributed across multiple sites and interconnected by a communication network.
[0300] It is understandable that in the embodiments of the present application, when user information and other related data are involved, when the embodiments of the present application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.
[0301] The above are merely examples of the present application and are not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, and improvements made within the spirit and scope of the present application are included in the scope of protection of the present application.
Claims
1. A method for scheduling network congestion, applied to electronic equipment, comprising: In response to link congestion occurring in a network, determining a plurality of work queues on a congested link in the network; Determine, from a plurality of work queues on the congested link, a work queue to be called out on the congested link; Determine a target traffic forwarding path based on traffic of a link in the network, wherein the target traffic forwarding path is used to forward traffic of the work queue to be called out; Determining a change route of the work queue to be called out based on a target address of the work queue to be called out and a target traffic forwarding path; The changed route is sent to the target source LAN access device of the work queue to be called out, wherein the target source LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
2. The scheduling method according to claim 1, wherein: Before determining the target traffic forwarding path based on the traffic of the link in the network, the method further includes: Determine the target source end LAN access device of the work queue to be called out; Screening out a first work queue having the same target address as the work queue to be called out from a link from the target source LAN access device to the LAN core device; Determine the sum of the traffic of the first work queue as the total forwarding traffic; and / or, The determining of a target traffic forwarding path based on traffic of a link in the network includes: The target traffic forwarding path is determined based on the total forwarding traffic and the traffic of the links in the network.
3. The scheduling method according to claim 2, wherein: The determining the target traffic forwarding path based on the total forwarding traffic and the traffic of the links in the network includes: Based on the load rates of multiple candidate links from the local area network access device to the local area network core device in the network, the multiple candidate links are screened to obtain a candidate link set, wherein the candidate link set includes at least one candidate link; The target traffic forwarding path is determined based on the total forwarding traffic and the candidate link set.
4. The scheduling method according to claim 3, wherein: The determining the target traffic forwarding path based on the total forwarding traffic and the candidate link set includes: The following processing is performed iteratively: Selecting a target candidate link from at least one candidate link included in the candidate link set, and determining a remaining bandwidth of the target candidate link; When the remaining bandwidth of each link in the uplink of the target candidate link can carry the total forwarding traffic, and the remaining bandwidth of each link in the downlink of the target candidate link can carry the total forwarding traffic, a path formed by the target candidate link and the downlink is determined as the target traffic forwarding path; When an iteration stop condition is reached, the iteration is terminated, wherein the iteration stop condition includes one of the following: a target traffic forwarding path is determined; the candidate link set is empty.
5. The scheduling method according to claim 4, wherein: Before ending the iteration, the method further includes: When the remaining bandwidth of any link in the uplinks including the target candidate link cannot carry the total forwarding traffic, or the remaining bandwidth of any link in the downlinks of the target candidate link cannot carry the total forwarding traffic, deleting the target candidate link from the candidate link set to obtain a new candidate link set; The new candidate link set is used to continue the iteration.
6. The scheduling method according to claim 4, wherein: When the target candidate link is located in a two-layer architecture, the downlink link includes: the LAN core device A link to the destination LAN access device; When the target candidate link is located under a three-layer architecture, the uplink link also includes: a link from the LAN core device to the super LAN core device on the path of the work queue to be called out, and the downlink link also includes: a link from the super LAN core device to the downlink LAN core device, and a link from the downlink LAN core device to the destination LAN access device.
7. The scheduling method according to claim 3, wherein: The method of screening the multiple candidate links based on the load rates of the multiple candidate links from the local area network access device to the local area network core device in the network to obtain a candidate link set includes: When the load rate of any candidate link is less than the load rate threshold, determining a set formed by any candidate link as the candidate link set; and / or, Based on the load rates of the multiple candidate links, the multiple candidate links are sorted in ascending order, and a set of some candidate links arranged at the front in the sorting result is determined as the candidate link set; The load rate includes one of the following: a historical load rate within a plurality of sampling periods; a real-time load rate; a load rate obtained by mapping the historical load rate with the real-time load rate.
8. The scheduling method according to claim 7, wherein: The load rate obtained by mapping the historical load rate and the real-time load rate is determined in the following manner: When the historical load rate is less than a first load rate threshold and the real-time load rate is less than a second load rate threshold, a weighted sum is performed on the historical load rate and the real-time load rate to obtain a load rate obtained by mapping the historical load rate and the real-time load rate.
9. The scheduling method according to any one of claims 1 to 8, wherein: When the number of the target traffic forwarding paths is multiple and the traffic of the work queue to be called out cannot be output through a sampled target traffic forwarding path, the traffic of the work queue to be called out is output based on other target traffic forwarding paths, wherein the other target traffic forwarding paths are target traffic forwarding paths among the multiple target traffic forwarding paths except the one target traffic forwarding path.
10. The scheduling method according to any one of claims 1 to 9, wherein: The method further comprises: Counting the duration of the traffic to be called out of the work queue passing through the target traffic forwarding path; In response to the duration reaching a preset time, a recovery instruction is sent to the target source LAN access device of the work queue to be called out, wherein the recovery instruction is used to instruct the target source LAN access device to output the traffic of the work queue to be called out based on the restored congested link.
11. The scheduling method according to any one of claims 1 to 10, wherein: The method further comprises: detecting a congestion level of the congested link; In response to the congestion level indicating that the congested link has returned to normal, a recovery instruction is sent to the target source-end LAN access device of the work queue to be called out, wherein the recovery instruction is used to instruct the target source-end LAN access device to output the traffic of the work queue to be called out based on the restored congested link.
12. The scheduling method according to any one of claims 1 to 11, wherein: The step of determining, from a plurality of work queues on the congested link, a work queue to be called out on the congested link comprises: Determine the flow parameters of each work queue on the congested link in multiple sampling periods, wherein the flow parameters include one of the following: a peak value of the flow; an average value of the flow; a flow value obtained by weighted summation of the flow based on the duration of the flow in the multiple sampling periods; Based on the traffic parameter, the to-be-called-out work queue is screened out from a plurality of work queues on the congested link.
13. A network congestion scheduling device, comprising: A first determination module is configured to determine a plurality of work queues on a congested link in the network in response to link congestion occurring in the network; The second determining module is configured to determine the congested link from a plurality of work queues on the congested link. The queue of pending work to be called out on the A third determination module is configured to determine a target traffic forwarding path based on traffic of a link in the network, wherein the target traffic forwarding path is used to forward traffic of the work queue to be called out; A fourth determining module is configured to determine a change route of the work queue to be called out based on a target address of the work queue to be called out and a target traffic forwarding path; The sending module is configured to send the changed route to the target source LAN access device of the work queue to be called out, wherein the target source LAN access device is used to output the traffic of the work queue to be called out through the target traffic forwarding path based on the changed route.
14. An electronic device, comprising: A memory for storing computer executable instructions; A processor, configured to implement the method for scheduling network congestion according to any one of claims 1 to 12 when executing computer executable instructions stored in the memory.
15. A computer-readable storage medium storing a computer program or a computer-executable instruction, wherein the computer program or the computer-executable instruction, when executed by a processor, implements the method for scheduling network congestion according to any one of claims 1 to 12.
16. A computer program product, comprising a computer program or a computer executable instruction, wherein when the computer program or the computer executable instruction is executed by a processor, the method for scheduling network congestion according to any one of claims 1 to 12 is implemented.
Citation Information
Patent Citations
Data center network routing method based on Fat-Tree structure
CN106533960A
Network congestion control method and related device
CN116566907A
Apparatus and methods to change thresholds to control congestion in ATM switches
US5901147A
Cited By
Resource processing method and device for large model, and electronic equipment
CN121029384A