Data processing and data forwarding
By distributing data packets to multiple processing units, the processing performance problem caused by excessive load on a single processing unit is solved, the efficiency and performance of the data processing equipment are improved, and universal high-performance data processing with any sending and receiving end is achieved.
Patent Information
- Application Number
- PCT/IB2025/050683
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-25
- Filing Date
- 2025-01-23
- Publication Date
- 2025-10-02
AI Technical Summary
In the prior art, a data processing device usually processes data packets in a data stream by a single processing unit, which results in an excessive load on the single processing unit when the data volume is large, affecting processing performance and efficiency.
A data processing device based on programmable logic devices is used to distribute data packets to multiple processing units for processing, and data packets are generated and transmitted based on the processing results.
By distributing it to multiple processing units, processing efficiency and performance issues caused by excessive load on a single processing unit are avoided, processing efficiency and performance are improved, and it is universal without the need to redevelop the original equipment.
Smart Images

Figure IB2025050683_02102025_PF_FP_ABST
Abstract
Description
[0001] Data processing and data forwarding technology fields
[0002]
[0001] The present disclosure relates to the field of network communication technology, and in particular to data processing and data forwarding.
[0003]
[0002] In the field of network communications, data is typically encapsulated into data packets and transmitted in the form of streams. In a practical application, the data transmission process often involves some data forwarding devices, such as virtual switches, various gateways, network address translators, or load balancers, for forwarding processing. Data forwarding devices are often configured with multiple processing units. In related technologies, a single processing unit typically receives and processes data packets in a data stream. However, this processing method affects the processing performance of the processing unit and reduces processing efficiency.
[0004]
[0003] The embodiments of the present disclosure provide a data processing method, a data processing device, and a data forwarding device to solve the problem of low data processing efficiency in related technologies.
[0005]
[0004] In a first aspect, an embodiment of the present disclosure provides a data processing method, which is applied to a data processing device based on a programmable logic device, and the method includes: receiving multiple first data packets; distributing the multiple first data packets to multiple processing units at a receiving end; obtaining multiple processing results returned by the multiple processing units after processing the multiple first data packets; generating multiple second data packets based on the multiple processing results; and transmitting the multiple second data packets.
[0006]
[0005] Optionally, distributing the multiple first data packets to the multiple processing units at the receiving end includes: determining a sending order of the multiple first data packets; distributing the multiple first data packets to the multiple processing units according to the sending order of the multiple first data packets; transmitting the multiple second data packets includes: determining a sending order of the multiple second data packets; and transmitting the multiple second data packets according to the sending order of the multiple second data packets.
[0007]
[0006] Optionally, the method further includes: identifying fragmented data packets in the received data stream; and reassembling the fragmented data packets to obtain the original data packet as the first data packet.
[0008]
[0007] Optionally, distributing the multiple first data packets to the multiple processing units at the receiving end includes one or more of the following implementation methods: grouping the multiple first data packets according to at least one attribute information in the five-tuple information, so as to send the first data packets of the same group to the same processing unit; sending the multiple first data packets to different processing units packet by packet; and grouping the multiple first data packets according to custom message field information, so as to send the first data packets of the same group to the same processing unit.
[0009]
[0008] Optionally, distributing the multiple first data packets to the multiple processing units at the receiving end includes: determining whether the data processing device starts an acceleration operation; if so, processing the multiple first data packets to obtain multiple processing results; if not, distributing the multiple first data packets to the multiple processing units at the receiving end.
[0010]
[0009] Optionally, the distributing the multiple first data packets to the multiple processing units at the receiving end includes: decapsulating the multiple first data packets, extracting metadata and payload data in the multiple first data packets; storing the payload data in a corresponding memory space; distributing the metadata of the multiple first data packets to the multiple processing units; and obtaining the multiple processing results returned by the multiple processing units after processing the multiple first data packets includes: obtaining the multiple processing results obtained by the multiple processing units after processing the data based on the metadata of the multiple first data packets; and performing encapsulation processing based on the multiple processing results to generate multiple second data packets.
[0011]
[0010] In a second aspect, an embodiment of the present disclosure provides a data processing method, comprising: receiving at least one first data packet distributed by a data processing device; wherein the at least one first data packet is obtained by the data processing device performing distribution processing on multiple first data packets received; performing data processing on the at least one first data packet to obtain at least one processing result; sending the at least one processing result to the data processing device; wherein the at least one processing result is used to generate a second data packet for transmission.
[0012]
[0011] In a third aspect, an embodiment of the present disclosure provides a data processing device, comprising a programmable logic device: the programmable logic device comprises an input processing unit, a scheduling unit, and an output processing unit connected to a bus; the input processing unit is configured to receive a plurality of first data packets; the scheduling unit is configured to distribute the plurality of first data packets to a plurality of processing units at a receiving end, and obtain a plurality of processing results returned by the plurality of processing units after processing the plurality of first data packets; the output processing unit is configured to generate a plurality of second data packets based on the plurality of processing results, and transmit the plurality of second data.
[0013]
[0012] Optionally, the programmable logic device further includes at least one input interface and at least one output interface; the at least one input interface is used to connect to at least one sending end; the at least one output interface is used to connect to at least one destination end; the input processing unit is specifically used to receive a plurality of first data packets transmitted from at least one sending end from the input interface; the output processing unit is specifically used to transmit the plurality of second data packets to the corresponding destination end through the output interface.
[0014]
[0013] Optionally, the programmable logic device further includes: a resource control unit configured to perform pooling processing based on the first storage resources provided by the programmable logic device and the second storage resources provided by the plurality of processing units, thereby providing corresponding memory space for the input processing unit, the scheduling unit, and the output processing unit.
[0014] Optionally, the programmable logic device further includes: an acceleration processing unit configured to process the plurality of first data packets to obtain the plurality of processing results when the configuration is enabled; the input processing unit configured to transmit the plurality of first data packets to the acceleration processing unit when the acceleration processing unit is enabled, and otherwise transmit the plurality of first data packets to the scheduling unit.
[0015]
[0015] Optionally, the input processing unit is specifically configured to decapsulate the first data packets, extract metadata and payload data, transmit the metadata of the plurality of first data packets to the scheduling unit, and save the payload data to a corresponding memory space; the scheduling unit is specifically configured to distribute the metadata of the plurality of first data packets to the plurality of processing units, so that the processing units process the received metadata to obtain processing results.
[0016]
[0016] Optionally, the scheduling unit is further configured to identify fragmented data packets among the multiple first data packets; reassemble the fragmented data packets; determine a sending order of the multiple first data packets; and distribute the multiple first data packets to the multiple processing units according to the sending order of the multiple first data packets.
[0017]
[0017] In a fourth aspect, an embodiment of the present disclosure provides a data forwarding device, comprising multiple processing units and a storage unit; the storage unit stores one or more computer instructions for being called and executed by the processing unit to implement the data processing method as described in the second aspect above.
[0018]
[0018] In a fifth aspect, an embodiment of the present disclosure provides a computing device, comprising a processing component and a storage component; the storage component stores one or more computer instructions; the one or more computer instructions are used to be called and executed by the processing component to implement the data processing method described in the first aspect or the data processing method described in the second aspect.
[0019]
[0019] In a sixth aspect, an embodiment of the present disclosure provides a computer storage medium storing a computer program. When the computer program is executed by a computer, it implements the data processing method described in the first aspect or the data processing method described in the second aspect.
[0020]
[0020] The present disclosure provides a data processing device implemented based on a programmable logic device. Data packets sent by a transmitting end first arrive at the data processing device. The data processing device can be responsible for receiving multiple first data packets sent by one or more transmitting ends. The data processing device can then distribute the multiple first data packets to multiple processing units at a receiving end, so that the multiple processing units can process the multiple first data packets. The multiple processing units then obtain multiple processing results returned by the multiple processing units for processing the multiple first data packets, generate multiple second data packets based on the multiple processing results, and then transmit the multiple second data packets. In the present disclosure, by distributing the data packets to multiple processing units, the technical problem of affecting processing efficiency and performance due to excessive load on a single processing unit can be avoided, thereby improving processing efficiency and performance. In addition, the data processing functions implemented by the data processing device provided by the present disclosure are universal. The data processing device can be connected between any transmitting end and any receiving end, eliminating the need to redevelop existing equipment, thereby achieving universal and high-performance data processing.
[0021]
[0021] These and other aspects of the present disclosure will become more readily apparent in the following description of the embodiments.
[0022]
[0022] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure or related technologies, the following briefly introduces the drawings required for use in the embodiments or related technology descriptions. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0023]
[0023] FIG1 shows a flow chart of an embodiment of a data processing method provided by the present disclosure.
[0024]
[0024] FIG2 shows a flow chart of an embodiment of a data processing method provided by the present disclosure.
[0025]
[0025] FIG3 shows a schematic structural diagram of an embodiment of a data processing device provided by the present disclosure.
[0026]
[0026] Figure 4 shows a schematic diagram of scene interaction in an actual application of an embodiment of the present disclosure.
[0027]
[0027] Figure 5 shows a structural schematic diagram of an embodiment of a data processing device provided by the present disclosure.
[0028]
[0028] FIG6 shows a schematic diagram of the structure of an embodiment of a computing device provided by the present disclosure.
[0029]
[0029] In order to enable people skilled in the art to better understand the present disclosure, the technical solutions in the present disclosure embodiments will be clearly and completely described below with reference to the accompanying drawings in the present disclosure embodiments.
[0030] Some of the processes described in the specification and claims of this disclosure and the accompanying drawings include multiple operations that appear in a specific order. However, it should be understood that these operations may be executed in a different order than the order in which they appear herein or in parallel. Operation numbers such as 101 and 102 are merely used to distinguish between different operations and do not represent any specific order of execution. Furthermore, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that terms such as "first" and "second" herein are used to distinguish between different messages, devices, modules, etc., and do not represent a sequential order or limit the "first" and "second" to different types.
[0031]
[0031] Currently, a data forwarding device processes a data stream by typically processing packets in the data stream using a single processing unit. When the amount of data in the data stream is large, the load on the single processing unit may be too heavy, affecting processing performance and thereby reducing processing efficiency.
[0032]
[0032] In order to improve processing efficiency and enhance the processing performance of the processing unit, the inventors have thought of using a hardware acceleration unit to process data packets. However, the inventors have found that, in actual operation, especially in cloud computing scenarios, many data forwarding devices are involved. If each data forwarding device is redeveloped and improved, it will consume a lot of resources and cause great waste. Based on this, the inventors have proposed the technical solution of the present disclosure after some research. The embodiment of the present disclosure provides a data processing device implemented based on a programmable logic device. The data packet sent by the sending end will first arrive at the data processing device. The data processing device can be responsible for receiving multiple first data packets sent from one or more sending ends, and then the multiple first data packets can be distributed to multiple processing units at the receiving end so that the multiple processing units can process the multiple first data packets. Then, multiple processing results returned by the multiple processing units for the multiple first data packets including data processing are obtained, and multiple second data packets are generated based on the multiple processing results, and then the multiple second data packets are transmitted. In the disclosed embodiments, by distributing data packets to multiple processing units, the technical problem of overloading a single processing unit, which can affect processing efficiency and performance, can be avoided, thereby improving processing efficiency and performance. Furthermore, the data processing functions implemented by the data processing device provided in the disclosed embodiments are universal. The data processing device can be connected between any sending and receiving end, eliminating the need to redevelop existing equipment, thus achieving universal and high-performance data processing.
[0033] The technical solutions in the embodiments of the present disclosure will be described clearly and completely below with reference to the accompanying drawings. It is apparent that the described embodiments are only a portion of the embodiments of the present disclosure, and are not intended to be exhaustive. All other embodiments derived by those skilled in the art based on the embodiments of the present disclosure without inventive effort are intended to fall within the scope of protection of the present disclosure.
[0034]
[0034] It should be noted that the embodiments of the present disclosure may involve the use of user data. In actual applications, user-specific personal data can be used in the solutions described herein within the scope permitted by applicable laws and regulations of the country where the user is located (for example, with the user's explicit consent, effective notification to the user, etc.).
[0035]
[0035] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or refuse.
[0036]
[0036] It should be noted that the technical solution of the embodiment of the present disclosure is applicable to a network virtual environment. The user described generally refers to a "virtual user". A real user can register a user account in the server through a registration method to obtain a user identity in the network environment.
[0037] The implementation details of the technical solution of the embodiment of the present disclosure are described in detail below.
[0037]
[0038] FIG1 is a flow chart of an embodiment of a data processing method provided by the present disclosure. The technical solution of this embodiment can be executed by a data processing device implemented based on a programmable logic device. The method may include the following steps 101 to 105 .
[0038]
[0039] 101: Receive multiple first data packets; the multiple first data packets may come from one or more sending ends and correspond to one or more data streams.
[0039]
[0040] The programmable logic device may be, for example, a Field Programmable Gate Array (FPGA), a Programmable Array Logic (PAL), or a Programmable Array Logic (PLA).
[0040] A data processing device can be realized by modularizing the programmable logic device, such as a Programmable Logic Array (PLA), a Complex Programmable Logic Device (CPLD), or a Simple Programmable Logic Device (SPLD). The specific structure of the data processing device will be described in detail in the corresponding embodiments below.
[0041]
[0041] The data processing device may provide one or more input interfaces to connect to one or more sending ends, and the one or more sending ends transmit the first data packet via the connection channel.
[0042]
[0042] 102: Distribute multiple first data packets to multiple processing units at the receiving end.
[0043]
[0043] In practical applications, the receiving end may refer to a data forwarding device through which data is transmitted. For example, in a cloud computing scenario, the data forwarding device may be an AVS (Virtual Switch), an IGW (Internet Gateway), a VGW (Virtual Private Cloud Gateway), or a CGW.
[0044] (Cloud Enterprise Network Gateway, dedicated gateway), LB (Load Balancer), and NAT (Network Address Translation), etc. Of course, the receiving end may also refer to the destination end corresponding to the destination address of the first data packet, etc., and this disclosure does not limit this.
[0045]
[0044] The receiving end is configured with multiple processing units, and the processing unit may be, for example, a CPU (Central Processing Unit) or a CPU Core (Central Processing Unit Core).
[0046]
[0045] In an embodiment of the present disclosure, a data processing device may be responsible for distributing the received multiple first data packets to multiple processing units, rather than a single processing unit, thereby avoiding overloading a single processing unit. In cloud computing scenarios, data forwarding devices are typically configured as multi-core CPUs. During actual operation, data streams are processed by a single CPU core, which results in a heavy CPU core load and affects processing performance and efficiency. However, using the technical solutions of an embodiment of the present disclosure, the data processing device may distribute data packets to multiple CPU cores, thereby reducing the impact of centralized data packet processing by a single CPU core on processing performance and efficiency.
[0046] 103: Obtain multiple processing results returned by multiple processing units after processing the multiple first data packets.
[0047] The first data packet may include header information and payload data. The header information may include meta-information, such as source and destination addresses, protocol, checksum, fragmentation information, and data packet length. The source address may include a source IP (Internet Protocol) address and a source port number, and the destination address may include a destination IP address and a destination port number. The payload data is the specific data content.
[0048] The multiple processing units performing data processing on the multiple first data packets may be performing data processing on the header information and / or payload data of the multiple first data packets. In the case where the receiving end is a data forwarding device, the data forwarding device may be responsible for processing the metadata, such as address translation, port mapping, packet verification, etc., which varies depending on the actual processing type of the data forwarding device and is not specifically limited in this disclosure. The obtained processing results may include updated metadata, etc. In this implementation, since the data forwarding device may not be involved in processing the payload data, the data processing device may be responsible for decapsulating to obtain the metadata and payload data, and the metadata of the multiple first data packets may be distributed to the multiple processing units, and the payload data may be stored in the allocated memory space.
[0049]
[0049] Of course, the receiving end may also perform corresponding processing on the payload data, and the obtained processing result may include meta information and payload data.
[0050]
[0050] 104: Generate multiple second data packets based on the multiple processing results.
[0051] In one optional manner, the processing result may be the second data packet generated and encapsulated by the processing unit. Of course, to further improve processing efficiency and enhance processing performance of the processing unit, the processing result may be the metadata and / or payload data generated by the processing unit. Thus, the data processing device may encapsulate each processing result to generate the second data packet.
[0052]
[0052] 105: Transmit multiple second data packets.
[0053]
[0053] The data processing device may be responsible for transmitting the generated multiple second data packets, thereby further improving the processing performance.
[0054] This embodiment can be executed by a data processing device implemented using a programmable logic device. The data processing device can be responsible for receiving multiple first data packets sent from one or more transmitting ends, and then redistributing the multiple first data packets to multiple processing units at a receiving end, so that the multiple processing units can process the multiple first data packets. The device then obtains multiple processing results returned by the multiple processing units on the multiple first data packets, including data processing, and generates multiple second data packets based on the multiple processing results, which are then transmitted. In the disclosed embodiment, by distributing the data packets to multiple processing units, the technical problem of affecting processing efficiency and performance due to excessive load on a single processing unit can be avoided, thereby improving processing efficiency and performance. Furthermore, the data processing functions implemented by the data processing device provided in the disclosed embodiment are universal. The data processing device can be connected between any transmitting end and any receiving end, eliminating the need to redevelop existing equipment, thereby achieving universal and high-performance data processing.
[0055]
[0055] As can be seen from the foregoing description, the receiving end may be a data forwarding device. Therefore, in some embodiments, distributing multiple first data packets to multiple processing units of the receiving end may include: decapsulating the multiple first data packets, extracting metadata and payload data in the multiple first data packets; storing the payload data in corresponding memory spaces; and distributing the metadata of the multiple first data packets to the multiple processing units.
[0056]
[0056] Accordingly, obtaining multiple processing results returned by multiple processing units performing data processing on multiple first data packets may include: obtaining multiple processing results obtained by multiple processing units performing data processing based on metadata of multiple first data packets; and performing encapsulation processing based on the multiple processing results to generate multiple second data packets.
[0057]
[0057] Wherein, the processing result returned by each processing unit after performing data processing based on the metadata of the plurality of first data packets may be the updated metadata.
[0058] For example, the processing units at different receiving ends may perform different update operations on the metadata of the first data packet. The processing unit of the AVS may update the source / destination MAC (Media Access Control) addresses in the metadata of the first data packet; the processing unit of the IGW may update the routing information in the metadata; the processing unit of the VGW may update the routing information in the metadata; the processing unit of the LB may update the source port, destination port, or destination IP address in the metadata, and may also add or modify metadata related to load balancing in the metadata; and the processing unit of the NAT may update the source or destination IP address in the metadata.
[0059]
[0059] Among them, the decapsulation of the first data packet may include decapsulation of various tunnel messages such as VXLAN (Virtual Extensible LAN), NSH (Network Service Header), Geneve (Generic Network Virtualization Encapsulation), GRE (Generic Routing Encapsulation), IPv6 (Internet Protocol Version 6), SRv6 (Segment Routing over IPv6), etc.
[0060]
[0060] In addition, in some embodiments, decapsulating multiple first data packets and extracting meta information and payload data from the multiple first data packets may include: performing error packet detection on the received data stream; and decapsulating multiple first data packets that pass the detection and extracting meta information and payload data from the multiple first data packets.
[0061]
[0061] In addition, after the first data packet is decapsulated, a data packet pre-processing operation such as a checksum check may be performed on the first data packet, which is not limited in the present disclosure.
[0062]
[0062] Error packet detection can, for example, detect whether there is packet loss, disorder, or damage. Checksum check can, for example, detect data integrity. Error packet detection and checksum check can ensure the correctness of data during network transmission and prevent data errors caused by noise, hardware failure, etc.
[0063]
[0063] As another optional implementation method, it can be seen from the above description that the processing result can be the second data packet. Therefore, after distributing multiple first data packets to multiple processing units at the receiving end, multiple processing units can be obtained to decapsulate and process the multiple first data packets, and then re-encapsulate the generated multiple second data packets.
[0064] During network transmission, data packets need to arrive at the receiving end in the order in which they are sent. Due to factors such as network congestion and different path selections, a data stream may be broken up into multiple independent data packets and transmitted through different paths, which may cause these data packets to arrive out of order. To ensure the sending order of the data packets and ensure data integrity and consistency, in some embodiments, distributing the multiple first data packets to the multiple processing units at the receiving end may include: determining a sending order for the multiple first data packets; and distributing the multiple first data packets to the multiple processing units according to the sending order of the multiple first data packets.
[0065]
[0065] For example, when the sending end sends a first data packet, a unique serial number is assigned to the first data packet and placed in the serial number field of the first data packet. The serial number field belongs to the metadata of the first data packet. After receiving multiple first data packets, the data processing device will check the serial number fields of the multiple first data packets, read the serial numbers of the multiple first data packets, and rearrange the multiple first data packets in the order of the serial numbers to ensure that the multiple first data packets are distributed in the correct order.
[0066] Furthermore, the multiple processing results returned by the multiple processing units after processing the multiple first data packets may be out of order, resulting in a situation where the multiple second data packets generated based on the multiple processing results are out of order. Therefore, in some embodiments, transmitting the multiple second data packets may include: determining a sending order for the multiple second data packets; and transmitting the multiple second data packets according to the sending order for the multiple second data packets.
[0067] Similarly, the order in which the plurality of second data packets are sent may be determined based on the sequence numbers of the plurality of second data packets. Since the second data packets are generated based on the plurality of processing results obtained by processing the first data packets, the order in which the second data packets are sent may be the same as the order in which the first data packets are sent.
[0068]
[0068] In addition, when only metadata is transmitted, the above-mentioned distribution of the metadata of the multiple first data packets to the multiple processing units can be distributed to the multiple processing units at the receiving end according to the sending order of the multiple first data packets.
[0069]
[0069] During network transmission, an original large data packet may be divided into multiple small data packets for transmission due to the maximum transmission unit limitation. In order to ensure data integrity, etc., in some embodiments, the method may also include: identifying fragmented data packets in the received data stream; and reassembling the fragmented data packets to obtain the original data packet as the first data packet.
[0070] For example, fragment information in the data packet metadata, such as the packet length, fragment identifier, and fragment offset field, can be used to identify fragmented data packets belonging to the same original data packet and reassemble the fragmented data packets to obtain the original data packet. Fragmented data packets belonging to the same original data packet have the same fragment identifier. The fragment identifier can be used to identify all fragments belonging to the same original data packet. The fragment offset field can be used to determine the position of the fragmented data packet within the original data packet. The fragmented data packets can then be reassembled into the original data packet in the correct order based on the fragment offset field.
[0070]
[0071] In some embodiments, distributing the multiple first data packets to the multiple processing units at the receiving end includes one or more of the following implementations.
[0071]
[0072] As an optional implementation manner, multiple first data packets may be grouped according to at least one attribute information in the quintuple information, so that first data packets in the same group are sent to the same processing unit.
[0072]
[0073] The five-tuple information may include five attribute information: source IP address, destination IP address, source port number, destination port number, and transport protocol.
[0073]
[0074] A hash function can be used to map the tuple information of the first data packet to a hash value of fixed length. Since hash values are unique, that is, different tuple information is mapped to different hash values, and the same hash value indicates the same tuple information, multiple first data packets with the same hash value, i.e., the same tuple information, can be grouped together, and the first data packets in the same group can be sent to the same processing unit.
[0074]
[0075] As another optional implementation, multiple first data packets are sent one by one to different processing units. For example, the multiple processing units may be sorted, and the first data packets may be sent to the processing units one by one in the order in which the processing units are sorted. For example, the first first data packet may be sent to the first processing unit, the second first data packet may be sent to the second processing unit, and so on. After a data packet has been sent to the last processing unit, a data packet may be sent to the first processing unit.
[0075]
[0076] As another optional implementation manner, multiple first data packets are grouped according to the custom message field information, so that the first data packets of the same group are sent to the same processing unit.
[0076]
[0077] The custom message field can be set in the header information of the first data packet. For example, the custom message field can match a predetermined distribution rule. The distribution rule can specify that when the value of a field in the message is a specific value, the data packet should be distributed to a specific processing unit, thereby achieving flexibility in data packet distribution.
[0077]
[0078] In some embodiments, to further optimize data processing, distributing multiple first data packets to multiple processing units at the receiving end may include: determining whether the data processing device has started an acceleration operation; if so, processing the first data packets to obtain multiple processing results; if not, distributing the multiple first data packets to the multiple processing units at the receiving end.
[0079] In addition, after the data processing device starts the acceleration operation, it can also determine whether the first data packet meets the acceleration condition; if so, process the first data packet to obtain multiple processing results; if not, distribute the multiple first data packets to multiple processing units at the receiving end.
[0078]
[0080] The acceleration condition may be, for example, that the first data packet is located in a pre-defined flow table. For example, upon receiving the first data packet, the data processing device searches the flow table for a matching flow entry. If a matching flow entry is found, the corresponding acceleration processing action is performed based on the action field in the flow entry. Otherwise, multiple first data packets are distributed to multiple processing units at the receiving end.
[0079]
[0081] Whether the data processing device starts the acceleration operation can be determined according to the acceleration configuration information. The data processing device can also receive the acceleration configuration information configured by the user to determine whether to start the acceleration operation when the acceleration configuration information exists.
[0080]
[0082] In the embodiments of the present disclosure, the data processing device can serve as a hardware acceleration device at the receiving end to reduce the computing pressure at the receiving end, thereby improving processing efficiency and ensuring processing performance.
[0081]
[0083] FIG2 is a flow chart of an embodiment of a data processing method provided by the present disclosure. The technical solution of this embodiment can be executed by a processing unit of a receiving end. The method may include the following steps 201 to 203.
[0082]
[0084] 201: Receive at least one first data packet distributed by a data processing device.
[0083]
[0085] The embodiments of the present disclosure may be executed by a processing unit at the receiving end, and the processing unit may be a CPU or a CPU Core, etc.
[0084]
[0086] The data processing device can be implemented based on a programmable logic device.
[0085]
[0087] The at least one first data packet is obtained by distributing and processing a plurality of received first data packets by a data processing device.
[0086]
[0088] 202: Perform data processing on at least one first data packet to obtain at least one processing result.
[0087]
[0089] 203: Send at least one processing result to a data processing device.
[0088]
[0090] At least one processing result is used to generate a second data packet for transmission.
[0089]
[0091] In this embodiment, a processing unit at a receiving end can receive at least one first data packet distributed by a data processing device. The at least one first data packet is obtained by the data processing device distributing and processing multiple received first data packets. The processing unit can then perform data processing on the at least one first data packet to obtain at least one processing result, which is then sent to the data processing device. This at least one processing result can be used to generate a second data packet for transmission. Distributing the data packets to multiple processing units avoids the technical issue of overloading a single processing unit, which can affect processing efficiency and performance, thereby improving both efficiency and performance. Furthermore, the data processing functions implemented by the data processing device provided in the embodiments of the present disclosure are universal. The data processing device can be connected between any transmitting and receiving end, eliminating the need to redevelop existing equipment and achieving universal, high-performance data processing.
[0090]
[0092] In addition, as shown in FIG3 , an embodiment of the present disclosure further provides a data processing device, which may include a programmable logic device 300.
[0091]
[0093] The programmable logic device 300 may include an input processing unit 302 , a scheduling unit 303 , and an output processing unit 304 connected to a bus 301 .
[0092]
[0094] The input processing unit 302 may be configured to receive multiple first data packets.
[0093]
[0095] The scheduling unit 303 may be configured to distribute the multiple first data packets to the multiple processing units at the receiving end, and obtain multiple processing results returned by the multiple processing units after processing the multiple first data packets.
[0094]
[0096] The output processing unit 304 may be configured to generate multiple second data packets based on the multiple processing results, and transmit the multiple second data packets.
[0095]
[0097] The programmable logic device may be, for example, a Field Programmable Gate Array (FPGA), a Programmable Array Logic (PAL), or a Programmable Array Logic (PLA).
[0096] (Programmable Logic Array, Programmable Logic Array), CPLD (Complex Programmable Logic Device, Complex Programmable Logic Device) or SPLD (Simple Programmable Logic Device, Simple Programmable Logic Device), etc.
[0097]
[0098] In some embodiments, the scheduling unit 303 may also be configured to identify fragmented data packets in the plurality of first data packets and reassemble the fragmented data packets.
[0098]
[0099] In some embodiments, the scheduling unit 303 may further determine a sending order for the plurality of first data packets; distribute the plurality of first data packets to the plurality of processing units according to the sending order of the plurality of first data packets; and transmit the obtained plurality of processing results returned by the plurality of processing units to the output processing unit 304 according to the sending order of the plurality of first data packets.
[0099]
[0100] In addition, in some embodiments, the programmable logic device may further include at least one input interface 305 and at least one output interface 306 connected to the bus. The at least one input interface 305 may be connected to at least one transmitting end; and the at least one output interface 306 may be connected to at least one destination end.
[0100]
[0101] The input processing unit 302 may receive a plurality of first data packets transmitted from at least one sending end through an input interface; the output processing unit 304 may transmit a plurality of second data packets to a corresponding destination end through an output interface.
[0102] The input interface 305 and the output interface 306 may refer to network ports or the like.
[0101]
[0103] In addition, the programmable logic device may further include a connection interface connected to the bus, and the connection interface may be used to connect to the receiving end to achieve intercommunication with the processing unit of the receiving end.
[0102]
[0104] It should be noted that the input interface, output interface, and connection interface provided by the programmable logic device may be, for example, Ethernet, USB (Universal Serial Bus), PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard), I2C (Inter-Integrated Circuit, a bidirectional two-wire synchronous serial bus), or the like, and this disclosure does not limit this. Of course, a wireless communication module, such as a WiFi (Wireless Fidelity) module, a Bluetooth module, or a Zigbee module, may also be integrated into the programmable logic device.
[0103] (Zifeng Technology) module, LTE (Long Term Evolution) / 5G (5th Generation Mobile Communication Technology) modem, etc., are connected to the transmitting end, the receiving end, and the destination end in a wireless manner, etc., and this disclosure does not limit this.
[0104]
[0105] In some embodiments, the input processing unit 302 may be specifically configured to decapsulate the first data packet, extract the metadata and payload data, transmit the metadata of the plurality of first data packets to the scheduling unit 303, and save the payload data to a corresponding memory space.
[0105]
[0106] The scheduling unit 303 may be specifically configured to distribute the metadata of the plurality of first data packets to the plurality of processing units, so that the processing units process the received metadata to obtain processing results.
[0106]
[0107] The implementation method of distributing the metadata of multiple first data packets to multiple processing units can be referred to the embodiment shown in FIG. 1 , and will not be described in detail here.
[0107]
[0108] The output processing unit 304 may be specifically configured to perform encapsulation processing based on the multiple processing results to generate multiple second data packets.
[0108]
[0109] The input processing unit 302 may specifically perform error packet detection on the received multiple first data packets; decapsulate the multiple first data packets that pass the detection, and extract metadata and payload data from the multiple first data packets.
[0109]
[0110] In addition, after decapsulating the first data packet, the input processing unit 302 may further perform a data packet pre-processing operation such as a checksum check on the first data packet, which is not limited in the present disclosure.
[0110]
[0111] In some embodiments, the scheduling unit 303 may also be configured to identify metadata of multiple fragmented first data packets and reassemble the metadata of the multiple fragmented first data packets.
[0111]
[0112] The scheduling unit 303 may also determine a sending order for the metadata of the plurality of first data packets; distribute the metadata of the plurality of first data packets to the plurality of processing units according to the sending order of the metadata of the plurality of first data packets; and transmit the obtained processing results returned by the plurality of processing units to the output processing unit 304 according to the sending order of the metadata of the plurality of first data packets.
[0112]
[0113] Optionally, the scheduling unit 303 may include an order preservation and reassembly subunit 3031 configured to identify metadata of the plurality of fragmented first data packets, reassemble the metadata of the plurality of fragmented first data packets, determine a sending order of the metadata of the plurality of first data packets, distribute the metadata of the plurality of first data packets to the plurality of processing units according to the sending order of the metadata of the plurality of first data packets, and transmit the obtained processing results returned by the plurality of processing units to the output processing unit 304 according to the sending order of the metadata of the plurality of first data packets.
[0113]
[0114] In some embodiments, the input processing unit 302 may receive multiple first data packets and pass the multiple first data packets to the scheduling unit 303.
[0114]
[0115] The scheduling unit 303 may distribute the plurality of first data packets to the plurality of processing units at the receiving end; obtain the plurality of second data packets re-encapsulated after the plurality of processing units decapsulate and process the plurality of first data packets; and transmit the plurality of second data packets to the output processing unit 304.
[0115]
[0116] >The output processing unit 304 can be used to transmit the second data packet.
[0116]
[0117] In some embodiments, the programmable logic device may further include a resource control unit 309. The resource control unit 309 may be configured to perform pooling processing based on first storage resources provided by the programmable logic device and second storage resources provided by the multiple processing units, thereby providing corresponding memory space for the input processing unit 302, the scheduling unit 303, and the output processing unit 304.
[0117]
[0118] The first storage resource may include memory resources of a programmable logic device and hardware logic resources. The hardware logic resources may include, for example, a meter, a counter, and a TCAM (ternary content addressable memory).
[0118]
[0119] The second storage resource may include memory resources of multiple processing units, etc.
[0119]
[0120] The resource control unit 309 performs pooling processing on the first storage resource and the second storage resource, and can pool the first storage resource and the second storage resource to form a unified, dynamically allocated storage resource pool, and dynamically allocate the storage resources to different processing units according to demand, thereby improving resource utilization.
[0120]
[0121] In some embodiments, the programmable logic device may further include an acceleration processing unit 308 .
[0121]
[0122] The accelerated processing unit 308 may process a plurality of first data packets to obtain a plurality of processing results when the configuration is enabled.
[0122]
[0123] The input processing unit 302 may transfer the multiple first data packets to the acceleration processing unit 308 when the acceleration processing unit 308 is enabled, and may transfer the multiple first data packets to the scheduling unit 303 otherwise.
[0123]
[0124] In addition, when the acceleration processing unit is started, it can also determine whether the first data packet meets the acceleration condition; if so, process the first data packet to obtain multiple processing results; if not, pass the multiple first data packets to the scheduling unit 303.
[0124]
[0125] For example, the acceleration condition may be that the first data packet is located in a pre-defined flow table. Upon receiving the first data packet, the acceleration processing unit 308 searches the flow table for a flow entry that matches the first data packet. If a matching flow entry is found, the corresponding acceleration processing action is performed based on the action field in the flow entry. Otherwise, the multiple first data packets are passed to the scheduling unit 303.
[0125]
[0126] To facilitate understanding, the following describes the technical solutions of the embodiments of the present disclosure using a cloud computing scenario as an example.
[0126]
[0127] Cloud computing is one of the fastest-growing trends in computer technology. It involves providing hosted services over the internet. Cloud computing environments offer computing and storage resources as services to end users. End users can request processing from the provided services. The processing capacity of the services is typically limited by the configured resources.
[0127]
[0128] Cloud computing is a service delivery model that enables on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider.
[0128]
[0129] In cloud computing scenarios, various data forwarding devices such as AVS, IGW, VGW, CGW, LB, and NAT can implement high-performance data packet processing based on the data processing device provided by the embodiments of the present disclosure, thereby obtaining high-performance forwarding capabilities.
[0129]
[0130] As shown in FIG4 , FIG4 shows a schematic diagram of scene interaction in a practical application of an embodiment of the present disclosure.
[0130]
[0131] The programmable logic device 300 may include an input processing unit 302, a scheduling unit 303, and an output processing unit 304 connected to a bus 301. The programmable logic device also includes at least one input interface 305 (one input interface is used as an example in the figure) and at least one output interface 306 (one output interface is used as an example in the figure).
[0131]
[0132] At least one transmitting end 310 (one transmitting end is used as an example in the figure) can transmit multiple first data packets to the input processing unit 302 via the input interface 305. The input processing unit 302 can decapsulate the first data packets, extract metadata and payload data, and perform packet error detection on the received multiple first data packets. The input processing unit 302 can also decapsulate the multiple first data packets that pass the detection, extract the metadata and payload data from the multiple first data packets, transmit the metadata of the multiple first data packets to the scheduling unit 303, and save the payload data to the corresponding memory space. Furthermore, after decapsulating the first data packets, the input processing unit 302 can also perform packet pre-processing operations such as checksum checks on the first data packets.
[0133] The scheduling unit 303 may include an order-preserving and reassembling subunit. The order-preserving and reassembling subunit identifies metadata of the multiple fragmented first data packets and reassembles the metadata of the multiple fragmented first data packets. The order-preserving and reassembling subunit determines the order in which the metadata of the multiple first data packets are sent. The metadata of the multiple first data packets is distributed to the multiple processing units 307 of the data forwarding device according to the order in which the metadata of the multiple first data packets are sent.
[0132]
[0134] In practical applications, the processing unit 307 may be a CPU Core.
[0133]
[0135] The processing unit 307 may perform data processing on the received meta-information to obtain multiple processing results, and return the multiple processing results to the scheduling unit 303 .
[0134]
[0136] The scheduling unit 303 may also utilize the order preservation and reassembly subunit to transmit the obtained multiple processing results to the output processing unit 304 according to the sending order of the meta information of the multiple first data packets.
[0135]
[0137] The output processing unit may perform encapsulation processing based on the multiple processing results to generate multiple second data packets, and transmit the multiple second data packets to the corresponding destination end 311 through the output interface 306.
[0136]
[0138] In addition, the programmable logic device may further include an acceleration processing unit 308. The input processing unit 302 may transmit multiple first data packets to the acceleration processing unit. When the configuration is enabled, the acceleration processing unit 308 may process the multiple first data packets to obtain multiple processing results and transmit the multiple processing results to the output processing unit 304. Otherwise, the acceleration processing unit 308 may transmit the multiple first data packets to the scheduling unit 303.
[0137]
[0139] After the multiple first data packets are delivered to the acceleration processing unit 308, the acceleration processing unit may search the flow table to find a flow entry that matches the first data packets. If a matching flow entry is found, the acceleration processing unit performs the corresponding acceleration processing action based on the action field in the flow entry to obtain multiple processing results. Otherwise, the multiple first data packets are delivered to the scheduling unit 303.
[0138]
[0140] In addition, the programmable logic device may further include a resource control unit 309. The resource control unit 309 may be configured to perform pooling processing based on a first storage resource provided by the programmable logic device and a second storage resource provided by the plurality of processing units, and to provide corresponding memory space to the input processing unit 302, the scheduling unit 303, the output processing unit 304, and the acceleration processing unit 308 via the bus 301.
[0139]
[0141] In the disclosed embodiments, a data processing device implemented using programmable logic devices (PLDs) implements a series of optimizations and accelerations for packet input, scheduling, output, memory management, and accelerated forwarding. Different processing units are designed based on the entire packet processing lifecycle. The scheduling unit's order preservation and reassembly subunits reassemble multiple first packets according to various rules and distribute them to multiple CPU cores in the data forwarding device. This addresses the performance bottleneck of packet forwarding by a single CPU core in data aggregation and meets the low-latency and high-bandwidth data transmission requirements in some scenarios. Furthermore, a resource control unit can implement differentiated resource allocation for different data forwarding devices, optimizing resource utilization and matching diverse data forwarding requirements.
[0140]
[0142] In addition, the data processing function implemented by the data processing device provided in the embodiments of the present disclosure is universal. The data processing device can be connected between any sending end and receiving end without the need to redevelop the original device, thereby achieving universal and high-performance data processing.
[0141]
[0143] FIG5 is a schematic structural diagram of an embodiment of a data processing apparatus provided in an embodiment of the present disclosure. The apparatus includes: a receiving module 501 for receiving at least one first data packet distributed by a data processing device; a processing module 502 for performing data processing on the at least one first data packet to obtain at least one processing result; and a sending module 503 for sending the at least one processing result to the data processing device.
[0142]
[0144] The at least one first data packet is obtained by distributing and processing a plurality of received first data packets by a data processing device.
[0143]
[0145] At least one processing result is used to generate a second data packet for transmission.
[0144]
[0146] The data processing device shown in FIG5 can execute the data processing method described in the embodiment shown in FIG2 . Its implementation principles and technical effects are not further described. The specific manner in which the various modules and units of the data processing device in the above embodiment perform operations has been described in detail in the embodiment related to the method and will not be elaborated upon here.
[0145]
[0147] An embodiment of the present disclosure further provides a computing device, as shown in FIG6 , which may include a storage component 601 and a processing component 602; the storage component 601 stores one or more computer instructions, wherein the one or more computer instructions are invoked and executed by the processing component to implement the data processing method described in the embodiment shown in FIG1 or FIG2 .
[0146]
[0148] Of course, the computing device may also include other components, such as input / output interfaces, display components, communication components, etc.
[0147]
[0149] The input / output interface provides an interface between the processing component and the peripheral interface module, which may be an output device, an input device, etc. The communication component is configured to facilitate wired or wireless communication between the computing device and other devices.
[0148]
[0150] The processing component 602 may include one or more processors to execute computer instructions to complete all or part of the steps in the above method. Of course, the processing component may also be one or more application-specific integrated circuits.
[0149] (ASIC), digital signal processor (DSP), digital signal processing device (DSPD), programmable logic device (PLD), field programmable gate array (FPGA), controller, microcontroller, microprocessor or other electronic components are used to perform the above method.
[0151] The storage component 601 is configured to store various types of data to support operations in the terminal. The storage component can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM) or a combination thereof.
[0150] (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk.
[0151]
[0152] The display component may be an electroluminescent (EL) element, a liquid crystal display or a micro display having a similar structure, or a direct retinal display or a similar laser scanning display.
[0152]
[0153] It should be noted that the computing device may be a physical device or an elastic computing host provided by a cloud computing platform. It may be implemented as a distributed cluster consisting of multiple servers or terminal devices, or as a single server or a single terminal device.
[0153]
[0154] It should be noted that when the computing device implements the data processing method described in the embodiment shown in FIG. 1 or FIG. 2 , it may be a physical device or an elastic computing host provided by a cloud computing platform. It may be implemented as a distributed cluster consisting of multiple servers or terminal devices, or as a single server or a single terminal device.
[0154]
[0155] Embodiments of the present disclosure also provide a computer-readable storage medium storing a computer program. When executed by a computer, the computer program can implement the data processing method described in the embodiment shown in FIG. 1 or FIG. 2 . The computer-readable medium can be included in the electronic device described in the above embodiment, or it can exist independently and not be incorporated into the electronic device.
[0155]
[0156] Embodiments of the present disclosure also provide a computer program product, comprising a computer program borne on a computer-readable storage medium. When executed by a computer, the computer program can implement the data processing method described in the embodiment shown in FIG. 1 or FIG. 2 . In such an embodiment, the computer program can be downloaded and installed from a network and / or installed from a removable medium. When executed by a processor, the computer program performs the various functions defined in the system of the present disclosure.
[0156]
[0157] In the aforementioned embodiments, the computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or component, or any combination thereof. More specific examples of computer-readable storage media 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), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In the present 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, device, or component.
[0157]
[0158] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0158]
[0159] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units. That is, they may be located in one place or distributed across multiple network units. Some or all of the modules may be selected based on actual needs to achieve the objectives of the solutions in this embodiment. Persons of ordinary skill in the art can understand and implement the solutions without inventive effort.
[0159]
[0160] Through the above description of the embodiments, those skilled in the art will clearly understand that each embodiment can be implemented using software plus a necessary general-purpose hardware platform, or alternatively, hardware. Based on this understanding, the essence of the above technical solution, or the portion that contributes to the relevant art, can be embodied in the form of a software product. This software product can be stored in a computer-readable storage medium, such as ROM / RAM, a magnetic disk, or an optical disk, and includes instructions for enabling a computer device (such as a personal computer, server, or network device) to execute the methods described in each embodiment or portions thereof.
[0160]
[0161] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present disclosure, rather than to limit them. Although the present disclosure has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some of the technical features therein with equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the various embodiments of the present disclosure.
Claims
Claims 1. A data processing method, applied to a data processing device based on a programmable logic device, the method comprising: receiving a plurality of first data packets; distributing the plurality of first data packets to a plurality of processing units at a receiving end; Obtaining a plurality of processing results returned by the plurality of processing units after processing the plurality of first data packets; generating a plurality of second data packets based on the plurality of processing results; The plurality of second data packets are transmitted.
2. The method according to claim 1, wherein: The distributing of the multiple first data packets to the multiple processing units at the receiving end includes: determining the sending order of the multiple first data packets; distributing the multiple first data packets to the multiple processing units according to the sending order of the multiple first data packets; the transmitting of the multiple second data packets includes: determining the sending order of the multiple second data packets; and transmitting the multiple second data packets according to the sending order of the multiple second data packets.
3. The method according to claim 1, further comprising: identifying fragmented packets in a received data stream; The fragmented data packets are reassembled to obtain an original data packet as the first data packet.
4. The method according to claim 1, wherein: The distributing the plurality of first data packets to the plurality of processing units at the receiving end includes one or more of the following implementations: grouping the plurality of first data packets according to at least one attribute information in the quintuple information, so as to send first data packets of the same group to the same processing unit; Sending the plurality of first data packets to different processing units packet by packet; and grouping the multiple first data packets according to the custom message field information, so as to send the first data packets of the same group to the same processing unit.
5. The method according to claim 1, wherein: The distributing the plurality of first data packets to the plurality of processing units at the receiving end includes: determining whether the data processing device has started an acceleration operation; if so, processing the plurality of first data packets to obtain a plurality of processing results; If not, the plurality of first data packets are distributed to a plurality of processing units at the receiving end.
6. The method according to claim 1, wherein: The multiple processing units that distribute the multiple first data packets to the receiving end include: decapsulating the multiple first data packets, extracting the metadata and payload data in the multiple first data packets; storing the payload data in the corresponding memory space; distributing the metadata of the multiple first data packets to the multiple processing units; obtaining the multiple processing results returned by the multiple processing units after performing data processing on the multiple first data packets includes: obtaining the multiple processing results obtained by the multiple processing units after performing data processing based on the metadata of the multiple first data packets; performing encapsulation processing based on the multiple processing results to generate multiple second data packets.
7. A data processing method, comprising: Receive at least one first data packet distributed by a data processing device; wherein the at least one first data packet is obtained by the data processing device performing distribution processing on multiple received first data packets; perform data processing on the at least one first data packet to obtain at least one processing result; send the at least one processing result to the data processing device; wherein the at least one processing result is used to generate a second data packet for transmission.
8. A data processing device comprising a programmable logic device, wherein: The programmable logic device includes an input processing unit, a scheduling unit, and an output processing unit connected to a bus; the input processing unit is configured to receive a plurality of first data packets; The scheduling unit is configured to distribute the multiple first data packets to multiple processing units at a receiving end, and obtain multiple processing results returned by the multiple processing units after processing the multiple first data packets; The output processing unit is configured to generate a plurality of second data packets based on the plurality of processing results, and transmit the plurality of second data packets.
9. The device according to claim 8, wherein: The programmable logic device further includes at least one input interface and at least one output interface; the at least one input interface is configured to connect to at least one transmitting end; the at least one output interface is configured to connect to at least one destination end; the input processing unit is configured to receive, from the input interface, a plurality of first data packets transmitted from the at least one transmitting end; The output processing unit is specifically configured to transmit the plurality of second data packets to corresponding destination ends through the output interface.
10. The device according to claim 8, wherein: The programmable logic device further includes a resource control unit configured to perform pooling processing based on the first storage resource provided by the programmable logic device and the second storage resource provided by the plurality of processing units, so as to provide corresponding memory space for the input processing unit, the scheduling unit, and the output processing unit, respectively.
11. The device according to claim 8, wherein: The programmable logic device further includes: an acceleration processing unit, configured to process the multiple first data packets to obtain the multiple processing results when the configuration is enabled; and an input processing unit, configured to transfer the multiple first data packets to the acceleration processing unit when the acceleration processing unit is enabled, and otherwise transfer the multiple first data packets to the scheduling unit.
12. The device according to claim 8, wherein: The input processing unit is specifically configured to decapsulate the first data packets, extract metadata and payload data, transmit the metadata of the multiple first data packets to the scheduling unit, and save the payload data to corresponding memory spaces; the scheduling unit is specifically configured to distribute the metadata of the multiple first data packets to the multiple processing units, so that the processing units process the received metadata to obtain processing results.
13. The device according to claim 8, wherein: The scheduling unit is further configured to identify fragmented data packets among the multiple first data packets; reassemble the fragmented data packets; determine a sending order of the multiple first data packets; and distribute the multiple first data packets to the multiple processing units according to the sending order of the multiple first data packets.
14. A data forwarding device, comprising a plurality of processing units and a storage unit; wherein: The storage unit stores one or more computer instructions for being called and executed by the processing unit to implement the data processing method according to claim 7.
15. A computing device comprising a processing component and a storage component; wherein: The storage component stores one or more computer instructions; the one or more computer instructions are used to be called and executed by the processing component to implement the data processing method according to any one of claims 1 to 6 or the data processing method according to claim 7.
16. A computer storage medium storing a computer program, wherein: When the computer program is executed by a computer, the data processing method according to any one of claims 1 to 6 or the data processing method according to claim 7 is implemented.
Citation Information
Patent Citations
Method for improving auditing framework CPU load balancing
CN106445667A
METHOD, equipment AND COMPUTER PROGRAM PRODUCT FOR MANAGING NETWORK SYSTEM
CN110609746A
FPGA acceleration method for measuring and controlling network edge cloud computing
CN115576675A
Cloud gateway, method for network adapter and network adapter
CN116633726A
Packet processing load balancer
US20230082780A1