Network congestion scheduling method, electronic device, storage medium and program product

By identifying the work queues on the congested links in the network and adjusting their routing, the problem of network congestion in the prior art is solved, and the network transmission efficiency is improved.

CN119728549APending Publication Date: 2025-03-28TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311288644.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-09-28
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The existing technology is difficult to quickly solve the problem of network congestion, and it usually relies on manual troubleshooting or waiting for the network to recover on its own, resulting in a decrease in network transmission efficiency.

Method used

By identifying the work queue 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 link traffic, adjusting the routing of the work queue to schedule part of the traffic on the congested link to the low-load link.

Benefits of technology

It realizes that when a network link congestion occurs, part of the traffic on the congested link is quickly dispatched, effectively solving the network congestion problem and improving network transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728549A_ABST
    Figure CN119728549A_ABST
Patent Text Reader

Abstract

The invention provides a network congestion scheduling method, electronic equipment, a storage medium and a program product. The network congestion scheduling method comprises the following steps: determining a plurality of working queues on a congested link in a network in response to link congestion of the network; determining a to-be-called working queue on the congested link from a plurality of working queues on the congested link; determining a target traffic forwarding path for forwarding the traffic of the working queue to be called based on the traffic of the link in the network; determining a change route of the to-be-called working queue based on the target address and the target traffic forwarding path of the to-be-called working queue; the change route is issued to a target source end local area network access device of the to-be-called working queue, and the target source end local area network access device is used for outputting the flow of the to-be-called working queue through the target flow forwarding path based on the change route.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a scheduling method for network congestion, electronic equipment, storage medium and program product. Background Art

[0002] As the number of network users increases dramatically, network congestion is a problem. Network congestion is caused by too many data packets arriving within a certain period of time. Network devices such as routers cannot process these data packets in time, so they accumulate in the buffer, causing increased network transmission delay. The increase in delay in turn reduces the network's ability to process data packets. This cycle causes a sharp drop in network transmission efficiency and causes network congestion.

[0003] Currently, when network congestion occurs, the only way is to rely on manual troubleshooting and fault location, or wait for the network to recover on its own. Manual troubleshooting takes a long time. Summary of the invention

[0004] The embodiments of the present application provide a method for scheduling network congestion, an electronic device, a storage medium, and a 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.

[0005] The present application provides a method for scheduling network congestion, including:

[0006] In response to link congestion occurring in the network, determining a plurality of work queues on the congested link in the network;

[0007] Determine a work queue to be called out on the congested link from multiple work queues on the congested link;

[0008] Determine, 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;

[0009] Determine a change route of the work queue to be called out based on the target address of the work queue to be called out and the target traffic forwarding path;

[0010] 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.

[0011] The embodiment of the present application provides a network congestion scheduling device, including:

[0012] 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;

[0013] A second determining module is used to determine a to-be-called-out work queue on the congested link from a plurality of work queues on the congested link;

[0014] A third determination module, 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;

[0015] A fourth determination module, 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;

[0016] The sending module is used 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.

[0017] An embodiment of the present application provides an electronic device, the electronic device comprising:

[0018] A memory for storing computer executable instructions;

[0019] The processor is used 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.

[0020] 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.

[0021] 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 scheduling method for network congestion provided in the embodiment of the present application is implemented.

[0022] The embodiments of the present application have the following beneficial effects:

[0023] The scheduling method for network congestion provided in the embodiment of the present application can determine the target traffic forwarding path for forwarding the traffic of the work queue to be called out based on the traffic of the link in the network when the network is congested, thereby ensuring that the target traffic forwarding path can carry part of the traffic on the congested link, and determine the change 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, and control the target traffic forwarding path to output part of the traffic on the congested link by sending the route target source end LAN access device, so that the network congestion problem can be solved. In addition, the scheduling method for network congestion is to start scheduling part of the traffic on the congested link from the source of the target source end LAN access device when the link congestion occurs in the network, thereby ensuring that the network congestion problem can be quickly solved. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] Figure 1 It is a schematic diagram of the architecture of the business system provided in the embodiment of the present application;

[0025] Figure 2A-2B is a schematic diagram of the structure of an electronic device provided in an embodiment of the present application;

[0026] Figure 3A-3H It is a flowchart of a method for scheduling network congestion provided in an embodiment of the present application;

[0027] Figure 4A-4B is a schematic diagram of a network architecture provided in an embodiment of the present application;

[0028] Figure 5 is a schematic diagram of high performance computing (HPC) provided in an embodiment of the present application;

[0029] Figure 6 is a schematic diagram of a fat-tree network architecture provided in an embodiment of the present application;

[0030] Figure 7 It is a schematic diagram of the HPC two-layer network architecture when load balancing is provided in an embodiment of the present application;

[0031] Figure 8 It is a schematic diagram of the HPC two-layer network architecture when the network is congested provided by an embodiment of the present application;

[0032] Fig. 9 is a daily traffic curve of the LA to LC link provided in an embodiment of the present application;

[0033] Fig.10 It is an ECN daily statistical curve of a certain link from LA to LC provided in an embodiment of the present application;

[0034] Fig.11This is a network structure diagram of link congestion after a downlink failure from LC to LA provided in an embodiment of the present application;

[0035] Fig.12 It is a schematic diagram of the HPC three-layer network architecture when load balancing is provided in an embodiment of the present application;

[0036] Fig.13 It is a schematic diagram of a three-layer network architecture for detouring after a downlink failure from LC to LA provided by an embodiment of the present application;

[0037] Fig.14 It is a schematic diagram of the HPC three-layer network architecture when the network is congested provided by an embodiment of the present application;

[0038] Fig.15 It is a schematic diagram of the HPC three-layer network architecture after the secondary failure provided in the embodiment of the present application;

[0039] Fig.16 It is a port ECN statistical count change curve provided in an embodiment of the present application;

[0040] Fig.17 is a flow chart of a method for scheduling network congestion provided in an embodiment of the present application;

[0041] Fig.18 It is a flow chart of a scheduling method for congestion of a layer 2 network architecture provided by an embodiment of the present application;

[0042] Fig.19 It is a schematic diagram of a two-layer network architecture provided by an embodiment of the present application;

[0043] Fig. 20 It is a flow chart of a scheduling method for congestion of a three-layer network architecture provided by an embodiment of the present application;

[0044] Fig.21 This is an ECN statistical count change curve after adopting the scheduling method provided in the embodiment of the present application. DETAILED DESCRIPTION

[0045] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of this application.

[0046] In the following description, the terms "first\second" involved are merely used to distinguish similar objects and do not represent a specific ordering of 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.

[0047] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.

[0048] 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.

[0049] 1) High Performance Computing (HPC), which 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.

[0050] 2) Graphics Processing Unit (GPU), also known as graphics card or GPU card. It is a microprocessor that specializes in image and graphics related computing on personal PCs, servers, and game consoles. It is also widely used in scientific computing, artificial intelligence and other fields.

