CN115733897A - Data processing method and device - Google Patents

Data processing method and device Download PDF

Info

Publication number
CN115733897A
CN115733897A CN202110997496.4A CN202110997496A CN115733897A CN 115733897 A CN115733897 A CN 115733897A CN 202110997496 A CN202110997496 A CN 202110997496A CN 115733897 A CN115733897 A CN 115733897A
Authority
CN
China
Prior art keywords
data packet
information
data
boundary information
indicating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110997496.4A
Other languages
Chinese (zh)
Inventor
埃琳娜·古列维奇
维克多·吉辛
曲会春
李君瑛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110997496.4A priority Critical patent/CN115733897A/en
Priority to PCT/CN2022/091494 priority patent/WO2023024572A1/en
Publication of CN115733897A publication Critical patent/CN115733897A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application provides a data processing method and device, which can reduce the complexity of aggregation processing data and improve the efficiency of aggregation processing. The method comprises the following steps: the method comprises the steps that a first device configures aggregation strategy information for a data packet, wherein the aggregation strategy information is used for indicating whether a second device receiving the data packet performs aggregation processing on the data packet or not; the first device sends the data packet to the second device, wherein the data packet comprises the aggregation strategy information; the second equipment receives the data packet sent by the first equipment; and the second equipment processes the data packet according to the aggregation strategy information in the data packet.

Description

