Elephant stream transmission method and device, network equipment, storage medium and program product

By identifying the five-tuple and queue pair information of elephant flows, sub-workflows are divided and allocated. The minimum load first algorithm and path switching mechanism are adopted to solve the network link congestion caused by elephant flows, and achieve load balancing and efficient transmission of critical business traffic.

CN121486271APending Publication Date: 2026-02-06CHINA TELECOM CORP LTD TECHNOLOGY INNOVATION CENTER +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511464041.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-14
Publication Date
2026-02-06

AI Technical Summary

Technical Problem

Elephant flows occupy network bandwidth for extended periods, causing link congestion and affecting the performance of latency-sensitive traffic. Existing equal-cost multipath routing technologies cannot effectively solve this problem.

Method used

By identifying the quintuple information and queue pair information of the elephant flow, it is divided into multiple sub-workflows. Based on the priority of the sub-workflows and the latency information of the network path, a network path is assigned to each sub-workflow. The minimum load first algorithm and path switching mechanism are used to achieve load balancing.

Benefits of technology

While maximizing network resource utilization, it solves the network link congestion problem caused by elephant traffic, ensures low latency and high reliability of critical business traffic, and improves overall network efficiency and service level.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121486271A_ABST
    Figure CN121486271A_ABST
Patent Text Reader

Abstract

The invention relates to an elephant stream transmission method and device, network equipment, a storage medium and a program product. The method comprises the following steps: identifying quintuple information and queue pair information of an elephant stream to be processed; dividing the elephant flow to be processed into a plurality of sub-workflows according to the current rate of the elephant flow to be processed, the maximum bearing capacity of each network path and the queue pair information; each network path is determined according to the quintuple information; and according to the priority information of each sub-workflow and the delay information of each network path, allocating a corresponding network path to each sub-workflow so as to transmit each sub-workflow. By adopting the method, the problem of elephant flow congestion can be effectively solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus, network device, storage medium, and program product for transmitting large amounts of data. Background Technology

[0002] Elephant streams refer to large-volume, long-duration data streams. They consume significant amounts of network bandwidth for extended periods, causing network congestion and impacting other traffic, particularly latency-sensitive streams like real-time communications, thus degrading the performance of these applications. Therefore, addressing elephant stream congestion is crucial.

[0003] Traditional technologies address link load imbalance by using equal cost multipath routing (ECMP), but this relies on 5-tuple calculations and does not consider flow size or real-time path load status (such as link utilization and latency), thus failing to effectively solve the problem of elephant flow congestion. Summary of the Invention

[0004] Therefore, it is necessary to provide a method, apparatus, network device, storage medium, and program product for elephant stream transmission that can effectively solve the elephant stream congestion problem, in response to the above-mentioned technical problems.

[0005] Firstly, this application provides a method for transmitting elephant streams, including:

[0006] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0007] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and the queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information;

[0008] Based on the priority information of each sub-workflow and the delay information of each network path, a corresponding network path is allocated to each sub-workflow for transmission.

[0009] In one embodiment, allocating a corresponding network path to each sub-workflow based on the priority information of each sub-workflow and the latency information of each network path includes:

[0010] The minimum load priority algorithm is used to assign corresponding network paths to each sub-workflow; the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0011] In one embodiment, the method further includes:

[0012] For sub-workflows with the same priority, the corresponding network path is allocated to the sub-workflows with the same priority in a round-robin manner according to the utilization rate of each network path.

[0013] In one embodiment, the method further includes:

[0014] If the utilization rate of the target network path is greater than a preset utilization threshold, a path switching mechanism is triggered to switch the transmission path of the sub-workflow corresponding to the target network path to any other network path other than the target network path.

[0015] In one embodiment, the method further includes:

[0016] Determine the load balance of each sub-workflow on a period of one second;

[0017] If the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold, then the network path corresponding to the target sub-workflow is switched.

[0018] In one embodiment, the step of dividing the elephant stream to be processed into multiple sub-workflows based on the current rate of the elephant stream to be processed, the maximum capacity of each network path, and the queue pair information includes:

[0019] Using the queue pair information, multiple available network paths are determined from each of the network paths;

[0020] The maximum rate limit of each available network path is used as the upper limit of the sub-workflow. Based on the current rate of the elephant flow to be processed, the elephant flow to be processed is divided into the multiple sub-workflows.