[0051] 3) Remote Direct Memory Access (RDMA) is a technology that bypasses the kernel of the remote host operating system to access data in its memory. Since it does not go through the operating system, it not only saves a lot of central processing unit (CPU) resources, but also improves system throughput and reduces system network communication latency. It is especially suitable for scenarios with large amounts of parallel computing such as AI.

[0052] 4) InfiniBand (IB) is a computer network communication standard for high-performance computing, which has extremely high throughput and extremely low latency. It can be considered a network designed specifically for RDMA, similar to the current mainstream Ethernet, but the two are incompatible.

[0053] 5) Remote Direct Data Access over Ethernet (RoCE, RDMA over Converged Ethernet), an RDMA technology based on traditional Ethernet networks. With it, high-speed, ultra-low latency, and extremely low CPU usage RDMA technology can be deployed on the most widely used Ethernet.

[0054] 6) Work Queue (QP, Queue Pair), a pair of work queues (Work Queue), refers to the combination of the send queue (Send Queue, SQ) and the receive queue (Receive Queue, RQ). It is the basic unit of RDMA network communication;

[0055] 7) Explicit Congestion Notification (ECN). When congestion occurs in the network, the TCP protocol will actively discard data packets and then ensure reliable transmission through retransmission and confirmation. ECN reduces the number of network packet losses, avoids retransmission, and allows the sender to actively reduce the packet sending rate.

[0056] 8) Sampled Flow (sFlow) is a network flow detection technology based on packet sampling, mainly used for statistical analysis of network flow. sFlow provides interface-based flow analysis, which can detect flow conditions in real time and promptly discover the source of abnormal flow and attack flow.

[0057] 9) High-speed data collection technology (telemetry), a technology for remotely collecting data from switches at high speed. The switch periodically and actively sends the device's port traffic statistics, CPU or memory data and other information to the collection module through the push mode. Compared with the traditional pull mode (pull mode) of snmp collection, the one-question-one-answer interaction provides more real-time and high-speed data collection functions.

[0058] 10) Border Gateway Protocol (BGP) is a dynamic routing protocol that enables routes between autonomous systems (AS) and selects the best route. It is the basis of Internet communication.

[0059] 11) Artificial Intelligence (AI) large model refers to a large and complex neural network that needs to store more parameters to increase the depth and width of the model, thereby improving the model's performance. The parameters start from tens of billions, and a large amount of data is trained to produce high-quality prediction results.

[0060] The 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.

[0061] The following describes an exemplary application of the electronic device provided by the embodiment of the present application. The electronic device provided by the embodiment of the present application can be implemented as various types of computer devices including a controller, such as a server. The following describes an exemplary application when the electronic device is implemented as a server.

[0062] See also Figure 1 , Figure 1 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. Figure 2A The communication process between the source server 100 and the destination server 200 is introduced. 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.

[0063] The source server 100 may include: a network interface card 104 and a main processing system 108, the main processing system 108 including a host CPU 106 and a host memory 107 (other conventional hardware of the computer system such as a hard disk, a bus, etc. Figure 2A The main processing system 108 also runs various software components, such as an operating system 105 and an application 101 running on the operating system 105. The destination server 200 includes a network interface card 204 and a main processing system 208. The main processing system 208 includes a host CPU 206 and a host memory 207. The main processing system 208 also runs various software components, such as an operating system 205 and an application 201 running on the operating system 205.

[0064] The network interface card 104 (also known as a network adapter or a communication adapter) has a cache 102, in which a queue pair can be set, which can be called a work queue (QP, Queue Pair). QP is a virtual interface provided by the network interface card to the application, and is composed of 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 always generated together and appear in pairs, and they will remain in a paired state during their existence. The instruction sent by the application to the network interface card is called a work queue element (WQE, Work Queue Element). Before the application 101 in the source server 100 sends data to the application 201 in the destination server 200 via RDMA, the source server 100 and the destination server 200 first establish a QP pairing, that is, it is clear that QP103 and QP203 jointly implement the data transmission between the application 101 and the application 201, and add the corresponding queue pair identifier to the data sent later. Data is usually transmitted in the form of messages, so in some application scenarios, the data transmitted between the source server 100 and the destination server 200 can also be called messages. In the process of data from the source server 100 to the destination server 200 through the multi-path network 300, the routing device in the network selects a forwarding path according to the five-tuple information in the data, thereby realizing the transmission of data between the source server 100 and the destination server 200.

[0065] The server 400 monitors the data transmission of each link in the network 300. Once the link in the network 300 is congested, the server 400 determines multiple work queues on the congested link in the network in response to the link congestion in the network, determines the work queue to be called out on the congested link from the multiple work queues on the congested link, determines the target traffic forwarding path for forwarding the traffic of the work queue to be called out based on the traffic of the link in the network, and determines the 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; the server 400 sends the changed route to the network 300. Based on the guidance of the changed route, the network 300 transmits the traffic (data) output by the source server 100 to the destination server 200 by bypassing the congested link. In this way, when the link congestion occurs in the network, a part of the traffic on the congested link is scheduled to quickly solve the problem of network congestion.

[0066] In some embodiments, Figure 1The server 400 shown in the figure can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), as well as big data and artificial intelligence platforms.

[0067] 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 microprogram-level commands, machine instructions or software instructions. 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.

[0068] In some embodiments, multiple servers may form a blockchain, and server 400 is a node on the blockchain. Information connections may exist between each node in the blockchain, and information may be transmitted between nodes through the above information connections. Among them, data related to the scheduling method for network congestion provided in the embodiment of the present application may be stored on the blockchain.

[0069] See also Figure 2B , Figure 2B 4 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, Figure 2B The electronic device 400 shown 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 the 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, the bus system 440 is not described in detail. Figure 2B Various buses are labeled as bus system 440 .

[0070] 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.

[0071] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. The memory 450 may optionally include one or more storage devices that are physically remote from the processor 410.

[0072] The memory 450 includes a volatile memory or a non-volatile memory, and may also include both volatile and non-volatile memories. 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.

[0073] In some embodiments, 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 exemplarily described below.

[0074] Operating system 451, including system programs for processing various basic system services and performing hardware-related tasks, such as a framework layer, a core library layer, a driver layer, etc., for implementing various basic services and processing hardware-based tasks;

[0075] 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 Authentication (WiFi), and Universal Serial Bus (USB).

[0076] In some embodiments, the device provided in the embodiments of the present application can be implemented in software. Figure 2B The network congestion scheduling device 453 stored in the memory 450 is shown, which can be software in the form of a program and a plug-in, including 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 therefore can be arbitrarily combined or further split according to the functions implemented. The functions of each module will be described below.

[0077] The scheduling method for network congestion provided by the embodiment of the present application will be described in combination with the exemplary application and implementation of the electronic device provided by the embodiment of the present application. Figure 3A The scheduling method for network congestion includes steps 101 to 105.

[0078] 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.

[0079] In the embodiment of the present application, the occurrence of link congestion in the network can be understood as the occurrence of link congestion in the network. Congestion can be understood as the traffic that needs to be transmitted by the link exceeds the load of the link, resulting in traffic accumulation at one end of the link, resulting in the degradation of the overall network performance.