Data processing method and device
Technical Field
The present application relates to the field of data processing, and more particularly, to a method and apparatus for data processing.
Background
The data packet aggregation is a method for combining a plurality of received data packets into a single data packet through a Network Interface Controller (NIC)/network card, and a processor or a service processing logic processes the aggregated data packet, which can reduce the service processing overhead for each data packet, thereby improving the service processing performance, efficiency, and throughput of the network end node.
Packet aggregation is reception-based aggregation that requires a first device (transmitting side) to slice data belonging to the same data stream according to a certain rule and a second device (receiving side) to aggregate received packets. A typical aggregation technique is that a first device performs data slicing on large TCP data through a TCP Segment Offload (TSO) technique, and a second device performs packet aggregation through a large packet aggregation (LRO) technique.
At present, an aggregation engine of a second device needs to know all details of a transmission protocol to implement data aggregation of the protocol, details of different transmission protocols are completely different, and even implementation details and requirements of the same transmission protocol on different operating systems or different platforms are different, so that the aggregation engine needs to perform a matching evolution packet header according to service evolution and support, and complexity and efficiency of aggregated data are high and low.
Disclosure of Invention
The application provides a data processing method and device, which can reduce the complexity of aggregation processing data and improve the efficiency of aggregation processing.
In a first aspect, a method for data processing is provided, the method comprising: the method comprises the steps that a first device configures aggregation strategy information for a data packet, wherein the aggregation strategy information is used for indicating whether a second device receiving the data packet aggregates the data packet or not; and the first equipment sends the data packet to the second equipment, wherein the data packet comprises the aggregation strategy information.
Based on the above technical solution, the data packet sent by the first device includes aggregation policy information for indicating whether the second device receiving the data packet performs aggregation processing on the data packet, and the second device may process the data packet according to the aggregation policy information in the received data packet. The first device indicates whether the second device aggregates the data packets or how to aggregate the data packets in a display mode by configuring the aggregation strategy information in the data packets, and the second device does not need to guess the intention of the first device any more and realize the aggregation processing of the data packets according to all details of the transmission protocol, so that the complexity of the aggregation processing of the data by the second device can be reduced, and the efficiency of the aggregation processing can be improved.
With reference to the first aspect, in certain implementation manners of the first aspect, the aggregation policy information is included in the packet header of the data packet, and the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet; the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
With reference to the first aspect, in certain implementations of the first aspect, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information; the first boundary information is used for indicating that the data packet is not aggregated, the second boundary information is used for indicating that the data packet is aggregated with a data packet sent after the data packet, the third boundary information is used for indicating that the data packet is aggregated with a data packet sent before the data packet and a data packet sent after the data packet, and the fourth boundary information is used for indicating that the data packet cannot be aggregated with a data packet sent after the data packet.
With reference to the first aspect, in certain implementations of the first aspect, the boundary information is indicated by bit information; when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information; when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information; when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information; and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream, and indicating that the boundary information in the data packet is the fourth boundary information.
With reference to the first aspect, in certain implementations of the first aspect, the priority information includes first priority information or second priority information, the first priority information indicates that the priority of the data packet is a high priority, and the second priority information indicates that the priority of the data packet is a low priority.
With reference to the first aspect, in certain implementations of the first aspect, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that data in the data packet is modified by the third device; when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device.
In a second aspect, a method for data processing is provided, the method comprising: the method comprises the steps that a second device receives a data packet sent by a first device, wherein the data packet comprises aggregation strategy information, and the aggregation strategy information is used for indicating whether to aggregate the data packet or not; and the second equipment processes the data packet according to the aggregation strategy information in the data packet.
Based on the above technical solution, the data packet received by the second device from the first device includes aggregation policy information for indicating whether to aggregate the data packet, and the second device may process the data packet according to the aggregation policy information in the data packet. The first device indicates whether or how to aggregate the data packets by configuring the aggregation policy information in the data packets, and the second device does not need to guess the intention of the first device and implement the aggregation processing of the data packets according to all details of the transmission protocol, so that the complexity of the aggregation processing of the data by the second device can be reduced, and the efficiency of the aggregation processing can be improved.
With reference to the second aspect, in certain implementations of the second aspect, the aggregation policy information is included in the header of the data packet, and the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty fields, and dirty mode fields of the data packet; the boundary information is used for indicating the mode of not aggregating the data packets or aggregating the data packets, and the priority information is used for indicating the priority of the data packets; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
With reference to the second aspect, in some implementations of the second aspect, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information; the second device processes the data packet according to the aggregation policy information in the data packet, including: when the aggregation policy information includes the first boundary information, the second device does not aggregate the data packet; when the aggregation policy information includes the second boundary information, the second device aggregates the data packet with a data packet received after the data packet, wherein a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet; when the third boundary information is included in the aggregation policy information, the second device aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, wherein a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet, and a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet; when the fourth boundary information is included in the aggregation policy information, the second device aggregates the data packet with a data packet received before the data packet, wherein a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet.
With reference to the second aspect, in some implementations of the second aspect, the boundary information is indicated by bit information; when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information; when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information; when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream, and indicating that the boundary information in the data packet is the third boundary information; and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream, and indicating that the boundary information in the data packet is the fourth boundary information.
With reference to the second aspect, in certain implementations of the second aspect, the priority information includes first priority information or second priority information, the first priority information indicates that the priority of the data packet is a high priority, and the second priority information indicates that the priority of the data packet is a low priority; the second device processes the data packet according to the aggregation policy information in the data packet, including: when the aggregation policy information includes the first priority information and the third boundary information, the second device aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, where information in an aggregation context sent by the second device to a processor includes identification information of the data packet, and is used to instruct the processor to process the data packet; or, when the aggregation policy information includes the first priority information and the third boundary information, the second device aggregates the data packet with a data packet received before the data packet or aggregates the data packet with a data packet received after the data packet; and when the aggregation strategy information comprises the second priority information and the boundary information, the second equipment processes the data packet according to the boundary information.
With reference to the second aspect, in some implementations of the second aspect, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that data in the data packet is modified by the third device; when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device; the second device processes the data packet according to the aggregation policy information in the data packet, including: when the dirty field indicates that the data packet is modified by the third device, the second device does not aggregate the data packet; when the dirty field indicates that the data packet is not modified by the third device, the second device processes the data packet according to at least one of a sequence number of the data packet, the boundary information, and the priority information.
With reference to the second aspect, in certain implementations of the second aspect, the processing, by the second device, the data packet according to aggregation policy information in the data packet includes: when the dirty field indicates that the data packet is modified by the third device and the dirty mode field indicates not to ignore the dirty field, the second device does not aggregate the data packet; when the dirty mode field indicates to ignore the dirty field, the second device processes the data packet according to at least one of a sequence number of the data packet, the boundary information, and the priority information.
In a third aspect, a data processing apparatus is provided, including: the processing unit is used for configuring aggregation strategy information for a data packet, wherein the aggregation strategy information is used for indicating whether a second device receiving the data packet aggregates the data packet or not; a sending unit, configured to send the data packet to the second device, where the data packet includes the aggregation policy information.
With reference to the third aspect, in certain implementations of the third aspect, the aggregation policy information is included in the header of the data packet, and the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet; the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
With reference to the third aspect, in some implementations of the third aspect, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information; the first boundary information is used for indicating that the data packet is not aggregated, the second boundary information is used for indicating that the data packet is aggregated with a data packet sent after the data packet, the third boundary information is used for indicating that the data packet is aggregated with a data packet sent before the data packet and a data packet sent after the data packet, and the fourth boundary information is used for indicating that the data packet cannot be aggregated with a data packet sent after the data packet.
With reference to the third aspect, in certain implementations of the third aspect, the boundary information is indicated by bit information; when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information; when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information; when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information; and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
With reference to the third aspect, in certain implementations of the third aspect, the priority information includes first priority information indicating that the priority of the data packet is a high priority or second priority information indicating that the priority of the data packet is a low priority.
With reference to the third aspect, in certain implementations of the third aspect, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that data in the data packet is modified by the third device; when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device.
In a fourth aspect, a data processing apparatus is provided, including: a receiving unit, configured to receive a data packet sent by a first device, where the data packet includes aggregation policy information, and the aggregation policy information is used to indicate whether to aggregate the data packet; and the processing unit is used for processing the data packet according to the aggregation strategy information in the data packet.
With reference to the fourth aspect, in some implementations of the fourth aspect, the aggregation policy information is included in the packet header of the data packet, and the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty fields, and dirty mode fields of the data packet; the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
With reference to the fourth aspect, in some implementations of the fourth aspect, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information; the processing unit is specifically configured to: when the aggregation policy information comprises the first boundary information, the processing unit does not aggregate the data packet; when the aggregation policy information includes the second boundary information, the processing unit aggregates the data packet with a data packet received after the data packet, wherein a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet; when the aggregation policy information includes the third boundary information, the processing unit aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, wherein a sequence number of the data packet received before the data packet is consecutive with a sequence number of the data packet, and a sequence number of the data packet received after the data packet is consecutive with a sequence number of the data packet; when the fourth boundary information is included in the aggregation policy information, the processing unit aggregates the data packet with a data packet received before the data packet, where a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet.
With reference to the fourth aspect, in some implementations of the fourth aspect, the boundary information is indicated by bit information; when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information; when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information; when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream, and indicating that the boundary information in the data packet is the third boundary information; and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
With reference to the fourth aspect, in certain implementations of the fourth aspect, the priority information includes first priority information or second priority information, the first priority information indicates that the priority of the data packet is a high priority, and the second priority information indicates that the priority of the data packet is a low priority; the processing unit is specifically configured to: when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet or aggregating the data packet with a data packet received after the data packet; or, when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet and a data packet received after the data packet, where information in an aggregation context sent by the second device to a processor includes identification information of the data packet, and is used to instruct the processor to process the data packet; and when the aggregation strategy information comprises the second priority information, processing the data packet according to the boundary information.
With reference to the fourth aspect, in some implementations of the fourth aspect, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that data in the data packet is modified by the third device; when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device; the processing unit is specifically configured to: when the dirty field indicates that the data packet is modified by the third device, not aggregating the data packet; processing the data packet according to at least one of the sequence number of the data packet, the boundary information, and the priority information when the dirty field indicates that the data packet is not modified by the third device.
With reference to the fourth aspect, in some implementations of the fourth aspect, the processing unit is specifically configured to: not aggregating the data packets when the dirty field indicates that the data packets are modified by the third device and the dirty mode field indicates not to ignore the dirty field; processing the data packet according to at least one of sequence number, the boundary information, and the priority information of the data packet when the dirty mode field indicates to ignore the dirty field.
In a fifth aspect, there is provided a data processing apparatus comprising a processor and a transceiver for receiving computer code or instructions and transmitting the computer code or instructions to the processor, and the processor executing the computer code or instructions, such as the method of the first aspect or any possible implementation manner of the first aspect.
In a sixth aspect, there is provided a data processing apparatus comprising a processor and a transceiver for receiving computer code or instructions and transmitting the same to the processor, the processor executing the computer code or instructions, as in the second aspect or any possible implementation of the second aspect.
In a seventh aspect, a data processing system is provided, including: a first device as described in the first aspect and a second device as described in the second aspect.
In an eighth aspect, a computer-readable storage medium is provided, the computer-readable medium storing a computer program; the computer program, when executed on a computer, causes the computer to perform the method of any one of the possible implementations of the first aspect and the first aspect described above.
In a ninth aspect, there is provided a computer readable storage medium having a computer program stored thereon; the computer program, when executed on a computer, causes the computer to perform the method of any of the second aspects described above and possible implementations of the second aspect.
A tenth aspect provides a computer program product comprising instructions that, when executed by a computer, cause a communication apparatus to implement the method of the first aspect as well as any one of the possible implementations of the first aspect.
In an eleventh aspect, there is provided a computer program product comprising instructions which, when executed by a computer, cause a communication apparatus to implement the method of any one of the possible implementations of the second aspect and the second aspect.
Drawings
Fig. 1 is a schematic diagram of slicing, transmitting, and aggregating processes by message.
Fig. 2 is a schematic diagram of a TSO technique.
Fig. 3 is a schematic diagram of LRO technology.
Fig. 4 is a schematic view of an application scenario of an embodiment of the present application.
Fig. 5 is a schematic flow chart interaction diagram of a method for data processing according to an embodiment of the present application.
Fig. 6 is a schematic diagram illustrating the location of aggregation policy information in the header of a data packet.
Fig. 7 is a schematic block diagram of a data processing apparatus according to an embodiment of the present application.
Fig. 8 is a schematic block diagram of another data processing apparatus according to an embodiment of the present application.
Fig. 9 is a schematic block diagram of a communication device according to an embodiment of the present application.
Detailed Description
The technical solution in the present application will be described below with reference to the accompanying drawings.
The data packet aggregation is a method for combining a plurality of received data packets into a single data packet through a Network Interface Controller (NIC)/network card, and a processor or a service processing logic processes the aggregated data packet, so that the service processing overhead of each data packet can be reduced, thereby improving the service processing performance, efficiency and throughput of the network end node.
The common NIC generates a CPU interrupt for a group of aggregated data packets, the CPU submits the group of aggregated data packets to the protocol stack for processing in an interrupt processing program, and finally the driver or the protocol stack releases the buffers occupied by the data packets together, thereby improving the processing efficiency of the service. The intelligent network card (Smart NIC) unloads the network processing protocol stack, and once service processing is performed on a group of aggregated data packets in the Smart NIC, so that the data processing efficiency can be improved, and the service performance can be improved.
When the aggregated packets arrive in sequence and belong to the same transmission message of the same stream, the efficiency of aggregation is significantly improved, for example, packets in a Transmission Control Protocol (TCP) stream are transmitted in a bit (byte) stream manner, allowing an application to transmit a packet in a RoCEv2 stream in a network protocol (RDMA over converted ethernet, roCE) for remote memory access via ethernet with a sequence number (sequence) and a message (message).
In this case, a group of aggregated packets may be presented to the processor as a single large packet, and the processor may complete the corresponding protocol stack related business processes in one operation. To achieve this, the aggregation processing engine should identify the following information in the received packet:
(1) Whether they belong to the same aggregate flow;
(2) Receiving new packets in the order required by the already aggregated packets:
(3) The newly received data packet belongs to the same message as the aggregated data packet.
As shown in fig. 1, a schematic diagram of slicing, transmitting, and aggregating processes by message is shown. The first equipment (the sending side) is sliced according to the message, the second equipment (the receiving side) is aggregated according to the message, and the intermediate network equipment transmits the data packets which are sliced into one piece.
Packet aggregation is reception-based aggregation that requires a first device to slice data belonging to the same data stream according to a certain rule and to aggregate received packets at a second device. A typical NIC technology is that a first device performs data slicing on large TCP data through a TCP Segment Offload (TSO) technology, and a second device performs packet aggregation through a large packet aggregation (LRO) technology. As shown in fig. 2, a schematic diagram of a TSO technique is shown; as shown in fig. 3, a schematic diagram of LRO technology is shown.
In the existing aggregation technology, user data transmitted through a network is encapsulated into different service layers of the data through messages, such as a transport layer (transport layer) and a placement layer (fastening layer). When the aggregation engine provides the merged data packet to the protocol stack, the key data information of different service layers should not be lost. Some data to be accumulated may be obtained from the last data packet, such as a sequence number; other parts of the data information need to perform "stateful" aggregation operations, such as Selective Acknowledgement (SACK) information of TCP.
Currently, aggregation engines are "stateless" processor engines that require guessing at the first device's intent to aggregate boundary definitions for packets. The aggregation engine of the second device needs to know all details of the transmission protocol to implement data aggregation of the protocol, the details of different transmission protocols are completely different, and even the implementation details and requirements of the same transmission protocol on different operating systems or different platforms are different, so that the aggregation engine needs to perform matching evolution according to service evolution and support. The aggregation engine can judge the aggregation qualification of the data packets to be merged according to heuristic analysis, deep packet header inspection and protocol perception capability, so that the complexity of aggregated data is high and the efficiency is low.
Therefore, the embodiment of the application provides a data processing method, which can reduce the complexity of aggregation processing data and improve the efficiency of aggregation processing.
As shown in fig. 4, a schematic view of an application scenario of the embodiment of the present application is shown. The first device and the second device both comprise intelligent network cards, and the intermediate network device can be a switch or a router.
As shown in fig. 5, a schematic flow chart interaction diagram of a method 500 for data processing proposed by the embodiment of the present application is shown. The method comprises the following steps:
the first device configures aggregation policy information for the data packet, where the aggregation policy information is used to indicate whether a second device receiving the data packet aggregates the data packet. Specifically, the first device may configure aggregation policy information for each of a plurality of data packets, where the plurality of data packets may be data packets belonging to different data flows, and the plurality of data packets may also be data packets belonging to the same data flow.
The plurality of data packets are obtained by slicing the data by the slicing engine in the first device according to the message. The slicing engine may be a hardware module or a software module.
Optionally, the header of the data packet includes aggregation policy information, where the aggregation policy information may include at least one of the following information: sequence number of the packet, boundary information, priority information, dirty field, dirty mode field, etc. Wherein the boundary information is used for indicating a way of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used to indicate whether data in a data packet is modified by a third device, wherein the third device is a device used to transmit the data packet; the dirty mode field is used to indicate whether to ignore the dirty field. It should be appreciated that only the dirty field may be modified by the third device transmitting the data packet, and other information in the aggregated policy information may not be modified by the third device. Illustratively, the boundary information may include any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information. The first boundary information is used for indicating that the data packet is not aggregated, and it can be understood that the data packet can be sent to the processor for processing; the second boundary information is used for indicating that the data packet can be aggregated with the data packet sent after the data packet, namely the data packet cannot be aggregated with the data packet sent before the data packet; the third boundary information is used to indicate that the data packet may be aggregated with the data packet sent before the data packet and the data packet sent after the data packet, it is understood that the data packet may be aggregated with not only the data packet sent before the data packet but also the data packet sent after the data packet; the fourth boundary information is used to indicate that the data packet cannot be aggregated with a data packet sent after the data packet, and the data packet may be aggregated with a data packet sent before the data packet, or may not be aggregated with the data packet.
It should be understood that the data packet may be understood as a data packet, and the header of the data packet may be understood as a header of the data packet, which is not specifically limited in this application.
Optionally, the boundary information is indicated by bit (bit) information. When the bit information is equal to the first value, indicating that the boundary information in the data packet is first boundary information; when the bit information is equal to a second value, indicating that the boundary information in the data packet is second boundary information; when the bit information is equal to a third value, indicating that the boundary information in the data packet is third boundary information; when the bit information is equal to the fourth value, indicating that the boundary information in the data packet is fourth boundary information. Illustratively, when the bit information for indicating the boundary information in the packet is equal to the first value, "locator" may be indicated, indicating that the packet is a separate packet; when the bit information for indicating the boundary information in the data packet is equal to the second value, "first" may be indicated, indicating that the data packet is the first data packet in the data stream; when the bit information for indicating the boundary information in the data packet is equal to the third value, "next" may be indicated, indicating that the data packet is an intermediate data packet in the data stream; when the bit information indicating the boundary information in the packet is equal to the fourth value, "last" may be indicated, indicating that the packet is the last packet in the data stream. Illustratively, the bit information may occupy two bits in the header of the data packet. The first value may be equal to 0, the second value may be equal to 1, the third value may be equal to 2, and the fourth value may be equal to 3.
Illustratively, the sequence number of the data packet may be monotonically increasing or may be monotonically decreasing. The first device may assign a unique sequence number to each packet, where the sequence number of the initially transmitted packet is different from the sequence number of the retransmitted packet. In addition, the serial number with the bit width of 40 bits/48 bits/64 bits can be adopted in the embodiment of the application, so that the turnover period of the serial number is increased, and the turnover of the serial number is reduced.
Illustratively, the priority information includes first priority information or second priority information, the first priority information may indicate that the priority of the data packet is high priority, for example, the first priority information may indicate that the priority of the data packet is higher than or equal to a preset value, the second priority information may indicate that the priority of the data packet is low priority, for example, the second priority information may indicate that the priority of the data packet is lower than the preset value, which may be predefined. When the priority of the data packet is high, it indicates that the data packet is not negligible or important, and needs to be indicated to the processor for processing.
Alternatively, the priority information may be indicated by bit information. Illustratively, the bit information may occupy one bit in the header of the data packet. When the bit value corresponding to the bit is equal to 1, it may indicate that the priority of the data packet is higher than or equal to a preset value; when the bit value corresponding to the bit is equal to 0, it may indicate that the priority of the data packet is lower than a preset value. For example, when the bit value for indicating the priority of the data packet is equal to 1, an "on" may be indicated, indicating that the data packet needs to be individually indicated to the processor for processing; when the bit value indicating the priority of the packet is equal to "0", it may indicate "off", indicating that the packet does not need to be separately indicated to the processor for processing.
Alternatively, the dirty field and the dirty mode field may also be indicated by bit information.
And 520, the first device sequentially sends data packets to the second device, wherein the data packets comprise aggregation strategy information.
In particular, the first device may send a plurality of data packets to the second device through the at least one third device. The second device may be an aggregation engine. The third device, which may be a switch or a router, etc., may also be referred to as an intermediate device.
And 530, the second device receives a data packet sent by the first device, wherein the data packet comprises aggregation policy information, and the aggregation policy information is used for indicating whether to aggregate and process the data packet.
In particular, the second device may receive a plurality of data packets transmitted by the first device through the at least one third device.
The dirty field in the aggregation policy information is modifiable by a third device (intermediate device) that transmitted the packet. The dirty field may occupy one bit in the header of the data packet. Specifically, when the dirty field in the data packet is the first indication value, the dirty field is used to indicate that the data in the data packet is modified by the third device, in this case, the modified data packet cannot be aggregated with other data packets; when the dirty field in the data packet is the second indication value, the dirty field is used to indicate that the data in the data packet has not been modified by the third device. The third device modifies the data in the data packet, including adding the address information of the third device to the data packet, so that the second device can know the transmission path of the data packet. For example, the first indication value may be "1" and the second indication value may be "0".
For example, the first device configures a bit value in a dirty field to be 0, if data in a data packet is modified, the bit value in the dirty field is modified to be 1 (a first indication value), and the modified dirty field indicates that the data packet cannot be aggregated with other data packets. If the data in the data packet is not modified, the bit value in the dirty field is not modified and remains 0 (second indicator value). It should be understood that the first device configures the bit value in the dirty field to be 1, which is not particularly limited. In addition, a dirty field may occupy more bits.
The dirty mode field is used to indicate whether to ignore the dirty field, which is to be understood as indicating whether to ignore the bit value in the dirty field as modified. The dirty mode field may occupy two bits in the header of the data packet. Illustratively, when the bit value in the dirty mode field in the data packet is 0, it may indicate to ignore the dirty field; when the bit value in the dirty mode field in the data packet is 1, it may indicate that the dirty field is not to be ignored. It should be understood that, when the bit value in the dirty mode field in the data packet indicates 1, it may indicate to ignore the dirty field, which is not specifically limited in this application.
The second device processes the packet according to the aggregation policy information in the packet 540. Specifically, the aggregation engine in the second device processes the data packet according to the aggregation policy information in the data packet. The aggregation engine may be a hardware module or a software module.
Illustratively, the aggregation policy information may include a sequence number of the data packet and one of the following four types of boundary information: first boundary information, second boundary information, third boundary information, or fourth boundary information.
When the aggregation policy information of the data packet includes the first boundary information, the second device does not aggregate the data packet, and may send the data packet to the processor separately for processing. The processor may be a processor in a protocol stack of the host independent from the second device, or may be a processor in the second device, which is not particularly limited.
When the second boundary information is included in the aggregation policy information of the data packet, the second device may aggregate the data packet with a data packet received after the data packet, but the data packet cannot be aggregated with a data packet transmitted before the data packet. For example, the aggregation policy information of the packet with sequence number 101 includes second boundary information, and if the second device receives the packet with sequence number 102 after receiving the packet with sequence number 101, the second device may aggregate the packet with sequence number 101 and the packet with sequence number 102; if the second device receives the data packet with the sequence number of 103 instead of the data packet with the sequence number of 102 after receiving the data packet with the sequence number of 101, the second device does not need to aggregate the data packet with the sequence number of 101 and the data packet with the sequence number of 103, and only needs to send the data packet with the sequence number of 101 to the processor separately. The packet with sequence number 101, the packet with sequence number 102, and the packet with sequence number 103 belong to the same flow and the same message.
When the third boundary information is included in the aggregation policy information of the data packet, the second device may aggregate the data packet with not only a data packet received before the data packet but also a data packet received after the data packet. For example, the aggregation policy information of the packet with sequence number 202 includes third boundary information, and if the second device receives a packet with sequence number 201 before receiving the packet with sequence number 202, the second device may aggregate the packet with sequence number 202 and the packet with sequence number 201; if the second device receives a packet with sequence number 203 after receiving a packet with sequence number 202, the second device may aggregate the packet with sequence number 203 with the packet with sequence number 201 and the packet with sequence number 202. The packet with sequence number 201, the packet with sequence number 202, and the packet with sequence number 203 belong to the same flow and the same message.
When the fourth boundary information is included in the aggregation policy information of the data packet, the second device may or may not aggregate the data packet with the data packet transmitted before the data packet, but the data packet cannot be aggregated with the data packet transmitted after the data packet. For example, the aggregation policy information of the packet with the sequence number 302 includes fourth boundary information, and if the second device receives a packet with the sequence number 301 before receiving the packet with the sequence number 302, the second device may aggregate the packet with the sequence number 302 and the packet with the sequence number 301. If the second device does not receive the packet with sequence number 301 before receiving the packet with sequence number 302, the second device may send the packet with sequence number 302 to the processor separately. The data packet with sequence number 301 and the data packet with sequence number 302 belong to the same data flow and the same message.
Illustratively, the aggregation policy information may include a sequence number, boundary information, and priority information of the data packet.
When the aggregation policy information of the data packet includes the first priority information and the third boundary information, the second device may aggregate the data packet with a data packet received before the data packet and a data packet received after the data packet, and the aggregation context information sent by the second device to the processor includes identification information of the data packet, which is used to instruct the processor to process the data packet. The identification information of the data packet may be header information of the data packet, or may be a serial number of the data packet, which is not specifically limited in this application.
It should be understood that the aggregated context information includes header information of a first (first) data packet, header information of a last (last) data packet, and data information of the aggregated data packets. Therefore, when the boundary information in the aggregation policy information of the data packet is the first boundary information, the second boundary information, or the fourth boundary information, the header information of the data packet is sent to the processor through the aggregation context information, and it is not necessary to indicate that the priority of the data packet is higher than or equal to the preset value through the first priority information, that is, it is not necessary to add the header information of the data packet or the sequence number of the data packet again in the aggregation context information sent by the second device to the processor.
Optionally, when the aggregation policy information of the data packet includes the first priority information and the third boundary information, the second device may also aggregate the data packet with a data packet received before the data packet, or the second device aggregates the data packet with a data packet received after the data packet, so that the aggregation context information sent by the second device to the processor includes the header information of the data packet.
Optionally, when the aggregation policy information includes the second priority information and the boundary information, the second device may process the data packet according to the boundary information, which may be understood as that the second device processes the data packet according to the sequence number and the boundary information of the data packet, and the specific process is as described above.
Illustratively, the aggregation policy information may include a sequence number, boundary information, priority information, and a dirty field of the packet.
When the dirty field is included in the aggregation policy information of the data packet and indicates that the data packet is modified by the third device, the second device does not aggregate the data packet. It should be appreciated that when the dirty field indicates that the packet is modified by the third device, the second device cannot aggregate the packet regardless of which boundary information the boundary information in the aggregation policy information is, and regardless of whether the priority information in the aggregation policy information is the first priority information or the second priority information.
When the dirty field is included in the aggregation policy information of the data packet and indicates that the data packet is not modified by the third device, the second device processes the data packet according to at least one of the sequence number, the boundary information and the priority information of the data packet.
For example, in the case where only the sequence number, the boundary information, and the dirty field of the data packet are included in the aggregation policy information, when the dirty field indicates that the data packet is not modified by the third device, the second device may process the data packet according to the sequence number and the boundary information of the data packet. When the aggregation policy information includes the sequence number, the boundary information, the priority information, and the dirty field of the data packet, the second device may process the data packet according to the sequence number, the boundary information, and the priority information of the data packet when the dirty field indicates that the data packet is not modified by the third device.
Illustratively, the aggregation policy information may include a sequence number, boundary information, priority information, a dirty field, and a dirty mode field of the packet.
When the dirty field in the aggregation policy information indicates that the data packet is modified by the third device and the dirty mode field indicates that the dirty field is not to be ignored, the second device does not aggregate the data packet. It should be appreciated that when the dirty field indicates that the data packet is modified by the third device and the dirty mode field indicates that the dirty field is not to be ignored, the second device cannot aggregate the data packet regardless of which boundary information the boundary information in the aggregation policy information is, and regardless of whether the priority information in the aggregation policy information is the first priority information or the second priority information.
When a dirty field in the aggregation policy information indicates that the packet is modified by the third device, but the dirty mode field indicates that the dirty field is ignored, the second device may process the packet according to at least one of sequence number, boundary information, and priority information of the packet. For example, in a case where only the sequence number, the boundary information, the dirty field, and the dirty mode field of the data packet are included in the aggregation policy information, when the dirty field indicates that the data packet is modified by the third device and the dirty mode field indicates that the dirty field is ignored, the second device may process the data packet according to the sequence number and the boundary information of the data packet. In a case where the aggregation policy information includes a sequence number, boundary information, priority information, a dirty field, and a dirty mode field of the packet, when the dirty field indicates that the packet is modified by the third device and the dirty mode field indicates that the dirty field is ignored, the second device may process the packet according to the sequence number, boundary information, and priority information of the packet.
When the dirty field in the aggregation policy information indicates that the data packet is not modified by the third device, the second device may process the data packet according to at least one of sequence number, boundary information, and priority information of the data packet, regardless of whether the dirty mode field indicates to ignore the dirty field or indicates not to ignore the dirty field. For example, in a case where only the sequence number, the boundary information, the dirty field, and the dirty mode field of the data packet are included in the aggregation policy information, when the dirty field indicates that the data packet is not modified by the third device, the second device may process the data packet according to the sequence number and the boundary information of the data packet. In a case where the aggregation policy information includes a sequence number, boundary information, priority information, a dirty field, and a dirty mode field of the data packet, when the dirty field indicates that the data packet is not modified by the third device, the second device may process the data packet according to the sequence number, boundary information, and priority information of the data packet.
Fig. 6 shows a schematic diagram of the location of aggregation policy information in the header of a data packet. The data packet may include information such as a sequence number, boundary information, priority information, a dirty field, a dirty mode field, and user data of the data packet, where the boundary information, the priority information, the dirty field, and the dirty mode field may occupy 6 bits in a header of the data packet. A field composed of the boundary information, the priority information, the dirty field, and the dirty mode field may be referred to as an aggregation tag (aggregation tag), a field composed of the sequence number of the packet, the boundary information, the priority information, the dirty field, and the dirty mode field may be referred to as an aggregation header (aggregation header), and the aggregation header may be understood as the aggregation policy information. It should be appreciated that the present application is not limited to the particular location in the header of the data packet where the aggregate tag and the serial number of the data packet should be placed.
In the technical solution provided in the embodiment of the present application, a data packet sent by a first device includes aggregation policy information used for indicating whether a second device receiving the data packet performs aggregation processing on the data packet, and the second device may process the data packet according to the aggregation policy information in the received data packet. The first device indicates whether or how to aggregate the data packets by configuring the aggregation policy information in the data packets, and the second device does not need to guess the intention of the first device and implement the aggregation processing of the data packets according to all details of the transmission protocol, so that the complexity of the aggregation processing of the data by the second device can be reduced, and the efficiency of the aggregation processing can be improved.
An embodiment of the present application provides a data processing apparatus, and as shown in fig. 7, a schematic block diagram of a data processing apparatus 700 according to an embodiment of the present application is shown. The apparatus may be applied to the first device in the method embodiment of fig. 5. The communication apparatus 700 includes:
a processing unit 710, configured to configure aggregation policy information for a data packet, where the aggregation policy information is used to indicate whether a second device that receives the data packet aggregates the data packet;
a sending unit 720, configured to send the data packet to the second device, where the data packet includes the aggregation policy information.
Optionally, the header of the data packet includes the aggregation policy information, where the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet; the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
Optionally, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information; the first boundary information is used for indicating that the data packet is not aggregated, the second boundary information is used for indicating that the data packet is aggregated with a data packet sent after the data packet, the third boundary information is used for indicating that the data packet is aggregated with a data packet sent before the data packet and a data packet sent after the data packet, and the fourth boundary information is used for indicating that the data packet cannot be aggregated with a data packet sent after the data packet.
Optionally, the boundary information is indicated by bit information; when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information; when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information; when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream, and indicating that the boundary information in the data packet is the third boundary information; and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
Optionally, the priority information includes first priority information or second priority information, where the first priority information indicates that the priority of the data packet is a high priority, and the second priority information indicates that the priority of the data packet is a low priority.
Optionally, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that the data in the data packet is modified by the third device; when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device.
Another data processing apparatus according to an embodiment of the present application is provided, and as shown in fig. 8, a schematic block diagram of a data processing apparatus 800 according to an embodiment of the present application is shown. The apparatus may be applied to the second device in the method embodiment of fig. 5. The communication apparatus 800 includes:
a receiving unit 810, configured to receive a data packet sent by a first device, where the data packet includes aggregation policy information, and the aggregation policy information is used to indicate whether to aggregate the data packet;
a processing unit 820, configured to process the data packet according to the aggregation policy information in the data packet.
Optionally, the header of the data packet includes the aggregation policy information, where the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet; the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets; the priority information is used for indicating the priority of the data packet; the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet; the dirty mode field is used to indicate whether to ignore the dirty field.
Optionally, the boundary information includes any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information;
the processing unit 820 is specifically configured to:
when the aggregation policy information comprises the first boundary information, the processing unit does not aggregate the data packet;
when the aggregation policy information includes the second boundary information, the processing unit aggregates the data packet with a data packet received after the data packet, wherein a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet;
when the third boundary information is included in the aggregation policy information, the processing unit aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, wherein a sequence number of the data packet received before the data packet is continuous with a sequence number of the data packet, and a sequence number of the data packet received after the data packet is continuous with a sequence number of the data packet;
when the fourth boundary information is included in the aggregation policy information, the processing unit aggregates the data packet with a data packet received before the data packet, where a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet.
Optionally, the boundary information is indicated by bit information;
when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information;
when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information;
when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information;
and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
Optionally, the priority information includes first priority information or second priority information, where the first priority information indicates that the priority of the data packet is a high priority, and the second priority information indicates that the priority of the data packet is a low priority;
the processing unit 820 is specifically configured to:
when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet or aggregating the data packet with a data packet received after the data packet; alternatively, the first and second liquid crystal display panels may be,
when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet and a data packet received after the data packet, where information in an aggregation context sent by the second device to a processor includes identification information of the data packet, and is used to instruct the processor to process the data packet;
and when the aggregation strategy information comprises the second priority information, processing the data packet according to the boundary information.
Optionally, when the dirty field in the data packet is a first indication value, the dirty field is used to indicate that the data in the data packet is modified by the third device;
when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device;
the processing unit 820 is specifically configured to:
when the dirty field indicates that the data packet is modified by the third device, not aggregating the data packet;
processing the data packet according to at least one of the sequence number of the data packet, the boundary information, and the priority information when the dirty field indicates that the data packet is not modified by the third device.
Optionally, the processing unit 820 is specifically configured to:
not aggregating the data packets when the dirty field indicates that the data packets are modified by the third device and the dirty mode field indicates not to ignore the dirty field;
processing the data packet according to at least one of sequence number, the boundary information, and the priority information of the data packet when the dirty mode field indicates to ignore the dirty field.
An embodiment of the present application provides a data processing apparatus 900, and as shown in fig. 9, a schematic block diagram of the data processing apparatus 900 according to the embodiment of the present application is shown.
The data processing apparatus 900 includes: a processor 910 and a transceiver 920, wherein the transceiver 920 is configured to receive computer code or instructions and transmit the computer code or instructions to the processor 910, and the processor 910 executes the computer code or instructions to implement the method in the embodiment of the present application. The data processing device may be the first device or the second device in the embodiments of the present application.
The processor 910 may be an integrated circuit chip having signal processing capabilities. In implementation, the steps of the above method embodiments may be performed by integrated logic circuits of hardware in a processor or instructions in the form of software. The processor may be a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), an off the shelf programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, or discrete hardware components. The various methods, steps, and logic blocks disclosed in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor. The software module may be located in ram, flash memory, rom, prom, or eprom, registers, etc. storage media as is well known in the art. The storage medium is located in a memory, and a processor reads information in the memory and completes the steps of the method in combination with hardware of the processor.
An embodiment of the present application further provides a data processing system, which includes the data processing apparatus described in fig. 7 and the data processing apparatus described in fig. 8.
The embodiment of the present application also provides a computer-readable storage medium on which a computer program for implementing the method in the above method embodiment is stored. When the computer program runs on a computer, the computer is enabled to implement the method in the above-described method embodiments.
Embodiments of the present application further provide a computer program product, which includes computer program code, when the computer program code runs on a computer, the method in the above method embodiments is executed.
The embodiment of the present application further provides a chip, which includes a processor, where the processor is connected to a memory, where the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the chip executes the method in the foregoing method embodiment.
It should be understood that the numbers "first" and "second" \8230inthe embodiments of the present application are only used for distinguishing different objects, such as different devices or boundary information, etc., and do not limit the scope of the embodiments of the present application, which is not limited thereto.
In addition, the term "and/or" in this application is only one kind of association relationship describing the association object, and means that there may be three kinds of relationships, for example, a and/or B, and may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the character "/" herein generally indicates that the former and latter related objects are in an "or" relationship; the term "at least one" in this application may mean "one" and "two or more", for example, in a, B and C, may mean: a exists alone, B exists alone, C exists alone, A and B exist together, A and C exist together, C and B exist together, A and B exist together, and A, B and C exist together, which are seven cases.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the technical solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It can be clearly understood by those skilled in the art that, for convenience and simplicity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one type of logical functional division, and other divisions may be realized in practice, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one position, or may be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions may be stored in a computer-readable storage medium if they are implemented in the form of software functional units and sold or used as separate products. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (31)

