DPU-based multi-queue fragmented message recombination method and device, equipment and medium
By copying and recombining sharded packets at the hardware layer, the problem of not being able to effectively bind the five-tuple socket interface and queue in the software layer is solved, and parallel processing between the hardware and software layer is realized, and processing efficiency is improved. Reduced delay.
Patent Information
- Application Number
- CN202411508620.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-28
- Publication Date
- 2025-02-07
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The existing low-latency network protocol stack cannot effectively support binding of specific five-tuple socket interfaces and specific queues, resulting in the hardware being unable to obtain port information and cannot perform the hardware's parallel performance in sharded multi-queue scenarios.
The sharded packets are copied into each recombination queue through the hardware layer, and the sharded packets are recombined through the software layer to obtain the original data packets and then send them to the transport layer.
Parallel processing between the hardware layer and the software layer is realized, which improves processing efficiency and reduces processing delay.
Smart Images

Figure CN119402456A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of intelligent acceleration network card software, and in particular to a DPU-based multi-queue fragment message reassembly method, device, equipment and medium. Background Art
[0002] The existing low-latency network protocol stack cannot support binding a specific five-tuple socket interface to a specific queue. In the scenario of fragmented multi-queue, the hardware cannot obtain the port information when parsing the fragmented data packet, because the fragmented data packet does not contain the Transmission Control Protocol (TCP) / User Datagram Protocol (UDP) header, and the five-tuple information is incomplete, so the hardware does not know which queue to deliver the fragmented packet to.
[0003] In the related art, data packets can only be reassembled at the software layer, and then delivered to the corresponding queue according to the five-tuple, that is, forwarding is done at the software layer, and there is no way to give full play to the parallel performance of the hardware. Summary of the invention
[0004] In order to solve the above technical problems, the present disclosure provides a DPU multi-queue fragment message reassembly method, device, equipment and medium.
[0005] In a first aspect, the present disclosure provides a method for reassembling fragmented messages based on a DPU multi-queue, comprising:
[0006] Receiving a network data stream, wherein the network data stream includes fragmented data packets;
[0007] Copying the fragmented data packets to each reassembly queue through a hardware layer;
[0008] Reassembling the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets;
[0009] The original data packet is sent to the transport layer.
[0010] In a second aspect, the present disclosure provides a DPU-based multi-queue fragment message reassembly device, comprising:
[0011] A data receiving module, used for receiving a network data stream, wherein the network data stream includes fragmented data packets;
[0012] A data replication module, used for replicating the fragmented data packets to each reassembly queue through a hardware layer;
[0013] A data reassembly module, used for reassembling the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets;
[0014] The first sending module is used to send the original data packet to the transport layer.
[0015] In a third aspect, the present disclosure provides a DPU-based multi-queue fragmented message reassembly device, including:
[0016] processor;
[0017] A memory for storing executable instructions;
[0018] The processor is used to read executable instructions from the memory and execute the executable instructions to implement the DPU multi-queue fragmented message reassembly method based on the first aspect.
[0019] In a fourth aspect, the present disclosure provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, the processor implements the DPU multi-queue fragmented message reassembly method based on the first aspect.
[0020] Compared with the prior art, the technical solution provided by the embodiments of the present disclosure has the following advantages:
[0021] The DPU multi-queue fragmented message reassembly method, device, equipment and medium of the disclosed embodiments can receive a network data stream, which contains fragmented data packets, and then copy the fragmented data packets to each reassembly queue through the hardware layer, and then reassemble the fragmented data packets in the reassembly queue through the software layer to obtain the corresponding original data packets, and finally send the original data packets to the transport layer. Therefore, after receiving the network data stream containing fragmented data packets, the fragmented data packets can be copied to each reassembly queue, and the fragmented data packets are stored in any reassembly queue, so that the corresponding original data packets are obtained after the fragmented data packets are reassembled through the software layer, and sent to the transport layer, thereby realizing parallel processing of the hardware layer and the software layer, improving processing efficiency, and reducing processing latency. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the accompanying drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and the originals and elements are not necessarily drawn to scale.
[0023] Figure 1 A flowchart of a method for reassembling fragmented messages based on a DPU multi-queue is provided in an embodiment of the present disclosure;
[0024] Figure 2 A flowchart of another method for reassembling fragmented messages based on DPU multi-queues provided in an embodiment of the present disclosure;
[0025] Figure 3 A flowchart of another method for reassembling fragmented messages based on a DPU multi-queue is provided in an embodiment of the present disclosure;
[0026] Figure 4 A structural schematic diagram of a DPU-based multi-queue fragmented message reassembly device provided in an embodiment of the present disclosure;
[0027] Figure 5 A structural schematic diagram of a DPU-based multi-queue fragmented message reassembly device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0028] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments described herein, which are instead provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0029] It should be understood that the various steps described in the method embodiments of the present disclosure may be performed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this respect.
[0030] The term "including" and its variations used herein are open inclusions, i.e., "including but not limited to". The term "based on" means "based at least in part on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.
[0031] It should be noted that the concepts such as "first" and "second" mentioned in the present disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0032] It should be noted that the modifications of "one" and "plurality" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, it should be understood as "one or more".
[0033] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.
[0034] In order to solve the above problems, the embodiments of the present disclosure provide a method, device, equipment and medium for reassembling fragmented messages based on DPU multi-queues. Figures 1 to 3 The DPU multi-queue fragmented message reassembly method provided in an embodiment of the present disclosure is described in detail.
[0035] Optionally, a data processing unit or dedicated data processor (Data Processing Unit, DPU) is a hardware accelerator for data processing that runs an independent operating system, complex hardware offload modules, and matching network, security, and storage software functions. DPUs are typically used to accelerate throughput-intensive tasks in data centers, cloud computing, and edge computing, such as artificial intelligence reasoning, large-scale data analysis, and network security. DPUs consist of three main elements, including processing cores, network interfaces, and memory interfaces. These components work together to enable the DPU to process data efficiently.
[0036] Figure 1 A flow chart of a method for reassembling fragmented messages based on a DPU multi-queue provided in an embodiment of the present disclosure is shown.
[0037] In an embodiment of the present disclosure, the DPU multi-queue fragment message reassembly method may be performed by an electronic device, wherein the electronic device may include but is not limited to devices such as computer devices, cloud servers or cloud server clusters.
[0038] like Figure 1 As shown, the DPU multi-queue fragmented message reassembly method may include the following steps.
[0039] S110: Receive a network data stream, where the network data stream includes fragmented data packets.
[0040] In an embodiment of the present disclosure, an electronic device may receive a network data stream.
[0041] Optionally, the network data stream is a sequence of data transmitted in the network, which is transmitted and processed according to specific rules and methods. The network data stream includes fragmented data packets.
[0042] Optionally, the fragmented data packet may be a data packet including multiple data fragments.
[0043] Specifically, the electronic device may receive a network data stream containing fragmented data packets.
[0044] S120. Copy the fragmented data packet to each reassembly queue through the hardware layer.
[0045] In the embodiment of the present disclosure, the electronic device may copy the fragmented data packet to each reassembly queue through the hardware layer.
[0046] Alternatively, the hardware layer is the most basic level in a computer system, including all physical components.
[0047] Optionally, the reassembly queue may be a queue for storing data packets that need to be reassembled from fragments.
[0048] Specifically, the hardware layer includes a plurality of reassembly queues. After receiving a network data stream containing fragmented data packets, the plurality of electronic devices can copy the fragmented data packets to each reassembly queue through the hardware layer.
[0049] S130. Reassemble the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets.
[0050] In the disclosed embodiment, the electronic device may reassemble the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets.
[0051] Optionally, the original data packet may be a data packet that needs to be fragmented and reassembled for transmission.
[0052] Specifically, after the electronic device copies the fragmented data packets to each reassembly queue through the hardware layer, it can reassemble the fragmented data packets in the reassembly queue through the software layer to obtain the corresponding original data packets.
[0053] S140: Send the original data packet to the transport layer.
[0054] In the embodiment of the present disclosure, the electronic device may send the original data packet to the transport layer.
[0055] Optionally, the transport layer (Socket) is used to provide communication transmission services.
[0056] Specifically, after obtaining the original data packet, the electronic device may send the original data packet to the transport layer.
[0057] Therefore, in the embodiment of the present disclosure, it is possible to receive a network data stream, which includes fragmented data packets, and then copy the fragmented data packets to each reassembly queue through the hardware layer, and then reassemble the fragmented data packets in the reassembly queue through the software layer to obtain the corresponding original data packets, and finally send the original data packets to the transport layer. Therefore, after receiving the network data stream including fragmented data packets, the fragmented data packets can be copied to each reassembly queue, and the fragmented data packets are stored in any reassembly queue, so that the corresponding original data packets are obtained after the fragmented data packets are reassembled through the software layer, and sent to the transport layer, thereby realizing parallel processing of the hardware layer and the software layer, improving processing efficiency, and reducing processing delay.
[0058] Optionally, after S110, the DPU multi-queue fragmented message reassembly method may further include: acquiring the MF field of the network data flow through the distribution component of the hardware layer; and determining whether the network data flow contains the fragmented data packet through the MF field.
[0059] In the embodiment of the present disclosure, the electronic device may obtain the MF field of the network data stream through the distribution component of the hardware layer.
[0060] Optionally, the distribution component may be a component for distributing data streams.
[0061] Optionally, the More Fragments (MF) field is used to indicate whether the original IP datagram has more fragments.
[0062] Specifically, after receiving the network data stream, the electronic device can obtain the MF field of the network data stream through the distribution component of the hardware layer, for example, obtaining the MF field of the network data stream from the Internet Protocol (IP) header of the network data stream.
[0063] Furthermore, the electronic device may determine whether the network data flow includes the fragmented data packet through the MF field.
[0064] Specifically, after obtaining the MF field of the network data stream, the electronic device can determine whether the network data stream contains the fragmented data packet through the MF field. For example, when the original IP datagram is fragmented, except for the last fragment, the MF flags of all other fragments are set to 1, and the MF flag of the last fragment is set to 0, indicating that this is the last fragment of the datagram, that is, it can be determined whether the network data stream is a fragmented data stream and contains fragmented data packets.
[0065] Optionally, S120 may specifically include: when the network data flow includes the fragmented data packet, copying the fragmented data packet to each reassembly queue through a hardware layer.
[0066] In the embodiment of the present disclosure, after the electronic device judges the network data flow, if it is determined that the network data flow contains the fragmented data packet, the fragmented data packet may be copied through the hardware layer and distributed to each reassembly queue.
[0067] Optionally, before S130, the DPU multi-queue based fragmented message reassembly method may further include: determining a target queue bound to a target application in the software layer from among the multiple reassembly queues.
[0068] In the embodiment of the present disclosure, the electronic device may determine the target queue bound to the target application in the software layer from among the plurality of reorganization queues.
[0069] Optionally, the target application may be any one of a plurality of applications (APP) in the software layer.
[0070] Optionally, the target queue may be a reorganization queue bound to the target application program among the multiple reorganization queues.
[0071] Specifically, in the multiple reorganization queues of the hardware layer, each reorganization queue corresponds to an application in the bound software layer, and the electronic device can determine the target queue bound to the target application in the software layer from the multiple reorganization queues.
[0072] Optionally, S130 may specifically include: reassembling the fragmented data packets stored in the target queue by a reassembly component of the software layer to obtain corresponding original data packets.
[0073] In the disclosed embodiment, the electronic device may reassemble the fragmented data packets stored in the target queue through the reassembly component of the software layer to obtain corresponding original data packets.
[0074] Specifically, after determining the target queue bound to the target application, the electronic device can reassemble the fragmented data packets stored in the target queue through a reassembly component of the software layer to obtain the corresponding original data packets.
[0075] Optionally, before S140, the DPU multi-queue fragmented message reassembly method may further include: determining whether the quintuple of the original data packet corresponds to the quintuple of the transport layer.
[0076] In the embodiment of the present disclosure, the electronic device may determine whether the quintuple of the original data packet corresponds to the quintuple of the transport layer.
[0077] Specifically, after obtaining the original data packet, the electronic device can determine whether the quintuple of the original data packet corresponds to the quintuple of the transmission layer, that is, determine whether the information contained in the quintuple of the original data packet is the same as that contained in the quintuple of the transmission layer.
[0078] Optionally, the DPU multi-queue fragmented message reassembly method may also include: when the quintuple of the original data packet corresponds to the quintuple of the transport layer, sending the original data packet to the transport layer; when the quintuple of the original data packet does not correspond to the quintuple of the transport layer, discarding the original data packet.
[0079] In some embodiments of the present disclosure, when the quintuple of the original data packet corresponds to the quintuple of the transport layer, the original data packet is sent to the transport layer.
[0080] In the embodiment of the present disclosure, when the quintuple of the original data packet corresponds to the quintuple of the transport layer, the electronic device may send the original data packet to the transport layer.
[0081] Specifically, after the electronic device determines the quintuple of the original data packet and the quintuple of the transport layer, if the quintuple of the original data packet corresponds to the quintuple of the transport layer, the electronic device may send the original data packet to the transport layer.
[0082] In some other embodiments of the present disclosure, when the quintuple of the original data packet does not correspond to the quintuple of the transport layer, the original data packet is discarded.
[0083] In the embodiment of the present disclosure, when the quintuple of the original data packet does not correspond to the quintuple of the transport layer, the electronic device may discard the original data packet.
[0084] Specifically, after the electronic device determines the quintuple of the original data packet and the quintuple of the transport layer, if the quintuple of the original data packet does not correspond to the quintuple of the transport layer, the electronic device may discard the original data packet.
[0085] Figure 2 A flow chart of another method for reassembling fragmented messages based on DPU multiple queues provided in an embodiment of the present disclosure is shown.
[0086] like Figure 2As shown, the electronic device can receive a network data stream, and can obtain the MF field of the network data stream through the distribution component of the hardware layer, for example, obtain the MF field of the network data stream from the IP header of the network data stream, and determine whether the network data stream contains the fragmented data packet through the MF field. For example, when the original IP datagram is fragmented, the MF flags of all fragments except the last fragment are set to 1, and the MF flag of the last fragment is set to 0, indicating that this is the last fragment of the datagram, that is, it can be determined whether the network data stream is a fragmented data stream and contains fragmented data packets. If it is determined that the network data stream contains the fragmented data packet, the fragmented data packet can be copied and distributed to each reassembly queue through the hardware layer, that is, the electronic device can copy the fragmented data packet to reassembly queue 1, reassembly queue 2, and reassembly queue n. Among them, each reassembly queue corresponds to an application in the bound software layer, for example, reassembly queue 1 is bound to application 1, and reassembly queue 2 is bound to application 2. The electronic device can determine the target queue bound to the target application in the software layer among the multiple reassembly queues.
[0087] Figure 3 A flow chart of another method for reassembling fragmented messages based on DPU multiple queues provided in an embodiment of the present disclosure is shown.
[0088] like Figure 3 As shown, the electronic device can reassemble the fragmented data packets stored in the target queue through the reassembly component of the software layer to obtain the corresponding original data packets, and then determine whether the quintuple of the original data packet corresponds to the quintuple of the transport layer, that is, determine whether the information contained in the quintuple of the original data packet is the same as that contained in the quintuple of the transport layer; if the quintuple of the original data packet corresponds to the quintuple of the transport layer, the electronic device can send the original data packet to the transport layer; if the quintuple of the original data packet does not correspond to the quintuple of the transport layer, the electronic device can discard the original data packet.
[0089] Figure 4 A structural schematic diagram of a DPU-based multi-queue fragmented message reassembly device provided in an embodiment of the present disclosure is shown.
[0090] like Figure 4 As shown, the DPU-based multi-queue fragmented message reassembly device 400 may include a data receiving module 410 , a data replication module 420 , a data reassembly module 430 and a first sending module 440 .
[0091] The data receiving module 410 may be configured to receive a network data stream, wherein the network data stream includes fragmented data packets.
[0092] The data replication module 420 may be configured to replicate the fragmented data packets to each reassembly queue through a hardware layer.
[0093] The data reassembly module 430 may be used to reassemble the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets.
[0094] The first sending module 440 can be used to send the original data packet to the transport layer.
[0095] Therefore, in the embodiment of the present disclosure, it is possible to receive a network data stream, which includes fragmented data packets, and then copy the fragmented data packets to each reassembly queue through the hardware layer, and then reassemble the fragmented data packets in the reassembly queue through the software layer to obtain the corresponding original data packets, and finally send the original data packets to the transport layer. Therefore, after receiving the network data stream including fragmented data packets, the fragmented data packets can be copied to each reassembly queue, and the fragmented data packets are stored in any reassembly queue, so that the corresponding original data packets are obtained after the fragmented data packets are reassembled through the software layer, and sent to the transport layer, thereby realizing parallel processing of the hardware layer and the software layer, improving processing efficiency, and reducing processing delay.
[0096] In some embodiments of the present disclosure, the DPU multi-queue fragmented message reassembly device 400 may further include a field acquisition module and a first judgment module.
[0097] The field acquisition module may be used to acquire the MF field of the network data stream through the distribution component of the hardware layer after receiving the network data stream.
[0098] The first judgment module can be used to judge whether the network data flow includes the fragmented data packet through the MF field.
[0099] In some embodiments of the present disclosure, the data replication module 420 may be specifically configured to replicate the fragmented data packets to each reassembly queue through a hardware layer when the network data stream includes the fragmented data packets.
[0100] In some embodiments of the present disclosure, the DPU-based multi-queue fragmented message reassembly device 400 may further include a queue determination module.
[0101] The queue determination module may be used to determine a target queue bound to a target application in the software layer from among a plurality of the reassembly queues before the fragmented data packets in the reassembly queue are reassembled through the software layer.
[0102] In some embodiments of the present disclosure, the data reassembly module 430 may be specifically configured to reassemble the fragmented data packets stored in the target queue through a reassembly component of the software layer to obtain corresponding original data packets.
[0103] In some embodiments of the present disclosure, the DPU multi-queue based fragmented message reassembly device 400 may further include a second judgment module.
[0104] The second determination module may be configured to determine whether the quintuple of the original data packet corresponds to the quintuple of the transport layer before sending the original data packet to the transport layer.
[0105] In some embodiments of the present disclosure, the DPU-based multi-queue fragmented message reassembly device 400 may further include a second sending module and a data discarding module.
[0106] The second sending module can be used to send the original data packet to the transport layer when the quintuple of the original data packet corresponds to the quintuple of the transport layer.
[0107] The data discarding module can be used to discard the original data packet when the quintuple of the original data packet does not correspond to the quintuple of the transport layer.
[0108] It should be noted that Figure 4 The DPU-based multi-queue fragmented message reassembly device 400 can be executed Figures 1 to 3 The various steps in the method embodiment shown in the figure are implemented Figures 1 to 3 The various processes and effects in the method embodiment shown are not described in detail here.
[0109] Figure 5 A structural schematic diagram of a DPU-based multi-queue fragmented message reassembly device provided in an embodiment of the present disclosure is shown.
[0110] In some embodiments of the present disclosure, Figure 5 The DPU multi-queue fragment message reassembly device shown may be an electronic device. Specifically, the electronic device may include but is not limited to devices such as computer devices, cloud servers or cloud server clusters.
[0111] like Figure 5 As shown, the DPU-based multi-queue fragmented message reassembly device may include a processor 501 and a memory 502 storing computer program instructions.
[0112] Specifically, the processor 501 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiments of the present application.
[0113] The memory 502 may include a large capacity memory for information or instructions. By way of example and not limitation, the memory 502 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a tape, or a universal serial bus (USB) drive or a combination of two or more of these. Where appropriate, the memory 502 may include a removable or non-removable (or fixed) medium. Where appropriate, the memory 502 may be inside or outside the integrated gateway device. In a particular embodiment, the memory 502 is a non-volatile solid-state memory. In a particular embodiment, the memory 502 includes a read-only memory (ROM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (Electrically Erasable Programmable ROM, EEPROM), an electrically rewritable ROM (EAROM) or a flash memory, or a combination of two or more of these.
[0114] The processor 501 reads and executes the computer program instructions stored in the memory 502 to perform the steps of the DPU multi-queue fragmented message reassembly method provided in the embodiment of the present disclosure.
[0115] In one example, the DPU multi-queue fragmented message reassembly device may further include a transceiver 503 and a bus 504. Figure 5 As shown, the processor 501, the memory 502 and the transceiver 503 are connected via a bus 504 and communicate with each other.
[0116] The bus 504 includes hardware, software, or both. For example, but not limitation, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industrial Standard Architecture (ISA) bus, an InfiniBand interconnect, a Low Pin Count (LPC) bus, a memory bus, a MicroChannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses or a combination of two or more of these. Where appropriate, the bus 504 may include one or more buses. Although embodiments of the present application describe and illustrate a particular bus, the present application contemplates any suitable bus or interconnect.
[0117] The embodiment of the present disclosure also provides a computer-readable storage medium, which can store a computer program. When the computer program is executed by a processor, the processor implements the DPU multi-queue fragmented message reassembly method provided by the embodiment of the present disclosure.
[0118] The above-mentioned storage medium may, for example, include a memory 502 of computer program instructions, and the above-mentioned instructions may be executed by a processor 501 based on a DPU multi-queue fragmented message reassembly device to complete the DPU multi-queue fragmented message reassembly method provided in the embodiment of the present disclosure. Optionally, the storage medium may be a non-temporary computer-readable storage medium, for example, the non-temporary computer-readable storage medium may be a ROM, a random access memory (Random Access Memory, RAM), a compact disc read-only memory (Compact Disc ROM, CD-ROM), a magnetic tape, a floppy disk, and an optical data storage device, etc.
[0119] It should be noted that, in this article, relational terms such as "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the term "comprising" is intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device.
[0120] The above description is only a specific embodiment of the present disclosure, so that those skilled in the art can understand or implement the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure will not be limited to the embodiments described herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for reassembling fragmented messages based on DPU multi-queues, characterized in that: include: Receiving a network data stream, wherein the network data stream includes fragmented data packets; Copying the fragmented data packets to each reassembly queue through a hardware layer; Reassembling the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets; The original data packet is sent to the transport layer.
2. The method according to claim 1, characterized in that After receiving the network data stream, the method further includes: Acquire the MF field of the network data stream through the distribution component of the hardware layer; The MF field is used to determine whether the network data stream contains the fragmented data packet.
3. The method according to claim 2, characterized in that The step of copying the fragmented data packets to each reassembly queue through the hardware layer includes: In the case that the network data flow includes the fragmented data packets, the fragmented data packets are copied to each reassembly queue through a hardware layer.
4. The method according to claim 1, characterized in that: Before the software layer is used to reassemble the fragmented data packets in the reassembly queue, the method further includes: A target queue to which a target application in the software layer is bound is determined from among the plurality of reorganization queues.
5. The method according to claim 4, characterized in that The reassembling of the fragmented data packets in the reassembly queue by the software layer to obtain the corresponding original data packets includes: The fragmented data packets stored in the target queue are reassembled by the reassembly component of the software layer to obtain corresponding original data packets.
6. The method according to claim 1, characterized in that Before sending the original data packet to the transport layer, the method further includes: Determine whether the quintuple of the original data packet corresponds to the quintuple of the transport layer.
7. The method according to claim 6, characterized in that The method further comprises: In a case where the quintuple of the original data packet corresponds to the quintuple of the transport layer, sending the original data packet to the transport layer; When the quintuple of the original data packet does not correspond to the quintuple of the transport layer, the original data packet is discarded.
8. A DPU-based multi-queue fragment message reassembly device, characterized in that: include: A data receiving module, used for receiving a network data stream, wherein the network data stream includes fragmented data packets; A data replication module, used for replicating the fragmented data packets to each reassembly queue through a hardware layer; A data reassembly module, used for reassembling the fragmented data packets in the reassembly queue through a software layer to obtain corresponding original data packets; The first sending module is used to send the original data packet to the transport layer.
9. A DPU-based multi-queue fragment message reassembly device, characterized in that: include: processor; A memory for storing executable instructions; The processor is used to read the executable instructions from the memory and execute the executable instructions to implement the DPU multi-queue fragmented message reassembly method described in any one of claims 1 to 7.
10. A non-volatile computer-readable storage medium, characterized in that: The storage medium stores a computer program. When the computer program is executed by the processor, the processor implements the DPU multi-queue fragmented message reassembly method described in any one of claims 1 to 7.
Citation Information
Patent Citations
Anti-attack IPv6 fragmentation message reassembling method and device
CN103491096A
Network sub-packet processing method, device and equipment and readable storage medium
CN116192783A
DPU, data transmission method based on DPU, storage medium and electronic equipment
CN118660060A