[0080] In the embodiment of the present application, a link can be understood as a physical line between two nodes. Among them, the nodes are some network devices in the network. The 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 embodiment 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.

[0081] The embodiments of the present application do not specifically limit the implementation method of "detecting link congestion in the network". Usually, 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). As a feasible 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 a feasible implementation method, the congestion of the link can be determined by the load condition of the link.

[0082] It is worth noting that the embodiments of the present application are merely illustrative of two implementation methods of “determining the congestion status of a link”, and the above implementation methods do not constitute specific limitations.

[0083] The embodiment of the present application does not specifically limit the execution subject of the action of "monitoring link congestion". As a feasible implementation method, a detection module can be used to detect link congestion. In response to determining that link congestion occurs in the network, the detection module will generate an ECN congestion notification to the server. As a feasible implementation method, the detection module can be integrated inside the server, that is, the server detects link congestion.

[0084] In the embodiment of the present application, a link may 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 may be 4 work queues on a link.

[0085] In step 102, a work queue to be called out on the congested link is determined from a plurality of work queues on the congested link.

[0086] This implementation method specifically provides an implementation method for determining the queue of work to be called out on a congested link, which can be seen in Figure 3B , Figure 3B Show Figure 3A In step 102 of the method, "determining a to-be-called-out work queue on the congested link from a plurality of work queues on the congested link" can be implemented by following steps 1021 to 1022, which are described in detail below.

[0087] In step 1021, the flow parameters of each work queue on the congested link in a plurality of sampling periods are determined.

[0088] The embodiment of the present application does not specifically limit the execution subject of the action of "collecting the flow of the work queue". As a feasible implementation method, a flow collection module can be used to collect the flow of the work queue, and the flow collection module transmits the collected flow of the work queue to the server, so that the server can read the flow parameters of the flow. As a feasible implementation method, the flow collection module can be integrated inside the server, that is, the server independently collects the flow of the work queue and reads the parameters of the flow.

[0089] 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 summing the flow based on the duration of the flow in multiple sampling periods.

[0090] In an embodiment of the present application, the traffic collected in multiple sampling periods can be counted, and then the traffic collected in multiple sampling periods can be averaged to obtain the traffic average of the work queue. The average processing can include but is not limited to: arithmetic mean, geometric mean, etc. In this implementation, the traffic average can characterize the congestion of the work queue, and the work queue to be called out is determined based on the traffic average, which can effectively alleviate network congestion.

[0091] In the embodiment of the present application, a curve of traffic flow variation over time can be drawn based on the traffic collected in a sampling period, and then the peak value of the traffic flow in the sampling period can be determined based on the above curve. The peak value of the traffic flow can characterize the sudden congestion in the work queue, and the work queue to be transferred out can be determined based on the peak value of the traffic flow, which can accurately alleviate the congestion of the network.

[0092] In the 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 working queue in one sampling period. The weighted summed flow value can accurately characterize the congestion of the working queue (hereinafter referred to as "working queue congestion condition" for the convenience of description), and the working queue to be called out can be determined based on the weighted summed flow value, which can effectively alleviate the congestion of the network.

[0093] The embodiments of the present application do not specifically limit the time of the multiple sampling periods. As a feasible implementation method, the multiple sampling periods can be the N sampling periods closest to the time when the link congestion of the network is determined, where N is a positive integer greater than 1. As a feasible implementation method, the multiple sampling periods can be multiple sampling periods within a set time. For example, traffic data can be collected during the time of 8:00-10:00 every day.

[0094] In step 1022, based on the traffic parameters, a work queue to be called out is screened from multiple work queues on the congested link.

[0095] In an embodiment of the present application, a 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 an embodiment of the present application, the work queue that needs to forward traffic on the congested link is called a work queue to be transferred out.

[0096] The embodiments of the present application do not specifically limit the implementation method of filtering out the work queue to be called out from multiple work queues on the congested link based on traffic parameters. For example: As a feasible implementation method, a work queue with a larger traffic average value (greater than the traffic average value threshold) can be filtered out as the work queue to be called out. As a feasible implementation method, a work queue with a larger traffic peak value can be filtered out as the work queue to be called out. As a feasible implementation method, a work queue with a larger weighted traffic value can be filtered out as the work queue to be called out.

[0097] In some feasible 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 called out is screened from multiple work queues on the congested link. Exemplarily, the work queue on the congested link with the highest load rate may be used as the work queue to be called out.

[0098] 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.

[0099] In step 103, 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.

[0100] In the embodiment of the present application, a path can be understood as a passage connecting a source server and a destination server for transmitting traffic. The LA connected to the source server on the path is called the source LA, and the LA connected to the destination server on the path is called the destination LA. Figure 4A , LA-1 and LA-2 are source LAs, and LA-3 and LA-4 are destination LAs.

[0101] The target traffic forwarding path is a path for forwarding traffic to be transferred out of the work queue. One end of the target traffic forwarding path is connected to the source server of the work queue to be transferred out, and the other end of the target traffic forwarding path is connected to the destination server of the work queue to be transferred out.

[0102] For example, please refer 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 (for example, IP: 1.1.1.1), and the destination server of the work queue to be called out is the destination server (for example, IP: 2.2.2.2).

[0103] Continuing with the above example, LA-1=>LC-2=>LA-3 can be used as the target traffic forwarding path for the work queue to be called out. The source server of LA-1=>LC-2=>LA-3 is the source server (IP: 1.1.1.1), and the destination server of the LA-1=>LC-2=>LA-3 path is the destination server (IP: 2.2.2.2).

[0104] The present application also provides an implementation method for determining a target traffic forwarding path, which can be found in Figure 3C , Figure 3C Show Figure 3A Before step 103 in step 104, step 31 to step 32 may be performed. Figure 3A The illustrated step 103 may be implemented by executing step 1031, which is described in detail below.

[0105] In step 31, a first work queue having the same target address as the work queue to be called out is screened out on a link from the target source LAN access device to the LAN core device.

[0106] In this implementation, the first work queue having the same target address as the work queue to be called out is screened out on the link from the target source LAN access device (target source LA) to the LAN core device (LC) for the following two considerations.

[0107] The first aspect is considered: the role of the target address is 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.

[0108] 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.

[0109] It should be noted that the embodiments of the present application are not limited to filtering out the first work queue having 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. In some feasible implementations, the 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 the first work queue having the same target address as the work queue to be called out on the link from other LAN access devices to the LAN core device.

[0110] In the embodiment of the present application, the target source LAN access device is a LAN access device (i.e., a switch located at the access layer) connected to the source server for outputting the work queue traffic to be transferred out. Figure 4A , assuming that the source server [IP: 1.1.1.1] is the source server that outputs the traffic to be called out of the work queue, then the target source LAN access devices may include: LA-1 and LA-2.

[0111] 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, see Figure 4A , the LAN core devices may include: LC-1 and LC-2.

[0112] It should be noted that the first work queue involved in the embodiment of the present application includes a work queue to be called out. For example, work queue ① is a work queue to be called out, and the work queues with the same destination address as work queue ① include: work queue ②, work queue ③, and work queue ④. Then the first work queue includes: work queue ①, work queue ②, work queue ③, and work queue ④.

[0113] In step 32, the sum of the traffic of the first working queue is determined as the total forwarding traffic.

[0114] The traffic of the first working queue involved in the embodiment of the present application may include, but is not limited to: historical traffic, real-time traffic, and traffic mapped from historical traffic and real-time traffic.

[0115] The implementation method of determining the total forwarding flow in the embodiment of the present application is not specifically limited. As a feasible implementation method, the real-time flow of the first working queue can be summed up to determine the total forwarding flow. As a feasible implementation method, the historical flow of the first working queue can be summed up to determine the total forwarding flow. As a feasible implementation method, the flow obtained by weighted summing the historical flow of the first working queue and the real-time flow of the first working queue can be determined as the total forwarding flow.

[0116] The present application also provides an implementation method for determining a target traffic forwarding path, which can be found in Figure 3C , Figure 3A The illustrated step 103 may be implemented by executing step 1031, which is described in detail below.

[0117] In step 1031, based on the total forwarding traffic and 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.

[0118] 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 a feasible 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.

[0119] As a feasible implementation method, multiple target traffic forwarding paths can 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.

[0120] This implementation provides a method for determining the target traffic forwarding path. Figure 3D , Figure 3D Show Figure 3C Step 1031 in the above description can be implemented by executing steps 103111 to 103112, which are described in detail below.

[0121] In step 103111, 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.

[0122] The candidate link set includes at least one candidate link.

[0123] The candidate link involved in the embodiment of the present application can be understood as a link between a source LAN access device (source LA) in the network and a LAN core device (LC). 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 generated based on the candidate link can forward the traffic of the work queue to be called out.

[0124] The embodiment of the present application also provides an implementation method for determining a candidate link set. Figure 3E . Figure 3D The shown step 10311 can be implemented by executing steps 1031111 to 1031112, which are described in detail below.

[0125] In step 1031111, when the load rate of any candidate link is less than the load rate threshold, the set formed by any candidate link is determined as the candidate link set.

[0126] This embodiment of the present application does not make any specific limitation on the load rate of the candidate links involved in step 1031111.

[0127] As a feasible implementation method, the load rate of the candidate link may include: the real-time load rate of the candidate link. The real-time load rate can characterize the real-time load condition of the candidate link. The set formed by the candidate links whose real-time load rate is less than the load rate threshold is determined as the candidate link set, which can ensure that the candidate links in the candidate link set are all real-time low-load links. By using the candidate links in the candidate link set to forward the traffic to be transferred out of the work queue, the load balancing of the network can be achieved.

[0128] As a feasible implementation method, the load rate of the candidate link may include: the historical load rate of the candidate link. The historical load rate can characterize the stable and accurate load condition of the candidate link. The set of candidate links whose historical load rates are less than the load rate threshold is determined as the candidate link set, which can ensure that the candidate links in the candidate link set are all low-load links. By using the candidate links in the candidate link set to forward the traffic to be transferred out of the work queue, load balancing of the network can be achieved.

[0129] As a feasible implementation method, the load rate of the candidate link may include: the load rate after mapping the historical load rate and the real-time load rate. The mapped load rate can accurately characterize the load condition of the candidate link in combination with the real-time load rate and the historical load rate, and the set formed by the candidate links whose mapped load rates are less than the load rate threshold is determined as the candidate link set, which can ensure that the candidate links in the candidate link set are all low-load links. By using the candidate links in the candidate link set to forward the traffic to be called out of the work queue, load balancing of the network can be achieved.

[0130] The embodiment of the present application does not specifically limit the mapped load rate. For example, the mapped load rate can be a load rate obtained by linearly combining the historical load rate and the real-time load rate. For example, the mapped load rate can be a load rate obtained by weighted average of the historical load rate and the real-time load rate.

[0131] The embodiment of the present application also provides an implementation method for mapping the historical load rate to the real-time load rate. Specifically, the load rate after the historical load rate and the real-time load rate are mapped 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 after the historical load rate and the real-time load rate are mapped. The embodiment of the present application does not make specific limitations on the values ​​of the first load rate threshold and the second load threshold. Exemplarily, the first load rate threshold can be 30%, and the second load rate threshold can be 50%.

[0132] In this implementation, the weighted summation of the historical load rate and the real-time load rate is performed to obtain the load rate after mapping the historical load rate and the real-time load rate. The mapped load rate can accurately characterize the load condition of the candidate link, and the set formed by the candidate links whose mapped load rates are less than the load rate threshold is determined as the candidate link set, which can ensure that the candidate links in the candidate link set are all low-load links. By using the candidate links in the candidate link set to forward the traffic to be transferred out of the work queue, the load balancing of the network can be achieved.

[0133] The embodiment of the present application does not specifically limit the value of the load rate threshold in step 1031111. The load rate threshold can be set according to the actual application situation. In some feasible implementations, the load rate threshold can be a constant value. For example, the load rate threshold can be 30%, 50%, etc. In some feasible 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, when the total forwarding traffic is large, a smaller load rate threshold can be set to ensure that the candidate links in the candidate link set can carry the total forwarding traffic.

[0134] In this implementation, a set formed by any candidate links whose load rates are less than a load rate threshold is determined as a candidate link set, so as to ensure that the candidate links in the candidate link set can carry the total forwarding traffic.

[0135] In step 1031112, 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.

[0136] In this implementation, the load rates of multiple candidate links are arranged in ascending order, and the set of some candidate links arranged in front is used to determine the candidate link set. In this implementation, some candidate links arranged in front can be understood as some candidate links with low load rates.

[0137] In some feasible implementations, the load rates of multiple candidate links may be arranged in descending order, and the set of some candidate links arranged at the end of the sorting result may be determined as the candidate link set. In this implementation, some candidate links arranged at the end may be understood as some candidate links with low load rates.

[0138] 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 the candidate links.

[0139] It is worth noting that the embodiments of the present application are merely illustrative introductions of several implementation methods for determining a candidate link set, and the above implementation methods do not constitute specific limitations. In actual application, the above methods may be used to determine a candidate link set, or other methods may be used to determine a candidate link set.

[0140] Continuing from step 103111, in step 103112, based on the total forwarding traffic and the candidate link set, a target traffic forwarding path for forwarding traffic to be called out of the work queue is determined.

[0141] In this implementation, the total forwarding traffic is taken into consideration in the process of determining the target traffic forwarding path, so that it can be ensured that the selected (determined) target traffic forwarding path can carry the total forwarding traffic.

[0142] The embodiment of the present application also provides an implementation method for determining a change route of a work queue to be called out. Figure 3F , Figure 3F Show Figure 3C Step 1031 in the above process can perform iterative processing, and the iterative processing can be implemented by executing steps 103121 to 103123, which are described in detail below.

[0143] In step 103121, a target candidate link is selected from at least one candidate link included in the candidate link set.

[0144] The embodiment of the present application does not specifically limit the method for selecting the target candidate link. As a feasible 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 a feasible implementation method, a candidate link can be randomly selected from the candidate link set as the target candidate link.

[0145] 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. The embodiment of the present application also provides an implementation method for determining the candidate link. Step 103122a can be performed after step 103121, which is described in detail below.

[0146] 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.

[0147] 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.

[0148] In the embodiment of the present application, the new candidate link set is used to continue iteration, that is, continue to execute step 103121 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 target candidate link is reselected from the candidate link set.

[0149] Combine the following Figure 4AThe following describes the method for selecting target candidate links. The candidate link set is [LA-1=>LC-2, LA-1=>LC-3, LA-1=>LC-4]. The downstream 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].

[0150] In this implementation, if it is determined that 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, other candidate links are selected again from the previously constructed candidate link set as the target candidate link. In the process of selecting the target candidate link again, the process of determining the candidate link is omitted, which shortens the time spent on determining the target candidate link to a certain extent, and ensures the efficiency of traffic scheduling.

[0151] In step 103122b, 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, the path formed by the target candidate link and the downlink will be determined as the target traffic forwarding path.

[0152] In this implementation, first determine whether the remaining bandwidth of each link in the uplink containing the target candidate link can carry the total forwarding traffic. When the remaining bandwidth of each link in the uplink containing the target candidate link can carry the total forwarding traffic, then determine whether the remaining bandwidth of each link in the downlink can carry the total forwarding traffic. The uplink and downlink are described below in conjunction with specific drawings.

[0153] When the target candidate link is located in a two-layer architecture, the uplink link includes: the target candidate link. The downlink link includes: the link from the LAN core device (LA) to the target LAN access device (target LA). For example, see 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. Figure 4A In the figure, LA-3 and LA-4 are connected to the destination server, and LA-3 and LA-4 are the destination LAN access devices.

[0154] 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 way 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, please refer to Figure 4B , the uplink includes: LA-1=>LC-1 (target candidate link), LC-1=>Super-LC-1, LC-1 to Super-LC-2. The downlink of LA-1=>LC-1 may 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.

[0155] Combine the following Figure 4A The process of generating the target traffic forwarding path is introduced. 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-4 can carry the total forwarding traffic, the path LA-1=>LC-2=>LA-4 is determined as the target traffic forwarding path.

[0156] Combine the following Figure 4B The process of generating the target traffic forwarding path is described below. 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 is the target traffic forwarding path.

[0157] In step 103123, when the iteration stop condition is reached, the iteration ends.

[0158] As a feasible implementation method, the iteration stop condition includes: determining a target traffic forwarding path.

[0159] In this implementation, when a target traffic forwarding path is determined, no judgment is made as to 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.

[0160] As a feasible implementation, the iteration stopping condition includes: the candidate link set is empty.

[0161] In this implementation, for each candidate link in the candidate link set, it is determined whether its downlink link can carry the total forwarding traffic, thereby obtaining multiple target traffic forwarding paths, which can all be used to forward traffic to be transferred out of the work queue.

[0162] As a feasible implementation method, after determining the target traffic forwarding path, a target candidate link can be selected again from the candidate link set, and then it is determined whether the remaining bandwidth of the selected candidate link can carry the total forwarding traffic. As a feasible implementation method, it is possible to simultaneously determine whether the remaining bandwidth of all candidate links in the candidate link set can carry the total forwarding traffic. Both of the above two implementation methods can obtain multiple target traffic forwarding paths.

[0163] 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 for 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 among 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, and ensures the efficiency of traffic scheduling.

[0164] In step 104, based on the target address of the work queue to be called out and the target traffic forwarding path, a change route of the work queue to be called out is determined.

[0165] In the embodiment of the present application, the route change includes: destination address, egress port and next hop information, wherein the egress port and next hop information are obtained based on the target traffic forwarding path.

[0166] 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.

[0167] In some feasible implementation methods, 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 located at the core layer) of the work queue to be called out, etc.

[0168] This implementation provides a method for restoring routing. Figure 3G , Figure 3G Show Figure 3A After step 105 in the process, steps 106a to 107a may be performed, which are described in detail below.

[0169] 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.

[0170] In the 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 one of the time of generating the route change, the time of sending the route change, the time of traffic forwarding, the time of determining network congestion, and the time of determining the target traffic forwarding path.

[0171] In step 107a, in response to the duration reaching a preset time, a recovery instruction is sent to the target source LAN access device in the work queue to be called out.

[0172] In an embodiment of the present application, the recovery instruction is used to instruct the target source LAN access device to output the traffic to be called out of the work queue based on the restored congested link.

[0173] The implementation of the preset time can be set according to the demand. As a feasible implementation method, 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 a feasible implementation method, the time required to restore network congestion can be calculated based on historical data statistics, and then the preset time can be set based on the time. For example, according to the statistical results of historical data, it is shown that the time required to restore network congestion is 3 minutes, then the preset time can be set to 3 minutes.

[0174] 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.

[0175] The present application also provides a method for implementing a restoration route, which can be found in Figure 3H . Figure 3A After step 105 shown, steps 106b to 107b may be performed, which are described in detail below.

[0176] In step 106b, the congestion level of the congested link is detected.

[0177] 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 work queue to be called out.

[0178] 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.

[0179] The following is an explanation of an exemplary application of the embodiments of the present application in a practical application scenario.

[0180] 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 AI models, the instantaneous communication volume between GPU cards is large, sometimes up to more than 100 Gb / s, and the communication volume is as high as more than 100 Gb / s for a short duration. Compared with other business traffic, large AI models have very obvious characteristics: (1) Burstiness. Training tasks are calculated in parallel on different GPUs. Usually, communication will not be carried out until multiple calculation results are completed. This causes the network to be idle most of the time. A large amount of data needs to be transmitted in a short time. Taking a 200G port as an example, its peak traffic can reach 190G and last for 3s. Therefore, the traffic distribution of large AI models is uneven and bursty; (2) Periodicity. AI training tasks have a fixed iteration cycle, that is, the traffic transmission process is periodic. The calculation of a route in the embodiment of the present application can be applied to multiple model training cycles. The neural network model training task has strict requirements on the network. The general data communication network (DCN) cannot meet the requirements of the neural network model training on the network.

[0181] The infinite bandwidth technology (IB) network solution supporting RDMA can be used to meet the network requirements of neural network model training. The IB network supporting RDMA is very expensive. Therefore, the current mainstream data communication network (DCN) is based on RDMA for data transmission. However, the transmission of RDMA-based data is prone to network congestion in the application scenario of neural network models.

[0182] 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.

[0183] See also Figure 5 The infrastructure in the AI ​​big model includes a large number of computing nodes (such as HPC servers) and a series of network nodes (interactive machines). The network nodes may include but are not limited to: InfiniBand series switches, Ethernet switches, etc. The computing nodes are usually GPU servers with multiple smart network cards, where the smart network cards may include: smart network cards based on RDMA data transmission.

