WO2021047612A1 - 报文处理方法、装置以及计算机存储介质 - Google Patents
报文处理方法、装置以及计算机存储介质 Download PDFInfo
- Publication number
- WO2021047612A1 WO2021047612A1 PCT/CN2020/114600 CN2020114600W WO2021047612A1 WO 2021047612 A1 WO2021047612 A1 WO 2021047612A1 CN 2020114600 W CN2020114600 W CN 2020114600W WO 2021047612 A1 WO2021047612 A1 WO 2021047612A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- original
- group
- size
- original messages
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0042—Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
- H04L1/0008—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
Definitions
- This application relates to the field of data encoding technology, and in particular to a method, device and computer-readable storage medium for message processing.
- network equipment can first perform forward error correction (FEC) encoding on multiple original messages in the data stream to obtain redundant messages when transmitting data streams. Send the original message and the redundant message to the decoding end.
- FEC forward error correction
- the process of a network device encoding multiple original messages can be as follows: the network device fills invalid data in the original messages of the multiple original messages except the largest message, so that the size of the filled message is all For the size of the largest packet among multiple original packets, the network device performs FEC encoding based on the filled packet and the largest packet to obtain redundant packets.
- the network device will fill invalid data in each original message smaller than the maximum message, the filled original message is filled with a large amount of invalid data, and the original message after filling is filled with invalid data.
- the amount of data is relatively large.
- the network device sends the filled original message to the decoding end, the filled original message occupies a large amount of network bandwidth, resulting in a waste of network resources.
- the present application provides a message processing method, device, and computer-readable storage medium, which can reduce the network bandwidth occupied in the process of message sending and avoid waste of network resources.
- the technical solution is as follows:
- a message processing method includes:
- the first message is the largest message among the multiple original messages
- any spliced message in the at least one spliced message is smaller than the size of the first message
- padding is performed on the at least one spliced message to obtain an equal-length data block, and the equal-length data
- the size of each data block in the block is the size of the first message
- This method performs splicing processing on the original messages except the largest first message among multiple original messages. Only when the size of the spliced message is smaller than the size of the largest message, the spliced message will be processed. It is not necessary to fill each other original packets. Therefore, the filled equal-length data blocks are filled with less data, which reduces the network bandwidth occupied during the transmission of FEC encoded packets and avoids The waste of network resources.
- the original packets other than the first packet among the multiple original packets Performing splicing processing to obtain at least one spliced message includes:
- each A message group includes at least one original message, and the sum of the sizes of all original messages in each message group is less than or equal to the size of the first message;
- the multiple original packets other than the first packet are spliced Processing to obtain at least one spliced message includes:
- the processor groups other original messages in the plurality of original messages except the first message to obtain at least one message group , And generate an encoding task according to the at least one message group, where the encoding task includes address information of each message group;
- the target hardware engine performs splicing processing on each message group according to the encoding task to obtain the at least one spliced message.
- the original packets other than the first packet in the multiple original packets Grouping to obtain at least one packet group includes:
- each of the multiple original messages sort the multiple original messages to obtain the order i of each original message, where i is an integer greater than or equal to zero, where the order is 0
- the original message is the first message
- the j-th target message group and the order of i are merged into the i-th target message group, the target size is the size of the first message, and the j-th target message group is the smallest-order message group among at least one target message group , And the order of the j-th target message group is j, and the sum of the size of each message group in the at least one target message group and the size of the original message whose order is i is less than or equal to the Target size, 0 ⁇ j ⁇ i;
- each remaining target message group is used as a message group in the at least one message group.
- the performing splicing processing on each message group to obtain the at least one spliced message includes:
- each message group is spliced, and the first target number is the dimension of the matrix to be coded when FEC coding is performed once; or,
- the second target number is the preset number of original messages used for performing FEC encoding once.
- the method further includes:
- each spliced message in the at least one spliced message When the size of each spliced message in the at least one spliced message is equal to the size of the first message, perform FEC encoding processing on the first message and the at least one spliced message to obtain at least A redundant message.
- a message processing device which includes a plurality of functional modules, and the plurality of functional modules interact with each other to implement the methods in the first aspect and various embodiments thereof.
- the multiple functional modules may be implemented based on software, hardware, or a combination of software and hardware, and the multiple functional modules may be combined or divided arbitrarily based on specific implementations.
- a computer-readable storage medium stores instructions, and the instructions are loaded and executed by a processor to implement the message processing method described above.
- FIG. 1 is a schematic diagram of a message transmission system provided by an embodiment of the present application.
- FIG. 2 is a flowchart of a message processing method provided by an embodiment of the present application.
- FIG. 3 is a flowchart of a method for implementing packet processing in a network device according to an embodiment of the present application
- FIG. 4 is a schematic diagram of a message group determination process provided by an embodiment of the present application.
- FIG. 5 is a flowchart of a message grouping provided by an embodiment of the present application.
- FIG. 6 is a schematic diagram of an original message grouping process provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of an encoding task provided by an embodiment of the present application.
- FIG. 8 is a schematic diagram of an FEC message provided by an embodiment of the present application.
- FIG. 9 is a schematic diagram of a flow chart of internal interaction of a network device provided by an embodiment of the present application.
- FIG. 10 is a flowchart of an encoding and decoding provided by an embodiment of the present application.
- FIG. 11 is a schematic structural diagram of a message processing apparatus provided by an embodiment of the present application.
- FIG. 1 is a schematic diagram of a message transmission system provided by an embodiment of the present application.
- a first terminal 101 a first network device 102, a second network device 103, and a second terminal 104, wherein the first terminal 101 It is used to generate a data stream and send the data stream to the first network device 102.
- the first network device 102 splices multiple original packets in the data stream into one equal-length data block, and each data block in the equal-length data block has the same size, and performs FEC encoding processing on the equal-length data block to obtain multiple data blocks.
- Redundant messages of the original message and add the same FEC header to each data block in the equal-length data block and each redundant message, encapsulate it into multiple FEC messages, and then send to the second network device 103 A coded stream composed of FEC packets.
- the second network device 303 decodes the original FEC message lost in the encoded stream, and restores the lost original FEC message, where the original FEC message is any FEC message.
- the second network device 103 restores the data stream based on the restored original FEC message and the FEC message that is not lost, and sends the data stream to the second terminal 104.
- the first terminal 101 and the second terminal 104 may be mobile phones, laptop computers, etc., and the first network device 102 and the second network device 103 may be devices such as routers and switches.
- the data stream may be a video stream, an audio stream, or a text stream composed of text data. The embodiment of the present application does not specifically limit the type of the data stream.
- Figure 1 is a schematic diagram of a video stream as an example.
- the first user can use the camera on the first terminal 302 to record the video of the first user and send it to the first network.
- the device 102 sends the original packets used to compose the video to form a video stream (data stream).
- the first network device 102 performs FEC encoding on the original packets in the video stream to obtain redundant packets.
- the FEC message header is added to each redundant message and each redundant message to obtain the corresponding FEC message.
- the first network device 102 can send the FEC message to the second network device 103 through a wide area network (WAN).
- WAN wide area network
- the second network device 103 judges which original messages are lost according to the FEC message header, and according to the received FEC messages (including original messages and redundant messages) ), recover the lost original message, the second network device 103 composes the recovered original message and the original message that is not lost into a data stream, and sends the data stream to the second terminal 104 in the local area network A and B respectively.
- the second terminal 104 After the second terminal 104 receives the video stream, it plays the video, so that the second user can watch the video of the first user on the second terminal 304, thereby realizing a cross-LAN video session between the first user and the second user .
- the first terminal 101, the first network device 102, the second network device 103, and the second terminal 104 may be distributed in the same local area network or in different local area networks.
- the distribution mode of the first terminal 101, the first network device 102, the second network device 103, and the second terminal 104 is not specifically limited.
- the first network device may directly use the processor to splice the original messages in the data stream to obtain equal-length data blocks, and the processor then performs FEC encoding on the equal-length data blocks.
- the processor in the first network device can determine the splicing scheme according to the size of each original message, and send the splicing scheme to the target hardware engine, and the target hardware engine will use the splicing scheme provided by the processor. , Perform splicing processing on the original messages in the data stream to obtain equal-length data blocks, and perform FEC encoding on the equal-length data blocks.
- the processor may be a network processor (network processer, NP), a central processing unit (central processing unit, CPU), or a combination of NP and CPU.
- the processor may also include a hardware chip, and the above-mentioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
- CPLD complex programmable logic device
- FPGA field-programmable gate array
- GAL generic array logic
- an embodiment of the present application further provides a computer-readable storage medium, such as a memory including instructions, which may be executed by a processor in a network device to implement the methods provided in the following embodiments.
- the computer-readable storage medium may be read-only memory (ROM), random access memory (RAM), compact disc read-only memory (CD-ROM), Tapes, floppy disks and optical data storage devices, etc.
- Steps 201-208 In order to further illustrate the process of encoding the original message in the data stream by the first network device, refer to the flowchart of a message processing method provided by an embodiment of the present application shown in FIG. 2. The method flow may specifically include the following Steps 201-208. In a possible implementation, when describing the process shown in FIG. 2 in this application, the steps included in the entire process of FIG. 2 are first described, and then each step is described in detail.
- the first network device obtains multiple original messages.
- the first network device can obtain multiple data streams.
- the multiple original packets are packets in the first data stream among the multiple data streams, and are packets used by the first network device to perform FEC encoding once.
- the first data stream is any data stream among multiple data streams.
- the first data stream may include multiple original messages, each original message is used to carry data, and the data carried in the original message may be video data, For audio data or text data, the embodiment of the present application does not specifically limit the type of data in the first data stream.
- the processor groups the original messages of the multiple original messages except the first message according to the size of the first message in the multiple original messages to obtain at least one message group, and each message group is
- the packet includes at least one original packet, and the sum of the sizes of all the original packets in each packet group is less than or equal to the size of the first packet.
- the processor generates an encoding task according to the at least one message group, where the encoding task includes address information of each message group.
- the processor sends the encoding task to the target hardware engine.
- the processor may also deliver the encoding task to the memory, and the target hardware engine reads the encoding task from the memory.
- the processor can also issue encoding tasks to the memory or the target hardware engine according to the priority of the data stream. The processor can first issue the encoding task of the data stream with higher priority, and then issue the encoding task of the lower priority.
- the embodiment of the application does not specifically limit the manner in which the processor issues the encoding task.
- the target hardware engine performs splicing processing on each message group according to the encoding task to obtain at least one spliced message.
- the target hardware engine performs padding processing on the at least one spliced message to obtain a data block of equal length.
- the size of each data block in the block is the size of the first message.
- the target hardware engine can fill any spliced message with target data to obtain a data block of the first message size.
- the target data can be data such as 0 or 1, when the target hardware engine fills at least one spliced message Then, a data block of equal length is obtained, and each data block in the equal length data block corresponds to a splicing message, and the size of each data block is the size of the first message.
- this step 206 may be executed by the processor.
- the target hardware engine performs forward error correction FEC encoding processing on the first message and the long data blocks to obtain at least one redundant message.
- the target hardware engine performs FEC encoding processing on the first message and the at least one spliced message to obtain At least one redundant message.
- the first network device may perform FEC encoding on multiple original packets in the data stream. After one FEC encoding is completed, perform FEC encoding on other multiple original packets in the data stream.
- step 201 can be implemented through the process shown in the following steps 2011-2012.
- Step 2011 The first network device stores the received original message in the data stream into the memory of the first network device.
- FIG. 3 shows a flowchart of a method for implementing packet processing in a network device according to an embodiment of the present invention.
- the network interface of the first network device The original message is sent to the packet parse engine (PPE).
- PPE packet parse engine
- the PPE receives the original message, it stores the original message in the memory and records the storage address of the original message, so that the PPE
- the original messages in the data stream received by the network interface can be collected.
- the network interface may be a gigabit ethernet (GE) network port or a ten-gigabit ethernet (GXE) network port.
- GE gigabit ethernet
- GXE ten-gigabit ethernet
- step 2012 if the amount of uncoded original packets of the data stream in the memory is equal to or greater than the second target number, the processor obtains the second target number from the uncoded original packets of the data stream.
- the second target number is a preset number of original messages for performing FEC encoding once.
- the first network device Since the first network device performs FEC encoding on the original message with the second target number once, it will encode the next set of uncoded original messages with the second target number. Therefore, for this data stream, Each time the second target number of original messages are newly cached in the memory of the first network device, the newly cached original messages of the second target number may be used as multiple original messages to be encoded next time.
- the processor includes at least one of the NP and the CPU.
- Figure 3 is still used as an example for description.
- the PPE collects the first original message, it stores the first original message in the memory and stores the first original message.
- the storage complete message of the first original message is sent to the NP.
- the storage complete message of the first original message may carry the flow identifier of the first data flow to which the first original message belongs and the storage address of the first original message.
- the flow identifier may be the The name or number of the first data stream is used to indicate that the first original packet belongs to the first data stream.
- the first original message is any original message in the first data stream.
- the first network device sets a corresponding priority for each received data stream according to service requirements.
- the first network device can preferentially process the data stream with high priority, and accordingly, store the completion message
- the priority of the data stream can also be carried, so that each module in the first network device can process the original message in the data stream according to the priority.
- a priority information table can be configured on the first network device.
- the priority information table includes multiple priorities from high to low. Each priority corresponds to a service type.
- the service type of the data stream can be determined according to the data carried in the original message in the data stream, and the priority corresponding to the service type of the data stream can be determined from the priority information table, so that the first network The device can set the corresponding priority for the data stream.
- the NP when the NP receives the storage completion message of the first original message, according to the storage address of the first original message carried in the storage completion message, it compares the first original message in the memory to the storage address of the first original message. The message is parsed to obtain whether the first original message needs encoding. If the first original message needs to be encoded, the NP generates an encoding notification message.
- the encoding notification message can carry the storage address of the first original message, At least one of the size of the first original message, the flow identifier and the priority of the first data stream, and send the encoding notification message to the protocol stack; the user datagram protocol (UDP) agent can download from The coded notification message is collected in the protocol stack.
- UDP user datagram protocol
- the UDP proxy can send the encoded notification message of the second target number to the FEC software module (this process is also the process in which the FEC software module obtains the notification message from the NP), The FEC software module determines the splicing scheme of the original message with the second target number.
- the first network device does not limit the number of original packets to be FEC encoded each time, but instead limits the number of original packets to be encoded each time FEC encoding is performed.
- the number of messages is the dimension of the matrix to be encoded during FEC encoding, that is, the first network device does not preset the second target number, but presets a first target number.
- Each time the UPD agent receives a coded notification message it will send the coded notification message to the FEC software module, so that the FEC software module can get multiple coded notification messages. When the FEC software module can get multiple coded notification messages.
- the FEC software module can determine the largest first message from multiple original messages, and divide the first message according to the size of the largest message (denoted as the target size) and the number of original messages.
- the size of the message other than the message determines the splicing scheme of the third target number (that is, the process of determining the splicing scheme of the original message by the FEC software module in Fig. 3), and each splicing scheme is composed of at least two splicing schemes.
- the original message splicing is a splicing message splicing scheme, the size of each spliced message is less than or equal to the target size, and the sum of the number of the third target and the number of the first message in the multiple original messages is equal to the first target
- the subsequent FEC software module sends the splicing scheme to the target hardware engine, and the target hardware engine splices the original message according to the splicing scheme.
- the step 202 is described as follows:
- the first message is the largest message among the multiple original messages
- each message group can be regarded as a splicing scheme
- the process of determining the message group is also the process of determining the splicing scheme.
- the size of each message group is also the size of all original messages in each message group.
- the processor may first sort the multiple original messages according to the sizes of the multiple original messages, and then determine at least one message group according to the sorting of the multiple original messages and the size of the first message.
- this step 202 can be implemented by the following process shown in 2021-2025. In a possible implementation, this step can be executed by the FEC software module in the processor.
- Step 2021 The processor sorts the multiple original messages according to the size of each of the multiple original messages, and obtains the order i of each original message, where i is an integer greater than or equal to zero, where the order is 0
- the original message is the first message.
- FIG. 4 shows a schematic diagram of a message group determination process provided by an embodiment of the present application.
- FIG. 4 includes the left, middle, and right pictures, where the left picture includes an original message sequence, and the original message sequence has The five original messages are messages P1-P5, and message P1 is the first message.
- the processor sorts the messages P1-P5 according to the size of the messages P1-P5, and obtains the five messages shown in the middle figure.
- the order of messages messages P1, P4, P3, P5 and P2, the order is 0-4 respectively.
- the processor Since the size of the first message is the target size, the processor does not need to group the first messages, or may directly treat each first message as a message group.
- the processor may sequentially group other original messages except the first message according to the order of the multiple original messages from low to high. Still taking the middle diagram in FIG. 4 as an example, the order of the message P4 is 1, and the processor can directly divide the message P4 into the first target message group.
- Step 2023 When i>1, if the sum of the size of the j-th target message group and the size of the original message in the order of i is less than or equal to the target size, the processor combines the j-th target message group with all the original messages.
- the original messages in the order i are merged into the i-th target message group, the target size is the size of the first message, and the j-th target message group is the smallest-order message in at least one target message group.
- Packet group, and the order of the j-th target packet group is j, the sum of the size of any packet group in the at least one target packet group and the size of the original packet whose order is i is less than or equal to the target size , 0 ⁇ j ⁇ i.
- the size of the target message group that is, the sum of the sizes of each message in the target message group, the j-th target message group is the message group where the original message of order j is located, and the i-th target message
- the group is the message group in which the original message of order i is located, that is, after the j original messages are grouped, the j-th target message group is obtained, and the i-th original message group is completed, and the i-th target message group is obtained.
- a target message group Since the processor has grouped multiple original messages, there may be multiple target message groups in the grouping process. For ease of description, each target message group is assigned an order, the j-th target message group The order of is j, and the order of the i-th target message group is i, that is, what is the order of the number of target message groups.
- the processor groups packets P3 with order 2.
- the first target packet group only includes packets P4, and the first The sum of the size of the target packet group and the size of the packet P3 of order 2, that is, the sum of the sizes of the packets P4 and P3, if the sum of the sizes of the packets P4 and P3 is less than or equal to the first packet P1
- the size of the target message group that is, the target size
- the processor merges messages P4 and P3 into the second target message group. Since the first target message group is merged into the second target message group, the current Only the second target message group remains.
- the processor combines the original message with sequence i and the j-th target message to form the i-th target message group, where the j-th target message group is at least one target The message group with the smallest sequence in the message group.
- Step 2024 When i>1, if there is no j-th target message group, the processor adds an i-th target message group, and divides the original message with the order of i into the i-th target message group. Text group.
- the processor may additionally add a target message group as the i-th target message group, and divide the original message with the order of i into the i-th target message group.
- the current remaining target message group is the second target message group composed of messages P4 and P3, and messages P4, P3 and the order are 3.
- the size of the message P5 is less than or equal to the target size, it means that the second target message group is the jth target message group in at least one target message group, and the messages P4, P3, and P5 can be directly grouped. Merge into the third target message group. If the size of messages P4, P3, and message P5 in sequence 3 is greater than the target size, indicating that the jth target message group does not exist in the current remaining target message groups, the processor adds a third target message Group, and divide the message P5 into the newly added third target message group. At this time, the second target message group and the third target message group will remain.
- Step 2025 After grouping the last original message among the multiple original messages, the processor uses each remaining target message group as a message group in the at least one message group.
- the processor After the processor completes the grouping of the last original message, the current remaining target message group is also the final message group. Therefore, the processor can use each remaining target message group as the at least one message group.
- the processor merges messages P4, P3, and P5 into the third target message group.
- the message P2 with order 4 is the message P1-5
- the processor merges the third target message group and message P2 into the fourth target message group.
- the fourth target message group is the final grouping of messages P2-P5
- the fourth target message group includes messages P2-P5
- the fourth target message group A group is also a splicing scheme.
- each splicing scheme is used to indicate the splicing message of the size of the first message, if the size of the splicing message is smaller than the size of the first message, it can be added to the splicing message. Fill the data so that the size of the message after the spelling is equal to the size of the first message.
- the processor can cache the first network device for the preset time every interval The original message is grouped.
- the grouping process can be the process shown in steps 21-25.
- the target size can be the size of the largest message among the original messages buffered by the first network device within the preset time.
- the preset packet size may be the largest packet in the first data stream to which the multiple original packets belong; when the first network device buffers the packet within the preset time When the original message is just divided into the third target number of message groups, and the third target number of message groups cannot accommodate other messages, then this grouping ends; when the first network device After the original message buffered within the preset time is just classified into at least one message group, if the number of the at least one message group is equal to the third target number, but there is still in the at least one message group If other messages can be accommodated, the processor can continue to collect new original messages until the at least one message group cannot accommodate new original messages, then the current grouping ends; if the number of at least one message group is less than the first If there are three target numbers, the processor will continue to collect new original messages and group the collected new original messages until the third target number of message groups is obtained, and the third target number of message groups are all When the new original message cannot be accommodated, the current grouping ends.
- steps 2021-2025 In order to facilitate the understanding of the process shown in steps 2021-2025, refer to the flowchart of a packet grouping provided in an embodiment of the present application shown in FIG.
- Step 501 The processor sets the number of original messages to be sorted once as the second target number M, where M is a positive integer.
- Step 502 The network interface accumulatively receives M original messages.
- Step 503 The processor arranges the M original messages in descending order according to the size of the M original messages to obtain an original message sequence including M original messages.
- the larger the M original messages The smaller the original message sequence is, the smaller the original message sequence, the larger the original message sequence
- Step 504 The processor constructs a virtual message according to the maximum message size of the M original messages, and inserts the virtual message into the virtual message sequence, where the size of the virtual message is the maximum message of the M original messages The size of the virtual message sequence is used to place virtual messages.
- Each virtual message can be regarded as a virtual storage space, and the virtual storage size of the virtual storage space is the maximum message size of M original messages, that is, a pseudo message can be regarded as a message group.
- Step 505 The processor traverses the message Pk of order k in the original message sequence, where 0 ⁇ k ⁇ M.
- Step 507 If it does not exist, the processor creates a new virtual message, inserts the newly created virtual message into the virtual message sequence, and places the message Pk in the newly created virtual message.
- Step 508 After placing the message Pk in the virtual message, the processor queries whether there is an original message that has not been traversed in the original message, and if it exists, jumps to step 505, otherwise, executes step 509.
- Step 509 After all the original messages in the original message sequence are traversed, the processor treats each virtual message in the virtual message sequence as a final message group.
- the processor when the processor groups multiple original messages, it may divide part of the data in one original message into a message group, and divide other data in the original message into other groups.
- Message group In a possible implementation, in a grouping process, if the processor divides the first original message received into the first message group, the size of the first message group is the target size, and When the target size can be any preset size, if the size of an original message is less than or equal to the target size, the processor will divide the first original message into the first message group. If the size of the original message is greater than the target size, the processor virtually splits the first original message into at least two data blocks. The size of the last data block in the at least two data blocks is less than or equal to the target size.
- the size of the other data blocks except the last data block in each data block is equal to the target size, and the processor divides each data block into a message group; when the processor subsequently receives a new original message If the sum of the size of the new original message and the size of the last message group in all current message groups is less than or equal to the target size, the new original message is divided into the last message group; if the new original message When the sum of the size of the message and the size of the last message group in all current message groups is greater than the target size, the new original message is virtually divided into a first target data block and at least one second target data block, where, The size of the first target data block is the difference between the last target size and the current size of the last packet, the size of the last data block in at least one second target data block is less than or equal to the target size, and the at least one second target The size of the data blocks except the last data block in the data block is equal to the target size.
- the processor divides the first target data block into the last message group, and adds at least one message group to each second target
- the data blocks are divided into a newly-added message group; when the processor completes the division of the original message with the second target number, or when the message group with the first target number is determined, and the first target After the number of message groups can no longer accommodate other original messages, this grouping ends.
- FIG. 6 shows a schematic diagram of an original message grouping process provided by an embodiment of the present application.
- the original message 1-2 and the former part of the original message 4 are divided into message group 1, and the latter part of the original message 4, the original message 5 and the former part of the original message 6 are divided into Message group 2, divide the latter part of the original message 6 and original messages 7-8 into message group 2.
- the size of message group 3 is smaller than the target size, and subsequent messages can be spliced in message 3
- the output spliced message is filled with data so that the size of the filled message is the target size.
- the processor when the first network device directly performs FEC encoding on multiple original packets through the processor, the processor directly executes the following step 205, which is to perform splicing processing on each packet group , At least one splicing message is obtained, and each splicing message corresponds to a message group.
- the processor executes the following step 203.
- the step 203 is described as follows:
- the encoding task is used to instruct to splice the original message in each message group into a spliced message, and encode the spliced messages, the address information of each message group Including the storage addresses of all original messages in a message group.
- the address information of each message group also includes a splicing identifier, for example, a code provided by the embodiment of the application shown in FIG. 7 A schematic diagram of the task.
- the encoding task in FIG. 7 includes multiple address information, and each address information includes a splicing identifier and the storage address of each original message.
- the splicing identifier can be used to indicate that all original messages in a message group are spliced into one splicing message.
- the splicing identifier can also be used to indicate that all storage addresses in the address information of a message group are grouped together.
- the application embodiment does not specifically limit the way of representing the splicing mark.
- the address information of each message group can be represented in the form of a set.
- message group 2 includes original messages 3 and 4, and if set 1 includes the storage addresses and splicing identifiers of original messages 3 and 4, the Set 1 is the address information of the message group 2.
- the address information of each message group can be represented in the form of a character string. Still taking message group 2 as an example, string 1 is the storage address of “original message 3; 4's storage address; splicing identification", then the character string 1 is also the address information of the message group 2.
- the address information of each message group can be represented in the form of a table. Still taking message group 2 as an example, see Table 1 below. The original messages 3 and 4 in Table 1 The storage addresses all correspond to the same splicing identifier, and Table 1 is also the address information of the message group 2.
- the encoding task may also carry the storage address of the first message, so that the subsequent target hardware engine can obtain the first message according to the storage address of the first message.
- the encoding task may also carry at least one of an encoding parameter, an identifier of a data stream, and a priority identifier of the first data stream.
- the first data stream is a data stream in which multiple original packets are located, and the encoding parameter may include the to-be-encoded data stream.
- the amount of packets (that is, the number of the first target), the amount of redundant packets, and the target size, where the amount of packets to be encoded is the number of the first packets in the multiple original packets and at least one packet group
- the step 205 is described as follows:
- the target hardware engine may obtain at least one message group from the memory according to the address information in the encoding task, and the original message in each message group is a message in a storage address in one address information. ; The target hardware engine splices the original message in each message group into a spliced message, so that the target hardware engine can obtain at least one spliced message.
- the processor When the first network device encodes multiple original messages through the processor, if the sum of the number of at least one message group and the number of first messages in the multiple original messages reaches the first target number, And when the last message group in the at least one message group cannot add other original messages other than the multiple original messages, the processor splices each message group, and the first target number is The dimension of the matrix to be coded in one FEC coding.
- the processor performs splicing processing on each message group ,
- the second target number is the preset number of original messages used for one FEC encoding.
- the process of splicing each message group by the processor is the same as the process of splicing each message group by the target hardware engine.
- the embodiment of the present application performs splicing processing on each message group by the processor. The process will not be repeated.
- Step 207 is described as follows:
- the target hardware engine can obtain the encoding parameters from the encoding task, and assume that the amount of packets to be encoded in the encoding parameters is Q, the amount of redundant packets is R, and the target size is L, where Q And R are both positive integers, L is a value greater than 0, the amount of redundant messages R is the number of redundant messages obtained after FEC encoding Q messages to be coded, and Q original messages to be coded Including the first message among multiple original messages and the equal-length data block.
- the target hardware engine may acquire the first message from the memory according to the storage address of the first message carried by the encoding task, and use the acquired first message and the equal-length data block obtained in step 206 as the message to be encoded.
- the target hardware engine can first compose Q messages to be encoded into a Q*L matrix to be encoded, and each row of the matrix to be encoded is a data block of equal length or a first message; the target hardware engine is based on the amount of messages to be encoded Q and Redundant message volume R, construct a generator matrix of (Q+R)*Q, the generator matrix is composed of the first sub-matrix and the second sub-matrix, where the first sub-matrix is the identity matrix of Q*Q, and the second The sub-matrix is the Cauchy matrix of R*Q.
- the element in the i-th row and j-th column in the second sub-matrix is
- x i-1 and y i-1 and sum are all elements in the galois field (GF) (2 w ), where i and j are integers greater than or equal to 0, and w can be 8;
- the target hardware engine performs multiplication calculation on the generator matrix and the matrix to be encoded to obtain the encoding matrix of (Q+R)*L, where the encoding matrix includes the matrix to be encoded and the check matrix of R*L.
- Each line has a redundant message.
- the process shown in steps 205-207 is also a process in which the target hardware engine performs splicing processing on each packet group according to the encoding task.
- this step 207 may be executed by the processor.
- the step 208 is described as follows:
- step 208 when the size of each spliced message in the at least one spliced message is equal to the size of the first message, the at least one message can be regarded as an equal-length data block. Therefore, the target hardware engine This step 208 can be executed directly. In a possible implementation manner, when the first network device encodes multiple original messages through the processor, this step 207 may be executed by the processor.
- the target hardware engine When the target hardware engine obtains the at least one redundant message, it stores the at least one redundant message in the memory, and sends an encoding completion message to the processor.
- the encoding completion message may carry information about the at least one redundant message.
- the address is stored so that the processor can obtain the at least one redundant message from the memory.
- the target engine directly sends the at least one redundant message to the processor, and the implementation of this application does not specifically limit the manner in which the processor obtains the at least one redundant message.
- the processor can obtain the original message in each message group from the memory, and perform splicing processing on each message group to obtain at least one spliced message.
- the size of any spliced message in the at least one spliced message is less than
- the size of the first message is the same, at least one spliced message is filled to obtain a data block of equal length, and the first message of the multiple original messages is obtained from the memory.
- the target hardware engine can also directly send the equal-length data block and the first message to the processor, and the embodiment of the present application does not specifically limit the manner in which the processor obtains the equal-length data block and the first message.
- the processor After the processor obtains the equal-length data block, the first message, and at least one redundant message, it adds an FEC header to each data block in the equal-length data block and the first message to obtain multiple original FEC message, and add an FEC message header to each redundant message to obtain at least one redundant FEC message, and the FEC message header carries coding parameters.
- the FEC message in the schematic diagram of an FEC message provided by the embodiment of the application shown in FIG. 8, the FEC message includes the FEC message and the load message.
- the FEC message is an original FEC message
- the FEC message is a redundant FEC message
- the FEC message header is used to indicate the encoding conditions of the multiple original messages.
- the FEC packet header carries multiple encoding parameters of the original packet. For example, the FEC packet header in FIG. 8 carries the amount of packets to be encoded, the amount of redundant packets, and the target size.
- the FEC packet header may also carry the target identifiers of the multiple original packets, and the target identifier is used to indicate the number of times the data streams to which the multiple original packets belong is encoded.
- the FEC packet header can also carry the sequence number of the multiple original packets in the data stream (that is, the original sequence number of the original packet before splicing), the size of the original packet, and the length of each first packet.
- the sequence number of each data block in the matrix to be coded in the data block, the sequence number of each redundant message in the coding matrix, and the target splicing identifier corresponding to each data block, the target splicing identifier is used to indicate the data
- the block is a spliced data block.
- the processor After the processor obtains the original FEC message and the redundant FEC message, it may send the original FEC message and the redundant FEC message to the second network device.
- the target hardware engine can directly encapsulate the first message and the equal-length data block into the original FEC message, encapsulate the redundant message into a redundant FEC message, and send it to the second network device Send original FEC messages and redundant FEC messages.
- Figure 9 illustrates the exchange of internal modules when the first network device performs FEC encoding on multiple original messages.
- Step 901 Whenever the network interface receives an original message from the network, it sends the original message to the PPE.
- Step 902 The PPE writes the received original message into the memory.
- Step 903 The PPE sends the storage completion message of the original message to the NP to notify the NP to process the original message in the memory.
- Step 904 After receiving the storage completion message, the NP analyzes the original message to determine whether the original message needs encoding, and if encoding is required, the NP sends an encoding notification message of the original message to the CPU.
- the CPU can send the encoding completion message to the FEC software module through the protocol stack and the UDP proxy.
- the specific process is described in the above step 2012, and will not be repeated here.
- Step 905 After the FEC software module in the CPU collects the encoding notification message of the second target number, it is equivalent to that the FEC software module collects all the original messages of the second target number that need to be encoded. The FEC software module is based on the second target number. In the original message of the second target number, the encoding task of the original message of the second target number is sent to the target hardware engine.
- the encoding task is equivalent to a notification message, informing the target hardware processor to perform FEC encoding according to the encoding task.
- Step 906 The target hardware engine obtains the second target number of original messages from the memory according to the encoding task, and performs FEC encoding on the second target number of original messages to obtain at least one redundant message.
- step 906 is the same as the process shown in steps 205-207.
- the embodiment of the present application does not repeat the process shown in this step 906.
- Step 907 The target hardware engine writes at least one redundant message into the memory, and sends the storage address of the at least one redundant message to the FEC software module, so that the outgoing FEC software module obtains at least one redundant message and sends it to the first 2.
- the network device sends a second target number of original messages and at least one redundant message.
- the FEC software module may be deployed in the NP, and may also be deployed in the CPU.
- the embodiment of the present application does not specifically limit the deployment manner of the FEC software module.
- the original messages other than the largest first message among the multiple original messages are spliced, and only when the spliced message size is smaller than the maximum message size , The spliced message will be filled without filling every other original message. Therefore, the filled equal-length data block contains less data, which reduces the time required for FEC encoded message transmission.
- the occupied network bandwidth avoids the waste of network resources.
- FIG. 10 is a flow chart of encoding and decoding provided in an embodiment of this application. The process includes the following steps 1001-1006.
- Step 1001 After the FEC software module in the first network device collects the second target number of original messages, it determines the second target number of original messages according to the second target number of original messages. One message and at least one message group, and send an encoding task to the target hardware engine.
- the UDP agent collects the original packets in the data stream sent by the first terminal, and sends the storage address of the collected original packets and the size of the original packets to the FEC software module.
- the FEC software module receives After the storage address and size of the original message of the second target number, this step 1001 is executed.
- the number of the second target as 6 as an example, when the FEC software module collects the storage address and size of the original message 1-6 from the UDP agent, it means that the FEC software module has collected 6 original messages, and the FEC software module will
- the original messages 1 and 6 are respectively used as the first messages, the original messages 2 and 4 are divided into message group 1, and the original messages 3 and 5 are divided into message group 2.
- the FEC software module can also splice the original messages 2 and 4 into splicing message 1, and the FEC software module can also splice the original messages 3 and 5 into splicing message 2.
- the size of any spliced message is smaller than the original
- any splicing message is filled to obtain a filling message, otherwise, any splicing message is not filled.
- the size of any spliced message is the size of original message 3 as an example.
- the FEC software module uses original messages 1 and 6 and spliced messages 1-2 as a matrix to be encoded.
- the original message in the matrix to be encoded is recorded as message 1
- the spliced message 1-2 is recorded as message 2-3 in the matrix to be encoded
- the original message 6 is recorded as message 4 in the matrix to be encoded.
- Step 1002 The target hardware engine obtains the matrix to be encoded formed by the original messages 1 and 6 and the spliced messages 1-2 according to the address set in the encoding task, and constructs the corresponding generating matrix according to the encoding parameters in the encoding task, and according to
- the matrix to be encoded and the generator matrix are FEC encoded to obtain redundant messages a, b, and c, and the redundant messages a, b, and c are stored in the memory, and the redundant messages a, b, and c are The storage address is sent to the FEC software module.
- Step 1003 The FEC software module obtains redundant packets a, b, and c from the memory according to the storage addresses of redundant packets a, b, and c, and adds them to packets 1-4 and redundant packets ac respectively
- One FEC message header obtains multiple FEC messages, and sends the encoded stream composed of the FEC messages to the UDP proxy, and the UDP proxy sends the encoded stream to the second network device through the WAN.
- Step 1004 The UDP proxy of the second network device receives the encoded stream, and packets 1 and 3 in the encoded stream are lost.
- the FEC software module of the second network device collects packets 2, 4 and redundant packets a, b
- the FEC software module issues a decoding task to the target hardware engine in the second network device.
- the decoding task carries packets 2, 4 and any of the redundant packets a, b, and c.
- the storage addresses and decoding parameters of the two redundant messages, where the decoding parameters include the number of messages with missing coding parameters, the position of the missing messages in the coding matrix, and the target size.
- Step 1005 According to the storage address in the decoding task, the target hardware engine obtains packets 2, 4 and any two redundant packets among redundant packets a, b, and c from the memory, and combines packets 2, 4 and redundant packets. Any two redundant packets of the remaining packets a, b, and c form the matrix to be decoded.
- the target hardware engine constructs the corresponding decoding matrix according to the decoding parameters.
- the target hardware engine performs FEC decoding based on the matrix to be decoded and the decoding matrix, and the loss is obtained.
- the messages 1 and 3 are stored in the memory, and the storage addresses of messages 1 and 3 are sent to the FEC software module.
- Step 1006 The FEC software module obtains the storage addresses of the original message 1 and the spliced message 1 from the memory according to the storage addresses of the original message 1 and the spliced message 1, and obtains the original message 2 and the spliced message 2 from the spliced message.
- Split message 1 into original messages 2 and 3, split message 3 and 5 from splicing message 2 restore the sequence of original messages 1-6 in the data stream, and send the original messages to the UDP proxy in order 1-6, forming a data stream, and the UDP proxy sends the data stream to the second terminal.
- FIG. 11 is a schematic structural diagram of a message processing apparatus provided by an embodiment of the present application.
- the apparatus 1100 includes:
- the processor 1101 is configured to execute the above step 201;
- the processor 1101 is further configured to splice other original messages among the plurality of original messages except the first message according to the size of the first message among the plurality of original messages Processing to obtain at least one spliced message, where the first message is the message with the largest amount of data among the multiple original messages;
- the processor 1101 is further configured to perform padding processing on the at least one spliced message when the size of any spliced message in the at least one spliced message is smaller than the size of the first message to obtain A long data block, the size of each data block in the equal-length data block is the size of the first message;
- the processor 1101 is further configured to perform forward error correction FEC encoding processing on the first message and the equal-length data block to obtain at least one redundant message.
- the device further includes a memory for storing program instructions.
- the processor 1101 may be a CPU, configured to run instructions stored in the memory, and used to implement the message processing method shown in FIG. 2.
- the processor 1101 is configured to:
- the message processing apparatus further includes a target hardware engine 1102;
- the processor 1101 is further configured to execute the above steps 202-203;
- the target hardware engine 1102 is used to execute step 205 described above.
- the processor 1101 is configured to:
- each of the multiple original messages sort the multiple original messages to obtain the order i of each original message, where i is an integer greater than or equal to zero, where the order is 0
- the original message is the first message
- the j-th target message group and the order of i are merged into the i-th target message group, the target size is the size of the first message, and the j-th target message group is the smallest-order message group among at least one target message group , And the order of the j-th target message group is j, and the sum of the size of each message group in the at least one target message group and the size of the original message whose order is i is less than or equal to the Target size, 0 ⁇ j ⁇ i;
- each remaining target message group is used as a message group in the at least one message group.
- the processor 1101 is further configured to:
- each message group is spliced, and the first target number is the dimension of the matrix to be coded when FEC coding is performed once; or,
- the second target number is the preset number of original messages used for performing FEC encoding once.
- the processor 1101 is further configured to:
- each spliced message in the at least one spliced message is equal to the size of the first message, perform forward error correction FEC encoding on the first message and the at least one spliced message Processing, at least one redundant message is obtained.
- the target hardware engine 1101 is also used to execute step 208 above.
- the message processing device When the message processing device provided in the above embodiment processes a message, it only uses the division of the above-mentioned functional modules as an example. In actual applications, the above-mentioned function allocation can be completed by different functional modules as required, that is, the device The internal structure is divided into different functional modules to complete all or part of the functions described above.
- the message processing method embodiments provided in the foregoing embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.
- the program can be stored in a computer-readable storage medium.
- the storage medium mentioned can be a read-only memory, a magnetic disk or an optical disk, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
Claims (11)
- 一种报文处理方法,其特征在于,所述方法包括:获取多个原始报文;根据所述多个原始报文中的第一报文的大小,将所述多个原始报文中除所述第一报文以外的其他原始报文进行拼接处理,得到至少一个拼接报文,所述第一报文为所述多个原始报文中最大的报文;当所述至少一个拼接报文中任一拼接报文的大小小于所述第一报文的大小时,对所述至少一个拼接报文进行填充处理,得到等长数据块,所述等长数据块中每个数据块的大小为所述第一报文的大小;将所述第一报文和所述等长数据块做前向纠错FEC编码处理,得到至少一个冗余报文。
- 根据权利要求1所述的方法,其特征在于,所述根据所述多个原始报文中的第一报文的大小,将所述多个原始报文中除所述第一报文以外的其他原始报文进行拼接处理,得到至少一个拼接报文包括:根据所述多个原始报文中的第一报文的大小,对所述多个原始报文中除所述第一报文以外的其他原始报文进行分组,得到至少一个报文组,每个报文组包括至少一个原始报文,每个报文组中所有原始报文的大小之和小于或等于所述第一报文的大小;对每个报文组进行拼接处理,得到所述至少一个拼接报文,每个拼接报文对应一个报文组。
- 根据权利要求1所述的方法,其特征在于,所述根据所述多个原始报文中的第一报文的大小,将所述多个原始报文中除所述第一报文以外的报文进行拼接处理,得到至少一个拼接报文包括:处理器根据所述多个原始报文中的第一报文的大小,对所述多个原始报文中除所述第一报文以外的其他原始报文进行分组,得到至少一个报文组,并根据所述至少一个报文组,生成编码任务,所述编码任务包括每个报文组的地址信息;目标硬件引擎根据所述编码任务,对每个报文组进行拼接处理,得到所述至少一个拼接报文。
- 根据权利要求1所述的方法,其特征在于,所述对每个报文组进行拼接处理,得到所述至少一个拼接报文包括:当所述至少一个报文组的个数与所述多个原始报文中第一报文的个数之和达到第一目标个数,且所述至少一个报文组中不能再添加所述多个原始报文以外的其他原始报文时,对每个报文组进行拼接处理,所述第一目标个数为进行一次FEC编码时待编码矩阵的维数;或,当所述多个原始报文的个数等于第二目标个数,且将所述第二目标个数的原始报文划分为至少一个报文组时,对每个报文组进行拼接处理,所述第二目标个数为预设的用于进行一次FEC编码的原始报文的个数。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述至少一个拼接报文中每个拼接报文的大小均等于所述第一报文的大小时,将所述 第一报文和所述至少一个拼接报文做FEC编码处理,得到至少一个冗余报文。
- 一种报文处理装置,其特征在于,所述装置包括:处理器,用于获取多个原始报文;所述处理器,还用于根据所述多个原始报文中的第一报文的大小,将所述多个原始报文中除所述第一报文以外的其他原始报文进行拼接处理,得到至少一个拼接报文,所述第一报文为所述多个原始报文中数据量最大的报文;所述处理器,还用于当所述至少一个拼接报文中任一拼接报文的大小小于所述第一报文的大小时,对所述至少一个拼接报文进行填充处理,得到等长数据块,所述等长数据块中每个数据块的大小为所述第一报文的大小;所述处理器,还用于将所述第一报文和所述等长数据块做前向纠错FEC编码处理,得到至少一个冗余报文。
- 根据权利要求6所述的装置,其特征在于,所述处理器用于:根据所述多个原始报文中的第一报文的大小,对所述多个原始报文中除所述第一报文以外的其他原始报文进行分组,得到至少一个报文组,每个报文组包括至少一个原始报文,每个报文组中所有原始报文的大小之和小于或等于所述第一报文的大小;对每个报文组进行拼接处理,得到所述至少一个拼接报文,每个拼接报文对应一个报文组。
- 根据权利要求7所述的装置,其特征在于,所述装置还包括目标硬件引擎;所述处理器,还用于根据所述多个原始报文中的第一报文的大小,对所述多个原始报文中除所述第一报文以外的其他原始报文进行分组,得到至少一个报文组,并根据所述至少一个报文组,生成编码任务,所述编码任务包括每个报文组的地址信息;所述目标硬件引擎,用于根据所述编码任务,对每个报文组进行拼接处理,得到所述至少一个拼接报文。
- 根据权利要求7所述的装置,其特征在于,所述处理器还用于:当所述至少一个报文组的个数与所述多个原始报文中第一报文的个数之和达到第一目标个数,且所述至少一个报文组中不能再添加所述多个原始报文以外的其他原始报文时,对每个报文组进行拼接处理,所述第一目标个数为进行一次FEC编码时待编码矩阵的维数;或,当所述多个原始报文的个数等于第二目标个数,且将所述第二目标个数的原始报文划分为至少一个报文组时,对每个报文组进行拼接处理,所述第二目标个数为预设的用于进行一次FEC编码的原始报文的个数。
- 根据权利要求8所述的装置,其特征在于,所述处理器还用于:当所述至少一个拼接报文中每个拼接报文的大小均等于所述第一报文的大小时,将所述第一报文和所述至少一个拼接报文做前向纠错FEC编码处理,得到至少一个冗余报文。
- 一种计算机可读存储介质,其特征在于,所述存储介质中存储指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求5任一项所述的报文处理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20863129.1A EP3993294A4 (en) | 2019-09-10 | 2020-09-10 | DEVICE AND METHOD FOR PROCESSING PACKETS AND COMPUTER STORAGE MEDIA |
KR1020227004719A KR20220029751A (ko) | 2019-09-10 | 2020-09-10 | 패킷 처리 방법 및 장치, 그리고 컴퓨터 저장 매체 |
MX2022002529A MX2022002529A (es) | 2019-09-10 | 2020-09-10 | Metodo y aparato de procesamiento de paquete, y medio de almacenamiento en computadora. |
JP2022515555A JP7483867B2 (ja) | 2019-09-10 | 2020-09-10 | パケット処理方法及び装置、及びコンピュータ記憶媒体 |
US17/679,758 US11683123B2 (en) | 2019-09-10 | 2022-02-24 | Packet processing method and apparatus, and computer storage medium |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854179.X | 2019-09-10 | ||
CN201910854179 | 2019-09-10 | ||
CN201911207236.1A CN112564856A (zh) | 2019-09-10 | 2019-11-29 | 报文处理方法、装置以及计算机可读存储介质 |
CN201911207236.1 | 2019-11-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/679,758 Continuation US11683123B2 (en) | 2019-09-10 | 2022-02-24 | Packet processing method and apparatus, and computer storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021047612A1 true WO2021047612A1 (zh) | 2021-03-18 |
Family
ID=74866584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/114600 WO2021047612A1 (zh) | 2019-09-10 | 2020-09-10 | 报文处理方法、装置以及计算机存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11683123B2 (zh) |
EP (1) | EP3993294A4 (zh) |
JP (1) | JP7483867B2 (zh) |
KR (1) | KR20220029751A (zh) |
MX (1) | MX2022002529A (zh) |
WO (1) | WO2021047612A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656593A (zh) * | 2009-09-15 | 2010-02-24 | 中国人民解放军国防科学技术大学 | 前向纠错编码方法、前向纠错译码方法及其装置 |
CN101662335A (zh) * | 2009-09-15 | 2010-03-03 | 中国人民解放军国防科学技术大学 | 前向纠错编码方法、前向纠错译码方法及其装置 |
CN101667887A (zh) * | 2009-09-02 | 2010-03-10 | 中兴通讯股份有限公司 | 编码方法及其装置、解码方法及其装置 |
WO2015135120A1 (zh) * | 2014-03-11 | 2015-09-17 | 华为技术有限公司 | 端到端的网络QoS控制系统、通信设备和端到端的网络QoS控制方法 |
CN108650061A (zh) * | 2018-04-24 | 2018-10-12 | 达闼科技(北京)有限公司 | 基于fec的vpn代理方法、装置、存储介质和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524001A (en) * | 1994-02-07 | 1996-06-04 | Le Groupe Videotron Ltee | Dynamic cable signal assembly |
US7218632B1 (en) | 2000-12-06 | 2007-05-15 | Cisco Technology, Inc. | Packet processing engine architecture |
JP2006217530A (ja) | 2005-02-07 | 2006-08-17 | Mitsubishi Electric Corp | データ伝送システム、送信側端末装置、受信側端末装置、データ送信プログラム及びデータ受信プログラム |
JP4485383B2 (ja) | 2005-03-03 | 2010-06-23 | 日本電信電話株式会社 | データ送受信システム及びデータ送信装置 |
ATE410874T1 (de) * | 2005-09-20 | 2008-10-15 | Matsushita Electric Ind Co Ltd | Vefahren und vorrichtung zur packetsegmentierung und verknüpfungssignalisierung in einem kommunikationssystem |
US8483125B2 (en) * | 2007-04-27 | 2013-07-09 | Intellectual Ventures Holding 81 Llc | Multiplexing packets in high speed downlink packet access (HSDPA) communications |
KR101829923B1 (ko) * | 2011-10-13 | 2018-02-22 | 삼성전자주식회사 | 데이터 통신 시스템에서 부호화 장치 및 방법 |
US10003434B2 (en) * | 2016-04-08 | 2018-06-19 | Cisco Technology, Inc. | Efficient error correction that aggregates different media into encoded container packets |
US11272391B2 (en) | 2017-02-03 | 2022-03-08 | Apple Inc. | Concatenation of service data units above a packet data convergence protocol layer |
-
2020
- 2020-09-10 WO PCT/CN2020/114600 patent/WO2021047612A1/zh unknown
- 2020-09-10 EP EP20863129.1A patent/EP3993294A4/en active Pending
- 2020-09-10 KR KR1020227004719A patent/KR20220029751A/ko active IP Right Grant
- 2020-09-10 JP JP2022515555A patent/JP7483867B2/ja active Active
- 2020-09-10 MX MX2022002529A patent/MX2022002529A/es unknown
-
2022
- 2022-02-24 US US17/679,758 patent/US11683123B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667887A (zh) * | 2009-09-02 | 2010-03-10 | 中兴通讯股份有限公司 | 编码方法及其装置、解码方法及其装置 |
CN101656593A (zh) * | 2009-09-15 | 2010-02-24 | 中国人民解放军国防科学技术大学 | 前向纠错编码方法、前向纠错译码方法及其装置 |
CN101662335A (zh) * | 2009-09-15 | 2010-03-03 | 中国人民解放军国防科学技术大学 | 前向纠错编码方法、前向纠错译码方法及其装置 |
WO2015135120A1 (zh) * | 2014-03-11 | 2015-09-17 | 华为技术有限公司 | 端到端的网络QoS控制系统、通信设备和端到端的网络QoS控制方法 |
CN108650061A (zh) * | 2018-04-24 | 2018-10-12 | 达闼科技(北京)有限公司 | 基于fec的vpn代理方法、装置、存储介质和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20220029751A (ko) | 2022-03-08 |
US20220182180A1 (en) | 2022-06-09 |
JP7483867B2 (ja) | 2024-05-15 |
EP3993294A1 (en) | 2022-05-04 |
EP3993294A4 (en) | 2022-09-07 |
MX2022002529A (es) | 2022-04-01 |
US11683123B2 (en) | 2023-06-20 |
JP2022547179A (ja) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9158806B2 (en) | Integrity checking and selective deduplication based on network parameters | |
Wu | Existence and construction of capacity-achieving network codes for distributed storage | |
US6320520B1 (en) | Information additive group code generator and decoder for communications systems | |
US6701479B2 (en) | Fast cyclic redundancy check (CRC) generation | |
MX2014013560A (es) | Aparato y metodo de transmision y recepcion de paquete en sistema de radiofusion y comunicacion. | |
WO2020210779A2 (en) | Coded data chunks for network qualitative services | |
EP3497839A2 (en) | Method and apparatuse for coding and decoding polar codes | |
CN111291770A (zh) | 一种参数配置方法及装置 | |
CN114513418A (zh) | 一种数据处理方法及相关设备 | |
KR101314301B1 (ko) | 통신 네트워크에서 데이터를 인코딩하기 위한 방법 및 장치 | |
RU2646346C2 (ru) | Устройство и способ передачи и приема пакета с прямой коррекцией ошибок | |
WO2021047612A1 (zh) | 报文处理方法、装置以及计算机存储介质 | |
CN105763375A (zh) | 一种数据包发送方法、接收方法及微波站 | |
CN112564856A (zh) | 报文处理方法、装置以及计算机可读存储介质 | |
US20230057487A1 (en) | Data packet format to communicate across different networks | |
CN114157716B (zh) | 基于区块链的数据处理方法、装置和电子设备 | |
KR20210022102A (ko) | 데이터 송신 방법, 송신 장치, 데이터 수신 방법 및 수신 장치 | |
CN112564855A (zh) | 报文处理方法、装置以及芯片 | |
WO2021047606A1 (zh) | 报文处理方法、装置以及芯片 | |
KR100605117B1 (ko) | Wcdma 패킷 과금 데이터 처리 방법 및 시스템 | |
Cabrera-Medina et al. | Video transmission in multicast networks using network coding | |
Li et al. | Design and implementation of multimedia file transfer System using fountain codes technology on Android | |
CN117440067A (zh) | 获取微观特征的方法、装置、设备及计算机可读存储介质 | |
Jamali et al. | Encoding and Compressing Data for Decreasing Number of Switches in Baseline Networks | |
CN116527202A (zh) | 数据传输的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20863129 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020863129 Country of ref document: EP Effective date: 20220127 |
|
ENP | Entry into the national phase |
Ref document number: 20227004719 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2022515555 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |