Data packet assisted acceleration method, apparatus, electronic device, and computer readable medium

By reading the acceleration table and determining the target acceleration connection, and using auxiliary acceleration files and functions to accelerate packet forwarding, the problem of network latency and throughput slowdown after the hardware and software acceleration tables are full is solved, and effective packet acceleration is achieved.

CN115865671BActive Publication Date: 2026-05-08HUNAN YILIAN UNLIMITED TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HUNAN YILIAN UNLIMITED TECH CO LTD
Filing Date
2022-10-26
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

In existing technologies, hardware and software acceleration tables cannot accelerate normally when they are full, resulting in network latency and reduced throughput.

Method used

The system reads the acceleration table based on a preset reading interval to determine the target acceleration connection, and uses auxiliary acceleration files and functions to accelerate packet forwarding, including initializing the auxiliary acceleration table and modifying packet characteristics to achieve acceleration.

Benefits of technology

When the hardware and software acceleration tables are full, the system accelerates the forwarding of data packets that cannot be accelerated normally, thus avoiding network latency and reduced throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115865671B_ABST
    Figure CN115865671B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the field of data packet acceleration, and provides a data packet assisted acceleration method, device, electronic equipment and computer readable medium. The method comprises: reading an acceleration table based on a preset reading interval to obtain an acceleration table value; in response to the acceleration table value being greater than a preset threshold, determining a target acceleration connection; and accelerating and forwarding a data packet corresponding to the target acceleration connection. The method is based on the soft acceleration, hard acceleration and Ethernet packet receiving interface provided by the original factory gateway or router SDK to develop its own data packet assisted acceleration module. When the hardware acceleration and software acceleration cannot normally accelerate due to the full acceleration table, the assisted acceleration method of the present disclosure helps to accelerate and forward the data packet that cannot normally accelerate.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of packet acceleration, and more particularly to packet-assisted acceleration methods, apparatus, electronic devices, and computer-readable media. Background Technology

[0002] Most gateways currently support both hardware and software acceleration. Hardware acceleration is used for synchronous TCP / UDP / broadcast messages, bypassing the protocol stack and CPU to process the messages, thereby reducing network latency and increasing throughput.

[0003] However, current hardware and software acceleration also have bottlenecks. When the hardware and software acceleration tables are full, they cannot accelerate the forwarding of subsequent network connections, resulting in latency and slow throughput in the later network. Summary of the Invention

[0004] (I) Purpose of the Invention

[0005] In view of the above problems, in order to solve the problem that software acceleration and hardware acceleration cannot accelerate normally when the acceleration table is full, this disclosure provides the following technical solution.

[0006] (II) Technical Solution

[0007] A first aspect of this disclosure provides a data packet-assisted acceleration method, comprising:

[0008] The acceleration table is read based on a preset reading interval to obtain the acceleration table value;

[0009] If the above acceleration table value is greater than a preset threshold, a target acceleration connection is determined;

[0010] The data packets corresponding to the aforementioned target acceleration connection are forwarded at an accelerated speed.

[0011] In one possible implementation, the above-mentioned method of reading the acceleration table based on a preset reading interval to obtain the acceleration table value includes:

[0012] Start the acceleration table detection thread and read the above acceleration table based on the preset reading interval. The above acceleration table includes software acceleration table and hardware acceleration table.

[0013] In one possible implementation, determining the target acceleration connection in response to the acceleration table value being greater than a preset threshold includes:

[0014] In response to the above acceleration table value being greater than a preset threshold, the connection tracking table is read to obtain the connection tracking result;

[0015] Based on the above connection tracking results, candidate target acceleration connections are determined;

[0016] The target accelerated connection is determined based on the above candidate target accelerated connections.

[0017] In one possible implementation, determining candidate target acceleration connections based on the connection tracking results includes:

[0018] From the above connection tracking results, a preset number of connections with the "Established" status are filtered out as candidate accelerated connections.

[0019] In one possible implementation, the above-mentioned determination of the target acceleration connection based on the candidate target acceleration connections includes:

[0020] The above candidate target acceleration connections are matched with the connections in the acceleration table to obtain the matching results;