[0184] AI big models can be implemented through computing networks (HPC), data communication networks (DCN), etc. The network architecture of computing networks and data communication networks is the classic fat-tree architecture.

[0185] See also Figure 6 , Figure 6 A typical feature of the Fat-tree network architecture is that the convergence ratio of the entire network is 1:1. Figure 6 The bandwidth between the network port of the GPU 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 GPU server export, the total bandwidth of the LA export, and the total bandwidth of the LC export are the same.

[0186] The disaster recovery capability of the Fat-tree network architecture is related to the utilization of link bandwidth. Assuming that the link bandwidth utilization in the network is maintained at about 50%, if about half of the links or devices fail, they can still operate normally without packet loss after routing convergence. Therefore, the Fat-tree network architecture can be widely used. The Fat-tree network architecture is suitable for high-performance computing networks (HPC) and data communication networks (DCN). The following is an example of the Fat-tree network architecture in a high-performance computing network (HPC):

[0187] Compared with DCN, HPC usually maintains the bandwidth utilization between the server and LA switch at 100%. In addition, in order to avoid transmission speed reduction caused by failure, HPC is designed to have a certain amount of redundant bandwidth between LA to LC and LC to Super-LC; at the same time, in order to prevent the emergence of super elephant flows in the network (source IP, destination IP, protocol number, source port number, and destination port number are always the same), usually multiple pairs of QPs are established between the source end (source server) and the destination end (destination server), and they are evenly distributed to different LA to LC and LC to Super-LC links.

[0188] The Fat-tree network architecture in the high-performance computing network (HPC) mainly includes: HPC two-layer network architecture and HPC three-layer network architecture. Both of the above two types can cause congestion, which are introduced below.

[0189] Congestion scenarios of HPC Layer 2 network architecture:

[0190] For example, see Figure 7 , Figure 7 The provided HPC includes: load balancing of 4 QPs (①, ②, ③, ④) under the two-layer network architecture. First, assume that the server network card is 100G. There are 4 pairs of QPs (①, ②, ③, ④) between the source server 1.1.1.1 and the destination server 2.2.2.2. In the initial stage, the paths taken by the 4 pairs of QPs are different. The initial path information of the 4 pairs of QPs is shown in Table 1.

[0191] Table 1. Initial path distribution and QP status of four QPs in the HPC two-layer network architecture

[0192]

[0193] If no failure occurs, the initial path is the best. However, network failures are often unpredictable in the real world, although the probability of their occurrence is not high. Assuming that at time T, the link of the uplink LA-1=>LC-1 fails and causes the QP path numbered ① to fail, then the switch LA-1 will automatically complete the routing convergence (re-hash the path) and return the network to a steady state. During this period, the path of QP numbered ① changes as follows:

[0194] Original path: LA-1=>LC-1=>LA-3.

[0195] New path: LA-1=>LC-2=>LA-4.

[0196] A new problem arises here: the paths of QP numbered ① and QP numbered ② are exactly the same. The worse result is that the number of QPs distributed on the 100G link of LA-4=>destination server will change from 2 to 3. Figure 8 This also means that there are 3 QPs (①, ②, ④) to evenly share the downstream 100G bandwidth from LA-4 to the destination server. As a result, the transmission rate of these QPs (①, ②, ④) will be reduced from the current 50G to about 33G (the transmission delay on the service side will be significantly increased). At this time, the path distribution of these 4 QPs in the network is shown in Table 2.

[0197] Table 2. Four QP states after the failure of the HPC two-layer network architecture LA=>LC uplink (LA-1=>LC-1)

[0198]

[0199]

[0200] In fact, once a link failure occurs in the network, it is likely to cause congestion on other links. In HPC, congestion is not the common phenomenon of high traffic levels for a long time, but a short-term increase in traffic.

[0201] Fig. 9 This is the daily traffic curve of a link LA=>LC. It can be seen that the peak traffic is 42Gb (the physical port of the switch has a bandwidth of 200G). Fig.10 From the above, we can see that the ECN count has remained high since the moment of the failure. The ECN count can represent the link congestion to a certain extent.

