Data stream transmission method and computing device
By determining and switching the communication link of the target flow between the computing nodes, the load uneven problem of ECMP in the ‘less flow’ and ‘big flow’ scenarios is solved, and data transmission efficiency is improved, especially in AI big model training, network performance is significantly improved.
Patent Information
- Application Number
- CN202510400381.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2025-07-25
AI Technical Summary
In data stream transmission between computing nodes, existing traffic equalization mechanisms such as ECMP lead to uneven load on communication links in the ‘less flow’ and ‘large flow’ scenarios, resulting in increased network load and reduced data transmission efficiency.
By determining the target stream and switching it from the original communication link to the accommodable target communication link, optimizing the transmission path of the data stream, reducing the number of data streams on the original link, and increasing the transmission rate of other data streams.
It improves the congestion of communication links and improves the overall data transmission efficiency, especially in high-performance computing scenarios such as AI big model training.
Smart Images

Figure CN120378363A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of computing devices, and in particular, to a data stream transmission method and a computing device. Background Art
[0002] In a network composed of multiple computing nodes (such as servers) and a switching mechanism, data is transmitted between computing nodes through the switch, so there are many communication links to choose from when transmitting data streams.
[0003] Traditional traffic balancing mechanisms, such as the Equal-Cost Multi-Path (ECMP) traffic balancing mechanism, are created to cope with the "multi-stream" and "small-stream" scenarios of general computing. However, in the data transmission scenarios of "few streams" and "large streams" where the number of data streams is small and the amount of data in the data streams is large, it will cause uneven traffic on the communication links, with some communication links having a heavy load and some being relatively idle. In this way, as long as there is a load imbalance on one communication link resulting in network load, even if other communication links are unobstructed, it will cause a significant increase in the collective communication time and affect the efficiency of data transmission.
[0004] Therefore, a data stream transmission method that can improve the congestion of communication links for data streams in the network is needed. Summary of the Invention
[0005] Embodiments of the present application provide a data stream transmission method and a computing device for improving the congestion of communication links for data streams in the network.
[0006] To achieve the above technical objectives, the present application adopts the following technical solutions:
[0007] In a first aspect, embodiments of the present application provide a data stream switching method applied to a computing device; the method includes:
[0008] Determine a target stream, where the target stream is a data stream that meets a first condition between a first computing node and a second computing node, and the first condition is used to indicate that the original communication link corresponding to the target stream needs to be switched;
[0009] Determine a target communication link, where the target communication link is a communication link that meets a second condition between the first computing node and the second node, and the second condition is used to indicate that the target communication link can accommodate the target stream;
[0010] Switch the target stream from the original communication link to be transmitted on the target communication link.
[0011] The technical solution provided by the embodiment of the present application at least brings the following beneficial effects: Determine the target flow for which the original communication link needs to be switched between the first computing node and the second computing node, and switch the target flow to the target communication link that can accommodate the target flow. Then, the target flow is no longer transmitted on the original communication link, the speed of other data flows except the target flow transmitted on the original communication link can be increased, the congestion condition of the original communication link is improved, and the overall data transmission efficiency is also improved.
[0012] Exemplarily, the original communication link is the communication link allocated for the target flow by the original link allocation scheme. Before the target flow switches the communication link, the target flow is transmitted on the original communication link.
[0013] In a possible implementation manner, determining the target flow includes: obtaining the switching parameter of the data flow, where the switching parameter is a parameter indicating whether the data flow needs to switch the communication link; and determining the data flow whose switching parameter satisfies the first condition as the target flow.
[0014] In a possible implementation manner, the switching parameter is the transmission rate of the data flow, and the first condition includes that the reduction amount of the transmission rate is greater than a preset threshold; determining the data flow whose switching parameter satisfies the first condition as the target flow includes: determining the data flow whose reduction amount of the transmission rate is greater than the preset threshold as the target flow.
[0015] In a possible implementation manner, determining the target communication link includes: determining the maximum value of the throughput of each switching node of the original communication link for the target flow; determining at least one candidate communication link between the first computing node and the second computing node except the original communication link; determining the remaining capacity of each candidate communication link; the remaining capacity of the communication link is used to represent the minimum value of the remaining throughput of each switching node in the communication link, and the remaining throughput of the switching node is the difference between the maximum throughput and the used throughput of the switching node; and determining one communication link from the candidate communication links whose remaining capacity is greater than the maximum value as the target communication link.
[0016] In a possible implementation manner, before determining the target flow, the method further includes: determining the congested link, where the congested link is the communication link that is congested between the first computing node and the second computing node. Determining the target flow includes: determining the target flow from the data flows transmitted on the congested link.
[0017] In a possible implementation manner, determining the congested link includes: obtaining the congestion parameters of each computing node and each switching node in the communication link, where the congestion parameters are used to indicate whether congestion occurs when the node transmits the data flow; if there is a computing node and / or a switching node in the communication link whose congestion parameters satisfy the third condition, determining the communication link as the congested link, and the third condition is used to indicate that the communication link is congested.
[0018] In a possible implementation, obtaining congestion parameters of each computing node and each switching node in the communication link includes: in response to entering a new collection period, obtaining the congestion parameters of each computing node and each switching node in the communication link during the previous collection period; the congestion parameters of the computing nodes and / or switching nodes in the congested link during the previous collection period satisfy a third condition.
[0019] In a possible implementation, the method further includes: counting the communication links of each data stream; the communication link includes the port identifier of the switching node on the communication link; screening out the data streams transmitted in the congested link according to the port identifier of the switching node on the congested link.
[0020] In a possible implementation, switching the target stream from the original communication link to be transmitted on the target communication link includes: sending a control instruction to the target switching node, where the target switching node is a switching node shared by the original communication link and the target communication link, and the control instruction is used to instruct the target switching node to switch the outgoing port of the target stream from the first port to the second port, the first port is the port on the original communication link, and the second port is the port on the target communication link.
[0021] In a second aspect, the present application provides a data stream transmission device, including a processing module;
[0022] The processing module is configured to: determine a target stream, where the target stream is a data stream satisfying a first condition between a first computing node and a second computing node, and the first condition is used to characterize that the original communication link corresponding to the target stream needs to be switched;
[0023] Determine a target communication link, where the target communication link is a communication link satisfying a second condition between the first computing node and the second node, and the second condition is used to characterize that the target communication link can accommodate the target stream;
[0024] Switch the target stream from the original communication link to be transmitted on the target communication link.
[0025] In a possible implementation, the data stream transmission device further includes an obtaining module, where the obtaining module is configured to obtain a switching parameter of the data stream, and the switching parameter is a parameter characterizing whether the data stream needs to switch the communication link; specifically, the processing module is configured to determine the data stream with the switching parameter satisfying the first condition as the target stream.
[0026] In a possible implementation, the switching parameter is the transmission rate of the data stream, and the first condition includes that the reduction amount of the transmission rate is greater than a preset threshold; specifically, the processing module is configured to determine the data stream with the reduction amount of the transmission rate greater than the preset threshold as the target stream.
[0027] In a possible implementation, the processing module is specifically configured to: determine the maximum value among the throughputs of each switching node of the original communication link for the target flow; determine at least one candidate communication link between the first computing node and the second computing node other than the original communication link; determine the remaining capacity of each candidate communication link; the remaining capacity of a communication link is used to represent the minimum value among the remaining throughputs of each switching node in the communication link, and the remaining throughput of a switching node is the difference between the maximum throughput of the switching node and the used throughput; determine a communication link from the candidate communication links with a remaining capacity greater than the maximum value as the target communication link.
[0028] In a possible implementation, the processing module is further configured to determine a congested link, where the congested link is a communication link where congestion occurs between the first computing node and the second computing node. The processing module is specifically configured to determine the target flow from the data flows transmitted on the congested link.
[0029] In a possible implementation, the acquisition module is further configured to acquire congestion parameters of each computing node and each switching node in the communication link, where the congestion parameters are used to represent whether congestion occurs when the node transmits data flows; the processing module is specifically configured to, if there are congestion parameters of a computing node and / or a switching node in the communication link that satisfy a third condition, determine the communication link as a congested link, and the third condition is used to represent that congestion occurs in the communication link.
[0030] In a possible implementation, the acquisition module is specifically configured to, in response to entering a new acquisition period, acquire the congestion parameters of each computing node and each switching node in the communication link in the previous acquisition period; there are congestion parameters of a computing node and / or a switching node in the congested link in the previous acquisition period that satisfy the third condition.
[0031] In a possible implementation, the processing module is further configured to: count the communication links of each data flow; the communication link includes the port identifier of the switching node on the communication link; filter out the data flows transmitted on the congested link according to the port identifier of the switching node on the congested link.
[0032] In a possible implementation, the processing module is specifically configured to send a control instruction to the target switching node, where the target switching node is a switching node common to the original communication link and the target communication link, and the control instruction is used to instruct the target switching node to switch the outgoing port of the target flow from the first port to the second port, the first port is the port on the original communication link, and the second port is the port on the target communication link.
[0033] In a third aspect, the present application provides a computing device, including a memory, a processor, and a computer program stored on the memory, and the processor executes the computer program to implement any one of the data flow transmission methods provided in the first aspect above.
[0034] Fourthly, the present application provides a computer-readable storage medium, on which computer instructions are stored. When the computer instructions are executed by a processor, any of the data stream transmission methods provided in the first aspect above is implemented.
[0035] Fifthly, the present application provides a computer program product, including computer instructions. When the computer instructions are executed by a processor, any of the data stream transmission methods provided in the first aspect above is implemented.
[0036] For the specific descriptions of the second to fifth aspects and their various implementation manners in the present application, reference may be made to the detailed descriptions in the first aspect and its various implementation manners; and, for the beneficial effects of the second to fifth aspects and their various implementation manners, reference may be made to the beneficial effect analysis in the first aspect and its various implementation manners, which will not be elaborated herein.
[0037] These aspects or other aspects of the present application will be more clearly understood in the following description. Description of the Drawings
[0038] Figure 1 It is a schematic structural diagram of a data stream transmission system provided by an embodiment of the present application;
[0039] Figure 2 It is a schematic structural diagram of a target network for data stream transmission provided by an embodiment of the present application;
[0040] Figure 3 It is a schematic structural diagram of a management node provided by an embodiment of the present application;
[0041] Figure 4 It is a schematic hardware structure diagram of a computing device provided by an embodiment of the present application;
[0042] Figure 5 It is a flowchart of a data stream transmission method provided by an embodiment of the present application;
[0043] Figure 6 It is a schematic logical diagram of a data stream transmission method provided by an embodiment of the present application;
[0044] Figure 7 It is a schematic structural diagram of a data stream transmission device provided by an embodiment of the present application. Detailed Embodiments
[0045] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0046] It should be noted that in the embodiments of the present application, words such as "exemplary" or "for example" are used to represent examples, illustrations or explanations. Any embodiment or design solution described as "exemplary" or "for example" in the embodiments of the present application should not be construed as being more preferred or having more advantages than other embodiments or design solutions. Rather, the use of words such as "exemplary" or "for example" is intended to present relevant concepts in a specific manner. The terms "first" and "second" are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of such features. In the description of the present application, unless otherwise specified, the meaning of "a plurality" is two or more.
[0047] In high-performance computing scenarios, multiple computing nodes need to transfer data to each other. Since the number of connection ports on the computing nodes is limited, when the number of computing nodes is relatively large, there may be a situation where some computing nodes cannot be connected. Therefore, switches are used to achieve the interconnection between different computing nodes, and there can also be switches between switches to provide multiple communication links for different computing nodes. For example, in the scenario of AI large model training, AI large model training requires more processors to participate in parallel computing than general computing to accelerate the training process of the AI large model. Common parallel computing methods include: Data Parallelism (DP) (dividing the training data set into multiple parts and training in parallel to reduce the training time), Pipeline Parallelism (PP) (deploying different layers of the model to different graphics processors to reduce the memory requirements of the graphics processors during the training process of the large model), and Tensor Parallelism (TP) (splitting the internal parameters and computing tasks of the model to different graphics processors, so that the number of parameters on each graphics processor is greatly reduced, thereby enabling the training of a larger model).
[0048] In a network composed of multiple computing nodes (such as servers) and switches, data is transferred between computing nodes through switches, so there are many communication links to choose from when the data stream is transmitted. It can be understood that the efficient completion of high-performance computing, such as AI large model training, depends on the improvement of the congestion situation of the communication links of the data stream in the network.
[0049] An embodiment of the present application provides a data stream transmission method. A target stream for which the original communication link needs to be switched is determined between a first computing node and a second computing node, and the target stream is switched to a target communication link that can accommodate the target stream. Then, the target stream is no longer transmitted on the original communication link, and the transmission rate of other data streams except the target stream transmitted on the original communication link can be increased, the congestion condition of the original communication link is improved, and the overall data transmission efficiency is also improved.
[0050] Taking the AI large model training scenario as an example, in the RoCE (RDMA over Converged Ethernet) network for AI large model training, the mainstream is the hash (HASH) per-flow routing selection based on Equal-Cost Multi-Path Routing (ECMP). Compared with general computing, the traffic model characteristics of AI large model training are "few flows" and "large flows". General computing is short connection, and the number of data streams on each server can reach hundreds of thousands, while in AI large model training, the servers are long connection, and the number of data streams on each server is only a few hundred, so the traffic model characteristic of AI large model training is "few flows". Compared with general computing which mainly has small flows in KBytes / MBytes, the traffic in the servers during AI large model training is mainly large flows in GBytes, so the traffic model characteristic of AI large model training is "large flows". ECMP is a hop-by-hop flow-based load balancing strategy. When a router finds multiple optimal links for the same destination address, it will update the routing table, add multiple rules for this destination address, corresponding to multiple next hops. These links can be used simultaneously to forward data and increase the bandwidth.
[0051] Based on flow load sharing (hash): The router divides the data into different flows according to the five-tuple information of the IP packet (which refers to a set composed of five quantities: source IP address, source port, destination IP address, destination port, and transport layer protocol. For example: 192.168.1.1, 10000, TCP, 121.14.88.76, 80 constitutes a five-tuple). IP packets with the same five-tuple information belong to the same flow. When forwarding data, the router sends different data flows out sequentially from multiple communication links according to the algorithm.
[0052] Therefore, in the scenario of training large AI models, when multiple different data streams are transmitted on the same communication link, the communication link may become congested. By using the method of the embodiments of this application, a target stream to be switched is selected and switched to a target communication link that can accommodate the target stream. As a result, the data stream transmitted on the original communication link for transmitting the target stream is reduced, the transmission rate of other data streams except the target stream on the original communication link can be increased, the congestion condition of the original communication link is improved, and the overall data transmission efficiency is also improved.
[0053] Figure 1 FIG. shows a data stream transmission system to which the data stream transmission method provided by this application is applicable. As Figure 1 shown, the data transmission stream system 1 includes: a management node 10, a plurality of computing nodes 20, and a plurality of switching nodes 30.
[0054] Among them, communication connections are established between the management node 10 and the computing nodes 20 and the switching nodes 30 respectively. It should be understood that the connection method can be a wireless connection, such as a Bluetooth connection, a wireless fidelity (Wi-Fi) connection, etc.; or, the connection method can also be a wired connection, such as an optical fiber connection, etc., which is not limited herein.
[0055] In some implementation manners, the target network includes a plurality of computing nodes 20 and a plurality of switching nodes 30. The plurality of computing nodes 20 perform data stream transmission in the target network through the switching nodes 30, and at least one communication link formed by the switching nodes 30 connects different computing nodes. Exemplarily, in the scenario of training large AI models, the target network can be a RoCEv2 network, where the server on which the graphics processor for performing data calculation tasks is deployed is the computing node 20. In other examples, the target network can also be a RoCE v1 network, etc.
[0056] Since this application is directed to the data transmission scenarios of "few streams" and "large streams", the computing nodes 20 and the switching nodes 30 at least form a three-layer network architecture as shown in Figure 2 FIG. The computing nodes 20 are one layer, the switching nodes 30 connected to the computing nodes 20 are the second layer, and the switching nodes 30 for connecting the second-layer switching nodes 30 are the third layer. If the three-layer architecture cannot meet the connection requirements between the computing nodes in actual applications, there can also be fourth-layer, fifth-layer,..., Nth-layer switching nodes 30. It should be understood that if there is only a two-layer network architecture, that is, there is no Figure 2 the S-type switch shown in FIG., it means that the number of communication links is limited, and the limited communication links between the computing nodes will have many problems such as slow transmission and transmission congestion in the face of the data transmission scenarios of "few streams" and "large streams", and cannot meet the data transmission requirements of "few streams" and "large streams".
[0057] In some implementations, the switching node 30 is a switch, which may include Figure 2 the S-type switch, L-type switch, etc. shown in
[0058] In some implementations, the management node 10 is used to obtain the operation data of each port in the computing node 20 and the switching node 30 through the communication connections with the computing node 20 and the switching node 30, so as to determine the target flow that needs to switch the original communication link and the target communication link that can accommodate the target flow, perform communication link switching on the target flow, and switch the target flow from the original communication link to the target communication link that can accommodate the target flow for transmission.
[0059] Based on this, the specific structure of the management node 10 may be as Figure 3 shown, including: a port performance collector, a port flow collector, a target flow collector, a network topology collector, a routing configurator, and an analyzer.
[0060] The port performance collector is used to collect the port performance data of the switching node 30 and send the collected port performance data to the analyzer, so that the analyzer can monitor the congestion situation of each communication link based on the port performance data.
[0061] The port flow collector is used to collect the data of the data streams transmitted by each port of the switching node 30 and send the data of the data streams transmitted by each port of the switching node 30 to the analyzer, so that the analyzer can monitor the transmission situation of each data stream based on these data.
[0062] The target flow collector is used to collect the relevant data of the target flow in the communication link.
[0063] The network topology collector is used to collect the topology data required for communication link calculation when the data stream is switched.
[0064] The routing configurator is used to implement the communication link switching of the data stream.
[0065] The analyzer is used to monitor the congestion situation of the communication link and the transmission situation of the data stream, perform calculation operations in the communication link switching of the data stream, and is also used to control the routing configurator to implement the communication link switching of the data stream.
[0066] In some implementations, the management node 10 is a computing device that can control the communication link switching of the data streams transmitted between the computing nodes 20. For example, the management node 10 may be a single server or a server cluster.
[0067] In some implementations, the computing node 20 is a device capable of data processing, and data stream transmission is performed between the computing nodes 20. For example, the computing node can be a separate server with a graphics processor deployed in it to perform computing and processing on the data in the AI large model training scenario.
[0068] Exemplarily, since the management node 10 does not need to perform data computing, the management node 10 can be a general-purpose server with low requirements for computing performance, while the computing node 20 needs to perform data stream transmission and data processing, so the computing node 20 can be a high-performance server with high requirements for computing performance. For example, in the AI large model training scenario, the computing node 20 can be a server on which a graphics processor for performing data computing tasks is deployed.
[0069] In some implementations, the management node 10 and the computing node 20 can be Figure 1 shown as independent devices.
[0070] Optionally, the management node 10 can be integrated on one of the computing nodes 20 of the data stream transmission system 1. It should be understood that the computing node 20 is usually high-performance, and of course, the computing resources of the computing node 20 can be used to implement the functions of the management node 10. However, considering the full utilization of the computing resources of the computing node 20, the computing resources of the computing node 20 are usually not used to implement the functions of the management node 10.
[0071] Figure 4 This is a schematic diagram of the hardware structure of a computing device provided by an embodiment of the present application. The hardware structure of the above management node 10 includes Figure 4 the components included in the shown computing device. Refer to Figure 4 , Figure 4 The shown computing device may include: a processor 201, a memory 202, a communication interface 203, and a bus 204. The processor 201, the memory 202, and the communication interface 203 can be connected through the bus 204.
[0072] The processor 201 is the control center of the computing device. It can be a general-purpose central processing unit such as a central processing unit (CPU), or other general-purpose processors. Among them, the general-purpose processor can be a microprocessor or any conventional processor. In the embodiments of the present application, the data stream transmission method can be executed by the processor 201 in the computing device.
[0073] As an example, the processor 201 can include one or more CPUs, such as Figure 4 the CPU 0 and CPU 1 shown in
[0074] The memory 202 can be a read-only memory (ROM), or other types of static storage devices that can store static information and instructions, or other types of dynamic storage devices that can store information and instructions. It can also be an electrically erasable programmable read-only memory (EEPROM), a magnetic disk storage medium, or other magnetic storage devices, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. In the embodiments of the present application, the memory 202 in the computing device can be used to store the transmission situation of data streams, the data of the switching node ports, and so on.
[0075] In a possible implementation, the memory 202 can exist independently of the processor 201. The memory 202 can be connected to the processor 201 through the bus 204 and is used to store data, instructions, or program code. When the processor 201 calls and executes the instructions or program code stored in the memory 202, the data stream transmission method provided by the embodiments of the present application can be implemented.
[0076] In another possible implementation, the memory 202 can also be integrated with the processor 201.
[0077] The communication interface 203 is used for the computing device to be connected to other devices through a communication network. The communication network can be an Ethernet, a radio access network (RAN), a wireless local area network (WLAN), etc. The communication interface 203 can include a receiving unit for receiving data and a transmitting unit for transmitting data.
[0078] The bus 204 can be an industry standard architecture (ISA) bus, a peripheral component interconnect (PCI) bus, an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the sake of simplicity of representation, Figure 4 only a thick line is used to represent it in the figure, but it does not mean that there is only one bus or one type of bus.
[0079] It should be noted that Figure 4 the structure shown in the figure does not constitute a limitation on the computing device. ExceptFigure 4 In addition to the components shown, the computing device may also include more or fewer components than shown, or combine certain components, or have a different component arrangement.
[0080] The implementation manners of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0081] The data stream transmission method provided by the embodiments of the present application can be executed by the management node 10 in the data stream transmission system 1.
[0082] As Figure 5 shown, the embodiments of the present application provide a data stream transmission method, and the method includes the following steps:
[0083] S101. Determine a target stream.
[0084] Among them, the target stream is a data stream that satisfies a first condition between a first computing node and a second computing node, and the first condition is used to characterize that the original communication link corresponding to the target stream needs to be switched. The first computing node and the second computing node are any two computing nodes in the target network, and the specific type of the target network is not limited. In the present application, the target network is taken as an example of a RoCE v2 network for illustration.
[0085] The original communication link is the communication link allocated by the original link allocation scheme for the target stream. Before the target stream switches the communication link, the target stream is transmitted on the original communication link. For example, in the scenario of AI large model training, first, a communication link is allocated for each data stream through ECMP, and the data stream is transmitted on the corresponding communication link, and this communication link is the original communication link corresponding to the data stream.
[0086] In some implementation manners, step S101 may be specifically implemented as: obtaining a switching parameter of the data stream, where the switching parameter is a parameter characterizing whether the data stream needs to switch the communication link; and determining the data stream whose switching parameter satisfies the first condition as the target stream.
[0087] For example, the switching parameter may be the transmission rate of the data stream, then the first condition includes that the reduction amount of the transmission rate is greater than a preset threshold, and the data stream whose reduction amount of the transmission rate is greater than the preset threshold is determined as the target stream. When the reduction amount of the transmission rate of the data stream is greater than the preset threshold, it indicates that the reduction amplitude of the transmission rate of the data stream is relatively large. Transmitting it on the original communication link not only requires a longer transmission time but also affects the transmission rate of other data streams. Therefore, the data stream whose reduction amount of the transmission rate is greater than the preset threshold can be selected as the target stream for communication link switching.
[0088] In another example, the switching parameter can also be the total data volume of the data stream. The first condition is that the total data volume is greater than a preset data volume, and the data stream with a total data volume greater than the preset data volume is determined as the target stream. When the transmission rates are comparable, a data stream with a larger total data volume requires a longer transmission time and occupies more transmission bandwidth, affecting the transmission rates of other data streams. Therefore, a data stream with a total data volume greater than the preset data volume can be selected as the target stream for communication link switching.
[0089] In yet another example, the switching parameter can also be the number of data streams transmitted in the original communication link corresponding to the data stream. The first condition is that the number of data streams transmitted in the original communication link corresponding to the data stream is greater than a preset value, and the data stream with the number of data streams transmitted in the original communication link corresponding to it being greater than the preset value is determined as the target stream. The more data streams are transmitted in the original communication link, the less transmission bandwidth is allocated to each data stream, and the transmission rate of the data stream will be affected. Therefore, a data stream with the number of data streams transmitted in the original communication link being greater than the preset value can be selected as the target stream for communication link switching.
[0090] By means of the switching parameter and the first condition, the target stream for which the corresponding original communication link needs to be switched can be determined. Finally, the target stream is switched to be transmitted on other communication links. With one less data stream in the original communication link, the transmission rates of other data streams will increase, optimizing the congestion situation in the original communication link and improving the transmission rate of the data stream.
[0091] Taking the transmission rate of the data stream as the switching parameter as an example, to determine the target stream with a reduced transmission rate, there are the following two specific implementation methods:
[0092] Implementation method 1: The transmission rate is characterized by data throughput, and the preset threshold is the preset throughput. The management node collects the throughput data of each data stream passing through the switching node in the target network to determine the change in throughput; the management node determines the data stream with a throughput reduction greater than the preset throughput as the target stream.
[0093] The preset threshold can be configured by the user himself. For example, if the user sets the preset throughput to 0, as long as it is detected that the throughput of the data stream becomes smaller, the data stream can be determined as the target stream.
[0094] Optionally, if in the throughput of the data stream detected by the management node for n consecutive times, the throughput of the previous time in any two consecutive times is greater than that of the latter time, the management node determines that the data stream is a target stream. Alternatively, if in the throughput of the data stream detected by the management node for n consecutive times, the throughput of the previous second in any two consecutive times is greater than that of the latter time, and the difference between the throughput in any two consecutive times is greater than or equal to the preset throughput, the management node determines that the data stream is a target stream. Wherein, n is a positive integer greater than or equal to 2.
[0095] When each data stream passes through the switching node, it is input from an input port of the switching node and output from an output port. The management node can establish a data stream throughput record table for the combination of the input port and the output port of the switching node, which may include the data stream and the throughput of the switching node through which the data stream passes. After the management node collects the throughput data of the ports of the switching node, it updates the record table in real time. A specific example of the data stream throughput record table can be as shown in Table 1 below:
[0096] Table 1
[0097] Switching node Data flow In-port Out-port Latest throughput Switching node 1 Data flow 1 100GE / 0 / 1 100GE / 2 / 1 50Gb / s …… …… …… …… …… Switching node n Data flow n In-port n Out-port n xx
[0098] Based on Table 1 above, it can be seen that in the communication link of data stream 1, the latest throughput between input port 100GE / 0 / 1 and output port 100GE / 2 / 1 of switching node 1 is 50 Gb / s. If the throughput of data stream 1 between these two ports detected last time was 60 Gb / s, the management node determines that the throughput of data stream 1 has decreased. If the preset throughput is 0, then data stream 1 is a target stream on the communication link to which input port 100GE / 0 / 1 and output port 100GE / 2 / 1 of switching node 1 belong.
[0099] Optionally, the record table may include the identification information of the data stream, the historical throughput data of the data stream, the time when the data stream starts to be transmitted, etc. The management node updates the record table in real time according to the throughput data detected each time. By establishing the above data stream throughput record table, the management node can directly read the throughput change situation of each data stream on each switching node from the record table, which is convenient for the management node to determine the target stream.
[0100] In practical applications, relevant data of service traffic in the network can be obtained by deploying flow-based network traffic statistics technologies such as NetStream on switching nodes. The NetStream technology performs refined statistical analysis on the service traffic in the network by defining the characteristics of data flows (such as the seven-tuple). Taking the seven-tuple as an example, the seven-tuple includes the source IP address (the IP address of the sender of the packet), the destination IP address (the IP address of the receiver of the packet), the source port (the port of the sender of the packet), the destination port (the port of the receiver of the packet), the protocol number (the protocol type of the packet (such as TCP, UDP, ICMP, etc.)), ToS (type of service) (the service type field of the packet, used to distinguish different quality of service (QoS)), and the input interface or output interface (the interface where the packet enters or leaves the device). Packets with the same seven-tuple belong to the same data flow. The NetStream technology can perform statistics on each independent data flow, or aggregate many data flows with certain same characteristics into one data flow for statistics. The switching node collects the passing data flows and classifies and statistics the data flows according to the seven-tuple. The statistical information of each data flow is recorded in the flow cache. Each flow record can include the start time and end time of the data flow, the number of data packets, the number of bytes, the duration of the data flow, etc. When the flow records in the flow cache reach certain conditions (such as timeout or cache full), the switching node usually uses the UDP protocol to export the flow records to the NetStream collector. The NetStream collector receives the flow records and stores them in the database. The NetStream analyzer performs statistics and analysis on the stored flow records. Through the NetStream technology, users can deeply understand the details of the service traffic in the network and optimize the network performance.
[0101] When the target network is a RoCE v2 network, the RDMA data in the RoCE v2 protocol is all transmitted through UDP (User Datagram Protocol). According to the RoCE v2 protocol specification, the destination port of UDP is fixed. For example, the destination port number (des port) is 4791.
[0102] In the RoCE v2 network, not only the data flows related to computing are transmitted, but also data flows such as control instructions and notification signals can be transmitted. When using NetStream or a technology similar to NetStream to statistics the data flows related to computing transmitted in the RoCE v2 network, the UDP protocol is usually used to transmit the data flows related to computing. Since the destination port of UDP is fixed, the data flows related to computing can be filtered out by screening the destination port, and then these data flows can be statistically analyzed.
[0103] Implementation Method 2: The management node monitors the Congestion Notification Packet (CNP) event of the switching node by encapsulating the Remote Switched Port Analyzer (ERSPAN) of the switching node; if the transmission rate of the data stream indicated by the CNP event decreases, the management node determines the data stream indicated by the CNP event as the target stream.
[0104] CNP (Congestion Notification Packet) is a control packet used to notify network devices to reduce the transmission rate, and is usually used in Remote Direct Memory Access (RDMA) networks, such as RoCE v2 (RDMA over Converged Ethernet v2) networks. When a network device detects congestion, it generates a CNP and sends it to the sender to make the sender reduce the transmission rate of the data stream to ensure lossless data transmission.
[0105] ERSPAN (Encapsulated Remote Switch Port Analyzer) is a remote port mirroring technology that allows the traffic of a switching node to be encapsulated and sent to a remote monitoring device (such as a management node). Through ERSPAN, the management node can capture and analyze the data streams in the network, including CNP events in the network.
[0106] The user can pre-configure ERSPAN on the switching node to mirror the data stream of the port to be monitored to the management node, so that the management node can capture the data stream indicated by the CNP event through ERSPAN, and then determine the data stream indicated by the CNP event as the target stream.
[0107] By finding the target stream with a reduced transmission rate through the above two methods, the communication link of the target stream can be switched from the original communication link to other communication links, which can improve the load of each port in the original communication link and achieve the effect of improving the congestion situation in the original communication link.
[0108] In some implementation methods, the management node also determines the congested link, and then determines the target stream from the data streams transmitted in the congested link. The congested link is the communication link where congestion occurs between the first computing node and the second computing node.
[0109] In some implementation methods, determining the congested link can be specifically implemented as follows: for each communication link, obtain the congestion parameters of each computing node and each switching node in the communication link, where the congestion parameters are used to characterize whether congestion occurs when the node transmits the data stream; if the congestion parameters of a computing node and / or a switching node in the communication link meet the third condition, determine the communication link as the congested link, and the third condition is used to characterize that the communication link is congested.
[0110] In some implementations, the management node obtains congestion parameters according to the collection period. In response to entering a new collection period, it obtains the congestion parameters of each computing node and each switching node in the communication link during the previous collection period; the congestion parameters of the computing nodes and / or switching nodes in the congested link that have congestion parameters during the previous collection period satisfy the third condition.
[0111] Exemplarily, the congestion parameters may include the triggering situation of priority flow control (PFC) and / or the triggering situation of explicit congestion notification (ECN).
[0112] PFC (priority flow control) is a priority-based flow control mechanism. When the sending rate of a data stream of a certain priority exceeds the receiving rate, resulting in insufficient available data buffer space at the receiving end, the device will send a PFC PAUSE frame to the previous-hop device to notify it to stop sending the data stream of this priority. The data stream sending will resume only after receiving a PFC XON frame or after a certain aging time.
[0113] ECN (Explicit Congestion Notification) is a mechanism that sets a congestion experience (CE) bit in the IP packet header to indicate network congestion. When a router detects network congestion, it sets the CE bit of the passing packets to 1. After the receiving end receives a packet marked with CE, it can send an ECN Echo message to the sending end to notify it of the network congestion situation. The sending end then adjusts the sending strategy based on this information.
[0114] Through the management interface of the switching node, third-party network monitoring tools, the management log of the switching node, etc., the sending situations such as the sending times, sending moments, and sending frequencies of PFC PAUSE frames and XON frames can be viewed or recorded, so as to know the triggering situation of PFC.
[0115] Similarly, through the management interface of the switching node, third-party network monitoring tools, the management log of the switching node, etc., the setting situation of the CE bit in the packets passing through the switching node can be recorded, and the sending situations such as the number of packets with the CE bit set to 1, the sending moments, and the sending frequencies can be counted, so as to know the triggering situation of ECN.
[0116] In practical applications, users can pre-configure the Telemetry function on the switching node. Telemetry is a technology for remotely and rapidly collecting data from physical or virtual devices. It adopts the Push Mode, that is, the device periodically and actively sends data to the collector, such as interface traffic statistics, CPU or memory data, etc. Compared with the traditional Pull Mode, Telemetry provides a more real-time and high-speed data collection function, meeting the requirements of large-scale and high-performance network monitoring. Through the Telemetry function, relevant parameters of PFC and ECN that need to be collected can be specified, such as the number of received PFC backpressure frames, the number of sent PFC backpressure frames, the number of ECN packets, the collection period, etc. When it is necessary to obtain the triggering situations of PFC and ECN, the statistical information of PFC and ECN can be queried through the command-line interface of the switching node, so as to collect the triggering situations of PFC and ECN of the switching node.
[0117] When the PFC is triggered frequently, it indicates that the traffic of a data stream with a certain priority in the target network is too high, resulting in the buffer of the switching node approaching saturation; when the ECN is triggered frequently, the reduction of the data stream sending rate in the target network does not relieve the congestion in the target network. By collecting the triggering situations of PFC and / or ECN in the switching node, it can be determined whether the communication link to which the switching node belongs is congested, which is convenient for subsequent scheduling of the data stream transmitted in the congested link to improve the transmission efficiency of the data stream in the target network.
[0118] In some implementation manners, the triggering situation includes the number of triggers. Correspondingly, the third condition includes that the number of triggers in a preset number of consecutive collection periods is greater than or equal to a preset number. Wherein, the preset number is a positive integer. The preset number and the preset number of times can be selected as appropriate values by the user after multiple tests.
[0119] The number of triggers of PFC and ECN of the switching node for the communication link to which it belongs is the number of triggers of PFC and ECN of the port of the switching node on this communication link.
[0120] Exemplarily, assume that the collection period is 1 s, that is, the management node collects the number of triggers of PFC and ECN of the port of the switching node for the communication link to which it belongs within each second every second. The management node can establish a record table of the number of triggers of PFC and ECN in the communication link, which may include the number of triggers of PFC and ECN of each port of each switching node in each collection period. The management node periodically updates this record table based on the triggering situations of PFC and ECN of the ports of each switching node collected. A specific example of the record table can be as shown in Table 1 below:
[0121] Table 2
[0122]
[0123] As can be seen from Table 2, port 100GE / 0 / 1 of switching node 1 had 5 PFC triggers in the most recent collection period, 5 PFC triggers in the second most recent collection period, 1 ECN trigger in the most recent collection period, and 23 ECN triggers in the second most recent collection period.
[0124] Taking the collection period of 1 s as an example, assuming that the preset congestion condition is that the number of PFC triggers is not 0 within 2 consecutive seconds and the number of ECN triggers is greater than 5 within 2 consecutive seconds, it can be known from Table 2 that port 100GE / 0 / 1 of this switching node 1 does not meet the third condition.
[0125] Assuming that the third condition is that the number of PFC and ECN triggers is not 0 within 2 consecutive seconds, it can be known from Table 2 that port 100GE / 0 / 1 of this switching node 1 meets the third condition, and the communication link where port 100GE / 0 / 1 is located is the congested link.
[0126] Assuming that the third condition is that the number of PFC triggers is greater than or equal to 3 within 5 consecutive seconds, or the number of ECN triggers is greater than 10 within 5 consecutive seconds, it can be known from Table 2 that port 100GE / 0 / 1 of this switching node 1 meets the third condition, and the communication link where port 100GE / 0 / 1 is located is the congested link.
[0127] In this way, by collecting the PFC and ECN trigger situations according to the collection period, the congested link can be found through the trigger situation in the subsequent process, and the setting of the collection period also ensures the timeliness of collecting the number of triggers.
[0128] Optionally, there may also be an interval period between collection periods. For example, the collection period is 1 s and the interval period is 0.5 s. The switching node collects the number of PFC and ECN triggers existing in the port within 1 s every 0.5 s.
[0129] The record table may also include the bandwidth utilization rate of the port of the switching node, so that the management node can determine whether the port is idle according to the bandwidth utilization rate of the port.
[0130] Optionally, the trigger situation may also have other forms of manifestation, such as trigger frequency, trigger rate, trigger frequency peak, etc. Taking the trigger situation including the trigger frequency peak as an example, the corresponding third condition may include: the trigger frequency peaks within a preset number of consecutive collection periods are all greater than or equal to a preset value.
[0131] Optionally, Table 2 above is a record table of the triggering situations of PFC and ECN for all ports of all switching nodes. The management node can also establish a record table of the triggering situations of PFC and ECN for all ports of each switching node.
[0132] By counting the communication links of the data streams, where the communication links include the port identifiers of the switching nodes on the communication links, it is possible to filter out the data streams in the congested links based on the port identifiers of the switching nodes on the congested links, which facilitates finding the target streams from the data streams in the congested links in subsequent processes, and then switching the target streams.
[0133] It should be understood that the management node collects the switching parameters of each data stream and monitors the congestion parameters of each computing node and each switching node in each communication link. When it is necessary to determine the target streams in the congested links, the management node counts the communication links of each data stream transmitted in the target network; the communication links include the port identifiers of the switching nodes on the communication links; the management node then filters out the data streams in the congested links according to the port identifiers of the switching nodes on the congested links.
[0134] Exemplarily, for each data stream, the management node can determine the port identifiers of the switching nodes included in the communication link of the data stream. For example, as Figure 2 shown, the communication link of data stream A is: port Nic1-1 of server 1 → port x1 of switching node L1 → port y1 of switching node L1 → port x1 of switching node S1 → port y2 of switching node S1 → port y1 of switching node L4 → port x1 of switching node L4 → port Nic4-1 of server 4. Assuming that port x1 of switching node L1 is congested, all the communication links where port x1 of switching node L1 is located are congested links. When the management node filters out the data streams in the congested links, it will determine that data stream A is a data stream in the congested links.
[0135] Finding the target streams from the data streams transmitted in the congested links for communication link switching makes the targeting of the data streams for switching stronger and can better improve the congestion situation in the congested links.
[0136] The management node's monitoring of the data streams and the monitoring of the communication links are carried out synchronously. The management node can first filter out the congested links and then filter out the target streams in the congested links. Or, the management node can first filter out all the target streams and then filter out the target streams that are in the congested links among all the target streams.
[0137] S102. Determine the target communication link.
[0138] Among them, the target communication link is a communication link between the first computing node and the second node that satisfies the second condition, and the second condition is used to characterize that the target communication link can accommodate the target flow.
[0139] Before performing the operation of switching the data flow communication link, the management node will obtain the connection relationship between the switching node and the computing node, obtain the theoretical communication links between different computing nodes, that is, the topology map of the computing nodes and the switching nodes in the target network. Then, the management node filters out the actually available communication links from the theoretical communication links according to the working states of each port of each computing node and each port of each switching node. Finally, the management node finds the target flow for which the original communication link needs to be switched from these actually available communication links.
[0140] In a possible implementation, the management node determines the actually available communication links between each computing node, which can be implemented by the Link Layer Discovery Protocol (LLDP) technology. LLDP is a network protocol used to exchange configuration information between directly connected network devices. Through LLDP, network devices can discover their directly adjacent devices and obtain the identification information of adjacent devices, such as device names, port numbers, etc. The management node constructs the communication link topology structure between each computing node according to the information collected by LLDP and determines the actually available communication links between each computing node.
[0141] In some implementations, step S102 can be specifically implemented as: the management node determines the maximum value of the throughput of each switching node of the original communication link for the target flow; determines at least one candidate communication link between the first computing node and the second computing node except the original communication link; determines the remaining capacity of each candidate communication link, where the remaining capacity of the communication link is used to characterize the minimum value of the remaining throughput of each switching node in the communication link, and the remaining throughput of the switching node is the difference between the maximum throughput of the switching node and the used throughput; determines a communication link as the target communication link from the candidate communication links whose remaining capacity is greater than the maximum value. The candidate communication links for the target flow are the communication links except the original communication link among the actually available communication links between the first computing node and the second computing node. The candidate communication links whose remaining capacity is greater than the maximum value are the communication links that can accommodate the target flow.
[0142] Exemplarily, taking Figure 2 as an example, if it is necessary to switch Figure 2 the data flow A in, and the data flow A is the target flow, then all communication links between port Nic1-1 of server 1 and port Nic4-1 of server 4 can be found. Based on Figure 2It can be seen that the differences in the communication links between these two ports are mainly due to the differences between switching node S1 and switching node S2. Therefore, a congestion table can be constructed for the ports on the communication link between server 1 port Nic1-1 and server 4 port Nic4-n on switching node S1 and switching node S2. The specific example is shown in Table 3 below:
[0143] Table 3
[0144]
[0145] Traverse the above communication link and calculate the remaining capacity of each communication link, as shown in Table 4 below:
[0146] Table 4
[0147]
[0148] The remaining capacity of the communication link passing through switching node S2 is relatively large, so data stream A can be switched to the communication link passing through switching node S2.
[0149] It should be understood that if only the remaining throughput of the switching node in the candidate communication link is considered when determining the target communication link, after switching the communication link, even if the remaining throughput of the switched switching node is greater than the throughput of the switched target flow, there may be a congestion situation in the subsequent switching node in the switched communication link, and it cannot meet the throughput required by the switched target flow. At this time, the switching of the communication link cannot solve the congestion problem of the communication link. Therefore, the minimum value of the remaining throughput of the switching node on the communication link is determined as the remaining capacity of the communication link. When the remaining capacity of the communication link is greater than the throughput of each switching node on the original communication link for the target flow, the target flow is switched to this communication link, and the remaining throughput of all switching nodes can meet the throughput required by this target flow. The throughput of the target flow can be improved after the communication link is switched, and the throughput of other data streams on the original communication link can also be improved, thus solving the congestion problem in the original communication link.
[0150] S103. Switch the target flow from the original communication link to be transmitted on the target communication link.
[0151] In some implementation manners, step S103 can be specifically implemented as: the management node sends a control instruction to the target switching node. The target switching node is the switching node shared by the original communication link and the target communication link. The control instruction is used to instruct the target switching node to switch the output port of the target flow from the first port to the second port. The first port is the port on the original communication link, and the second port is the port on the target communication link. Among them, the first port is connected to the next switching node on the original communication link, and the second port is connected to the next switching node on the target communication link.
[0152] Exemplarily, taking Figure 2 as an example, to switch the data stream A from passing through the switching node S1 to passing through the switching node S2, that is, the first port is the port y1 of the switching node L1, and the second port is the port y2 of the switching node L1. The management node only needs to send a control instruction to the switching node L1, instructing the switching node L1 to switch the output of the data stream A from the port y1 of the switching node L1 to the port y2 of the switching node L1. After the communication link is switched, the communication link of the data stream A is: port Nic1-1 of server 1 → port x1 of switching node L1 → port y2 of switching node L1 → port x1 of switching node S2 → port y2 of switching node S2 → port y2 of switching node L4 → port x1 of switching node L4 → port Nic4-1 of server 4.
[0153] By controlling the switching of the output port of the switching node for the data stream, the data stream is switched from the original communication link to the target communication link, improving the congestion situation in the original communication link.
[0154] In some implementation manners, the target switching node can be the first switching node shared by the original communication link and the target communication link in the transmission direction of the target flow, or can be the switching node that appears congested and is shared by the original communication link and the target communication link in the transmission direction of the target flow.
[0155] Figure 5 The technical solution shown brings at least the following beneficial effects: determining the target flow for which the original communication link needs to be switched between the first computing node and the second computing node, and switching the target flow to the target communication link that can accommodate the target flow, then the target flow is no longer transmitted in the original communication link, the transmission rate of other data streams except the target flow transmitted in the original communication link can be increased, the congestion situation of the original communication link is improved, and the overall data transmission efficiency is also improved.
[0156] The overall operation logic schematic diagram of this application can be as Figure 6 shown: The management node synchronously monitors the data stream and the communication link, identifies the congested link, determines the target flow, then determines the target communication link that can accommodate the target flow, and finally the management node switches the target flow from the original communication link to the target communication link for transmission.
[0157] The above mainly introduces the solution provided by the embodiments of the present application from the perspective of methods. To implement the above functions, it includes the corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should easily realize that, combining the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed in the way of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods for each specific application to implement the described function, but such implementation should not be considered to exceed the scope of the present application.
[0158] As Figure 7 shown, the embodiments of the present application also provide a data flow transmission device for executing the data flow transmission method shown in the above method embodiments. The data flow transmission device 400 includes: a processing module 401 and an acquisition module 402.
[0159] Among them, the processing module 401 is used to: determine the target flow, where the target flow is the data flow that satisfies the first condition between the first computing node and the second computing node, and the first condition is used to characterize that the original communication link corresponding to the target flow needs to be switched; determine the target communication link, where the target communication link is the communication link that satisfies the second condition between the first computing node and the second node, and the second condition is used to characterize that the target communication link can accommodate the target flow; switch the target flow from the original communication link to be transmitted on the target communication link, where the original communication link is the communication link allocated to the target flow by the original link allocation scheme, and before the target flow switches the communication link, the target flow is transmitted on the original communication link.
[0160] In a possible implementation manner, the data flow transmission device further includes an acquisition module 402, and the acquisition module 402 is used to acquire the switching parameter of the data flow, where the switching parameter is a parameter characterizing whether the data flow needs to switch the communication link; specifically, the processing module 401 is used to determine the data flow whose switching parameter satisfies the first condition as the target flow.
[0161] In a possible implementation manner, the switching parameter is the transmission rate of the data flow, and the first condition includes that the reduction amount of the transmission rate is greater than a preset threshold; specifically, the processing module 401 is used to determine the data flow whose reduction amount of the transmission rate is greater than the preset threshold as the target flow.
[0162] In a possible implementation, the processing module 401 is specifically configured to: determine the maximum value among the throughputs of each switching node of the original communication link for the target flow; determine at least one candidate communication link between the first computing node and the second computing node other than the original communication link; determine the remaining capacity of each candidate communication link; the remaining capacity of a communication link is used to represent the minimum value among the remaining throughputs of each switching node in the communication link, and the remaining throughput of a switching node is the difference between the maximum throughput and the used throughput of the switching node; determine a communication link from the candidate communication links with a remaining capacity greater than the maximum value as the target communication link.
[0163] In a possible implementation, the processing module 401 is further configured to determine a congested link, where the congested link is a communication link where congestion occurs between the first computing node and the second computing node. The processing module 401 is specifically configured to determine the target flow from the data flows transmitted on the congested link.
[0164] In a possible implementation, the obtaining module 402 is further configured to obtain congestion parameters of each computing node and each switching node in the communication link, where the congestion parameters are used to represent whether congestion occurs when the node transmits data flows; the processing module 401 is specifically configured to, if there are congestion parameters of a computing node and / or a switching node in the communication link that satisfy a third condition, determine the communication link as a congested link, and the third condition is used to represent that congestion occurs in the communication link.
[0165] In a possible implementation, the obtaining module 402 is specifically configured to, in response to entering a new collection period, obtain the congestion parameters of each computing node and each switching node in the communication link in the previous collection period; there are congestion parameters of a computing node and / or a switching node in the congested link in the previous collection period that satisfy the third condition.
[0166] In a possible implementation, the processing module 401 is further configured to: count the communication links of each data flow; the communication link includes the port identifiers of the switching nodes on the communication link; filter out the data flows transmitted on the congested link according to the port identifiers of the switching nodes on the congested link.
[0167] In a possible implementation, the processing module 401 is specifically configured to send a control instruction to the target switching node, where the target switching node is a switching node common to the original communication link and the target communication link, and the control instruction is used to instruct the target switching node to switch the output port of the target flow from the first port to the second port, the first port is the port on the original communication link, and the second port is the port on the target communication link.
[0168] It should be noted that Figure 7The division of the modules is illustrative and is only a logical function division. In actual implementation, there may be other division methods. For example, two or more functions can also be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of a software function module.
[0169] Another embodiment of the present application further provides a computer device, including a memory, a processor, and a computer program stored on the memory. The processor executes the computer program to implement the steps of the data flow transmission method shown in the above embodiment.
[0170] In actual implementation, the processing module 401 and the acquisition module 402 can be implemented by the processor of the computer device calling the computer program code in the memory. The specific execution process can refer to the description in the above data flow transmission method section and will not be elaborated here.
[0171] Another embodiment of the present application further provides a computer-readable storage medium, on which computer instructions are stored. When the computer instructions are executed by a processor, the steps of the data flow transmission method shown in the above embodiment are implemented.
[0172] In another embodiment of the present application, a computer program product is further provided. The computer program product includes computer instructions. When the computer instructions are executed by a processor, the steps of the data flow transmission method shown in the above embodiment are implemented.
[0173] In the above embodiment, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer execution instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center in a wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) manner. The computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server or data center that includes one or more integrated media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), etc.
[0174] The above is only the specific implementation manner of the present application. Those skilled in the art can think of variations or substitutions based on the specific implementation manner provided by the present application, and all should be covered within the protection scope of the present application.
Claims
1. A data stream transmission method, characterized in that, Applied to a computing device; the method includes: Determine a target flow, where the target flow is a data flow that satisfies a first condition between a first computing node and a second computing node, and the first condition is used to characterize that the original communication link corresponding to the target flow needs to be switched; Determine a target communication link, where the target communication link is a communication link that satisfies a second condition between the first computing node and the second node, and the second condition is used to characterize that the target communication link can accommodate the target flow; Switch the target flow from the original communication link to be transmitted on the target communication link.
2. The method according to claim 1, wherein The determining of the target flow includes: Obtain a switching parameter of the data flow, where the switching parameter is a parameter characterizing whether the data flow needs to switch the communication link; Determine the data flow whose switching parameter satisfies the first condition as the target flow.
3. The method according to claim 2, wherein The switching parameter is the transmission rate of the data flow, and the first condition includes that the reduction amount of the transmission rate is greater than a preset threshold; The determining of the data flow whose switching parameter satisfies the first condition as the target flow includes: Determine the data flow whose reduction amount of the transmission rate is greater than the preset threshold as the target flow.
4. The method according to any one of claims 1 to 3, characterized in that, The determining of the target communication link includes: Determine the maximum value of the throughput of each switching node of the original communication link for the target flow; Determine at least one candidate communication link between the first computing node and the second computing node other than the original communication link; Determine the remaining capacity of each candidate communication link; the remaining capacity of the communication link is used to characterize the minimum value of the remaining throughput of each switching node in the communication link, and the remaining throughput of the switching node is the difference between the maximum throughput and the used throughput of the switching node; Determine a communication link from the candidate communication links whose remaining capacity is greater than the maximum value as the target communication link.
5. The method according to claim 1, characterized in that Before determining the target flow, the method further includes: Determine a congested link, where the congested link is a communication link where congestion occurs between the first computing node and the second computing node; The determining of the target flow includes: Determine the target flow from the data flows transmitted on the congested link.
6. The method according to claim 5, wherein The determining of the congested link includes: For each communication link, obtain congestion parameters of each computing node and each switching node in the communication link, where the congestion parameters are used to characterize whether congestion occurs when the node transmits the data flow; If there are congestion parameters of a computing node and / or a switching node in the communication link that satisfy a third condition, determine the communication link as the congested link, and the third condition is used to characterize that congestion occurs in the communication link.
7. The method according to claim 6, characterized in that, The obtaining of the congestion parameters of each computing node and each switching node in the communication link includes: In response to entering a new collection period, obtain the congestion parameters of each computing node and each switching node in the communication link in the previous collection period; there are congestion parameters of a computing node and / or a switching node in the congested link in the previous collection period that satisfy the third condition.
8. The method according to claim 5, characterized in that The method further includes: Count the communication links of each data stream; the communication links include the port identifiers of the switching nodes on the communication links. Based on the port identifiers of the switching nodes on the congested link, filter out the data streams transmitted on the congested link.
9. The method according to any one of claims 1-8, characterized in that, The switching of the target stream from the original communication link to be transmitted on the target communication link includes: Send a control instruction to the target switching node, where the target switching node is the switching node shared by the original communication link and the target communication link, and the control instruction is used to instruct the target switching node to switch the output port of the target stream from the first port to the second port. The first port is the port on the original communication link, and the second port is the port on the target communication link.
10. A computing device, comprising a memory and a processor, characterized in that, The memory is used to store computer instructions, and the processor is used to run the computer instructions to implement the method described in any one of claims 1-9 above.