[0021] In response to the above matching result indicating a matching failure, the source IP, source port, destination IP, and destination port of the above candidate target accelerated connection are written into the auxiliary acceleration file;

[0022] Based on the aforementioned auxiliary acceleration file, initialize the auxiliary acceleration table;

[0023] Register an auxiliary acceleration function at the Ethernet driver's packet receive entry point;

[0024] Based on the above auxiliary acceleration function, determine whether the source IP, source port, destination IP, and destination port of the above candidate target acceleration connection are in the auxiliary acceleration table, and obtain the judgment result;

[0025] If the above judgment result indicates that the source IP, source port, destination IP, and destination port of the above candidate target accelerated connection are in the auxiliary acceleration table, then the above candidate target accelerated connection is determined as the target accelerated connection.

[0026] In one possible implementation, the above-mentioned accelerated forwarding of data packets corresponding to the target accelerated connection includes:

[0027] Modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection;

[0028] The above data packets are forwarded by calling the driver's packet sending function to complete the acceleration.

[0029] In one possible implementation, the modification operations used to modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection include: route modification, SNAT modification, SNAPT modification, DNAT modification, SNPT modification, DNPT modification, and DNAPT modification.

[0030] A second aspect of this disclosure provides a data packet-assisted acceleration device, comprising:

[0031] The acceleration table reading unit is configured to read the acceleration table based on a preset reading interval to obtain the acceleration table value;

[0032] The target acceleration connection determination unit is configured to determine a target acceleration connection in response to the acceleration table value being greater than a preset threshold.

[0033] The acceleration unit is configured to accelerate the forwarding of data packets corresponding to the aforementioned target acceleration connection.

[0034] A third aspect of this disclosure provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of the method described above.

[0035] A fourth aspect of this disclosure provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the above-described method.

[0036] (III) Beneficial Effects

[0037] The beneficial effects of this disclosed embodiment compared with the prior art are: when hardware acceleration and software acceleration fail to accelerate normally due to a full acceleration table, the auxiliary acceleration method disclosed herein helps to accelerate the forwarding of data packets that cannot be accelerated normally. Attached Figure Description

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

[0039] Figure 1 This is a flowchart of some embodiments of the data packet-assisted acceleration method according to this disclosure;

[0040] Figure 2 This is a schematic diagram of the structure of some embodiments of the data packet-assisted acceleration device according to the present disclosure;

[0041] Figure 3 This is a schematic diagram of the structure of an electronic device suitable for implementing some embodiments of the present disclosure. Detailed Implementation

[0042] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0043] It should also be noted that, for ease of description, only the parts relevant to the invention are shown in the accompanying drawings. Unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other.

[0044] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.

[0045] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0046] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0047] The following is for reference. Figure 1 The data packet-assisted acceleration method disclosed herein is described in detail, such as Figure 1 As shown, the method disclosed herein mainly includes the following steps S101 to S103.

[0048] Step S101: Read the acceleration table based on the preset reading interval to obtain the acceleration table value.

[0049] In some embodiments, the above-mentioned reading of the acceleration table based on a preset reading interval to obtain the acceleration table value specifically includes: starting an acceleration table detection thread and reading the acceleration table based on the preset reading interval, wherein the acceleration table includes a software acceleration table and a hardware acceleration table. As an example, the preset reading interval can be 1 second, that is, reading the acceleration table every second to obtain the acceleration table value.

[0050] Step S102: In response to the above acceleration table value being greater than a preset threshold, a target acceleration connection is determined.

[0051] In some embodiments, the aforementioned target acceleration connection refers to a connection that needs acceleration after the acceleration table is full. The aforementioned preset threshold can be a value representing the fullness of the acceleration table. When the acceleration table is full, and software acceleration and hardware acceleration cannot be performed normally, a new connection that needs acceleration is determined, i.e., the target acceleration connection. The aforementioned target acceleration connection is determined through the following steps:

[0052] Step 1: In response to the above acceleration table value being greater than a preset threshold, read the connection tracking table to obtain the connection tracking result.

[0053] Specifically, when the value of the acceleration table is greater than the preset threshold, that is, when the acceleration table is full, the auxiliary acceleration function is activated, and the connection filtering module reads the connection tracking table to obtain the connection tracking results. Here, the connection tracking table is a linked list, and the data structure is in the network layer of the kernel.

[0054] The second step is to determine candidate target acceleration connections based on the above connection tracking results.

[0055] Specifically, determining candidate target acceleration connections based on the aforementioned connection tracking results includes filtering a predetermined number of connections with an "Established" connection status from the connection tracking results as candidate target acceleration connections. Further, this involves selecting a predetermined number of connections with an "Established" connection status from the end of the connection tracking table within the aforementioned connection tracking results. For example, the predetermined number could be 10.

[0056] The third step is to determine the target accelerated connection based on the above candidate target accelerated connections.

[0057] Specifically, determining the target accelerated connection includes the following steps: First, the candidate target accelerated connections are matched with the connections in the acceleration table to obtain a matching result; in response to the matching result indicating a match failure, the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are written into an auxiliary acceleration file; based on the auxiliary acceleration file, an auxiliary acceleration table is initialized; an auxiliary acceleration function is registered at the Ethernet driver packet receiving entry point; based on the auxiliary acceleration function, it is determined whether the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table to obtain a judgment result; in response to the judgment result indicating that the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, the candidate target accelerated connection is determined as the target accelerated connection. Here, the Ethernet driver packet receiving entry point refers to the original manufacturer's gateway. This disclosure is based on the software acceleration, hardware acceleration, and Ethernet packet receiving interfaces provided by the original manufacturer's gateway or router SDK to develop a custom packet auxiliary acceleration module.

[0058] Step S103: Accelerate the forwarding of the data packets corresponding to the target accelerated connection.

[0059] Specifically, firstly, the data packets corresponding to the target accelerated connection are modified based on the connection characteristics of the target accelerated connection; then, the driver packet sending function is called to forward the data packets to complete the acceleration. This requires modifying the skb_buff of the data packets, using specific modification operations including: route modification, SNAT modification, SNAPT modification, DNAT modification, SNPT modification, DNPT modification, and DNAPT modification.

[0060] The beneficial effects of the embodiments disclosed herein compared to the prior art are as follows:

[0061] Based on the software acceleration, hardware acceleration, and Ethernet packet reception interfaces provided by the original gateway or router SDK, develop your own packet auxiliary acceleration module. When hardware acceleration and software acceleration fail to accelerate normally due to a full acceleration table, the auxiliary acceleration method disclosed herein can help accelerate the forwarding of packets that cannot be accelerated normally.

[0062] All of the above-mentioned optional technical solutions can be combined in any way to form the optional embodiments of this application, and will not be described in detail here.

[0063] The following are embodiments of the apparatus disclosed herein, which can be used to execute embodiments of the method disclosed herein. For details not disclosed in the apparatus embodiments of this disclosure, please refer to the embodiments of the method disclosed herein.

[0064] Figure 2 These are schematic diagrams illustrating the structure of some embodiments of the data packet-assisted acceleration device disclosed herein. For example... Figure 2 As shown, the data packet acceleration device includes: an acceleration table reading unit 201, a target acceleration connection determination unit 202, and an acceleration unit 203. The acceleration table reading unit 201 is configured to read the acceleration table based on a preset reading interval to obtain the acceleration table value. The target acceleration connection determination unit 202 is configured to determine a target acceleration connection in response to the acceleration table value being greater than a preset threshold. The acceleration unit 203 is configured to accelerate the forwarding of data packets corresponding to the target acceleration connection.

[0065] In some optional implementations of some embodiments, the acceleration table reading unit 201 is further configured to start an acceleration table detection thread and read the acceleration table based on a preset reading interval, wherein the acceleration table includes a software acceleration table and a hardware acceleration table.

[0066] In some optional implementations of some embodiments, the target accelerated connection determination unit 202 is further configured to, in response to the acceleration table value being greater than a preset threshold, read the connection tracking table to obtain the connection tracking result; determine candidate target accelerated connections based on the connection tracking result; and determine the target accelerated connection based on the candidate target accelerated connections.