[0202] In addition to the LA=>LC uplink failure scenario, the LC=>LA downlink is also a possible congestion phenomenon. Fig.11As shown in Figure 3, the LC=>LA downlink (LC-1=>LA-3) is congested, and the status of the 4QPs (①, ②, ③, ④) in the network is shown in Table 3. The traffic and ECN distribution of the congested link (LC-1=>LA-3) are similar to those of the uplink ( Fig.10 The above method is similar to LA-1=>LC-1 in FIG. 1 and will not be described in detail here.

[0203] Table 3. Four QP states after the failure of the HPC two-layer network architecture LC=>LA downlink (LC-1=>LA-3)

[0204]

[0205] Congestion scenarios of HPC three-layer network architecture:

[0206] 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 requirements of the business. At this time, a three-layer network architecture needs to be introduced.

[0207] The difference between the three-layer network architecture and the two-layer network architecture is that the three-layer network architecture LA and LC are not fully connected. The three-layer network architecture also introduces the concept of rails. A rail is an independent two-layer network architecture topology. Different rails are interconnected through Super-LC (super LAN core device). That is, two servers across the rail (source server, destination server) need to be interconnected with the help of Super-LC. Fig.12 shown.

[0208] by Fig.12 For example, assume that the server network card is 100G. There are 4 pairs of QPs (①, ②, ③, ④) between the cross-track source server 1.1.1.1 and the destination server 2.2.2.2. In the initial stage, the paths they take are different. The path information is shown in Table 4.

[0209] Table 4. Initial path distribution of four QPs in three-layer network architecture

[0210]

[0211] In addition to the communication traffic between the source server and the destination server across tracks going up to the third-layer devices (Super-LC-1, Super-LC-2), there is also a failure scenario within the track that will cause the traffic to bypass the third-layer devices (Super-LC-1, Super-LC-2).

[0212] like Fig.13As shown in the figure, if the link of LC-1=>LA-3 and the link of LC-1=>LA-4 fail at the same time, then LA-3 and LA-4 will cancel 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 via Super-LC-1 or Super-LC-2.

[0213] For the implementation of the bypass after the LC to LA downlink (LC-1=>LA-3) failure, please refer to Fig.13 , the path changes of QP numbered ① before and after the failure are as follows:

[0214] Original path: LA-1=>LC-1=>LA-3.

[0215] New path: LA-1=>LC-1=>Super-LC-1=>LC-2=>LA-3.

[0216] For the three-layer network architecture, the failure scenario is similar to the two-layer traffic model. Fig.12 If the link from LC-1 to Super-LC-1 or the link from Super-LC-1 to LC-3 in the QP path numbered ① fails, it may cause link congestion (LC-1=>Super-LC-2, Super-LC-2=>LC-4, LC-4=>LA-4) after the network completes automatic convergence. Fig.14 As shown, the four QPs in the network are shown in Table 5. The process of fault convergence, congestion, and service data transmission speed reduction is similar to that of the two-layer network architecture and will not be repeated here.

[0217] Table 5. Initial path distribution of four QPs in three-layer network architecture

[0218]

[0219] For the scenario where traffic bypasses the third-layer device after all LA downlink links in the track fail, if the link between the LC and Super continues to fail, other links may be congested and even the service data transmission speed may be reduced after the network completes automatic convergence. Fig.15 The following is a diagram showing the congestion situation after the link failure of LC=>LA (LC-1=>LA-3, LC-1=>LA-4), where the traffic of QP numbered ① bypasses Layer 3 and converges after the secondary 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, so the details are not repeated here. The path changes of QP numbered ① are as follows:

[0220] Original path: LA-1=>LC-1=>Super-LC-1=>LC-3=>LA-3.

[0221] New path: LA-1=>LC-1=>Super-LC-2=>LC-4=>LA-4.

[0222] It can also be seen that the three pairs of QPs ①, ② and ④ will evenly share the 100G bandwidth from LA-4 to the destination server, and their transmission rates will drop from 50G to about 33.3G, and the ECN of LC-4=>LA-4 will increase significantly. That is, LC-4=>LA-4 is congested. When the network is congested, you can only rely on manual troubleshooting and fault location, or wait for the network to recover. Manual troubleshooting takes a long time.

[0223] The embodiment of the present application injects 32-bit BGP routes into the access layer switch (LA). Through the above method, a part of the traffic on the congested link is automatically dispatched to a group of links with low load, and the congestion relief time is stabilized at about 3 minutes.

[0224] The embodiments 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. In general, when the ECN count is lower than 500, the service is basically unaware and the AI ​​training task is not affected; but the network usually configures a lower (such as 200, 100, etc.) ECN count threshold, and then observes 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 embodiments of the present application can quickly solve the problem of network congestion, it will not affect the training process of the AI ​​large model.

[0225] Whether it is a small or medium-sized GPU server cluster with 4K cards or less, or a large / super-large GPU server cluster with more than 4K cards, when problems such as increased communication latency, reduced speed, or even freeze occur, if the problem is related to the network, then the network manifestation is often a surge in the ECN count on a certain link, and it remains high, such as Fig.10 Under normal circumstances, the ECN count of the QP traffic on the link is relatively low when the load is balanced, as shown in Fig.16 It is the daily ECN statistics curve of a port.

[0226] 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 and is also indirectly fed back to the GPU server side.

[0227] Combine the following Fig.17 , introduces the scheduling method for network congestion provided in an embodiment of the present application.

[0228] 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 scheduling method for network congestion provided in the embodiment of the present application.

[0229] The specific processing process is as follows:

[0230] First, the controller (control module) pulls the five-tuple information of all QPs on the congested link from the flow collection module (sflow), sorts the average flow of the last 6 sampling periods, and finds the QP with the largest flow (which can be expressed as QP-A in the embodiment of the present application).

[0231] Then, the controller 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.

[0232] Next, based on the destination IP 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.

[0233] 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.

[0234] Once the route is sent to the source LA, the traffic of QP-A will bypass the congested link. After a period of time, the detection platform receives the ECN alarm recovery (path restoration).

[0235] The following introduces the routing calculation method through the two-layer network architecture and the three-layer network architecture:

[0236] The routing calculation method under the two-layer network architecture is as follows:

[0237] After finding four low-load links on the source LA, the LC is locked. This process only requires one deterministic hash algorithm to determine the new path (network forwarding path) of the QP. Fig.18 and Fig.19 Specific instructions.

[0238] Step 11: Find the source LA.

[0239] The source LA is the LA to which the source server is connected.

[0240] Step 12: Add up the flows of QPs with the same destination IP and QP-A in all links from the source LA to LC, and record it as the total flow (total_flow_size).

[0241] Step 13: Obtain the traffic (referred to as telemetry traffic) obtained through high-speed data collection (telemetry) technology on all links from the source end LA to LC, and sort them in ascending order.

[0242] Step 14: Select N source-end LA-LC links (eg, N=4) with the lowest traffic load rates from all source-end LA-LC links.

[0243] See also Fig.19 , LA-01 to LC-04 is a congested link. The four source LA (LA-01) to LC links with the lowest load rates are: LA-01=> LC-02 link, LA-01=> LC-03 link, LA-01=> LC-30 link, LA-01=> LC-32 link.

[0244] Step 15: Determine whether the remaining bandwidth of the source LA to LC link can carry the traffic of total_flow_size. If the remaining bandwidth of the source LA to LC link can carry the traffic of total_flow_size, execute step 16; otherwise, execute step 14.

[0245] Step 16: According to the deterministic hash algorithm, the destination LA of QP-A is obtained, and it is determined whether the remaining bandwidth of the link from LC to the destination LA can carry the traffic of total_flow_size. If the remaining bandwidth from LC to the destination LA can carry the traffic of total_flow_size, then step 17 is executed.

[0246] The destination LA is the LA connected to the destination server.

[0247] Step 17: Based on the source LA to LC link and the LC to target LA link, a network forwarding path is obtained.

[0248] The routing calculation method under the three-layer network architecture is as follows:

[0249] 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. Fig. 20 Specific instructions.

[0250] Step 21: Find the source LA.

[0251] Step 22: Add up the QP flows with the same destination IP and QP-A in all links from the source LA to LC, and record it as total_flow_size.

[0252] Step 23: Obtain telemetry traffic from all links from source LA to LC, and sort them in ascending order.

[0253] Step 24: Select N source-end LA-LC links (eg, N=4) with the lowest traffic load rates from all source-end LA-LC links.

[0254] 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 source LA to LC link can carry the total_flow_size, execute step 26.

[0255] Step 26: According to the deterministic hash algorithm, the Super-LC of the QP-A path is obtained, and it is determined whether the remaining bandwidth from LC to Super-LC can carry the traffic of total_flow_size. If the remaining bandwidth from LC to Super-LC can carry the traffic of total_flow_size, execute 27; otherwise, execute step 24.

[0256] Step 27: According to the deterministic hash algorithm, the downstream LC of the Super-LC of QP-A is obtained, and it is determined whether the remaining bandwidth from the Super-LC to the downstream LC can carry the traffic of total_flow_size. If the remaining bandwidth from the Super-LC to the downstream LC can carry the traffic of total_flow_size, execute 28; otherwise, execute step 24.

[0257] Step 28: According to the deterministic hash algorithm, the destination LA of QP-A is obtained, and it is determined whether the remaining bandwidth from the downstream LC to the destination LA can carry the traffic of total_flow_size. If the remaining bandwidth from the downstream LC to the destination LA can carry the traffic of total_flow_size, execute 29; otherwise, execute step 24.

[0258] 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.

[0259] Regarding the routes sent to the target LA, when there is no congestion, the device BGP announces the / 26 aggregate routes in the network. Taking the destination server 2.2.2.2 as an example, the traffic from the LA-01 device to it uses 2.2.2.0 / 24.

[0260] When network congestion occurs, the controller will write a BGP route to the source LA, with the destination address 2.2.2.2, mask length 32, path (as-path) attribute and optional transparent transmission (community) attribute inherited from its parent route 2.2.2.0 / 24, and the next hop information (nexthop) is taken from the subset of the parent route, where the next hop of the parent route is the IP addresses of all LC interconnected ports that have established BGP neighbors with the LA.

[0261] To avoid routing loops and traffic black holes, the routes written by the controller will also carry the network no-advertise attribute, prohibiting the device from publishing it to other devices (peers); at the same time, when the parent route 2.2.2.0 / 24 is revoked or the attribute changes, the controller will synchronously update the 2.2.2.2 / 32 child route.

[0262] After adopting the scheduling method provided in the embodiment of the present application, the ETC count of the network can be found in Fig.21 The position indicated by the arrow is the moment when the controller finds the source LA corresponding to the maximum traffic QP after analyzing all flows of the congested link through sflow and aligns and sends the 32-bit route. It can be clearly seen that the ECN count is almost reduced to 0 after scheduling. For specific data, please refer to Table 6. The network congestion is eliminated immediately after scheduling.

[0263] Table 6. Details of ECN values ​​3 minutes before and after controller scheduling

[0264]

[0265]

[0266] It is worth noting that the above embodiment is only an exemplary embodiment of a method for implementing 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).