[0021] In one embodiment, the method further includes:

[0022] According to the preset identifier information, an identifier is assigned to each of the divided sub-workflows so that after each sub-workflow is transmitted to the destination, the identifiers of each sub-workflow are used to combine the sub-workflows into the elephant flow to be processed.

[0023] Secondly, this application also provides an elephant stream transmission device, comprising:

[0024] The identification module is used to identify the quintuple information and queue pair information of the elephant stream to be processed;

[0025] The partitioning module is used to divide the elephant flow to be processed into multiple sub-workflows based on the current rate of the elephant flow to be processed, the maximum carrying capacity of each network path, and the queue pair information; each network path is determined based on the quintuple information;

[0026] The first allocation module is used to allocate a corresponding network path to each of the sub-workflows according to the priority information of each sub-workflow and the delay information of each network path, so as to transmit each sub-workflow.

[0027] Thirdly, this application also provides a network device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:

[0028] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0029] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and the queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information;

[0030] Based on the priority information of each sub-workflow and the delay information of each network path, a corresponding network path is allocated to each sub-workflow for transmission.

[0031] Fourthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, performs the following steps:

[0032] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0033] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and the queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information;

[0034] Based on the priority information of each sub-workflow and the delay information of each network path, a corresponding network path is allocated to each sub-workflow for transmission.

[0035] Fifthly, this application also provides a computer program product, including a computer program that, when executed by a processor, performs the following steps:

[0036] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0037] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and the queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information;

[0038] Based on the priority information of each sub-workflow and the delay information of each network path, a corresponding network path is allocated to each sub-workflow for transmission.

[0039] The aforementioned elephant stream transmission method, apparatus, network device, storage medium, and program product, by identifying the five-tuple information and queue pair information of the elephant stream to be processed, can determine the network paths for transmitting the elephant stream based on the five-tuple information. This allows the elephant stream to be divided into multiple sub-workflows based on its current rate, the maximum capacity of each network path, and the queue pair information. Then, based on the priority information of each sub-workflow and the latency information of each network path, a corresponding network path is allocated to each sub-workflow for transmission. This maximizes network resource utilization while achieving load balancing of the elephant stream, resolving network link congestion caused by the elephant stream, ensuring the quality of service for critical business traffic requiring low latency and high reliability, and improving overall network efficiency and service level. Attached Figure Description

[0040] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0041] Figure 1 This is a diagram illustrating the application environment of the elephant stream transmission method in one embodiment;

[0042] Figure 2 This is a flowchart illustrating an elephant stream transmission method in one embodiment;

[0043] Figure 3 This is a flowchart illustrating the elephant streaming method in another embodiment;

[0044] Figure 4 This is a structural block diagram of an elephant stream transmission device in one embodiment;

[0045] Figure 5 This is a diagram of the internal structure of a network device in one embodiment. Detailed Implementation

[0046] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0047] The elephant stream transmission method provided in this application embodiment can be applied to, for example... Figure 1 In the application environment shown, users A and B, among others, act as data initiators, generating a large-scale data flow, known as the "elephant stream" to be processed. This elephant stream first enters network device 102, which breaks it down into multiple sub-workflows and assigns corresponding network paths to each sub-workflow for transmission to data center 104. Data center 104 receives these sub-workflows, merges them, and obtains the elephant stream to be processed. Subsequently, it performs subsequent operations such as computation and storage on the elephant stream. Network device 102 can be various switches, routers, etc.

[0048] In one exemplary embodiment, such as Figure 2 As shown, an elephant streaming method is provided, which is applied to... Figure 1 Taking network devices as an example, the explanation includes the following steps:

[0049] S201, identify the quintuple information and queue pair information of the elephant stream to be processed.

[0050] Among them, the elephant stream to be processed refers to a data stream with a large transmission volume and a long duration. Elephant streams will occupy a large amount of network bandwidth for a long time, causing network link congestion, and will also affect other traffic, especially the mouse streams that are sensitive to latency, such as real-time communication, resulting in a decline in the performance of these applications.