[0067] In some optional implementations of some embodiments, the above-mentioned determination of candidate target accelerated connections based on the connection tracking results is further configured to: filter a preset number of connections with an Established connection status from the connection tracking results as candidate target accelerated connections.

[0068] In some optional implementations of certain embodiments, the determination of the target accelerated connection based on the candidate target accelerated connection is further configured to: match the candidate target accelerated connection with the connections in the acceleration table to obtain a matching result; in response to the matching result indicating a matching failure, write the source IP, source port, destination IP, and destination port of the candidate target accelerated connection into an auxiliary acceleration file; initialize the auxiliary acceleration table based on the auxiliary acceleration file; register an auxiliary acceleration function at the Ethernet driver packet receiving entry point; determine whether the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table based on the auxiliary acceleration function, and obtain a determination result; in response to the determination result indicating that the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, then the candidate target accelerated connection is determined as the target accelerated connection.

[0069] In some optional implementations of certain embodiments, the acceleration unit 203 is further configured to modify the data packets corresponding to the target acceleration connection based on the connection characteristics of the target acceleration connection; and call the driver packet sending function to forward the data packets to complete the acceleration.

[0070] In some optional implementations of some embodiments, the modification operations used to modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection include: route modification, SNAT modification, SNAPT modification, DNAT modification, SNPT modification, DNPT modification, and DNAPT modification.

[0071] The following is for reference. Figure 3 It shows a schematic diagram of the structure of an electronic device 300 suitable for implementing some embodiments of the present disclosure. Figure 3 The server shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments of this disclosure.

[0072] like Figure 3As shown, the electronic device 300 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 301, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 302 or a program loaded from a storage device 308 into a random access memory (RAM) 303. The RAM 303 also stores various programs and data required for the operation of the electronic device 300. The processing unit 301, ROM 302, and RAM 303 are interconnected via a bus 303. An input / output (I / O) interface 305 is also connected to the bus 303.

[0073] Typically, the following devices can be connected to I / O interface 305: input devices 306 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 307 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 308 including, for example, magnetic tapes, hard disks, etc.; and communication devices 309. Communication device 309 allows electronic device 300 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 3 An electronic device 300 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively. Figure 3 Each box shown can represent a device or multiple devices as needed.

[0074] In particular, according to some embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 309, or installed from storage device 308, or installed from ROM 302. When the computer program is executed by processing device 301, it performs the functions defined in the methods of some embodiments of this disclosure.

[0075] It should be noted that, in some embodiments of this disclosure, the computer-readable medium described above may be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium may be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In some embodiments of this disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In some embodiments of this disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0076] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0077] The aforementioned computer-readable medium may be included in the aforementioned device; or it may exist independently and not assembled into the electronic device. The aforementioned computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: read an acceleration table based on a preset reading interval to obtain an acceleration table value; determine a target acceleration connection in response to the acceleration table value being greater than a preset threshold; and accelerate the forwarding of data packets corresponding to the target acceleration connection.

[0078] Computer program code for performing operations of some embodiments of this disclosure can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as "C" or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0079] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0080] The units described in some embodiments of this disclosure can be implemented in software or in hardware. The described units can also be housed in a processor; for example, a processor may be described as including an acceleration table reading unit, a target acceleration connection determination unit, and an acceleration unit. The names of these units do not necessarily limit the specific unit itself. For instance, the acceleration table reading unit may also be described as a unit that "reads the acceleration table based on a preset reading interval to obtain acceleration table values."

[0081] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0082] The above description is merely a selection of preferred embodiments of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the invention involved in the embodiments of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described inventive concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features with similar functions disclosed in the embodiments of this disclosure.

Claims