1. A method of data processing, comprising:
the method comprises the steps that a first device configures aggregation strategy information for a data packet, wherein the aggregation strategy information is used for indicating whether a second device receiving the data packet performs aggregation processing on the data packet or not;
and the first equipment sends the data packet to the second equipment, wherein the data packet comprises the aggregation strategy information.
2. The method of claim 1, wherein the aggregation policy information is included in a header of the data packet, and wherein the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty fields, and dirty mode fields of the data packet;
the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets;
the priority information is used for indicating the priority of the data packet;
the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet;
the dirty mode field is used to indicate whether to ignore the dirty field.
3. The method of claim 2, wherein the boundary information comprises any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information;
the first boundary information is used for indicating that the data packet is not aggregated, the second boundary information is used for indicating that the data packet is aggregated with a data packet sent after the data packet, the third boundary information is used for indicating that the data packet is aggregated with a data packet sent before the data packet and a data packet sent after the data packet, and the fourth boundary information is used for indicating that the data packet cannot be aggregated with a data packet sent after the data packet.
4. The method according to claim 2 or 3,
the boundary information is indicated by bit information;
when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information;
when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information;
when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information;
and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream, and indicating that the boundary information in the data packet is the fourth boundary information.
5. The method according to any one of claims 2 to 4, wherein the priority information comprises first priority information indicating that the priority of the data packet is a high priority or second priority information indicating that the priority of the data packet is a low priority.
6. The method according to any one of claims 2 to 5,
when the dirty field in the data packet is a first indication value, indicating that data in the data packet is modified by the third device;
when the dirty field in the data packet is a second indication value, the dirty field is used for indicating that the data in the data packet is not modified by the third device.
7. A method of data processing, comprising:
the method comprises the steps that a second device receives a data packet sent by a first device, wherein the data packet comprises aggregation strategy information, and the aggregation strategy information is used for indicating whether the data packet is aggregated or not;
and the second equipment processes the data packet according to the aggregation strategy information in the data packet.
8. The method of claim 7, wherein the aggregation policy information is included in a header of the data packet, and wherein the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet;
the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets, and the priority information is used for indicating the priority of the data packets;
the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet;
the dirty mode field is used to indicate whether to ignore the dirty field.
9. The method of claim 8, wherein the boundary information comprises any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information;
the second device processes the data packet according to the aggregation policy information in the data packet, including:
when the aggregation policy information includes the first boundary information, the second device does not aggregate the data packet;
when the aggregation policy information includes the second boundary information, the second device aggregates the data packet with a data packet received after the data packet, wherein a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet;
when the third boundary information is included in the aggregation policy information, the second device aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, wherein a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet, and a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet;
when the fourth boundary information is included in the aggregation policy information, the second device aggregates the data packet with a data packet received before the data packet, wherein a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet.
10. The method according to claim 8 or 9,
the boundary information is indicated by bit information;
when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information;
when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information;
when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information;
and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
11. The method according to claim 9 or 10, wherein the priority information comprises first priority information indicating that the priority of the data packet is high priority or second priority information indicating that the priority of the data packet is low priority;
the second device processes the data packet according to the aggregation policy information in the data packet, including:
when the aggregation policy information includes the first priority information and the third boundary information, the second device aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, and information in an aggregation context sent by the second device to a processor includes identification information of the data packet, which is used for instructing the processor to process the data packet; alternatively, the first and second electrodes may be,
when the aggregation policy information includes the first priority information and the third boundary information, the second device aggregates the data packet with a data packet received before the data packet or aggregates the data packet with a data packet received after the data packet;
and when the aggregation strategy information comprises the second priority information and the boundary information, the second equipment processes the data packet according to the boundary information.
12. The method according to any one of claims 8 to 11,
when the dirty field in the data packet is a first indication value, indicating that data in the data packet is modified by the third device;
when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device;
the second device processes the data packet according to the aggregation policy information in the data packet, including:
when the dirty field indicates that the data packet is modified by the third device, the second device does not aggregate the data packet;
when the dirty field indicates that the data packet is not modified by the third device, the second device processes the data packet according to at least one of a sequence number of the data packet, the boundary information, and the priority information.
13. The method of claim 12, wherein the second device processes the data packet according to the aggregation policy information in the data packet, comprising:
when the dirty field indicates that the data packet is modified by the third device and the dirty mode field indicates not to ignore the dirty field, the second device does not aggregate the data packet;
when the dirty mode field indicates to ignore the dirty field, the second device processes the data packet according to at least one of a sequence number of the data packet, the boundary information, and the priority information.
14. A data processing apparatus, comprising:
the processing unit is used for configuring aggregation strategy information for a data packet, wherein the aggregation strategy information is used for indicating whether a second device receiving the data packet aggregates the data packet or not;
a sending unit, configured to send the data packet to the second device, where the data packet includes the aggregation policy information.
15. The apparatus of claim 14, wherein the aggregation policy information is included in a header of the data packet, and wherein the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet;
the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets;
the priority information is used for indicating the priority of the data packet;
the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet;
the dirty mode field is used to indicate whether to ignore the dirty field.
16. The apparatus of claim 15, wherein the boundary information comprises any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information;
the first boundary information is used for indicating that the data packet is not aggregated, the second boundary information is used for indicating that the data packet is aggregated with a data packet sent after the data packet, the third boundary information is used for indicating that the data packet is aggregated with a data packet sent before the data packet and a data packet sent after the data packet, and the fourth boundary information is used for indicating that the data packet cannot be aggregated with a data packet sent after the data packet.
17. The apparatus of claim 15 or 16,
the boundary information is indicated by bit information;
when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information;
when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information;
when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream, and indicating that the boundary information in the data packet is the third boundary information;
and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream and the boundary information in the data packet is the fourth boundary information.
18. The apparatus of any of claims 15 to 17, wherein the priority information comprises first priority information indicating that the priority of the data packet is a high priority or second priority information indicating that the priority of the data packet is a low priority.
19. The apparatus of any one of claims 15 to 18,
when the dirty field in the data packet is a first indication value, indicating that data in the data packet is modified by the third device;
when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device.
20. A data processing apparatus, characterized by comprising:
a receiving unit, configured to receive a data packet sent by a first device, where the data packet includes aggregation policy information, and the aggregation policy information is used to indicate whether to aggregate the data packet;
and the processing unit is used for processing the data packet according to the aggregation strategy information in the data packet.
21. The apparatus of claim 20, wherein the aggregation policy information is included in a header of the data packet, and wherein the aggregation policy information includes at least one of the following information: sequence number, boundary information, priority information, dirty field, and dirty mode field of the data packet;
the boundary information is used for indicating a mode of not aggregating the data packets or aggregating the data packets;
the priority information is used for indicating the priority of the data packet;
the dirty field is used for indicating whether data in the data packet is modified by a third device, wherein the third device is a device used for transmitting the data packet;
the dirty mode field is used to indicate whether to ignore the dirty field.
22. The apparatus of claim 21, wherein the boundary information comprises any one of: first boundary information, second boundary information, third boundary information, or fourth boundary information;
the processing unit is specifically configured to:
when the aggregation policy information comprises the first boundary information, the processing unit does not aggregate the data packet;
when the aggregation policy information includes the second boundary information, the processing unit aggregates the data packet with a data packet received after the data packet, wherein a sequence number of the data packet received after the data packet is consecutive to a sequence number of the data packet;
when the aggregation policy information includes the third boundary information, the processing unit aggregates the data packet with a data packet received before the data packet and a data packet received after the data packet, wherein a sequence number of the data packet received before the data packet is consecutive with a sequence number of the data packet, and a sequence number of the data packet received after the data packet is consecutive with a sequence number of the data packet;
when the fourth boundary information is included in the aggregation policy information, the processing unit aggregates the data packet with a data packet received before the data packet, where a sequence number of the data packet received before the data packet is consecutive to a sequence number of the data packet.
23. The apparatus of claim 21 or 22,
the boundary information is indicated by bit information;
when the bit information is equal to a first value, indicating that the data packet is an independent data packet and the boundary information in the data packet is the first boundary information;
when the bit information is equal to a second value, indicating that the data packet is a first data packet in a data stream and the boundary information in the data packet is the second boundary information;
when the bit information is equal to a third value, indicating that the data packet is a middle data packet in a data stream and the boundary information in the data packet is the third boundary information;
and when the bit information is equal to a fourth numerical value, indicating that the data packet is the last data packet in the data stream, and indicating that the boundary information in the data packet is the fourth boundary information.
24. The apparatus according to claim 22 or 23, wherein the priority information comprises first priority information indicating that the priority of the data packet is high priority or second priority information indicating that the priority of the data packet is low priority;
the processing unit is specifically configured to:
when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet or aggregating the data packet with a data packet received after the data packet; alternatively, the first and second electrodes may be,
when the aggregation policy information includes the first priority information and the third boundary information, aggregating the data packet with a data packet received before the data packet and a data packet received after the data packet, where information in an aggregation context sent by the second device to a processor includes identification information of the data packet, and is used to instruct the processor to process the data packet;
and when the aggregation strategy information comprises the second priority information, processing the data packet according to the boundary information.
25. The apparatus of any one of claims 21 to 24,
when the dirty field in the data packet is a first indication value, indicating that data in the data packet is modified by the third device;
when the dirty field in the data packet is a second indication value, indicating that data in the data packet has not been modified by the third device;
the processing unit is specifically configured to:
not aggregating the data packets when the dirty field indicates that the data packets are modified by the third device;
processing the data packet according to at least one of the sequence number of the data packet, the boundary information, and the priority information when the dirty field indicates that the data packet is not modified by the third device.
26. The apparatus according to claim 25, wherein the processing unit is specifically configured to:
not aggregating the data packets when the dirty field indicates that the data packets are modified by the third device and the dirty mode field indicates not to ignore the dirty field;
processing the data packet according to at least one of sequence number, the boundary information, and the priority information of the data packet when the dirty mode field indicates to ignore the dirty field.
27. A data processing apparatus, characterized by comprising: a processor and a transceiver for receiving computer code or instructions and transmitting the computer code or instructions to the processor, the processor executing the computer code or instructions, the method of any of claims 1 to 6.
28. A data processing apparatus, characterized by comprising: a processor and a transceiver for receiving computer code or instructions and transmitting the computer code or instructions to the processor, the processor executing the computer code or instructions, the method of any of claims 7 to 13.
29. A data processing system, comprising:
a data processing apparatus as claimed in any one of claims 14 to 19, and a data processing apparatus as claimed in any one of claims 20 to 26.
30. A computer-readable storage medium, comprising
The computer readable medium stores a computer program;
the computer program, when run on a computer, causes the computer to perform the method of any one of claims 1 to 13.
31. A computer program product comprising a computer program which, when executed, causes the method of any one of claims 1 to 13 to be carried out.
CN202110997496.4A 2021-08-27 2021-08-27 Data processing method and device Pending CN115733897A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110997496.4A CN115733897A (en) 2021-08-27 2021-08-27 Data processing method and device
PCT/CN2022/091494 WO2023024572A1 (en) 2021-08-27 2022-05-07 Data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110997496.4A CN115733897A (en) 2021-08-27 2021-08-27 Data processing method and device