[0051] A 5-tuple is a set of five key fields that uniquely identify a service flow in a TCP / IP network. All data packets belonging to the same service (such as all data packets in a video call or a file download) have identical 5-tuples, including: source IP address, destination IP address, source port number, destination port number, and transport layer protocol. Network devices can perform hash calculations on the 5-tuples of an elephant flow to generate a hash value. For an elephant flow, its 5-tuple remains unchanged during transmission, so the hash value is fixed and it will be assigned to the same path. Different elephant flows (with different 5-tuples) will generate different hash values ​​and thus be assigned to different paths.

[0052] Elephant stream queue pairs (QPs) are combinations of send queues (SQs) and receive queues (RQs). Before transmitting elephant stream data, the source and destination need to establish QP pairs through specific signaling procedures. QP pairs are the basic units used to establish end-to-end communication in the InfiniBand (IB) transport layer of elephant streams. QP pairs provide the foundation for the orderly and efficient transmission of data.

[0053] In this embodiment, the network device can extract the 5-tuple information from the packets during the forwarding process of the elephant stream data packets to obtain the 5-tuple information of the elephant stream to be processed. In addition, the network device can also view the connection status, traffic statistics, and other information of the QP communicating through the network device to identify the queue pair information of the elephant stream to be processed.

[0054] S202, based on the current rate of the elephant flow to be processed, the maximum carrying capacity of each network path, and queue pair information, divide the elephant flow to be processed into multiple sub-workflows; each network path is determined based on the quintuple information.

[0055] The five-tuple information of the elephant stream to be processed includes the source IP address, destination IP address, source port number, destination port number, and transport layer protocol of the elephant stream to be processed. For example, in this embodiment, a value is obtained by performing a hash operation on the source IP, destination IP, source port, and destination port of the elephant stream to be processed, and then this value is mapped to different link groups to determine the network paths for transmitting the elephant stream to be processed.

[0056] It is understandable that in a data center network, there are multiple network paths from the source of the elephant stream to its destination. However, some of these network paths cannot support RDMA transmission due to incorrectly configured RDMA QP pairs. By checking queue peer information, unusable paths can be eliminated, thus obtaining a set of available paths for transmitting the elephant stream. As an optional implementation, in this embodiment, the queue pair information of the elephant stream to be processed can be used to traverse each network path and check whether there is an RDMA QP peer relationship matching the source and destination of the elephant stream at both ends of each network path, thereby determining multiple available network paths from each network path.

[0057] Then, using the maximum capacity of each available network path as the upper limit of the maximum rate of the sub-workflow, the elephant stream to be processed is divided into multiple sub-workflows based on its current rate. For example, if the current rate of the elephant stream to be processed is 100Gbps and the maximum capacity of each available network path is 20Gbps, then the elephant stream to be processed can be divided into 5 sub-workflows. In addition, it should be noted that if the maximum capacity of each available network path cannot be divided evenly by the current rate of the elephant stream to be processed, then the number of sub-workflows to be processed can be determined by rounding up. For example, if the current rate of the elephant stream to be processed is 105Gbps and the maximum capacity of each available network path is 20Gbps, then the elephant stream to be processed can be divided into 6 sub-workflows.

[0058] Furthermore, to avoid packet reordering issues during stream reassembly, identifiers can be assigned to each sub-workflow according to preset identifier information. This allows the sub-workflows to be combined into a single processing stream after being transmitted to the destination. For example, the preset identifier information can be a one-byte binary number with a value range of 0-255, meaning each sub-workflow can have a binary identifier. Further, to avoid excessive stream reassembly overhead or wasted stream resources, the number of sub-workflows can be controlled to be ≤32, and the rate of each sub-workflow can be ≥10Mbps. It should be noted that the controlled sub-workflow data and rate of each sub-workflow in this embodiment are merely examples and are not intended to limit the number of sub-workflows or the rate of each sub-workflow. Specific values ​​can be determined based on actual conditions.

[0059] S203. Based on the priority information of each sub-workflow and the delay information of each network path, allocate a corresponding network path to each sub-workflow for transmission.

[0060] For example, in this embodiment, information such as link utilization, end-to-end latency, and packet loss rate of each network path can be collected in real time, and the latency information of each network path can be determined using the link utilization, end-to-end latency, and packet loss rate of each network path.

[0061] Optionally, in this embodiment, the priority information of each sub-workflow can be determined based on business information, or the priority information of each sub-workflow can be determined based on user information.

[0062] As an optional implementation, in this embodiment, the least load priority algorithm can be used to prioritize the allocation of high-priority sub-workflows to low-latency network paths. The corresponding network path is assigned to each sub-workflow of the elephant flow to be processed. That is, the higher the priority of the sub-workflow, the lower the latency of the network path corresponding to the sub-workflow.

[0063] As an alternative implementation, for sub-workflows with the same priority, network paths can be allocated to them in a round-robin fashion based on the utilization rate of each network path. Furthermore, allocating network paths to sub-workflows with the same priority through a round-robin approach can ensure that the difference in utilization rates among network paths is less than a preset threshold; for example, the difference in utilization rates among network paths can be ≤10%.

[0064] In the aforementioned elephant stream transmission method, by identifying the 5-tuple information and queue pair information of the elephant stream to be processed, the network paths for transmitting the elephant stream can be determined based on the 5-tuple information. This allows the elephant stream to be divided into multiple sub-workflows based on its current rate, the maximum capacity of each network path, and the queue pair information. Then, based on the priority information of each sub-workflow and the latency information of each network path, a corresponding network path is assigned to each sub-workflow for transmission. This maximizes network resource utilization while achieving load balancing of the elephant stream, resolving network link congestion caused by the elephant stream, ensuring the quality of service for critical business traffic requiring low latency and high reliability, and improving overall network efficiency and service level.

[0065] This embodiment will further explain the method of optimizing network path allocation for each sub-workflow using network path utilization. In one embodiment, the above method further includes:

[0066] Step A: If the utilization rate of the target network path is greater than the preset utilization rate threshold, the path switching mechanism is triggered to switch the transmission path of the sub-workflow corresponding to the target network path to any network path other than the target network path.

[0067] In this embodiment, if the utilization rate of any target network path in the network paths exceeds a preset utilization threshold, a path switching mechanism can be triggered to switch the transmission path of the sub-workflow corresponding to the target network path to any other network path besides the target network path. For example, the preset utilization threshold can be 80%. If the utilization rate of a certain network path is greater than 80%, the transmission path of the sub-workflow corresponding to that network path can be switched to any other network path besides that network path. It should be noted that the above-mentioned preset utilization threshold of 80% is only an example. The preset utilization threshold can be determined according to the actual transmission situation. For example, the preset utilization threshold can also be 70%, 85%, 90%, etc., and this embodiment does not limit it.

[0068] In this embodiment, by determining the utilization rate of each network path, if the utilization rate of the target network path is greater than a preset utilization rate threshold, a path switching mechanism is triggered to switch the transmission path of the sub-workflow corresponding to the target network path to any other network path other than the target network path. This maximizes network resource utilization while achieving load balancing of the elephant flow.

[0069] This embodiment will further explain the method for optimizing the network path of each sub-workflow based on the load balancing of each sub-workflow. In one embodiment, such as... Figure 3 As shown, the above method also includes:

[0070] S301 determines the load balance of each sub-workflow on a per-second basis.

[0071] In this embodiment, real-time data of each sub-workflow can be collected at a rate of one second. The standard deviation of each sub-workflow can be calculated using the real-time data of each sub-workflow, and the standard deviation can be determined as the load balancing degree of each sub-workflow.

[0072] S302, If the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold, then switch the network path corresponding to the target sub-workflow.

[0073] For example, the preset load balancing threshold can be 5%, 4%, 4.5%, etc., and this embodiment does not limit the preset load balancing threshold. In this embodiment, if the load balancing of the target sub-workflow is greater than the preset load balancing threshold, the network path corresponding to the target sub-workflow can be switched, and the target sub-workflow that deviates from the preset load balancing threshold can be migrated to achieve dynamic load balancing of the sub-workflow.

[0074] In this embodiment, the load balancing degree of each sub-workflow is determined on a per-second basis. This allows for switching the network path corresponding to the target sub-workflow when the load balancing degree of the target sub-workflow exceeds a preset threshold. This enables path migration of the target sub-workflow, maximizing network resource utilization while achieving load balancing of the "elephant flow" (a term referring to a large, undesirable flow of traffic). This solves the network link congestion problem caused by the "elephant flow," ensures the quality of service for critical business traffic requiring low latency and high reliability, and improves overall network efficiency and service level.

[0075] To facilitate understanding by those skilled in the art, the elephant streaming method provided in this disclosure is described in detail below. This method may include:

[0076] S1, the network device identifies the quintuple information and queue pair information of the elephant stream to be processed.

[0077] S2, the network device uses the five-tuple information of the elephant stream to be processed to determine the network paths for transmitting the elephant stream.

[0078] S3, the network device uses the queue pair information of the elephant stream to determine multiple available network paths from each network path.

[0079] S4, the network device uses the maximum carrying capacity of each available network path as the upper limit of the maximum rate of the sub-workflow, and divides the elephant flow to be processed into multiple sub-workflows according to the current rate of the elephant flow to be processed.

[0080] S5, the network device assigns identifiers to each sub-workflow after it has been divided, according to the preset identifier information.

[0081] S6, the network device uses the least load priority algorithm to allocate corresponding network paths to each sub-workflow; the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0082] S7. For sub-workflows with the same priority, the network device allocates the corresponding network path to the sub-workflows with the same priority in a round-robin manner according to the utilization rate of each network path.

[0083] S8. If the utilization rate of the target network path is greater than the preset utilization rate threshold, the network device triggers the path switching mechanism to switch the transmission path of the sub-workflow corresponding to the target network path to any other network path other than the target network path.

[0084] S9, the network device determines the load balance of each sub-workflow every second. If the load balance of the target sub-workflow is greater than the preset load balance threshold, the network path corresponding to the target sub-workflow is switched.

[0085] S10: After receiving multiple sub-workflows, the destination end combines the sub-workflows into a processing elephant flow using the identifiers of each sub-workflow for subsequent processing.

[0086] It should be noted that the descriptions of the above steps can be found in the relevant descriptions in the above embodiments, and their effects are similar, so they will not be repeated here.

[0087] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps. It is understood that the steps in different embodiments can be freely combined as needed, and all non-contradictory solutions formed by such combinations are within the scope of protection of this application.

[0088] Based on the same inventive concept, this application also provides an elephant stream transmission device for implementing the elephant stream transmission method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations of the one or more elephant stream transmission device embodiments provided below can be found in the limitations of the elephant stream transmission method described above, and will not be repeated here.

[0089] In one exemplary embodiment, such as Figure 4 As shown, an elephant stream transmission device is provided, comprising: an identification module, a division module, and a first allocation module, wherein:

[0090] The identification module is used to identify the quintuple information and queue pair information of the elephant stream to be processed.

[0091] The partitioning module is used to divide the elephant flow to be processed into multiple sub-workflows based on the current rate of the elephant flow, the maximum capacity of each network path, and queue pair information; each network path is determined based on the quintuple information.

[0092] The first allocation module is used to allocate a corresponding network path to each sub-workflow based on the priority information of each sub-workflow and the delay information of each network path, so as to transmit each sub-workflow.

[0093] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0094] Based on the above embodiments, optionally, the first allocation module includes: an allocation unit, wherein:

[0095] The allocation unit is used to assign a corresponding network path to each sub-workflow using the least load priority algorithm; where the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0096] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0097] Optionally, based on the above embodiments, the apparatus further includes: a second allocation module, wherein:

[0098] The second allocation module is used to allocate corresponding network paths to sub-workflows with the same priority in a round-robin manner according to the utilization rate of each network path.

[0099] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0100] Based on the above embodiments, optionally, the above device further includes: a first switching module, wherein:

[0101] The first switching module is used to trigger a path switching mechanism if the utilization rate of the target network path is greater than a preset utilization rate threshold, and switch the transmission path of the sub-workflow corresponding to the target network path to any other network path other than the target network path.

[0102] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0103] Based on the above embodiments, optionally, the above apparatus further includes: a determining module and a second switching module, wherein:

[0104] The determination module is used to determine the load balance of each sub-workflow on a per-second basis.

[0105] The second switching module is used to switch the network path corresponding to the target sub-workflow if the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold.

[0106] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0107] Based on the above embodiments, optionally, the above-mentioned partitioning module includes: a determining unit and a partitioning unit, wherein:

[0108] The determination unit is used to identify multiple available network paths from among the network paths using queue information.

[0109] The partitioning unit is used to divide the elephant flow to be processed into multiple sub-workflows based on the current rate of the elephant flow, with the maximum carrying capacity of each available network path as the upper limit of the sub-workflow's maximum rate.

[0110] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0111] Optionally, based on the above embodiments, the apparatus further includes: a third allocation module, wherein:

[0112] The third allocation module is used to assign identifiers to each sub-workflow after division according to preset identifier information, so that after each sub-workflow is transmitted to the destination, the identifiers of each sub-workflow are used to combine the sub-workflows into a process flow.

[0113] The elephant stream transmission device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so it will not be described again here.

[0114] Each module in the aforementioned elephant streaming device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device, or stored in the memory of a computer device as software, so that the processor can call and execute the operations corresponding to each module.

[0115] In one exemplary embodiment, a network device is provided, the internal structure of which can be as follows: Figure 5 As shown, the network device includes a processor, memory, input / output interfaces, a communication interface, a display unit, and an input device. The processor, memory, and input / output interfaces are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The input / output interfaces are used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When the computer program is executed by the processor, it implements an elephant streaming method.

[0116] Those skilled in the art will understand that Figure 5 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0117] In one exemplary embodiment, a network device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:

[0118] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0119] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information.

[0120] Based on the priority information of each sub-workflow and the latency information of each network path, a corresponding network path is assigned to each sub-workflow to transmit each sub-workflow.

[0121] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0122] The minimum load priority algorithm is used to assign corresponding network paths to each sub-workflow; the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0123] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0124] For sub-workflows with the same priority, the corresponding network paths are allocated to the sub-workflows with the same priority in a round-robin fashion according to the utilization rate of each network path.

[0125] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0126] If the utilization rate of the target network path is greater than the preset utilization rate threshold, the path switching mechanism is triggered, and the transmission path of the sub-workflow corresponding to the target network path is switched to any other network path other than the target network path.

[0127] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0128] Determine the load balance of each sub-workflow on a per-second basis;

[0129] If the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold, then switch the network path corresponding to the target sub-workflow.

[0130] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0131] By using queue information, multiple available network paths can be identified from each network path;

[0132] The maximum rate of each available network path is set as the upper limit of the sub-workflow. Based on the current rate of the elephant flow to be processed, the elephant flow to be processed is divided into multiple sub-workflows.

[0133] In one embodiment, the processor, when executing a computer program, also performs the following steps:

[0134] According to the preset identifier information, each sub-workflow is assigned an identifier so that after each sub-workflow is transmitted to the destination, the identifiers of each sub-workflow are used to combine the sub-workflows into a process flow.

[0135] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, the computer program performing the following steps when executed by a processor:

[0136] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0137] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information.

[0138] Based on the priority information of each sub-workflow and the latency information of each network path, a corresponding network path is assigned to each sub-workflow to transmit each sub-workflow.

[0139] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0140] The minimum load priority algorithm is used to assign corresponding network paths to each sub-workflow; the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0141] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0142] For sub-workflows with the same priority, the corresponding network paths are allocated to the sub-workflows with the same priority in a round-robin fashion according to the utilization rate of each network path.

[0143] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0144] If the utilization rate of the target network path is greater than the preset utilization rate threshold, the path switching mechanism is triggered, and the transmission path of the sub-workflow corresponding to the target network path is switched to any other network path other than the target network path.

[0145] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0146] Determine the load balance of each sub-workflow on a per-second basis;

[0147] If the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold, then switch the network path corresponding to the target sub-workflow.

[0148] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0149] By using queue information, multiple available network paths can be identified from each network path;

[0150] The maximum rate of each available network path is set as the upper limit of the sub-workflow. Based on the current rate of the elephant flow to be processed, the elephant flow to be processed is divided into multiple sub-workflows.

[0151] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0152] According to the preset identifier information, each sub-workflow is assigned an identifier so that after each sub-workflow is transmitted to the destination, the identifiers of each sub-workflow are used to combine the sub-workflows into a process flow.

[0153] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, performs the following steps:

[0154] Identify the quintuple information and queue pair information of the elephant stream to be processed;

[0155] Based on the current rate of the elephant flow to be processed, the maximum capacity of each network path, and queue pair information, the elephant flow to be processed is divided into multiple sub-workflows; each network path is determined based on the quintuple information.

[0156] Based on the priority information of each sub-workflow and the latency information of each network path, a corresponding network path is assigned to each sub-workflow to transmit each sub-workflow.

[0157] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0158] The minimum load priority algorithm is used to assign corresponding network paths to each sub-workflow; the higher the priority of the sub-workflow, the lower the latency of the corresponding network path.

[0159] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0160] For sub-workflows with the same priority, the corresponding network paths are allocated to the sub-workflows with the same priority in a round-robin fashion according to the utilization rate of each network path.

[0161] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0162] If the utilization rate of the target network path is greater than the preset utilization rate threshold, the path switching mechanism is triggered, and the transmission path of the sub-workflow corresponding to the target network path is switched to any other network path other than the target network path.

[0163] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0164] Determine the load balance of each sub-workflow on a per-second basis;

[0165] If the load balancing degree of the target sub-workflow is greater than the preset load balancing degree threshold, then switch the network path corresponding to the target sub-workflow.

[0166] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0167] By using queue information, multiple available network paths can be identified from each network path;

[0168] The maximum rate of each available network path is set as the upper limit of the sub-workflow. Based on the current rate of the elephant flow to be processed, the elephant flow to be processed is divided into multiple sub-workflows.

[0169] In one embodiment, when the computer program is executed by a processor, it also performs the following steps:

[0170] According to the preset identifier information, each sub-workflow is assigned an identifier so that after each sub-workflow is transmitted to the destination, the identifiers of each sub-workflow are used to combine the sub-workflows into a process flow.

[0171] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.

[0172] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.

[0173] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. An elephant flow transmission method, characterized by, The method comprises: identifying quintuple information and queue pair information of an elephant flow to be processed; dividing the elephant flow to be processed into a plurality of sub-flows according to a current rate of the elephant flow to be processed, maximum carrying capacities of network paths and the queue pair information, wherein each of the network paths is determined according to the quintuple information; allocating a corresponding network path to each of the sub-flows according to priority information of each of the sub-flows and delay information of each of the network paths, so as to transmit each of the sub-flows.

2. The method of claim 1, wherein, The allocating a corresponding network path to each of the sub-flows according to the priority information of each of the sub-flows and the delay information of each of the network paths comprises: allocating a corresponding network path to each of the sub-flows by using a minimum load priority algorithm, wherein the higher the priority of a sub-flow is, the lower the delay of the corresponding network path is.

3. The method of claim 2, wherein, The method further comprises: for sub-flows with the same priority, polling a corresponding network path for the sub-flows with the same priority according to utilization rates of the network paths.

4. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: if a utilization rate of a target network path is greater than a preset utilization rate threshold, triggering a path switching mechanism to switch a transmission path of a sub-flow corresponding to the target network path to any one of the network paths other than the target network path.

5. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: determining a load balancing degree of each of the sub-flows in a period of one second; if a load balancing degree of a target sub-flow is greater than a preset balancing degree threshold, switching a network path corresponding to the target sub-flow.

6. The method of claim 1, wherein, The dividing the elephant flow to be processed into a plurality of sub-flows according to the current rate of the elephant flow to be processed, the maximum carrying capacities of the network paths and the queue pair information comprises: determining a plurality of available network paths from the network paths by using the queue pair information; dividing the elephant flow to be processed into the plurality of sub-flows according to the current rate of the elephant flow to be processed, with the maximum carrying capacities of the available network paths as upper limits of maximum rates of the sub-flows.

7. The method of claim 6, wherein, The method further comprises: allocating identifiers to the divided sub-flows according to preset identifier information, so that the sub-flows are combined into the elephant flow to be processed by using the identifiers of the sub-flows after the sub-flows are transmitted to a destination.

8. An elephant flow transmission device characterized by, The apparatus comprises: an identifying module configured to identify quintuple information and queue pair information of an elephant flow to be processed; a dividing module configured to divide the elephant flow to be processed into a plurality of sub-flows according to a current rate of the elephant flow to be processed, maximum carrying capacities of network paths and the queue pair information, wherein each of the network paths is determined according to the quintuple information; a first allocating module configured to allocate a corresponding network path to each of the sub-flows according to priority information of each of the sub-flows and delay information of each of the network paths, so as to transmit each of the sub-flows. 9.A network device, comprising a memory and a processor, wherein the memory stores a computer program, and the network device is configured to perform the method according to any one of claims 1-8. The processor implements the steps of the method of any one of claims 1 to 7 when executing the computer program.

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