A packet granularity load balancing method and system
By using DPU and DPDK in the data center network for packet sorting and submission, the problem of packet out of order in packet granular load balancing is solved, and the network throughput and reliability is improved.
Patent Information
- Application Number
- CN202411003920.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-25
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2044-07-25
AI Technical Summary
In the prior art, load balancing based on packet granularity is prone to packet disorder problems, resulting in increased retransmission and reduced network throughput.
DPU is used instead of traditional network cards for packet processing, DPDK is used for five-tuple hash analysis and data flow sorting, and combined with pre-configured delivery algorithms to ensure that data packets are submitted in order and avoid outdated order.
Through the DPU's memory resources and high programmability, the effective sorting and submission of data packets is achieved, the impact of out-of-order and retransmission is reduced, and the network throughput and reliability is improved.
Smart Images

Figure CN118764450B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data center communication technology, and in particular to a packet granularity load balancing method and system. Background Art
[0002] In recent years, with the rapid rise of emerging technologies such as cloud computing, big data, and distributed storage, more and more enterprises and government departments have established large-scale data centers to support various online services such as finance, e-commerce, and transportation. In order to make full use of the powerful computing and storage capabilities of data centers, delay-sensitive services (such as web access, instant messaging, finance, and online games) and computing-intensive services (such as data analysis, scientific computing, and web content indexing) have been migrated to data centers. With the continuous expansion of the scale of online application services in data centers, higher challenges have been raised for data center network bandwidth and performance. Modern data center applications require high-throughput and low-latency networks to meet the increasing needs of customers. In order to provide ultra-high bandwidth, data center networks usually adopt specific topologies such as fat-tree, VL2, DCell, BCube, etc., which provide multiple available paths between hosts. Data centers can use parallel multi-path transmission to improve the network throughput and reliability of data centers. Under high network load conditions, the probability of link congestion and packet loss is reduced. The data center load balancing mechanism distributes network traffic to all available paths, making full use of the redundant links in the network and improving network transmission performance.
[0003] At present, the load balancing granularity of the network layer can be divided into packet granularity, flowlet granularity, flowcell granularity and flow granularity from small to large. In theory, the load balancing mechanism based on packet granularity is considered to be the optimal strategy. Because the packet is the basic unit of network transmission, it has the potential to balance the load of each link to the greatest extent, but the load balancing of packet granularity often brings about the problem of packet disorder. Once the receiving end receives disordered data packets, the retransmission mechanism will be triggered, and the sending end will resend all disordered data packets, which will significantly increase the flow completion time and reduce the network throughput.
[0004] In addition, there are other load balancing technologies in the prior art, such as NDP, MP-RDMA, DRB and RPS. Among them, NDP adopts the method of removing the packet load and retaining the packet header. When the queue length of the switch exceeds a certain threshold (such as 8 packets), the packet load is removed and only the packet header is retained, which effectively reduces the queuing delay. The packet header is prioritized over the normal packet to drive fast retransmission, which effectively reduces the retransmission delay, but the retransmission problem cannot be avoided. MP-RDMA tracks the disordered packets through the on-chip memory of the network card and reorders them. However, due to limited memory, once there are too many disordered packets and the network card cannot track them, the receiving end will discard the packets, thereby affecting the throughput and latency of the network. DRB realizes the interleaved selection of links during packet transmission through the selection strategy of the top-level exchange based on bit reversal, thereby realizing load balancing of each link, reducing the queue length and packet disorder in the network, but DRB relies on symmetric topology, and the load balancing performance of DRB will be affected under asymmetric topology. RPS uses the characteristics of the symmetric topology of the data center network to randomly send each packet of the flow through all equal-cost paths. Links on the same source and destination paths can form an equivalence class. The paths formed by the links in the equivalence class have similar queue states, so they can ensure nearly equal delays. In asymmetric situations, the switch can actively manage the queues to ensure that the delays of each path are similar. However, due to the complexity of asymmetric scenarios, queue management may cause a decrease in network utilization and packet loss.
[0005] In general, for packet-granular load balancing, packet-granular load balancing can provide the best load balancing effect and make full use of the link resources of the data center network. However, packet-granular load balancing is prone to packet disorder, and retransmission caused by packet disorder will reduce network throughput. Some existing packet-granular load balancing solutions basically cannot really solve the impact of packet disorder. Some solutions choose to speed up the retransmission speed caused by disorder to reduce the disorder impact, and some solutions reduce the probability of disorder by reasonably selecting links. These solutions can only reduce the impact of disorder and retransmission to a certain extent, and cannot really avoid the occurrence of retransmission. Some solutions choose to sort packets at the receiving end. Storing data packets in the host will not only occupy too much host memory and cause additional overhead, but also cannot track a large number of disordered data packets due to the limitation of the on-chip memory of the network card. Retransmission will still occur in some extreme environments. For non-packet-granular load balancing, non-packet-granular load balancing will reduce the occurrence of packet disorder, but the load balancing effect is not as good as the solution based on packet granularity, and network resources cannot be fully utilized. Summary of the invention
[0006] The embodiments of the present invention provide a packet granularity load balancing method and system to solve the above problems in the prior art.
[0007] In order to have a basic understanding of some aspects of the disclosed embodiments, a brief summary is given below. This summary is not a general review, nor is it intended to identify key / important components or to describe the scope of protection of these embodiments. Its only purpose is to present some concepts in a simple form as a prelude to the detailed description that follows.
[0008] According to a first aspect of an embodiment of the present invention, a packet granularity load balancing method is provided.
[0009] In one embodiment, the packet granularity load balancing method includes:
[0010] Receive data packets sent by the sender;
[0011] Utilizing a pre-deployed DPU to cache the data packet;
[0012] Performing data flow sorting processing on the cached data packets to obtain re-sorted data packets;
[0013] Deliver the reordered packets according to the pre-configured delivery algorithm.
[0014] In one embodiment, the transmitting end sends the data packet in a random packet scattering sending manner.
[0015] In one embodiment, caching the data packet using a pre-deployed DPU includes:
[0016] Use the DPDK deployed in the DPU to perform five-tuple hash analysis on the received data packet to determine whether it is the first time to receive the data packet of the data flow;
[0017] If the result of the judgment is yes, the five-tuple information of the data packet is recorded in the data flow table and the data packet is cached in the memory of the DPU;
[0018] If the judgment result is no, the data packet is directly cached in the memory of the DPU.
[0019] In one embodiment, performing data stream sorting processing on the cached data packets includes: using the DPU to re-sort the data packets of the same data stream according to the message sequence numbers of the data packets.
[0020] In one embodiment, according to a preconfigured delivery algorithm, delivering the reordered data packets includes: presetting a data packet delivery time and a data packet delivery timeout time; when the data packet delivery time has passed, delivering the already ordered data packets to the kernel starting from the data packet with a message sequence number of 1, and recording the maximum message sequence number of the submitted data packets; when the data packet delivery time has passed again, delivering the already ordered data packets starting from the data packet with a message sequence number one digit after the maximum message sequence number, until the cycle ends when the data stream transmission ends; after the data packet delivery timeout time has passed, if any cached data packets have not been delivered, it is determined that a packet loss has occurred, the DPU directly delivers all existing data packets, the kernel sends an ACK mechanism to inform the sender to retransmit, and the retransmitted data is delivered again according to the data packet delivery time, until the cycle ends when the data stream transmission ends.
[0021] According to a second aspect of an embodiment of the present invention, a packet granularity load balancing system is provided.
[0022] In one embodiment, the packet granularity load balancing system includes:
[0023] A receiving module, used for receiving data packets sent by a sending end;
[0024] A cache module, used for caching the data packet using a pre-deployed DPU;
[0025] A sorting module is used to sort the cached data packets to obtain re-sorted data packets;
[0026] The delivery module is used to deliver the reordered data packets according to a pre-configured delivery algorithm.
[0027] In one embodiment, the transmitting end sends the data packet in a random packet scattering sending manner.
[0028] In one embodiment, when the cache module uses the pre-deployed DPU to cache the data packet, the DPDK deployed in the DPU performs a five-tuple hash analysis on the received data packet to determine whether it is the first time that the data packet of the data flow is received; if the judgment result is yes, the five-tuple information of the data packet is recorded in the data flow table and the data packet is cached in the memory of the DPU; if the judgment result is no, the data packet is directly cached in the memory of the DPU.
[0029] In one embodiment, when performing data stream sorting processing on cached data packets, the sorting module uses the DPU to reorder data packets of the same data stream according to the message sequence numbers of the data packets.
[0030] In one embodiment, the delivery module pre-sets a data packet delivery time and a data packet delivery timeout time when delivering the reordered data packets according to a pre-configured delivery algorithm; when the data packet delivery time has passed, the data packets that have been in sequence are delivered to the kernel starting from the data packet with a message sequence number of 1, and the maximum message sequence number of the submitted data packets is recorded; when the data packet delivery time has passed again, the data packets that have been in sequence are delivered starting from the data packet with a message sequence number that is one digit after the maximum message sequence number, until the cycle ends when the data stream transmission ends; after the data packet delivery timeout time has passed, if any cached data packets have not been delivered, it is determined that a packet loss has occurred, and the DPU directly delivers all existing data packets, and the kernel sends an ACK mechanism to inform the sender to retransmit, and the retransmitted data is delivered again according to the data packet delivery time, until the cycle ends when the data stream transmission ends.
[0031] The technical solution provided by the embodiment of the present invention may have the following beneficial effects:
[0032] The present invention firstly adopts DPU to replace the traditional network card for transmission. The sufficient memory resources and high programmability of DPU allow the storage of a large number of different flow states, and the data packets of different flows are sorted inside DPU, so as to achieve the purpose of eliminating the disorder effect. At the same time, DPU has a large amount of memory resources, which is enough to track enough data packets, and there will be no packet loss due to insufficient memory. In addition, the present invention also delivers data packets through a reasonable algorithm to ensure delay, and responds promptly to retransmission when packet loss occurs in other links.
[0033] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.
[0035] Figure 1 is a flow chart of a packet granularity load balancing method according to an exemplary embodiment;
[0036] Figure 2 is a structural block diagram of a packet granularity load balancing system according to an exemplary embodiment;
[0037] Figure 3 The figure is a schematic diagram showing the structure of a computer device according to an exemplary embodiment. DETAILED DESCRIPTION
[0038] The following description and accompanying drawings fully illustrate the specific embodiments of this article so that those skilled in the art can practice them. Parts and features of some embodiments may be included in or replace parts and features of other embodiments. The scope of the embodiments of this article includes the entire scope of the claims, as well as all available equivalents of the claims. Herein, the terms "first", "second", etc. are only used to distinguish one element from another, without requiring or implying any actual relationship or order between these elements. In fact, the first element can also be called the second element, and vice versa. Moreover, the terms "include", "comprise" or any other variant thereof are intended to cover non-exclusive inclusion, so that the structure, device or equipment including a series of elements includes not only those elements, but also other elements that are not explicitly listed, or also include elements inherent to such structure, device or equipment. In the absence of more restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the structure, device or equipment including the elements. Each embodiment is described in a progressive manner herein, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the embodiments can be referred to each other.
[0039] The terms "longitudinal", "lateral", "upper", "lower", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside", "outside", etc. in this document indicate the orientation or position relationship based on the orientation or position relationship shown in the drawings, and are only for the convenience of describing this document and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, be constructed and operate in a specific orientation, and therefore cannot be understood as a limitation on the present invention. In the description of this document, unless otherwise specified and limited, the terms "installed", "connected", and "connected" should be understood in a broad sense, for example, it can be a mechanical connection or an electrical connection, it can also be the internal communication of two elements, it can be a direct connection, or it can be an indirect connection through an intermediate medium. For ordinary technicians in this field, the specific meanings of the above terms can be understood according to specific circumstances.
[0040] As used herein, the term "plurality" means two or more than two, unless otherwise specified.
[0041] In this document, the character " / " indicates that the preceding and following objects are in an "or" relationship. For example, A / B means: A or B.
[0042] In this article, the term "and / or" is a description of the association relationship between objects, indicating that three relationships may exist. For example, A and / or B means: A or B, or, A and B.
[0043] It should be understood that, although the various steps in the flow chart are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a portion of the steps in the figure may include multiple sub-steps or multiple stages, and these sub-steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these sub-steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a portion of the sub-steps or stages of other steps.
[0044] Each module in the device or system of the present application can be implemented in whole or in part by software, hardware, or a combination thereof. The above modules can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute operations corresponding to the above modules.
[0045] In the absence of conflict, the embodiments of the present invention and the features of the embodiments may be combined with each other.
[0046] Figure 1 An embodiment of a packet granularity load balancing method of the present invention is shown.
[0047] In this optional embodiment, the packet granularity load balancing method includes:
[0048] Step S101, receiving a data packet sent by a sending end;
[0049] Step S103, caching the data packet using the pre-deployed DPU;
[0050] Step S105, performing data flow sorting processing on the cached data packets to obtain re-sorted data packets;
[0051] Step S107: delivering the reordered data packets according to a preconfigured delivery algorithm.
[0052] Figure 2 An embodiment of a packet granularity load balancing system of the present invention is shown.
[0053] In this optional embodiment, the packet granularity load balancing system includes:
[0054] The receiving module 201 is used to receive the data packet sent by the sending end;
[0055] A cache module 203, configured to cache the data packet using a pre-deployed DPU;
[0056] The sorting module 205 is used to perform data flow sorting processing on the cached data packets to obtain re-sorted data packets;
[0057] The delivery module 207 is used to deliver the reordered data packets according to a preconfigured delivery algorithm.
[0058] In specific applications, in order to make full use of the link, the transmitter sends data packets in a random packet scattering manner. Random packet scattering is an intuitive and simple per-packet transmission strategy. Each data packet of each flow is randomly transmitted on one to several shortest paths, achieving complete load balancing of the network. However, since different paths may have different delays, random packet scattering is prone to disorder at the receiving end. Therefore, reordering is performed at the receiving end to solve the problem.
[0059] When the pre-deployed DPU (Data Processing Unit) is used to cache the data packet, the DPDK deployed in the DPU can be used to perform a five-tuple hash analysis on the received data packet to determine whether it is the first time that the data packet of the data flow is received; if the judgment result is yes, the five-tuple information of the data packet is recorded in the data flow table and the data packet is cached in the memory of the DPU; if the judgment result is no, the data packet is directly cached in the memory of the DPU.
[0060] When performing data stream sorting processing on the cached data packets, the DPU is used to re-sort the data packets of the same data stream according to the message sequence numbers of the data packets.
[0061] DPDK (Data Plane Development Kit) is a data plane development function kit developed by Intel that can bypass the kernel and process data packets at high speed in user mode. Using DPDK to process data packets can effectively reduce processing latency and improve the performance of data center networks. Through DPDK, the DPU will first maintain a state for each flow. The DPU will hash the five-tuple of each data packet to determine whether the newly arrived data packet belongs to a new flow. After receiving the data packets, the DPU caches these data packets in the DPU's memory. The DPU's abundant memory resources are sufficient to store the data packets that need to be sorted, and do not need to occupy the host's memory, saving the host's memory consumption. The DPU reorders the data packets of the same flow according to the PSN (Packet Sequence Number) of the data packet, and promptly delivers the sorted data packets to the host to eliminate the impact of the reordering.
[0062] In addition, when the reordered data packets are transmitted according to a preconfigured delivery algorithm, the data packet delivery time and the data packet delivery timeout time can be pre-set; when the data packet delivery time has passed, the already ordered data packets are delivered to the kernel starting from the data packet with a message sequence number of 1, and the maximum message sequence number of the submitted data packets is recorded; when the data packet delivery time has passed again, the already ordered data packets are delivered starting from the data packet with a message sequence number one digit after the maximum message sequence number, until the cycle ends when the data stream transmission ends; after the data packet delivery timeout time has passed, if any cached data packets have not been delivered, it is determined that a packet loss has occurred, and the DPU directly delivers all existing data packets, and the kernel sends an ACK mechanism to inform the sender to retransmit, and the retransmitted data is delivered again according to the data packet delivery time, until the cycle ends when the data stream transmission ends.
[0063] Specifically, first, the initial PSN value PSN_sub of each stream is set to 0. In order to avoid unnecessary delays, after the DPU starts to cache data packets, after the packet delivery time time_sub, starting from the packet with PSN of 1, the DPU will deliver the already sequential data packets to the kernel. At the same time, the PSN value PSN_sub is updated to the maximum PSN value N of the data packets that have been delivered. After the packet delivery time ttime_sub again, if there is a data packet with PSN=N+1 in the data packets cached by the DPU, the DPU will deliver the already sequential data packets again starting from this data packet, and the cycle will continue until the end of the stream transmission. At the same time, in order to prevent the failure to promptly remind the sender to retransmit due to packet loss in other links, a timeout is set. If there are still cached data packets that cannot be delivered after the timeout, it is determined that packet loss has occurred. The DPU will sort all cached data packets in order and deliver them, and update the PSN value PSN_sub. The kernel will send ACK to the sender based on the missing data packets. The sender will selectively retransmit the lost data packets. At this time, the DPU will receive a data packet with a PSN less than PSN_sub, indicating that a retransmission has occurred. The DPU will deliver the data packet as soon as possible to reduce delays. By reasonably adjusting the data packet delivery time time_sub and the data packet delivery timeout time_out, the transmission delay can be minimized without causing disorder.
[0064] Figure 3An embodiment of a computer device of the present invention is shown. The computer device may be a server, and the computer device includes a processor, a memory, and a network interface connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store static information and dynamic information data. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, the steps in the above method embodiment are implemented.
[0065] Those skilled in the art will understand that Figure 3 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present invention, and does not constitute a limitation on the computer device to which the solution of the present invention is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0066] In addition, the present invention also provides a computer device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiment when executing the computer program.
[0067] In addition, the present invention further provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps in the above method embodiment are implemented.
[0068] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided by the present invention can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory, etc. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
[0069] The present invention is not limited to the structures which have been described above and shown in the drawings, and various modifications and changes may be made without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.
Claims
1. A packet granularity load balancing method, characterized in that: include: Receive data packets sent by the sender; Utilizing a pre-deployed DPU to cache the data packet; Performing data flow sorting processing on the cached data packets to obtain re-sorted data packets; Deliver the reordered data packets according to the pre-configured delivery algorithm; Wherein, according to a pre-configured delivery algorithm, delivering the reordered data packets includes: Pre-set the packet delivery time and packet delivery timeout; When the packet submission time has passed, the sequential packets are submitted to the kernel starting from the packet with the packet sequence number 1, and the maximum packet sequence number of the submitted packets is recorded; when the packet submission time has passed again, the sequential packets are submitted starting from the packet with the packet sequence number one digit after the maximum packet sequence number, until the cycle ends when the data stream transmission ends; After the packet delivery timeout period, if any cached data packets cannot be delivered, it is determined that packet loss has occurred, and the DPU delivers all cached and sorted data packets, and updates the maximum message sequence number of the submitted data packets at the same time. The kernel sends an ACK mechanism to inform the sender to retransmit, and the retransmitted data is delivered again according to the packet delivery time until the cycle ends. When retransmitting, all data packets with sequence numbers less than the updated maximum message sequence number of the submitted data packets are retransmitted.
2. A packet granularity load balancing method according to claim 1, characterized in that: The sending end sends data packets in a random packet scattering sending manner.
3. A packet granularity load balancing method according to claim 2, characterized in that: Utilizing the pre-deployed DPU to cache the data packet includes: Use the DPDK deployed in the DPU to perform five-tuple hash analysis on the received data packet to determine whether it is the first time to receive the data packet of the data flow; If the result of the judgment is yes, the five-tuple information of the data packet is recorded in the data flow table and the data packet is cached in the memory of the DPU; If the judgment result is no, the data packet is directly cached in the memory of the DPU.
4. A packet granularity load balancing method according to claim 3, characterized in that: The data flow sorting process for the cached data packets includes: using the DPU to re-sort the data packets of the same data flow according to the message sequence numbers of the data packets.
5. A packet granularity load balancing system, characterized in that: include: A receiving module, used for receiving data packets sent by a sending end; A cache module, used for caching the data packet using a pre-deployed DPU; A sorting module is used to sort the cached data packets to obtain re-sorted data packets; A delivery module, used for delivering the reordered data packets according to a pre-configured delivery algorithm; Wherein, when the delivery module transmits the reordered data packets according to the pre-configured delivery algorithm, the data packet delivery time and the data packet delivery timeout time are pre-set; when the data packet delivery time passes, the data packets that have been in order are delivered to the kernel starting from the data packet with the message sequence number of 1, and the maximum message sequence number of the data packets that have been delivered is recorded; when the data packet delivery time passes again, the data packets that have been in order are delivered starting from the data packet with the message sequence number that is one digit after the maximum message sequence number, until the cycle ends when the data stream transmission ends; after the data packet delivery timeout time passes, if there are cached data packets that have not been delivered, it is determined that a packet loss has occurred, the DPU delivers all the cached data packets that have been ordered, and updates the maximum message sequence number of the data packets that have been delivered at the same time, the kernel sends an ACK mechanism to inform the sender to retransmit, and the retransmitted data is delivered again according to the data packet delivery time until the cycle ends when the data stream transmission ends, wherein, when retransmitting, all data packets whose sequence numbers are less than the updated maximum message sequence number of the data packets that have been delivered are retransmitted.
6. A packet granularity load balancing system according to claim 5, characterized in that: The sending end sends data packets in a random packet scattering sending manner.
7. A packet granularity load balancing system according to claim 6, characterized in that: When the cache module uses the pre-deployed DPU to cache the data packet, the cache module uses the DPDK deployed in the DPU to perform a five-tuple hash analysis on the received data packet to determine whether it is the first time to receive the data packet of the data flow; If the result of the judgment is yes, the five-tuple information of the data packet is recorded in the data flow table and the data packet is cached in the memory of the DPU; If the judgment result is no, the data packet is directly cached in the memory of the DPU.
8. A packet granularity load balancing system according to claim 7, characterized in that: When performing data stream sorting processing on the cached data packets, the sorting module uses the DPU to re-sort the data packets of the same data stream according to the message sequence numbers of the data packets.
Citation Information
Patent Citations
A network data acquisition and processing system based on DPDK and a method thereof
CN109445944A