1. A data packet-assisted acceleration method, characterized in that, include: The acceleration table is read based on a preset reading interval to obtain the acceleration table value. The acceleration table includes a hardware acceleration table and a software acceleration table. When the acceleration table value is greater than a preset threshold, i.e. the acceleration table is full, a target acceleration connection is determined. Accelerate the forwarding of data packets corresponding to the target accelerated connection; The step of determining a target acceleration connection in response to the acceleration table value being greater than a preset threshold, i.e., when the acceleration table is full, includes: In response to the acceleration table value being greater than a preset threshold, the connection tracking table is read to obtain the connection tracking result; Based on the connection tracking results, candidate target acceleration connections are determined; The target acceleration connection is determined based on the candidate target acceleration connections; The step of determining the target acceleration connection based on the candidate target acceleration connections includes: The candidate target acceleration connections are matched with the connections in the acceleration table to obtain the matching results; In response to the matching result indicating a matching failure, the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are written into the auxiliary acceleration file; Based on the aforementioned auxiliary acceleration file, initialize the auxiliary acceleration table; Register an auxiliary acceleration function at the Ethernet driver packet receiving entry point. The Ethernet driver packet receiving entry point refers to the original gateway. The packet auxiliary acceleration method is a packet auxiliary acceleration module developed based on the software acceleration, hardware acceleration and Ethernet packet receiving interface provided by the original gateway or router SDK. Based on the auxiliary acceleration function, determine whether the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, and obtain the determination result; If the determination result indicates that the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, then the candidate target accelerated connection is determined as the target accelerated connection; The step of accelerating the forwarding of data packets corresponding to the target accelerated connection includes: Modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection; The driver's packet sending function is invoked to forward the data packets, thus accelerating the process.

2. The data packet-assisted acceleration method as described in claim 1, characterized in that, The process of reading the acceleration table based on a preset reading interval to obtain the acceleration table value includes: Start the acceleration table detection thread and read the acceleration table based on the preset reading interval.

3. The data packet-assisted acceleration method as described in claim 1, characterized in that, The step of determining candidate target acceleration connections based on the connection tracking results includes: A preset number of connections with an "Established" status are filtered from the connection tracking results and selected as candidate accelerated connections.

4. The data packet-assisted acceleration method as described in claim 1, characterized in that, The modification operations used to modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection include: route modification, SNAT modification, SNAPT modification, DNAT modification, SNPT modification, DNPT modification, and DNAPT modification.

5. A data packet-assisted acceleration device, characterized in that, include: The acceleration table reading unit is configured to read the acceleration table based on a preset reading interval to obtain the acceleration table value. The acceleration table includes a hardware acceleration table and a software acceleration table. The target acceleration connection determination unit is configured to determine a target acceleration connection in response to the acceleration table value being greater than a preset threshold, i.e., when the acceleration table is full. The acceleration unit accelerates the forwarding of data packets corresponding to the target acceleration connection; The target acceleration connection determination unit is further configured to: In response to the acceleration table value being greater than a preset threshold, the connection tracking table is read to obtain the connection tracking result; Based on the connection tracking results, candidate target acceleration connections are determined; The target acceleration connection is determined based on the candidate target acceleration connections; The target acceleration connection determination unit is further configured to: The candidate target acceleration connections are matched with the connections in the acceleration table to obtain the matching results; In response to the matching result indicating a matching failure, the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are written into the auxiliary acceleration file; Based on the aforementioned auxiliary acceleration file, initialize the auxiliary acceleration table; Register an auxiliary acceleration function at the Ethernet driver packet receiving entry point. The Ethernet driver packet receiving entry point refers to the original gateway. The packet auxiliary acceleration method is a packet auxiliary acceleration module developed based on the software acceleration, hardware acceleration and Ethernet packet receiving interface provided by the original gateway or router SDK. Based on the auxiliary acceleration function, determine whether the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, and obtain the determination result; If the determination result indicates that the source IP, source port, destination IP, and destination port of the candidate target accelerated connection are in the auxiliary acceleration table, then the candidate target accelerated connection is determined as the target accelerated connection; The acceleration unit is also used for: Modify the data packets corresponding to the target accelerated connection based on the connection characteristics of the target accelerated connection; The driver's packet sending function is invoked to forward the data packets, thus accelerating the process.

6. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method as described in any one of claims 1 to 4.

7. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Hardware implemented load balancing

    CN110178118A