[0267] The following continues to describe the exemplary structure of the network congestion scheduling device 453 provided in the embodiment of the present application implemented as a software module. In some embodiments, Figure 2BAs shown, the software modules stored in the network congestion scheduling device 453 of 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 .

[0268] 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.

[0269] The second determining module 4532 is used to determine the to-be-called-out work queue on the congested link from multiple work queues on the congested link.

[0270] The third determination module 4533 is used 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.

[0271] The fourth determining module 4534 is used to determine the change 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.

[0272] The sending module 4535 is used 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.

[0273] In the above scheme, the network congestion scheduling device 453 also includes a fifth determination module, which is used 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 used 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.

[0274] In the above scheme, the third determination module 4533 is also used 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.

[0275] In the above scheme, the third determination module 4533 is also used 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 containing 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, the path formed by the target candidate link and the downlink is determined as the target traffic forwarding path; when the iteration stop condition is reached, the iteration is ended, wherein the iteration stop condition includes one of the following: determining a target traffic forwarding path; the candidate link set is empty.

[0276] In the above scheme, the third determination module 4533 is also used to delete the target candidate link from the candidate link set to 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.

[0277] In the above scheme, when the target candidate link is located under the two-layer architecture, the downlink link includes: a link from the LAN core device to the destination LAN access device;

[0278] 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.

[0279] In the above scheme, the third determination module 4533 is also used to determine the set formed by any candidate links as the candidate link set when the load rate of any candidate link is less than the load rate threshold; or to sort the multiple candidate links in ascending order based on the load rates of the multiple candidate links, and determine the set of some candidate links arranged in 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 after mapping the historical load rate and the real-time load rate.

[0280] In the above scheme, the third determination module 4533 is also used 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, so as to obtain the load rate after mapping the historical load rate and the real-time load rate.

[0281] In the above scheme, when the number of target traffic forwarding paths is multiple 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.

[0282] In the above scheme, the network congestion scheduling device 453 further includes a recovery module, which is used to count the duration of the traffic to be transferred out of the work queue passing through the target traffic forwarding path;

[0283] 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.

[0284] In the above scheme, the network congestion scheduling device 453 also includes a recovery module, which is used 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 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.

[0285] In the above scheme, the second determination module is also used to determine the traffic parameters of each work queue on the congested link within multiple sampling periods; based on the traffic parameters, the work queues to be called out are screened out from the multiple work queues on the congested link, wherein the traffic parameters include one of the following: the peak value of the traffic; the average traffic value; the traffic value after weighted summation of the traffic based on the duration of the traffic within multiple sampling periods.

[0286] The embodiment of the present application provides a computer program product or a 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 the processor executes the computer instructions, so that the controller executes the above-mentioned scheduling method for network congestion in the embodiment of the present application.

[0287] The embodiment of the present application provides a computer-readable storage medium storing computer-executable instructions, wherein the 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 scheduling method for network congestion provided in the embodiment of the present application, for example, Figure 3A A scheduling method for network congestion is shown.

[0288] 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 it may be various devices including one or any combination of the above memories.

[0289] 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.

[0290] 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 storing 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 coordinated files (e.g., files storing one or more modules, subroutines, or code portions).

[0291] As an 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 at multiple sites and interconnected by a communication network.

[0292] It is understandable that in the embodiments of the present application, related data such as user information is 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 need to comply with relevant laws, regulations and standards of relevant countries and regions.

[0293] The above are only embodiments of the present application and are not intended to limit the protection scope of the present application. Any modifications, equivalent substitutions and improvements made within the spirit and scope of the present application are included in the protection scope of the present application.

Claims

1. A method for scheduling network congestion, characterized in that: include: 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, 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; 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, characterized in that: Before determining the target traffic forwarding path for forwarding the to-be-called-out work queue 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; Adding the traffic of the first work queue to determine the total forwarding traffic; The determining, based on the traffic of the link in the network, a target traffic forwarding path for forwarding the traffic to be called out of the work queue comprises: Based on the total forwarding traffic and the traffic of the links in the network, a target traffic forwarding path for forwarding the traffic to be called out of the work queue is determined.

3. The scheduling method according to claim 2, characterized in that: The determining, based on the total forwarding traffic and the traffic of the links in the network, a target traffic forwarding path for forwarding the traffic to be called out of the work queue comprises: 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; Based on the total forwarding traffic and the candidate link set, a target traffic forwarding path for forwarding the traffic to be transferred out of the work queue is determined.

4. The scheduling method according to claim 3, characterized in that: The determining, based on the total forwarding traffic and the candidate link set, a target traffic forwarding path for forwarding the traffic to be called out of the work queue comprises: 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, characterized in that: 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, characterized in that: When the target candidate link is located under a two-layer architecture, the downlink link includes: a link from the LAN core device 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, characterized in that: 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 of the candidate links is less than a load rate threshold, determining a set formed by any of the candidate links as the candidate link set; 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 to the real-time load rate.

8. The scheduling method according to claim 7, characterized in that: 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 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 mapped from the historical load rate and the real-time load rate.

9. The scheduling method according to claim 1, characterized in that: 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 claim 1, characterized in that: 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 claim 1, characterized in that: 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 claim 1, characterized in that: 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, characterized in that: include: 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; A second determining module, configured to determine a to-be-called-out work queue on the congested link from a plurality of work queues on the congested link; A third determination module, configured to determine a target traffic forwarding path for forwarding the traffic to be transferred out of the work queue based on the traffic of the link in the network; A fourth determining module, configured to determine a changed 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; A sending module is used 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, characterized in that: The electronic device comprises: 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, characterized in that: A computer program or a computer executable instruction is stored, and 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.

16. A computer program product comprising a computer program or computer executable instructions, characterized in that When the computer program or computer executable instructions are executed by a processor, the method for scheduling network congestion according to any one of claims 1 to 12 is implemented.