Publications (1)

Publication Number Publication Date
CN115733897A true CN115733897A (en) 2023-03-03

Family

ID=85290553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110997496.4A Pending CN115733897A (en) 2021-08-27 2021-08-27 Data processing method and device

Country Status (2)

Country Link
CN (1) CN115733897A (en)
WO (1) WO2023024572A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996718B2 (en) * 2012-02-02 2015-03-31 Apple Inc. TCP-aware receive side coalescing
EP3566407A1 (en) * 2017-01-03 2019-11-13 INTEL Corporation Cross-device segmentation offload
CN113411262B (en) * 2018-11-14 2023-09-05 超聚变数字技术有限公司 Method and device for setting large-scale receiving and unloading functions
KR20200114166A (en) * 2019-03-27 2020-10-07 삼성전자주식회사 Method for prcoessing network packets and electronic devic therefor
KR20210088268A (en) * 2020-01-06 2021-07-14 삼성전자주식회사 Apparatus and method for controlling network slice data rate in wireless communication system
CN113141330A (en) * 2020-01-17 2021-07-20 华为技术有限公司 Communication method and device
US11909642B2 (en) * 2020-09-03 2024-02-20 Intel Corporation Offload of acknowledgements to a network device

Also Published As

Publication number Publication date
WO2023024572A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
CN102104541B (en) Header processing engine
EP1868093B1 (en) Method and system for a user space TCP offload engine (TOE)
WO2020236280A1 (en) System and method for facilitating operation management in a network interface controller (nic) for accelerators
US7760629B2 (en) Aggregate data frame generation
US7953093B2 (en) TCP/IP reordering
CN111526606B (en) Method and device for data transmission, smart home equipment and storage medium
WO2007097909A2 (en) System and method for efficient network flow control
CN115242726B (en) Queue scheduling method and device and electronic equipment
CN114726788A (en) Message transmission method applied to DPU and related device
CN103118144B (en) A kind of Radio Access Controller and long-distance port agent method thereof
CN107579920A (en) Transmission method, device, storage medium and the processor of data flow
CN110417761A (en) Communication means and device based on dual-computer redundancy
CN107086960B (en) Message transmission method and device
CN115733897A (en) Data processing method and device
CN1317841C (en) Replacement messages for identifying and preventing errors during the transmission of real time-critical data
CN110417687A (en) A kind of message sends and receives method and device
CN116074253B (en) Message chained forwarding method and device
CN115022424B (en) Hydropower LCU controller network card virtual control method, system, equipment and medium thereof
CN103078720B (en) Message processing method and device
CN106411677A (en) Method and device for determining optimal maximum transmission unit (MTU) of virtual private network (VPN) data channel
CN107528929A (en) The processing method and processing device of arp entry
CN114337942B (en) Message retransmission method and device and electronic equipment
CN108933738A (en) A kind of method, apparatus and system handling network congestion
CN104219178A (en) Openflow-based control message processing method, Openflow-based control message transmitting device, Openflow-based control message receiving device and Openflow-based control message processing system
CN109951397B (en) Message processing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination