WO2022228467A1 - Data transmission method and apparatus, and readable storage medium - Google Patents

Data transmission method and apparatus, and readable storage medium Download PDF

Info

Publication number
WO2022228467A1
WO2022228467A1 PCT/CN2022/089568 CN2022089568W WO2022228467A1 WO 2022228467 A1 WO2022228467 A1 WO 2022228467A1 CN 2022089568 W CN2022089568 W CN 2022089568W WO 2022228467 A1 WO2022228467 A1 WO 2022228467A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
packet
packets
data packets
data packet
Prior art date
Application number
PCT/CN2022/089568
Other languages
French (fr)
Chinese (zh)
Inventor
谭志远
董朋朋
刘菁
祝慧颖
朱元萍
徐小英
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022228467A1 publication Critical patent/WO2022228467A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a data transmission method, an apparatus, and a readable storage medium.
  • Network coding technology is a method of obtaining encoded data packets (referred to as encoded packets) by encoding several data packets of the same size, and recovering the original data packets by decoding enough encoded data packets. Because the encoded data packet combines the information of several original data packets, the receiving end can use the encoded data packet to restore the original data packet. This technology is a method that can effectively improve the transmission performance of wireless communication systems.
  • network coding technology is a forward error correction technology, it can reduce feedback overhead by encoding original data packets and adding redundancy in advance to combat packet loss or performance loss in wireless transmission, so network coding is a new A generation of wireless access technology provides a different solution to ensure transmission reliability.
  • the network coding technology requires the size of the original data to be the same, in the existing NR protocol, the size of the service data unit (SDU) or protocol data unit (PDU) corresponding to any layer cannot be The guarantees are the same, so existing NR protocols cannot support network coding techniques.
  • SDU service data unit
  • PDU protocol data unit
  • the embodiments of the present application provide a data transmission method, an apparatus, and a readable storage medium, so that the network coding technology can also be applied in scenarios that do not depend on the size of the SDU or PDU.
  • the present application provides a data transmission method, the method includes: a first device acquires N first data packets, and then transmits the acquired N first data packets; After encoding the first data packets and adding the encoded packet header, M second data packets are obtained, and the M second data packets are transmitted.
  • the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. In other words, the header of each first data packet includes the mapping relationship between the data of the first data packet and the data unit.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the packet header of each first data packet further includes a data packet identification field, which is used to indicate the sequence number of the first data packet.
  • the encoded packet header includes an encoding factor field.
  • the first data packet is an original data packet, and the second data packet is an encoded packet.
  • N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be smaller than N or larger than N.
  • the above data unit is PDU or SDU.
  • the first device is an encoding end or a transmitting end.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a user equipment (user equipment, UE).
  • a network device such as a base station
  • a terminal device such as a user equipment (user equipment, UE).
  • the correspondence between the N first data packets and the M second data packets may be predefined, or configured for the second device (ie, the receiving end).
  • the second device may be informed by carrying the corresponding relationship in the N first data packets and/or the M second data packets.
  • the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
  • Predefined in this application may be understood as defining, predefining, storing, pre-storing, pre-negotiating, pre-configuring, curing, or pre-firing.
  • this solution ensures low latency of the receiving end by directly sending the original data packet after obtaining the original data packet (ie, the above-mentioned first data packet).
  • network coding is performed on the original data packet, and the redundant coding packet (ie the above-mentioned second data packet) is sent after the network coding, because the coded data of the redundant coding packet can restore the original data packet (this is because the coded data is It is obtained from the original data packet after network coding), and the original data packet has complete header information, so even if multiple original data packets are lost during transmission, the original data packet can be recovered according to the redundant encoded packet, and then according to the The segmentation and concatenation information carried in the header of the original data packet is used to perform inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data.
  • this solution not only enables the network coding technology to be applied in scenarios that do not depend on the size of the SDU or PDU, so that the network coding technology can be supported in the existing NR protocol, and the delay can also be reduced.
  • PDUs or SDUs can be recovered even when multiple original data packets are lost, reducing performance loss and retransmission delay.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the present application provides a data transmission method.
  • the method includes: a second device obtains P data packets, decodes the P data packets, and obtains decoded N first data packets, the The P data packets include K first data packets and P-K second data packets.
  • each first data packet includes a packet header and data.
  • the packet header of each first data packet includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet.
  • Each second data packet includes an encoded packet header and encoded data.
  • the encoded packet header of each second data packet includes an encoding factor field.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet.
  • the header of each first data packet includes the mapping relationship between the data of the first data packet and the data unit.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • P, K, and N are all positive integers, P is greater than or equal to N, K is less than or equal to P, and K is less than or equal to N.
  • the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the above data unit is PDU or SDU.
  • the second device is a decoding end or a receiving end.
  • the second device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • the correspondence between the N first data packets and the M second data packets may be predefined, or obtained from the sending end.
  • the corresponding relationship may be carried in the N first data packets and/or the M second data packets.
  • the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
  • the corresponding relationship is carried in the packet headers of the M second data packets.
  • the corresponding relationship is indicated by the identification information used to indicate the N first data packets from which the second data packet is obtained by encoding.
  • Predefined in this application may be understood as defining, predefining, storing, pre-storing, pre-negotiating, pre-configuring, curing, or pre-firing.
  • decoding the P data packets to obtain N first data packets after decoding including: according to the length of each data packet in the P data packets And the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt the analytical mode of the original data packets to parse the K first data packets of each first data packet.
  • the sequence number and the indication of the coding factor field in the packet header of the P-K second data packets form a coefficient factor matrix; use the coefficient factor matrix to carry out the coding data of the P-K second data packets and the K first data packets.
  • Joint decoding is performed to obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
  • the decoded N-K first data packets and the K first data packets belong to the N first data packets.
  • the corresponding relationship between the N first data packets and the M second data packets is carried in the N first data packets and/or the M second data packets.
  • the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
  • the headers of the M second data packets may include identification information for indicating the N first data packets from which the second data packets are encoded to indicate the corresponding relationship.
  • the length of the second data packet is longer than that of the first data packet.
  • whether the data packet is the first data packet or the second data packet can be determined based on the length of the data packet.
  • the length threshold can be set to distinguish the first data packet from the second data packet.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • determining K first data packets and P-K second data packets from the P data packets including: comparing each of the P data packets The size relationship between the length of each data packet and the encoded packet length threshold L1; if the length of a data packet in the P data packets is equal to the encoded packet length threshold L1, then it is determined that the data packet is the second data packet (encoded packet ); if the length of a certain data packet in the P data packets is less than the coded packet length threshold L1, then determine that the data packet is the first data packet (original data packet); thus determine K from the P data packets first data packets and P-K second data packets.
  • the above-mentioned length threshold is the original data packet length threshold L2.
  • determining K first data packets and P-K second data packets from the P data packets including: comparing each of the P data packets The length of each data packet is related to the size of the original data packet length threshold L2; if the length of a data packet in the P data packets is less than or equal to the original data packet length threshold L2, it is determined that the data packet is the first data packet packet (original data packet); if the length of a certain data packet in the P data packets is greater than the original data packet length threshold L2, it is determined that the data packet is the second data packet (encoded packet); thus from the P data packets K first data packets and P-K second data packets are determined in the packets.
  • the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet header of each second data packet includes second indication information for indicating that the second data packet where the second indication information is located is an encoded packet .
  • first indication information which is used to indicate that the first data packet where the first indication information is located is the original data packet
  • each second data packet includes an encoded packet header and encoded data
  • the encoded packet header of each second data packet includes second indication information for indicating that the second data packet where the second indication information is located is an encoded packet .
  • the segmentation and concatenation information can be recovered to recover the PDU/SDU, thereby reducing performance loss and retransmission delay.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device.
  • the data transmission device includes: an acquisition module for acquiring N first data packets, the N first data packets are of equal size, each first data packet includes a packet header and data, and the packet header of each first data packet Including segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit, each of the The packet header of the first data packet also includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet; the transmission module is used to transmit the N first data packets obtained by the acquisition module; encoding module, used to encode the N first data packets obtained by the acquisition module and add the encoded packet header to obtain M second data packets, and the encoded packet header includes a coding factor field; the transmission module
  • the above data unit is PDU or SDU.
  • the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, the encoded packet header of each second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device.
  • the data transmission device includes: an acquisition module for acquiring P data packets, the P data packets include K first data packets and P-K second data packets, each first data packet includes a packet header and data, and the P data packets include K first data packets and P-K second data packets.
  • the packet header of each first data packet includes a data packet identification field, the data packet identification field is used to indicate the sequence number of the first data packet, each second data packet includes an encoded packet header and encoded data, and each second data packet includes an encoded packet header and encoded data.
  • the encoded packet header of the data packet includes an encoding factor field; the decoding module is used for decoding the P data packets to obtain N first data packets after decoding, and the N first data packets are equal in size,
  • the header of each first data packet further includes segmentation and concatenation information of at least one data unit corresponding to the data part of the first data packet, where the segmentation and concatenation information is used to indicate that the data of the first data packet is the same as the data of the first data packet.
  • the corresponding relationship of at least one data unit; the restoration module is used to restore the data of the N first data packets into a at least one data unit.
  • the first data packet is an original data packet, and the second data packet is an encoded packet. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
  • the above data unit is PDU or SDU.
  • the above-mentioned decoding module is specifically used to: determine K from the P data packets according to the length and the length threshold of each data packet in the P data packets The first data packet and P-K second data packets; the packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the encoding
  • the analysis method of the package parses the encoded packet header of the second data packet in the P-K second data packets, and obtains the encoding factor field; according to the sequence number of the K first data packets and the P-K second data packets are encoded in the packet headers
  • the indication of the factor field forms a coefficient factor matrix; the encoded data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix, and the decoded N-K first data packets are obtained .
  • the rank of the coefficient factor matrix is equal to N.
  • the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; each The encoded packet header of the second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the decoding module can determine whether the data packet is an original data packet or an encoded packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method to parse the packet header of the data packet.
  • data of a first data packet includes one or more data segments, and one data segment includes all or part of a PDU/SDU.
  • the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU.
  • the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the arrangement of the data segments in the data of the first data packet can be arranged according to the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, and the PDU/SDU corresponding to the middle data segment.
  • the sequence number of the PDU/SDU increases in sequence, and the PDU/SDU with the largest sequence number is used as the last data segment.
  • the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may also be arranged out of order.
  • the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet
  • Block ID field is used to indicate the identification of the data block, which includes the Block ID field. in the first packet.
  • a plurality of first data packets of the second data packet can be obtained through the block identifier instruction encoding.
  • each data segment is the last data segment, and indicating its length for each data segment, this scheme is beneficial to the decoding end according to the instruction of the original data packet (that is, the above-mentioned first data packet).
  • the data (that is, the data of the above-mentioned first data packet) is segmented and concatenated to recover one or more PDUs/SDUs.
  • the above-mentioned segmentation and concatenation information includes: the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet segment) the sequence number of the corresponding data unit, or the maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating the i-th data included in the data of the first data packet whether the segment is the last data segment (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • this scheme can indicate the PDU/SDU from which the data segment in the data of the plurality of first data packets comes, so as to It enables the decoding end to recover different data segments into PDU/SDU.
  • the above-mentioned segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, the data of the first data packet). whether there is a next data segment after the first data segment in the information on whether the i-th data segment included in the data of the packet is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the i-th segment Information about the length of the data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • this scheme indicates whether the data unit corresponding to the start data segment and the end data segment in the data of the first data packet is complete, and sets a 1-bit extended bit field for each data segment to indicate whether the data segment is the last one. data segment, and set a length field for each data segment to indicate its length, which is helpful for the decoding end to segment and concatenate the original data according to the instruction of the original data packet header, so as to recover one or more PDU/SDU .
  • the above-mentioned segmentation and concatenation information includes: the above-mentioned segmentation and concatenation information includes: indicating the first data segment (or start data segment) in the data of the first data packet and/ Or information on whether the data unit corresponding to the last data segment (or end data segment) is divided, or indicates the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet information whether to be divided; information indicating the number of data segments included in the data of the first data packet; and information indicating the length of each data segment.
  • the above-mentioned segmentation and concatenation information may only include the length of each data segment in the D num ⁇ 1 data segments. , instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of the data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
  • this solution can save overhead by indicating the number of data segments included in the data of the first data packet, without indicating whether each data segment is the last data segment.
  • the encoded packet header of each second data packet includes identification information for indicating the N first data packets from which the second data packet is encoded.
  • the identification information used to indicate that the N first data packets obtained by encoding the second data packet is a block ID (Block ID) field or includes at least two of the following: information indicating the window length of the encoding window, the first in the encoding window The sequence number of the first data packet, and the sequence number of the last first data packet in the encoding window.
  • the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window.
  • the length of the coding factor field (such as the Coeff ID field) is 8 bits, which is used to indicate the row index of the codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field.
  • Type (Type) field is used to indicate the length of the data packet identification field, or is used to indicate the range of the sequence number of the data packet.
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • the coding packet header provided by this solution can either be redesigned, and its meaning is clear; it can also reuse the fields in the existing coding packet header, which can not only ensure the correct decoding of the decoding end, but also improve the compatibility. .
  • the sequence numbers of the first data packets are sequentially incremented.
  • the encoded packet header of each second data packet further includes the sequence number of the second data packet.
  • the sequence numbers of the second data packets are also sequentially incremented.
  • the encoded packet header of the encoded packet may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header.
  • the sequence number of the original data packet (ie, the first data packet) is sequentially numbered.
  • the serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated.
  • the serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other.
  • serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
  • the present application provides a data transmission method, the method comprising: a first device obtains N first data packets, encodes the N first data packets and adds an encoded packet header to obtain M second data packets A data packet, the header of the encoded packet includes an encoding factor field; the first device transmits the M second data packets.
  • the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • M is greater than N, and both N and M are positive integers.
  • the above data unit is PDU or SDU.
  • the first device is an encoding end or a transmitting end.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • the submatrix formed by the first N rows in the coding coefficient matrix used for encoding is an identity matrix
  • the submatrix formed by the last M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook. , Cauchy codebook, random codebook, etc. That is to say, the first N encoded data packets of the M encoded data obtained by using the encoding coefficient matrix only contain the information of a single original data packet, and the last M-N encoded data fuses the information of multiple original data packets.
  • this solution ensures that the size of the data packets transmitted by the first device is equal by encoding the original data packets instead of directly transmitting the original data packets (ie, the above-mentioned first data packets).
  • This solution also carries the packet header information in the original data packet, so even if multiple original data packets are lost during the transmission process, the original data packet can be recovered according to the encoded packet (that is, the above-mentioned second data packet), and then the original data packet can be recovered according to the The segmentation and concatenation information carried in the packet header performs the inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data.
  • this solution can support network coding technology in scenarios that do not depend on the size of SDU or PDU, that is, different SDU or PDU sizes can be the same or different, such as in the existing NR protocol, and even in multiple original data In the case of packet loss, PDU or SDU can also be recovered, reducing performance loss.
  • the present application provides a data transmission method, the method comprising: a second device obtains P data packets, decodes the P data packets, and obtains decoded N first data packets, the The P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field; wherein the N first data packets are of equal size, and each first data packet includes header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • P, N, and M are all positive integers, and P is greater than or equal to N and less than or equal to M, that is, N ⁇ P ⁇ M.
  • the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the above data unit is PDU or SDU.
  • the second device is a decoding end or a receiving end.
  • the second device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • decoding the P data packets to obtain the decoded N first data packets including: analyzing the P data packets by using the parsing method of the encoded packets
  • the coding packet header obtains the coding factor field carried by the header of each coding packet, and uses the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; using the coefficient factor matrix to encode the data of the P data packets
  • Decoding is performed to obtain N first data packets after decoding. Wherein, the rank of the coefficient factor matrix is equal to N.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device.
  • the data transmission device includes: an acquisition module for acquiring N first data packets, the N first data packets having the same size; an encoding module for encoding the N first data packets acquired by the acquisition module And after adding the coded packet header, M second data packets are obtained, and the coded packet header includes a coding factor field; the transmission module is used for transmitting the M second data packets.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • M is greater than N, and both N and M are positive integers.
  • the above data unit is PDU or SDU.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device.
  • the data transmission device includes: an acquisition module for acquiring P data packets, where the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field; decoding module, for decoding the P data packets obtained by the acquisition module, to obtain N first data packets after decoding; the restoring module, for each first data packet according to the N first data packets The segmentation and concatenation information included in the packet header of the packet restores the data of the N first data packets into at least one data unit. Wherein, the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • P is greater than or equal to N, where N is a positive integer and P is a positive integer.
  • the above data unit is PDU or SDU.
  • the above-mentioned decoding module is specifically configured to: analyze the encoded packet headers of the P data packets by using the parsing method of the encoded packets to obtain the encoding factor field carried by each encoded packet header, Use the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; use the coefficient factor matrix to decode the coded data of the P data packets, and obtain the decoded N first data packets .
  • the rank of the coefficient factor matrix is equal to N.
  • the data of one first data packet includes one or more data segments, and one data segment includes all or part of one PDU/SDU.
  • the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU.
  • the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the arrangement of the data segments in the data of the first data packet can be arranged according to the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, and the PDU/SDU corresponding to the middle data segment.
  • the sequence number of the PDU/SDU increases in sequence, and the PDU/SDU with the largest sequence number is used as the last data segment.
  • the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may also be arranged out of order.
  • the segmentation and concatenation information includes: the first data segment (or start data segment) and/or the last data in the data of the first data packet The sequence number of the data unit corresponding to the segment (or the end data segment), or the maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating that the data of the first data packet includes Whether the i-th data segment is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the length of the i-th data segment Information.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, the first data segment Information on whether there is a next data segment after the first data segment in the data of a data packet) and whether the data unit corresponding to the first data segment is complete (complete means not segmented, incomplete means segmented); Information indicating whether the i-th data segment included in the data of the first data packet is the last data segment (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the ith data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the segmentation and concatenation information includes: the segmentation and concatenation information includes: indicating the first data segment (or starting point) in the data of the first data packet data segment) and/or information on whether the data unit corresponding to the last data segment (or end data segment) is divided, or indicating the largest sequence number and/or sequence number in the data unit corresponding to the data segment in the data of the first data packet information on whether the data unit with the smallest number is divided; information indicating the number of data segments included in the data of the first data packet; and information indicating the length of each data segment.
  • the above-mentioned segmentation and concatenation information may only include the length of each data segment in the D num ⁇ 1 data segments. , instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of the data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
  • the M second data packets include N first-type encoding packets and M-N second-type encoding packets.
  • the coding coefficient sub-matrix of the first type of coding packet is an identity matrix
  • the coding coefficient sub-matrix of the second type of coding packet is a non-unitary matrix.
  • the coding coefficient sub-matrix of the coding packets of the first type and the coding coefficient sub-matrix of the coding packets of the second type form a coding coefficient matrix.
  • the encoding coefficient matrix is used to encode the N first data packets.
  • the encoded packet header of each second data packet in the above-mentioned M second data packets includes identification information for indicating the N first data packets obtained by encoding the second data packet.
  • the identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
  • the above-mentioned encoded packet header may further include one or more of the second indication information, a type (Type) field, and a Packet ID field.
  • the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the Type (Type) field is used to indicate the length of the data packet identification field, or is used to indicate the range of the sequence number of the data packet.
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • the sequence numbers of the first data packets are sequentially incremented.
  • the encoded packet header of each second data packet further includes the sequence number of the second data packet.
  • the sequence numbers of the second data packets are also sequentially incremented.
  • the encoded packet header of the encoded packet may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header.
  • the sequence number of the original data packet (ie, the first data packet) is sequentially numbered.
  • the serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated.
  • the serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other.
  • serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
  • the present application provides a data transmission method, the method comprising: a first device acquires a concatenated data packet, and generates N first data packets according to the concatenated data packet; the first device transmits the N first data packets; data packets; the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets; the second device transmits the M second data packets.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit.
  • Each of the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers, and the size relationship between M and N is not limited, and the value of j is an integer in the interval [1, N].
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the first device is an encoding end or a transmitting end.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • this scheme concatenates multiple PDUs/SDUs to obtain a concatenated data, and adds a concatenated packet header to obtain a concatenated data packet, and then divides the concatenated data packets into equal sizes to obtain a certain amount of original data.
  • this scheme does not need to add concatenated field indications to each original data packet, but uses a unified concatenated packet header to indicate the concatenated information, which can save the overhead of the packet header.
  • the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet of each second data packet further includes second indication information for indicating that the second data packet where the second indication information is located is encoded Bag.
  • the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains N first data packets after decoding, the The P data packets include K first data packets and N-K second data packets; the second device restores the data of the N first data packets into one according to the sequence number of the N first data packets Concatenate data packets, and divide the concatenated data into multiple data units according to the concatenation information of the multiple data units included in the concatenated data included in the packet header of the concatenated packet.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the concatenated data packet includes the concatenated packet header and the concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the first data packet is an original data packet, and the second data packet is an encoded packet. Both K and P are positive integers, and K is less than or equal to P. P is greater than or equal to N, and the value of j is an integer in the interval [1, N].
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the second device is a decoding end or a receiving end.
  • the second device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • decoding the P data packets to obtain N first data packets after decoding including: according to the length of each data packet in the P data packets And the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt the analytical mode of the original data packets to parse the K first data packets of each first data packet.
  • the sequence number and the indication of the coding factor field in the packet header of the P-K second data packets form a coefficient factor matrix; use the coefficient factor matrix to carry out the coding data of the P-K second data packets and the K first data packets.
  • Joint decoding is performed to obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
  • the decoded N-K first data packets and the K first data packets belong to the N first data packets.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • the above-mentioned length threshold is the original packet length threshold L2.
  • the corresponding relationship between the first data packet and the second data packet is carried in the first data packet and/or the second data packet.
  • the corresponding relationship may be carried in the header of the first data packet and/or the header of the second data packet.
  • the packet header of the second data packet may include identification information for indicating the N first data packets from which the second data packet is encoded to indicate the corresponding relationship.
  • the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the second indication information where the second indication information is located.
  • Packets are encoded packets.
  • the above decoding step it is possible to determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then adopt a corresponding parsing method for the packet header of the data packet. to parse.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device.
  • the data transmission device includes: an acquisition module for acquiring concatenated data packets; a generation module for generating N first data packets according to the concatenated data packets acquired by the acquisition module; and a transmission module for transmitting the generated data packets
  • the N first data packets generated by the module; the encoding module is used to encode the N first data packets generated by the generation module and add the encoded packet headers to obtain M second data packets; the transmission module is also used for The M second data packets are transmitted.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers. The value of j is an integer in the interval [1,N].
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the first location where the second indication information is located.
  • first indication information which is used to indicate that the first data packet where the first indication information is located is the original data packet
  • each second data packet includes an encoded packet header and encoded data
  • the encoded packet header of each second data packet includes second indication information
  • the second indication information is used to indicate the first location where the second indication information is located.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device.
  • the data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded to obtain the decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal; the restoration module, using to restore the data of the N first data packets into a concatenated data packet according to the sequence number order of the N first data packets; the segmentation module is also used for the concatenation according to the concatenated packet header included in the concatenated packet header.
  • the data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the concatenated data packet includes the concatenated packet header and the concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit.
  • Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • the value of j is an integer in the interval [1,N]. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the above-mentioned decoding module is specifically used to: determine K from the P data packets according to the length and the length threshold of each data packet in the P data packets A first data packet and P-K second data packets; analyze the packet header of each first data packet in the K first data packets by using the analysis method of the original data packet, obtain the serial number of the first data packet, and use
  • the parsing method of the encoded packet parses the encoded packet header of the second data packet in the P-K second data packets, and obtains the encoding factor field; according to the sequence number of the K first data packets and the P-K second data packets
  • the indication of the coding factor field constitutes a coefficient factor matrix; the coding data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix, and the decoded N-K first data packets are obtained Bag. Wherein, the rank of the coefficient factor matrix is equal to N.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • the above-mentioned length threshold is the original packet length threshold L2.
  • the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the first location where the second indication information is located.
  • first indication information which is used to indicate that the first data packet where the first indication information is located is the original data packet
  • each second data packet includes an encoded packet header and encoded data
  • the encoded packet header of each second data packet includes second indication information
  • the second indication information is used to indicate the first location where the second indication information is located.
  • the decoding module can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method to parse the packet header of the data packet .
  • the concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the last data segment) of the concatenated data. information on whether the data unit corresponding to a data segment) is divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; indicating that the concatenated data information on the number of data segments included in the data; and information indicating the length of each data segment included in the concatenated data.
  • the above-mentioned concatenated information may only include each data in the D num -1 data segments.
  • the length of the segment instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num ⁇
  • the length of 1 data segment is calculated.
  • D num represents the total number of data segments included in the concatenated data.
  • the concatenated packet header design provided by this solution has D num (that is, the number of data segments included in the concatenated data) length fields in the concatenated packet header to indicate the length of each data segment.
  • the header of the original data packet carries D num length fields, thereby saving header overhead.
  • the concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the last data segment) of the concatenated data. information on whether the data unit corresponding to a data segment) is divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; indicating that the concatenated data
  • the data includes information on whether the i-th data segment is the last data segment; and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • this solution provides a possible design of concatenated packet headers to carry concatenated information to support scenarios that do not depend on the size of SDU or PDU, that is, the size of different SDUs or PDUs can be the same or different.
  • network coding technology is applied.
  • the concatenation information includes: indicating whether the initial data segment in the concatenated data is the last data segment (or in other words, the first data segment in the concatenated data Whether there is a next data segment after the first data segment) and whether the data unit corresponding to the initial data segment is complete (complete means not segmented, incomplete means segmented); indicating the i-th data included in the concatenated data Information on whether the first data segment is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the concatenated data); and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • this scheme indicates whether the data segment is the last data segment for each data segment in the concatenated packet header, and indicates its length for each data segment, which is beneficial to the decoding end according to the indication of the concatenated packet header.
  • the concatenated data is segmented to recover multiple PDUs/SDUs.
  • the concatenated data includes data obtained by concatenating multiple complete data units and padding bits.
  • the above-mentioned concatenated packet header further includes padding information, and the padding information includes the length of the padding bits.
  • each data segment in the concatenated data of this scheme is a PDU/SDU.
  • the PDU/SDU can be obtained by dividing the concatenated data.
  • the encoding packet header further includes identification information for indicating the N first data packets from which the second data packet is encoded.
  • the identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
  • the encoding packet header provided by this solution can either be redesigned, and its meaning is clear; it can also reuse the fields in the original encoding packet header, and add a new field to indicate the type of the data packet (encoded packet or original data packets), not only can ensure the correct decoding of the decoding end, but also can improve the compatibility.
  • the sequence numbers of the first data packets are sequentially incremented.
  • the encoded packet header of each second data packet further includes the sequence number of the second data packet.
  • the sequence numbers of the second data packets are also sequentially incremented.
  • the encoded packet header of the encoded packet may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header.
  • the sequence number of the original data packet (ie, the first data packet) is sequentially numbered.
  • the serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated.
  • the serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other.
  • serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
  • the present application provides a data transmission method, the method includes: a first device acquires a concatenated data packet, and generates N first data packets according to the concatenated data packets, wherein the N first data packets are The data sizes are equal, and the header sizes of the N first data packets are equal; the first device then encodes the N first data packets and adds the encoded packet headers to obtain M second data packets, and the encoded packet headers include Coding factor field; the first device transmits the M second data packets.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating a plurality of data segments.
  • the concatenation packet header includes concatenation information of a plurality of data units included in the concatenated data.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the first data packet is an original data packet, and the second data packet is an encoded packet.
  • the value of j is an integer in the interval [1,N]. M is greater than N, and both N and M are positive integers.
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the first device is an encoding end or a transmitting end.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • the submatrix formed by the first N rows in the coding coefficient matrix used for encoding is an identity matrix
  • the submatrix formed by the last M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook. , Cauchy codebook, random codebook, etc. That is to say, among the M encoded data obtained by using the encoding coefficient matrix, the first N encoded data packets only contain information of a single original data packet, and the last M-N encoded data are fused with information of multiple original data packets.
  • this solution ensures that the size of the data packets transmitted by the first device is equal by encoding the original data packets instead of directly transmitting the original data packets (ie, the above-mentioned first data packets).
  • This solution also carries the packet header information in the original data packet, so even if multiple original data packets are lost during the transmission process, the original data packet can be recovered according to the encoded packet (that is, the above-mentioned second data packet), and then the original data packet can be recovered according to the The segmentation and concatenation information carried in the packet header performs inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data and reducing performance loss.
  • this solution does not need to add concatenated field indications to each original data packet, but uses a unified concatenated packet header to indicate concatenated information, which can save header overhead.
  • the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains the decoded N first data packets,
  • the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, the encoded packet header includes an encoding factor field, the data sizes of the N first data packets are equal, and the N first data packets
  • the header sizes of the packets are equal;
  • the second device restores the data of the N first data packets into a concatenated data packet according to the sequence number of the N first data packets,
  • the concatenated data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each of the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenation packet header includes concatenation information of a plurality of data units included in the concatenated data.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • the value of j is an integer in the interval [1,N]. P is greater than N, and both N and P are positive integers.
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the second device is a decoding end or a receiving end.
  • the second device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • decoding the P data packets to obtain N first data packets after decoding including: analyzing the P data packets by using an encoding packet analysis method Obtain the coding factor field carried by the coding packet header of each coding packet header, and use the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; use the coefficient factor matrix to encode the P data packets
  • the data is decoded to obtain N first data packets after decoding.
  • the rank of the coefficient factor matrix is equal to N.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device.
  • the data transmission device includes: an acquisition module for acquiring concatenated data packets; a generation module for generating N first data packets according to the concatenated data packets acquired by the acquisition module; and a transmission module for transmitting the generated data packets
  • the N first data packets generated by the module; the encoding module is used to encode the N first data packets generated by the generation module and add the encoded packet header to obtain M second data packets, and the encoded packet header includes the encoding factor field; the transmission module is further configured to transmit the M second data packets.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the first data packet is an original data packet, and the second data packet is an encoded packet.
  • M is greater than N, and both N and M are positive integers.
  • the value of j is an integer in the interval [1,N].
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device.
  • the data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded to obtain the decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal; the restoration module, using to restore the data of the N first data packets into a concatenated data packet according to the sequence number order of the N first data packets; the segmentation module is also used for the concatenation according to the concatenated packet header included in the concatenated packet header.
  • the data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the first data packet is an original data packet, and the second data packet is an encoded packet.
  • M is greater than N, and both N and M are positive integers.
  • the value of j is an integer in the interval [1,N].
  • the above data unit is PDU or SDU.
  • the size of the above-mentioned concatenated data packets is an integer multiple of the original data size.
  • the original data refers to the data in the original data package.
  • the above-mentioned decoding module is specifically configured to: parse the encoded packet headers of the P data packets by using an encoding packet parsing method to obtain the encoding factor field carried by each encoded packet header , using the indication of the encoding factor field in the encoded packet header of the P data packets to form a coefficient factor matrix; using the coefficient factor matrix to decode the encoded data of the P data packets to obtain the decoded N first data Bag. where the rank of the coefficient factor matrix is equal to N.
  • the above-mentioned concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the first data segment) of the concatenated data.
  • the above-mentioned concatenated information may only include each data in the D num -1 data segments.
  • the length of the segment instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num ⁇
  • the length of 1 data segment is calculated.
  • D num represents the total number of data segments included in the concatenated data.
  • the above-mentioned concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the first data segment) of the concatenated data.
  • the link data includes information on whether the i-th data segment is the last data segment; and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the concatenation information includes: indicating whether the start data segment in the concatenated data is the last data segment (or, in other words, the first data segment in the concatenated data); Information on whether there is a next data segment after a data segment) and whether the data unit corresponding to the starting data segment is complete (complete means not segmented, incomplete means segmented); it indicates the first segment of the concatenated data.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the concatenated data includes data obtained by concatenating multiple complete data units and padding bits.
  • the above-mentioned concatenated packet header further includes padding information, and the padding information includes the length of the padding bits.
  • the encoded packet header further includes identification information for indicating the N first data packets from which the second data packet is obtained by encoding.
  • the identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
  • the sequence numbers of the first data packets are sequentially increased. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented.
  • the present application provides a data transmission method, the method includes: a first device acquires N first data packets, the sizes of the N first data packets are not completely equal; the first device transmits the N first data packets A data packet; the first device encodes the N first data packets and adds the encoded packet header to obtain M second data packets; the first device transmits the M second data packets.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the Q equivalent original data packets used for encoding.
  • the Q equivalent original data packets have the same size.
  • the header of each first data packet also includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • N, M, and Q are all positive integers, and Q is less than or equal to N.
  • the above data unit is PDU or SDU.
  • the first device is an encoding end or a transmitting end.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
  • this solution provides a data transmission method that supports network coding in a pure segmentation scenario. It can not only be applied in scenarios that do not depend on the size of SDU or PDU, that is, the size of different SDUs or PDUs can be the same or different. Compatible with NR protocol, it can also recover PDU or SDU even when multiple original data packets are lost, reducing performance loss.
  • the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains the decoded N first data packets,
  • the P data packets include K first data packets and P-K second data packets, and the sizes of the N first data packets are not completely equal;
  • the segmentation information included in the packet header of the data packet restores the data of the N first data packets into one or more data units.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the Q equivalent original data packets for encoding.
  • the Q equivalent original data packets have the same size.
  • the header of each first data packet also includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. P is greater than or equal to N, N is greater than or equal to Q, and P, N, and Q are all positive integers.
  • the above data unit is PDU or SDU.
  • the second device is an encoding end or a transmitting end.
  • the second device may be either a network device, such as a base station, or a terminal device, such as a UE.
  • the packet header of each of the above-mentioned first data packets includes a coding factor field.
  • Decoding the P data packets to obtain N equivalent original data packets after decoding including: determining from the P data packets according to the length and length threshold of each data packet in the P data packets K first data packets and P-K second data packets are obtained; the packet header of each first data packet in the K first data packets is parsed by the analytical method of the original data packet, and the sequence number of the first data packet is obtained, And adopt the analytic mode of the coding packet to parse the coding packet header of the second data packet in the P-K second data packets, to obtain the coding factor field; According to the instructions of the coding factor field in the packet header of the K first data packets and the P-K The indication of the encoding factor field in the encoded packet header of the second data packet forms a coefficient factor matrix; the encoded data of the P-K second data packets and the
  • only one element of the row vector indicated by the coding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and all other elements are equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
  • the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet.
  • the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
  • the original data packet is decoded, and the PDU/SDU is recovered according to the segmentation and concatenation information carried in the packet header of the original data packet, thereby reducing the performance loss of the NR system.
  • the header of each first data packet further includes an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet.
  • Decoding the P data packets to obtain N equivalent original data packets after decoding including: determining from the P data packets according to the length and length threshold of each data packet in the P data packets Out K first data packets and P-K second data packets; analyze the packet header of each first data packet in the K first data packets by using the analytical method of the original data packet, and obtain the sequence number of the first data packet and offset field, and parse the encoded packet header of the second data packet in the P-K second data packets by using the analytical method of the encoded packet to obtain the encoding factor field;
  • the sequence number and offset fields and the indication of the encoding factor field in the encoded packet header of the P-K second data packets form a coefficient factor matrix; the encoded data of the P-K second data packets and the K
  • the first data packet is jointly decoded to obtain N decoded first data packets.
  • the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet.
  • the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • the above-mentioned length threshold is the original packet length threshold L2.
  • the original data packet is decoded, and the PDU/SDU is recovered according to the segmentation and concatenation information carried in the packet header of the original data packet, thereby reducing the performance loss of the NR system.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located.
  • the second data packet is an encoded packet.
  • the present application provides a data transmission device, where the data transmission device may be a first device or a chip in the first device.
  • the data transmission device includes: an acquisition module for acquiring N first data packets, the sizes of the N first data packets are not completely equal; a transmission module for transmitting the N first data packets; an encoding module for using After encoding the N first data packets and adding the encoded packet headers, M second data packets are obtained; the transmission module is also used for transmitting the M second data packets.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the Q equivalent original data packets for encoding.
  • the Q equivalent original data packets have the same size.
  • the header of each first data packet also includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet.
  • N, M, and Q are all positive integers, and Q is less than or equal to N.
  • the above data unit is PDU or SDU.
  • only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device.
  • the data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded, and the N first data packets after decoding are obtained, and the sizes of the N first data packets are not completely equal; the restoration module is used for according to each of the N first data packets.
  • the segmentation information included in the header of the first data packet restores the data of the N first data packets into one or more data units.
  • each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the Q equivalent original data packets for encoding.
  • the Q equivalent original data packets have the same size.
  • the header of each first data packet also includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet.
  • P is greater than or equal to N
  • N is greater than or equal to Q
  • P, N, and Q are all positive integers.
  • the above data unit is PDU or SDU.
  • the packet header of each of the above-mentioned first data packets includes a coding factor field.
  • the above-mentioned decoding module is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt The analysis method of the original data packet parses the packet header of each first data packet in the K first data packets, obtains the serial number of the first data packet, and uses the analysis method of the encoded packet to analyze the P-K second data packets.
  • the encoded packet header of the second data packet obtains the encoding factor field; according to the indication of the encoding factor field in the packet header of the K first data packets and the indication of the encoding factor field in the encoded packet header of the P-K second data packets, constitute Coefficient factor matrix; use the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets to obtain N decoded first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
  • only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
  • the header of each first data packet further includes an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet.
  • the above-mentioned decoding module is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt The analysis method of the original data packet parses the packet header of each first data packet in the K first data packets, obtains the serial number and offset field of the first data packet, and parses the P-K first data packet by using the analysis method of the encoded packet.
  • the encoding factor field is obtained; according to the sequence number and offset field of the first data packet in the packet header of the K first data packets and the encoding of the P-K second data packets
  • the indication of the coding factor field in the packet header constitutes a coefficient factor matrix; the coding data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix to obtain N decoded data packets.
  • the rank of the coefficient factor matrix is equal to N.
  • the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet.
  • the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • the above-mentioned length threshold is the original packet length threshold L2.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located.
  • the second data packet is an encoded packet.
  • the segmentation information includes: position information of the data of the first data packet in the data unit corresponding to the data, and information indicating the first data packet. Information about the length of the data.
  • the encoded packet header further includes identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet.
  • the identification information used to indicate that the Q equivalent original data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first in the encoding window The sequence number of the data packet, the sequence number of the last first data packet in the encoding window.
  • the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window.
  • the length of the coding factor field (such as the Coeff ID field) in the header of the coding packet is 8 bits, which is used to indicate the row index of the codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the sequence numbers of the first data packets are sequentially increased. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented.
  • the present application provides a communication device, the communication device may include a processor and a memory, and optionally a transceiver.
  • the memory is used to store a computer program
  • the transceiver is used to send and receive various data packets or signals
  • the computer program includes program instructions
  • the communication device is made to perform the above-mentioned first aspect, or the above-mentioned second aspect, or the above-mentioned fifth aspect, or the above-mentioned sixth aspect, or the above-mentioned ninth aspect, or the above-mentioned tenth aspect, or the above-mentioned thirteenth aspect, or the above-mentioned fourteenth aspect, or the above-mentioned seventeenth aspect, Or the data transmission method described in the eighteenth aspect above, or any one possible implementation manner of any one of the aspects.
  • the transceiver may be a radio frequency module in a communication device, or a combination of a radio frequency module and
  • the present application provides a readable storage medium, where program instructions are stored on the readable storage medium, which, when run on a computer, cause the computer to execute the above-mentioned first aspect, or the above-mentioned second aspect, or
  • the present application provides a program product comprising program instructions, which, when executed, causes the above-mentioned first aspect, the above-mentioned second aspect, or the above-mentioned fifth aspect, or the above-mentioned sixth aspect, or the above-mentioned first aspect
  • the ninth aspect, or the tenth aspect, or the thirteenth aspect, or the fourteenth aspect, or the seventeenth aspect, or the eighteenth aspect, or any one of the possible implementations The described data transfer method is performed.
  • the present application provides an apparatus, which can be implemented in the form of a chip or in the form of a device, and the apparatus includes a processor.
  • the processor is configured to read and execute the program stored in the memory, so as to execute the first aspect, the second aspect, the fifth aspect, the sixth aspect, the ninth aspect, the tenth aspect, the thirteenth aspect, and the fourteenth aspect , one or more of the seventeenth aspect, the eighteenth aspect, or, a data transmission method provided by one or more of any possible implementations of any one of the aspects.
  • the apparatus further includes a memory connected to the processor through a circuit.
  • the apparatus further includes a communication interface, and the processor is connected to the communication interface.
  • the communication interface is used for receiving data packets and/or information to be processed, the processor obtains the data packets and/or information from the communication interface, processes the data packets and/or information, and outputs the data packets and/or information through the communication interface process result.
  • the communication interface may be an input-output interface.
  • processor and memory may be physically independent units, or the memory may also be integrated with the processor.
  • the present application provides a communication system including the first device in any of the above aspects and the second device in any of the above-mentioned aspects.
  • the implementation of the embodiments of the present application can support network coding technology in scenarios that do not depend on the size of SDU or PDU, that is, different SDU or PDU sizes can be the same or different, such as in the existing NR protocol.
  • PDU or SDU can also be recovered in the case of packet loss, reducing performance loss.
  • FIG. 1a is a schematic diagram of a network architecture in which multiple DUs share one CU according to an embodiment of the present application
  • 1b is a schematic diagram of a protocol layer function of a CU and DU provided by an embodiment of the present application;
  • FIG. 2 is a schematic diagram of an application scenario provided by an embodiment of the present application.
  • FIG. 3 is a simplified schematic diagram of a communication system provided by an embodiment of the present application.
  • Fig. 4 is the schematic diagram of random linear network coding
  • FIG. 5 is a first schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a protocol stack provided by an embodiment of the present application.
  • FIG. 7 is a first schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a mapping relationship between PDU/SDU and data of a first data packet provided by an embodiment of the present application
  • FIG. 9 is a schematic diagram of a positional relationship between a PDU/SDU and a data segment in a first data packet provided by an embodiment of the present application.
  • 10a is a schematic diagram 1 of a packet header format of a first data packet provided by an embodiment of the present application;
  • FIG. 10b is a schematic diagram 2 of the packet header format of the first data packet provided by the embodiment of the present application.
  • FIG. 11 is a schematic diagram 3 of a packet header format of a first data packet provided by an embodiment of the present application.
  • FIG. 12 is a schematic diagram 4 of a packet header format of a first data packet provided by an embodiment of the present application.
  • 13 is a schematic diagram 5 of the packet header format of the first data packet provided by the embodiment of the present application.
  • FIG. 14 is a first schematic diagram of an encoded packet header provided by an embodiment of the present application.
  • 15 is a second schematic diagram of an encoded packet header provided by an embodiment of the present application.
  • 16 is a schematic diagram of a data transmission process flow of a decoding end provided by an embodiment of the present application.
  • 17 is a second schematic flowchart of the data transmission method provided by the embodiment of the present application.
  • FIG. 18 is a second schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • 19 is a schematic diagram of a packet header and an encoded packet header of a first data packet provided by an embodiment of the present application.
  • FIG. 20 is a third schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • 21 is a third schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • 22 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet provided by an embodiment of the present application;
  • FIG. 23 is a fourth schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • 24 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet with padding bits added according to an embodiment of the present application;
  • 25 is a schematic diagram 1 of the format of a concatenated packet header provided by an embodiment of the present application.
  • FIG. 26a is a schematic diagram 2 of the format of a concatenated packet header provided by an embodiment of the present application.
  • Figure 26b is a schematic diagram three of the format of a concatenated packet header provided by an embodiment of the present application.
  • FIG. 27 is a schematic diagram 4 of the format of a concatenated packet header provided by an embodiment of the present application.
  • FIG. 28 is a schematic diagram 6 of a header format of a first data packet provided by an embodiment of the present application.
  • FIG. 29 is a fourth schematic flowchart of the data transmission method provided by the embodiment of the present application.
  • FIG. 30 is a fifth schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • FIG. 31a is a schematic diagram 7 of a header format of a first data packet provided by an embodiment of the present application.
  • 31b is a schematic diagram 8 of the packet header format of the first data packet provided by the embodiment of the present application.
  • FIG. 32 is a schematic diagram of constructing a coefficient factor matrix provided by an embodiment of the present application.
  • FIG. 33 is a schematic structural diagram of a data transmission device 1 provided by an embodiment of the present application.
  • FIG. 34 is another schematic structural diagram of the data transmission apparatus 1 provided by an embodiment of the present application.
  • 35 is a schematic structural diagram of a data transmission apparatus 2 provided by an embodiment of the present application.
  • FIG. 36 is another schematic structural diagram of the data transmission device 2 provided by the embodiment of the present application.
  • FIG. 37 is a schematic structural diagram of a communication apparatus provided by an embodiment of the present application.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same function and effect.
  • the first information and the second information are only for distinguishing different information, and the sequence of the first information is not limited.
  • the words “first”, “second” and the like do not limit the quantity and execution order, and the words “first”, “second” and the like are not necessarily different.
  • “at least one” refers to one or more, and “multiple” refers to two or more.
  • “And/or”, which describes the association relationship of the associated objects, indicates that there can be three kinds of relationships, for example, A and/or B, which can indicate: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the associated objects are an “or” relationship.
  • “At least one item(s) below” or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s).
  • At least one (a) of a, b, or c may represent: a, b, c; a and b; a and c; b and c; or a and b and c.
  • a, b, c can be single or multiple.
  • system and “network” are often used interchangeably herein.
  • B corresponding to A means that B is associated with A, and B can be determined according to A.
  • determining B according to A does not mean that B is only determined according to A, and B may also be determined according to A and/or other information.
  • the following describes the system architecture and application scenarios of the data transmission method provided by the embodiments of the present application. It is understandable that the system architecture and application scenarios described in the embodiments of the present application are for the purpose of illustrating the technical solutions of the embodiments of the present application more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application.
  • a wireless communication system includes communication devices, and air interface resources can be used for wireless communication between the communication devices.
  • the communication equipment may include network equipment and terminal equipment, and the network equipment may also be referred to as base station equipment.
  • the air interface resources may include at least one of time domain resources, frequency domain resources, code resources and space resources.
  • the network devices involved in the embodiments of this application include access network devices, such as a base station (base station, BS).
  • a base station (BS) can be fixed or mobile.
  • the base station may have various forms, such as a macro base station, a micro base station, a relay station, and an access point.
  • the base station involved in the embodiments of the present application may be a base station in 5G or an evolved base station (Evolved Node B, eNB) in LTE.
  • the base station in 5G may also be called a transmission reception point (TRP) or a 5G base station (Next-Generation Node B, gNB).
  • TRP transmission reception point
  • gNB Next-Generation Node B
  • the base station can also be replaced with the following names, such as: Node B (NodeB), transmitting point (TP), primary station MeNB, secondary station SeNB, multi-standard radio (MSR) node, home base station, network controller, access point.
  • Ingress node wireless node, transmission node, transceiver node, baseband unit (BBU), remote radio unit (RRU), active antenna unit (AAU), radio head (RRH), central unit (CU), distribution unit (DU), positioning node, etc.
  • NodeB Node B
  • TP transmitting point
  • MSR multi-standard radio
  • Ingress node wireless node, transmission node, transceiver node, baseband unit (BBU), remote radio unit (RRU), active antenna unit (AAU), radio head (RRH), central unit ( CU), distribution unit (DU), positioning node, etc.
  • BBU baseband unit
  • RRU remote radio unit
  • AAU active antenna unit
  • RRH radio head
  • CU central unit
  • DU distribution unit
  • the device for implementing the function of the network device may be a network device; it may also be a device capable of supporting the network device to realize the function, such as a chip system, a communication module, or a modem, etc., and the device may be installed in network equipment.
  • the device for implementing the functions of the network equipment is the network equipment, and the network equipment is a base station as an example to describe the technical solutions provided by the embodiments of the present application.
  • Base stations can support networks of the same or different access technologies.
  • the embodiments of the present application do not limit the specific technology and specific device form adopted by the network device.
  • an access network device may include a centralized unit (CU) and a distributed unit (DU).
  • the gNB may also include a radio unit (RU).
  • CU and DU can be understood as the division of the base station from the perspective of logical functions.
  • the CU and DU can be physically separated or deployed together.
  • multiple DUs may share one CU or one DU may be connected to multiple CUs, and the CUs and DUs may be connected through an F1 interface.
  • FIG. 1a is a schematic diagram of a network architecture in which multiple DUs share one CU according to an embodiment of the present application.
  • the core network and the RAN communicate with each other, the base station in the RAN is separated into CUs and DUs, and multiple DUs share one CU.
  • the network architecture shown in Figure 1a can be applied to a 5G communication system, and can also share one or more components or resources with an LTE system.
  • the access network equipment including the CU node and the DU node separates the protocol layers, and the functions of some protocol layers are centrally controlled by the CU, and the functions of the remaining part or all of the protocol layers are distributed in the DU, and the CU centrally controls the DU.
  • FIG. 1b is a schematic diagram of a protocol layer function of a CU and a DU provided by an embodiment of the present application.
  • the CU is deployed with the radio resource control (RRC) layer in the protocol stack, the packet data convergence protocol (PDCP) layer, and the service data adaptation protocol (service data adaptation protocol, SDAP) layer;
  • DU is deployed with a radio link control (RLC) layer in the protocol stack, a medium access control (medium access control, MAC) layer, and a physical layer (physical layer, PHY).
  • RRC radio resource control
  • PDCP packet data convergence protocol
  • SDAP service data adaptation protocol
  • DU is deployed with a radio link control (RLC) layer in the protocol stack, a medium access control (medium access control, MAC) layer, and a physical layer (physical layer, PHY).
  • RRC radio resource control
  • PDCP packet data convergence protocol
  • SDAP service data adaptation protocol
  • RLC radio link control
  • MAC medium access control
  • PHY physical layer
  • the division of the above functions is only an example, and does not constitute a limitation on the CU and the DU. That is to say, there may be other ways of dividing functions between the CU and the DU. Exemplarily, some functions of the RLC layer and functions of the protocol layers above the RLC layer are set in the CU, and the remaining functions of the RLC layer and the RLC layer are set in the CU. The function of the protocol layer below the layer is set in the DU. For example, the functions of the CU or DU may also be divided according to the service type of the call service, the voice service or the short message service or other system requirements.
  • the functions of the CU or DU are divided according to the delay, and the functions whose processing time needs to meet the delay requirements may be set in the DU, and the functions that do not need to meet the delay requirements may be set in the CU.
  • a CU may also have one or more functions of the core network, and one or more CUs may be set centrally or separately.
  • the CU can be set on the network side to facilitate centralized management, and the DU can have multiple radio functions, or the radio functions can be set remotely.
  • the functions of the CU can be implemented by one entity or by different entities.
  • the functions of the CU can be further segmented, for example, the control plane (CP) and the user plane (UP) can be separated, that is, the CU control plane (CU-CP) and the CU user plane ( CU-UP).
  • the CU-CP and the CU-UP can be implemented by different functional entities, and the CU-CP and the CU-UP can be coupled with the DU to jointly complete the functions of the base station.
  • the CU-CP is responsible for the control plane function, which mainly includes the RRC and the PDCP control plane PDCP-C.
  • PDCP-C is mainly responsible for one or more of control plane data encryption and decryption, integrity protection, and data transmission.
  • CU-UP is responsible for user plane functions, mainly including SDAP and PDCP user plane PDCP-U.
  • SDAP is mainly responsible for processing the data of the core network and mapping the data flow to the bearer.
  • PDCP-U is mainly responsible for one or more of data plane encryption and decryption, integrity protection, header compression, serial number maintenance, and data transmission.
  • the CU-CP and CU-UP are connected through the E1 interface.
  • CU-CP represents that the access network equipment is connected to the core network through the Ng interface.
  • the CU-CP is connected to the DU through the F1-C (control plane).
  • CU-UP is connected to DU through F1-U (user plane).
  • F1-U user plane
  • PDCP-C is also in CU-UP.
  • higher-layer signaling such as RRC layer signaling or PDCP layer signaling, can also It is considered to be sent by DU, or, sent by DU+RU.
  • the access network device may be a CU node, or a DU node, or a device including a CU node and a DU node.
  • the terminal equipment involved in the embodiments of this application may also be referred to as terminal, user equipment (UE), mobile station (mobile station, MS), mobile terminal (mobile terminal, MT), etc., which may be a kind of user side
  • UE user equipment
  • MS mobile station
  • MT mobile terminal
  • the terminal device may be user equipment (user equipment, UE), wherein the UE includes a handheld device, a vehicle-mounted device, a wearable device or a computing device with a wireless communication function.
  • the UE may be a mobile phone, a tablet computer, or a computer with a wireless transceiver function.
  • the terminal device can also be a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in telemedicine, intelligent Wireless terminals in power grids, wireless terminals in smart cities, wireless terminals in smart homes, and so on.
  • the device for realizing the function of the terminal may be a terminal; it may also be a device capable of supporting the terminal to realize the function, such as a chip system, a communication module, or a modem, etc., and the device may be installed in the terminal .
  • the chip system may be composed of chips, or may include chips and other discrete devices.
  • the device for implementing the functions of the terminal is a terminal, and the terminal is a UE as an example to describe the technical solutions provided by the embodiments of the present application.
  • the embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal device.
  • the UE can also be used to act as a base station.
  • a UE may act as a scheduling entity between UEs in vehicle-to-everything (V2X), device-to-device (D2D), or peer-to-peer (P2P), etc. Provides sidelink signals.
  • V2X vehicle-to-everything
  • D2D device-to-device
  • P2P peer-to-peer
  • the technical solutions provided in the embodiments of the present application can be applied to wireless communication between communication devices.
  • the wireless communication between communication devices may include: wireless communication between a network device and a terminal, wireless communication between a network device and a network device, and wireless communication between a terminal and a terminal.
  • wireless communication may also be referred to as “communication” for short, and the term “communication” may also be described as "data transmission", “information transmission” or “transmission”.
  • the data transmission methods provided in the embodiments of the present application are mainly aimed at a protocol framework such as long term evolution (long term evolution, LTE) or NR, and can be applied to various mobile communication scenarios.
  • a protocol framework such as long term evolution (long term evolution, LTE) or NR
  • LTE long term evolution
  • NR NR
  • multi-hop/relay transmission between a base station and a user equipment multiple Dual connectivity (Dual Connectivity, DC) or multi-connection scenarios of a base station and user equipment.
  • FIG. 2 is a schematic diagram of an application scenario provided by an embodiment of the present application. As shown in FIG. 2, FIG.
  • FIG. 2 shows four application scenarios, namely point-to-point single connection, multi-hop single connection, dual connection, and multi-hop multi-connection.
  • the data transmission method provided in the embodiment of the present application can be applied to various application scenarios shown in FIG. 2 , and it should also be understood that FIG. 2 is only exemplary.
  • the provided data transmission method is also suitable for many scenarios, including but not limited to data coding in extended reality (extended reality, XR) services, uplink large-capacity scenarios, and the like.
  • FIG. 2 does not limit the network architecture applicable to the present application, and the present application does not limit the transmission of uplink, downlink, access link, backhaul link, side link (Sidelink) and the like.
  • FIG. 3 is a simplified schematic diagram of a communication system provided by an embodiment of the present application.
  • Base station 110 includes interface 111 and processor 112 .
  • Processor 112 may optionally store program 114 .
  • Base station 110 may optionally include memory 113 .
  • Memory 113 may optionally store program 115 .
  • UE 120 includes interface 121 and processor 122.
  • Processor 122 may optionally store program 124 .
  • UE 120 may optionally include memory 123.
  • Memory 123 may optionally store program 125 .
  • These components work together to provide the various functions described in this application.
  • processor 112 and interface 121 work together to provide a wireless connection between base station 110 and UE 120.
  • the processor 122 and the interface 121 work together to realize downlink transmission and/or uplink transmission of the UE 120.
  • the network 130 may include one or more network nodes 130a, 130b to provide core network functions.
  • the network nodes 130a, 130b may be 5G core network nodes, or earlier generation (eg 4G, 3G or 2G) core network nodes.
  • the networks 130a, 130b may be an Access Management Function (AMF), a Mobility Management Entity (MME), or the like.
  • the network 130 may also include one or more network nodes in a public switched telephone network (PSTN), a packet data network, an optical network, an Internet Protocol (IP) network.
  • PSTN public switched telephone network
  • IP Internet Protocol
  • WANs Wide Area Networks
  • LANs Local Area Networks
  • WLANs Wireless Local Area Networks
  • wired networks wireless networks, metropolitan area networks, and other networks to enable communication between UEs 120 and/or base stations 110.
  • a processor may include one or more processors and be implemented as a combination of computing devices.
  • the processors may each include one or more of the following: microprocessors, microcontrollers, digital signal processors (DSPs), digital signal processing devices (DSPDs), special-purpose Integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), gate logic, transistor logic, discrete hardware circuits, processing circuits or other suitable hardware, firmware and/or hardware and software combination for performing the various functions described in this application.
  • the processors may be general purpose processors or special purpose processors.
  • processor 112 and/or processor 122 may be a baseband processor or a central processing unit.
  • a baseband processor may be used to process communication protocols and communication data.
  • the central processing unit may be used to cause the base station 110 and/or the UE 120 to execute software programs and process data in the software programs.
  • Interfaces may be included to enable communication with one or more computer devices (eg, UEs, BSs, and/or network nodes).
  • the interface may include wires for coupling wired connections, or pins for coupling wireless transceivers, or chips and/or pins for wireless connections.
  • the interface may include a transmitter, receiver, transceiver, and/or antenna. The interface can be configured to use any available protocol (eg 3GPP standard).
  • a program in this application is used in the broadest sense to mean software.
  • Non-limiting examples of software are program code, programs, subprograms, instructions, sets of instructions, codes, code segments, software modules, applications, software applications, and the like.
  • Programs may run in a processor and/or computer to cause base station 110 and/or UE 120 to perform various functions and/or processes described herein.
  • Memory may store data that is manipulated by processors 112, 122 when executing software.
  • the memories 113, 123 may be implemented using any storage technology.
  • memory can be any available storage medium that can be accessed by a processor and/or a computer.
  • Non-limiting examples of storage media include: RAM, ROM, EEPROM, CD-ROM, removable media, optical disk storage, magnetic disk storage media, magnetic storage devices, flash memory, registers, state storage, remote mount storage, local or remote storage component, or any other medium capable of carrying or storing software, data or information and accessible by a processor/computer.
  • the memory eg, memory 113 and/or memory 123
  • the processor eg, processor 112 and/or processor 122
  • the memory may be used in connection with the processor such that the processor can read information from, store and/or write information in the memory.
  • the memory 113 may be integrated in the processor 112 .
  • the memory 123 may be integrated in the processor 122 .
  • the processor eg, processor 113 and/or processor 123) and memory (eg, processor 112 and/or processor 122) may be provided in an integrated circuit (eg, the integrated circuit may be provided at a UE or a base station or other network node) middle).
  • RLNC random linear network coding
  • CNC convolutional network coding
  • the following is a brief description by taking RLNC as an example.
  • the RLNC scheme uses a data block (a data block includes several original data of the same size) as a unit, and encodes the original data by constructing a coding coefficient matrix to obtain a set of encoded data packets.
  • the size of the encoded packet is the same as the size of the original packet in the data block.
  • the coefficients in the coding coefficient matrix are randomly selected in a finite field, such as Galois Field (GF).
  • GF Galois Field
  • the size of the coding coefficient matrix (ie A (W+R) ⁇ W in FIG. 4 ) is (W+R) ⁇ W, that is, (W+R) rows and W columns.
  • the data block of the original data (X W ⁇ 1 in FIG. 4 ) is network-coded to obtain W+R encoded data (Y (W+R) ⁇ 1 in FIG. 4 ), and the corresponding code rate (redundancy) indicates is W/(W+R).
  • the coding coefficient matrix randomly selects coefficients in the GF(q) field, q represents the size of the Galois field, and the value of the Galois field is in the interval [0, q-1]. Both W and R are positive integers.
  • the encoded data block here refers to performing network coding on a data block containing W original data to obtain W+R encoded data
  • the encoding operation is performed on each Independent data blocks are performed, and the redundancy (code rate) of each data block can be the same or different.
  • the encoder/transmitter adds the packet header information to the generated W+R encoded data uniformly and sends it.
  • the decoder/receiver receives W correct and linearly independent encoded data packets, it can correctly decode and restore W. original data. This is because the encoded data packet combines the information of several original data, so the receiving end can use the encoded data packet to restore the original data.
  • the term "encoded data packet” may also be simply referred to as "encoded packet”, and the two may be used interchangeably.
  • the decoder/receiver Due to factors such as interference and noise, when the number of correct and linearly independent coded data packets received by the decoder/receiver is less than W, the decoder/receiver cannot perform decoding, and it is fed back to the encoder/send.
  • the number of encoded data packets required for correct decoding at the end, and the encoding end/transmitting end sends the corresponding number of encoded data packets according to the feedback information, and the encoded data packets have nothing to do with the encoding of the next data block.
  • the NR protocol cannot directly support network coding technology.
  • an embodiment of the present application provides a data transmission method, wherein the encoding end adds a packet header to each original data, and adds the information obtained by dividing and concatenating PDUs or SDUs into the packet header to obtain an original data packet including the packet header, Then perform network coding on the original data packet to generate coded data and add the coded packet header to the coded data before sending; the decoding end decodes the original data packet and the coded packet according to the received correct, and uses the segmentation and concatenation information carried by the packet header,
  • the PDU/SDU information is recovered from the original data; not only can network coding technology be applied in scenarios that do not depend on SDU or PDU size, so that network coding technology can be supported in existing NR protocols, even in multiple original PDU or SDU can also be recovered in the case of packet loss, reducing performance loss and improving transmission reliability.
  • the first embodiment describes how to perform network coding and transmit two types of data packets (original data packets and encoded packets) when the original data obtained after PDU/SDU is divided and/or concatenated operations are not equal in size, and how to design The headers of the two types of packets.
  • the second embodiment describes how to perform network coding to ensure that the sizes of transmitted data packets are equal, and how to design packet headers when the original data obtained by dividing and/or concatenating PDUs/SDUs are of unequal size.
  • the third embodiment describes how to perform network coding and data transmission, and how to design the packet header after concatenating multiple PDUs/SDUs first, adding packet headers and padding operations, and then dividing them into equal sizes.
  • the fourth embodiment describes how to perform network coding and data transmission, and how to design a packet header after only performing the segmentation operation on the PDU/SDU. It is understandable that the technical solutions described in Embodiment 1 to Embodiment 4 of the present application can be combined to form a new embodiment, and the related concepts or solutions with the same or similar parts can be referred to or combined with each other. Each embodiment will be described in detail below.
  • the technical solution provided in this application may be implemented by the first device and the second device.
  • the first device may be either a network device, such as a base station, or a terminal device, such as a UE;
  • the second device may be a network device, such as a base station, or a terminal device, such as a UE. All the embodiments of this application are described with the first device as the encoding end (or the sending end) and the second device as the decoding end (or the receiving end); but in practical applications, the first device can also be used as the decoding end (or the receiving end).
  • the coding end (or the receiving end), the second device acts as the coding end (or the sending end); this application does not limit this.
  • the first device is the encoding end and the second device is the decoding end; in another data transmission process, the first device may be the decoding end, and the second device may be the encoding end, or The first device is still the encoding end, and the second device is still the decoding end.
  • the encoding end and the decoding end are for both sides of the communication. In a communication process, one side of the communication is the encoding end, and the other side is the decoding end.
  • the first embodiment of the present application mainly introduces a possible data transmission method that introduces network coding in the NR protocol.
  • This method transmits both the original data packet and the encoded packet, and introduces that the PDU/SDU is obtained by dividing and/or concatenating operations. How to perform network coding and data transmission, and how to design packet headers when the original data is not of equal size.
  • FIG. 5 is a first schematic flowchart of a data transmission method provided by an embodiment of the present application. As shown in Figure 5, the data transmission method includes but is not limited to the following steps:
  • the first device acquires N first data packets, the N first data packets are equal in size, each first data packet includes a packet header and data, and the packet header of each first data packet includes a The segmentation and concatenation information of at least one data unit corresponding to the data, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit, and the packet header of each first data packet also includes The data packet identification field is used to indicate the sequence number of the first data packet.
  • the first device transmits the N first data packets.
  • S103 The first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets.
  • the first device transmits the M second data packets.
  • the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet.
  • the original data packet can be understood as a data packet without network encoding
  • the encoded packet can be understood as a data packet after network encoding.
  • the data unit in this embodiment of the present application is a PDU or an SDU.
  • the first device divides and/or concatenates at least one data unit (PDU or SDU) to obtain N pieces of original data, and then adds a header to each original data to obtain the first data packet (that is, the original data packet). ), where each first packet is the same size.
  • the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in a memory (the memory here refers to a storage space, such as a cache).
  • the The N first data packets buffered in the memory are network encoded to generate M encoded data.
  • the sizes of the N first data packets are equal, the sizes of the M encoded data are also equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets.
  • the first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet.
  • M second data packets (ie, encoded packets) can be obtained.
  • this application does not limit the method of network coding, which can be either the random linear network coding shown in the aforementioned FIG. Sliding to achieve convolutional network coding or block network coding, which is not explained here.
  • N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be less than N, may be greater than N, and may also be equal to N.
  • the second data packet (that is, the encoded packet) has one more encoded packet header than the first data packet (that is, the original data packet), that is, the encoded data of the encoded packet is equal to the size of the original data packet, that is, the transmission in the embodiment of the present application is
  • the size of the encoded packet (the second data packet) and the original data packet (the first data packet) are not equal, which saves the packet header overhead of the original data packet to a certain extent.
  • this embodiment of the present application does not limit the execution order of the foregoing step S102 and the foregoing step S103.
  • the above-mentioned step S102 may be performed before the above-mentioned step S103, or may be performed after the above-mentioned step S103, or may be performed simultaneously/parallelly with the above-mentioned step S103.
  • each of the foregoing first data packets includes a header and data (that is, the foregoing original data).
  • the packet header of each first data packet includes the segmentation and concatenation information of at least one data unit (PDU or SDU) corresponding to the data of the first data packet (that is, the above-mentioned original data), in other words, the The packet header includes the mapping relationship between the data of the original data packet and the PDU/SDU.
  • the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and at least one data unit (PDU or SDU).
  • the packet header of each first data packet may further include first indication information and a data packet identification (Packet ID) field.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet.
  • the data packet identification field is used to indicate the sequence number of the first data packet. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order, or sequentially increased. That is, the sequence number of the first first data packet obtained by the first device is 1, the sequence number of the second first data packet is 2, and so on.
  • each of the foregoing second data packets includes an encoded packet header and encoded data (the encoded data here is obtained after a plurality of first data packets are network encoded).
  • the encoded packet header of each second data packet includes an encoding factor field, and may further include second indication information.
  • the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the above steps S101 to S104 may be implemented by a network coding (network coding, NC) function sublayer in the first device, and the NC function sublayer may also be used to implement a network coding function.
  • the NC functional sublayer may be located between the packet data convergence protocol (PDCP) layer and the radio link control (radio link control, RLC) layer, or may be located between the RLC layer and the media access control (media access control) layer. between the access control, MAC) layer, or between the MAC layer and the physical layer (PHY).
  • PDCP packet data convergence protocol
  • RLC radio link control
  • media access control media access control
  • the NC function sublayer may be on the CU side of the gNB, or may be on the DU side of the gNB, which is not limited in this embodiment of the present application.
  • the NC function can be embedded in a specific layer, for example, the NC function can be embedded in the adaptive backhaul protocol (backhaul adaptation protocol, BAP) layer, or PDCP layer, or RLC layer, or MAC layer, etc., then The above steps S101 to S104 may be implemented by a layer having an NC function in the first device.
  • the layer with the NC function in the first device can perform network coding on the PDU of the protocol layer, and can also perform network coding on the SDU.
  • the NC function is embedded in the PDCP layer, the NC function can be located between the header compression and integrity protection functions, or it can be located after the encryption function and before adding the PDCP header.
  • FIG. 6 is a schematic diagram of a protocol stack provided by an embodiment of the present application.
  • the NC function sublayer is introduced in the PDCP and RLC layers to realize the network coding function.
  • the NC functional sublayer receives the PDCP PDU transmitted by the PDCP layer, and splits and merges it into the SDU of the NC layer (that is, the data of the original data packet). H's NC PDU (that is, the original data packet), and transmitted to the RLC layer.
  • the RLC layer can receive two types of data packets, one is the original data packet transmitted from the NC functional sublayer, and the other is the encoded packet transmitted from the NC functional sublayer.
  • the two types of NC PDUs (or two types of data packets) passed from the NC functional sublayer are fully compatible with the functions of the RLC layer, that is, the RLC layer treats and operates the NC PDUs passed from the NC functional sublayer as PDCP PDUs.
  • the protocol stack may not define an NC function sublayer independently, but extend the function of the PDCP layer to ensure that the PDCP layer has the aforementioned functions of the NC, that is, operations such as segmentation and/or concatenation of PDCP PDUs are performed.
  • the original data packet and the encoded data packet are generated and transmitted to the RLC layer as NC PDUs.
  • the NC function sublayer is located between other layers, similar to the NC function sublayer located between the PDCP layer and the RLC layer, and when the NC function is embedded in a layer, the NC function is merged with the existing function.
  • FIG. 7 is a first schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application. As shown in FIG. 7 , it is taken as an example that the NC functional sublayer is located between the PDCP layer and the RLC layer.
  • the NC functional sublayer receives PDCP PDUs 1 to 4 in sequence, according to the size requirements of the original data packet in the NC functional sublayer (wherein the size of the original data packet can be semi-static configuration, or the receiving end (or decoding end, (or the second device) informs the originating end (or the encoding end, or the first device) in advance, performs segmentation and/or concatenation operations on PDCP PDUs 1 to 4, and sequentially obtains the data of the original data packets Pkt1 to Pkt4 (as shown in Figure 7). Data1 to Data4).
  • a packet header (Header in Figure 7) to each obtained data to obtain the original data packet including the packet header; on the one hand, the original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand
  • the original data packet is buffered in the buffer of the encoder of the NC function sublayer.
  • the original data packets in the buffer reach the number of data packets required by the encoder (it is assumed here that the number of data packets required by the encoder is 4), perform network coding on the 4 original data packets in the buffer to generate encoded data EData1 and EData2.
  • the number of encoded data generated by performing network coding on four original data packets may be less than or equal to the number of original data packets, or may be greater than the number of original data packets.
  • a coded packet header (such as NC_Header in Figure 7) is added to each coded data to obtain a coded packet including the packet header (such as EPkt1 and EPkt2 in Figure 7) and sent as a PDU of the NC functional sublayer. It should be understood that when sending the coded packet, only a part of the obtained coded packet may be sent (for example, EPkt1 is sent, and EPkt2 is not sent), or all the obtained coded packets may be sent.
  • the original data obtained by division and/or concatenation here are not necessarily of equal size, but it is necessary to ensure that the size of each original data packet (including data Data and header Header) is equal, that is, the header of the original data packet. Header is not equal size.
  • the embodiment of the present application provides a network coding scheme under the NR protocol stack, which ensures the adaptation and compatibility of the NC function sublayer or the NC function and other layers, and by obtaining the original data packet (that is, the above-mentioned first data packet) on the other hand, the original data packet is directly sent to ensure the low latency of the receiving end, that is, the receiving end can recover the upper-layer PDU of the NC function sublayer based on the received original data packet, that is, the receiving end receives it correctly.
  • the original data packets are cached in the buffer of the encoder for network encoding (this is because the original data packets in the buffer need to reach the number of data packets required by the encoder), and redundant encoded packets are sent after network encoding.
  • the encoded data of the redundant encoded packet can be restored to the original data packet (this is because the encoded data is obtained from the original data packet after network encoding), and the original data packet has complete header information, so even in the transmission process If multiple original data packets are lost, the original data packets can also be recovered according to the redundant coding packets, and then according to the segmentation and concatenation information carried in the header of the original data packets, the data of the original data packets are divided and concatenated inversely processed. Thereby, the PDU/SDU data of the upper layer is recovered. Therefore, the embodiments of the present application can not only support the network coding technology in the existing NR protocol, but also reduce the time delay; in addition, even when multiple original data packets are lost, the PDU or SDU can be recovered, reducing performance loss.
  • the above content describes the data transmission process of the encoding end in detail.
  • the first data packet that is, the original The implementation manner of the packet header of the data packet
  • the encoded packet header of the second data packet that is, the encoded packet.
  • the format of the packet header in the first data packet may adopt any one of the following implementation modes 1.1 to 1.4, and implementation modes 1.1 to 1.4 may also be combined to form a new implementation mode, and the concepts or solutions involved are the same or similar parts may refer to each other or be combined.
  • the format of the encoded packet header in the second data packet can be any of the following implementations 2.1 and 2.2, and implementations 2.1 to 2.2 can also be combined to form a new implementation, and the concepts or solutions involved are the same or similar parts may refer to each other or be combined.
  • each first data packet includes a packet header and data.
  • the data in the first data packet is hereinafter referred to as original data, that is to say, “original data” and “first data” in this embodiment of the present application.
  • the data in the package (original data package)" can be used instead.
  • the data of a first data packet includes one or more data segments, and a data segment includes all or part of a PDU/SDU.
  • the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU. Referring to FIG. 8 , FIG.
  • FIG. 8 is a schematic diagram of a mapping relationship between a PDU/SDU and data of a first data packet provided by an embodiment of the present application.
  • FIG. 8 shows two typical mapping relationships between PDU/SDU and original data.
  • the first typical mapping relationship between PDU/SDU and original data is shown in Figure 8a, one PDU/SDU is divided into multiple original data; the second typical mapping relationship between PDU/SDU and original data is shown in the figure As shown in 8b of 8, all or part of a plurality of PDUs/SDUs constitute one original data.
  • FIG. 9 is a schematic diagram of a positional relationship between a PDU/SDU and a data segment in a first data packet provided by an embodiment of the present application.
  • FIG. 9 is for the above-mentioned case 8b of FIG. 8 , that is, FIG. 9 is for the case where all or part of a plurality of PDUs/SDUs constitute one original data (data of the first data packet).
  • the arrangement of the data segments in the data of the first data packet can be arranged according to the size of the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, The sequence numbers of the PDUs/SDUs corresponding to the intermediate data segments are sequentially increased, and the PDU/SDU with the largest sequence number is used as the last data segment. It should be understood that the mapping relationship shown in 9a of FIG.
  • the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may be arranged out of order.
  • the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet are respectively 1,3,4,2.
  • the PDU/SDU corresponding to the first data segment in the data of the first data packet is PDU/SDU 1
  • the PDU/SDU corresponding to the last data segment is PDU/SDU 2.
  • 9b of FIG. 9 is only an example, and the sequence number of the PDU/SDU corresponding to the data segment in the data of the first data packet may also have other arrangements, such as 3, 1, 4, 2 or 1, 4, 2, 3 and so on.
  • the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is an original data packet, and the expression form of the first indication information in the packet header may be an original/coded (original/coded, O/C) field, It should be understood that the first indication information may also be represented as fields with other names, and the embodiments of the present application do not limit the names of the fields.
  • the Packet ID field in the packet header of the first data packet is used to indicate the sequence number (sequence number, SN) of the first data packet (original data packet) where the Packet ID field is located.
  • the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
  • the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the header selection of the first data packet indicates that the Whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided.
  • the "information indicating whether" in this application can be indicated by several bits, such as 1 bit, when different values taken by the several bits can indicate “yes” and “no” respectively.
  • “Information indicating the length” may be indicated by a specific value of the length, or by an index corresponding to the length, that is, the "indication” in this application may be an explicit indication or an implicit indication , which is not limited in this application.
  • FIG. 10a is a schematic diagram 1 of the packet header format of the first data packet provided by the embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, one or more extension bits (extension bits, Represented as E) field, and one or more length (length, L) fields; optional include O/C field, Type field and Block ID field.
  • the encoding end (the above-mentioned first device) transmits both the original data packet (that is, the above-mentioned first data packet) and the encoded packet (that is, the above-mentioned second data packet), in order to distinguish the original data packet and the encoded packet, you can Introduce 1bit O/C field.
  • the value of the O/C field is 0, it indicates that the data packet in which the O/C field is located is the original data packet; when the value of the O/C field is 1, it indicates that the data in which the O/C field is located is the original data packet.
  • the packet is an encoded packet; or, when the value of the O/C field is 1, it indicates that the data packet in which the O/C field is located is the original data packet, and when the value of the O/C field is 0, it indicates that the The packet in which the O/C field is located is an encoded packet.
  • the O/C field included in the header of the first data packet is set to a first value (for example, 0), which is used to indicate that the first data packet in which the O/C field is located is the original data packet.
  • the Type field is an optional field, indicating the SN range of the data packet or the length of the Packet ID field.
  • 1bit can represent the length of the SN or Packet ID field of two lengths
  • 2bit can represent the length of the SN or Packet ID field of four lengths.
  • taking the length of the Type field as 1 bit as an example when the Type field is 0, it indicates that the length of the Packet ID field is 6 bits; when the Type field is 1, it indicates that the length of the Packet ID field is 14 bits.
  • the Packet ID field is used to indicate the serial number of the data packet where the Packet ID field is located, and the range of the serial number of the data packet can be determined according to the Type field.
  • the sequence number ranges from 0 to 2 n -1.
  • the Block ID field is an optional field that represents the identifier (ID) of the data block.
  • This data block includes the first data packet in which the Block ID field is located.
  • the length of the S_start field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the first data segment in the data of the first data packet is divided, or used to indicate whether the data segment in the data of the first data packet is divided. Whether the PDU/SDU with the smallest sequence number in the corresponding PDU/SDU is divided.
  • the S_start field can be used to determine whether the PDU/SDU corresponding to the start data segment of the data part of the original data packet is divided, so that the receiving end (or the decoding end, or the second device) can determine whether the level is required when recovering. link.
  • the value of the S_start field is 0, indicating that it is not divided, and the value of the S_start field is 1, indicating that it is divided; or, the value of the S_start field is 1, indicating that it is not divided, and the value of the S_start field is 0, indicating that it is divided.
  • the length of the S_start field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the first data segment in the data of the first data packet is complete (complete means not segmented, incomplete means segmented, Being divided means that the first data segment is a part of a PDU/SDU), or it is used to indicate whether the PDU/SDU with the smallest sequence number in the PDU/SDU corresponding to the data segment in the data of the first data packet is complete.
  • the length of the S_end field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the last data segment in the data of the first data packet is divided, or used to indicate whether the data segment in the data of the first data packet corresponds to the segment. Whether the PDU/SDU with the largest sequence number in the PDU/SDU is divided.
  • the S_end field can be used to determine whether the PDU/SDU corresponding to the data segment at the end of the data part of the original data packet is divided, so that the receiving end (or the decoding end, or the second device) can determine whether concatenation is required when recovering. .
  • the value of the S_end field is 0, indicating that it is not divided, the value of the S_start field is 1, indicating that it is divided; or, the value of the S_end field is 1, indicating that it is not divided, and the value of the S_end field is 0, indicating that it is divided. It should be understood that only one of the S_start field and the S_end field may exist in the header of the first data packet, or both fields may exist.
  • the length of the S_end field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the last data segment in the data of the first data packet is complete (complete means not segmented, incomplete means segmented, Split means that the last data segment is part of a PDU/SDU and is the front part of the PDU/SDU), or is used to represent the PDU/SDU with the largest sequence number in the PDU/SDU corresponding to the data segment in the data of the first data packet/ Whether the SDU is complete.
  • E1 indicates whether the first data segment in the data of the first data packet is the last data segment, or whether there is a next data segment after the first data segment in the data of the first data packet
  • E2 indicates the data of the first data packet Whether the second data segment is the last data segment, or whether there is a next data segment after the second data segment in the data of the first data packet
  • E3 indicates whether the third data segment in the data of the first data packet is The last data segment, or whether there is a next data segment after the third data segment in the data of the first data packet; and so on.
  • Ei indicates whether the i-th data segment in the data of the first data packet is the last data segment, or whether there is a next data segment after the i-th data segment in the data of the first data packet, i is a positive integer and 1 ⁇ i ⁇ Dnum .
  • the length of each extended bit field is 1 bit. When the 1bit value is 0, it means that it is the last data segment or there is no next data segment, and the header of the first data packet accumulates a length field and ends; when the 1bit value is 1, it means that it is not the last one
  • the header of the first data packet also accumulates an L field, and then the header of the first data packet also accumulates the next E field and the corresponding L field.
  • each extension bit (denoted as E) field is immediately followed by a length (L) field.
  • One or more length (length, L) fields are denoted as L1, L2, L3, ..., LD num .
  • D num represents the total number of data segments included in the data of the first data packet.
  • L1 represents the length of the first data segment in the data of the first data packet;
  • L2 represents the length of the second data segment in the data of the first data packet;
  • L3 represents the length of the third data segment in the data of the first data packet ; and so on.
  • Li represents the length of the i-th data segment in the data of the first data packet, where i is a positive integer and 1 ⁇ i ⁇ D num .
  • the value of i can be 1 ⁇ i ⁇ D num -1, that is, the value of the first data packet
  • the length of D num -1 data segments can be indicated in the packet header, and the length of the remaining data segment can be determined by the total length of the first data packet, the header length of the first data packet, and the length of D num -1 data segments. length is calculated. It can be seen that this method can save a length field and save overhead.
  • FIG. 10a is only an example, and each field included in the header of the first data packet in FIG. 10a may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the packet header of the first data packet in FIG. 10a are also not limited.
  • FIG. 10b is a schematic diagram 2 of the packet header format of the first data packet provided by the embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, a segment information (segment information, SI) field, one or more extension bits (extension bits, denoted as E) fields, and one or more Length (length, L) field; optional includes O/C field, Type field and Block ID field.
  • the length of the SI field in FIG. 10b is 2 bits, which is used to indicate whether the data units corresponding to the first data segment and the last data segment in the data of the first data packet are divided, or whether the data in the data of the first data packet is divided. Whether the data unit with the largest sequence number and the smallest sequence number in the data unit corresponding to the segment is divided.
  • the SI field when the SI field is 00 (decimal 0), it means that the data units corresponding to the first data segment and the last data segment are not segmented (or that the data units with the largest and smallest sequence numbers are not segmented) ;
  • the SI field when the SI field is 01 (decimal 1), it means that the data unit corresponding to the first data segment is divided (or the data unit with the smallest sequence number is divided), and the data unit corresponding to the last data segment is not divided (or sequence The data unit with the largest number is not divided);
  • the SI field when the SI field is 10 (decimal 2), it means that the data unit corresponding to the first data segment is not divided (or the data unit with the smallest serial number is not divided), and the last data The data unit corresponding to the segment is divided (or the data unit with the largest serial number is divided);
  • the SI field when the SI field is 11 (decimal 3), it indicates that the data units corresponding to the first data segment and the last data segment are divided (or Data units representing the highest and lowest sequence
  • the SI field when the SI field is 11 (decimal 3), it means that the data units corresponding to the first data segment and the last data segment are not divided (or that the data units with the largest and smallest sequence numbers are not divided. ); when the SI field is 10 (decimal 2), it means that the data unit corresponding to the first data segment is divided (or the data unit with the smallest sequence number is divided), and the data unit corresponding to the last data segment is not divided (or The data unit with the largest serial number is not divided); when the SI field is 01 (decimal 1), it means that the data unit corresponding to the first data segment is not divided (or the data unit with the smallest sequence number is not divided), the last The data unit corresponding to the data segment is divided (or the data unit with the largest serial number is divided); when the SI field is 00 (decimal 0), it indicates that the data units corresponding to the first data segment and the last data segment are divided ( Or means that neither the data unit with the largest sequence number nor the smallest sequence number is split). It should be understood that the embodiment of
  • FIG. 10b is only an example, and each field included in the header of the first data packet in FIG. 10b may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the packet header of the first data packet in FIG. 10b are also not limited.
  • a 1-bit extended bit field is set for each data segment to indicate whether the data segment is the last data segment, and a length field is set for each data segment to indicate its length, which is beneficial to the decoding end.
  • the original data is segmented and concatenated according to the indication of the packet header of the original data packet to recover one or more PDUs/SDUs.
  • two bits are used to respectively indicate whether the data units corresponding to the start data segment and the end data segment in the data of the first data packet are divided, which can save overhead.
  • the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields.
  • the Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located.
  • the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
  • the above-mentioned segmentation and concatenation information includes: the data of the first data segment (or start data segment) and/or the data unit corresponding to the last data segment (or end data segment) in the data of the first data packet. sequence number, or the maximum sequence number and/or minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating whether the i-th data segment included in the data of the first data packet is the first data Information of the last data segment in the data of the packet (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • the header selection of the first data packet indicates that the The maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet.
  • FIG. 11 is a third schematic diagram of a packet header format of a first data packet provided by an embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, a start sequence number (SN_begin) field and/or an end sequence number (SN_end) field, and one or more extension bits (extension bits, denoted as E) field, and one or more length (length, L) fields; optional fields include O/C field, Type field and Block ID field.
  • the SN_begin field is used to represent the sequence number of the PDU/SDU corresponding to the first data segment in the data of the first data packet, or used to represent the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet.
  • the SN_begin field can be used to indicate the SN of the PDU/SDU corresponding to the initial segment of the data part of the original data packet.
  • the SN_end field is used to represent the sequence number of the PDU/SDU corresponding to the last data segment in the data of the first data packet, or used to represent the maximum sequence number of the data unit corresponding to the data segment in the data of the first data packet.
  • the SN_end field can be used to indicate the SN of the PDU/SDU corresponding to the end of the data part of the original data packet. It should be understood that only one of the SN_begin field and the SN_end field may exist in the header of the first data packet, or both fields may exist.
  • the SN_begin field and the SN_end field may be replaced with one or more sequence number fields.
  • the one or more sequence number fields are denoted as SN1, SN2, SN3, . . . , SND num .
  • D num represents the total number of data segments included in the data of the first data packet.
  • a sequence number field indicates a sequence number of a data unit corresponding to a data segment in the data of the first data packet.
  • SN1 represents the serial number of the data unit corresponding to the first data segment in the data of the first data packet
  • SN2 represents the serial number of the data unit corresponding to the second data segment in the data of the first data packet
  • SN3 represents the first data packet The serial number of the data unit corresponding to the third data segment in the data; and so on.
  • SNi represents the sequence number of the data unit corresponding to the i-th data segment in the data of the first data packet, where i is a positive integer and 1 ⁇ i ⁇ D num .
  • the above-mentioned segmentation and concatenation information no longer includes the sequence number of the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet, or the data of the first data packet
  • the maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the first data packet is the sequence number of the data unit corresponding to each data segment in the data of the first data packet.
  • FIG. 11 is only an example, and each field included in the header of the first data packet in FIG. 11 may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the packet header of the first data packet in FIG. 11 are also not limited.
  • the implementation mode 1.2 can indicate whether the data segments in the data of the multiple first data packets are from different PDUs/SDUs. , so that the decoding end can combine different data segments into a complete PDU/SDU.
  • the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields.
  • the Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located.
  • the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
  • the above-mentioned segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, after the first data segment in the data of the first data packet) Whether there is a next data segment) and whether the data unit corresponding to the first data segment is complete (complete means not segmented, incomplete means segmented); indicating that the i-th data included in the data of the first data packet information on whether the first data segment is the last data segment in the data of the first data packet (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the i-th data segment information about the length of each data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • FIG. 12 is a fourth schematic diagram of a packet header format of a first data packet provided by an embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, an extension bit 0 (extension bit 0, denoted as E0) field, one or more extension bits (extension bit, denoted as E) field, and a or multiple length (length, L) fields; optional include O/C field, Type field and Block ID field.
  • the length of the extended bit 0 (represented as E0) field is 2 bits, which is used to indicate whether the first data segment in the data of the first data packet is the last data segment and whether the data unit corresponding to the first data segment is complete .
  • the E0 field indicates whether there is a next data segment after the starting data segment of the data part of the original data packet and whether the starting data segment is complete.
  • the E0 field when the E0 field is 00 (decimal 0), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is complete; when the E0 field When it is 01 (decimal 1), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is incomplete; when the E0 field is 10 ( Decimal 2), it means that the first data segment is not the last number segment (that is, it contains the next data segment), and the data unit corresponding to the first data segment is complete; when the E0 field is 11 (decimal 3), Indicates that the first data segment is not the last number segment (that is, contains the next data segment), and the data unit corresponding to the first data segment is incomplete.
  • the embodiment of the present application does not limit the corresponding relationship between the value and the meaning of the E0 field, that is, the value and the meaning of the E0 field may have other corresponding relationships.
  • E0 field 11 (decimal 3)
  • E0 When the field is 10 (decimal 2), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is incomplete
  • E0 field 01 (Decimal 1)
  • the E0 field is 00 (decimal 0) , indicating that the first data segment is not the last number segment (that is, contains the next data segment), and the data unit corresponding to the first data
  • the extension bit (denoted as E) field of the packet header shown in FIG. 12 can start from E2, and the length field Still starting from L1, and the L1 field is after the E0 field.
  • other fields O/C field, Packet ID field, one or more extension bits (denoted as E) field, one or more length fields, Type field, Block ID field) in the packet header of the first data packet Refer to the meanings of the corresponding fields in the aforementioned FIG. 10a for the meanings, which will not be repeated here.
  • FIG. 12 is only an example, and each field included in the header of the first data packet in FIG. 12 may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the header of the first data packet in FIG. 12 are also not limited.
  • the implementation mode 1.3 uses 2 bits to indicate whether the data units corresponding to the start data segment and the end data segment in the data of the first data packet are complete, and set a 1-bit extension bit field for each data segment to indicate the data segment. Whether it is the last data segment, and setting a length field for each data segment to indicate its length, it is beneficial for the decoding end to divide and concatenate the original data according to the indication of the original data packet header, so as to recover one or more data segments. PDU/SDU.
  • the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields.
  • the Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located.
  • the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
  • the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet Information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; information on the number of data segments (denoted as D num ) included; and information indicating the length of each data segment.
  • D num the number of data segments
  • the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet is divided, or to select the data unit corresponding to the data segment in the data of the first data packet. Whether or not the data unit with the highest sequence number and/or the smallest sequence number is split.
  • the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9b of FIG. 9, the header of the first data packet indicates the first data segment. Whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of a data packet is divided.
  • the above-mentioned segmentation and concatenation information may only include the data of each data segment in the D num ⁇ 1 data segments. Instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of each data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
  • FIG. 13 is a schematic diagram 5 of a packet header format of a first data packet provided by an embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, an S_start field and/or an S_end field, a segment number (denoted as Seg_N) field, and one or more lengths (length, L) Field; optional includes O/C field, Type field and Block ID field.
  • the meanings of the O/C field, the Packet ID field, the S_start field and the S_end field, one or more length fields, the Type field, and the Block ID field refer to the meanings of the corresponding fields in the aforementioned Figure 10a, and will not be repeated here.
  • FIG. 13 is only an example, and each field included in the header of the first data packet in FIG. 13 may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the header of the first data packet in FIG. 13 are also not limited.
  • the Seg_N field is used to indicate the number of data segments included in the data of the first data packet, and there is no need to set an extension bit (represented as E) field for each data segment to indicate whether it is the last data. segment to save overhead.
  • E extension bit
  • each second data packet includes an encoded packet header and encoded data.
  • the encoded data is obtained after multiple original data packets are network encoded.
  • the encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a coefficient identification (Coeff ID) field), optional
  • second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application.
  • the identification information for indicating the N first data packets obtained by encoding the second data packet may include at least the following two items: information indicating the window length of the encoding window, and the sequence number of the first first data packet in the encoding window , the sequence number of the last first data packet in the encoding window. It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window.
  • the length of the coding factor field (such as the Coeff ID field) is 8 bits, and is used to indicate the row index of the 255-row codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like. It should be understood that the coding factor field and the Coeff ID field in this application can be used interchangeably.
  • the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • the encoded packet header of the encoded packet may carry its own serial number or not carry its own serial number. number, so there are the following implementations for the serial number: (1) The encoded packet header of the encoded packet does not carry the serial number, that is, there is no Packet ID field in the encoded packet header, at this time the original data packet (the first data packet ) serial number sequence number.
  • serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated; for example, the serial number of the original data packet is 1-20, the sequence number of the encoded packet increases sequentially from 21.
  • the serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other.
  • serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the O/C field can be used to Distinguish original data packets and encoded packets.
  • sequence numbers of the original data packets are 1-20, and the sequence numbers of the encoded packets are 11-15.
  • FIG. 14 is a first schematic diagram of an encoded packet header provided by an embodiment of the present application.
  • the encoding packet header includes: a coefficient identification (Coeff ID) field, a window length (Window Length, expressed as Win_L) field, a network encoding packet start (NC_Packet_Start) field, and a network encoding packet end (NC_Packet_End) At least two of the fields; optional fields include O/C field, Type field and Packet ID field.
  • the O/C field included in the packet header of the encoded packet in the embodiment of the present application is set to a second value (for example, 1), which is used to indicate that the second data packet in which the O/C field is located is the original data packet.
  • a second value for example, 1
  • the length of the Packet ID field can be 8 bits.
  • the length of the Coeff ID field is 8 bits, which is used to represent the row index of the 255-row codebook.
  • the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the length of the window length (represented as Win_L) field is 8 bits, which is used to represent the window length of the coding window, or the size of the data block used for network coding.
  • the window length of the coding window or the size of the data block used for network coding takes the data packet as the granularity, and 8 bits represent at most 255 data packets, that is, the maximum window length of the coding window is 255 data packets, or it is used for network coding.
  • the size of the data block is a maximum of 255 packets.
  • the length of the NC_Packet_Start field is 8 bits, and is used to indicate the sequence number of the first first data packet in the encoding window.
  • NC_Packet_End field The length of the NC_Packet_End field is 8 bits, and is used to indicate the sequence number of the last first data packet in the coding window.
  • the original data packet in the encoding window can be uniquely determined. If the Win_L field is semi-statically configured, either the NC_Packet_Start field or the NC_Packet_End field is sufficient.
  • FIG. 14 is only an example, and each field included in the encoded packet header in FIG. 14 may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the coded packet header in FIG. 14 are also not limited.
  • each second data packet includes an encoded packet header and encoded data.
  • the encoded data is obtained after multiple original data packets are network encoded.
  • the encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a coefficient identification (Coeff ID) field), optional
  • second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application.
  • the representation form of the identification information used to indicate that the N first data packets obtained by encoding the second data packet in the encoded packet header may be a block identification (Block ID) field.
  • the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field.
  • Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length).
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • FIG. 15 is a second schematic diagram of an encoded packet header provided by an embodiment of the present application.
  • the encoded packet header includes: a coefficient identification (Coeff ID) field, and a block identification (Block ID) field; optionally, an O/C field, a Type field, and a Packet ID field.
  • the meanings of the O/C field, the Type field, and the Packet ID field can refer to the corresponding descriptions in the aforementioned FIG. 10a, which will not be repeated here.
  • the Coeff ID field reference may be made to the corresponding description in the aforementioned FIG. 14 , which will not be repeated here.
  • the Block ID field is used to represent the identification of the data block, and this data block is used to encode the second data packet where the Block ID field is located.
  • FIG. 15 is only an example, and each field included in the encoded packet header in FIG. 15 may also have other names, which are not limited in this embodiment of the present application.
  • the length and arrangement order of each field included in the encoded packet header in FIG. 15 are also not limited.
  • the Coeff ID field, Block ID field, Type field, and Packet ID field in the header of the original encoded packet are multiplexed, and an O/C field is added to indicate the type of the data packet (encoded packet or original data packet), not only can ensure the correct decoding of the decoding end, but also can improve the compatibility.
  • the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not
  • the packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets.
  • the second device acquires P data packets, where the P data packets include K first data packets and P-K second data packets.
  • the second device decodes the P data packets, and obtains N first data packets after decoding.
  • the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S106.
  • the second device determines that the received P data packets are among the P packets before parsing the header of the original data packet and the header of the encoded packet to obtain the information therein. Which are the original data packets and which are the encoded packets. There are two ways for the second device to determine whether the received data packet is an encoded packet or an original data packet:
  • the second device compares the size relationship between the length of each of the P data packets and the encoded packet length threshold L1. If the length of a certain data packet in the P data packets is equal to the encoded packet length threshold L1, it is determined that the data packet is the second data packet (ie, an encoded packet). If the length of a certain data packet in the P data packets is less than the encoded packet length threshold L1, it is determined that the data packet is the first data packet (ie, the original data packet). Or, the second device compares the size relationship between the length of each data packet in the P data packets and the length threshold L2 of the original data packet.
  • the data packet length threshold L2 may be preset or semi-statically configured, and may also be negotiated in advance by the sending and receiving parties.
  • the original data packet length threshold L2 may be preset or semi-statically configured, and may also be negotiated in advance by the sending and receiving parties.
  • the second device will target each of the P data packets for each A data packet, the first bit of the data packet (ie the O/C field) can be read to determine whether the data packet is the first data packet (ie the original data packet) or the second data packet (ie the encoded packet).
  • the second device parses the packet header of the data packet by using the parsing method of the original data packet to obtain the serial number of the data packet. If the data packet is a second data packet (that is, an encoded packet), the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate that the encoding is obtained. Identification information of the N first data packets of the data packet.
  • the P data packets include K first data packets and P-K second data packets.
  • Each first data packet includes a packet header and data
  • each second data packet includes an encoded packet header and encoded data.
  • Both K and P are positive integers, and K is less than or equal to P.
  • the second device sorts the K first data packets in ascending order, the indication of the encoding factor field in the encoded packet header of the P-K second data packets, and the indication in the packet header of any second data packet
  • the identification information of the N first data packets of the second data packet is obtained by encoding, and a coefficient factor matrix is formed.
  • the rank of the coefficient factor matrix is equal to N.
  • the second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, to obtain N-K first data packets after decoding.
  • N-K first data packets and K first data packets obtained by decoding is N first data packets.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet, where the segmentation and concatenation information is used to indicate that the data of the first data packet is related to the at least one data unit. Correspondence of data units.
  • the second device then restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets. where K is less than or equal to N.
  • the identification information that is used to indicate that coding obtains the N first data packets of this data packet is the Block ID field, or comprises the window length of the coding window, the sequence number of the first first data packet in the coding window, and the last in the coding window. At least two items in the sequence number of a first data packet.
  • FIG. 16 is a schematic diagram of a data transmission process at a decoding end provided by an embodiment of the present application.
  • the encoding end ie the first device
  • M encoded packets are obtained and sent to the decoding end (ie the second device). It is assumed here that the original data packets Pkt2 and Pkt3 are lost due to factors such as channel fading and interference.
  • the decoding end parses each encoding packet (such as EPkt1 and EPkt2 in Fig.
  • the encoding packet header obtains the window length of the encoding window (that is, the Win_L field, which can be semi-statically configured, that is, not carried in the encoding packet header) and the sequence number of the original data packet in the encoding window, and Coeff ID field.
  • the decoding end ie the second device parses the coded packet header of each coded packet (EPkt1 and EPkt2 in Figure 16) to obtain the Block ID field and the Coeff ID field.
  • the decoding end parses each original data packet to obtain the serial number of each original data packet, and constructs coefficients according to the serial numbers of N-2 original data packets and the Coeff ID fields of the 2 encoded packets Factor matrix (the coefficient factor matrix shown in Figure 16, the columns of the coefficient factor matrix are arranged from left to right corresponding to the sequence numbers of the original data packets from small to large).
  • the rank of the coefficient factor matrix is N.
  • the decoding end (that is, the second device) then de-encodes the packet header of each encoded packet, obtains the encoded data of each encoded packet, and then sorts the encoded data of the encoded packet and the original data packet according to the coefficient factor matrix, Ensure that the coefficient factor matrix corresponds to it (receive the correct packet as in Figure 16).
  • the decoding end ie, the second device
  • uses typical decoding algorithms such as Gaussian elimination to recover the lost original data packets Pkt2 and Pkt3.
  • the decoding end parses the header of the decoded original data packet (that is, Pkt2 and Pkt3 in Figure 16 ) to obtain segmentation and concatenation information, and parses the header for receiving the correct N-2 original data packets Obtain the segmentation and concatenation information, remove the header of each original data packet in the N original data packets, and divide and classify the data of the N original data packets according to the segmentation and concatenation information in the packet header of each original data packet.
  • the reverse operation of the association constitutes one or more PDCP PDUs/SDUs.
  • Header represents the header of the original data packet
  • Data represents the original data
  • NC_Header represents the encoded packet header
  • EData represents the encoded data
  • Pkt represents the original data packet
  • EPkt represents the encoded packet.
  • the decoding end may succeed in decoding or fail in decoding.
  • feedback messages are designed for the two cases of successful decoding and decoding failure.
  • the decoding end ie, the second device
  • the decoding end may use 1 bit to feed back acknowledgement (acknowledge, ACK) information.
  • the decoding end ie, the second device
  • the decoding end feeds back the number of encoded packets that need to be retransmitted, and the original decoded data packet. Packet range.
  • the decoding end ie, the second device
  • the decoding end can indicate the number of encoded packets that need to be retransmitted by feeding back the rank number, or the required rank number (for example, using 6 bits to indicate a maximum of 64 packets) .
  • the number of ranks indicates the number of data packets correctly received by the decoding end (ie, the second device), and the number of encoded packets that need to be retransmitted is obtained by subtracting the number of ranks from P.
  • the required rank number can be used to directly indicate the number of encoded packets that need to be retransmitted.
  • the range of the original data packet to be decoded can be determined by the window length of the encoding window (this variable can be configured semi-statically, and can be indicated by 8 bits), the length of the original original data packet (that is, the first data packet) in the encoding window. Any two items of the sequence number and the sequence number of the last original data packet (ie, the first data packet) in the encoding window are indicated. It should be understood that if the window length of the encoding window is semi-statically configured, the range of the original data packet of the decoding can be determined by any one of the sequence number of the original original data packet in the encoding window and the sequence number of the last original data packet in the encoding window.
  • the window length of the joint coding window or directly indicated by the sequence numbers of the initial original data packet and the last original data packet in the coding window.
  • the decoding end ie, the second device
  • the decoding end when feeding back the range of the decoded original data packet, adds the serial number to the serial number.
  • the serial number of the encoded packet is eliminated, and only the serial number of the original data packet is indicated.
  • the decoding end ie the second device only needs to pay attention to the number range of the original data packet when feeding back the range of the decoded original data packet That's it.
  • the range of the decoded original data packet can be fed back through the block ID field.
  • the window length of the coding window and the sequence numbers of the initial original data packet and the last original data packet in the coding window can be omitted.
  • the encoded packet (that is, the second data packet) and the original data packet (that is, the first data packet) are separately numbered, that is, the serial number of the encoded packet and the serial number of the original data packet use two sets of numbering systems
  • the encoding The end ie, the first device only allows the original data packet to enter the buffer of the encoder.
  • the decoding end ie, the second device
  • the decoding end can maintain two buffers, one buffer is used to store the original data packet, and the other buffer is used to store the encoded packet.
  • the decoding end (ie, the second device) may also maintain only one buffer, and distinguish the types of the data packets through the O/C field.
  • the encoded packet that is, the second data packet
  • the original data packet that is, the first data packet
  • the encoding end that is, the first data packet a device
  • the encoding end (ie, the first device) may be either a base station or a UE; the decoding end (ie, the second device) may be either a UE or a base station.
  • the base station can control the radio resource control (RRC) before the UE's uplink transmission.
  • RRC radio resource control
  • the message or the MAC Control Element (MAC Control Element, MAC CE) message indicates the encoding strategy of the UE's uplink transmission.
  • the RRC message or the MAC CE message can indicate the encoding mode of the UE, such as bit-level encoding or packet-level encoding; or indicate a different encoding scheme, such as block encoding or convolutional network encoding.
  • the second embodiment of the present application mainly introduces another possible data transmission method that introduces network coding in a scenario that does not depend on the size of the SDU or PDU, that is, the size of different SDUs or PDUs may be the same or different, such as in the NR protocol.
  • this method only transmits coded packets, and introduces how to perform network coding and data transmission, and how to design packet headers when the original data obtained after PDU/SDU segmentation and/or concatenation operations are of unequal size.
  • the overall flow of the second embodiment of the present application is similar to the overall flow of the aforementioned first embodiment, with the difference that: the second embodiment of the present application further encapsulates and encodes the packet header of the original data packet to ensure that the sizes of all transmitted data packets are equal .
  • Embodiment 2 of the present application only transmits the encoded packet, and does not transmit the original data packet.
  • FIG. 17 is a second schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 17, the data transmission method includes but is not limited to the following steps:
  • the first device acquires N first data packets, the N first data packets are equal in size, each first data packet includes a packet header and data, and the packet header of each first data packet includes a The division and concatenation information of at least one data unit corresponding to the data, where the division and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit.
  • the first device encodes the N first data packets and adds an encoded packet header to obtain M second data packets, where the encoded packet header includes an encoding factor field.
  • the first device transmits the M second data packets, wherein the first data packet is an original data packet, and the second data packet is an encoded packet.
  • the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet.
  • the original data packet can be understood as a data packet without network encoding
  • the encoded packet can be understood as a data packet after network encoding.
  • the data unit in this embodiment of the present application is a PDU or an SDU.
  • the first device divides and/or concatenates at least one data unit (PDU or SDU) to obtain N pieces of original data, and then adds a header to each original data to obtain the first data packet (that is, the original data packet). ), where each first packet is the same size.
  • PDU data unit
  • SDU data unit
  • each first packet is the same size.
  • the first data packet is encoded (for example, the first data packet is multiplied by a row vector, only one element in the row vector is 1, and the remaining elements are 0), and an encoded data is obtained (the encoded data is the first data packet. ), and then add an encoded packet header to the encoded data to obtain a second data packet (ie, an encoded packet) and transmit it.
  • a second data packet ie, an encoded packet
  • the Network coding is performed on the N first data packets buffered in the memory to generate M-N coded data.
  • the first device adds an encoded packet header to each of the M-N encoded data to obtain a second data packet (ie, an encoded packet).
  • the first device may transmit the second data packet every time it obtains the second data packet.
  • the M-N coded data are all fused with the information of the N original data packets.
  • the sizes of the N first data packets are equal, the sizes of the M-N encoded data are also equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets.
  • each time the first device obtains a first data packet ie, an original data packet
  • it caches it in a memory the memory here refers to a storage space, such as a cache.
  • the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N)
  • the The N first data packets buffered in the memory are network-coded to generate M pieces of encoded data, wherein the sizes of the N first data packets are equal, the sizes of the M encoded data are also equal, and the size of any encoded data is equal to the size of the M encoded data.
  • the size of any first data packet is also equal.
  • performing network coding on the N first data packets can be understood as: taking the N first data packets as a matrix with N rows and 1 column, and performing a matrix product with the coding coefficient matrix.
  • the submatrix formed by the first N rows in the coding coefficient matrix is an identity matrix, and the submatrix formed by the latter M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook etc.
  • One encoded data in the first N encoded data is an original data packet, and each encoded data in the last M-N encoded data is fused with the information of the N original data packets.
  • the first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet).
  • the first device may transmit the second data packet every time it obtains the second data packet.
  • the first device performs network coding on the N first data packets and adds the encoded packet headers to obtain M second data packets. Packet header, to obtain a second data packet, and N first data packets plus the encoded packet header to obtain N second data packets.
  • M-N second data packets are obtained.
  • a row in the coding coefficient matrix is a row in a codebook, and the codebook here may be a Vandermonde codebook, a Cauchy codebook, a random codebook, or the like.
  • both N and M are positive integers, and M is greater than N. It can be seen that the size of the data packets (only the encoded packets here) transmitted by the first device are equal.
  • steps S201 to S203 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer having an NC function.
  • a separate NC function sublayer in the first device or may be implemented by a layer having an NC function.
  • FIG. 18 is a second schematic diagram of the data transmission process at the encoding end provided by the embodiment of the present application.
  • the NC functional sublayer is located between the PDCP layer and the RLC layer.
  • the NC functional sublayer receives PDCP PDUs 1 to 4 in sequence, according to the size requirements of the original data packet in the NC functional sublayer (wherein the size of the original data packet can be semi-static configuration, or the receiving end (or decoding end, (or the second device) informs the originating end (or the encoding end, or the first device) in advance, performs segmentation and/or concatenation operations on PDCP PDUs 1 to 4, and sequentially obtains the data of the original data packets Pkt1 to Pkt4 (as shown in Figure 18 ). Data1 to Data4).
  • the codebook here can be Vandermonde codebook, Cauchy codebook, random codebook, etc. Therefore, the encoded data shown in Figure 18 can be divided into two categories, one is the information containing only a single original data packet (such as Data1 to Data4 in Figure 18), and the other is the information containing multiple original data packets (such as EData1 and EData2 in Figure 18). It should be understood that when sending the encoded packets, only a part of the obtained encoded packets may be sent, or all the obtained encoded packets may be sent.
  • the original data obtained by division and/or concatenation here are not necessarily of equal size, but it is necessary to ensure that the size of each original data packet (including data Data and header Header) is equal, that is, the header of the original data packet. Header is not equal size.
  • each of the foregoing first data packets includes a header and data (that is, the foregoing original data).
  • the packet header of each first data packet includes the segmentation and concatenation information of at least one data unit (PDU or SDU) corresponding to the data of the first data packet (that is, the above-mentioned original data), in other words, the The packet header includes the mapping relationship between the data of the original data packet and the PDU/SDU.
  • the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and at least one data unit (PDU or SDU).
  • each second data packet (ie, an encoded packet) includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded).
  • the coding packet header includes a coding factor field (such as a Coeff ID field), which is used to indicate the row index of the codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the Coeff ID field carried in the coding packet header of the first N coding packets indicates a row in the unit matrix, that is, the first N
  • the Coeff ID field in the encoded packet header of the encoded packet indicates that only one element of the row vector is 1, and the other elements are 0. It should be understood that, because only one type of data packet is transmitted in this embodiment of the present application, that is, only encoded packet is transmitted, the indication information may not be used to indicate whether the transmitted data packet is an original data packet or an encoded packet. That is to say, in the embodiment of the present application, the O/C field may not be included in the encoded packet header.
  • each encoding packet includes an encoding packet header and encoding data
  • the submatrix formed by the first N rows in the encoding coefficient matrix is an identity matrix
  • the submatrix formed by the last M-N rows includes one or more rows in the codebook.
  • line the codebook here can be Vandermonde codebook, Cauchy codebook, random codebook, etc.
  • the encoded data can be understood as two types, one is the information that only contains a single original data packet, and the other is fused Information about multiple original packets.
  • the M encoding packets in the embodiments of the present application can also be understood as two types, which are the encoding packets of the first type and the encoding packets of the second type.
  • the coding coefficient sub-matrix of the first type of coding packet is an identity matrix
  • the coding coefficient sub-matrix of the second type of coding packet is a non-unitary matrix
  • the M coding packets include N first-type coding packets and M-N A second-class encoding package.
  • the coding coefficient sub-matrix of the first type of coding packet and the coding coefficient sub-matrix of the second type of coding packet form a coding coefficient matrix, and the coding coefficient matrix is used for coding the N first data packets.
  • the first device since the first device further adds an encoded packet header to the original data packet (that is, the first data packet) to ensure that the sizes of all transmitted data packets are consistent, the original data packet (that is, the first data packet) Part or all of the O/C field, Type field, Packet ID field, and Block ID field can be omitted from the header of a data packet), and the segmentation and concatenation information can be indicated by other fields; and the implementation of the encoded packet header can refer to Implementation mode 2.1 and implementation mode 2.2 in the foregoing embodiment 1 will not be repeated here.
  • FIG. 19 is a schematic diagram of a packet header and an encoded packet header of a first data packet provided by an embodiment of the present application.
  • the coded packet header (NC_Header in Figure 19) adopts the format of implementation 2.2, which includes the Coeff ID field and the Block ID field; optionally, it includes the O/C field, the Type field and the Packet ID field.
  • the O/C field in FIG. 19 is used to indicate whether the data in the data packet in which the O/C field is located is the original data packet (ie, the above-mentioned first data packet) or encoded data.
  • the header of the first data packet (Header in FIG.
  • FIG. 19 includes segmentation and concatenation information, which can be defined by the S_start field and/or the S_end field, one or more extension bits (denoted as E) fields , and one or more length (length, L) fields are carried.
  • E extension bits
  • L length
  • Fig. 19 is only an example, the encoded packet header can also adopt the format of implementation 2.1, and the segmentation and concatenation information included in the header in the first data packet can also be carried by other fields.
  • the segmentation and concatenation information included in the header in the first data packet can also be carried by other fields.
  • FIG. 19 represents the data (or original data) of the first data packet
  • Pkt represents the first data packet (original data packet)
  • EData represents the encoded data
  • EPkt represents the encoded packet.
  • the original data packet is encapsulated by using two layers of header information (ie, NC_Header and Header), which well includes segmentation and concatenation information.
  • NC_Header and Header which well includes segmentation and concatenation information.
  • the original data packet of one layer of header information ie Header
  • the addition of two layers of header information is completed in steps and cannot be completed at one time.
  • the first device transmits M (M>N) second data packets (that is, encoded packets), due to factors such as interference, noise, etc., the data packets transmitted by the first device may not all be transmitted by the second device. Correct reception, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and restore the N first data packets (ie, the original data packets).
  • the following steps S204 to S206 will introduce the data transmission process of the decoding end in detail.
  • the second device acquires P data packets, where the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field.
  • the second device decodes the P data packets, and obtains N first data packets after decoding, the N first data packets are equal in size, and each first data packet includes a packet header and data, and each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, and the segmentation and concatenation information is used to indicate the data of the first data packet and the at least one data unit. corresponding relationship.
  • the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the second device receives P data packets, or reads P data packets from a storage space (eg, buffer), and the P data packets are all encoded packets.
  • P, N, and M are all positive integers, and P is greater than or equal to N and less than or equal to M, that is, N ⁇ P ⁇ M. It can be seen that when P is equal to N, the redundancy overhead can be reduced.
  • the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S205.
  • the second device parses the encoded packet header of each data packet in the P data packets by using the analysis method of the encoded packet, obtains the encoding factor field (that is, the Coeff ID field), and then uses the encoded packet header of the P data packets.
  • the rank of the coefficient factor matrix is equal to N.
  • the second device removes the encoded packet headers of the P data packets to obtain P encoded data, uses the coefficient factor matrix to decode the P encoded data, and obtains decoded N first data packets.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, where the segmentation and concatenation information is used to indicate the data of the first data packet and the at least one data unit Unit correspondence.
  • the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the decoding end ie, the second device
  • feedback messages are separately designed for the two cases of decoding success and decoding failure.
  • only encoding packets may be numbered in this embodiment of the present application. In this case, it is only necessary to ensure that the serial numbers of the encoded packets are sequentially numbered, for example, the serial numbers of the encoded packets are sequentially numbered.
  • the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message.
  • the RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
  • the encoding packet header is further added to the original data packet to ensure that the data packets transmitted by the encoding end (ie, the first device) are of equal size.
  • the size of the physical layer transport block (TB) is an integer multiple of the data packet, it is beneficial to identify the location of each data packet and to pass the cyclic redundancy check (cyclic redundancy check). check, CRC) to determine whether each data packet is correct, and if it is correct, it can be submitted to the upper layer to maximize the efficiency and performance of network coding.
  • CRC cyclic redundancy check
  • the third embodiment of the present application mainly introduces another possible data transmission method that introduces network coding in the NR protocol.
  • This method transmits both the original data packet and the encoded packet, and introduces the cascading operation and equal-size segmentation in the PDU/SDU. Then, how to perform network coding and data transmission, and how to design packet headers.
  • the difference in the process between the third embodiment of the present application and the foregoing first and second embodiments is that: the third embodiment of the present application firstly concatenates multiple PDUs/SDUs, and then divides them into equal sizes to obtain the original The size of the data (that is, the data of the original data packet) is equal; while the foregoing Embodiment 1 and the foregoing Embodiment 2 directly perform unequal size segmentation and concatenation operations on one or more PDUs/SDUs, and the obtained original data (that is, the original packet data) are not necessarily equal in size.
  • FIG. 20 is a third schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 20, the data transmission method includes but is not limited to the following steps:
  • the first device acquires a concatenated data packet, where the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein a start data segment and an end data segment At least one of the data segments is all or part of a data unit, each data segment except the start data segment and the end data segment in the plurality of data segments is a data unit, and the concatenated packet header includes The concatenated data includes The concatenation information of multiple data units.
  • the first device generates N first data packets according to the concatenated data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, and the N first data packets are equal in size.
  • the data of the j-th first data packet in the packet is the j-th data obtained after the concatenated data packet is divided into N equal parts, each first data packet includes a packet header and data, and the packet header of each first data packet includes the The sequence number of the first packet.
  • the first device transmits the N first data packets.
  • the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets.
  • the first device transmits the M second data packets.
  • the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet.
  • the original data packet can be understood as a data packet without network encoding
  • the encoded packet can be understood as a data packet after network encoding.
  • the data unit in this embodiment of the present application is a PDU or an SDU.
  • the first device concatenates part or all of multiple PDUs/SDUs, and adds concatenated packet headers to ensure that the size of the concatenated data packets obtained is an integer multiple of the original data size, which may be specifically: N times, where N is a positive integer.
  • the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag).
  • the header of the concatenated packet may be located either before the first bit of the concatenated data, or after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet.
  • the above step S304 may also be: every time the first device obtains a PDU/SDU , it is judged whether the size of the PDU/SDU is greater than or equal to the original data size. If the size of the PDU/SDU is greater than or equal to the size of the original data, directly divide the PDU/SDU according to the size of the original data to obtain an original data, and then add a header to the original data to obtain the first data packet (that is, the original data packet). ).
  • the remainder of the segmented PDU/SDU is concatenated with the next PDU/SDU , and then divide according to the size of the original data to obtain another original data, and then add a packet header to the other original data to obtain the first data packet (ie, the original data packet); and so on.
  • the remaining part after the PDU/SDU is divided is divided again according to the size of the original data, until the PDU/SDU passes through one or more times
  • the size of the remaining part after division is smaller than the original data size.
  • One original data can be obtained by one division, and a first data packet can be obtained by adding a packet header to one original data.
  • the first device waits for the next PDU/SDU, and after obtaining the next PDU/SDU, concatenates the PDU/SDU with the next PDU/SDU, and then judges Whether the size of the concatenated PDU/SDU is greater than or equal to the original data size. If the size of the concatenated PDU/SDU is greater than or equal to the original data size, the first device divides the concatenated PDU/SDU according to the original data size to obtain an original data, and then adds a packet header to the original data to obtain The first data packet (ie, the original data packet).
  • the first device waits for the third PDU/SDU, and after obtaining the third PDU/SDU, combines the concatenated PDU/SDU with the third PDU/SDU.
  • Each PDU/SDU is concatenated until the size of the PDU/SDU after one or more concatenations is greater than or equal to the original data size. That is, the first device can perform the concatenation and splitting operations in parallel/simultaneously.
  • the first device concatenates all of the multiple PDUs/SDUs, and adds padding bits and concatenated packet headers to ensure that the size of the concatenated data packets obtained is an integer of the original data size times, specifically N times, where N is a positive integer.
  • the concatenated PDUs/SDUs in this implementation are complete, and the boundary PDUs/SDUs will not be divided, but the missing bits are supplemented by filling bits to form a concatenated data and A concatenated data packet including a concatenated packet header is obtained by adding a concatenated packet header to the concatenated data.
  • the concatenated data in this implementation includes multiple PDUs/SDUs and padding bits.
  • the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag).
  • the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag).
  • the header of the concatenated packet may be located either before the first bit of the concatenated data, or after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet.
  • the first device may also perform the concatenation and division operations in parallel / execute simultaneously.
  • the difference from the foregoing implementation is that: after the first device obtains N-1 first data packets, when determining the Nth original data, the Nth original data includes all or part of a PDU/SDU, and padding bits, and concatenated packet headers. That is to say, the PDU/SDU at the boundary will not be divided, but the missing bits will be supplemented by filling bits.
  • the original data refers to the data in the original data package.
  • the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in the memory (the memory here refers to a storage space, such as a cache) middle.
  • the memory here refers to a storage space, such as a cache
  • N first data packets can be obtained.
  • Each first data packet includes a header and data.
  • the data size of the N first data packets is equal, and the header size of the N first data packets is also the same. equal.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packet is divided into N equal parts, and the value of j is an integer in the interval [1, N].
  • the first to Nth pieces of data obtained after the concatenated data packets are divided into N equal parts are respectively added with headers to obtain the first to Nth first data packets.
  • the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N)
  • the The N first data packets buffered in the memory are network encoded to generate M encoded data.
  • the sizes of the M encoded data are equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets.
  • the first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet.
  • M second data packets ie, encoded packets
  • N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be less than N, may be greater than N, and may also be equal to N.
  • the second data packet (that is, the encoded packet) has one more encoded packet header than the first data packet (that is, the original data packet), that is, the encoded data of the encoded packet is equal to the size of the original data packet, that is, the transmission in the embodiment of the present application is
  • the size of the encoded packet (that is, the second data packet) and the original data packet (that is, the first data packet) are not equal, which saves the header overhead of the original data packet to a certain extent.
  • this embodiment of the present application does not limit the execution order of the foregoing step S303 and the foregoing step S304.
  • the above-mentioned step S303 may be performed before the above-mentioned step S304, or may be performed after the above-mentioned step S304, and may also be performed at the same time/parallel with the above-mentioned step S304.
  • the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the start data segment and the end data segment is the whole or part of a data unit (ie, PDU/SDU), except for the multiple data segments
  • PDU/SDU data unit
  • Each data segment other than the start data segment and the end data segment is a complete data unit (ie, PDU/SDU).
  • the first data unit for example, the data unit with the smallest serial number
  • the last data unit for example, The data unit with the largest serial number
  • the specific placement position is as long as the sending end (or the encoding end, or the first device) and the receiving end (or the decoding end, or the second device) It is sufficient that both parties know, and the specifics can be pre-defined in the agreement, or the originating end informs the receiving end, etc., which is not limited in detail.
  • At least one of the start data segment and the end data segment is all or part of a data unit, and each data segment in the multiple data segments except the start data segment and the end data segment is a complete data unit, It can be understood that each data unit except the data unit with the smallest serial number and the largest serial number among the multiple data units corresponding to the concatenated data is complete. Whether the data unit with the smallest serial number and the data unit with the largest serial number are complete needs to be judged according to the actual situation.
  • the concatenation packet header of the above-mentioned concatenated data packet includes concatenation information of multiple data units (ie, PDU/SDU) included in the concatenated data.
  • PDU/SDU data units
  • a field may be introduced into the header of the concatenated packet to indicate padding information (such as the length of padding bits). If the size of the concatenated packet header, the size of each complete PDU/SDU, and the original data size are known, and the number of data packets (N) required for network coding is semi-statically configured, the length of the padding bits can be calculated. When it is necessary to not introduce a field in the header of the concatenated packet to indicate the padding information.
  • steps S301 to S305 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer with NC functions.
  • a separate NC function sublayer in the first device or may be implemented by a layer with NC functions.
  • FIG. 21 is a third schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application.
  • the NC functional sublayer is located between the PDCP layer and the RLC layer. It is assumed that the NC functional sublayer receives PDCP PDUs 1 to 5 in sequence.
  • the encoding end (that is, the first device) cascades PDCP PDU1, PDCP PDU2, etc. in turn according to the original data size and the number of data packets to be encoded (that is, N), until the length requirement of the encoding is satisfied (that is, N times the original data is satisfied. size value minus the size of the concatenated packet header).
  • concatenated data is formed by taking a part of PDCP PDU5 and concatenating PDCP PDUs 1 to 4, and by adding a concatenated packet header (H in Figure 21), a concatenated data packet is formed. Therefore, the size of the obtained concatenated data packet is guaranteed to be an integer multiple of the original data size.
  • the encoding end ie, the first device
  • the encoding end ie, the first device adds an original data packet header (as shown in Figure 21 Header) to each obtained original data, and obtains an original data packet including the packet header (as shown in Figure 21 as Pkt1 to Pkt5); on the one hand
  • the original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand, the original data packet is buffered in the buffer of the encoder of the NC functional sublayer.
  • the original data packets in the buffer reach the number of data packets required by the encoder, assume that the number of data packets required by the encoder is 5, and then perform network coding on the 5 original data packets in the buffer to generate encoded data EData1 and EData2.
  • the number of encoded data generated by performing network coding on five original data packets may be less than or equal to the number of original data packets, or may be greater than the number of original data packets.
  • Add a coded packet header (such as NC_Header in Figure 21) to each coded data to obtain a coded packet (such as EPkt1 and EPkt2 in Figure 21) and send it as a PDU of the NC functional sublayer.
  • a coded packet header such as NC_Header in Figure 21
  • a coded packet such as EPkt1 and EPkt2 in Figure 21
  • the header of the concatenated packet can either be located before the first bit of the concatenated data, or can be located after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet.
  • Figure 21 shows the case where the header of the concatenated packet is located at the header of the concatenated data packet.
  • the decoding end or the receiving end, or the second device
  • FIG. 22 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet provided by an embodiment of the present application.
  • the concatenated data is located before the concatenated packet header, and the decoding end (or the receiving end, or the second device) reversely parses the concatenated packet header to better ensure real-time performance.
  • the encoding end ie, the first device
  • information in H the original data size and the number of data packets to be encoded
  • the size of the last concatenated PDCP PDU is determined synchronously in combination with the size of the concatenated packet header (as in H in Figure 22). part of PDU5), and finally concatenate to form a concatenated data packet.
  • the size of the concatenated data packet is an integer multiple of the original data size.
  • the decoding end (or the receiving end, or the second device) can parse the end of the concatenated data packet (that is, the concatenated packet header H), wherein the data of the concatenated packet header H is from the end of the concatenated data packet. 1bit starts reverse parsing.
  • FIG. 23 is a fourth schematic diagram of a data transmission process at the encoding end provided by an embodiment of the present application.
  • the cascaded PDUs/SDUs in Figure 23 are complete (as shown in Figure 23, the cascaded PDCP PDUs 1 to 4), and the boundary PDUs/SDUs will not be Split, and the missing bits are supplemented by filling bits (P in Figure 23) to obtain a concatenated data, and by adding a concatenated packet header (H in Figure 23), to obtain a concatenated data
  • the size of the packet is equal to an integer multiple of the original data size, and the multiple can be configured semi-statically.
  • the operation after the encoder end obtains the concatenated data packet in FIG. 23 is the same as the operation at the encoder end in FIG. 21 described above, and will not be repeated here.
  • the header of the concatenated packet can be placed at the end of the concatenated data packet. Accordingly, the decoding end starts from the last 1 bit to reverse the parsing level. Packet header.
  • FIG. 24 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet with padding bits added according to an embodiment of the present application.
  • the concatenated data is located before the concatenated packet header, and the decoding end (or the receiving end, or the second device) reversely parses the concatenated packet header to better ensure real-time performance.
  • the encoding end ie the first device
  • the size of the padding bit (P in Figure 24) is determined synchronously in combination with the size of the concatenated packet header (H in Figure 24), and finally the padding The bits are added after the last PDCP PDU, and the concatenated packet header (H in Figure 24) is added to form a concatenated data packet.
  • the size of the concatenated data packet is an integer multiple of the original data size.
  • the decoding end (or the receiving end, or the second device) can parse the end of the concatenated data packet (that is, the concatenated packet header H), wherein the data of the concatenated packet header H is from the end of the concatenated data packet. 1bit starts reverse parsing.
  • multiple PDUs/SDUs are concatenated, and the boundaries are divided or filled with bits to obtain a concatenated data, and a concatenated packet header is added to obtain a concatenated data packet, and then the concatenated data is obtained.
  • the data packet is divided into equal size to obtain a certain amount of original data (the data of the first data packet), and then the original data packet is obtained by adding the packet header, and the encoded packet is obtained after encoding the original data packet and adding the encoded packet header, so as to obtain the encoded packet without
  • the size of the SDU or PDU that is, the size of different SDUs or PDUs may be the same or different, such as in the existing NR protocol, network coding technology is supported.
  • the above content describes the data transmission process of the encoding end in detail.
  • the decoding end can recover the PDU/SDU according to the correctly received original data packets and encoded packets
  • the following will combine the data transmission process of the encoding end to introduce the concatenation of concatenated data packets in detail.
  • the format of the concatenated packet header can be any of the following implementations 3.1 to 3.3, and implementations 3.1 to 3.3 can also be combined to form a new implementation, and the concepts or solutions involved are the same or similar
  • the parts can be referenced to each other or combined.
  • the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data.
  • the concatenation information includes: information indicating whether the data unit corresponding to the start data segment (ie the first data segment) and/or the end data segment (ie the last data segment) of the concatenated data is divided, or whether the Information on whether the data unit with the largest serial number and/or the smallest serial number in the data unit corresponding to the data segment in the concatenated data is divided; information indicating the number of data segments included in the concatenated data (denoted as D num ); and information indicating the length of each data segment included in the concatenated data.
  • the above-mentioned concatenated information may only include each data in the D num -1 data segments.
  • the length of the segment instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num ⁇ The length of 1 data segment is calculated.
  • FIG. 25 is a schematic diagram 1 of a format of a concatenated packet header provided by an embodiment of the present application.
  • the concatenated packet header includes: a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, a segment number (segment number, expressed as Seg_N) field, and a or multiple length (length, L) fields.
  • a start segment Segment_start, S_start
  • S_end end segment
  • segment number segment number, expressed as Seg_N
  • L length
  • the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data.
  • the concatenation information includes: information indicating whether the data unit corresponding to the start data segment (ie the first data segment) and/or the end data segment (ie the last data segment) of the concatenated data is divided, or whether the Information on whether the data unit with the largest serial number and/or the smallest serial number in the data unit corresponding to the data segment in the concatenated data is divided; indicating whether the i-th data segment included in the concatenated data is the last of the concatenated data. information of the data segment; and information indicating the length of the i-th data segment.
  • i is a positive integer
  • the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1 ⁇ i ⁇ D num .
  • FIG. 26a is a second schematic diagram of the format of the concatenated packet header provided by the embodiment of the present application.
  • the concatenated packet header includes: a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, one or more extension bits (extension bits, denoted as E) fields, and One or more length (length, L) fields.
  • a start segment Segment_start, S_start
  • S_end end segment
  • extension bits extension bits
  • length length
  • the concatenated packet header includes: a segment information (segment information, SI) field, one or more extension bits (denoted as E) fields, and one or more length (length, L) fields .
  • SI segment information
  • E extension bits
  • L length
  • the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data.
  • the concatenation information includes: indicating whether the start data segment in the concatenated data is the last data segment (or in other words, whether there is a next data segment after the first data segment in the concatenated data) and the start data segment Information on whether the corresponding data unit is complete (complete means not divided, incomplete means divided); indicates whether the i-th data segment included in the concatenated data is the last data segment (or in other words) of the concatenated data.
  • the concatenated data includes information on whether there is a next data segment after the i-th data segment); and information indicating the length of the i-th data segment.
  • FIG. 27 is a fourth schematic diagram of the format of a concatenated packet header provided by an embodiment of the present application.
  • the concatenated packet header includes: an extension bit 0 (extension bit 0, denoted as E0) field, one or more extension bits (extension bit, denoted as E) field, and one or more length ( length, L) field.
  • E0 extension bit 0
  • a 1-bit extended bit field is set for each data segment in the concatenated packet header to indicate whether the data segment is the last data segment
  • a length field is set for each data segment to Indicating its length is helpful for the decoding end to segment the concatenated data according to the indication of the header of the concatenated packet, so as to recover multiple PDUs/SDUs.
  • each of the foregoing first data packets includes a packet header and data.
  • the header of each first data packet includes the sequence number of the first data packet, and optionally also includes first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet.
  • the expression form of the first indication information in the packet header may be an O/C field. It should be understood that the first indication information may also be expressed as a field with other names, and the name of the field is not limited in this embodiment of the present application.
  • the sequence number of the first data packet may be indicated by the Packet ID field. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order.
  • the header of each first data packet may further include one or more of the Type field and the Block ID field.
  • the Type field is used to indicate the length of the data packet identification field, or to indicate the range of the sequence number of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 lengths of SN (or Packet ID field length).
  • the Block ID field is used to indicate the identification of the data block, and this data block includes the first data packet where the Block ID field is located.
  • FIG. 28 is a schematic diagram 6 of a packet header format of a first data packet provided by an embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, optionally including an O/C field, a Type field and a Block ID field.
  • each second data packet includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded).
  • the encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a Coeff ID field), optionally further including a second data packet.
  • the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application.
  • the identification information used to indicate the N first data packets obtained by encoding the second data packet is the Block ID field, or includes at least two of the following: the window length of the encoding window, the length of the first first data packet in the encoding window Sequence number, the sequence number of the last first data packet in the encoding window. It should also be understood that if the window length of the coding window is semi-statically configured, then the identification information for indicating that the coding obtains the N first data packets of this second data packet may include the first data packet in the coding window. At least one of the sequence number and the sequence number of the last first data packet in the encoding window is sufficient.
  • the length of the coding factor field (such as the Coeff ID field) is 8 bits, and is used to indicate the row index of the 255-row codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the above-mentioned encoded packet header may also include one or more of the Type field and the Packet ID field.
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • the implementation manner of the sequence number of the encoded packet and the original data packet may refer to the corresponding description in the foregoing Embodiment 1, which will not be repeated here.
  • the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not
  • the packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets.
  • the second device acquires P data packets, where the P data packets include K first data packets and N-K second data packets.
  • the second device decodes the P data packets to obtain N first data packets after decoding.
  • the second device restores the data of the N first data packets into one concatenated data packet according to the sequence number size of the N first data packets, and forms the concatenated data packet according to the packet header of the concatenated packet.
  • the concatenation information of the multiple data units of the data that is, the multiple data units included in the concatenated data, divides the concatenated data into multiple data units.
  • the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S307.
  • the second device determines whether the received data packet is an encoded packet or an original data packet. If a certain data packet is the first data packet (ie, the original data packet), the second device parses the packet header of the data packet by using the parsing method of the original data packet, and obtains the serial number of the data packet.
  • a certain data packet is a second data packet (that is, an encoded packet)
  • the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding
  • the identification information of the N first data packets of the data packet is obtained.
  • the P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data, and each second data packet includes an encoded packet header and encoded data. Both K and P are positive integers, and K is less than or equal to P.
  • the second device is sorted according to the sequence numbers of the K first data packets from small to large, the indication of the coding factor field in the headers of the P-K second data packets, and the code used to indicate the coding in the header of any second data packet.
  • the identification information of the N first data packets of the second data packet constitutes a coefficient factor matrix.
  • the rank of the coefficient factor matrix is equal to N.
  • the second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, to obtain N-K first data packets after decoding. It should be understood that the sum of N-K first data packets and K first data packets obtained by decoding is N first data packets.
  • the second device restores the data of the N first data packets into one concatenated data packet according to the sequence number of the N first data packets.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the starting data segment and the ending data segment is all or part of a data unit, and the multiple data segments except the starting data segment and the ending data segment Each data segment outside the data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data.
  • the second device divides the concatenated data into a plurality of data units according to the concatenation information in the header of the concatenated packet. It should be understood that since there may be some data segments in the concatenated data that are not complete data units, there may also be a part of a complete data unit in the multiple data units obtained by dividing the concatenated data.
  • the indication of the concatenation packet header (for example, the indication of the S_start field and the indication of the S_end field) is to concatenate the incomplete data unit obtained by segmentation with the incomplete data unit in other concatenated data to restore the complete data unit.
  • the identification information that is used to indicate that coding obtains the N first data packets of this data packet is the Block ID field, or comprises the window length of the coding window, the sequence number of the first first data packet in the coding window, and the last in the coding window. At least two items in the sequence number of a first data packet.
  • the decoding end ie, the second device
  • feedback messages are separately designed for the two cases of decoding success and decoding failure.
  • the storage at the encoding end (that is, the first device) and the decoding end (that is, the second device) refers to the foregoing Embodiment 1.
  • the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message.
  • the RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
  • the embodiments of the present application provide a concatenated packet header, a header of the original data packet (ie, the first data packet), and a field design of the encoded packet header, and through the decoding process and operation, the data received by the decoding end is expected
  • the original data packet can be decoded correctly, and the concatenated data packet can be obtained by concatenating according to the serial number of the original data packet, and then carried by the concatenated packet header in the concatenated data packet.
  • the concatenation information of the NR system can be recovered to recover the PDU/SDU, thereby reducing the performance loss of the NR system.
  • the embodiment of the present application only carries the concatenation information in the packet header of the concatenated packet, which can save the overhead of the packet header.
  • Embodiment 3 of the present application may also be combined with Embodiment 2 to form a new embodiment.
  • the difference between the technical solution obtained in the foregoing Embodiment 3 and the foregoing Embodiment 2 and the technical solution in the foregoing Embodiment 3 is that: (1) The technical solution obtained in the foregoing Embodiment 3 in combination with the foregoing Embodiment 2 may not transmit original data (2) The foregoing embodiment 3 further encapsulates the coded packet header of the original data packet in combination with the technical solution obtained in the foregoing embodiment 2 to ensure that all transmitted data packets are of equal size.
  • the technical solution obtained in the foregoing Embodiment 3 in combination with the foregoing Embodiment 2 includes but is not limited to the following steps:
  • the first device acquires a concatenated data packet, where the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein a start data segment and an end data segment At least one of the data segments is all or part of a data unit, each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit, and the concatenated packet header includes the concatenated data. Concatenation information for multiple data units.
  • the design of the concatenated packet header refers to the corresponding description in the foregoing third embodiment, which is not repeated here.
  • the first device generates N first data packets according to the concatenated data packets, each first data packet includes a packet header and data, the data sizes of the N first data packets are equal, and the N first data packets The size of the packet headers are equal, and the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the value of j is an integer in the interval [1,N].
  • the header of the first data packet includes the sequence number of the first data packet.
  • the first device encodes the N first data packets and adds an encoded packet header to obtain M second data packets, where M is greater than N, N and M are both positive integers, and the encoded packet header includes an encoding factor field.
  • M is greater than N
  • N and M are both positive integers
  • the encoded packet header includes an encoding factor field.
  • the first device transmits the M second data packets, wherein the first data packets are original data packets, and the second data packets are encoded packets.
  • the second device acquires P data packets, the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, the encoded packet header includes an encoding factor field, and P is a positive integer.
  • the second device decodes the P data packets to obtain N first data packets after decoding.
  • the decoding method reference is made to the description of step S205 in the second embodiment, which is not repeated here.
  • the second device restores the data of the N first data packets into a concatenated data packet according to the sequence number of the N first data packets, and forms the concatenated data packet according to the packet header of the concatenated packet.
  • the concatenation information of a plurality of data units of the data, and the concatenated data is divided into a plurality of data units.
  • the encoding packet header is further added to the original data packet to ensure that the data packets transmitted by the encoding end (ie, the first device) are of equal size.
  • the embodiment of the present application can help to identify the location of each data packet separately when the size of the physical layer transport block (TB) is an integer multiple of the data packet, and is helpful to determine whether each data packet is correct through CRC, if correct It can be submitted to the upper layer to maximize the efficiency and performance of network coding.
  • the fourth embodiment of the present application mainly introduces another possible data transmission method by introducing network coding into the NR protocol. Do network coding and data transfer, and how to design packet headers.
  • Embodiment 4 of the present application only divides the PDU/SDU without cascading; while the foregoing Embodiment 1 to the foregoing Embodiment 3 Both splitting and concatenating operations can be performed on PDU/SDU.
  • FIG. 29 is a fourth schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 29, the data transmission method includes but is not limited to the following steps:
  • the first device acquires N first data packets, the sizes of the N first data packets are not completely equal, each first data packet includes a packet header and data, and the packet header of each first data packet includes the first data packet
  • the segmentation information of the data unit corresponding to the data of the data packet, the packet header of each first data packet further includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet.
  • the first device transmits the N first data packets.
  • the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets, the N first data packets correspond to the Q equivalent original data packets used for encoding, and the The Q equivalent original data packets have the same size, and the packet header of each first data packet further includes a coding factor field or an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet.
  • the first device transmits the M second data packets.
  • the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet.
  • the original data packet can be understood as a data packet without network encoding
  • the encoded packet can be understood as a data packet after network encoding.
  • the data unit in this embodiment of the present application is a PDU or an SDU.
  • the first device divides at least one data unit (PDU or SDU) according to a preset size to obtain N pieces of original data (original data refers to data in an original data packet). If the size of a certain data unit is less than or equal to the preset size, it does not need to be divided and is directly used as an original data. If the size of the remaining part of a data unit after being divided one or more times is smaller than the preset size, the remaining part is regarded as an original data, and a part (the part) is divided from the next data unit (PDU or SDU).
  • PDU or SDU data unit
  • the size is also smaller than the preset size), as another original data, so that the sum of the sizes of the two original data after adding the packet header respectively is equal to the sum of the preset size and the packet header size. Therefore, some of the original data in the N pieces of original data are of equal size, and the other part of the original data is of unequal size.
  • the first device then adds a packet header to each original data to obtain a first data packet (ie, the original data packet). N pieces of original data are respectively added with packet headers to obtain N pieces of first data packets. Since the sizes of the N pieces of original data are not equal, the sizes of the N pieces of first data packets are also different.
  • the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in the memory (the memory here refers to the storage space, and may also be a cache).
  • the memory here refers to the storage space, and may also be a cache.
  • the number of equivalent original data packets corresponding to the first data packet in the memory reaches the number of data packets required for network coding (the embodiment of this application assumes that the number of data packets required for network coding, that is, the data block size, is Q)
  • the first device when performing network coding on the N first data packets, forms the N first data packets into Q equivalent original data packets of equal size, and performs network coding on the Q equivalent original data packets.
  • An equivalent original data packet includes one or more first data packets. If the size of a certain first data packet is smaller than the sum of the preset size and the packet header size, two or more adjacent first data packets smaller than the preset size can be formed into an equivalent original data packet, one and so on. The size of the valid data packet is equal to the sum of the preset size and the packet header size. It should be understood that an equivalent data packet may include a plurality of packet headers of the first data packet.
  • the first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet. After the M encoded data is added to the encoded packet header, M second data packets (ie, encoded packets) can be obtained.
  • N, M, and Q are all positive integers.
  • Q is less than or equal to N, and the size relationship between M and N is not limited, that is, M can be less than N, greater than N, or equal to N.
  • the second data packet (that is, the encoded packet) has one more encoded packet header than the equivalent original data packet, that is, the encoded data of the encoded packet is equal in size to the equivalent original data packet, that is, the encoded packet transmitted in the embodiment of the present application is (The second data packet) and the original data packet (the first data packet) are not equal in size, and the N original data packets are not equal in size, which saves the packet header overhead of the original data packet to a certain extent.
  • this embodiment of the present application does not limit the execution order of the foregoing step S402 and the foregoing step S403.
  • the above-mentioned step S402 may be performed before the above-mentioned step S403, or may be performed after the above-mentioned step S403, or may be performed simultaneously/parallelly with the above-mentioned step S403.
  • steps S401 to S404 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer having an NC function.
  • a separate NC function sublayer in the first device or may be implemented by a layer having an NC function.
  • FIG. 30 is a fifth schematic diagram of the data transmission process at the encoding end provided by the embodiment of the present application.
  • the NC functional sublayer is located between the PDCP layer and the RLC layer. It is assumed that the NC functional sublayer receives PDCP PDU1 and PDCP PDU2 in sequence.
  • the encoding end (that is, the first device) divides PDCP PDU1 and PDCP PDU2 according to the preset size to obtain 6 original data (Data1-6 in Figure 30).
  • Data1 to 3 and Data6 are equal, and the sizes of Data4 and Data5 are not equal, but the sizes of Data4 and Data5 after adding the header (ie, the Header in Figure 30) and either of Data1 to 3 and Data6 with the header are added. equal.
  • Data4 is the remaining part of PDCP PDU1 after the first three equal-sized divisions, and Data5 is the header of PDCP PDU2.
  • a packet header (that is, the Header in Figure 30) to each original data to obtain the original data packet including the packet header; on the one hand, the original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand, the The original data packet is buffered in the buffer of the encoder of the NC function sublayer.
  • the 6 original data are respectively added with headers to obtain 6 original data packets (Pkt1-6 in Figure 30), these 6 original data packets correspond to the 5 equivalent original data packets of equal size used for encoding.
  • the number of equivalent original data packets corresponding to the original data packets buffered in the buffer reaches the number of data packets required by the encoder (here, it is assumed that the number of data packets required by the encoder is 5), 6 in the buffer
  • network coding is performed on the five equivalent original data packets of equal size to generate encoded data EData1 and EData2. It should be understood that the number of encoded data generated by performing network coding on the five equivalent original data packets may be smaller than the number of equivalent original data packets, or may be greater than the number of equivalent original data packets.
  • a coded packet header (such as NC_Header in Figure 30) to each coded data to obtain a coded packet including the packet header (such as EPkt1 and EPkt2 in Figure 30) and send it as a PDU of the NC function sublayer.
  • a coded packet header such as NC_Header in Figure 30
  • the packet header such as EPkt1 and EPkt2 in Figure 30
  • send it as a PDU of the NC function sublayer it should be understood that when sending the coded packet, only a part of the obtained coded packet may be sent (for example, EPkt1 is sent, and EPkt2 is not sent), or all the obtained coded packets may be sent.
  • each of the foregoing first data packets includes a header and data (that is, the foregoing original data).
  • the packet header of each first data packet includes segmentation information of the data unit (PDU or SDU) corresponding to the data of the first data packet.
  • the data of one first data packet corresponds to all or part of one PDU/SDU.
  • the segmentation information includes: position information of the data of the first data packet in the data unit corresponding to the data, and information indicating the length of the data of the first data packet.
  • the packet header of each first data packet further includes a Packet ID field, and optionally may also include first indication information.
  • the first indication information is used to indicate that the first data packet in which the first indication information is located is an original data packet, and an expression form of the first indication information in the packet header may be an O/C field.
  • the data packet identification field is used to indicate the sequence number of the first data packet. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order, or sequentially increased. That is, the sequence number of the first first data packet obtained by the first device is 1, the sequence number of the second first data packet is 2, and so on.
  • the packet header of each first data packet further includes a coding factor field (such as a Coeff ID field) or an offset (offset) field, where the offset field is used to indicate that the sequence number of the first data packet corresponds to the first data packet The offset number of the sequence number of the equivalent original packet.
  • the header of each first data packet may further include one or more of the Type field and the Block ID field.
  • the Type field is used to indicate the length of the data packet identification field, or is used to indicate the range of sequence numbers of the data packet.
  • the Block ID field is used to indicate the identification of the data block, and this data block includes the first data packet where the Block ID field is located.
  • FIG. 31a is a schematic diagram 7 of a packet header format of a first data packet provided by an embodiment of the present application.
  • the header (Header) of the first data packet includes: Packet ID field, segment information (segment information, SI) field, length (Length, L) field, and Coeff ID field; optional include O/C field, Type field and Block ID field.
  • FIG. 31b is a schematic diagram 8 of a packet header format of a first data packet provided by an embodiment of the present application.
  • the packet header of the first data packet includes: a Packet ID field, an SI field, a length (Length, L) field, and an offset (offset) field; optionally, it includes an O/C field, a Type field and Block ID field.
  • the O/C field in the packet header of the first data packet is set to a first value, which is used to indicate that the first data packet is an original data packet.
  • the first value can be 1 or 0.
  • the length of the offset field in FIG. 31b may be 8 bits, which is used to indicate the offset number of the sequence number of the original data packet relative to the sequence number of the equivalent original data packet.
  • the length of the SI field in FIG. 31a and FIG. 31b is 2 bits, which is used to indicate the position information of the data of the first data packet in the data unit corresponding to the data, and its value and meaning are shown in Table 1 below.
  • each of the foregoing second data packets includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded).
  • the encoded packet header of each second data packet includes identification information used to indicate the Q equivalent original data packets obtained by encoding the second data packet, and a coding factor field (such as a Coeff ID field), and may optionally also include second indication information.
  • the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the identification information of Q equivalent original data packets that is used to indicate that coding obtains this second data packet is the Block ID field, or includes at least two of the following: the information indicating the window length of the coding window, the first first in the coding window The sequence number of the data packet, the sequence number of the last first data packet in the encoding window. It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window.
  • the length of the encoding factor field (such as the Coeff ID field) in the encoding packet header is 8 bits, which is used to indicate the row index of the 255-row codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
  • the above-mentioned encoded packet header may also include one or more of the Type field and the Packet ID field.
  • the Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
  • the implementation manner of the sequence number of the encoded packet and the original data packet may refer to the corresponding description in the foregoing Embodiment 1, which will not be repeated here.
  • the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not
  • the packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets.
  • the following steps S405 to S407 will introduce the data transmission process of the decoding end in detail.
  • the second device acquires P data packets, where the P data packets include K first data packets and P-K second data packets.
  • the second device decodes the P data packets to obtain N first data packets after decoding.
  • the second device restores the data of the N first data packets into one or more data units according to the segmentation information included in the packet header of each of the N first data packets.
  • the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S406.
  • the second device determines whether the received data packet is an encoded packet or an original data packet.
  • the second device parses the packet header of the data packet to obtain the coding factor field (that is, the Coeff ID field) by using the parsing method of the original data packet.
  • a certain data packet is a second data packet (that is, an encoded packet)
  • the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding
  • the identification information of Q equivalent original data packets of the data packet is obtained.
  • the P data packets include K first data packets and P-K second data packets.
  • the Q equivalent original data packets are equal in size. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
  • the data packets whose packet length is less than the sum of the above-mentioned preset size and the header size of the original data packets in the P data packets (or K first data packets) determine whether the values of the encoding factor fields in these data packets are the same, and set the The data packets with the same value of the coding factor field are equivalently concatenated (it should be understood that the equivalent concatenation here does not refer to real concatenation, but multiple data packets with the same value of the coding factor field are regarded as a complete data. In other words, a mapping relationship is established between multiple data packets with the same value of the coding factor field and an equivalent third data packet) to obtain an equivalent third data packet.
  • sequence numbers of the original data packets that can be equivalently concatenated into a third data packet are consecutive. If the length of the equivalent third data packet is less than the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is incomplete, and the equivalent concatenation of the third data packet is discarded. All first packets (ie original packets) of the packet. If the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is complete, that is, received correctly. It should be understood that if the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, the equivalent third data packet is the equivalent original data packet.
  • the second device parses the packet header of the data packet and the sequence number and offset fields of the data packet by using the parsing method of the original data packet.
  • a certain data packet is a second data packet (that is, an encoded packet)
  • the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding
  • the identification information of Q equivalent original data packets of the data packet is obtained.
  • the P data packets include K first data packets and P-K second data packets. For the P data packets (or the K first data packets) whose packet length is less than the sum of the above-mentioned preset size and the header size of the original data packet, determine that the sequence numbers of these data packets are subtracted from the offset in the respective packet headers.
  • the data packets with the same difference are equivalently concatenated (it should be understood that the equivalent concatenation here does not refer to the real concatenation, but the value of the encoding factor field is much the same.
  • Each data packet is regarded as a complete data packet, or in other words, a mapping relationship is established between multiple data packets with the same value of the coding factor field and an equivalent third data packet) to obtain an equivalent third data packet.
  • the sequence numbers of the original data packets that can be equivalently concatenated into a third data packet are consecutive.
  • the equivalent third data packet is less than the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is incomplete, and the equivalent concatenation of the third data packet is discarded. All first packets (ie original packets) of the packet. If the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is complete, that is, received correctly. It should be understood that if the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, the equivalent third data packet is the equivalent original data packet.
  • K first data packets ie, original data packets
  • T is less than or equal to K and T is a positive integer.
  • T+P-K the total number of equivalent original data packets and encoded packets (that is, second data packets) correctly received by the second device
  • N the total number of equivalent original data packets and encoded packets (that is, second data packets) correctly received by the second device
  • the second device according to the T equivalent original data packets
  • the sequence number is sorted from small to large, the indication of the encoding factor field in the encoded packet header of the P-K second data packets, and the packet header of any second data packet used to indicate that the Q number of the second data packet is obtained by encoding, etc.
  • the identification information of the original data packet constitutes a coefficient factor matrix.
  • the rank of the coefficient factor matrix is equal to N.
  • the second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets (or T equivalent original data packets), and obtain the decoded Nth data packets. a packet.
  • the second device obtains the decoded N first data packets (that is, the original data packets), according to the segmentation information included in the packet header of each of the N first data packets, the N first data packets Packet data is reduced to one or more data units.
  • the N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size.
  • Each first data packet includes a packet header and data
  • each second data packet includes an encoded packet header and encoded data.
  • K, P, and Q are all positive integers, K is less than or equal to P, N ⁇ P ⁇ N+M, and Q is less than or equal to N.
  • FIG. 32 is a schematic diagram of constructing a coefficient factor matrix provided by an embodiment of the present application. It is assumed that the original data packets with sequence numbers 3 and 4 (ie, Pkt3 and Pkt4) correspond to an equivalent original data packet, and the original data packets with sequence numbers of 5 and 6 (ie, Pkt5 and Pkt6) correspond to another equivalent original data packet. It is assumed here that the original data packets Pkt2 and Pkt3 are lost due to factors such as channel fading and interference.
  • the values of the Coeff ID fields in Pkt3 and Pkt4 are the same, the values of the Coeff ID fields in Pkt5 and Pkt6 are the same, and the values of the Coeff ID fields in Pkt3 and Pkt5 are different.
  • the size of the data block that is, the number of equivalent original data packets Q used for encoding is semi-static configuration.
  • the decoding end ie the second device
  • the decoding end discards Pkt4, that is, the decoding end (ie the second device) thinks that both Pkt3 and Pkt4 are lost, that is, the corresponding Pkt3 and Pkt4 Equivalent to original packet loss.
  • the decoding end (ie, the second device) ignores the Coeff ID field carried in Pkt4 when constructing the coefficient factor matrix. Since the values of the Coeff ID fields of Pkt5 and Pkt6 received by the decoding end (ie, the second device) are the same, and the sum of the lengths of Pkt5 and Pkt6 is equal to the sum of the above preset size and the header size of the original data packet, the decoding The end (ie, the second device) considers that Pkt5 and Pkt6 are correctly received, or that the equivalent original data packets corresponding to Pkt5 and Pkt6 are not lost.
  • the decoding end ie, the second device
  • the rank of the coefficient factor matrix is Q.
  • two equivalent original data packets ie, equivalent original data packets with sequence numbers 2 and 3
  • at least two encoded packets are required for joint decoding.
  • the size of the data block that is, the number Q of equivalent original data packets used for encoding is semi-static configuration.
  • the value of the offset field in Pkt5 received by the decoding end ie, the second device
  • the value of the offset field in Pkt6 is 2.
  • the packet length of Pkt4 received by the decoding end is smaller than the sum of the above-mentioned preset size and the header size of the original data packet, and there is no original data packet in the received original data packet.
  • the decoding end discards Pkt4, that is, the decoding end (ie the second device) considers that both Pkt3 and Pkt4 are lost, that is, the equivalent original data packets corresponding to Pkt3 and Pkt4 (the equivalent original data packets The serial number is 3) lost.
  • the decoding end constructs a coefficient factor matrix (the coefficient factor matrix shown in Figure 33, the columns of the coefficient factor matrix are from left to right) according to the serial number of the equivalent original data packet and the Coeff ID field of the encoded packet.
  • the sequence numbers corresponding to the equivalent original data packets are arranged from small to large).
  • the rank of the coefficient factor matrix is Q.
  • the decoding end ie, the second device
  • feedback messages are separately designed for the two cases of decoding success and decoding failure.
  • the storage at the encoding end (that is, the first device) and the decoding end (that is, the second device) refers to the foregoing Embodiment 1.
  • the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message.
  • the RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
  • the embodiments of the present application provide a data transmission method supporting network coding in a pure segmentation scenario, which can be applied not only in scenarios that do not depend on the size of SDUs or PDUs, that is, the sizes of different SDUs or PDUs may be the same or different, For example, it can be compatible with the NR protocol, and can recover PDU or SDU even when multiple original data packets are lost, reducing performance loss.
  • the first device and the second device may be divided into functional modules according to the foregoing method examples.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. middle.
  • the above-mentioned integrated modules can be implemented in the form of hardware, and can also be implemented in the form of software function modules. It should be noted that, the division of modules in the embodiments of the present application is schematic, and is only a logical function division, and there may be other division manners in actual implementation.
  • the data transmission apparatus according to the embodiment of the present application will be described in detail below with reference to FIG. 33 to FIG. 37 .
  • FIG. 33 is a schematic structural diagram of a data transmission apparatus 1 provided by an embodiment of the present application.
  • the data transmission apparatus 1 may be the first device or may be a chip or circuit provided in the first device.
  • the data transmission device 1 includes: an acquisition module 11 , a transmission module 12 , and an encoding module 13 .
  • the acquisition module 11 is used to acquire N first data packets; the transmission module 12 is used to transmit the N first data packets acquired by the acquisition module 11; the encoding module 13 is used to acquire the N first data packets
  • the N first data packets acquired by the module 11 are encoded and the encoded packet headers are added to obtain M second data packets; the transmission module 12 is also used for transmitting the M second data packets.
  • the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the packet header of each first data packet further includes a data packet identification field.
  • the data packet identification field is used to indicate the sequence number of the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet. Both N and M are positive integers.
  • the data transmission apparatus 1 can correspondingly execute the foregoing first embodiment, and the above operations or functions of each unit in the data transmission apparatus 1 are intended to implement the corresponding operations of the first device in the foregoing first embodiment, respectively. , and its technical effect can be referred to the technical effect in the foregoing Embodiment 1, which is not repeated here for brevity.
  • the acquisition module 11 is used to acquire N first data packets; the encoding module 13 is used to encode the N first data packets acquired by the acquisition module 11 and add the encoded packet header to obtain M. the second data packets; the transmission module 12 is used for transmitting the M second data packets.
  • the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the encoded packet header includes an encoding factor field.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • M is greater than N, and both N and M are positive integers.
  • the data transmission apparatus 1 can correspondingly execute the foregoing second embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are to implement the corresponding operations of the first device in the foregoing second embodiment, respectively. , and its technical effect can be referred to the technical effect in the foregoing second embodiment, which is not repeated here for the sake of brevity.
  • the acquisition module 11 is used for N first data packets; the transmission module 12 is used to transmit the N first data packets acquired by the acquisition module 11; the encoding module 13 is used for the acquisition module 11.
  • the N first data packets obtained are encoded and the encoded packet headers are added to obtain M second data packets; the transmission module 12 is also used for transmitting the M second data packets.
  • the sizes of the N first data packets are not completely equal.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field.
  • the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size.
  • the packet header of each first data packet further includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • N, M, and Q are all positive integers, and Q is less than or equal to N.
  • the data transmission apparatus 1 can correspondingly execute the foregoing fourth embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are to implement the corresponding operations of the first device in the foregoing fourth embodiment, respectively.
  • its technical effects refer to the technical effects in the foregoing fourth embodiment, which are not repeated here for brevity.
  • the above acquisition module 11 and the above encoding module 13 may be integrated into one module, such as a processing module.
  • the above-mentioned transmission module 12 may also be referred to as a transceiver module.
  • FIG. 34 is another schematic structural diagram of the data transmission apparatus 1 provided by the embodiment of the present application.
  • the data transmission apparatus 1 may be the first device or may be a chip or circuit provided in the first device.
  • the data transmission apparatus 1 includes: an acquisition module 21 , a generation module 22 , a transmission module 23 , and an encoding module 24 .
  • the acquisition module 21 is used to acquire the concatenated data packets; the generation module 22 is used to generate N first data packets according to the concatenated data packets acquired by the acquisition module 21 ; the transmission module 23 is used to transmit the generation module 22 The N first data packets generated; the encoding module 24 is used to encode the N first data packets and obtain M second data packets after adding the encoded packet header; the transmission module 23 is also used to transmit the M second data packets a second packet.
  • the concatenated data packet includes a concatenated packet header and concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit.
  • Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes the sequence number of the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet. Both N and M are positive integers.
  • the value of j is an integer in the interval [1,N].
  • the above-mentioned acquisition module 21, the above-mentioned generation module 22, and the above-mentioned encoding module 24 may be integrated into one module, such as a processing module.
  • the above-mentioned transmission module 23 may also be referred to as a transceiver module.
  • the data transmission apparatus 1 can correspondingly execute the foregoing third embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are respectively in order to realize the corresponding operations of the first device in the foregoing third embodiment.
  • the technical effects in the foregoing third embodiment will not be repeated here.
  • FIG. 35 is a schematic structural diagram of a data transmission apparatus 2 provided by an embodiment of the present application.
  • the data transmission apparatus 2 may be the second device or may be a chip or circuit provided in the second device.
  • the data transmission device 2 includes: an acquisition module 31 , a decoding module 32 , and a restoration module 33 .
  • the acquisition module 31 is used to acquire P data packets; the decoding module 32 is used to decode the P data packets to obtain N first data packets after decoding; the restoration module 33 is used to restore the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the P data packets include K first data packets and P-K second data packets.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes a data packet identification field.
  • the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets have the same size.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
  • the above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine the K first data packets and the P-K first data packets from the P data packets. Two data packets; analyze the packet header of each first data packet in the K first data packets by the analysis method of the original data packet, obtain the serial number of the first data packet, and use the analysis method of the encoded packet to analyze the P-K data packets
  • the encoded packet header of the second data packet in the second data packet obtains the encoding factor field; according to the sequence numbers of the K first data packets and the indication of the encoding factor field in the packet header of the P-K second data packets, the coefficient factor is formed matrix; using the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, and obtain the decoded N-K first data packets.
  • the rank of the coefficient factor matrix is equal to N.
  • the corresponding relationship between the N first data packets and the M second data packets is carried in the N first data packets and/or the M second data packets.
  • the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
  • the headers of the M second data packets may include identification information for indicating the N first data packets from which the second data packets are encoded to indicate the corresponding relationship.
  • the above-mentioned length threshold is an encoded packet length threshold L1.
  • the above-mentioned decoding module 32 is also specifically used for: comparing the length of each data packet in the P data packets and the size relationship of the encoded packet length threshold L1; if the length of a certain data packet in the P data packets is equal to the Encoded packet length threshold L1, then determine that the data packet is the second data packet (encoded packet); if the length of a data packet in the P data packets is less than the encoded packet length threshold L1, then determine that the data packet is the first packet data packets (original data packets); thus, K first data packets and P-K second data packets are determined from the P data packets.
  • the above-mentioned length threshold is the original data packet length threshold L2.
  • the above-mentioned decoding module 32 is also specifically used for: comparing the length of each data packet in the P data packets and the size relationship of the original data packet length threshold L2; if the length of a certain data packet in the P data packets is less than or equal to the original packet length threshold L2, then determine that the packet is the first packet (original packet); if the length of a certain packet in the P packets is greater than the original packet length threshold L2, then determine The data packet is a second data packet (encoded packet); thus K first data packets and P-K second data packets are determined from the P data packets.
  • the header of each first data packet further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is an original data packet.
  • the encoded packet header of each second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
  • the data transmission device 2 can correspondingly execute the foregoing first embodiment, and the above operations or functions of each unit in the data transmission device 2 are respectively in order to realize the corresponding operations of the second device in the foregoing first embodiment.
  • the technical effects please refer to For the sake of brevity, the technical effects in the foregoing Embodiment 1 will not be repeated here.
  • the acquisition module 31 is used to acquire P data packets; the decoding module 32 is used to decode the P data packets to obtain the decoded N first data packets; the restoration module 33 is used to restore the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
  • the P data packets are all encoded packets. Each data packet includes an encoded packet header and encoded data, the encoded packet header including an encoding factor field.
  • the N first data packets have the same size.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet.
  • the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • P is greater than or equal to N, where N is a positive integer and P is a positive integer.
  • the above-mentioned decoding module 32 is specifically configured to: parse the encoded packet headers of the P data packets by using the parsing method of the encoded packets to obtain the encoding factor field carried by each encoded packet header, and utilize the encoding of the P data packets.
  • the indication of the encoding factor field in the packet header constitutes a coefficient factor matrix; the encoded data of the P data packets are decoded by using the coefficient factor matrix, and N first data packets after decoding are obtained.
  • the data transmission apparatus 2 can correspondingly execute the foregoing second embodiment, and the above operations or functions of each unit in the data transmission apparatus 2 are respectively in order to realize the corresponding operations of the second device in the foregoing second embodiment.
  • the technical effects in the foregoing Embodiment 2 will not be repeated here.
  • the obtaining module 31 is used to obtain P data packets; the decoding module 32 is used to decode the P data packets to obtain N first data packets after decoding, the N first data packets. The sizes of the first data packets are not completely equal; the restoring module 33 is used to restore the data of the N first data packets into a One or more data units.
  • the P data packets include K first data packets and P-K second data packets.
  • Each first data packet includes a packet header and data.
  • the header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet.
  • the packet header of each first data packet further includes a data packet identification field.
  • the data packet identification field is used to indicate the sequence number of the first data packet.
  • the N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size.
  • the packet header of each first data packet further includes a coding factor field or an offset field.
  • the offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • P is greater than or equal to N
  • N is greater than or equal to Q
  • P, N, and Q are all positive integers.
  • the header of each first data packet includes a coding factor field.
  • the above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the P-K second data packets are analyzed by the analysis method of the encoded packet In the coding packet header of the second data packet, the coding factor field is obtained; according to the indication of the coding factor field in the packet header of the K first data packets and the indication of the coding factor field in the coding packet header of the P-K second data packets, A coefficient factor matrix is formed; the encoded data of the P-K second data packets and the K first data packets are jointly decoded using the coefficient factor matrix to obtain N decoded first data packets.
  • the header of each first data packet further includes an offset field, and the offset field is used to indicate that the sequence number of the first data packet is relative to the sequence of the equivalent original data packet corresponding to the first data packet. number of offsets.
  • the above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number and offset field of the first data packet are obtained, and the P-K data packets are analyzed by the analysis method of the encoded packet The encoding factor field is obtained from the encoded packet header of the second data packet in the second data packet; according to the sequence number and offset field of the first data packet in the packet header of the K first data packets, and the P-K second data packets The indication of the encoding factor field in the packet header of the encoded packet forms a
  • the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet.
  • the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
  • the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; each second data packet includes an encoded packet header and Encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  • the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
  • the data transmission device 2 can correspondingly execute the foregoing fourth embodiment, and the above-mentioned operations or functions of each unit in the data transmission device 2 are respectively in order to realize the corresponding operations of the second device in the foregoing fourth embodiment.
  • the technical effects in the foregoing Embodiment 4 will not be repeated here.
  • the acquisition module 31 , the decoding module 32 , and the restoration module 33 may be integrated into one module, such as a processing module.
  • the above obtaining module 31 may include a transceiving unit for transceiving data packets or information and the like.
  • FIG. 36 is another schematic structural diagram of the data transmission apparatus 2 provided by the embodiment of the present application.
  • the data transmission apparatus 2 may be the second device or may be a chip or circuit provided in the second device.
  • the data transmission device 2 includes: an acquisition module 41 , a decoding module 42 , a restoration module 43 , and a segmentation module 44 .
  • the acquisition module 41 is used to acquire P data packets; the decoding module 42 is used to decode the P data packets acquired by the acquisition module 41 to obtain the decoded N first data packets; the restoration module 43 , is used to restore the data of the N first data packets into a concatenated data packet according to the sequence number size order of the N first data packets; the segmentation module 44 is also used for according to the packet header of the concatenated packet.
  • the concatenation information of a plurality of data units of the concatenated data is formed, and the concatenated data is divided into a plurality of data units.
  • the P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data.
  • the header of each first data packet includes the sequence number of the first data packet. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal.
  • the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts.
  • the concatenated data packet includes the concatenated packet header and the concatenated data.
  • the concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit.
  • the first data packet is an original data packet
  • the second data packet is an encoded packet.
  • the value of j is an integer in the interval [1,N]. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
  • the above-mentioned decoding module 42 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine the K first data packets and the P-K first data packets from the P data packets. Two data packets; analyze the packet header of each first data packet in the K first data packets by the analysis method of the original data packet, obtain the serial number of the first data packet, and use the analysis method of the encoded packet to analyze the P-K data packets
  • the encoded packet header of the second data packet in the second data packet obtains the encoding factor field; according to the sequence numbers of the K first data packets and the indication of the encoding factor field in the packet header of the P-K second data packets, the coefficient is formed factor matrix; using the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, and obtain the decoded N-K first data packets.
  • the rank of the coefficient factor matrix is equal to N.
  • the decoded N-K first data packets and the K first data packets belong to the N first data packets.
  • the length threshold is the encoded packet length threshold L1.
  • the length threshold is the original packet length threshold L2.
  • the header of each first data packet further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is an original data packet.
  • Each second data packet includes an encoded packet header and encoded data.
  • the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located.
  • the second data packet is an encoded packet.
  • the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
  • the acquisition module 41, the decoding module 42, the restoration module 43, and the segmentation module 44 may be integrated into one module, such as a processing module.
  • the above obtaining module 41 may include a transceiving unit for transceiving data packets or information and the like.
  • the data transmission device 2 can correspondingly execute the foregoing third embodiment, and the above operations or functions of each unit in the data transmission device 2 are respectively to implement the corresponding operations of the second device in the foregoing third embodiment.
  • the technical effects in the foregoing third embodiment will not be repeated here.
  • the encoding module in the above embodiments may correspond to an encoder, and the decoding module may correspond to a decoder.
  • the encoder or decoder can be implemented by hardware circuits or software.
  • the functions of the modules other than the encoding module, the decoding module, and the modules corresponding to the transceiver unit may be implemented by the processor.
  • FIG. 37 is a schematic structural diagram of a communication apparatus provided by an embodiment of the present application.
  • the communication apparatus 1000 provided in this embodiment of the present application can be used to implement the method described in the foregoing method embodiment, and reference may be made to the description in the foregoing method embodiment.
  • the communication apparatus 1000 may be any one of the aforementioned first device and the aforementioned second device.
  • the Communication device 1000 includes one or more processors 1001 .
  • the processor 1001 may be a general-purpose processor or a special-purpose processor, or the like.
  • it may be a baseband processor, or a central processing unit.
  • the baseband processor may be used to process communication protocols and communication data
  • the central processing unit may be used to control devices (eg, communication equipment, base stations or chips, etc.), execute software programs, and process data of software programs.
  • the apparatus may include a transceiving unit for implementing signal input (reception) and output (transmission).
  • the device may be a chip, and the transceiver unit may be an input and/or output circuit of the chip, or a communication interface.
  • the chip can be used in communication equipment or access network equipment (such as base stations).
  • the apparatus may be a communication device (such as a UE) or an access network device (such as a base station), and the transceiver unit may be a transceiver, a radio frequency chip, or the like.
  • the communication apparatus 1000 includes one or more processors 1001, and the one or more processors 1001 can implement the method of the first apparatus or the second apparatus in any of the foregoing embodiments.
  • processor 1001 may also implement other functions in addition to implementing the method in any of the foregoing embodiments.
  • the processor 1001 may also include instructions 1003, and the instructions may be executed on the processor, so that the communication apparatus 1000 executes the method described in any of the foregoing method embodiments.
  • the communication apparatus 1000 may also include a circuit, and the circuit may implement the function of the first device or the second device in any of the foregoing method embodiments.
  • the communication device 1000 may include one or more memories 1002 having stored thereon instructions 1004 that may be executed on the processor to cause the communication device 1000 to perform any of the above The method described in the method example.
  • data may also be stored in the memory.
  • Instructions and/or data may also be stored in the optional processor.
  • the one or more memories 1002 may store the first data packet described in the above embodiments, or other information involved in the above embodiments.
  • the processor and the memory can be provided separately or integrated together.
  • the communication apparatus 1000 may further include a transceiver unit 1005 and an antenna 1006, or a communication interface.
  • the transceiver unit 1005 may be referred to as a transceiver, a transceiver circuit, or a transceiver, etc., and is used to implement the transceiver function of the device through the antenna 1006 .
  • the communication interface (not shown in the figure) can be used for the communication between the core network device and the access network device, or between the access network device and the access network device.
  • the communication interface may be a wired communication interface, such as an optical fiber communication interface.
  • the processor 1001 which may be referred to as a processing unit, controls an apparatus such as a communication device.
  • processors in the embodiments of the present application may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (digital signal processors, DSP), dedicated integrated Circuit (application specific integrated circuit, ASIC), off-the-shelf programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the memory in the embodiments of the present application may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically programmable Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • Volatile memory may be random access memory (RAM), which acts as an external cache.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • enhanced SDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous connection dynamic random access memory Fetch memory
  • direct memory bus random access memory direct rambus RAM, DR RAM
  • the above embodiments may be implemented in whole or in part by software, hardware (eg, circuits), firmware, or any other combination.
  • the above-described embodiments may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated.
  • the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be downloaded from a website site, computer, server or data center Transmission to another website site, computer, server or data center by means of wire, such as optical fiber, or wireless, such as infrared, wireless, microwave, etc.
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, or the like that contains one or more sets of available media.
  • the usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVDs), or semiconductor media.
  • the semiconductor medium may be a solid state drive.
  • the embodiments of the present application also provide a computer program product, the computer program product includes computer program code, when the computer program code is run on a computer, the computer program code causes the computer to execute the method steps of the first device described in the foregoing embodiments; or When the computer program code is run on a computer, the computer is caused to perform the method steps of the second device described in the foregoing embodiments.
  • Embodiments of the present application further provide a computer-readable storage medium, where program instructions are stored on the computer-readable storage medium, and when the computer-readable storage medium runs on a computer, the computer can execute the method steps of the first device described in the foregoing embodiments. ; or when the computer program code is run on a computer, causing the computer to execute the method steps of the second device described in the foregoing embodiments.
  • An embodiment of the present application further provides a device, and the device may be a chip.
  • the chip includes a processor.
  • the processor is configured to read and execute a computer program stored in the memory to perform the method of any possible implementation of any of the foregoing embodiments.
  • the chip further includes a memory, and the memory is connected to the processor through a circuit or a wire.
  • the chip further includes a communication interface, and the processor is connected to the communication interface.
  • the communication interface is used for receiving data and/or signals to be processed, the processor obtains the data and/or signals from the communication interface, processes the data and/or signals, and outputs the processing result through the communication interface.
  • the communication interface may be an input-output interface.
  • processor and memory may be physically independent units, or the memory may also be integrated with the processor.
  • a communication system in another embodiment, is also provided, where the communication system includes a first device and a second device.
  • the first device and the second device may perform the method in any of the foregoing embodiments.
  • the process can be completed by instructing the relevant hardware by a computer program, and the program can be stored in a computer-readable storage medium.
  • the program When the program is executed , which may include the processes of the foregoing method embodiments.
  • the aforementioned storage medium includes: ROM or random storage memory RAM, magnetic disk or optical disk and other mediums that can store program codes.

Abstract

The present application relates to the field of mobile communications, can be applied under the framework of protocols such as LTE or NR, and in particular, relates to a data transmission method and apparatus, and a readable storage medium. The method comprises: segmenting and/or concatenating SDUs/PDUs to obtain data packets to be encoded; encoding said data packets to generate encoded packets; and sending the encoded packets and information indicating the segmentation and/or concatenation. In this way, network coding technology can be applied to SDUs/PDUs, so that PDUs/SDUs can be recovered when multiple SDUs/PDUs are lost, thereby reducing performance loss and retransmissions, and reducing delay. The present application can be applied to XR services and low-delay services.

Description

数据传输方法、装置及可读存储介质Data transmission method, device and readable storage medium
本申请要求于2021年04月30日提交中国专利局、申请号为202110483034.0、申请名称为“数据传输方法、装置及可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202110483034.0 and the application title "Data Transmission Method, Device and Readable Storage Medium" filed with the China Patent Office on April 30, 2021, the entire contents of which are incorporated by reference in in this application.
技术领域technical field
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置及可读存储介质。The present application relates to the field of communication technologies, and in particular, to a data transmission method, an apparatus, and a readable storage medium.
背景技术Background technique
网络编码技术是一种通过对若干个大小相同的数据包进行编码获得编码数据包(简称为编码包),并通过对足够的编码数据包进行译码恢复原数据包的方法。因为编码数据包融合了若干个原数据包的信息,所以接收端可以用编码数据包来恢复原数据包。该技术是一种可以有效改善无线通信系统传输性能的方法。Network coding technology is a method of obtaining encoded data packets (referred to as encoded packets) by encoding several data packets of the same size, and recovering the original data packets by decoding enough encoded data packets. Because the encoded data packet combines the information of several original data packets, the receiving end can use the encoded data packet to restore the original data packet. This technology is a method that can effectively improve the transmission performance of wireless communication systems.
现有通信系统中,虽然反馈重传实现了有效的差错控制,如媒体接入控制(media access control,MAC)层的混合自动重传请求(hybrid automatic repeat request,HARQ)机制和无线链路控制(radio link control,RLC)层的自动重传请求重传机制联合保证了传输的可靠性。但是随着通信技术的演进及发展,新一代无线接入技术(new radio access technology,NR/5G)对系统的可靠性、有效性等提出了更高的需求,反馈重传机制也面临着诸多问题,比如多播或者广播场景中频繁的反馈导致的开销大及性能损失问题,突发连续错误场景、双连接或者多连接拥堵场景下的性能损失严重等问题。由于网络编码技术是一种前向纠错技术,其通过对原始数据包进行编码并预先增加冗余来对抗无线传输中的丢包或性能损失等问题,可以减少反馈开销,所以网络编码为新一代无线接入技术提供了一种保证传输可靠性的不同解决思路。In the existing communication system, although feedback retransmission achieves effective error control, such as the hybrid automatic repeat request (HARQ) mechanism of the media access control (MAC) layer and the radio link control The automatic retransmission request retransmission mechanism of the (radio link control, RLC) layer jointly ensures the reliability of transmission. However, with the evolution and development of communication technology, the new radio access technology (NR/5G) puts forward higher requirements for system reliability and effectiveness, and the feedback retransmission mechanism also faces many challenges. Problems, such as high overhead and performance loss caused by frequent feedback in multicast or broadcast scenarios, serious performance loss in burst continuous error scenarios, dual-connection or multi-connection congestion scenarios, etc. Since network coding technology is a forward error correction technology, it can reduce feedback overhead by encoding original data packets and adding redundancy in advance to combat packet loss or performance loss in wireless transmission, so network coding is a new A generation of wireless access technology provides a different solution to ensure transmission reliability.
然而,因为网络编码技术要求原数据的大小均相同,而现有NR协议中,任何一层对应的业务数据单元(service data unit,SDU)或者协议数据单元(protocol data unit,PDU)大小都无法保证是相同的,所以现有NR协议无法支持网络编码技术。However, because the network coding technology requires the size of the original data to be the same, in the existing NR protocol, the size of the service data unit (SDU) or protocol data unit (PDU) corresponding to any layer cannot be The guarantees are the same, so existing NR protocols cannot support network coding techniques.
如何使网络编码技术在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下获得应用是当前亟待解决的问题。How to enable the network coding technology to be applied in scenarios that do not depend on the size of the SDU or PDU, that is, different SDU or PDU sizes may be the same or different, is an urgent problem to be solved at present.
发明内容SUMMARY OF THE INVENTION
本申请实施例提供一种数据传输方法、装置及可读存储介质,可以使网络编码技术在不依赖于SDU或PDU大小的场景下也可以获得应用。The embodiments of the present application provide a data transmission method, an apparatus, and a readable storage medium, so that the network coding technology can also be applied in scenarios that do not depend on the size of the SDU or PDU.
下面从不同的方面介绍本申请,应理解的是,下面的不同方面的实施方式和有益效果可以互相参考。The present application is described below from different aspects, and it should be understood that the embodiments and beneficial effects of the following different aspects can be referred to each other.
第一方面,本申请提供一种数据传输方法,该方法包括:第一设备获取N个第一数据包,再传输获取到的该N个第一数据包;第一设备对获取到的该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,传输该M个第二数据包。其中,该N个第一数据包的大小相等。每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。换句话说,每个第一数据包的包头中包括该第一数据包的数据与数据单元的映射关系。或者说,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。每个第一数据包的包头还包括数据包标识字段, 用于指示该第一数据包的序列号。该编码包包头包括编码因子字段。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数,且M和N的大小关系不做限定,即M可以小于N,也可以大于N。In a first aspect, the present application provides a data transmission method, the method includes: a first device acquires N first data packets, and then transmits the acquired N first data packets; After encoding the first data packets and adding the encoded packet header, M second data packets are obtained, and the M second data packets are transmitted. Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. In other words, the header of each first data packet includes the mapping relationship between the data of the first data packet and the data unit. In other words, the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The packet header of each first data packet further includes a data packet identification field, which is used to indicate the sequence number of the first data packet. The encoded packet header includes an encoding factor field. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be smaller than N or larger than N.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第一设备是编码端或发送端。第一设备既可以是网络设备,如基站;也可以是终端设备,如用户设备(user equipment,UE)。Optionally, the first device is an encoding end or a transmitting end. The first device may be either a network device, such as a base station, or a terminal device, such as a user equipment (user equipment, UE).
可选的,该N个第一数据包和该M个第二数据包之间的对应关系可以是预定义的,或者,配置给第二设备(即,接收端)的。比如,可以通过将该对应关系携带在该N个第一数据包和/或该M个第二数据包来告知第二设备。具体的,该对应关系可以携带在该N个第一数据包的包头和/或该M个第二数据包的包头。Optionally, the correspondence between the N first data packets and the M second data packets may be predefined, or configured for the second device (ie, the receiving end). For example, the second device may be informed by carrying the corresponding relationship in the N first data packets and/or the M second data packets. Specifically, the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。Predefined in this application may be understood as defining, predefining, storing, pre-storing, pre-negotiating, pre-configuring, curing, or pre-firing.
可见,本方案通过在获得原数据包(即上述第一数据包)后一方面直接发送原数据包来保证接收端的低延时。另一方面对原数据包进行网络编码,在网络编码后发送冗余编码包(即上述第二数据包),因为冗余编码包的编码数据可以恢复出原数据包(这是因为编码数据是由原数据包经过网络编码后得到),并且原数据包中有完整的包头信息,所以即使在传输过程中多个原数据包丢失,也可以根据冗余编码包恢复出原数据包,再根据原数据包的包头携带的分割和级联信息,对原数据包的数据进行分割和级联的逆处理,从而恢复出PDU/SDU数据。因此,本方案不仅可以使网络编码技术在不依赖于SDU或PDU大小的场景下也可以获得应用,从而在现有NR协议中支持网络编码技术,还可以降低时延。此外,即使在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失和重传时延。It can be seen that this solution ensures low latency of the receiving end by directly sending the original data packet after obtaining the original data packet (ie, the above-mentioned first data packet). On the other hand, network coding is performed on the original data packet, and the redundant coding packet (ie the above-mentioned second data packet) is sent after the network coding, because the coded data of the redundant coding packet can restore the original data packet (this is because the coded data is It is obtained from the original data packet after network coding), and the original data packet has complete header information, so even if multiple original data packets are lost during transmission, the original data packet can be recovered according to the redundant encoded packet, and then according to the The segmentation and concatenation information carried in the header of the original data packet is used to perform inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data. Therefore, this solution not only enables the network coding technology to be applied in scenarios that do not depend on the size of the SDU or PDU, so that the network coding technology can be supported in the existing NR protocol, and the delay can also be reduced. In addition, PDUs or SDUs can be recovered even when multiple original data packets are lost, reducing performance loss and retransmission delay.
结合第一方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包的编码包包头还包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。In conjunction with the first aspect, in a possible design, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
可见,本方案通过在包头中增加指示信息来指示该包头所在的数据包是原数据包还是编码包,有利于译码端/接收端区分接收到的数据包是原数据包还是编码包,从而采用不同的方式对接收到的数据包进行解析、译码等操作,以得到PDU/SDU。It can be seen that in this scheme, by adding indication information in the packet header to indicate whether the data packet where the packet header is located is the original data packet or the encoded packet, it is helpful for the decoding end/receiving end to distinguish whether the received data packet is the original data packet or the encoded packet, thereby The received data packets are parsed and decoded in different ways to obtain PDU/SDU.
第二方面,本申请提供一种数据传输方法,该方法包括:第二设备获取P个数据包,并对该P个数据包进行译码,获得译码后的N个第一数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包。In a second aspect, the present application provides a data transmission method. The method includes: a second device obtains P data packets, decodes the P data packets, and obtains decoded N first data packets, the The P data packets include K first data packets and P-K second data packets.
其中,N个第一数据包的大小相等。每个第一数据包包括包头和数据。每个第一数据包的包头包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。每个第二数据包包括编码包包头和编码数据。该每个第二数据包的编码包包头包括编码因子字段。每个第一数据包的包头包括该第一数据包的数据部分对应的至少一个数据单元的分割和级联信息。换句话说,每个第一数据包的包头中包括该第一数据包的数据与数据单元的映射关系。或者说,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。其中,第一数据包是原数据包,第二数据包是编码包。P、K、以及N均为正整数,P大于或等于N,K小于或等于P,K小于或等于N。Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The packet header of each first data packet includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet. Each second data packet includes an encoded packet header and encoded data. The encoded packet header of each second data packet includes an encoding factor field. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet. In other words, the header of each first data packet includes the mapping relationship between the data of the first data packet and the data unit. In other words, the segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. P, K, and N are all positive integers, P is greater than or equal to N, K is less than or equal to P, and K is less than or equal to N.
进一步的,第二设备再根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。Further, the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第二设备是译码端或接收端。第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the second device is a decoding end or a receiving end. The second device may be either a network device, such as a base station, or a terminal device, such as a UE.
可选的,该N个第一数据包和该M个第二数据包之间的对应关系可以是预定义的,或者,从发送端获取的。比如,该对应关系可以携带在该N个第一数据包和/或该M个第二数据包中。具体的,该对应关系可以携带在该N个第一数据包的包头和/或该M个第二数据包的包头。Optionally, the correspondence between the N first data packets and the M second data packets may be predefined, or obtained from the sending end. For example, the corresponding relationship may be carried in the N first data packets and/or the M second data packets. Specifically, the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets.
示例的,该对应关系携带在该M个第二数据包的包头。该对应关系通过用于指示编码得到该第二数据包的N个第一数据包的标识信息来指示。Exemplarily, the corresponding relationship is carried in the packet headers of the M second data packets. The corresponding relationship is indicated by the identification information used to indicate the N first data packets from which the second data packet is obtained by encoding.
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。Predefined in this application may be understood as defining, predefining, storing, pre-storing, pre-negotiating, pre-configuring, curing, or pre-firing.
结合第二方面,在一种可能的设计中,对该P个数据包进行译码,获得译码后的N个第一数据包,包括:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。In combination with the second aspect, in a possible design, decoding the P data packets to obtain N first data packets after decoding, including: according to the length of each data packet in the P data packets And the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt the analytical mode of the original data packets to parse the K first data packets of each first data packet. packet header, obtain the serial number of the first data packet, and use the parsing method of the encoded packet to parse the encoded packet header of the second data packet in the P-K second data packets to obtain the encoding factor field; according to the K first data packets The sequence number and the indication of the coding factor field in the packet header of the P-K second data packets form a coefficient factor matrix; use the coefficient factor matrix to carry out the coding data of the P-K second data packets and the K first data packets. Joint decoding is performed to obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets.
可选的,在该N个第一数据包和/或该M个第二数据包中携带该N个第一数据包和该M个第二数据包之间的对应关系。具体的,该对应关系可以携带在该N个第一数据包的包头和/或该M个第二数据包的包头。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该M个第二数据包的包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息来指示该对应关系。Optionally, the corresponding relationship between the N first data packets and the M second data packets is carried in the N first data packets and/or the M second data packets. Specifically, the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the headers of the M second data packets may include identification information for indicating the N first data packets from which the second data packets are encoded to indicate the corresponding relationship.
可以理解的是,由于第二数据包较第一数据包多了包头,第二数据包的长度比第一数据包长。因而,可以基于数据包的长度来确定该数据包是第一数据包还是第二数据包。It can be understood that since the second data packet has more headers than the first data packet, the length of the second data packet is longer than that of the first data packet. Thus, whether the data packet is the first data packet or the second data packet can be determined based on the length of the data packet.
具体的,可以通过长度阈值来确定。该长度阈值的设定可以区分出第一数据包和第二数据包即可。Specifically, it can be determined by a length threshold. The length threshold can be set to distinguish the first data packet from the second data packet.
可选的,上述长度阈值是编码包长度阈值L1。根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包,包括:比较该P个数据包中每个数据包的长度与该编码包长度阈值L1的大小关系;如果该P个数据包中某个数据包的长度等于该编码包长度阈值L1,则确定该数据包是第二数据包(编码包);如果该P个数据包中某个数据包的长度小于该编码包长度阈值L1,则确定该数据包是第一数据包(原数据包);从而从该P个数据包中确定出K个第一数据包和P-K个第二数据包。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. According to the length of each data packet in the P data packets and the length threshold, determining K first data packets and P-K second data packets from the P data packets, including: comparing each of the P data packets The size relationship between the length of each data packet and the encoded packet length threshold L1; if the length of a data packet in the P data packets is equal to the encoded packet length threshold L1, then it is determined that the data packet is the second data packet (encoded packet ); if the length of a certain data packet in the P data packets is less than the coded packet length threshold L1, then determine that the data packet is the first data packet (original data packet); thus determine K from the P data packets first data packets and P-K second data packets.
可选的,上述长度阈值是原数据包长度阈值L2。根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包,包括:比较该P个数据包中每个数据包的长度与该原数据包长度阈值L2的大小关系;如果该P个数据包中某个数据包的长度小于或等于该原数据包长度阈值L2,则确定该数据包是第一数据包(原数据包);如果该P个数据包中某个数据包的长度大于该原数据包长度阈值L2,则确定该数据包是第二数据包(编码包);从而从该P个数据包中确定出K个第一数据包和P-K个第二数据包。Optionally, the above-mentioned length threshold is the original data packet length threshold L2. According to the length of each data packet in the P data packets and the length threshold, determining K first data packets and P-K second data packets from the P data packets, including: comparing each of the P data packets The length of each data packet is related to the size of the original data packet length threshold L2; if the length of a data packet in the P data packets is less than or equal to the original data packet length threshold L2, it is determined that the data packet is the first data packet packet (original data packet); if the length of a certain data packet in the P data packets is greater than the original data packet length threshold L2, it is determined that the data packet is the second data packet (encoded packet); thus from the P data packets K first data packets and P-K second data packets are determined in the packets.
可见,本方案提供一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a decoding process and operation, so that the original data packet can be correctly decoded when the data packet received by the decoding end is full of rank (rank=N), and the original data packet can be decoded correctly according to the packet header of the original data packet Segment and concatenate information, thereby recovering PDU/SDU, which can reduce the performance loss of NR system.
结合第二方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。这样,以上译码步骤中可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。In conjunction with the second aspect, in a possible design, the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet header of each second data packet includes second indication information for indicating that the second data packet where the second indication information is located is an encoded packet . In this way, in the above decoding step, it is possible to determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then adopt a corresponding parsing method for the packet header of the data packet. to parse.
可见,本方案提供另一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少性能损失和重传时延。It can be seen that this solution provides another decoding process and operation, in order to correctly decode the original data packet when the data packet received by the decoding end is full of rank (rank=N), and carry the original data packet according to the packet header of the original data packet. The segmentation and concatenation information can be recovered to recover the PDU/SDU, thereby reducing performance loss and retransmission delay.
第三方面,本申请提供一种数据传输装置,该数据传输装置可以是第一设备或第一设备中的芯片。该数据传输装置包括:获取模块,用于获取N个第一数据包,该N个第一数据包的大小相等,每个第一数据包包括包头和数据,该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系,该每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号;传输模块,用于传输该获取模块获取到的N个第一数据包;编码模块,用于对该获取模块获取到的N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段;该传输模块,还用于传输该M个第二数据包。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数,且M和N的大小关系不做限定,即M可以小于N,也可以大于N。In a third aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device. The data transmission device includes: an acquisition module for acquiring N first data packets, the N first data packets are of equal size, each first data packet includes a packet header and data, and the packet header of each first data packet Including segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit, each of the The packet header of the first data packet also includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet; the transmission module is used to transmit the N first data packets obtained by the acquisition module; encoding module, used to encode the N first data packets obtained by the acquisition module and add the encoded packet header to obtain M second data packets, and the encoded packet header includes a coding factor field; the transmission module is also used to transmit the M second data packets. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be smaller than N or larger than N.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
结合第三方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包的编码包包头包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。In combination with the third aspect, in a possible design, the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, the encoded packet header of each second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
第四方面,本申请提供一种数据传输装置,该数据传输装置可以是第二设备或第二设备中的芯片。该数据传输装置包括:获取模块,用于获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包,每个第一数据包包括包头和数据,该每个第一数据包的包头包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头包括编码因子字段;译码模块,用于对该P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的大小相等,该每个第一数据包的包头还包括该第一数据包的数据部分对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系;还原模块,用于根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。其中,第一数据包是原数据包,第二数据包是编码包。P和K均为正整数,K小于或等于P。P大于或等于N。In a fourth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device. The data transmission device includes: an acquisition module for acquiring P data packets, the P data packets include K first data packets and P-K second data packets, each first data packet includes a packet header and data, and the P data packets include K first data packets and P-K second data packets. The packet header of each first data packet includes a data packet identification field, the data packet identification field is used to indicate the sequence number of the first data packet, each second data packet includes an encoded packet header and encoded data, and each second data packet includes an encoded packet header and encoded data. The encoded packet header of the data packet includes an encoding factor field; the decoding module is used for decoding the P data packets to obtain N first data packets after decoding, and the N first data packets are equal in size, The header of each first data packet further includes segmentation and concatenation information of at least one data unit corresponding to the data part of the first data packet, where the segmentation and concatenation information is used to indicate that the data of the first data packet is the same as the data of the first data packet. The corresponding relationship of at least one data unit; the restoration module is used to restore the data of the N first data packets into a at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
结合第四方面,在一种可能的设计中,上述译码模块,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第 一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。In combination with the fourth aspect, in a possible design, the above-mentioned decoding module is specifically used to: determine K from the P data packets according to the length and the length threshold of each data packet in the P data packets The first data packet and P-K second data packets; the packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the encoding The analysis method of the package parses the encoded packet header of the second data packet in the P-K second data packets, and obtains the encoding factor field; according to the sequence number of the K first data packets and the P-K second data packets are encoded in the packet headers The indication of the factor field forms a coefficient factor matrix; the encoded data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix, and the decoded N-K first data packets are obtained . Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets.
如何根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包,可以参考第二方面中的描述,在此不予展开。How to determine K first data packets and P-K second data packets from the P data packets according to the length of each data packet in the P data packets and the length threshold, can refer to the description in the second aspect, It will not be expanded here.
结合第四方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;每个第二数据包的编码包包头包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。这样,译码模块可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码包,进而采用相对应的解析方式对该数据包的包头进行解析。上述任一方面的一种实现方式中,一个第一数据包的数据包括一个或多个数据段,一个数据段包括一个PDU/SDU的全部或部分。换句话说,原数据包中的数据包括一个或多个数据段,每个数据段来自不同的PDU/SDU,一个数据段是一个PDU/SDU的全部或部分。In combination with the fourth aspect, in a possible design, the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; each The encoded packet header of the second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet. In this way, the decoding module can determine whether the data packet is an original data packet or an encoded packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method to parse the packet header of the data packet. In an implementation manner of any of the foregoing aspects, data of a first data packet includes one or more data segments, and one data segment includes all or part of a PDU/SDU. In other words, the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU.
可选的,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中的最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D num。第一数据包的数据中数据段的排列方式可以按照PDU/SDU的序列号大小,从小到大排列,即序列号最小的PDU/SDU作为第一个数据段,中间数据段对应的PDU/SDU的序列号依次增加,序列号最大的PDU/SDU作为最后一个数据段。第一数据包的数据中数据段对应的PDU/SDU的序列号也可以乱序排列。 Optionally, the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num . The arrangement of the data segments in the data of the first data packet can be arranged according to the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, and the PDU/SDU corresponding to the middle data segment. The sequence number of the PDU/SDU increases in sequence, and the PDU/SDU with the largest sequence number is used as the last data segment. The sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may also be arranged out of order.
可选的,每个第一数据包的包头还可以包括类型(Type)字段和块标识(Block ID)字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,块标识(Block ID)字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet, and the Block ID field is used to indicate the identification of the data block, which includes the Block ID field. in the first packet.
进一步的,通过在第二数据包的包头也携带该块标识,可以通过该块标识指示编码得到该第二数据包的多个第一数据包。Further, by also carrying the block identifier in the header of the second data packet, a plurality of first data packets of the second data packet can be obtained through the block identifier instruction encoding.
可见,本方案通过指示每个数据段是否是最后一个数据段,并为每一个数据段指示其长度,有利于译码端根据原数据包(即上述第一数据包)的包头的指示对原数据(即上述第一数据包的数据)进行分割和级联,以恢复出一个或多个PDU/SDU。It can be seen that by indicating whether each data segment is the last data segment, and indicating its length for each data segment, this scheme is beneficial to the decoding end according to the instruction of the original data packet (that is, the above-mentioned first data packet). The data (that is, the data of the above-mentioned first data packet) is segmented and concatenated to recover one or more PDUs/SDUs.
上述任一方面的一种实现方式中,上述分割和级联信息包括:该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元的序列号,或者该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号;指示该第一数据包的数据包括的第i个数据段是否是最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的 信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the above aspects, the above-mentioned segmentation and concatenation information includes: the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet segment) the sequence number of the corresponding data unit, or the maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating the i-th data included in the data of the first data packet whether the segment is the last data segment (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num .
可见,本方案通过在包头中指示起始数据段和/或末尾数据段对应的PDU/SDU的序列号,可以指示出多个第一数据包的数据中数据段所来自的PDU/SDU,以使译码端能够将不同的数据段恢复成PDU/SDU。It can be seen that, by indicating the sequence number of the PDU/SDU corresponding to the start data segment and/or the end data segment in the packet header, this scheme can indicate the PDU/SDU from which the data segment in the data of the plurality of first data packets comes, so as to It enables the decoding end to recover different data segments into PDU/SDU.
上述任一方面的一种实现方式中,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段是否是最后一个数据段(或者说,该第一数据包的数据中第一个数据段后是否存在下一个数据段)以及该第一个数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该第一数据包的数据包括的第i个数据段是否是最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any of the above aspects, the above-mentioned segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, the data of the first data packet). whether there is a next data segment after the first data segment in the information on whether the i-th data segment included in the data of the packet is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the i-th segment Information about the length of the data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num .
可见,本方案通过指示第一数据包的数据中起始数据段和末尾数据段对应的数据单元是否完整,并为每个数据段都设置1bit的扩展比特字段来指示该数据段是否是最后一个数据段,并为每一个数据段设置一个长度字段来指示其长度,有利于译码端根据原数据包的包头的指示对原数据进行分割和级联,以恢复出一个或多个PDU/SDU。It can be seen that this scheme indicates whether the data unit corresponding to the start data segment and the end data segment in the data of the first data packet is complete, and sets a 1-bit extended bit field for each data segment to indicate whether the data segment is the last one. data segment, and set a length field for each data segment to indicate its length, which is helpful for the decoding end to segment and concatenate the original data according to the instruction of the original data packet header, so as to recover one or more PDU/SDU .
上述任一方面的一种实现方式中,上述分割和级联信息包括:上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据中包括的数据段的个数的信息;以及指示每个数据段的长度的信息。In an implementation manner of any of the above aspects, the above-mentioned segmentation and concatenation information includes: the above-mentioned segmentation and concatenation information includes: indicating the first data segment (or start data segment) in the data of the first data packet and/ Or information on whether the data unit corresponding to the last data segment (or end data segment) is divided, or indicates the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet information whether to be divided; information indicating the number of data segments included in the data of the first data packet; and information indicating the length of each data segment.
应理解,如果第一数据包的总长度可以确定,第一数据包的包头长度也可以确定,则上述分割和级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该第一数据包的总长度、该第一数据包的包头长度以及D num-1个数据段的长度计算得出。D num表示第一数据包的数据中包括的数据段总数。 It should be understood that, if the total length of the first data packet can be determined, and the header length of the first data packet can also be determined, the above-mentioned segmentation and concatenation information may only include the length of each data segment in the D num −1 data segments. , instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of the data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
可见,本方案通过指示第一数据包的数据中包括的数据段个数,无需针对每个数据段都指示其是否是最后一个数据段,可以节省开销。It can be seen that this solution can save overhead by indicating the number of data segments included in the data of the first data packet, without indicating whether each data segment is the last data segment.
上述任一方面的一种实现方式中,每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息。该用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识(Block ID)字段或包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。应理解,如果编码窗的窗长是半静态配置的,则用于指示编码得到该第二数据包的N个第一数据包的标识信息包括编码窗中第一个第一数据包的序列号、和编码窗中最后一个第一数据包的序列号中的至少一项即可。编码因子字段(如Coeff ID字段)的长度为8bit,用于指示码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。In an implementation manner of any of the foregoing aspects, the encoded packet header of each second data packet includes identification information for indicating the N first data packets from which the second data packet is encoded. The identification information used to indicate that the N first data packets obtained by encoding the second data packet is a block ID (Block ID) field or includes at least two of the following: information indicating the window length of the encoding window, the first in the encoding window The sequence number of the first data packet, and the sequence number of the last first data packet in the encoding window. It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window. The length of the coding factor field (such as the Coeff ID field) is 8 bits, which is used to indicate the row index of the codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
可选的,上述编码包包头还可以包括类型(Type)字段和Packet ID字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。Optionally, the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field. The Type (Type) field is used to indicate the length of the data packet identification field, or is used to indicate the range of the sequence number of the data packet. The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
可见,本方案提供的编码包包头既可以是重新设计的,其含义清晰;也可以是复用现有的编码包包头中的字段,不仅可以保证译码端的正确译码,还可以提高兼容性。It can be seen that the coding packet header provided by this solution can either be redesigned, and its meaning is clear; it can also reuse the fields in the existing coding packet header, which can not only ensure the correct decoding of the decoding end, but also improve the compatibility. .
上述任一方面的一种实现方式中,第一数据包的序列号顺序递增。和/或,每个第二数据包的编码包包头中还包括该第二数据包的序列号。第二数据包的序列号也顺序递增。其中,因为原数据包(即第一数据包)的包头中携带有自己的序列号,编码包(即第二数据包)的编码包包头中既可以携带自己的序列号,也可以不携带自己的序列号,所以针对序列号的实现方式有以下几种:(1)编码包(即第二数据包)的编码包包头中不携带序列号,即编码包包头中不存在Packet ID字段,此时原数据包(即第一数据包)的序列号顺序编号。(2)编码包的序列号和原数据包的序列号都顺序编号(共用一套编号系统),且编码包的序列号与原数据包的序列号不重复。(3)编码包的序列号和原数据包的序列号分别有自己的一套编号系统,互不影响。(4)编码包的序列号和原数据包的序列号都顺序编号(共用一套序列号),且允许编码包的序列号与原数据包的序列号重复使用,可使用包头的指示信息来区分原数据包和编码包。In an implementation manner of any of the foregoing aspects, the sequence numbers of the first data packets are sequentially incremented. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented. Among them, because the header of the original data packet (that is, the first data packet) carries its own serial number, the encoded packet header of the encoded packet (that is, the second data packet) may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header. The sequence number of the original data packet (ie, the first data packet) is sequentially numbered. (2) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated. (3) The serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other. (4) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
可见,本方案针对序列号设计不同的方案,灵活多样。It can be seen that this scheme designs different schemes for serial numbers, which are flexible and diverse.
第五方面,本申请提供一种数据传输方法,该方法包括:第一设备获取N个第一数据包,并对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段;第一设备传输该M个第二数据包。其中,该N个第一数据包的大小相等。每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。第一数据包是原数据包,第二数据包是编码包。M大于N,N和M均为正整数。In a fifth aspect, the present application provides a data transmission method, the method comprising: a first device obtains N first data packets, encodes the N first data packets and adds an encoded packet header to obtain M second data packets A data packet, the header of the encoded packet includes an encoding factor field; the first device transmits the M second data packets. Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. M is greater than N, and both N and M are positive integers.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第一设备是编码端或发送端。第一设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the first device is an encoding end or a transmitting end. The first device may be either a network device, such as a base station, or a terminal device, such as a UE.
可选的,用于编码的编码系数矩阵中前N行构成的子矩阵是单位阵,后M-N行构成的子矩阵可以包括码本中的一行或多行,这里的码本可以是范德蒙码本、柯西码本、随机码本等。也就是说,采用该编码系数矩阵编码得到的M个编码数据中前N个编码数据包只包含单个原数据包的信息,后M-N个编码数据融合了多个原数据包的信息。Optionally, the submatrix formed by the first N rows in the coding coefficient matrix used for encoding is an identity matrix, and the submatrix formed by the last M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook. , Cauchy codebook, random codebook, etc. That is to say, the first N encoded data packets of the M encoded data obtained by using the encoding coefficient matrix only contain the information of a single original data packet, and the last M-N encoded data fuses the information of multiple original data packets.
可见,本方案通过不直接传输原数据包(即上述第一数据包),而是对原数据包进行编码,来保证第一设备传输的数据包的大小相等。本方案还通过在原数据包中携带包头信息,所以即使在传输过程中多个原数据包丢失,也可以根据编码包(即上述第二数据包)恢复出原数据包,再根据原数据包的包头携带的分割和级联信息,对原数据包的数据进行分割和级联的逆处理,从而恢复出PDU/SDU数据。因此,本方案可以在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如现有NR协议中,支持网络编码技术,并且即使在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。It can be seen that this solution ensures that the size of the data packets transmitted by the first device is equal by encoding the original data packets instead of directly transmitting the original data packets (ie, the above-mentioned first data packets). This solution also carries the packet header information in the original data packet, so even if multiple original data packets are lost during the transmission process, the original data packet can be recovered according to the encoded packet (that is, the above-mentioned second data packet), and then the original data packet can be recovered according to the The segmentation and concatenation information carried in the packet header performs the inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data. Therefore, this solution can support network coding technology in scenarios that do not depend on the size of SDU or PDU, that is, different SDU or PDU sizes can be the same or different, such as in the existing NR protocol, and even in multiple original data In the case of packet loss, PDU or SDU can also be recovered, reducing performance loss.
第六方面,本申请提供一种数据传输方法,该方法包括:第二设备获取P个数据包,并对该P个数据包进行译码,获得译码后的N个第一数据包,该P个数据包均是编码包,每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段;其中,该N个第一数据包的大小相等,每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。其中,第一数据包是原数据包,第二数据包是编码包。P、N、M均为正整数,P大于或等于N且小于或等于M,即N≤P≤M。In a sixth aspect, the present application provides a data transmission method, the method comprising: a second device obtains P data packets, decodes the P data packets, and obtains decoded N first data packets, the The P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field; wherein the N first data packets are of equal size, and each first data packet includes header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. P, N, and M are all positive integers, and P is greater than or equal to N and less than or equal to M, that is, N≤P≤M.
进一步的,第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。Further, the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第二设备是译码端或接收端。第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the second device is a decoding end or a receiving end. The second device may be either a network device, such as a base station, or a terminal device, such as a UE.
结合第六方面,在一种可能的设计中,对该P个数据包进行译码,获得译码后的N个第一数据包,包括:采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the sixth aspect, in a possible design, decoding the P data packets to obtain the decoded N first data packets, including: analyzing the P data packets by using the parsing method of the encoded packets The coding packet header obtains the coding factor field carried by the header of each coding packet, and uses the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; using the coefficient factor matrix to encode the data of the P data packets Decoding is performed to obtain N first data packets after decoding. Wherein, the rank of the coefficient factor matrix is equal to N.
可见,本方案提供一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a decoding process and operation, so that the original data packet can be correctly decoded when the data packet received by the decoding end is full of rank (rank=N), and the original data packet can be decoded correctly according to the packet header of the original data packet Segment and concatenate information, thereby recovering PDU/SDU, which can reduce the performance loss of NR system.
第七方面,本申请提供一种数据传输装置,该数据传输装置可以是第一设备或第一设备中的芯片。该数据传输装置包括:获取模块,用于获取N个第一数据包,该N个第一数据包的大小相等;编码模块,用于对该获取模块获取到的N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段;传输模块,用于传输该M个第二数据包。其中,每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。第一数据包是原数据包,第二数据包是编码包。M大于N,N和M均为正整数。In a seventh aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device. The data transmission device includes: an acquisition module for acquiring N first data packets, the N first data packets having the same size; an encoding module for encoding the N first data packets acquired by the acquisition module And after adding the coded packet header, M second data packets are obtained, and the coded packet header includes a coding factor field; the transmission module is used for transmitting the M second data packets. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. M is greater than N, and both N and M are positive integers.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
第八方面,本申请提供一种数据传输装置,该数据传输装置可以是第二设备或第二设备中的芯片。该数据传输装置包括:获取模块,用于获取P个数据包,该P个数据包均是编码包,每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段;译码模块,用于对该获取模块获取到的P个数据包进行译码,获得译码后的N个第一数据包;还原模块,用于根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。其中,该N个第一数据包的大小相等。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。其中,第一数据包是原数据包,第二数据包是编码包。P大于或等于N,N为正整数,P为正整数。In an eighth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device. The data transmission device includes: an acquisition module for acquiring P data packets, where the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field; decoding module, for decoding the P data packets obtained by the acquisition module, to obtain N first data packets after decoding; the restoring module, for each first data packet according to the N first data packets The segmentation and concatenation information included in the packet header of the packet restores the data of the N first data packets into at least one data unit. Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. P is greater than or equal to N, where N is a positive integer and P is a positive integer.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
结合第八方面,在一种可能的设计中,上述译码模块,具体用于:采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the eighth aspect, in a possible design, the above-mentioned decoding module is specifically configured to: analyze the encoded packet headers of the P data packets by using the parsing method of the encoded packets to obtain the encoding factor field carried by each encoded packet header, Use the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; use the coefficient factor matrix to decode the coded data of the P data packets, and obtain the decoded N first data packets . Wherein, the rank of the coefficient factor matrix is equal to N.
上述第五至第八任一方面的一种实现方式中,一个第一数据包的数据包括一个或多个数据段,一个数据段包括一个PDU/SDU的全部或部分。换句话说,原数据包中的数据包括一个或多个数据段,每个数据段来自不同的PDU/SDU,一个数据段是一个PDU/SDU的全部或 部分。In an implementation manner of any one of the fifth to eighth aspects, the data of one first data packet includes one or more data segments, and one data segment includes all or part of one PDU/SDU. In other words, the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU.
可选的,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中的最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D num。第一数据包的数据中数据段的排列方式可以按照PDU/SDU的序列号大小,从小到大排列,即序列号最小的PDU/SDU作为第一个数据段,中间数据段对应的PDU/SDU的序列号依次增加,序列号最大的PDU/SDU作为最后一个数据段。第一数据包的数据中数据段对应的PDU/SDU的序列号也可以乱序排列。 Optionally, the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num . The arrangement of the data segments in the data of the first data packet can be arranged according to the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, and the PDU/SDU corresponding to the middle data segment. The sequence number of the PDU/SDU increases in sequence, and the PDU/SDU with the largest sequence number is used as the last data segment. The sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may also be arranged out of order.
上述第五至第八任一方面的一种实现方式中,上述分割和级联信息包括:该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元的序列号,或者该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号;指示该第一数据包的数据包括的第i个数据段是否是最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the fifth to eighth aspects, the segmentation and concatenation information includes: the first data segment (or start data segment) and/or the last data in the data of the first data packet The sequence number of the data unit corresponding to the segment (or the end data segment), or the maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating that the data of the first data packet includes Whether the i-th data segment is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the length of the i-th data segment Information. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num .
上述第五至第八任一方面的一种实现方式中,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段是否是最后一个数据段(或者说,该第一数据包的数据中第一个数据段后是否存在下一个数据段)以及该第一个数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该第一数据包的数据包括的第i个数据段是否是最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the fifth to eighth aspects, the segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, the first data segment Information on whether there is a next data segment after the first data segment in the data of a data packet) and whether the data unit corresponding to the first data segment is complete (complete means not segmented, incomplete means segmented); Information indicating whether the i-th data segment included in the data of the first data packet is the last data segment (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the ith data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num .
上述第五至第八任一方面的一种实现方式中,上述分割和级联信息包括:上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据中包括的数据段的个数的信息;以及指示每个数据段的长度的信息。In an implementation manner of any one of the fifth to eighth aspects, the segmentation and concatenation information includes: the segmentation and concatenation information includes: indicating the first data segment (or starting point) in the data of the first data packet data segment) and/or information on whether the data unit corresponding to the last data segment (or end data segment) is divided, or indicating the largest sequence number and/or sequence number in the data unit corresponding to the data segment in the data of the first data packet information on whether the data unit with the smallest number is divided; information indicating the number of data segments included in the data of the first data packet; and information indicating the length of each data segment.
应理解,如果第一数据包的总长度可以确定,第一数据包的包头长度也可以确定,则上述分割和级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该第一数据包的总长度、该第一数据包的包头长度以及D num-1个数据段的长度计算得出。D num表示第一数据包的数据中包括的数据段总数。 It should be understood that, if the total length of the first data packet can be determined, and the header length of the first data packet can also be determined, the above-mentioned segmentation and concatenation information may only include the length of each data segment in the D num −1 data segments. , instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of the data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
上述第五至第八任一方面的一种实现方式中,上述M个第二数据包中包括N个第一类编码包和M-N个第二类编码包。其中第一类编码包的编码系数子矩阵是单位阵,第二类编码包的编码系数子矩阵是非单位阵。第一类编码包的编码系数子矩阵和第二类编码包的编码系数子矩阵形成一个编码系数矩阵。编码系数矩阵用于对该N个第一数据包进行编码。上述M个第二数据包中每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一 数据包的标识信息。该用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。In an implementation manner of any one of the fifth to eighth aspects, the M second data packets include N first-type encoding packets and M-N second-type encoding packets. The coding coefficient sub-matrix of the first type of coding packet is an identity matrix, and the coding coefficient sub-matrix of the second type of coding packet is a non-unitary matrix. The coding coefficient sub-matrix of the coding packets of the first type and the coding coefficient sub-matrix of the coding packets of the second type form a coding coefficient matrix. The encoding coefficient matrix is used to encode the N first data packets. The encoded packet header of each second data packet in the above-mentioned M second data packets includes identification information for indicating the N first data packets obtained by encoding the second data packet. The identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
可选的,上述编码包包头还可以包括第二指示信息、类型(Type)字段以及Packet ID字段中的一项或多项。第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。Optionally, the above-mentioned encoded packet header may further include one or more of the second indication information, a type (Type) field, and a Packet ID field. The second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. The Type (Type) field is used to indicate the length of the data packet identification field, or is used to indicate the range of the sequence number of the data packet. The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
上述第五至第八任一方面的一种实现方式中,第一数据包的序列号顺序递增。和/或,每个第二数据包的编码包包头中还包括该第二数据包的序列号。第二数据包的序列号也顺序递增。其中,因为原数据包(即第一数据包)的包头中携带有自己的序列号,编码包(即第二数据包)的编码包包头中既可以携带自己的序列号,也可以不携带自己的序列号,所以针对序列号的实现方式有以下几种:(1)编码包(即第二数据包)的编码包包头中不携带序列号,即编码包包头中不存在Packet ID字段,此时原数据包(即第一数据包)的序列号顺序编号。(2)编码包的序列号和原数据包的序列号都顺序编号(共用一套编号系统),且编码包的序列号与原数据包的序列号不重复。(3)编码包的序列号和原数据包的序列号分别有自己的一套编号系统,互不影响。(4)编码包的序列号和原数据包的序列号都顺序编号(共用一套序列号),且允许编码包的序列号与原数据包的序列号重复使用,可使用包头的指示信息来区分原数据包和编码包。In an implementation manner of any one of the fifth to eighth aspects, the sequence numbers of the first data packets are sequentially incremented. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented. Among them, because the header of the original data packet (that is, the first data packet) carries its own serial number, the encoded packet header of the encoded packet (that is, the second data packet) may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header. The sequence number of the original data packet (ie, the first data packet) is sequentially numbered. (2) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated. (3) The serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other. (4) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
可见,本方案针对序列号设计不同的方案,灵活多样。It can be seen that this scheme designs different schemes for serial numbers, which are flexible and diverse.
第九方面,本申请提供一种数据传输方法,该方法包括:第一设备获取级联数据包,并根据该级联数据包生成N个第一数据包;第一设备传输该N个第一数据包;第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包;第二设备传输该M个第二数据包。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的序列号。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数,且M和N的大小关系不做限定,j的取值为区间[1,N]中的整数。In a ninth aspect, the present application provides a data transmission method, the method comprising: a first device acquires a concatenated data packet, and generates N first data packets according to the concatenated data packet; the first device transmits the N first data packets; data packets; the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets; the second device transmits the M second data packets. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each of the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers, and the size relationship between M and N is not limited, and the value of j is an integer in the interval [1, N].
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
可选的,第一设备是编码端或发送端。第一设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the first device is an encoding end or a transmitting end. The first device may be either a network device, such as a base station, or a terminal device, such as a UE.
可见,本方案对多个PDU/SDU进行级联,以获得一个级联数据,并添加级联包包头得到一个级联数据包,再对级联数据包进行等大小分割得到一定数量的原数据(第一数据包的数据),继而通过加包头获得原数据包(即上述第一数据包),并对原数据包进行编码和加编码包包头后获得编码包(即上述第二数据包),从而在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如现有NR协议中,支持网络编码技术,并且在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。此外,本 方案无需对每个原数据包都添加级联的字段指示,而是通过统一的级联包包头进行级联信息的指示,可以节省包头的开销。It can be seen that this scheme concatenates multiple PDUs/SDUs to obtain a concatenated data, and adds a concatenated packet header to obtain a concatenated data packet, and then divides the concatenated data packets into equal sizes to obtain a certain amount of original data. (the data of the first data packet), and then obtain the original data packet (that is, the above-mentioned first data packet) by adding the packet header, and then encode the original data packet and add the encoded packet header to obtain the encoded packet (that is, the above-mentioned second data packet) , so that it does not depend on the size of the SDU or PDU, that is, the size of different SDUs or PDUs can be the same or different, such as in the existing NR protocol, support network coding technology, and in the case of multiple loss of original data packets PDUs or SDUs can also be recovered under low performance, reducing performance loss. In addition, this scheme does not need to add concatenated field indications to each original data packet, but uses a unified concatenated packet header to indicate the concatenated information, which can save the overhead of the packet header.
结合第九方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包还包头包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。With reference to the ninth aspect, in a possible design, the header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet of each second data packet further includes second indication information for indicating that the second data packet where the second indication information is located is encoded Bag.
第十方面,本申请提供一种数据传输方法,该方法包括:第二设备获取P个数据包,并对该P个数据包进行译码,获得译码后的N个第一数据包,该P个数据包中包括K个第一数据包和N-K个第二数据包;第二设备按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包,并根据该级联包包头包括的该级联数据包括的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的序列号。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是级联数据包经过N等分后得到的第j份数据。该级联数据包包括该级联包包头和该级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。其中,第一数据包是原数据包,第二数据包是编码包。K和P均为正整数,且K小于或等于P。P大于或等于N,j的取值为区间[1,N]中的整数。In a tenth aspect, the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains N first data packets after decoding, the The P data packets include K first data packets and N-K second data packets; the second device restores the data of the N first data packets into one according to the sequence number of the N first data packets Concatenate data packets, and divide the concatenated data into multiple data units according to the concatenation information of the multiple data units included in the concatenated data included in the packet header of the concatenated packet. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The concatenated data packet includes the concatenated packet header and the concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. Both K and P are positive integers, and K is less than or equal to P. P is greater than or equal to N, and the value of j is an integer in the interval [1, N].
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
可选的,第二设备是译码端或接收端。第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the second device is a decoding end or a receiving end. The second device may be either a network device, such as a base station, or a terminal device, such as a UE.
结合第十方面,在一种可能的设计中,对该P个数据包进行译码,获得译码后的N个第一数据包,包括:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。With reference to the tenth aspect, in a possible design, decoding the P data packets to obtain N first data packets after decoding, including: according to the length of each data packet in the P data packets And the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt the analytical mode of the original data packets to parse the K first data packets of each first data packet. packet header, obtain the serial number of the first data packet, and use the parsing method of the encoded packet to parse the encoded packet header of the second data packet in the P-K second data packets to obtain the encoding factor field; according to the K first data packets The sequence number and the indication of the coding factor field in the packet header of the P-K second data packets form a coefficient factor matrix; use the coefficient factor matrix to carry out the coding data of the P-K second data packets and the K first data packets. Joint decoding is performed to obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets.
可选的,上述长度阈值是编码包长度阈值L1。或者,上述长度阈值是原数据包长度阈值L2。第一设备从P个数据包中确定出K个第一数据包和P-K个第二数据包的实现方式可参考第二方面的相应描述,此处不展开说明。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. Alternatively, the above-mentioned length threshold is the original packet length threshold L2. For an implementation manner in which the first device determines K first data packets and P-K second data packets from the P data packets, reference may be made to the corresponding description of the second aspect, which will not be described here.
可选的,在该第一数据包和/或该第二数据包中携带该第一数据包和该第二数据包之间的对应关系。具体的,该对应关系可以携带在该第一数据包的包头和/或该第二数据包的包头。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该第二数据包的包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息来指示该对应关系。Optionally, the corresponding relationship between the first data packet and the second data packet is carried in the first data packet and/or the second data packet. Specifically, the corresponding relationship may be carried in the header of the first data packet and/or the header of the second data packet. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the packet header of the second data packet may include identification information for indicating the N first data packets from which the second data packet is encoded to indicate the corresponding relationship.
可见,本方案提供一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a decoding process and operation, so that the original data packet can be correctly decoded when the data packet received by the decoding end is full of rank (rank=N), and the original data packet can be decoded correctly according to the packet header of the original data packet Segment and concatenate information, thereby recovering PDU/SDU, which can reduce the performance loss of NR system.
结合第十方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。这样,以上译码步骤中可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。With reference to the tenth aspect, in a possible design, the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and/ Or, each second data packet includes an encoded packet header and encoded data, and the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the second indication information where the second indication information is located. Packets are encoded packets. In this way, in the above decoding step, it is possible to determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then adopt a corresponding parsing method for the packet header of the data packet. to parse.
可见,本方案提供一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a decoding process and operation, so that the original data packet can be correctly decoded when the data packet received by the decoding end is full of rank (rank=N), and the original data packet can be decoded correctly according to the packet header of the original data packet Segment and concatenate information, thereby recovering PDU/SDU, which can reduce the performance loss of NR system.
第十一方面,本申请提供一种数据传输装置,该数据传输装置可以是第一设备或第一设备中的芯片。该数据传输装置包括:获取模块,用于获取级联数据包;生成模块,用于根据该获取模块获取到的该级联数据包生成N个第一数据包;传输模块,用于传输该生成模块生成的N个第一数据包;编码模块,用于对该生成模块生成的N个第一数据包进行编码并加编码包包头后得到M个第二数据包;该传输模块,还用于传输该M个第二数据包。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的序列号。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数。j的取值为区间[1,N]中的整数。In an eleventh aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device. The data transmission device includes: an acquisition module for acquiring concatenated data packets; a generation module for generating N first data packets according to the concatenated data packets acquired by the acquisition module; and a transmission module for transmitting the generated data packets The N first data packets generated by the module; the encoding module is used to encode the N first data packets generated by the generation module and add the encoded packet headers to obtain M second data packets; the transmission module is also used for The M second data packets are transmitted. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers. The value of j is an integer in the interval [1,N].
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
结合第十一方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。With reference to the eleventh aspect, in a possible design, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the first location where the second indication information is located. Two packets are encoded packets.
第十二方面,本申请提供一种数据传输装置,该数据传输装置可以是第二设备或第二设备中的芯片。该数据传输装置包括:获取模块,用于获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包;译码模块,用于对该获取模块获取到的P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等;还原模块,用于按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包;分割模块,还用于根据该级联包包头包括的该级联数据包括的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的序列号。该N个第一数据包中第j个第一数据包的数据是级联数据包经过N等分后得到的第j份数据。该级联数据包包括该级联包包头和该级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。其中,第一数据包是原数据包,第二数据包是编码包。j的取值为区间[1,N]中的整数。P和K均为正整数,K小于或 等于P。P大于或等于N。In a twelfth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device. The data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded to obtain the decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal; the restoration module, using to restore the data of the N first data packets into a concatenated data packet according to the sequence number order of the N first data packets; the segmentation module is also used for the concatenation according to the concatenated packet header included in the concatenated packet header. The data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The concatenated data packet includes the concatenated packet header and the concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. The value of j is an integer in the interval [1,N]. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
结合第十二方面,在一种可能的设计中,上述译码模块,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。In combination with the twelfth aspect, in a possible design, the above-mentioned decoding module is specifically used to: determine K from the P data packets according to the length and the length threshold of each data packet in the P data packets A first data packet and P-K second data packets; analyze the packet header of each first data packet in the K first data packets by using the analysis method of the original data packet, obtain the serial number of the first data packet, and use The parsing method of the encoded packet parses the encoded packet header of the second data packet in the P-K second data packets, and obtains the encoding factor field; according to the sequence number of the K first data packets and the P-K second data packets The indication of the coding factor field constitutes a coefficient factor matrix; the coding data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix, and the decoded N-K first data packets are obtained Bag. Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets.
可选的,上述长度阈值是编码包长度阈值L1。或者,上述长度阈值是原数据包长度阈值L2。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. Alternatively, the above-mentioned length threshold is the original packet length threshold L2.
结合第十二方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。这样,译码模块可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。With reference to the twelfth aspect, in a possible design, the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate the first location where the second indication information is located. Two packets are encoded packets. In this way, the decoding module can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method to parse the packet header of the data packet .
上述第九至第十二任一方面的一种实现方式中,上述级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的数据段的个数的信息;以及指示该级联数据包括的每个数据段的长度的信息。In an implementation manner of any one of the ninth to twelfth aspects, the concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the last data segment) of the concatenated data. information on whether the data unit corresponding to a data segment) is divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; indicating that the concatenated data information on the number of data segments included in the data; and information indicating the length of each data segment included in the concatenated data.
应理解,如果级联数据包的总长度可以确定(如半静态配置)、级联包包头的长度也可以确定,则上述级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该级联数据包的总长度、该级联包包头的长度以及D num-1个数据段的长度计算得出。D num表示级联数据包括的数据段总数。 It should be understood that, if the total length of the concatenated data packets can be determined (for example, a semi-static configuration) and the length of the concatenated packet headers can also be determined, the above-mentioned concatenated information may only include each data in the D num -1 data segments. The length of the segment, instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num − The length of 1 data segment is calculated. D num represents the total number of data segments included in the concatenated data.
可见,本方案提供的级联包包头设计,在级联包包头内带D num(即级联数据包括的数据段个数)个长度字段,来指示每个数据段的长度,可以不在每个原数据包的包头中携带D num个长度字段,从而节省头开销。 It can be seen that the concatenated packet header design provided by this solution has D num (that is, the number of data segments included in the concatenated data) length fields in the concatenated packet header to indicate the length of each data segment. The header of the original data packet carries D num length fields, thereby saving header overhead.
上述第九至第十二任一方面的一种实现方式中,上述级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的第i个数据段是否是最后一个数据段的信息;以及指示该第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该级联数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the ninth to twelfth aspects, the concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the last data segment) of the concatenated data. information on whether the data unit corresponding to a data segment) is divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; indicating that the concatenated data The data includes information on whether the i-th data segment is the last data segment; and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1≤i≤D num .
可见,本方案提供一种可能的级联包包头设计来携带级联信息,以支持在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如现有NR协 议中,应用网络编码技术。It can be seen that this solution provides a possible design of concatenated packet headers to carry concatenated information to support scenarios that do not depend on the size of SDU or PDU, that is, the size of different SDUs or PDUs can be the same or different. In the NR protocol, network coding technology is applied.
上述第九至第十二任一方面的一种实现方式中,上述级联信息包括:指示该级联数据中起始数据段是否是最后一个数据段(或者说,该级联数据中第一个数据段后是否存在下一个数据段)以及该起始数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该级联数据包括的第i个数据段是否是最后一个数据段(或者说,该级联数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该级联数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the ninth to twelfth aspects, the concatenation information includes: indicating whether the initial data segment in the concatenated data is the last data segment (or in other words, the first data segment in the concatenated data Whether there is a next data segment after the first data segment) and whether the data unit corresponding to the initial data segment is complete (complete means not segmented, incomplete means segmented); indicating the i-th data included in the concatenated data Information on whether the first data segment is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the concatenated data); and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1≤i≤D num .
可见,本方案在级联包包头中为每一个数据段都指示该数据段是否是最后一个数据段,并为每一个数据段指示其长度,有利于译码端根据级联包包头的指示对级联数据进行分割,以恢复出多个PDU/SDU。It can be seen that this scheme indicates whether the data segment is the last data segment for each data segment in the concatenated packet header, and indicates its length for each data segment, which is beneficial to the decoding end according to the indication of the concatenated packet header. The concatenated data is segmented to recover multiple PDUs/SDUs.
上述第九至第十二任一方面的一种实现方式中,上述级联数据包括多个完整数据单元级联得到的数据以及填充比特。In an implementation manner of any one of the ninth to twelfth aspects, the concatenated data includes data obtained by concatenating multiple complete data units and padding bits.
可选的,上述级联包包头还包括填充信息,该填充信息包括该填充比特的长度。Optionally, the above-mentioned concatenated packet header further includes padding information, and the padding information includes the length of the padding bits.
可见,本方案的级联数据中每个数据段都是一个PDU/SDU,此时译码端获得级联数据包后,分割级联数据即可得到PDU/SDU。It can be seen that each data segment in the concatenated data of this scheme is a PDU/SDU. At this time, after the decoding end obtains the concatenated data packet, the PDU/SDU can be obtained by dividing the concatenated data.
上述第九至第十二任一方面的一种实现方式中,上述编码包包头还包括用于指示编码得到该第二数据包的N个第一数据包的标识信息。该用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。In an implementation manner of any one of the ninth to twelfth aspects, the encoding packet header further includes identification information for indicating the N first data packets from which the second data packet is encoded. The identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
可见,本方案提供的编码包包头既可以是重新设计的,其含义清晰;也可以是复用原有编码包包头中的字段,并新增一个字段来指示数据包的种类(编码包还是原数据包),不仅可以保证译码端的正确译码,还可以提高兼容性。It can be seen that the encoding packet header provided by this solution can either be redesigned, and its meaning is clear; it can also reuse the fields in the original encoding packet header, and add a new field to indicate the type of the data packet (encoded packet or original data packets), not only can ensure the correct decoding of the decoding end, but also can improve the compatibility.
上述第九至第十二任一方面的一种实现方式中,第一数据包的序列号顺序递增。和/或,每个第二数据包的编码包包头中还包括该第二数据包的序列号。第二数据包的序列号也顺序递增。其中,因为原数据包(即第一数据包)的包头中携带有自己的序列号,编码包(即第二数据包)的编码包包头中既可以携带自己的序列号,也可以不携带自己的序列号,所以针对序列号的实现方式有以下几种:(1)编码包(即第二数据包)的编码包包头中不携带序列号,即编码包包头中不存在Packet ID字段,此时原数据包(即第一数据包)的序列号顺序编号。(2)编码包的序列号和原数据包的序列号都顺序编号(共用一套编号系统),且编码包的序列号与原数据包的序列号不重复。(3)编码包的序列号和原数据包的序列号分别有自己的一套编号系统,互不影响。(4)编码包的序列号和原数据包的序列号都顺序编号(共用一套序列号),且允许编码包的序列号与原数据包的序列号重复使用,可使用包头的指示信息来区分原数据包和编码包。In an implementation manner of any one of the ninth to twelfth aspects, the sequence numbers of the first data packets are sequentially incremented. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented. Among them, because the header of the original data packet (that is, the first data packet) carries its own serial number, the encoded packet header of the encoded packet (that is, the second data packet) may carry its own serial number or not. Therefore, there are several ways to realize the serial number: (1) The encoded packet header of the encoded packet (that is, the second data packet) does not carry the serial number, that is, there is no Packet ID field in the encoded packet header. The sequence number of the original data packet (ie, the first data packet) is sequentially numbered. (2) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated. (3) The serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other. (4) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the instruction information of the packet header can be used to Distinguish original data packets and encoded packets.
可见,本方案针对序列号设计不同的方案,灵活多样。It can be seen that this scheme designs different schemes for serial numbers, which are flexible and diverse.
第十三方面,本申请提供一种数据传输方法,该方法包括:第一设备获取级联数据包,并根据该级联数据包生成N个第一数据包,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等;第一设备再对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段;第一设备传输该M个第二数据包。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数 据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元。该级联包包头包括级联数据包括的多个数据单元的级联信息。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包的包头中包括该第一数据包的序列号。第一数据包是原数据包,第二数据包是编码包。j的取值为区间[1,N]中的整数。M大于N,N和M均为正整数。In a thirteenth aspect, the present application provides a data transmission method, the method includes: a first device acquires a concatenated data packet, and generates N first data packets according to the concatenated data packets, wherein the N first data packets are The data sizes are equal, and the header sizes of the N first data packets are equal; the first device then encodes the N first data packets and adds the encoded packet headers to obtain M second data packets, and the encoded packet headers include Coding factor field; the first device transmits the M second data packets. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating a plurality of data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each of the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenation packet header includes concatenation information of a plurality of data units included in the concatenated data. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. The value of j is an integer in the interval [1,N]. M is greater than N, and both N and M are positive integers.
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
可选的,第一设备是编码端或发送端。第一设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the first device is an encoding end or a transmitting end. The first device may be either a network device, such as a base station, or a terminal device, such as a UE.
可选的,用于编码的编码系数矩阵中前N行构成的子矩阵是单位阵,后M-N行构成的子矩阵可以包括码本中的一行或多行,这里的码本可以是范德蒙码本、柯西码本、随机码本等。也就是说,采用该编码系数矩阵编码得到的M个编码数据中前N个编码数据包只包含单个原数据包的信息,后M-N个编码数据融合了多个原数据包的信息。Optionally, the submatrix formed by the first N rows in the coding coefficient matrix used for encoding is an identity matrix, and the submatrix formed by the last M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook. , Cauchy codebook, random codebook, etc. That is to say, among the M encoded data obtained by using the encoding coefficient matrix, the first N encoded data packets only contain information of a single original data packet, and the last M-N encoded data are fused with information of multiple original data packets.
可见,本方案通过不直接传输原数据包(即上述第一数据包),而是对原数据包进行编码,来保证第一设备传输的数据包的大小相等。本方案还通过在原数据包中携带包头信息,所以即使在传输过程中多个原数据包丢失,也可以根据编码包(即上述第二数据包)恢复出原数据包,再根据原数据包的包头携带的分割和级联信息,对原数据包的数据进行分割和级联的逆处理,从而恢复出PDU/SDU数据,减少性能损失。此外,本方案无需对每个原数据包都添加级联的字段指示,而是通过统一的级联包包头进行级联信息的指示,可以节省包头的开销。It can be seen that this solution ensures that the size of the data packets transmitted by the first device is equal by encoding the original data packets instead of directly transmitting the original data packets (ie, the above-mentioned first data packets). This solution also carries the packet header information in the original data packet, so even if multiple original data packets are lost during the transmission process, the original data packet can be recovered according to the encoded packet (that is, the above-mentioned second data packet), and then the original data packet can be recovered according to the The segmentation and concatenation information carried in the packet header performs inverse processing of segmentation and concatenation on the data of the original data packet, thereby recovering the PDU/SDU data and reducing performance loss. In addition, this solution does not need to add concatenated field indications to each original data packet, but uses a unified concatenated packet header to indicate concatenated information, which can save header overhead.
第十四方面,本申请提供一种数据传输方法,该方法包括:第二设备获取P个数据包,并对该P个数据包进行译码,获得译码后的N个第一数据包,该P个数据包均是编码包,每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等;第二设备按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包,并根据该级联包包头包括的该级联数据包括的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元。该级联包包头包括级联数据包括的多个数据单元的级联信息。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包的包头中包括该第一数据包的序列号。第一数据包是原数据包,第二数据包是编码包。j的取值为区间[1,N]中的整数。P大于N,N和P均为正整数。In a fourteenth aspect, the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains the decoded N first data packets, The P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, the encoded packet header includes an encoding factor field, the data sizes of the N first data packets are equal, and the N first data packets The header sizes of the packets are equal; the second device restores the data of the N first data packets into a concatenated data packet according to the sequence number of the N first data packets, The concatenated data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each of the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenation packet header includes concatenation information of a plurality of data units included in the concatenated data. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. The value of j is an integer in the interval [1,N]. P is greater than N, and both N and P are positive integers.
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
可选的,第二设备是译码端或接收端。第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the second device is a decoding end or a receiving end. The second device may be either a network device, such as a base station, or a terminal device, such as a UE.
结合第十四方面,在一种可能的设计中,对该P个数据包进行译码,获得译码后的N个第一数据包,包括:采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数 因子矩阵;采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the fourteenth aspect, in a possible design, decoding the P data packets to obtain N first data packets after decoding, including: analyzing the P data packets by using an encoding packet analysis method Obtain the coding factor field carried by the coding packet header of each coding packet header, and use the indication of the coding factor field in the coding packet header of the P data packets to form a coefficient factor matrix; use the coefficient factor matrix to encode the P data packets The data is decoded to obtain N first data packets after decoding. Wherein, the rank of the coefficient factor matrix is equal to N.
可见,本方案提供一种译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a decoding process and operation, so that the original data packet can be correctly decoded when the data packet received by the decoding end is full of rank (rank=N), and the original data packet can be decoded correctly according to the packet header of the original data packet Segment and concatenate information, thereby recovering PDU/SDU, which can reduce the performance loss of NR system.
第十五方面,本申请提供一种数据传输装置,该数据传输装置可以是第一设备或第一设备中的芯片。该数据传输装置包括:获取模块,用于获取级联数据包;生成模块,用于根据该获取模块获取到的该级联数据包生成N个第一数据包;传输模块,用于传输该生成模块生成的N个第一数据包;编码模块,用于对该生成模块生成的N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段;该传输模块,还用于传输该M个第二数据包。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包的包头中包括该第一数据包的序列号。第一数据包是原数据包,第二数据包是编码包。M大于N,N和M均为正整数。j的取值为区间[1,N]中的整数。In a fifteenth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a first device or a chip in the first device. The data transmission device includes: an acquisition module for acquiring concatenated data packets; a generation module for generating N first data packets according to the concatenated data packets acquired by the acquisition module; and a transmission module for transmitting the generated data packets The N first data packets generated by the module; the encoding module is used to encode the N first data packets generated by the generation module and add the encoded packet header to obtain M second data packets, and the encoded packet header includes the encoding factor field; the transmission module is further configured to transmit the M second data packets. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. M is greater than N, and both N and M are positive integers. The value of j is an integer in the interval [1,N].
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
第十六方面,本申请提供一种数据传输装置,该数据传输装置可以是第二设备或第二设备中的芯片。该数据传输装置包括:获取模块,用于获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包;译码模块,用于对该获取模块获取到的P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等;还原模块,用于按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包;分割模块,还用于根据该级联包包头包括的该级联数据包括的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包的包头中包括该第一数据包的序列号。第一数据包是原数据包,第二数据包是编码包。M大于N,N和M均为正整数。j的取值为区间[1,N]中的整数。In a sixteenth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device. The data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded to obtain the decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal; the restoration module, using to restore the data of the N first data packets into a concatenated data packet according to the sequence number order of the N first data packets; the segmentation module is also used for the concatenation according to the concatenated packet header included in the concatenated packet header. The data includes concatenation information of a plurality of data units, and the concatenated data is divided into a plurality of data units. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. M is greater than N, and both N and M are positive integers. The value of j is an integer in the interval [1,N].
可选的,上述数据单元是PDU或SDU。上述级联数据包的大小是原数据大小的整数倍。原数据是指原数据包中的数据。Optionally, the above data unit is PDU or SDU. The size of the above-mentioned concatenated data packets is an integer multiple of the original data size. The original data refers to the data in the original data package.
结合第十六方面,在一种可能的设计中,上述译码模块,具体用于:采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩 (rank)等于N。With reference to the sixteenth aspect, in a possible design, the above-mentioned decoding module is specifically configured to: parse the encoded packet headers of the P data packets by using an encoding packet parsing method to obtain the encoding factor field carried by each encoded packet header , using the indication of the encoding factor field in the encoded packet header of the P data packets to form a coefficient factor matrix; using the coefficient factor matrix to decode the encoded data of the P data packets to obtain the decoded N first data Bag. where the rank of the coefficient factor matrix is equal to N.
上述第十三至第十六任一方面的一种实现方式中,上述级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的数据段的个数的信息;以及指示该级联数据包括的每个数据段的长度的信息。In an implementation manner of any one of the above-mentioned thirteenth to sixteenth aspects, the above-mentioned concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the first data segment) of the concatenated data. The information on whether the data unit corresponding to the last data segment) is divided, or the information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; information on the number of data segments included in the concatenated data; and information indicating the length of each data segment included in the concatenated data.
应理解,如果级联数据包的总长度可以确定(如半静态配置)、级联包包头的长度也可以确定,则上述级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该级联数据包的总长度、该级联包包头的长度以及D num-1个数据段的长度计算得出。D num表示级联数据包括的数据段总数。 It should be understood that, if the total length of the concatenated data packets can be determined (for example, a semi-static configuration) and the length of the concatenated packet headers can also be determined, the above-mentioned concatenated information may only include each data in the D num -1 data segments. The length of the segment, instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num − The length of 1 data segment is calculated. D num represents the total number of data segments included in the concatenated data.
上述第十三至第十六任一方面的一种实现方式中,上述级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的第i个数据段是否是最后一个数据段的信息;以及指示该第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该级联数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the above-mentioned thirteenth to sixteenth aspects, the above-mentioned concatenation information includes: indicating the start data segment (that is, the first data segment) and/or the end data segment (that is, the first data segment) of the concatenated data. The information on whether the data unit corresponding to the last data segment) is divided, or the information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the concatenated data is divided; The link data includes information on whether the i-th data segment is the last data segment; and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1≤i≤D num .
上述第十三至第十六任一方面的一种实现方式中,上述级联信息包括:指示该级联数据中起始数据段是否是最后一个数据段(或者说,该级联数据中第一个数据段后是否存在下一个数据段)以及该起始数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该级联数据包括的第i个数据段是否是最后一个数据段(或者说,该级联数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该级联数据包括的数据段总数D num,即i为正整数且1≤i≤D numIn an implementation manner of any one of the thirteenth to sixteenth aspects above, the concatenation information includes: indicating whether the start data segment in the concatenated data is the last data segment (or, in other words, the first data segment in the concatenated data); Information on whether there is a next data segment after a data segment) and whether the data unit corresponding to the starting data segment is complete (complete means not segmented, incomplete means segmented); it indicates the first segment of the concatenated data. Information on whether the i data segment is the last data segment (or, in other words, whether there is a next data segment after the i-th data segment included in the concatenated data); and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1≤i≤D num .
上述第十三至第十六任一方面的一种实现方式中,上述级联数据包括多个完整数据单元级联得到的数据以及填充比特。In an implementation manner of any one of the thirteenth to sixteenth aspects, the concatenated data includes data obtained by concatenating multiple complete data units and padding bits.
可选的,上述级联包包头还包括填充信息,该填充信息包括该填充比特的长度。Optionally, the above-mentioned concatenated packet header further includes padding information, and the padding information includes the length of the padding bits.
上述第十三至第十六任一方面的一种实现方式中,上述编码包包头还包括用于指示编码得到该第二数据包的N个第一数据包的标识信息。该用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。In an implementation manner of any one of the thirteenth to sixteenth aspects, the encoded packet header further includes identification information for indicating the N first data packets from which the second data packet is obtained by encoding. The identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first data in the encoding window The serial number of the packet, the serial number of the last first data packet in the encoding window.
上述第十三至第十六任一方面的一种实现方式中,第一数据包的序列号顺序递增。和/或,每个第二数据包的编码包包头中还包括该第二数据包的序列号。第二数据包的序列号也顺序递增。In an implementation manner of any one of the thirteenth to sixteenth aspects, the sequence numbers of the first data packets are sequentially increased. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented.
第十七方面,本申请提供一种数据传输方法,该方法包括:第一设备获取N个第一数据包,该N个第一数据包的大小不完全相等;第一设备传输该N个第一数据包;第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包;第一设备传输该M个第二数据包。其中,每个第一数据包包括包头和数据。每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息。每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等 效原数据包。该Q个等效原数据包的大小相等。每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。其中,第一数据包是原数据包,第二数据包是编码包。N、M以及Q均为正整数,Q小于或等于N。In a seventeenth aspect, the present application provides a data transmission method, the method includes: a first device acquires N first data packets, the sizes of the N first data packets are not completely equal; the first device transmits the N first data packets A data packet; the first device encodes the N first data packets and adds the encoded packet header to obtain M second data packets; the first device transmits the M second data packets. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the Q equivalent original data packets used for encoding. The Q equivalent original data packets have the same size. The header of each first data packet also includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. N, M, and Q are all positive integers, and Q is less than or equal to N.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第一设备是编码端或发送端。第一设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the first device is an encoding end or a transmitting end. The first device may be either a network device, such as a base station, or a terminal device, such as a UE.
可选的,原数据包(即上述第一数据包)的包头中编码因子字段指示的行向量中只有一个元素等于1,其他元素均为0。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。Optionally, only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
可见,本方案提供一种纯分割场景下支持网络编码的数据传输方法,不仅可以在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下应用,比如可以兼容NR协议,还能在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。It can be seen that this solution provides a data transmission method that supports network coding in a pure segmentation scenario. It can not only be applied in scenarios that do not depend on the size of SDU or PDU, that is, the size of different SDUs or PDUs can be the same or different. Compatible with NR protocol, it can also recover PDU or SDU even when multiple original data packets are lost, reducing performance loss.
结合第十七方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包的编码包包头还包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。With reference to the seventeenth aspect, in a possible design, the packet header of each of the above-mentioned first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
第十八方面,本申请提供一种数据传输方法,该方法包括:第二设备获取P个数据包,并对该P个数据包进行译码,获得译码后的N个第一数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包,该N个第一数据包的大小不完全相等;第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。其中,每个第一数据包包括包头和数据。每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息。每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等效原数据包。该Q个等效原数据包的大小相等。每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。P大于或等于N,N大于或等于Q,P、N以及Q均为正整数。In an eighteenth aspect, the present application provides a data transmission method, the method comprising: a second device obtains P data packets, and decodes the P data packets, and obtains the decoded N first data packets, The P data packets include K first data packets and P-K second data packets, and the sizes of the N first data packets are not completely equal; The segmentation information included in the packet header of the data packet restores the data of the N first data packets into one or more data units. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the Q equivalent original data packets for encoding. The Q equivalent original data packets have the same size. The header of each first data packet also includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. P is greater than or equal to N, N is greater than or equal to Q, and P, N, and Q are all positive integers.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,第二设备是编码端或发送端。第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。Optionally, the second device is an encoding end or a transmitting end. The second device may be either a network device, such as a base station, or a terminal device, such as a UE.
结合第十八方面,在一种可能的设计中,上述每个第一数据包的包头包括编码因子字段。对该P个数据包进行译码,获得译码后的N个等效原数据包,包括:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中编码因子字段的指示和该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the eighteenth aspect, in a possible design, the packet header of each of the above-mentioned first data packets includes a coding factor field. Decoding the P data packets to obtain N equivalent original data packets after decoding, including: determining from the P data packets according to the length and length threshold of each data packet in the P data packets K first data packets and P-K second data packets are obtained; the packet header of each first data packet in the K first data packets is parsed by the analytical method of the original data packet, and the sequence number of the first data packet is obtained, And adopt the analytic mode of the coding packet to parse the coding packet header of the second data packet in the P-K second data packets, to obtain the coding factor field; According to the instructions of the coding factor field in the packet header of the K first data packets and the P-K The indication of the encoding factor field in the encoded packet header of the second data packet forms a coefficient factor matrix; the encoded data of the P-K second data packets and the K first data packets are jointly decoded using the coefficient factor matrix to obtain Decoded N first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
可选的,原数据包(即上述第一数据包)的包头中编码因子字段指示的行向量中只有一 个元素等于1,其他元素均为0。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。Optionally, only one element of the row vector indicated by the coding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and all other elements are equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
可选的,在该第二数据包的包头携带该Q个等效原数据包和该第二数据包之间的对应关系。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该第二数据包的包头包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息来指示该对应关系。Optionally, the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
可见,本方案针对第一数据包的包头包括编码因子字段的情况,提供一种可能的译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a possible decoding process and operation for the case where the header of the first data packet includes a coding factor field, so that the data packet received by the decoding end can be correctly rank (rank=N). The original data packet is decoded, and the PDU/SDU is recovered according to the segmentation and concatenation information carried in the packet header of the original data packet, thereby reducing the performance loss of the NR system.
结合第十八方面,在一种可能的设计中,上述每个第一数据包的包头还包括偏移字段,该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。对该P个数据包进行译码,获得译码后的N个等效原数据包,包括:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号和偏移字段,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中第一数据包的序列号和偏移字段以及该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。With reference to the eighteenth aspect, in a possible design, the header of each first data packet further includes an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet. Decoding the P data packets to obtain N equivalent original data packets after decoding, including: determining from the P data packets according to the length and length threshold of each data packet in the P data packets Out K first data packets and P-K second data packets; analyze the packet header of each first data packet in the K first data packets by using the analytical method of the original data packet, and obtain the sequence number of the first data packet and offset field, and parse the encoded packet header of the second data packet in the P-K second data packets by using the analytical method of the encoded packet to obtain the encoding factor field; The sequence number and offset fields and the indication of the encoding factor field in the encoded packet header of the P-K second data packets form a coefficient factor matrix; the encoded data of the P-K second data packets and the K The first data packet is jointly decoded to obtain N decoded first data packets.
可选的,在该第二数据包的包头携带该Q个等效原数据包和该第二数据包之间的对应关系。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该第二数据包的包头包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息来指示该对应关系。Optionally, the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
可选的,上述长度阈值是编码包长度阈值L1。或者,上述长度阈值是原数据包长度阈值L2。第一设备从P个数据包中确定出K个第一数据包和P-K个第二数据包的实现方式可参考第二方面的相应描述,此处不展开说明。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. Alternatively, the above-mentioned length threshold is the original packet length threshold L2. For an implementation manner in which the first device determines K first data packets and P-K second data packets from the P data packets, reference may be made to the corresponding description of the second aspect, which will not be described here.
可见,本方案针对第一数据包的包头包括偏移字段的情况,提供一种可能的译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that this solution provides a possible decoding process and operation for the case where the header of the first data packet includes an offset field, so that the data packet received by the decoding end can be correctly rank (rank=N). The original data packet is decoded, and the PDU/SDU is recovered according to the segmentation and concatenation information carried in the packet header of the original data packet, thereby reducing the performance loss of the NR system.
结合第十八方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头中包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。这样,以上译码步骤中可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。With reference to the eighteenth aspect, in a possible design, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located. The second data packet is an encoded packet. In this way, in the above decoding step, it is possible to determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then adopt a corresponding parsing method for the packet header of the data packet. to parse.
第十九方面,本申请提供一种数据传输装置,该数据传输装置可以是第一设备或第一设备中的芯片。该数据传输装置包括:获取模块,用于获取N个第一数据包,该N个第一数据包的大小不完全相等;传输模块,用于传输该N个第一数据包;编码模块,用于对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包;该传输模块,还用于传输该M 个第二数据包。其中,每个第一数据包包括包头和数据。每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息。每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等效原数据包。该Q个等效原数据包的大小相等。每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。N、M以及Q均为正整数,Q小于或等于N。In a nineteenth aspect, the present application provides a data transmission device, where the data transmission device may be a first device or a chip in the first device. The data transmission device includes: an acquisition module for acquiring N first data packets, the sizes of the N first data packets are not completely equal; a transmission module for transmitting the N first data packets; an encoding module for using After encoding the N first data packets and adding the encoded packet headers, M second data packets are obtained; the transmission module is also used for transmitting the M second data packets. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the Q equivalent original data packets for encoding. The Q equivalent original data packets have the same size. The header of each first data packet also includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. N, M, and Q are all positive integers, and Q is less than or equal to N.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
可选的,原数据包(即上述第一数据包)的包头中编码因子字段指示的行向量中只有一个元素等于1,其他元素均为0。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。Optionally, only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
结合第十九方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包的编码包包头还包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。With reference to the nineteenth aspect, in a possible design, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; and /Or, the encoded packet header of each second data packet further includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
第二十方面,本申请提供一种数据传输装置,该数据传输装置可以是第二设备或第二设备中的芯片。该数据传输装置包括:获取模块,用于获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包;译码模块,用于对该获取模块获取到的P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的大小不完全相等;还原模块,用于根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。其中,每个第一数据包包括包头和数据。每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息。每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等效原数据包。该Q个等效原数据包的大小相等。每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。P大于或等于N,N大于或等于Q,P、N以及Q均为正整数。In a twentieth aspect, the present application provides a data transmission apparatus, where the data transmission apparatus may be a second device or a chip in the second device. The data transmission device includes: an acquisition module for acquiring P data packets, the P data packets including K first data packets and P-K second data packets; a decoding module for acquiring from the acquisition module The P data packets are decoded, and the N first data packets after decoding are obtained, and the sizes of the N first data packets are not completely equal; the restoration module is used for according to each of the N first data packets. The segmentation information included in the header of the first data packet restores the data of the N first data packets into one or more data units. Wherein, each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field, where the data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the Q equivalent original data packets for encoding. The Q equivalent original data packets have the same size. The header of each first data packet also includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. P is greater than or equal to N, N is greater than or equal to Q, and P, N, and Q are all positive integers.
可选的,上述数据单元是PDU或SDU。Optionally, the above data unit is PDU or SDU.
结合第二十方面,在一种可能的设计中,上述每个第一数据包的包头包括编码因子字段。上述译码模块,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中编码因子字段的指示和该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the twentieth aspect, in a possible design, the packet header of each of the above-mentioned first data packets includes a coding factor field. The above-mentioned decoding module is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt The analysis method of the original data packet parses the packet header of each first data packet in the K first data packets, obtains the serial number of the first data packet, and uses the analysis method of the encoded packet to analyze the P-K second data packets. The encoded packet header of the second data packet obtains the encoding factor field; according to the indication of the encoding factor field in the packet header of the K first data packets and the indication of the encoding factor field in the encoded packet header of the P-K second data packets, constitute Coefficient factor matrix; use the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets to obtain N decoded first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
可选的,原数据包(即上述第一数据包)的包头中编码因子字段指示的行向量中只有一个元素等于1,其他元素均为0。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。Optionally, only one element of the row vector indicated by the encoding factor field in the packet header of the original data packet (that is, the above-mentioned first data packet) is equal to 1, and the other elements are all equal to 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same.
结合第二十方面,在一种可能的设计中,上述每个第一数据包的包头还包括偏移字段,该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。上述译码模块,具体用于:根据该P个数据包中每个数据包的长度以及长度阈 值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号和偏移字段,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中第一数据包的序列号和偏移字段以及该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。With reference to the twentieth aspect, in a possible design, the header of each first data packet further includes an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet. The above-mentioned decoding module is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; adopt The analysis method of the original data packet parses the packet header of each first data packet in the K first data packets, obtains the serial number and offset field of the first data packet, and parses the P-K first data packet by using the analysis method of the encoded packet. In the encoded packet header of the second data packet in the two data packets, the encoding factor field is obtained; according to the sequence number and offset field of the first data packet in the packet header of the K first data packets and the encoding of the P-K second data packets The indication of the coding factor field in the packet header constitutes a coefficient factor matrix; the coding data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix to obtain N decoded data packets. first packet. Wherein, the rank of the coefficient factor matrix is equal to N.
可选的,在该第二数据包的包头携带该Q个等效原数据包和该第二数据包之间的对应关系。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该第二数据包的包头包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息来指示该对应关系。Optionally, the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
可选的,上述长度阈值是编码包长度阈值L1。或者,上述长度阈值是原数据包长度阈值L2。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. Alternatively, the above-mentioned length threshold is the original packet length threshold L2.
结合第二十方面,在一种可能的设计中,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;和/或,每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头中包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。这样,上述译码模块可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。With reference to the twentieth aspect, in a possible design, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is the original data packet; and /or, each second data packet includes an encoded packet header and encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located. The second data packet is an encoded packet. In this way, the above-mentioned decoding module can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method to analyze the packet header of the data packet. Parse.
上述第十七至第二十任一方面的一种实现方式中,上述分割信息包括:该第一数据包的数据在该数据对应的数据单元中的位置信息,和指示该第一数据包的数据的长度的信息。In an implementation manner of any one of the seventeenth to twentieth aspects, the segmentation information includes: position information of the data of the first data packet in the data unit corresponding to the data, and information indicating the first data packet. Information about the length of the data.
可见,本方案通过在第一数据包的包头中携带该第一数据包的数据在PDU/SDU的位置信息,和其长度,有利于译码端将多个第一数据包的数据级联起来以恢复PDU/SDU。It can be seen that in this solution, by carrying the position information of the data of the first data packet in the PDU/SDU and its length in the header of the first data packet, it is beneficial for the decoding end to concatenate the data of multiple first data packets. to restore PDU/SDU.
上述第十七至第二十任一方面的一种实现方式中,上述编码包包头还包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息。该用于指示编码得到该第二数据包的Q个等效原数据包的标识信息是块标识字段或包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。In an implementation manner of any one of the seventeenth to twentieth aspects, the encoded packet header further includes identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet. The identification information used to indicate that the Q equivalent original data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following: information indicating the window length of the encoding window, the first first in the encoding window The sequence number of the data packet, the sequence number of the last first data packet in the encoding window.
应理解,如果编码窗的窗长是半静态配置的,则用于指示编码得到该第二数据包的N个第一数据包的标识信息包括编码窗中第一个第一数据包的序列号、和编码窗中最后一个第一数据包的序列号中的至少一项即可。编码包包头中的编码因子字段(如Coeff ID字段)的长度为8bit,用于指示码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window. The length of the coding factor field (such as the Coeff ID field) in the header of the coding packet is 8 bits, which is used to indicate the row index of the codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
上述第十七至第二十任一方面的一种实现方式中,第一数据包的序列号顺序递增。和/或,每个第二数据包的编码包包头中还包括该第二数据包的序列号。第二数据包的序列号也顺序递增。In an implementation manner of any one of the seventeenth to twentieth aspects, the sequence numbers of the first data packets are sequentially increased. And/or, the encoded packet header of each second data packet further includes the sequence number of the second data packet. The sequence numbers of the second data packets are also sequentially incremented.
第二十一方面,本申请提供一种通信装置,该通信装置可以包括处理器和存储器,可选的包括收发器。其中,该存储器用于存储计算机程序,该收发器用于收发各种数据包或信号,该计算机程序包括程序指令,当该处理器运行该程序指令时,使得该通信装置执行上述第一方面、或上述第二方面、或上述第五方面、或上述第六方面、或上述第九方面、或上述第十方面、或上述第十三方面、或上述第十四方面、或上述第十七方面、或上述第十八方面、或其中任一方面的任意一种可能的实现方式描述的数据传输方法。其中,收发器可以为通信装 置中的射频模块,或,射频模块和天线的组合,或,芯片或电路的输入输出接口。In a twenty-first aspect, the present application provides a communication device, the communication device may include a processor and a memory, and optionally a transceiver. Wherein, the memory is used to store a computer program, the transceiver is used to send and receive various data packets or signals, the computer program includes program instructions, and when the processor runs the program instructions, the communication device is made to perform the above-mentioned first aspect, or the above-mentioned second aspect, or the above-mentioned fifth aspect, or the above-mentioned sixth aspect, or the above-mentioned ninth aspect, or the above-mentioned tenth aspect, or the above-mentioned thirteenth aspect, or the above-mentioned fourteenth aspect, or the above-mentioned seventeenth aspect, Or the data transmission method described in the eighteenth aspect above, or any one possible implementation manner of any one of the aspects. The transceiver may be a radio frequency module in a communication device, or a combination of a radio frequency module and an antenna, or an input and output interface of a chip or circuit.
第二十二方面,本申请提供一种可读存储介质,该可读存储介质上存储有程序指令,当其在计算机上运行时,使得计算机执行上述第一方面、或上述第二方面、或上述第五方面、或上述第六方面、或上述第九方面、或上述第十方面、或上述第十三方面、或上述第十四方面、或上述第十七方面、或上述第十八方面、或其中任一方面的任意一种可能的实现方式描述的数据传输方法。In a twenty-second aspect, the present application provides a readable storage medium, where program instructions are stored on the readable storage medium, which, when run on a computer, cause the computer to execute the above-mentioned first aspect, or the above-mentioned second aspect, or The aforementioned fifth aspect, or the aforementioned sixth aspect, or the aforementioned ninth aspect, or the aforementioned tenth aspect, or the aforementioned thirteenth aspect, or the aforementioned fourteenth aspect, or the aforementioned seventeenth aspect, or the aforementioned eighteenth aspect , or the data transmission method described in any possible implementation manner of any one of the aspects.
第二十三方面,本申请提供一种包含程序指令的程序产品,当其运行时,使得上述第一方面、或上述第二方面、或上述第五方面、或上述第六方面、或上述第九方面、或上述第十方面、或上述第十三方面、或上述第十四方面、或上述第十七方面、或上述第十八方面、或其中任一方面的任意一种可能的实现方式描述的数据传输方法被执行。In a twenty-third aspect, the present application provides a program product comprising program instructions, which, when executed, causes the above-mentioned first aspect, the above-mentioned second aspect, or the above-mentioned fifth aspect, or the above-mentioned sixth aspect, or the above-mentioned first aspect The ninth aspect, or the tenth aspect, or the thirteenth aspect, or the fourteenth aspect, or the seventeenth aspect, or the eighteenth aspect, or any one of the possible implementations The described data transfer method is performed.
第二十四方面,本申请提供一种装置,该装置可以以芯片的形式实现,也可以为设备的形式,该装置包括处理器。该处理器用于读取并执行存储器中存储的程序,以执行上述第一方面、第二方面、第五方面、第六方面、第九方面、第十方面、第十三方面、第十四方面、第十七方面、第十八方面中的一项或多项,或,其中任一方面的任意可能的实现方式中的一项或多项提供的数据传输方法。可选的,该装置还包括存储器,该存储器与该处理器通过电路连接。进一步可选的,该装置还包括通信接口,该处理器与该通信接口连接。该通信接口用于接收待处理的数据包和/或信息,该处理器从该通信接口获取该数据包和/或信息,并对该数据包和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。In a twenty-fourth aspect, the present application provides an apparatus, which can be implemented in the form of a chip or in the form of a device, and the apparatus includes a processor. The processor is configured to read and execute the program stored in the memory, so as to execute the first aspect, the second aspect, the fifth aspect, the sixth aspect, the ninth aspect, the tenth aspect, the thirteenth aspect, and the fourteenth aspect , one or more of the seventeenth aspect, the eighteenth aspect, or, a data transmission method provided by one or more of any possible implementations of any one of the aspects. Optionally, the apparatus further includes a memory connected to the processor through a circuit. Further optionally, the apparatus further includes a communication interface, and the processor is connected to the communication interface. The communication interface is used for receiving data packets and/or information to be processed, the processor obtains the data packets and/or information from the communication interface, processes the data packets and/or information, and outputs the data packets and/or information through the communication interface process result. The communication interface may be an input-output interface.
可选的,上述的处理器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。Optionally, the above-mentioned processor and memory may be physically independent units, or the memory may also be integrated with the processor.
第二十五方面,本申请提供一种通信系统,该通信系统包括上述任一方面中的第一设备和上述任一方面中的第二设备。In a twenty-fifth aspect, the present application provides a communication system including the first device in any of the above aspects and the second device in any of the above-mentioned aspects.
实施本申请实施例,可以在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如现有NR协议中,支持网络编码技术,即使在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。The implementation of the embodiments of the present application can support network coding technology in scenarios that do not depend on the size of SDU or PDU, that is, different SDU or PDU sizes can be the same or different, such as in the existing NR protocol. PDU or SDU can also be recovered in the case of packet loss, reducing performance loss.
附图说明Description of drawings
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所使用的附图作简单地介绍。In order to illustrate the technical solutions of the embodiments of the present application more clearly, the accompanying drawings used in the description of the embodiments will be briefly introduced below.
图1a是本申请实施例提供的一种多个DU共用一个CU的网络架构示意图;FIG. 1a is a schematic diagram of a network architecture in which multiple DUs share one CU according to an embodiment of the present application;
图1b是本申请实施例提供的一种CU和DU的协议层功能的示意图;1b is a schematic diagram of a protocol layer function of a CU and DU provided by an embodiment of the present application;
图2是本申请实施例提供的应用场景示意图;2 is a schematic diagram of an application scenario provided by an embodiment of the present application;
图3是本申请实施例提供的通信系统的简化示意图;3 is a simplified schematic diagram of a communication system provided by an embodiment of the present application;
图4是随机线性网络编码的示意图;Fig. 4 is the schematic diagram of random linear network coding;
图5是本申请实施例提供的数据传输方法的第一种示意流程图;5 is a first schematic flowchart of a data transmission method provided by an embodiment of the present application;
图6是本申请实施例提供的协议栈的示意图;6 is a schematic diagram of a protocol stack provided by an embodiment of the present application;
图7是本申请实施例提供的编码端数据传输流程的第一种示意图;7 is a first schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application;
图8是本申请实施例提供的PDU/SDU与第一数据包的数据的映射关系示意图;8 is a schematic diagram of a mapping relationship between PDU/SDU and data of a first data packet provided by an embodiment of the present application;
图9是本申请实施例提供的PDU/SDU与第一数据包中的数据段的位置关系示意图;9 is a schematic diagram of a positional relationship between a PDU/SDU and a data segment in a first data packet provided by an embodiment of the present application;
图10a是本申请实施例提供的第一数据包的包头格式示意图一;10a is a schematic diagram 1 of a packet header format of a first data packet provided by an embodiment of the present application;
图10b是本申请实施例提供的第一数据包的包头格式示意图二;FIG. 10b is a schematic diagram 2 of the packet header format of the first data packet provided by the embodiment of the present application;
图11是本申请实施例提供的第一数据包的包头格式示意图三;11 is a schematic diagram 3 of a packet header format of a first data packet provided by an embodiment of the present application;
图12是本申请实施例提供的第一数据包的包头格式示意图四;12 is a schematic diagram 4 of a packet header format of a first data packet provided by an embodiment of the present application;
图13是本申请实施例提供的第一数据包的包头格式示意图五;13 is a schematic diagram 5 of the packet header format of the first data packet provided by the embodiment of the present application;
图14是本申请实施例提供的编码包包头的第一种示意图;14 is a first schematic diagram of an encoded packet header provided by an embodiment of the present application;
图15是本申请实施例提供的编码包包头的第二种示意图;15 is a second schematic diagram of an encoded packet header provided by an embodiment of the present application;
图16是本申请实施例提供的译码端数据传输流程示意图;16 is a schematic diagram of a data transmission process flow of a decoding end provided by an embodiment of the present application;
图17是本申请实施例提供的数据传输方法的第二种示意流程图;17 is a second schematic flowchart of the data transmission method provided by the embodiment of the present application;
图18是本申请实施例提供的编码端数据传输流程的第二种示意图;18 is a second schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application;
图19是本申请实施例提供的第一数据包的包头和编码包包头的示意图;19 is a schematic diagram of a packet header and an encoded packet header of a first data packet provided by an embodiment of the present application;
图20是本申请实施例提供的数据传输方法的第三种示意流程图;FIG. 20 is a third schematic flowchart of a data transmission method provided by an embodiment of the present application;
图21是本申请实施例提供的编码端数据传输流程的第三种示意图;21 is a third schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application;
图22是本申请实施例提供的级联数据包中级联包包头的位置示意图;22 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet provided by an embodiment of the present application;
图23是本申请实施例提供的编码端数据传输流程的第四种示意图;23 is a fourth schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application;
图24是本申请实施例提供的添加填充比特的级联数据包中级联包包头的位置示意图;24 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet with padding bits added according to an embodiment of the present application;
图25是本申请实施例提供的级联包包头的格式示意图一;25 is a schematic diagram 1 of the format of a concatenated packet header provided by an embodiment of the present application;
图26a是本申请实施例提供的级联包包头的格式示意图二;FIG. 26a is a schematic diagram 2 of the format of a concatenated packet header provided by an embodiment of the present application;
图26b是本申请实施例提供的级联包包头的格式示意图三;Figure 26b is a schematic diagram three of the format of a concatenated packet header provided by an embodiment of the present application;
图27是本申请实施例提供的级联包包头的格式示意图四;FIG. 27 is a schematic diagram 4 of the format of a concatenated packet header provided by an embodiment of the present application;
图28是本申请实施例提供的第一数据包的包头格式示意图六;28 is a schematic diagram 6 of a header format of a first data packet provided by an embodiment of the present application;
图29是本申请实施例提供的数据传输方法的第四种示意流程图;FIG. 29 is a fourth schematic flowchart of the data transmission method provided by the embodiment of the present application;
图30是本申请实施例提供的编码端数据传输流程的第五种示意图;30 is a fifth schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application;
图31a是本申请实施例提供的第一数据包的包头格式示意图七;FIG. 31a is a schematic diagram 7 of a header format of a first data packet provided by an embodiment of the present application;
图31b是本申请实施例提供的第一数据包的包头格式示意图八;31b is a schematic diagram 8 of the packet header format of the first data packet provided by the embodiment of the present application;
图32是本申请实施例提供的一种构造系数因子矩阵的示意图;FIG. 32 is a schematic diagram of constructing a coefficient factor matrix provided by an embodiment of the present application;
图33是本申请实施例提供的数据传输装置1的一结构示意图;33 is a schematic structural diagram of a data transmission device 1 provided by an embodiment of the present application;
图34是本申请实施例提供的数据传输装置1的另一结构示意图;FIG. 34 is another schematic structural diagram of the data transmission apparatus 1 provided by an embodiment of the present application;
图35是本申请实施例提供的数据传输装置2的一结构示意图;35 is a schematic structural diagram of a data transmission apparatus 2 provided by an embodiment of the present application;
图36是本申请实施例提供的数据传输装置2的另一结构示意图;FIG. 36 is another schematic structural diagram of the data transmission device 2 provided by the embodiment of the present application;
图37是本申请实施例提供的通信装置的结构示意图。FIG. 37 is a schematic structural diagram of a communication apparatus provided by an embodiment of the present application.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application.
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一信息和第二信息仅仅是为了区分不同的信息,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。In order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish the same or similar items with basically the same function and effect. For example, the first information and the second information are only for distinguishing different information, and the sequence of the first information is not limited. Those skilled in the art can understand that the words "first", "second" and the like do not limit the quantity and execution order, and the words "first", "second" and the like are not necessarily different.
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单 独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c;a和b;a和c;b和c;或a和b和c。其中a,b,c可以是单个,也可以是多个。In the embodiments of the present application, "at least one" refers to one or more, and "multiple" refers to two or more. "And/or", which describes the association relationship of the associated objects, indicates that there can be three kinds of relationships, for example, A and/or B, which can indicate: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A, B can be singular or plural. The character "/" generally indicates that the associated objects are an "or" relationship. "At least one item(s) below" or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (a) of a, b, or c may represent: a, b, c; a and b; a and c; b and c; or a and b and c. Where a, b, c can be single or multiple.
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。It can be understood that in this application, "when", "if" and "if" all mean that the device will perform corresponding processing under certain objective circumstances, not a limited time, and it is not required that the device must be implemented when it is implemented. The act of judgment does not imply the existence of other limitations.
本申请中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内,具体可以结合上下文进行理解。In this application, "simultaneously" can be understood as being at the same point in time, within a period of time, or within the same period, which can be specifically understood in conjunction with the context.
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。References in this application to elements in the singular are intended to mean "one or more" rather than "one and only one" unless specifically stated otherwise.
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。Additionally, the terms "system" and "network" are often used interchangeably herein.
可以理解,在本申请各实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。It can be understood that, in various embodiments of the present application, "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that determining B according to A does not mean that B is only determined according to A, and B may also be determined according to A and/or other information.
为便于理解本申请实施例提供的数据传输方法,下面将对本申请实施例提供的数据传输方法的系统架构和应用场景进行说明。可理解的,本申请实施例描述的系统架构和应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。To facilitate understanding of the data transmission method provided by the embodiments of the present application, the following describes the system architecture and application scenarios of the data transmission method provided by the embodiments of the present application. It is understandable that the system architecture and application scenarios described in the embodiments of the present application are for the purpose of illustrating the technical solutions of the embodiments of the present application more clearly, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application.
无线通信系统中包括通信设备,通信设备间可以利用空口资源进行无线通信。其中,通信设备可以包括网络设备和终端设备,网络设备还可以称为基站设备。空口资源可以包括时域资源、频域资源、码资源和空间资源中至少一个。A wireless communication system includes communication devices, and air interface resources can be used for wireless communication between the communication devices. The communication equipment may include network equipment and terminal equipment, and the network equipment may also be referred to as base station equipment. The air interface resources may include at least one of time domain resources, frequency domain resources, code resources and space resources.
本申请实施例涉及到的网络设备包括接入网设备,例如基站(base station,BS),BS可以是网络侧的一种用于发射或接收信号的实体,也是一种部署在无线接入网中能够和终端进行无线通信的设备。基站(BS)可以是固定的,也可以是移动的。其中,基站可能有多种形式,比如宏基站、微基站、中继站和接入点等。示例性地,本申请实施例涉及到的基站可以是5G中的基站或LTE中演进的基站(Evolved Node B,eNB)。其中,5G中的基站还可以称为发送接收点(transmission reception point,TRP)或5G基站(Next-Generation Node B,gNB)。基站还可以与如下名称进行替换,比如:节点B(NodeB)、发射点(transmitting point,TP)、主站MeNB、辅站SeNB、多制式无线(MSR)节点、家庭基站、网络控制器、接入节点、无线节点、传输节点、收发节点、基带单元(baseband unit,BBU)、射频拉远单元(remote radio unit,RRU)、有源天线单元(AAU)、射频头(RRH)、中心单元(CU)、分布单元(DU)、定位节点等。本申请实施例中,用于实现网络设备的功能的装置可以是网络设备;也可以是能够支持网络设备实现该功能的装置,例如芯片系统、或通信模块、或调制解调器等,该装置可以被安装在网络设备中。在本申请实施例提供的技术方案中,以用于实现网络设备的功能的装置是网络设备,以网络设备是基站为例,描述本申请实施例提供的技术方案。基站可以支持相同或不同接入技术的网络。本申请的实施例对网络设备所采用的具体技术和具体设备形态不做限定。The network devices involved in the embodiments of this application include access network devices, such as a base station (base station, BS). A device that can communicate wirelessly with a terminal. A base station (BS) can be fixed or mobile. The base station may have various forms, such as a macro base station, a micro base station, a relay station, and an access point. Exemplarily, the base station involved in the embodiments of the present application may be a base station in 5G or an evolved base station (Evolved Node B, eNB) in LTE. Among them, the base station in 5G may also be called a transmission reception point (TRP) or a 5G base station (Next-Generation Node B, gNB). The base station can also be replaced with the following names, such as: Node B (NodeB), transmitting point (TP), primary station MeNB, secondary station SeNB, multi-standard radio (MSR) node, home base station, network controller, access point. Ingress node, wireless node, transmission node, transceiver node, baseband unit (BBU), remote radio unit (RRU), active antenna unit (AAU), radio head (RRH), central unit ( CU), distribution unit (DU), positioning node, etc. In the embodiments of the present application, the device for implementing the function of the network device may be a network device; it may also be a device capable of supporting the network device to realize the function, such as a chip system, a communication module, or a modem, etc., and the device may be installed in network equipment. In the technical solutions provided by the embodiments of the present application, the device for implementing the functions of the network equipment is the network equipment, and the network equipment is a base station as an example to describe the technical solutions provided by the embodiments of the present application. Base stations can support networks of the same or different access technologies. The embodiments of the present application do not limit the specific technology and specific device form adopted by the network device.
在一些部署中,接入网设备(例如:gNB)可以包括集中式单元(centralized unit,CU)和分布式单元(distributed unit,DU)。gNB还可以包括射频单元(radio unit,RU)。CU和 DU可以理解为是对基站从逻辑功能角度的划分,CU和DU在物理上可以分离,也可以部署在一起。例如,多个DU可以共用一个CU或者一个DU也可以连接多个CU,CU和DU之间可以通过F1接口相连。示例性的,参见图1a,图1a是本申请实施例提供的一种多个DU共用一个CU的网络架构示意图。如图1a所示,核心网和RAN互连通信,RAN中的基站分离成CU和DU,多个DU共用一个CU。图1a所示的网络架构可以应用于5G通信系统,也可以与LTE系统共享一个或多个部件或资源。包括CU节点和DU节点的接入网设备将协议层拆分开,部分协议层的功能放在CU集中控制,剩下部分或全部协议层的功能分布在DU中,由CU集中控制DU。作为一种实现方式,参见图1b,图1b是本申请实施例提供的一种CU和DU的协议层功能的示意图。如图1b所示,CU部署有协议栈中的无线资源控制(radio resource control,RRC)层,分组数据汇聚协议(packet data convergence protocol,PDCP)层,以及业务数据适应协议(service data adaptation protocol,SDAP)层;DU部署有协议栈中的无线链路控制(radio link control,RLC)层,媒体接入控制(medium access control,MAC)层,以及物理层(physical layer,PHY)。从而,CU具有RRC、PDCP和SDAP的处理能力。DU具有RLC、MAC和PHY的处理能力。可以理解的是,上述功能的切分仅为一个示例,不构成对CU和DU的限定。也就是说,CU和DU之间还可以有其他功能切分的方式,示例性的,将RLC层的部分功能和RLC层以上的协议层的功能设置在CU,将RLC层的剩余功能和RLC层以下的协议层的功能设置在DU。例如,还可以按照通话业务、语音业务或短信业务的业务类型或者其他系统需求对CU或者DU的功能进行划分。示例性的,CU或者DU的功能按照时延划分,可以将处理时间需要满足时延要求的功能设置在DU,不需要满足时延要求的功能设置在CU。例如,CU也可以具有核心网的一个或多个功能,一个或者多个CU可以集中设置,也可以分离设置。例如,CU可以设置在网络侧方便集中管理,DU可以具有多个射频功能,也可以将射频功能拉远设置。In some deployments, an access network device (eg, a gNB) may include a centralized unit (CU) and a distributed unit (DU). The gNB may also include a radio unit (RU). CU and DU can be understood as the division of the base station from the perspective of logical functions. The CU and DU can be physically separated or deployed together. For example, multiple DUs may share one CU or one DU may be connected to multiple CUs, and the CUs and DUs may be connected through an F1 interface. For example, refer to FIG. 1a, which is a schematic diagram of a network architecture in which multiple DUs share one CU according to an embodiment of the present application. As shown in Figure 1a, the core network and the RAN communicate with each other, the base station in the RAN is separated into CUs and DUs, and multiple DUs share one CU. The network architecture shown in Figure 1a can be applied to a 5G communication system, and can also share one or more components or resources with an LTE system. The access network equipment including the CU node and the DU node separates the protocol layers, and the functions of some protocol layers are centrally controlled by the CU, and the functions of the remaining part or all of the protocol layers are distributed in the DU, and the CU centrally controls the DU. As an implementation manner, refer to FIG. 1b, which is a schematic diagram of a protocol layer function of a CU and a DU provided by an embodiment of the present application. As shown in Figure 1b, the CU is deployed with the radio resource control (RRC) layer in the protocol stack, the packet data convergence protocol (PDCP) layer, and the service data adaptation protocol (service data adaptation protocol, SDAP) layer; DU is deployed with a radio link control (RLC) layer in the protocol stack, a medium access control (medium access control, MAC) layer, and a physical layer (physical layer, PHY). Thus, the CU has the processing capabilities of RRC, PDCP and SDAP. DU has the processing capability of RLC, MAC and PHY. It can be understood that the division of the above functions is only an example, and does not constitute a limitation on the CU and the DU. That is to say, there may be other ways of dividing functions between the CU and the DU. Exemplarily, some functions of the RLC layer and functions of the protocol layers above the RLC layer are set in the CU, and the remaining functions of the RLC layer and the RLC layer are set in the CU. The function of the protocol layer below the layer is set in the DU. For example, the functions of the CU or DU may also be divided according to the service type of the call service, the voice service or the short message service or other system requirements. Exemplarily, the functions of the CU or DU are divided according to the delay, and the functions whose processing time needs to meet the delay requirements may be set in the DU, and the functions that do not need to meet the delay requirements may be set in the CU. For example, a CU may also have one or more functions of the core network, and one or more CUs may be set centrally or separately. For example, the CU can be set on the network side to facilitate centralized management, and the DU can have multiple radio functions, or the radio functions can be set remotely.
CU的功能可以由一个实体来实现也可以由不同的实体实现。例如,可以对CU的功能进行进一步切分,例如,将控制面(control plane,CP)和用户面(user plane,UP)分离,即CU的控制面(CU-CP)和CU的用户面(CU-UP)。例如,CU-CP和CU-UP可以由不同的功能实体来实现,该CU-CP和CU-UP可以与DU相耦合,共同完成基站的功能。一种可能的方式中,CU-CP负责控制面功能,主要包含RRC和PDCP控制面PDCP-C。PDCP-C主要负责控制面数据的加解密,完整性保护,数据传输等中的一项或多项。CU-UP负责用户面功能,主要包含SDAP和PDCP用户面PDCP-U。其中SDAP主要负责将核心网的数据进行处理并将数据流(flow)映射到承载。PDCP-U主要负责数据面的加解密,完整性保护,头压缩,序列号维护,数据传输等中的一项或多项。其中CU-CP和CU-UP通过E1接口连接。CU-CP代表接入网设备通过Ng接口和核心网连接。CU-CP通过F1-C(控制面)和DU连接。CU-UP通过F1-U(用户面)和DU连接。当然还有一种可能的实现是PDCP-C也在CU-UP。由于RRC层的信息最终会变成PHY层的信息,或者,由PHY层的信息转变而来,因而,在这种架构下,高层信令,如RRC层信令或PDCP层信令,也可以认为是由DU发送的,或者,由DU+RU发送的。可以理解的是,接入网设备可以为CU节点、或DU节点、或包括CU节点和DU节点的设备。The functions of the CU can be implemented by one entity or by different entities. For example, the functions of the CU can be further segmented, for example, the control plane (CP) and the user plane (UP) can be separated, that is, the CU control plane (CU-CP) and the CU user plane ( CU-UP). For example, the CU-CP and the CU-UP can be implemented by different functional entities, and the CU-CP and the CU-UP can be coupled with the DU to jointly complete the functions of the base station. In a possible manner, the CU-CP is responsible for the control plane function, which mainly includes the RRC and the PDCP control plane PDCP-C. PDCP-C is mainly responsible for one or more of control plane data encryption and decryption, integrity protection, and data transmission. CU-UP is responsible for user plane functions, mainly including SDAP and PDCP user plane PDCP-U. SDAP is mainly responsible for processing the data of the core network and mapping the data flow to the bearer. PDCP-U is mainly responsible for one or more of data plane encryption and decryption, integrity protection, header compression, serial number maintenance, and data transmission. The CU-CP and CU-UP are connected through the E1 interface. CU-CP represents that the access network equipment is connected to the core network through the Ng interface. The CU-CP is connected to the DU through the F1-C (control plane). CU-UP is connected to DU through F1-U (user plane). Of course, there is also a possible implementation that PDCP-C is also in CU-UP. Since the information of the RRC layer will eventually become the information of the PHY layer, or be transformed from the information of the PHY layer, therefore, under this architecture, higher-layer signaling, such as RRC layer signaling or PDCP layer signaling, can also It is considered to be sent by DU, or, sent by DU+RU. It can be understood that the access network device may be a CU node, or a DU node, or a device including a CU node and a DU node.
本申请实施例涉及的终端设备还可以称为终端、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,其可以是用户侧的一种用于接收或发射信号的实体,如手机;其可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。终端设备 可以是用户设备(user equipment,UE),其中,UE包括具有无线通信功能的手持式设备、车载设备、可穿戴设备或计算设备。示例性地,UE可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑。终端设备还可以是虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请实施例中,用于实现终端的功能的装置可以是终端;也可以是能够支持终端实现该功能的装置,例如芯片系统、或通信模块、或调制解调器等,该装置可以被安装在终端中。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。本申请实施例提供的技术方案中,以用于实现终端的功能的装置是终端,以终端是UE为例,描述本申请实施例提供的技术方案。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。The terminal equipment involved in the embodiments of this application may also be referred to as terminal, user equipment (UE), mobile station (mobile station, MS), mobile terminal (mobile terminal, MT), etc., which may be a kind of user side An entity used to receive or transmit signals, such as a cell phone; it can be deployed on land, including indoor or outdoor, hand-held or vehicle-mounted; it can also be deployed on water (such as ships, etc.); it can also be deployed in the air (such as aircraft, balloons, etc.) and satellite, etc.). The terminal device may be user equipment (user equipment, UE), wherein the UE includes a handheld device, a vehicle-mounted device, a wearable device or a computing device with a wireless communication function. Exemplarily, the UE may be a mobile phone, a tablet computer, or a computer with a wireless transceiver function. The terminal device can also be a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in telemedicine, intelligent Wireless terminals in power grids, wireless terminals in smart cities, wireless terminals in smart homes, and so on. In the embodiment of the present application, the device for realizing the function of the terminal may be a terminal; it may also be a device capable of supporting the terminal to realize the function, such as a chip system, a communication module, or a modem, etc., and the device may be installed in the terminal . In this embodiment of the present application, the chip system may be composed of chips, or may include chips and other discrete devices. In the technical solutions provided by the embodiments of the present application, the device for implementing the functions of the terminal is a terminal, and the terminal is a UE as an example to describe the technical solutions provided by the embodiments of the present application. The embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal device.
可选的,UE也可以用于充当基站。例如,UE可以充当调度实体,其在车辆外联(vehicle-to-everything,V2X)、设备到设备(device-to-device,D2D)或点对点(peer to peer,P2P)等中的UE之间提供侧行链路信号。Optionally, the UE can also be used to act as a base station. For example, a UE may act as a scheduling entity between UEs in vehicle-to-everything (V2X), device-to-device (D2D), or peer-to-peer (P2P), etc. Provides sidelink signals.
本申请实施例提供的技术方案可以应用于通信设备间的无线通信。通信设备间的无线通信可以包括:网络设备和终端间的无线通信、网络设备和网络设备间的无线通信以及终端和终端间的无线通信。在本申请实施例中,术语“无线通信”还可以简称为“通信”,术语“通信”还可以描述为“数据传输”、“信息传输”或“传输”。The technical solutions provided in the embodiments of the present application can be applied to wireless communication between communication devices. The wireless communication between communication devices may include: wireless communication between a network device and a terminal, wireless communication between a network device and a network device, and wireless communication between a terminal and a terminal. In this embodiment of the present application, the term "wireless communication" may also be referred to as "communication" for short, and the term "communication" may also be described as "data transmission", "information transmission" or "transmission".
本申请实施例提供的数据传输方法主要针对长期演进(long term evolution,LTE)或NR等协议框架,可应用于多种移动通信场景中。比如,基站和用户设备(User Equipment,UE)之间、或UE和UE之间独立组网(Standalone,SA)场景的点对点传输、基站和用户设备的多跳/中继(relay)传输、多个基站和用户设备的双连接(Dual Connectivity,DC)或多连接等场景。参见图2,图2是本申请实施例提供的应用场景示意图。如图2所示,图2示出了四种应用场景,分别是点对点单连接、多跳单连接、双连接、以及多跳多连接。应理解的,本申请实施例提供的数据传输方法可以应用于图2所示的各种应用场景中,还应理解,图2仅是示例性的,从业务场景角度而言,本申请实施例提供的数据传输方法还适用于诸多场景,包括但不限于诸如扩展现实(extended reality,XR)业务中的数据编码、上行大容量场景等。此外,图2不对适用于本申请的网络架构产生限制,并且本申请不限制上行、下行、接入链路、回传(backhaul)链路、侧链路(Sidelink)等传输。The data transmission methods provided in the embodiments of the present application are mainly aimed at a protocol framework such as long term evolution (long term evolution, LTE) or NR, and can be applied to various mobile communication scenarios. For example, point-to-point transmission between a base station and a user equipment (User Equipment, UE), or between a UE and a UE in an independent networking (Standalone, SA) scenario, multi-hop/relay transmission between a base station and a user equipment, multiple Dual connectivity (Dual Connectivity, DC) or multi-connection scenarios of a base station and user equipment. Referring to FIG. 2, FIG. 2 is a schematic diagram of an application scenario provided by an embodiment of the present application. As shown in FIG. 2, FIG. 2 shows four application scenarios, namely point-to-point single connection, multi-hop single connection, dual connection, and multi-hop multi-connection. It should be understood that the data transmission method provided in the embodiment of the present application can be applied to various application scenarios shown in FIG. 2 , and it should also be understood that FIG. 2 is only exemplary. The provided data transmission method is also suitable for many scenarios, including but not limited to data coding in extended reality (extended reality, XR) services, uplink large-capacity scenarios, and the like. In addition, FIG. 2 does not limit the network architecture applicable to the present application, and the present application does not limit the transmission of uplink, downlink, access link, backhaul link, side link (Sidelink) and the like.
参见图3,图3是本申请实施例提供的通信系统的简化示意图。为了简单起见,图3仅示出了基站110、UE 120以及网络130。基站110包括接口111和处理器112。处理器112可选地可以存储程序114。基站110可选地可以包括存储器113。存储器113可选地可以存储程序115。UE 120包括接口121和处理器122。处理器122可选地可以存储程序124。UE 120可选地可以包括存储器123。存储器123可选地可以存储程序125。这些组件一起工作,以提供本申请中描述的各种功能。例如,处理器112和接口121一起工作以提供基站110与UE 120之间的无线连接。处理器122和接口121共同作用,实现UE 120的下行传输和/或上行传输。Referring to FIG. 3 , FIG. 3 is a simplified schematic diagram of a communication system provided by an embodiment of the present application. For simplicity, FIG. 3 only shows base station 110, UE 120, and network 130. Base station 110 includes interface 111 and processor 112 . Processor 112 may optionally store program 114 . Base station 110 may optionally include memory 113 . Memory 113 may optionally store program 115 . UE 120 includes interface 121 and processor 122. Processor 122 may optionally store program 124 . UE 120 may optionally include memory 123. Memory 123 may optionally store program 125 . These components work together to provide the various functions described in this application. For example, processor 112 and interface 121 work together to provide a wireless connection between base station 110 and UE 120. The processor 122 and the interface 121 work together to realize downlink transmission and/or uplink transmission of the UE 120.
网络130可以包括一个或多个网络节点130a、130b,以提供核心网功能。网络节点130a、130b可以是5G核心网节点,或更早一代(例如4G、3G或2G)核心网节点。例如,网络130a、130b可以是接入管理功能(AMF)、移动性管理实体(MME)等。网络130还可以包括公共交换电话网络(PSTN)、分组数据网络、光网络、互联网协议(IP)网络中的一个或多个网络节点。广域网(WAN)、局域网(LAN)、无线局域网(WLAN)、有线网络、无线网络、 城域网和其他网络,以使UE 120和/或基站110之间能够进行通信。The network 130 may include one or more network nodes 130a, 130b to provide core network functions. The network nodes 130a, 130b may be 5G core network nodes, or earlier generation (eg 4G, 3G or 2G) core network nodes. For example, the networks 130a, 130b may be an Access Management Function (AMF), a Mobility Management Entity (MME), or the like. The network 130 may also include one or more network nodes in a public switched telephone network (PSTN), a packet data network, an optical network, an Internet Protocol (IP) network. Wide Area Networks (WANs), Local Area Networks (LANs), Wireless Local Area Networks (WLANs), wired networks, wireless networks, metropolitan area networks, and other networks to enable communication between UEs 120 and/or base stations 110.
处理器(例如,处理器112和/或处理器122)可包括一个或多个处理器并实现为计算设备的组合。处理器(例如,处理器112和/或处理器122)可分别包括以下一种或多种:微处理器、微控制器、数字信号处理器(DSP)、数字信号处理设备(DSPD)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、选通逻辑、晶体管逻辑、分立硬件电路、处理电路或其它合适的硬件、固件和/或硬件和软件的组合,用于执行本申请中所描述的各种功能。处理器(例如,处理器112和/或处理器122)可以是通用处理器或专用处理器。例如,处理器112和/或处理器122可以是基带处理器或中央处理器。基带处理器可用于处理通信协议和通信数据。中央处理器可用于使基站110和/或UE 120执行软件程序,并处理软件程序中的数据。A processor (eg, processor 112 and/or processor 122) may include one or more processors and be implemented as a combination of computing devices. The processors (eg, processor 112 and/or processor 122 ) may each include one or more of the following: microprocessors, microcontrollers, digital signal processors (DSPs), digital signal processing devices (DSPDs), special-purpose Integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), gate logic, transistor logic, discrete hardware circuits, processing circuits or other suitable hardware, firmware and/or hardware and software combination for performing the various functions described in this application. The processors (eg, processor 112 and/or processor 122) may be general purpose processors or special purpose processors. For example, processor 112 and/or processor 122 may be a baseband processor or a central processing unit. A baseband processor may be used to process communication protocols and communication data. The central processing unit may be used to cause the base station 110 and/or the UE 120 to execute software programs and process data in the software programs.
接口(例如,接口111和/或121)可包括用于实现与一个或多个计算机设备(例如,UE、BS和/或网络节点)之间的通信。在一些实施例中,接口可以包括用于耦合有线连接的电线、或用于耦合无线收发器的管脚、或用于无线连接的芯片和/或管脚。在一些实施例中,接口可以包括发射器、接收器、收发器和/或天线。接口可以被配置为使用任何可用的协议(例如3GPP标准)。Interfaces (eg, interfaces 111 and/or 121 ) may be included to enable communication with one or more computer devices (eg, UEs, BSs, and/or network nodes). In some embodiments, the interface may include wires for coupling wired connections, or pins for coupling wireless transceivers, or chips and/or pins for wireless connections. In some embodiments, the interface may include a transmitter, receiver, transceiver, and/or antenna. The interface can be configured to use any available protocol (eg 3GPP standard).
本申请中的程序在广义上用于表示软件。软件的非限制性示例是程序代码、程序、子程序、指令、指令集、代码、代码段、软件模块、应用程序、软件应用程序等。程序可以在处理器和/或计算机中运行,以使基站110和/或UE 120执行本申请中描述的各种功能和/或过程。A program in this application is used in the broadest sense to mean software. Non-limiting examples of software are program code, programs, subprograms, instructions, sets of instructions, codes, code segments, software modules, applications, software applications, and the like. Programs may run in a processor and/or computer to cause base station 110 and/or UE 120 to perform various functions and/or processes described herein.
内存(例如存储器113和/或存储器123)可存储由处理器112、122在执行软件时操纵的数据。存储器113、123可以使用任何存储技术实现。例如,存储器可以是处理器和/或计算机能够访问的任何可用存储介质。存储介质的非限制性示例包括:RAM、ROM、EEPROM、CD-ROM、可移动介质、光盘存储器、磁盘存储介质、磁存储设备、闪存、寄存器、状态存储器、远程挂载存储器、本地或远程存储器组件,或能够携带或存储软件、数据或信息并可由处理器/计算机访问的任何其它介质。Memory (eg, memory 113 and/or memory 123) may store data that is manipulated by processors 112, 122 when executing software. The memories 113, 123 may be implemented using any storage technology. For example, memory can be any available storage medium that can be accessed by a processor and/or a computer. Non-limiting examples of storage media include: RAM, ROM, EEPROM, CD-ROM, removable media, optical disk storage, magnetic disk storage media, magnetic storage devices, flash memory, registers, state storage, remote mount storage, local or remote storage component, or any other medium capable of carrying or storing software, data or information and accessible by a processor/computer.
内存(例如存储器113和/或存储器123)和处理器(例如处理器112和/或处理器122)可以分开设置或集成在一起。存储器可以用于与处理器连接,使得处理器能够从存储器中读取信息,在存储器中存储和/或写入信息。存储器113可以集成在处理器112中。存储器123可以集成在处理器122中。处理器(例如处理器113和/或处理器123)和存储器(例如处理器112和/或处理器122)可以设置在集成电路中(例如,该集成电路可以设置在UE或基站或其他网络节点中)。The memory (eg, memory 113 and/or memory 123 ) and the processor (eg, processor 112 and/or processor 122 ) may be provided separately or integrated together. The memory may be used in connection with the processor such that the processor can read information from, store and/or write information in the memory. The memory 113 may be integrated in the processor 112 . The memory 123 may be integrated in the processor 122 . The processor (eg, processor 113 and/or processor 123) and memory (eg, processor 112 and/or processor 122) may be provided in an integrated circuit (eg, the integrated circuit may be provided at a UE or a base station or other network node) middle).
上述内容简要阐述了本申请实施例的系统架构和可能的应用场景,为更好地理解本申请实施例的技术方案,下面将简要介绍网络编码。The above content briefly describes the system architecture and possible application scenarios of the embodiments of the present application. In order to better understand the technical solutions of the embodiments of the present application, network coding will be briefly introduced below.
常用的网络编码方案包括随机线性网络编码(random linear network coding,RLNC)、卷积网络编码(convolutional network coding,CNC)等。下面以RLNC为例进行简要说明。RLNC方案以数据块(一个数据块中包括若干个大小相同的原数据)为单元,通过构建编码系数矩阵对原数据进行编码得到一组编码数据包。编码数据包的大小与数据块中原数据包的大小相同。通常,编码系数矩阵中的系数在有限域,如伽罗华域(Galois Field,GF)中随机选取。参见图4,图4是随机线性网络编码的示意图。如图4所示,编码系数矩阵(即图4中的A (W+R)×W)大小为(W+R)×W,即(W+R)行W列,通过对一个包含W个原数据的数据块(图4中的X W×1)进行网络编码,得到W+R个编码数据(图4中的Y (W+R)×1),对应的码率(冗余)表示为 W/(W+R)。其中,编码系数矩阵在GF(q)域中随机选择系数,q表示伽罗华域的大小,伽罗华域的取值为区间[0,q-1]。W和R均是正整数。应理解,RLNC方案中,编码数据块(这里的编码数据块是指对一个包含W个原数据的数据块进行网络编码得到W+R个编码数据)之间没有关联,即编码操作对每个独立的数据块进行,每个数据块的冗余(码率)可以相同,也可以不相同。编码端/发送端对生成的W+R个编码数据统一加包头信息后发送,译码端/接收端接收到W个正确且线性无关的编码数据包时,即可正确译码并恢复出W个原数据。这是因为编码数据包融合了若干个原数据的信息,所以接收端可以用编码数据包来恢复原数据。在本申请实施例中,术语“编码数据包”还可以简称为“编码包”,两者可替换使用。 Commonly used network coding schemes include random linear network coding (RLNC), convolutional network coding (CNC), and the like. The following is a brief description by taking RLNC as an example. The RLNC scheme uses a data block (a data block includes several original data of the same size) as a unit, and encodes the original data by constructing a coding coefficient matrix to obtain a set of encoded data packets. The size of the encoded packet is the same as the size of the original packet in the data block. Usually, the coefficients in the coding coefficient matrix are randomly selected in a finite field, such as Galois Field (GF). Referring to FIG. 4, FIG. 4 is a schematic diagram of random linear network coding. As shown in FIG. 4 , the size of the coding coefficient matrix (ie A (W+R)×W in FIG. 4 ) is (W+R)×W, that is, (W+R) rows and W columns. The data block of the original data (X W×1 in FIG. 4 ) is network-coded to obtain W+R encoded data (Y (W+R)×1 in FIG. 4 ), and the corresponding code rate (redundancy) indicates is W/(W+R). Among them, the coding coefficient matrix randomly selects coefficients in the GF(q) field, q represents the size of the Galois field, and the value of the Galois field is in the interval [0, q-1]. Both W and R are positive integers. It should be understood that in the RLNC scheme, there is no correlation between the encoded data blocks (the encoded data block here refers to performing network coding on a data block containing W original data to obtain W+R encoded data), that is, the encoding operation is performed on each Independent data blocks are performed, and the redundancy (code rate) of each data block can be the same or different. The encoder/transmitter adds the packet header information to the generated W+R encoded data uniformly and sends it. When the decoder/receiver receives W correct and linearly independent encoded data packets, it can correctly decode and restore W. original data. This is because the encoded data packet combines the information of several original data, so the receiving end can use the encoded data packet to restore the original data. In this embodiment of the present application, the term "encoded data packet" may also be simply referred to as "encoded packet", and the two may be used interchangeably.
由于干扰、噪声等因素,当译码端/接收端接收到的正确且线性无关的编码数据包个数小于W时,译码端/接收端无法进行译码,此时反馈给编码端/发送端正确译码还需要的编码数据包个数,编码端/发送端根据反馈信息发送对应个数的编码数据包,该编码数据包与下一个数据块的编码无关。Due to factors such as interference and noise, when the number of correct and linearly independent coded data packets received by the decoder/receiver is less than W, the decoder/receiver cannot perform decoding, and it is fed back to the encoder/send. The number of encoded data packets required for correct decoding at the end, and the encoding end/transmitting end sends the corresponding number of encoded data packets according to the feedback information, and the encoded data packets have nothing to do with the encoding of the next data block.
因为网络编码需要原数据的大小均相同,而NR协议中,任何一层对应的业务数据单元(service data unit,SDU)或者协议数据单元(protocol data unit,PDU)大小都无法保证是相同的,所以NR协议无法直接支持网络编码技术。Because network coding requires the same size of the original data, and in the NR protocol, the size of the service data unit (SDU) or protocol data unit (PDU) corresponding to any layer cannot be guaranteed to be the same. Therefore, the NR protocol cannot directly support network coding technology.
因此,本申请实施例提供一种数据传输方法,编码端通过对每个原数据添加包头,并将PDU或者SDU进行分割和级联后的信息添加到该包头中获得包括包头的原数据包,再对原数据包进行网络编码生成编码数据并对该编码数据添加编码包头后发送;译码端则根据接收正确的原数据包和编码包进行译码,通过包头携带的分割和级联信息,将原数据恢复出PDU/SDU信息;不仅可以使网络编码技术在不依赖于SDU或PDU大小的场景下也可以获得应用,从而可以在现有NR协议中支持网络编码技术,即使在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失,提高传输的可靠性。Therefore, an embodiment of the present application provides a data transmission method, wherein the encoding end adds a packet header to each original data, and adds the information obtained by dividing and concatenating PDUs or SDUs into the packet header to obtain an original data packet including the packet header, Then perform network coding on the original data packet to generate coded data and add the coded packet header to the coded data before sending; the decoding end decodes the original data packet and the coded packet according to the received correct, and uses the segmentation and concatenation information carried by the packet header, The PDU/SDU information is recovered from the original data; not only can network coding technology be applied in scenarios that do not depend on SDU or PDU size, so that network coding technology can be supported in existing NR protocols, even in multiple original PDU or SDU can also be recovered in the case of packet loss, reducing performance loss and improving transmission reliability.
下面将结合更多的附图对本申请提供的技术方案进行详细说明。The technical solutions provided by the present application will be described in detail below with reference to more drawings.
本申请提供的技术方案通过四个实施例来详细说明。其中,实施例一阐述PDU/SDU经过分割和/或级联操作后得到的原数据非等大小情况下,如何进行网络编码并传输两类数据包(原数据包和编码包)、以及如何设计两类数据包的包头。实施例二阐述对PDU/SDU经过分割和/或级联操作后得到的原数据非等大小情况下,如何进行网络编码并保证传输的数据包的大小相等、以及如何设计包头。实施例三阐述对多个PDU/SDU先级联再加包头和填充操作,再等大小分割后,如何进行网络编码和数据传输、以及如何设计包头。实施例四阐述仅对PDU/SDU进行分割操作后,如何进行网络编码和数据传输、以及如何设计包头。可理解的,本申请实施例一至实施例四所描述的技术方案可以任一组合形成新的实施例且所涉及概念或方案相同或相似的部分可以相互参考或组合。下面分别对各个实施例进行详细说明。The technical solutions provided in this application are described in detail through four embodiments. Among them, the first embodiment describes how to perform network coding and transmit two types of data packets (original data packets and encoded packets) when the original data obtained after PDU/SDU is divided and/or concatenated operations are not equal in size, and how to design The headers of the two types of packets. The second embodiment describes how to perform network coding to ensure that the sizes of transmitted data packets are equal, and how to design packet headers when the original data obtained by dividing and/or concatenating PDUs/SDUs are of unequal size. The third embodiment describes how to perform network coding and data transmission, and how to design the packet header after concatenating multiple PDUs/SDUs first, adding packet headers and padding operations, and then dividing them into equal sizes. The fourth embodiment describes how to perform network coding and data transmission, and how to design a packet header after only performing the segmentation operation on the PDU/SDU. It is understandable that the technical solutions described in Embodiment 1 to Embodiment 4 of the present application can be combined to form a new embodiment, and the related concepts or solutions with the same or similar parts can be referred to or combined with each other. Each embodiment will be described in detail below.
可选的,本申请提供的技术方案可通过第一设备和第二设备来实现。其中,第一设备既可以是网络设备,如基站;也可以是终端设备,如UE;第二设备既可以是网络设备,如基站;也可以是终端设备,如UE。本申请的所有实施例均以第一设备作为编码端(或发送端)来描述,第二设备作为译码端(或接收端)来描述;但在实际应用中,第一设备也可以作为译码端(或接收端),第二设备作为编码端(或发送端);本申请对此不作限定。另外,在一次数据传输过程中,假设第一设备是编码端,第二设备是译码端;在另一次数据传输过程中,第一设备可以是译码端,第二设备是编码端,或者第一设备还是编码端,第二设备还是译码端。换句话说,编码端和译码端是针对通信双方而言,在一次通信过程中,通信的一方是编码端, 另一方就是译码端。Optionally, the technical solution provided in this application may be implemented by the first device and the second device. The first device may be either a network device, such as a base station, or a terminal device, such as a UE; the second device may be a network device, such as a base station, or a terminal device, such as a UE. All the embodiments of this application are described with the first device as the encoding end (or the sending end) and the second device as the decoding end (or the receiving end); but in practical applications, the first device can also be used as the decoding end (or the receiving end). The coding end (or the receiving end), the second device acts as the coding end (or the sending end); this application does not limit this. In addition, in one data transmission process, it is assumed that the first device is the encoding end and the second device is the decoding end; in another data transmission process, the first device may be the decoding end, and the second device may be the encoding end, or The first device is still the encoding end, and the second device is still the decoding end. In other words, the encoding end and the decoding end are for both sides of the communication. In a communication process, one side of the communication is the encoding end, and the other side is the decoding end.
实施例一Example 1
本申请实施例一主要介绍在NR协议中引入网络编码的一种可能的数据传输方法,该方法既传输原数据包也传输编码包,并且介绍PDU/SDU经过分割和/或级联操作后得到的原数据非等大小情况下,如何进行网络编码和数据传输、以及如何设计包头。The first embodiment of the present application mainly introduces a possible data transmission method that introduces network coding in the NR protocol. This method transmits both the original data packet and the encoded packet, and introduces that the PDU/SDU is obtained by dividing and/or concatenating operations. How to perform network coding and data transmission, and how to design packet headers when the original data is not of equal size.
参见图5,图5是本申请实施例提供的数据传输方法的第一种示意流程图。如图5所示,该数据传输方法包括但不限于以下步骤:Referring to FIG. 5 , FIG. 5 is a first schematic flowchart of a data transmission method provided by an embodiment of the present application. As shown in Figure 5, the data transmission method includes but is not limited to the following steps:
S101,第一设备获取N个第一数据包,该N个第一数据包的大小相等,每个第一数据包包括包头和数据,每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系,每个第一数据包的包头还包括数据包标识字段,用于指示该第一数据包的序列号。S101, the first device acquires N first data packets, the N first data packets are equal in size, each first data packet includes a packet header and data, and the packet header of each first data packet includes a The segmentation and concatenation information of at least one data unit corresponding to the data, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit, and the packet header of each first data packet also includes The data packet identification field is used to indicate the sequence number of the first data packet.
S102,第一设备传输该N个第一数据包。S102, the first device transmits the N first data packets.
S103,第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包。S103: The first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets.
S104,第一设备传输该M个第二数据包。S104, the first device transmits the M second data packets.
可选的,本申请实施例中的第一数据包可以称为原数据包,第二数据包可以称为编码包。原数据包可以理解为未经过网络编码的数据包,编码包可以理解为经过网络编码后的数据包。本申请实施例中的数据单元是PDU或SDU。Optionally, the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet. The original data packet can be understood as a data packet without network encoding, and the encoded packet can be understood as a data packet after network encoding. The data unit in this embodiment of the present application is a PDU or an SDU.
可选的,第一设备对至少一个数据单元(PDU或SDU)进行分割和/或级联等处理获得N个原数据,再对每个原数据加包头得到第一数据包(即原数据包),其中每个第一数据包的大小都相同。为了降低时延,第一设备可以每得到一个第一数据包就传输该第一数据包,并将该第一数据包缓存在存储器(这里的存储器是指存储空间,比如缓存)中。当该存储器中的第一数据包的个数达到网络编码所需的数据包个数(本申请实施例假设网络编码所需的数据包个数,即数据块大小为N)时,再对该存储器中缓存的N个第一数据包进行网络编码,生成M个编码数据。其中这N个第一数据包的大小相等,这M个编码数据的大小也相等,并且任一个编码数据的大小与任一个第一数据包的大小也相等。第一设备对每个编码数据加编码包包头,得到第二数据包(即编码包),并传输该第二数据包。M个编码数据加编码包包头后可得到M个第二数据包(即编码包)。其中,本申请对网络编码的方式不做限定,既可以是前述图4所示的随机线性网络编码,也可以是通过编码窗(编码窗的窗长为N)的窗头和窗尾指针的滑动,来实现的卷积网络编码或者块网络编码,这里不展开说明。N和M均为正整数,且M和N的大小关系不做限定,即M可以小于N,也可以大于N,还可以等于N。Optionally, the first device divides and/or concatenates at least one data unit (PDU or SDU) to obtain N pieces of original data, and then adds a header to each original data to obtain the first data packet (that is, the original data packet). ), where each first packet is the same size. In order to reduce the delay, the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in a memory (the memory here refers to a storage space, such as a cache). When the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N), the The N first data packets buffered in the memory are network encoded to generate M encoded data. The sizes of the N first data packets are equal, the sizes of the M encoded data are also equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets. The first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet. After the M encoded data is added to the encoded packet header, M second data packets (ie, encoded packets) can be obtained. Wherein, this application does not limit the method of network coding, which can be either the random linear network coding shown in the aforementioned FIG. Sliding to achieve convolutional network coding or block network coding, which is not explained here. Both N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be less than N, may be greater than N, and may also be equal to N.
可见,第二数据包(即编码包)比第一数据包(即原数据包)多一个编码包包头,即编码包的编码数据和原数据包大小相等,也就是说,本申请实施例传输的编码包(第二数据包)和原数据包(第一数据包)不等大小,一定程度上节约了原数据包的包头开销。It can be seen that the second data packet (that is, the encoded packet) has one more encoded packet header than the first data packet (that is, the original data packet), that is, the encoded data of the encoded packet is equal to the size of the original data packet, that is, the transmission in the embodiment of the present application is The size of the encoded packet (the second data packet) and the original data packet (the first data packet) are not equal, which saves the packet header overhead of the original data packet to a certain extent.
可选的,本申请实施例对上述步骤S102和上述步骤S103的执行顺序不做限定。比如上述步骤S102既可以在上述步骤S103之前执行,也可以在上述步骤S103之后执行,还可以与上述步骤S103同时/并行执行。Optionally, this embodiment of the present application does not limit the execution order of the foregoing step S102 and the foregoing step S103. For example, the above-mentioned step S102 may be performed before the above-mentioned step S103, or may be performed after the above-mentioned step S103, or may be performed simultaneously/parallelly with the above-mentioned step S103.
可选的,上述每个第一数据包(即原数据包)包括包头和数据(即上述原数据)。每个第一数据包的包头包括该第一数据包的数据(即上述原数据)对应的至少一个数据单元(PDU或SDU)的分割和级联信息,换句话说,每个原数据包的包头中包括该原数据包的数据与 PDU/SDU的映射关系。或者说,该分割和级联信息用于指示该第一数据包的数据与至少一个数据单元(PDU或SDU)的对应关系。每个第一数据包的包头还可以包括第一指示信息和数据包标识(Packet ID)字段。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包。数据包标识字段用于指示第一数据包的序列号。应理解,第一数据包的序列号可以按照从小到大顺序编号,或顺序递增。也就是说,第一设备获取到的第一个第一数据包的序列号为1,第二个第一数据包的序列号为2,以此类推。Optionally, each of the foregoing first data packets (that is, the original data packets) includes a header and data (that is, the foregoing original data). The packet header of each first data packet includes the segmentation and concatenation information of at least one data unit (PDU or SDU) corresponding to the data of the first data packet (that is, the above-mentioned original data), in other words, the The packet header includes the mapping relationship between the data of the original data packet and the PDU/SDU. In other words, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and at least one data unit (PDU or SDU). The packet header of each first data packet may further include first indication information and a data packet identification (Packet ID) field. The first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet. The data packet identification field is used to indicate the sequence number of the first data packet. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order, or sequentially increased. That is, the sequence number of the first first data packet obtained by the first device is 1, the sequence number of the second first data packet is 2, and so on.
可选的,上述每个第二数据包包括编码包包头和编码数据(这里的编码数据是多个第一数据包经过网络编码后得到)。每个第二数据包的编码包包头包括编码因子字段,还可以包括第二指示信息。第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。Optionally, each of the foregoing second data packets includes an encoded packet header and encoded data (the encoded data here is obtained after a plurality of first data packets are network encoded). The encoded packet header of each second data packet includes an encoding factor field, and may further include second indication information. The second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
可选的,上述步骤S101至步骤S104可以由第一设备中的网络编码(network coding,NC)功能子层实现,该NC功能子层还可以用来实现网络编码功能。其中,该NC功能子层可以位于分组数据汇聚协议(packet data convergence protocol,PDCP)层与无线链路控制(radio link control,RLC)层之间,也可以位于RLC层与媒体接入控制(media access control,MAC)层之间,还可以位于MAC层与物理层(physical layer,PHY)之间。当考虑NC功能子层时,结合具体的场景,NC功能子层可以在gNB的CU侧,也可以在gNB的DU侧,本申请实施例对此不做限定。或者,可以将NC功能嵌入到具体的某一层中,如可以将NC功能嵌入到自适应回传协议(backhaul adaptation protocol,BAP)层、或PDCP层、或RLC层、或MAC层等,则上述步骤S101至步骤S104可以由第一设备中具有NC功能的层实现。第一设备中具有NC功能的层既可以对协议层的PDU进行网络编码,也可以对SDU进行网络编码。当NC功能嵌入到PDCP层时,该NC功能可以位于头压缩和完整性保护功能之间,也可以位于加密功能之后,添加PDCP头之前。Optionally, the above steps S101 to S104 may be implemented by a network coding (network coding, NC) function sublayer in the first device, and the NC function sublayer may also be used to implement a network coding function. The NC functional sublayer may be located between the packet data convergence protocol (PDCP) layer and the radio link control (radio link control, RLC) layer, or may be located between the RLC layer and the media access control (media access control) layer. between the access control, MAC) layer, or between the MAC layer and the physical layer (PHY). When considering the NC function sublayer, in combination with a specific scenario, the NC function sublayer may be on the CU side of the gNB, or may be on the DU side of the gNB, which is not limited in this embodiment of the present application. Alternatively, the NC function can be embedded in a specific layer, for example, the NC function can be embedded in the adaptive backhaul protocol (backhaul adaptation protocol, BAP) layer, or PDCP layer, or RLC layer, or MAC layer, etc., then The above steps S101 to S104 may be implemented by a layer having an NC function in the first device. The layer with the NC function in the first device can perform network coding on the PDU of the protocol layer, and can also perform network coding on the SDU. When the NC function is embedded in the PDCP layer, the NC function can be located between the header compression and integrity protection functions, or it can be located after the encryption function and before adding the PDCP header.
示例性的,以NC功能子层位于PDCP层和RLC层之间为例,参见图6,图6是本申请实施例提供的协议栈的示意图。如图6所示,在PDCP和RLC层引入了NC功能子层,来实现网络编码功能。NC功能子层接收PDCP层传输来的PDCP PDU,并将其拆分合并为NC层的SDU(即原数据包的数据),通过加包头H(即原数据包的包头),可以获得包括包头H的NC PDU(即原数据包),并传输到RLC层。对若干个NC PDU进行网络编码,可以得到编码数据,并加编码包头获得包括编码包头的编码包,作为不同于原数据包的NC PDU发送到RLC层。换句话说,RLC层可以接收到两种类型的数据包,一种是NC功能子层传下来的原数据包,另一种是NC功能子层传下来的编码包。NC功能子层传下来的两种NC PDU(或两种数据包)都可以完全兼容RLC层的功能,即RLC层将NC功能子层传下来的NC PDU视为PDCP PDU进行处理和操作。示例性的,协议栈中也可以不单独定义一个NC功能子层,而是对PDCP层的功能进行扩展,保证PDCP层具有NC的前述功能,即对PDCP PDU进行分割和/或级联等操作生成原数据包和编码数据包,均作为NC PDU向RLC层传输。应理解,NC功能子层位于其他层之间、与NC功能子层位于PDCP层和RLC层之间类似,而NC功能嵌入到某一层中时,NC功能与已有功能进行合并。Illustratively, taking the NC function sublayer between the PDCP layer and the RLC layer as an example, see FIG. 6 , which is a schematic diagram of a protocol stack provided by an embodiment of the present application. As shown in Figure 6, the NC function sublayer is introduced in the PDCP and RLC layers to realize the network coding function. The NC functional sublayer receives the PDCP PDU transmitted by the PDCP layer, and splits and merges it into the SDU of the NC layer (that is, the data of the original data packet). H's NC PDU (that is, the original data packet), and transmitted to the RLC layer. Perform network coding on several NC PDUs to obtain coded data, add coded packet headers to obtain coded packets including the coded packet headers, and send them to the RLC layer as NC PDUs different from the original data packets. In other words, the RLC layer can receive two types of data packets, one is the original data packet transmitted from the NC functional sublayer, and the other is the encoded packet transmitted from the NC functional sublayer. The two types of NC PDUs (or two types of data packets) passed from the NC functional sublayer are fully compatible with the functions of the RLC layer, that is, the RLC layer treats and operates the NC PDUs passed from the NC functional sublayer as PDCP PDUs. Exemplarily, the protocol stack may not define an NC function sublayer independently, but extend the function of the PDCP layer to ensure that the PDCP layer has the aforementioned functions of the NC, that is, operations such as segmentation and/or concatenation of PDCP PDUs are performed. The original data packet and the encoded data packet are generated and transmitted to the RLC layer as NC PDUs. It should be understood that the NC function sublayer is located between other layers, similar to the NC function sublayer located between the PDCP layer and the RLC layer, and when the NC function is embedded in a layer, the NC function is merged with the existing function.
为更好地理解上述步骤S101至上述步骤S104所述的流程,下面以一个示例来说明上述步骤S101至上述步骤S104所示的编码端数据传输流程。In order to better understand the processes described in the above steps S101 to S104, the following uses an example to describe the data transmission process at the encoding end shown in the above steps S101 to S104.
示例性的,参见图7,图7是本申请实施例提供的编码端数据传输流程的第一种示意图。如图7所示,以NC功能子层位于PDCP层和RLC层之间为例。假设NC功能子层依次接收到PDCP PDU1~4,根据NC功能子层中对原数据包的大小要求(其中原数据包的大小可以是半静态配置,也可以是收端(或译码端、或第二设备)提前告知发端(或编码端、或第一设 备)的),对PDCP PDU1~4进行分割和/或级联操作,依次得到原数据包Pkt1~Pkt4的数据(如图7中的Data1~Data4)。再对得到的每个数据添加包头(如图7中的Header),获得包括包头的原数据包;一方面将原数据包作为NC功能子层的NC PDU直接传输至下一层,另一方面将原数据包缓存在NC功能子层的编码器的缓存区(buffer)中。当buffer中的原数据包达到编码器所需的数据包个数时(这里假设编码器所需的数据包个数为4),将buffer中的4个原数据包进行网络编码生成编码数据EData1和EData2。应理解,对4个原数据包进行网络编码生成的编码数据的个数可以小于或等于原数据包的个数,也可以大于原数据包的个数。对每个编码数据添加编码包包头(如图7中的NC_Header),得到包括包头的编码包(如图7中的EPkt1和EPkt2)并作为NC功能子层的PDU进行发送。应理解,发送编码包时可以只发送得到的部分编码包(比如发送EPkt1,不发送EPkt2),也可以发送得到的全部编码包。还应理解,这里分割和/或级联得到的原数据不一定是等大小的,但需要保证每个原数据包(包括数据Data和包头Header)的大小相等,也就是说原数据包的包头Header非等大小。For example, refer to FIG. 7 , which is a first schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application. As shown in FIG. 7 , it is taken as an example that the NC functional sublayer is located between the PDCP layer and the RLC layer. Assuming that the NC functional sublayer receives PDCP PDUs 1 to 4 in sequence, according to the size requirements of the original data packet in the NC functional sublayer (wherein the size of the original data packet can be semi-static configuration, or the receiving end (or decoding end, (or the second device) informs the originating end (or the encoding end, or the first device) in advance, performs segmentation and/or concatenation operations on PDCP PDUs 1 to 4, and sequentially obtains the data of the original data packets Pkt1 to Pkt4 (as shown in Figure 7). Data1 to Data4). Then add a packet header (Header in Figure 7) to each obtained data to obtain the original data packet including the packet header; on the one hand, the original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand The original data packet is buffered in the buffer of the encoder of the NC function sublayer. When the original data packets in the buffer reach the number of data packets required by the encoder (it is assumed here that the number of data packets required by the encoder is 4), perform network coding on the 4 original data packets in the buffer to generate encoded data EData1 and EData2. It should be understood that the number of encoded data generated by performing network coding on four original data packets may be less than or equal to the number of original data packets, or may be greater than the number of original data packets. A coded packet header (such as NC_Header in Figure 7) is added to each coded data to obtain a coded packet including the packet header (such as EPkt1 and EPkt2 in Figure 7) and sent as a PDU of the NC functional sublayer. It should be understood that when sending the coded packet, only a part of the obtained coded packet may be sent (for example, EPkt1 is sent, and EPkt2 is not sent), or all the obtained coded packets may be sent. It should also be understood that the original data obtained by division and/or concatenation here are not necessarily of equal size, but it is necessary to ensure that the size of each original data packet (including data Data and header Header) is equal, that is, the header of the original data packet. Header is not equal size.
可见,本申请实施例提供了一种NR协议栈下的网络编码方案,保证了NC功能子层或NC功能与其他层的适配和兼容性,并通过在获得原数据包(即上述第一数据包)后一方面直接发送原数据包来保证接收端的低延时,即接收端可以基于接收到的原数据包恢复出NC功能子层的上一层PDU,即接收端正确接收。另一方面将原数据包缓存在编码器的buffer中等待进行网络编码(这是因为buffer中的原数据包需要达到编码器所需的数据包个数),在网络编码后发送冗余编码包,因为冗余编码包的编码数据可以恢复出原数据包(这是因为编码数据是由原数据包经过网络编码后得到),并且原数据包中有完整的包头信息,所以即使在传输过程中多个原数据包丢失,也可以根据冗余编码包恢复出原数据包,再根据原数据包的包头携带的分割和级联信息,对原数据包的数据进行分割和级联的逆处理,从而恢复出上一层的PDU/SDU数据。因此,本申请实施例不仅可以在现有NR协议中支持网络编码技术,还可以降低时延;此外,即使在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。It can be seen that the embodiment of the present application provides a network coding scheme under the NR protocol stack, which ensures the adaptation and compatibility of the NC function sublayer or the NC function and other layers, and by obtaining the original data packet (that is, the above-mentioned first data packet) on the other hand, the original data packet is directly sent to ensure the low latency of the receiving end, that is, the receiving end can recover the upper-layer PDU of the NC function sublayer based on the received original data packet, that is, the receiving end receives it correctly. On the other hand, the original data packets are cached in the buffer of the encoder for network encoding (this is because the original data packets in the buffer need to reach the number of data packets required by the encoder), and redundant encoded packets are sent after network encoding. , because the encoded data of the redundant encoded packet can be restored to the original data packet (this is because the encoded data is obtained from the original data packet after network encoding), and the original data packet has complete header information, so even in the transmission process If multiple original data packets are lost, the original data packets can also be recovered according to the redundant coding packets, and then according to the segmentation and concatenation information carried in the header of the original data packets, the data of the original data packets are divided and concatenated inversely processed. Thereby, the PDU/SDU data of the upper layer is recovered. Therefore, the embodiments of the present application can not only support the network coding technology in the existing NR protocol, but also reduce the time delay; in addition, even when multiple original data packets are lost, the PDU or SDU can be recovered, reducing performance loss.
上述内容详细阐述了编码端的数据传输流程,为了保证译码端能够根据正确接收的原数据包和编码包恢复出PDU/SDU,下面将结合编码端的数据传输流程详细介绍第一数据包(即原数据包)的包头和第二数据包(即编码包)的编码包包头的实现方式。其中,第一数据包中包头的格式可采用下述实现方式1.1至实现方式1.4中任一种,实现方式1.1至实现方式1.4也可以任一组合形成新的实现方式且所涉及概念或方案相同或相似的部分可以相互参考或组合。第二数据包中编码包包头的格式可采用下述实现方式2.1和实现方式2.2中任一种,实现方式2.1至实现方式2.2也可以任一组合形成新的实现方式且所涉及概念或方案相同或相似的部分可以相互参考或组合。The above content describes the data transmission process of the encoding end in detail. In order to ensure that the decoding end can recover the PDU/SDU according to the correctly received original data packet and encoded packet, the first data packet (that is, the original The implementation manner of the packet header of the data packet) and the encoded packet header of the second data packet (that is, the encoded packet). The format of the packet header in the first data packet may adopt any one of the following implementation modes 1.1 to 1.4, and implementation modes 1.1 to 1.4 may also be combined to form a new implementation mode, and the concepts or solutions involved are the same or similar parts may refer to each other or be combined. The format of the encoded packet header in the second data packet can be any of the following implementations 2.1 and 2.2, and implementations 2.1 to 2.2 can also be combined to form a new implementation, and the concepts or solutions involved are the same or similar parts may refer to each other or be combined.
1、第一数据包的包头1. The header of the first data packet
可选的,每个第一数据包包括包头和数据,为便于描述,下文将第一数据包中的数据称为原数据,也就是说本申请实施例中“原数据”与“第一数据包(原数据包)中的数据”可替换使用。一个第一数据包的数据包括一个或多个数据段,一个数据段包括一个PDU/SDU的全部或部分。换句话说,原数据包中的数据包括一个或多个数据段,每个数据段来自不同的PDU/SDU,一个数据段是一个PDU/SDU的全部或部分。参见图8,图8是本申请实施例提供的PDU/SDU与第一数据包的数据的映射关系示意图。如图8所示,图8示出了两种典型的PDU/SDU与原数据的映射关系。第一种典型的PDU/SDU与原数据的映射关系如图8的8a所示,一个PDU/SDU被分割成多个原数据;第二种典型的PDU/SDU与原数据的映射 关系如图8的8b所示,多个PDU/SDU的全部或部分构成一个原数据。Optionally, each first data packet includes a packet header and data. For ease of description, the data in the first data packet is hereinafter referred to as original data, that is to say, “original data” and “first data” in this embodiment of the present application. The data in the package (original data package)" can be used instead. The data of a first data packet includes one or more data segments, and a data segment includes all or part of a PDU/SDU. In other words, the data in the original data packet includes one or more data segments, each data segment is from a different PDU/SDU, and a data segment is all or part of a PDU/SDU. Referring to FIG. 8 , FIG. 8 is a schematic diagram of a mapping relationship between a PDU/SDU and data of a first data packet provided by an embodiment of the present application. As shown in FIG. 8 , FIG. 8 shows two typical mapping relationships between PDU/SDU and original data. The first typical mapping relationship between PDU/SDU and original data is shown in Figure 8a, one PDU/SDU is divided into multiple original data; the second typical mapping relationship between PDU/SDU and original data is shown in the figure As shown in 8b of 8, all or part of a plurality of PDUs/SDUs constitute one original data.
可选的,图8示出的映射关系中第一数据包包括的数据段对应的PDU/SDU的序列号顺序递增,但实际应用中第一数据包包括的数据段对应的PDU/SDU的序列号也可以乱序。应理解,第一数据包包括的数据段对应的PDU/SDU的序列号顺序递减,与顺序递增的方式类似,此处不再展开说明。参见图9,图9是本申请实施例提供的PDU/SDU与第一数据包中的数据段的位置关系示意图。其中,图9针对上述图8的8b情况,即图9针对多个PDU/SDU的全部或部分构成一个原数据(第一数据包的数据)的情况。如图9的9a所示,第一数据包的数据中数据段的排列方式可以按照PDU/SDU的序列号大小,从小到大排列,即序列号最小的PDU/SDU作为第一个数据段,中间数据段对应的PDU/SDU的序列号依次增加,序列号最大的PDU/SDU作为最后一个数据段。应理解,图9的9a所示与上述图8的8b所示的映射关系相同。如图9的9b所示,第一数据包的数据中数据段对应的PDU/SDU的序列号可以乱序排列,比如第一数据包的数据中数据段对应的PDU/SDU的序列号分别是1,3,4,2。此时,第一数据包的数据中第一个数据段对应的PDU/SDU就是PDU/SDU 1,最后一个数据段对应的PDU/SDU就是PDU/SDU 2。应理解,图9的9b仅是示例,第一数据包的数据中数据段对应的PDU/SDU的序列号还可以有其他排列方式,如3,1,4,2或1,4,2,3等等。Optionally, in the mapping relationship shown in FIG. 8, the sequence numbers of the PDUs/SDUs corresponding to the data segments included in the first data packet are sequentially increased, but in practical applications, the sequence numbers of the PDUs/SDUs corresponding to the data segments included in the first data packet are The numbers can also be out of order. It should be understood that the sequence numbers of the PDUs/SDUs corresponding to the data segments included in the first data packet are sequentially decremented, which is similar to the manner of increasing in sequence, and will not be further described here. Referring to FIG. 9, FIG. 9 is a schematic diagram of a positional relationship between a PDU/SDU and a data segment in a first data packet provided by an embodiment of the present application. 9 is for the above-mentioned case 8b of FIG. 8 , that is, FIG. 9 is for the case where all or part of a plurality of PDUs/SDUs constitute one original data (data of the first data packet). As shown in 9a of Figure 9, the arrangement of the data segments in the data of the first data packet can be arranged according to the size of the sequence number of the PDU/SDU, from small to large, that is, the PDU/SDU with the smallest sequence number is used as the first data segment, The sequence numbers of the PDUs/SDUs corresponding to the intermediate data segments are sequentially increased, and the PDU/SDU with the largest sequence number is used as the last data segment. It should be understood that the mapping relationship shown in 9a of FIG. 9 is the same as that shown in 8b of the above-mentioned FIG. 8 . As shown in 9b of FIG. 9 , the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet may be arranged out of order. For example, the sequence numbers of the PDUs/SDUs corresponding to the data segments in the data of the first data packet are respectively 1,3,4,2. At this time, the PDU/SDU corresponding to the first data segment in the data of the first data packet is PDU/SDU 1, and the PDU/SDU corresponding to the last data segment is PDU/SDU 2. It should be understood that 9b of FIG. 9 is only an example, and the sequence number of the PDU/SDU corresponding to the data segment in the data of the first data packet may also have other arrangements, such as 3, 1, 4, 2 or 1, 4, 2, 3 and so on.
下面结合图8所示的映射关系和图9所示的位置关系,对第一数据包的包头的实现方式进行详细说明。The implementation manner of the packet header of the first data packet will be described in detail below with reference to the mapping relationship shown in FIG. 8 and the positional relationship shown in FIG. 9 .
实现方式1.1Implementation 1.1
可选的,每个第一数据包的包头包括数据包标识(Packet ID)字段、以及分割和级联信息,可选的还包括第一指示信息。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包,该第一指示信息在包头中的表现形式可以是原始/编码(original/coded,O/C)字段,应理解,第一指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。第一数据包的包头中Packet ID字段用于指示该Packet ID字段所在第一数据包(原数据包)的序列号(sequence number,SN)。可选的,每个第一数据包的包头还可以包括类型(Type)字段和块标识(Block ID)字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。块标识(Block ID)字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is an original data packet, and the expression form of the first indication information in the packet header may be an original/coded (original/coded, O/C) field, It should be understood that the first indication information may also be represented as fields with other names, and the embodiments of the present application do not limit the names of the fields. The Packet ID field in the packet header of the first data packet is used to indicate the sequence number (sequence number, SN) of the first data packet (original data packet) where the Packet ID field is located. Optionally, the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
可选的,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中的最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D num。应理解,当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的9a所示,则该第一数据包的包头既可以选择指示该第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元是否被分割,也可以选择指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割。当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的 9b所示,则该第一数据包的包头选择指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割。 Optionally, the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; the data indicating that the first data packet includes Whether the i-th data segment is the last data segment in the data of the first data packet (or in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet) information); and information indicating the length of the ith data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num . It should be understood that when the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9a of FIG. It is possible to select whether the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet is divided, or to select the data unit corresponding to the data segment in the data of the first data packet. Whether or not the data unit with the highest sequence number and/or the smallest sequence number is split. When the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9b of FIG. 9 , the header selection of the first data packet indicates that the Whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided.
应理解,本申请中“指示…是否…的信息”可以通过若干个比特,如1比特,来指示,当这若干个比特所取的不同值可以分别指出“是”和“否”的情况。“指示……长度的信息”可以通过该长度的具体值,或者,通过和该长度对应的索引来指示,也即,本申请中的“指示”可以为显式指示,也可以为隐式指示,本申请不做限定。It should be understood that the "information indicating whether..." in this application can be indicated by several bits, such as 1 bit, when different values taken by the several bits can indicate "yes" and "no" respectively. "Information indicating the length" may be indicated by a specific value of the length, or by an index corresponding to the length, that is, the "indication" in this application may be an explicit indication or an implicit indication , which is not limited in this application.
下面通过几个示例来介绍在实现方式1.1下第一数据包中包头的几种可能格式。Several possible formats of the packet header in the first data packet under the implementation mode 1.1 are introduced below through several examples.
示例1:参见图10a,图10a是本申请实施例提供的第一数据包的包头格式示意图一。如图10a所示,第一数据包的包头包括:Packet ID字段,开始分段(Segment_start,S_start)字段和/或结束分段(Segment_end,S_end)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段;可选的包括O/C字段,Type字段以及Block ID字段。Example 1: Referring to FIG. 10a, FIG. 10a is a schematic diagram 1 of the packet header format of the first data packet provided by the embodiment of the present application. As shown in Figure 10a, the packet header of the first data packet includes: a Packet ID field, a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, one or more extension bits (extension bits, Represented as E) field, and one or more length (length, L) fields; optional include O/C field, Type field and Block ID field.
其中,因为编码端(上述第一设备)既传输了原数据包(即上述第一数据包)也传输了编码包(即上述第二数据包),所以为了区分原数据包和编码包,可以引入1bit的O/C字段。当该O/C字段的取值为0时,表示该O/C字段所在的数据包是原数据包,当该O/C字段的取值为1时,表示该O/C字段所在的数据包是编码包;或者,当该O/C字段的取值为1时,表示该O/C字段所在的数据包是原数据包,当该O/C字段的取值为0时,表示该O/C字段所在的数据包是编码包。应理解,本申请实施例中第一数据包的包头包括的O/C字段设置为第一值(比如0),用来指示该O/C字段所在的第一数据包是原数据包。Among them, because the encoding end (the above-mentioned first device) transmits both the original data packet (that is, the above-mentioned first data packet) and the encoded packet (that is, the above-mentioned second data packet), in order to distinguish the original data packet and the encoded packet, you can Introduce 1bit O/C field. When the value of the O/C field is 0, it indicates that the data packet in which the O/C field is located is the original data packet; when the value of the O/C field is 1, it indicates that the data in which the O/C field is located is the original data packet. The packet is an encoded packet; or, when the value of the O/C field is 1, it indicates that the data packet in which the O/C field is located is the original data packet, and when the value of the O/C field is 0, it indicates that the The packet in which the O/C field is located is an encoded packet. It should be understood that, in the embodiment of the present application, the O/C field included in the header of the first data packet is set to a first value (for example, 0), which is used to indicate that the first data packet in which the O/C field is located is the original data packet.
Type字段是可选字段,表示数据包的SN范围或Packet ID字段长度,比如,1bit可以表征两种长度的SN或Packet ID字段长度,2bit表征四种长度的SN或Packet ID字段长度。示例性的,以Type字段的长度为1比特为例,Type字段取值为0时,表示Packet ID字段的长度为6bit;Type字段取值为1时,表示Packet ID字段的长度为14bit。The Type field is an optional field, indicating the SN range of the data packet or the length of the Packet ID field. For example, 1bit can represent the length of the SN or Packet ID field of two lengths, and 2bit can represent the length of the SN or Packet ID field of four lengths. Exemplarily, taking the length of the Type field as 1 bit as an example, when the Type field is 0, it indicates that the length of the Packet ID field is 6 bits; when the Type field is 1, it indicates that the length of the Packet ID field is 14 bits.
Packet ID字段用于表示该Packet ID字段所在数据包的序列号,数据包的序列号范围可根据Type字段确定。当Packet ID字段的长度为n bit时,序列号范围是0~2 n-1。 The Packet ID field is used to indicate the serial number of the data packet where the Packet ID field is located, and the range of the serial number of the data packet can be determined according to the Type field. When the length of the Packet ID field is n bits, the sequence number ranges from 0 to 2 n -1.
Block ID字段是可选字段,表示数据块的标识(identifier,ID)。这个数据块包括该Block ID字段所在的第一数据包。The Block ID field is an optional field that represents the identifier (ID) of the data block. This data block includes the first data packet in which the Block ID field is located.
一种实现方式中,S_start字段的长度为1bit,用于表示第一数据包的数据中第一个数据段对应的PDU/SDU是否被分割,或者用于表示第一数据包的数据中数据段对应的PDU/SDU中序列号最小的PDU/SDU是否被分割。换句话说,S_start字段可以用来判断原数据包的数据部分起始数据段对应的PDU/SDU是否被分割,以使接收端(或译码端,或第二设备)恢复时确定是否需要级联。其中,S_start字段取值为0,表示未被分割,S_start字段取值为1,表示被分割;或者,S_start字段取值为1,表示未被分割,S_start字段取值为0,表示被分割。In an implementation manner, the length of the S_start field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the first data segment in the data of the first data packet is divided, or used to indicate whether the data segment in the data of the first data packet is divided. Whether the PDU/SDU with the smallest sequence number in the corresponding PDU/SDU is divided. In other words, the S_start field can be used to determine whether the PDU/SDU corresponding to the start data segment of the data part of the original data packet is divided, so that the receiving end (or the decoding end, or the second device) can determine whether the level is required when recovering. link. The value of the S_start field is 0, indicating that it is not divided, and the value of the S_start field is 1, indicating that it is divided; or, the value of the S_start field is 1, indicating that it is not divided, and the value of the S_start field is 0, indicating that it is divided.
另一种实现方式中,S_start字段的长度为1bit,用于表示第一数据包的数据中第一个数据段对应的PDU/SDU是否完整(完整即未被分割,不完整即为被分割,被分割就表示第一个数据段是一个PDU/SDU的部分),或者用于表示第一数据包的数据中数据段对应的PDU/SDU中序列号最小的PDU/SDU是否完整。In another implementation manner, the length of the S_start field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the first data segment in the data of the first data packet is complete (complete means not segmented, incomplete means segmented, Being divided means that the first data segment is a part of a PDU/SDU), or it is used to indicate whether the PDU/SDU with the smallest sequence number in the PDU/SDU corresponding to the data segment in the data of the first data packet is complete.
一种实现方式中,S_end字段的长度为1bit,用于表示第一数据包的数据中最后一个数据段对应的PDU/SDU是否被分割,或者用于表示第一数据包的数据中数据段对应的PDU/SDU中序列号最大的PDU/SDU是否被分割。换句话说,S_end字段可以用来判断原数据包的数据部分末尾数据段对应的PDU/SDU是否被分割,以使接收端(或译码端,或第二设备)恢复 时确定是否需要级联。其中,S_end字段取值为0,表示未被分割,S_start字段取值为1,表示被分割;或者,S_end字段取值为1,表示未被分割,S_end字段取值为0,表示被分割。应理解,第一数据包的包头中可以只存在S_start字段和S_end字段中的一个,也可以两个字段都存在。In an implementation manner, the length of the S_end field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the last data segment in the data of the first data packet is divided, or used to indicate whether the data segment in the data of the first data packet corresponds to the segment. Whether the PDU/SDU with the largest sequence number in the PDU/SDU is divided. In other words, the S_end field can be used to determine whether the PDU/SDU corresponding to the data segment at the end of the data part of the original data packet is divided, so that the receiving end (or the decoding end, or the second device) can determine whether concatenation is required when recovering. . The value of the S_end field is 0, indicating that it is not divided, the value of the S_start field is 1, indicating that it is divided; or, the value of the S_end field is 1, indicating that it is not divided, and the value of the S_end field is 0, indicating that it is divided. It should be understood that only one of the S_start field and the S_end field may exist in the header of the first data packet, or both fields may exist.
另一种实现方式中,S_end字段的长度为1bit,用于表示第一数据包的数据中最后一个数据段对应的PDU/SDU是否完整(完整即未被分割,不完整即为被分割,被分割就表示最后一个数据段是一个PDU/SDU的部分且是该PDU/SDU的前部分),或者用于表示第一数据包的数据中数据段对应的PDU/SDU中序列号最大的PDU/SDU是否完整。In another implementation manner, the length of the S_end field is 1 bit, which is used to indicate whether the PDU/SDU corresponding to the last data segment in the data of the first data packet is complete (complete means not segmented, incomplete means segmented, Split means that the last data segment is part of a PDU/SDU and is the front part of the PDU/SDU), or is used to represent the PDU/SDU with the largest sequence number in the PDU/SDU corresponding to the data segment in the data of the first data packet/ Whether the SDU is complete.
一个或多个扩展比特(extension bit,表示为E)字段表示为E1,E2,E3,…,ED num。D num表示第一数据包的数据包括的数据段总数。E1表示第一数据包的数据中第1个数据段是否是最后一个数据段,或者第一数据包的数据中第1个数据段后是否存在下一个数据段;E2表示第一数据包的数据中第2个数据段是否是最后一个数据段,或者第一数据包的数据中第2个数据段后是否存在下一个数据段;E3表示第一数据包的数据中第3个数据段是否是最后一个数据段,或者第一数据包的数据中第3个数据段后是否存在下一个数据段;以此类推。Ei表示第一数据包的数据中第i个数据段是否是最后一个数据段,或者第一数据包的数据中第i个数据段后是否存在下一个数据段,i为正整数且1≤i≤D num。其中,每个扩展比特字段的长度为1bit。当该1bit取值为0时,表示是最后一个数据段或不存在下一个数据段,第一数据包的包头再累计一个长度字段后结束;当该1bit取值为1时,表示不是最后一个数据段或存在下一个数据段,第一数据包的包头也累计一个L字段,之后第一数据包的包头还会累计下一个E字段和对应的L字段。或者反之,即当该1bit取值为1时,表示是最后一个数据段或不存在下一个数据段,第一数据包的包头再累计一个长度字段后结束;当该1bit取值为0时,表示不是最后一个数据段或存在下一个数据段,第一数据包的包头也累计一个L字段,之后第一数据包的包头还会累计下一个E字段和对应的L字段。应理解,每个扩展比特(extension bit,表示为E)字段后都紧跟一个长度(length,L)字段。 One or more extension bits (denoted as E) fields are denoted as E1, E2, E3, . . . , ED num . D num represents the total number of data segments included in the data of the first data packet. E1 indicates whether the first data segment in the data of the first data packet is the last data segment, or whether there is a next data segment after the first data segment in the data of the first data packet; E2 indicates the data of the first data packet Whether the second data segment is the last data segment, or whether there is a next data segment after the second data segment in the data of the first data packet; E3 indicates whether the third data segment in the data of the first data packet is The last data segment, or whether there is a next data segment after the third data segment in the data of the first data packet; and so on. Ei indicates whether the i-th data segment in the data of the first data packet is the last data segment, or whether there is a next data segment after the i-th data segment in the data of the first data packet, i is a positive integer and 1≤i ≤Dnum . The length of each extended bit field is 1 bit. When the 1bit value is 0, it means that it is the last data segment or there is no next data segment, and the header of the first data packet accumulates a length field and ends; when the 1bit value is 1, it means that it is not the last one The data segment or the next data segment exists, the header of the first data packet also accumulates an L field, and then the header of the first data packet also accumulates the next E field and the corresponding L field. Or vice versa, that is, when the 1bit value is 1, it means that it is the last data segment or there is no next data segment, and the header of the first data packet accumulates a length field and ends; when the 1bit value is 0, Indicates that it is not the last data segment or the next data segment exists, the header of the first data packet also accumulates an L field, and then the header of the first data packet also accumulates the next E field and the corresponding L field. It should be understood that each extension bit (denoted as E) field is immediately followed by a length (L) field.
一个或多个长度(length,L)字段表示为L1,L2,L3,…,LD num。D num表示第一数据包的数据包括的数据段总数。L1表示第一数据包的数据中第1个数据段的长度;L2表示第一数据包的数据中第2个数据段的长度;L3表示第一数据包的数据中第3个数据段的长度;以此类推。Li表示第一数据包的数据中第i个数据段的长度,i为正整数且1≤i≤D num。应理解,如果第一数据包的总长度可以确定,第一数据包的包头长度也可以确定,则i的取值可以是1≤i≤D num-1,也就是说,第一数据包的包头中可以指示D num-1个数据段的长度,剩下的一个数据段的长度可通过该第一数据包的总长度、该第一数据包的包头长度以及D num-1个数据段的长度计算得出。可见,此种方式可以节省一个长度字段,节省开销。 One or more length (length, L) fields are denoted as L1, L2, L3, ..., LD num . D num represents the total number of data segments included in the data of the first data packet. L1 represents the length of the first data segment in the data of the first data packet; L2 represents the length of the second data segment in the data of the first data packet; L3 represents the length of the third data segment in the data of the first data packet ; and so on. Li represents the length of the i-th data segment in the data of the first data packet, where i is a positive integer and 1≤i≤D num . It should be understood that if the total length of the first data packet can be determined, and the length of the packet header of the first data packet can also be determined, the value of i can be 1≤i≤D num -1, that is, the value of the first data packet The length of D num -1 data segments can be indicated in the packet header, and the length of the remaining data segment can be determined by the total length of the first data packet, the header length of the first data packet, and the length of D num -1 data segments. length is calculated. It can be seen that this method can save a length field and save overhead.
应理解,图10a仅是示例,图10a中第一数据包的包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图10a中第一数据包的包头包括的各个字段的长度和排列顺序也不做限定。It should be understood that FIG. 10a is only an example, and each field included in the header of the first data packet in FIG. 10a may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the packet header of the first data packet in FIG. 10a are also not limited.
示例2:参见图10b,图10b是本申请实施例提供的第一数据包的包头格式示意图二。如图10b所示,第一数据包的包头包括:Packet ID字段,分段信息(segment information,SI)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段;可选的包括O/C字段,Type字段和Block ID字段。Example 2: Referring to FIG. 10b, FIG. 10b is a schematic diagram 2 of the packet header format of the first data packet provided by the embodiment of the present application. As shown in FIG. 10b, the packet header of the first data packet includes: a Packet ID field, a segment information (segment information, SI) field, one or more extension bits (extension bits, denoted as E) fields, and one or more Length (length, L) field; optional includes O/C field, Type field and Block ID field.
其中,图10b中SI字段的长度为2bit,用于表示第一数据包的数据中第一个数据段和最后一个数据段对应的数据单元是否被分割,或者该第一数据包的数据中数据段对应的数据单 元中序列号最大和序列号最小的数据单元是否被分割。比如,当SI字段为00(十进制0)时,表示第一个数据段和最后一个数据段对应的数据单元都没有被分割(或者表示序列号最大和序列号最小的数据单元都没有被分割);当SI字段为01(十进制1)时,表示第一个数据段对应的数据单元被分割(或序列号最小的数据单元被分割),最后一个数据段对应的数据单元没有被分割(或序列号最大的数据单元没有被分割);当SI字段为10(十进制2)时,表示第一个数据段对应的数据单元没有被分割(或序列号最小的数据单元没有被分割),最后一个数据段对应的数据单元被分割(或序列号最大的数据单元被分割);当SI字段为11(十进制3)时,表示第一个数据段和最后一个数据段对应的数据单元都被分割(或者表示序列号最大和序列号最小的数据单元都没有被分割)。又如,当SI字段为11(十进制3)时,表示第一个数据段和最后一个数据段对应的数据单元都没有被分割(或者表示序列号最大和序列号最小的数据单元都没有被分割);当SI字段为10(十进制2)时,表示第一个数据段对应的数据单元被分割(或序列号最小的数据单元被分割),最后一个数据段对应的数据单元没有被分割(或序列号最大的数据单元没有被分割);当SI字段为01(十进制1)时,表示第一个数据段对应的数据单元没有被分割(或序列号最小的数据单元没有被分割),最后一个数据段对应的数据单元被分割(或序列号最大的数据单元被分割);当SI字段为00(十进制0)时,表示第一个数据段和最后一个数据段对应的数据单元都被分割(或者表示序列号最大和序列号最小的数据单元都没有被分割)。应理解,本申请实施例对SI字段的取值和含义的对应关系不做限定。Wherein, the length of the SI field in FIG. 10b is 2 bits, which is used to indicate whether the data units corresponding to the first data segment and the last data segment in the data of the first data packet are divided, or whether the data in the data of the first data packet is divided. Whether the data unit with the largest sequence number and the smallest sequence number in the data unit corresponding to the segment is divided. For example, when the SI field is 00 (decimal 0), it means that the data units corresponding to the first data segment and the last data segment are not segmented (or that the data units with the largest and smallest sequence numbers are not segmented) ; When the SI field is 01 (decimal 1), it means that the data unit corresponding to the first data segment is divided (or the data unit with the smallest sequence number is divided), and the data unit corresponding to the last data segment is not divided (or sequence The data unit with the largest number is not divided); when the SI field is 10 (decimal 2), it means that the data unit corresponding to the first data segment is not divided (or the data unit with the smallest serial number is not divided), and the last data The data unit corresponding to the segment is divided (or the data unit with the largest serial number is divided); when the SI field is 11 (decimal 3), it indicates that the data units corresponding to the first data segment and the last data segment are divided (or Data units representing the highest and lowest sequence numbers are not split). For another example, when the SI field is 11 (decimal 3), it means that the data units corresponding to the first data segment and the last data segment are not divided (or that the data units with the largest and smallest sequence numbers are not divided. ); when the SI field is 10 (decimal 2), it means that the data unit corresponding to the first data segment is divided (or the data unit with the smallest sequence number is divided), and the data unit corresponding to the last data segment is not divided (or The data unit with the largest serial number is not divided); when the SI field is 01 (decimal 1), it means that the data unit corresponding to the first data segment is not divided (or the data unit with the smallest sequence number is not divided), the last The data unit corresponding to the data segment is divided (or the data unit with the largest serial number is divided); when the SI field is 00 (decimal 0), it indicates that the data units corresponding to the first data segment and the last data segment are divided ( Or means that neither the data unit with the largest sequence number nor the smallest sequence number is split). It should be understood that the embodiment of the present application does not limit the corresponding relationship between the value and the meaning of the SI field.
第一数据包的包头中其他字段(O/C字段,Packet ID字段,一个或多个扩展比特(表示为E)字段,一个或多个长度字段,Type字段,Block ID字段)的含义参考前述图10a中相应字段的含义,此处不再赘述。The meanings of other fields (O/C field, Packet ID field, one or more extension bits (denoted as E) field, one or more length fields, Type field, Block ID field) in the packet header of the first data packet refer to the aforementioned The meanings of the corresponding fields in FIG. 10a will not be repeated here.
应理解,图10b仅是示例,图10b中第一数据包的包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图10b中第一数据包的包头包括的各个字段的长度和排列顺序也不做限定。It should be understood that FIG. 10b is only an example, and each field included in the header of the first data packet in FIG. 10b may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the packet header of the first data packet in FIG. 10b are also not limited.
可见,实现方式1.1中为每一个数据段都设置1bit的扩展比特字段来指示该数据段是否是最后一个数据段,并为每一个数据段设置一个长度字段来指示其长度,有利于译码端根据原数据包的包头的指示对原数据进行分割和级联,以恢复出一个或多个PDU/SDU。另外,实现方式1.1通过2个比特分别指示第一数据包的数据中起始数据段和末尾数据段对应的数据单元是否被分割,可以节省开销。It can be seen that in the implementation mode 1.1, a 1-bit extended bit field is set for each data segment to indicate whether the data segment is the last data segment, and a length field is set for each data segment to indicate its length, which is beneficial to the decoding end. The original data is segmented and concatenated according to the indication of the packet header of the original data packet to recover one or more PDUs/SDUs. In addition, in Implementation Mode 1.1, two bits are used to respectively indicate whether the data units corresponding to the start data segment and the end data segment in the data of the first data packet are divided, which can save overhead.
实现方式1.2Implementation 1.2
可选的,每个第一数据包的包头包括数据包标识(Packet ID)字段、以及分割和级联信息,可选的还包括第一指示信息。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包,该第一指示信息在包头中的表现形式可以是O/C字段,应理解,第一指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。第一数据包的包头中Packet ID字段用于指示该Packet ID字段所在第一数据包(原数据包)的序列号(SN)。可选的,每个第一数据包的包头还可以包括类型(Type)字段和块标识(Block ID)字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。块标识(Block ID)字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields. The Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located. Optionally, the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
可选的,上述分割和级联信息包括:该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元的序列号,或者该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号;指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D num。应理解,当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的9a所示,则该第一数据包的包头既可以选择指示第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元的序列号,也可以选择指示该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号。当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的9b所示,则该第一数据包的包头选择指示该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号。 Optionally, the above-mentioned segmentation and concatenation information includes: the data of the first data segment (or start data segment) and/or the data unit corresponding to the last data segment (or end data segment) in the data of the first data packet. sequence number, or the maximum sequence number and/or minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet; indicating whether the i-th data segment included in the data of the first data packet is the first data Information of the last data segment in the data of the packet (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num . It should be understood that when the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9a of FIG. Either the sequence number of the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet can be selected, or the sequence number of the data unit corresponding to the data segment in the data of the first data packet can be selected. Maximum serial number and/or minimum serial number. When the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9b of FIG. 9 , the header selection of the first data packet indicates that the The maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet.
参见图11,图11是本申请实施例提供的第一数据包的包头格式示意图三。如图11所示,第一数据包的包头包括:Packet ID字段,开始序列号(SN_begin)字段和/或结束序列号(SN_end)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段;可选的包括O/C字段,Type字段和Block ID字段。Referring to FIG. 11 , FIG. 11 is a third schematic diagram of a packet header format of a first data packet provided by an embodiment of the present application. As shown in FIG. 11 , the packet header of the first data packet includes: a Packet ID field, a start sequence number (SN_begin) field and/or an end sequence number (SN_end) field, and one or more extension bits (extension bits, denoted as E) field, and one or more length (length, L) fields; optional fields include O/C field, Type field and Block ID field.
其中,SN_begin字段用于表示第一数据包的数据中第一个数据段对应的PDU/SDU的序列号,或者用于表示第一数据包的数据中数据段对应的数据单元的最小序列号。换句话说,SN_begin字段可以用来指示原数据包的数据部分起始段对应的PDU/SDU的SN。The SN_begin field is used to represent the sequence number of the PDU/SDU corresponding to the first data segment in the data of the first data packet, or used to represent the minimum sequence number of the data unit corresponding to the data segment in the data of the first data packet. In other words, the SN_begin field can be used to indicate the SN of the PDU/SDU corresponding to the initial segment of the data part of the original data packet.
SN_end字段用于表示第一数据包的数据中最后一个数据段对应的PDU/SDU的序列号,或者用于表示第一数据包的数据中数据段对应的数据单元的最大序列号。换句话说,SN_end字段可以用来指示原数据包的数据部分末尾段对应的PDU/SDU的SN。应理解,第一数据包的包头中可以只存在SN_begin字段和SN_end字段中的一个,也可以两个字段都存在。The SN_end field is used to represent the sequence number of the PDU/SDU corresponding to the last data segment in the data of the first data packet, or used to represent the maximum sequence number of the data unit corresponding to the data segment in the data of the first data packet. In other words, the SN_end field can be used to indicate the SN of the PDU/SDU corresponding to the end of the data part of the original data packet. It should be understood that only one of the SN_begin field and the SN_end field may exist in the header of the first data packet, or both fields may exist.
可选的,SN_begin字段和SN_end字段可以替换成一个或多个序列号字段。这一个或多个序列号字段表示为SN1,SN2,SN3,…,SND num。D num表示第一数据包的数据包括的数据段总数。一个序列号字段表示第一数据包的数据中一个数据段对应的数据单元的序列号。SN1表示第一数据包的数据中第1个数据段对应的数据单元的序列号;SN2表示第一数据包的数据中第2个数据段对应的数据单元的序列号;SN3表示第一数据包的数据中第3个数据段对应的数据单元的序列号;以此类推。SNi表示第一数据包的数据中第i个数据段对应的数据单元的序列号,i为正整数且1≤i≤D num。换句话说,上述分割和级联信息包括的不再是第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元的序列号,或者该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号;而是第一数据包的数据中每个数据段对应的数据单元的序列号。 Optionally, the SN_begin field and the SN_end field may be replaced with one or more sequence number fields. The one or more sequence number fields are denoted as SN1, SN2, SN3, . . . , SND num . D num represents the total number of data segments included in the data of the first data packet. A sequence number field indicates a sequence number of a data unit corresponding to a data segment in the data of the first data packet. SN1 represents the serial number of the data unit corresponding to the first data segment in the data of the first data packet; SN2 represents the serial number of the data unit corresponding to the second data segment in the data of the first data packet; SN3 represents the first data packet The serial number of the data unit corresponding to the third data segment in the data; and so on. SNi represents the sequence number of the data unit corresponding to the i-th data segment in the data of the first data packet, where i is a positive integer and 1≤i≤D num . In other words, the above-mentioned segmentation and concatenation information no longer includes the sequence number of the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet, or the data of the first data packet The maximum sequence number and/or the minimum sequence number of the data unit corresponding to the data segment in the first data packet is the sequence number of the data unit corresponding to each data segment in the data of the first data packet.
还应理解,第一数据包的包头中其他字段(O/C字段,Packet ID字段,一个或多个扩展比特(表示为E)字段,一个或多个长度字段,Type字段,Block ID字段)的含义可参考前述图10a中相应字段的描述,此处不再赘述。It should also be understood that other fields (O/C field, Packet ID field, one or more extension bits (denoted as E) field, one or more length fields, Type field, Block ID field) in the packet header of the first data packet For the meaning of , refer to the description of the corresponding field in the aforementioned FIG. 10a , which will not be repeated here.
应理解,图11仅是示例,图11中第一数据包的包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图11中第一数据包的包头包括的各个字段的长度和排列顺序也不做限定。It should be understood that FIG. 11 is only an example, and each field included in the header of the first data packet in FIG. 11 may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the packet header of the first data packet in FIG. 11 are also not limited.
可见,实现方式1.2通过在包头中指示起始数据段和/或末尾数据段对应的PDU/SDU的 序列号,可以指示出多个第一数据包的数据中数据段是否来自不同的PDU/SDU,以使译码端能够将不同的数据段组合成完整的PDU/SDU。It can be seen that, by indicating the sequence number of the PDU/SDU corresponding to the start data segment and/or the end data segment in the packet header, the implementation mode 1.2 can indicate whether the data segments in the data of the multiple first data packets are from different PDUs/SDUs. , so that the decoding end can combine different data segments into a complete PDU/SDU.
实现方式1.3Implementation 1.3
可选的,每个第一数据包的包头包括数据包标识(Packet ID)字段、以及分割和级联信息,可选的还包括第一指示信息。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包,该第一指示信息在包头中的表现形式可以是O/C字段,应理解,第一指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。第一数据包的包头中Packet ID字段用于指示该Packet ID字段所在第一数据包(原数据包)的序列号(SN)。可选的,每个第一数据包的包头还可以包括类型(Type)字段和块标识(Block ID)字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。块标识(Block ID)字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields. The Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located. Optionally, the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
可选的,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段是否是最后一个数据段(或者说,该第一数据包的数据中第一个数据段后是否存在下一个数据段)以及该第一个数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中最后一个数据段(或者说,该第一数据包的数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该第一数据包的数据包括的数据段总数D num,即i为正整数且1≤i≤D numOptionally, the above-mentioned segmentation and concatenation information includes: indicating whether the first data segment in the data of the first data packet is the last data segment (or in other words, after the first data segment in the data of the first data packet) Whether there is a next data segment) and whether the data unit corresponding to the first data segment is complete (complete means not segmented, incomplete means segmented); indicating that the i-th data included in the data of the first data packet information on whether the first data segment is the last data segment in the data of the first data packet (or, in other words, whether there is a next data segment after the i-th data segment included in the data of the first data packet); and indicating the i-th data segment information about the length of each data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the data of the first data packet, that is, i is a positive integer and 1≤i≤D num .
参见图12,图12是本申请实施例提供的第一数据包的包头格式示意图四。如图12所示,第一数据包的包头包括:Packet ID字段,扩展比特0(extension bit 0,表示为E0)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段;可选的包括O/C字段,Type字段和Block ID字段。Referring to FIG. 12 , FIG. 12 is a fourth schematic diagram of a packet header format of a first data packet provided by an embodiment of the present application. As shown in FIG. 12 , the packet header of the first data packet includes: a Packet ID field, an extension bit 0 (extension bit 0, denoted as E0) field, one or more extension bits (extension bit, denoted as E) field, and a or multiple length (length, L) fields; optional include O/C field, Type field and Block ID field.
其中,扩展比特0(表示为E0)字段的长度为2bit,用于表示第一数据包的数据中第一个数据段是否是最后一个数据段和该第一个数据段对应的数据单元是否完整。换句话说,E0字段表示原数据包的数据部分起始数据段后是否存在下一个数据段以及该起始数据段是否完整。比如,当E0字段为00(十进制0)时,表示第一个数据段是最后一个数段段(即不包含下一个数据段),且该第一个数据段对应的数据单元完整;当E0字段为01(十进制1)时,表示表示第一个数据段是最后一个数段段(即不包含下一个数据段),且该第一个数据段对应的数据单元不完整;当E0字段为10(十进制2)时,表示表示第一个数据段不是最后一个数段段(即包含下一个数据段),且该第一个数据段对应的数据单元完整;当E0字段为11(十进制3)时,表示表示第一个数据段不是最后一个数段段(即包含下一个数据段),且该第一个数据段对应的数据单元不完整。应理解,本申请实施例对E0字段的取值和含义的对应关系不做限定,即E0字段的取值和含义可以有其他对应关系。又如,当E0字段为11(十进制3)时,表示第一个数据段是最后一个数段段(即不包含下一个数据段),且该第一个数据段对应的数据单元完整;当E0字段为10(十进制2)时,表示表示第一个数据段是最后一个数段段(即不包含下一个数据段),且该第一个数据段对应的数据单元不完整;当E0字段为01(十进制1)时,表示表示第一个数据段不是最后一个数段段(即包含下一个数据段),且该第一个数据段对应的数据单元完整;当E0字段为00(十进制0)时,表示表示第一个数据段不是 最后一个数段段(即包含下一个数据段),且该第一个数据段对应的数据单元不完整。The length of the extended bit 0 (represented as E0) field is 2 bits, which is used to indicate whether the first data segment in the data of the first data packet is the last data segment and whether the data unit corresponding to the first data segment is complete . In other words, the E0 field indicates whether there is a next data segment after the starting data segment of the data part of the original data packet and whether the starting data segment is complete. For example, when the E0 field is 00 (decimal 0), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is complete; when the E0 field When it is 01 (decimal 1), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is incomplete; when the E0 field is 10 ( Decimal 2), it means that the first data segment is not the last number segment (that is, it contains the next data segment), and the data unit corresponding to the first data segment is complete; when the E0 field is 11 (decimal 3), Indicates that the first data segment is not the last number segment (that is, contains the next data segment), and the data unit corresponding to the first data segment is incomplete. It should be understood that the embodiment of the present application does not limit the corresponding relationship between the value and the meaning of the E0 field, that is, the value and the meaning of the E0 field may have other corresponding relationships. For another example, when the E0 field is 11 (decimal 3), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is complete; when E0 When the field is 10 (decimal 2), it means that the first data segment is the last number segment (that is, does not include the next data segment), and the data unit corresponding to the first data segment is incomplete; when the E0 field is 01 (Decimal 1), it means that the first data segment is not the last data segment (that is, contains the next data segment), and the data unit corresponding to the first data segment is complete; when the E0 field is 00 (decimal 0) , indicating that the first data segment is not the last number segment (that is, contains the next data segment), and the data unit corresponding to the first data segment is incomplete.
应理解,因为E0字段已经指示了第一数据包的数据中第一个数据段是否是最后一个数据段,所以图12所示包头的扩展比特(表示为E)字段可从E2开始,长度字段仍然从L1开始,且L1字段位于E0字段后。还应理解,第一数据包的包头中其他字段(O/C字段,Packet ID字段,一个或多个扩展比特(表示为E)字段,一个或多个长度字段,Type字段,Block ID字段)的含义参考前述图10a中相应字段的含义,此处不再赘述。It should be understood that, because the E0 field has indicated whether the first data segment in the data of the first data packet is the last data segment, the extension bit (denoted as E) field of the packet header shown in FIG. 12 can start from E2, and the length field Still starting from L1, and the L1 field is after the E0 field. It should also be understood that other fields (O/C field, Packet ID field, one or more extension bits (denoted as E) field, one or more length fields, Type field, Block ID field) in the packet header of the first data packet Refer to the meanings of the corresponding fields in the aforementioned FIG. 10a for the meanings, which will not be repeated here.
应理解,图12仅是示例,图12中第一数据包的包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图12中第一数据包的包头包括的各个字段的长度和排列顺序也不做限定。It should be understood that FIG. 12 is only an example, and each field included in the header of the first data packet in FIG. 12 may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the header of the first data packet in FIG. 12 are also not limited.
可见,实现方式1.3通过2比特来指示第一数据包的数据中起始数据段和末尾数据段对应的数据单元是否完整,并为每个数据段都设置1bit的扩展比特字段来指示该数据段是否是最后一个数据段,并为每一个数据段设置一个长度字段来指示其长度,有利于译码端根据原数据包的包头的指示对原数据进行分割和级联,以恢复出一个或多个PDU/SDU。It can be seen that the implementation mode 1.3 uses 2 bits to indicate whether the data units corresponding to the start data segment and the end data segment in the data of the first data packet are complete, and set a 1-bit extension bit field for each data segment to indicate the data segment. Whether it is the last data segment, and setting a length field for each data segment to indicate its length, it is beneficial for the decoding end to divide and concatenate the original data according to the indication of the original data packet header, so as to recover one or more data segments. PDU/SDU.
实现方式1.4Implementation 1.4
可选的,每个第一数据包的包头包括数据包标识(Packet ID)字段、以及分割和级联信息,可选的还包括第一指示信息。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包,该第一指示信息在包头中的表现形式可以是O/C字段,应理解,第一指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。第一数据包的包头中Packet ID字段用于指示该Packet ID字段所在第一数据包(原数据包)的序列号(SN)。可选的,每个第一数据包的包头还可以包括类型(Type)字段和块标识(Block ID)字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。块标识(Block ID)字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet includes a packet identification (Packet ID) field, and segmentation and concatenation information, and optionally also includes first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet, and the first indication information in the packet header may be expressed in the form of an O/C field. It should be understood that the first indication information may also be For fields with other names, the embodiments of the present application do not limit the names of the fields. The Packet ID field in the packet header of the first data packet is used to indicate the sequence number (SN) of the first data packet (original data packet) where the Packet ID field is located. Optionally, the packet header of each first data packet may further include one or more of a type (Type) field and a block identification (Block ID) field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The block identification (Block ID) field is used to indicate the identification of the data block, and this data block includes the first data packet in which the Block ID field is located.
可选的,上述分割和级联信息包括:指示该第一数据包的数据中第一个数据段(或起始数据段)和/或最后一个数据段(或末尾数据段)对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该第一数据包的数据中包括的数据段的个数(记为D num)的信息;以及指示每个数据段的长度的信息。应理解,当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的9a所示,则该第一数据包的包头既可以选择指示该第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元是否被分割,也可以选择指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割。当第一数据包的数据包括多个数据段时,如果这多个数据段与数据单元(PDU/SDU)的位置关系如图9的9b所示,则该第一数据包的包头指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割。还应理解,如果第一数据包的总长度可以确定,第一数据包的包头长度也可以确定,则上述分割和级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该第一数据包的总长度、该第一数据包的包头长度以及D num-1个数据段的长度计算得出。D num表示第一数据包的数据中包括的数据段总数。 Optionally, the above-mentioned segmentation and concatenation information includes: indicating the data unit corresponding to the first data segment (or start data segment) and/or the last data segment (or end data segment) in the data of the first data packet Information on whether to be divided, or information indicating whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of the first data packet is divided; information on the number of data segments (denoted as D num ) included; and information indicating the length of each data segment. It should be understood that when the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9a of FIG. It is possible to select whether the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet is divided, or to select the data unit corresponding to the data segment in the data of the first data packet. Whether or not the data unit with the highest sequence number and/or the smallest sequence number is split. When the data of the first data packet includes multiple data segments, if the positional relationship between the multiple data segments and the data unit (PDU/SDU) is as shown in 9b of FIG. 9, the header of the first data packet indicates the first data segment. Whether the data unit with the largest sequence number and/or the smallest sequence number in the data unit corresponding to the data segment in the data of a data packet is divided. It should also be understood that if the total length of the first data packet can be determined, and the length of the header of the first data packet can also be determined, the above-mentioned segmentation and concatenation information may only include the data of each data segment in the D num −1 data segments. Instead of including the length of each of the D num data segments, the length of the remaining one data segment can be determined by the total length of the first data packet, the header length of the first data packet, and D num -1 The length of each data segment is calculated. D num represents the total number of data segments included in the data of the first data packet.
参见图13,图13是本申请实施例提供的第一数据包的包头格式示意图五。如图13所示,第一数据包的包头包括:Packet ID字段,S_start字段和/或S_end字段,分段数(segment number,表示为Seg_N)字段,以及一个或多个长度(length,L)字段;可选的包括O/C字段,Type字段和Block ID字段。Referring to FIG. 13 , FIG. 13 is a schematic diagram 5 of a packet header format of a first data packet provided by an embodiment of the present application. As shown in FIG. 13 , the packet header of the first data packet includes: a Packet ID field, an S_start field and/or an S_end field, a segment number (denoted as Seg_N) field, and one or more lengths (length, L) Field; optional includes O/C field, Type field and Block ID field.
其中,Seg_N字段的长度可以为4bit,用于表示第一数据包的数据中包括的数据段个数(记为D num)。4bit可以表示十进制数值0-15,其最大可指示16个数据段。比如,Seg_N字段取值为0时,表示第一数据包的数据中包括的数据段个数为1(即D num=1);Seg_N字段取值为1时,表示第一数据包的数据中包括的数据段个数为2(即D num=2);Seg_N字段取值为2时,表示第一数据包的数据中包括的数据段个数为3(即D num=3),以此类推,Seg_N字段取值为15时,表示第一数据包的数据中包括的数据段个数为16(即D num=16),即D num=Seg_N字段的值+1。或者,Seg_N字段取值为0时,表示预留;Seg_N字段取值为1时,表示第一数据包的数据中包括的数据段个数为1(即D num=1);Seg_N字段取值为2时,表示第一数据包的数据中包括的数据段个数为2(即D num=2),以此类推,即D num=Seg_N字段的值。应理解,一个数据段来自于一个PDU/SDU,不同数据段来自于不同PDU/SDU,所以Seg_N字段还可以理解为第一数据包的数据所对应的PDU/SDU个数。还应理解,包头中长度字段的个数等于Seg_N字段指示的数据段个数。 The length of the Seg_N field may be 4 bits, which is used to indicate the number of data segments included in the data of the first data packet (denoted as D num ). 4bit can represent decimal values 0-15, which can indicate 16 data segments at most. For example, when the value of the Seg_N field is 0, it indicates that the number of data segments included in the data of the first data packet is 1 (that is, D num =1); when the value of the Seg_N field is 1, it indicates that the data of the first data packet contains 1 The number of data segments included is 2 (that is, D num =2); when the value of the Seg_N field is 2, it indicates that the number of data segments included in the data of the first data packet is 3 (that is, D num =3), so that By analogy, when the value of the Seg_N field is 15, it indicates that the number of data segments included in the data of the first data packet is 16 (ie, D num =16), that is, D num = the value of the Seg_N field+1. Or, when the value of the Seg_N field is 0, it means reservation; when the value of the Seg_N field is 1, it means that the number of data segments included in the data of the first data packet is 1 (ie, D num =1); the value of the Seg_N field is 1 When it is 2, it indicates that the number of data segments included in the data of the first data packet is 2 (ie D num =2), and so on, that is, D num = the value of the Seg_N field. It should be understood that one data segment comes from one PDU/SDU, and different data segments come from different PDUs/SDUs, so the Seg_N field can also be understood as the number of PDUs/SDUs corresponding to the data of the first data packet. It should also be understood that the number of length fields in the packet header is equal to the number of data segments indicated by the Seg_N field.
应理解,O/C字段,Packet ID字段,S_start字段和S_end字段,一个或多个长度字段,Type字段,以及Block ID字段的含义参考前述图10a中相应字段的含义,此处不再赘述。It should be understood that the meanings of the O/C field, the Packet ID field, the S_start field and the S_end field, one or more length fields, the Type field, and the Block ID field refer to the meanings of the corresponding fields in the aforementioned Figure 10a, and will not be repeated here.
应理解,图13仅是示例,图13中第一数据包的包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图13中第一数据包的包头包括的各个字段的长度和排列顺序也不做限定。It should be understood that FIG. 13 is only an example, and each field included in the header of the first data packet in FIG. 13 may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the header of the first data packet in FIG. 13 are also not limited.
可见,实现方式1.4中通过Seg_N字段来指示第一数据包的数据中包括的数据段个数,无需针对每个数据段都设置一个扩展比特(表示为E)字段来指示其是否是最后一个数据段,可以节省开销。It can be seen that in the implementation mode 1.4, the Seg_N field is used to indicate the number of data segments included in the data of the first data packet, and there is no need to set an extension bit (represented as E) field for each data segment to indicate whether it is the last data. segment to save overhead.
2、第二数据包的编码包包头2. The encoded packet header of the second data packet
实现方式2.1Implementation 2.1
可选的,每个第二数据包包括编码包包头和编码数据。编码数据是多个原数据包经过网络编码后得到。每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息、以及编码因子字段(如系数标识(Coeff ID)字段),可选的还包括第二指示信息。其中,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。该第二指示信息在编码包包头中的表现形式可以是O/C字段,应理解,第二指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。该用于指示编码得到该第二数据包的N个第一数据包的标识信息可以包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。应理解,如果编码窗的窗长是半静态配置的,则用于指示编码得到该第二数据包的N个第一数据包的标识信息包括编码窗中第一个第一数据包的序列号、和编码窗中最后一个第一数据包的序列号中的至少一项即可。编码因子字段(如Coeff ID字段)的长度为8bit,用于指示255行码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。应理解,本申请中编码因子字段与Coeff ID字段可相互替换使用。Optionally, each second data packet includes an encoded packet header and encoded data. The encoded data is obtained after multiple original data packets are network encoded. The encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a coefficient identification (Coeff ID) field), optional Also includes second indication information. Wherein, the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. The representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application. The identification information for indicating the N first data packets obtained by encoding the second data packet may include at least the following two items: information indicating the window length of the encoding window, and the sequence number of the first first data packet in the encoding window , the sequence number of the last first data packet in the encoding window. It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window. The length of the coding factor field (such as the Coeff ID field) is 8 bits, and is used to indicate the row index of the 255-row codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like. It should be understood that the coding factor field and the Coeff ID field in this application can be used interchangeably.
可选的,上述编码包包头还可以包括类型(Type)字段和Packet ID字段中的一项或多项。 类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。Optionally, the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
其中,因为原数据包(第一数据包)的包头中携带有自己的序列号,编码包(第二数据包)的编码包包头中既可以携带自己的序列号,也可以不携带自己的序列号,所以针对序列号的实现方式有以下几种:(1)编码包的编码包包头中不携带序列号,即编码包包头中不存在Packet ID字段,此时原数据包(第一数据包)的序列号顺序编号。(2)编码包的序列号和原数据包的序列号都顺序编号(共用一套编号系统),且编码包的序列号与原数据包的序列号不重复;比如原数据包的序列号为1-20,编码包的序列号从21开始顺序递增。(3)编码包的序列号和原数据包的序列号分别有自己的一套编号系统,互不影响。(4)编码包的序列号和原数据包的序列号都顺序编号(共用一套序列号),且允许编码包的序列号与原数据包的序列号重复使用,可使用O/C字段来区分原数据包和编码包。比如,原数据包的序列号为1-20,编码包的序列号为11-15。Among them, because the header of the original data packet (the first data packet) carries its own serial number, the encoded packet header of the encoded packet (the second data packet) may carry its own serial number or not carry its own serial number. number, so there are the following implementations for the serial number: (1) The encoded packet header of the encoded packet does not carry the serial number, that is, there is no Packet ID field in the encoded packet header, at this time the original data packet (the first data packet ) serial number sequence number. (2) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of numbering system), and the serial number of the encoded packet and the serial number of the original data packet are not repeated; for example, the serial number of the original data packet is 1-20, the sequence number of the encoded packet increases sequentially from 21. (3) The serial number of the encoded packet and the serial number of the original data packet have their own set of numbering systems, which do not affect each other. (4) The serial number of the encoded packet and the serial number of the original data packet are numbered sequentially (share a set of serial numbers), and the serial number of the encoded packet and the serial number of the original data packet are allowed to be reused, and the O/C field can be used to Distinguish original data packets and encoded packets. For example, the sequence numbers of the original data packets are 1-20, and the sequence numbers of the encoded packets are 11-15.
参见图14,图14是本申请实施例提供的编码包包头的第一种示意图。如图14所示,编码包包头包括:系数标识(Coeff ID)字段,以及窗长(Window Length,表示为Win_L)字段、网络编码数据包开始(NC_Packet_Start)字段、网络编码数据包结束(NC_Packet_End)字段中至少两个;可选的包括O/C字段,Type字段和Packet ID字段。Referring to FIG. 14, FIG. 14 is a first schematic diagram of an encoded packet header provided by an embodiment of the present application. As shown in Figure 14, the encoding packet header includes: a coefficient identification (Coeff ID) field, a window length (Window Length, expressed as Win_L) field, a network encoding packet start (NC_Packet_Start) field, and a network encoding packet end (NC_Packet_End) At least two of the fields; optional fields include O/C field, Type field and Packet ID field.
其中,本申请实施例中编码包包头包括的O/C字段设置为第二值(比如1),用来指示该O/C字段所在的第二数据包是原数据包。Type字段和Packet ID字段的含义可参考前述图10a中的相应描述,此处不再赘述。如果编码包包头中不存在Type字段,则Packet ID字段的长度可以为8bit。Coeff ID字段的长度为8bit,用于表示255行码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。Wherein, the O/C field included in the packet header of the encoded packet in the embodiment of the present application is set to a second value (for example, 1), which is used to indicate that the second data packet in which the O/C field is located is the original data packet. For the meanings of the Type field and the Packet ID field, reference may be made to the corresponding descriptions in the aforementioned FIG. 10a, which will not be repeated here. If the Type field does not exist in the encoded packet header, the length of the Packet ID field can be 8 bits. The length of the Coeff ID field is 8 bits, which is used to represent the row index of the 255-row codebook. The codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
窗长(表示为Win_L)字段的长度为8bit,用于表示编码窗的窗长,或者说表示用于网络编码的数据块的大小。其中,编码窗的窗长或用于网络编码的数据块的大小,以数据包为粒度,8bit最多表示255个数据包,即编码窗的窗长最大为255个数据包,或者用于网络编码的数据块的大小最大为255个数据包。The length of the window length (represented as Win_L) field is 8 bits, which is used to represent the window length of the coding window, or the size of the data block used for network coding. Among them, the window length of the coding window or the size of the data block used for network coding takes the data packet as the granularity, and 8 bits represent at most 255 data packets, that is, the maximum window length of the coding window is 255 data packets, or it is used for network coding. The size of the data block is a maximum of 255 packets.
NC_Packet_Start字段的长度为8bit,用于表示编码窗中第一个第一数据包的序列号。The length of the NC_Packet_Start field is 8 bits, and is used to indicate the sequence number of the first first data packet in the encoding window.
NC_Packet_End字段的长度为8bit,用于表示编码窗中最后一个第一数据包的序列号。The length of the NC_Packet_End field is 8 bits, and is used to indicate the sequence number of the last first data packet in the coding window.
应理解,NC_Packet_Start字段、NC_Packet_End字段、Win_L字段中三者有其二即可唯一确定编码窗中的原数据包。如果Win_L字段半静态配置,则有NC_Packet_Start字段和NC_Packet_End字段中任一个即可。It should be understood that if there are two of the NC_Packet_Start field, the NC_Packet_End field, and the Win_L field, the original data packet in the encoding window can be uniquely determined. If the Win_L field is semi-statically configured, either the NC_Packet_Start field or the NC_Packet_End field is sufficient.
还应理解,图14仅是示例,图14中编码包包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图14中编码包包头包括的各个字段的长度和排列顺序也不做限定。It should also be understood that FIG. 14 is only an example, and each field included in the encoded packet header in FIG. 14 may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the coded packet header in FIG. 14 are also not limited.
可见,实现方式2.1中重新设计一种编码包包头的格式,以支持译码端的正确译码。It can be seen that, in the implementation mode 2.1, a format of the encoded packet header is redesigned to support correct decoding at the decoding end.
实现方式2.2Implementation 2.2
可选的,每个第二数据包包括编码包包头和编码数据。编码数据是多个原数据包经过网络编码后得到。每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息、以及编码因子字段(如系数标识(Coeff ID)字段),可选的还包括第 二指示信息。其中,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。该第二指示信息在编码包包头中的表现形式可以是O/C字段,应理解,第二指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。该用于指示编码得到该第二数据包的N个第一数据包的标识信息在编码包包头中的表现形式可以是块标识(Block ID)字段。Optionally, each second data packet includes an encoded packet header and encoded data. The encoded data is obtained after multiple original data packets are network encoded. The encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a coefficient identification (Coeff ID) field), optional Also includes second indication information. Wherein, the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. The representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application. The representation form of the identification information used to indicate that the N first data packets obtained by encoding the second data packet in the encoded packet header may be a block identification (Block ID) field.
可选的,上述编码包包头还可以包括类型(Type)字段和Packet ID字段中的一项或多项。类型(Type)字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。Optionally, the above-mentioned encoded packet header may also include one or more of a type (Type) field and a Packet ID field. The Type field is used to indicate the length of the data packet identification field, or the range of sequence numbers of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 A length of SN (or Packet ID field length). The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located.
参见图15,图15是本申请实施例提供的编码包包头的第二种示意图。如图15所示,编码包包头包括:系数标识(Coeff ID)字段,以及块标识(Block ID)字段;可选的包括O/C字段,Type字段和Packet ID字段。其中,O/C字段、Type字段、以及Packet ID字段的含义可参考前述图10a中的相应描述,此处不再赘述。Coeff ID字段的含义可参考前述图14中的相应描述,此处不再赘述。Block ID字段用于表示数据块的标识,这个数据块用于编码得到该Block ID字段所在的第二数据包。Referring to FIG. 15 , FIG. 15 is a second schematic diagram of an encoded packet header provided by an embodiment of the present application. As shown in Figure 15, the encoded packet header includes: a coefficient identification (Coeff ID) field, and a block identification (Block ID) field; optionally, an O/C field, a Type field, and a Packet ID field. Wherein, the meanings of the O/C field, the Type field, and the Packet ID field can refer to the corresponding descriptions in the aforementioned FIG. 10a, which will not be repeated here. For the meaning of the Coeff ID field, reference may be made to the corresponding description in the aforementioned FIG. 14 , which will not be repeated here. The Block ID field is used to represent the identification of the data block, and this data block is used to encode the second data packet where the Block ID field is located.
还应理解,图15仅是示例,图15中编码包包头包括的各个字段还可以有其他名称,本申请实施例对此不做限定。图15中编码包包头包括的各个字段的长度和排列顺序也不做限定。It should also be understood that FIG. 15 is only an example, and each field included in the encoded packet header in FIG. 15 may also have other names, which are not limited in this embodiment of the present application. The length and arrangement order of each field included in the encoded packet header in FIG. 15 are also not limited.
可见,实现方式2.2中通过复用原有编码包包头中的Coeff ID字段、Block ID字段、Type字段、以及Packet ID字段,并新增一个O/C字段来指示数据包的种类(编码包还是原数据包),不仅可以保证译码端的正确译码,还可以提高兼容性。It can be seen that in the implementation mode 2.2, the Coeff ID field, Block ID field, Type field, and Packet ID field in the header of the original encoded packet are multiplexed, and an O/C field is added to indicate the type of the data packet (encoded packet or original data packet), not only can ensure the correct decoding of the decoding end, but also can improve the compatibility.
可选的,虽然第一设备分别传输了N个第一数据包(即原数据包)和M个第二数据包(即编码包),但因为干扰、噪声等因素,第一设备传输的数据包不一定都能被第二设备正确接收,也就是说,在传输过程中可能发生丢包的情况。所以,当第二设备接收到至少N个正确且线性无关的数据包时,才能正确译码并恢复出N个第一数据包。Optionally, although the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not The packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets.
下面详细介绍译码端的数据传输流程。The data transmission process at the decoding end is described in detail below.
S105,第二设备获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包。S105, the second device acquires P data packets, where the P data packets include K first data packets and P-K second data packets.
S106,第二设备对该P个数据包进行译码,获得译码后的N个第一数据包。S106, the second device decodes the P data packets, and obtains N first data packets after decoding.
S107,第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。S107, the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
可选的,第二设备接收到P个数据包,或从存储空间(如buffer)中读取到P个数据包,P是正整数,且大于或等于N。可见,当P等于N时,可以减少冗余开销。应理解,第二设备可以一次性接收到P个数据包,将其按序存储在存储空间中;也可以分多次接收,将每次接收到的数据包按序存储在存储空间中。在接收到的数据包个数等于P后,可执行译码操作,即步骤S106。Optionally, the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S106.
可选的,因为原数据包的包头和编码包包头的解析方式不相同,所以第二设备在解析原数据包的包头和编码包包头获得其中的信息之前,判断接收到的P个数据包中哪些是原数据包哪些是编码包。第二设备判断接收到的数据包是编码包还是原数据包的方式有两种:Optionally, because the parsing methods of the header of the original data packet and the header of the encoded packet are not the same, the second device determines that the received P data packets are among the P packets before parsing the header of the original data packet and the header of the encoded packet to obtain the information therein. Which are the original data packets and which are the encoded packets. There are two ways for the second device to determine whether the received data packet is an encoded packet or an original data packet:
一种实现方式中,第二设备比较P个数据包中每个数据包的长度与编码包长度阈值L1的大小关系。如果该P个数据包中某个数据包的长度等于该编码包长度阈值L1,则确定该数据包是第二数据包(即编码包)。如果该P个数据包中某个数据包的长度小于该编码包长度阈值L1,则确定该数据包是第一数据包(即原数据包)。或者,第二设备比较P个数据包中每个数据包的长度与该原数据包长度阈值L2的大小关系。如果该P个数据包中某个数据包的长度小于或等于该原数据包长度阈值L2,则确定该数据包是第一数据包(即原数据包)。如果该P个数据包中某个数据包的长度大于该原数据包长度阈值L2,则确定该数据包是第二数据包(即编码包)。其中,编码包长度阈值L1可以是预设的,也可以是半静态配置的,还可以收发双方提前协商的。同理,原数据包长度阈值L2可以是预设的,也可以是半静态配置的,还可以收发双方提前协商的。In an implementation manner, the second device compares the size relationship between the length of each of the P data packets and the encoded packet length threshold L1. If the length of a certain data packet in the P data packets is equal to the encoded packet length threshold L1, it is determined that the data packet is the second data packet (ie, an encoded packet). If the length of a certain data packet in the P data packets is less than the encoded packet length threshold L1, it is determined that the data packet is the first data packet (ie, the original data packet). Or, the second device compares the size relationship between the length of each data packet in the P data packets and the length threshold L2 of the original data packet. If the length of a certain data packet in the P data packets is less than or equal to the original data packet length threshold L2, it is determined that the data packet is the first data packet (ie, the original data packet). If the length of a certain data packet in the P data packets is greater than the length threshold L2 of the original data packet, it is determined that the data packet is a second data packet (ie, an encoded packet). The encoded packet length threshold L1 may be preset or semi-statically configured, and may also be negotiated in advance by the sending and receiving parties. Similarly, the original data packet length threshold L2 may be preset or semi-statically configured, and may also be negotiated in advance by the sending and receiving parties.
另一种实现方式中,如果上述第一数据包的包头和上述第二数据包的编码包包头中均携带指示信息(即O/C字段),则第二设备针对P个数据包中的每个数据包,可以读取该数据包的第一个比特(即O/C字段),确定该数据包是第一数据包(即原数据包)还是第二数据包(即编码包)。In another implementation manner, if both the header of the first data packet and the encoded packet header of the second data packet carry indication information (ie, the O/C field), the second device will target each of the P data packets for each A data packet, the first bit of the data packet (ie the O/C field) can be read to determine whether the data packet is the first data packet (ie the original data packet) or the second data packet (ie the encoded packet).
如果该数据包是第一数据包(即原数据包),则第二设备采用原数据包的解析方式解析该数据包的包头,获得该数据包的序列号。如果该数据包是第二数据包(即编码包),则第二设备采用编码包的解析方式解析该数据包的编码包包头,获得编码因子字段(即Coeff ID字段)和用于指示编码得到该数据包的N个第一数据包的标识信息。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。每个第一数据包包括包头和数据,每个第二数据包包括编码包包头和编码数据。K和P均为正整数,且K小于或等于P。第二设备按照该K个第一数据包的序列号从小到大排序、该P-K个第二数据包的编码包包头中编码因子字段的指示、以及任一个第二数据包的包头中用于指示编码得到该第二数据包的N个第一数据包的标识信息,构成系数因子矩阵。该系数因子矩阵的秩(rank)等于N。第二设备采用该系数因子矩阵对P-K个第二数据包的编码数据和K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。应理解,译码得到的N-K个第一数据包和K个第一数据包加起来就是N个第一数据包。每个第一数据包的包头包括该第一数据包的数据部分对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。第二设备再根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将这N个第一数据包的数据还原成至少一个数据单元。其中,K小于或等于N。用于指示编码得到该数据包的N个第一数据包的标识信息是Block ID字段,或包括编码窗的窗长、编码窗中第一个第一数据包的序列号、以及编码窗中最后一个第一数据包的序列号中至少两项。If the data packet is the first data packet (ie, the original data packet), the second device parses the packet header of the data packet by using the parsing method of the original data packet to obtain the serial number of the data packet. If the data packet is a second data packet (that is, an encoded packet), the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate that the encoding is obtained. Identification information of the N first data packets of the data packet. The P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data, and each second data packet includes an encoded packet header and encoded data. Both K and P are positive integers, and K is less than or equal to P. The second device sorts the K first data packets in ascending order, the indication of the encoding factor field in the encoded packet header of the P-K second data packets, and the indication in the packet header of any second data packet The identification information of the N first data packets of the second data packet is obtained by encoding, and a coefficient factor matrix is formed. The rank of the coefficient factor matrix is equal to N. The second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, to obtain N-K first data packets after decoding. It should be understood that the sum of N-K first data packets and K first data packets obtained by decoding is N first data packets. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet, where the segmentation and concatenation information is used to indicate that the data of the first data packet is related to the at least one data unit. Correspondence of data units. The second device then restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets. where K is less than or equal to N. The identification information that is used to indicate that coding obtains the N first data packets of this data packet is the Block ID field, or comprises the window length of the coding window, the sequence number of the first first data packet in the coding window, and the last in the coding window. At least two items in the sequence number of a first data packet.
为更好地理解上述步骤S105至上述步骤S107所述的流程,下面以一个示例来说明上述步骤S105至上述步骤S107所示的译码端数据传输流程。In order to better understand the processes described in the above steps S105 to S107, an example is used to describe the data transmission process at the decoding end shown in the above steps S105 to S107.
示例性的,参见图16,图16是本申请实施例提供的译码端数据传输流程示意图。当编码端(即第一设备)对N个原数据包进行编码并加编码包包头,得到M个编码包,发送给译码端(即第二设备)。这里假设由于信道衰落、干扰等因素,原数据包Pkt2和Pkt3丢失。相应地,译码端(即第二设备)可以判断出原数据包Pkt2和Pkt3错误被擦除或者丢失,其判断方式可以是译码端(即第二设备)未接收到序列号为2和3的原数据包。这里还假设M=2,P=N。因此,译码端(即第二设备)可以通过接收正确的原数据包和编码包进行联合译码,恢复出丢失的原数据包Pkt2和Pkt3。如图16所示,因为编码端(即第一设备)总共传输的原数据包个数为N,在传输过程中原数据包Pkt2和Pkt3错误被擦除,所以还需要接收正确的 至少2个编码包(如图16中的EPkt1和EPkt2)来联合接收正确的N-2个原数据包进行译码。如果编码包包头按照前述实现方式2.1设计,假设编码包包头包括编码窗的窗长和编码窗中起始原数据包的序列号,则译码端(即第二设备)解析每个编码包(如图16中的EPkt1和EPkt2)的编码包包头,获取编码窗的窗长(即Win_L字段,可半静态配置,即不在编码包包头中携带)和编码窗中起始原数据包的序列号、以及Coeff ID字段。如果编码包包头按照前述实现方式2.2设计,包括Block ID字段,则译码端(即第二设备)解析每个编码包(如图16中的EPkt1和EPkt2)的编码包包头,获取Block ID字段以及Coeff ID字段。译码端(即第二设备)再解析每个原数据包获取每个原数据包的序列号,并根据N-2个原数据包的序列号和2个编码包的Coeff ID字段,构造系数因子矩阵(如图16所示的系数因子矩阵,该系数因子矩阵的列从左到右对应原数据包的序列号从小到大排列)。该系数因子矩阵的秩(rank)为N。译码端(即第二设备)再对每个编码包进行去编码包包头的操作,获取每个编码包的编码数据,再根据系数因子矩阵对编码包的编码数据和原数据包进行排序,保证系数因子矩阵与其的对应关系(如图16中接收正确的数据包)。译码端(即第二设备)采用高斯消元等典型译码算法译码,恢复出丢失的原数据包Pkt2和Pkt3。译码端(即第二设备)对译码后的原数据包(即图16中的Pkt2和Pkt3)解析包头获取分割和级联信息,并对接收正确的N-2个原数据包解析包头获取分割和级联信息,去除N个原数据包中每个原数据包的包头,根据每个原数据包的包头中的分割和级联信息,对N个原数据包的数据进行分割和级联的逆向操作,构成一个或多个PDCP PDU/SDU。图16中,Header表示原数据包的包头,Data表示原数据,NC_Header表示编码包包头,EData表示编码数据,Pkt表示原数据包,EPkt表示编码包。For example, refer to FIG. 16 , which is a schematic diagram of a data transmission process at a decoding end provided by an embodiment of the present application. When the encoding end (ie the first device) encodes the N original data packets and adds the encoded packet headers, M encoded packets are obtained and sent to the decoding end (ie the second device). It is assumed here that the original data packets Pkt2 and Pkt3 are lost due to factors such as channel fading and interference. Correspondingly, the decoding end (ie the second device) can judge that the original data packets Pkt2 and Pkt3 are erroneously erased or lost, and the judgment method can be that the decoding end (ie the second device) does not receive the serial number of 2 and 3 of the original data package. It is also assumed here that M=2 and P=N. Therefore, the decoding end (ie, the second device) can perform joint decoding by receiving the correct original data packet and the encoded packet, and recover the lost original data packets Pkt2 and Pkt3. As shown in Figure 16, because the total number of original data packets transmitted by the encoding end (ie the first device) is N, the original data packets Pkt2 and Pkt3 errors are erased during the transmission process, so it is necessary to receive at least two correct codes packets (such as EPkt1 and EPkt2 in Figure 16) to jointly receive the correct N-2 original data packets for decoding. If the encoding packet header is designed according to the aforementioned implementation mode 2.1, assuming that the encoding packet header includes the window length of the encoding window and the sequence number of the original data packet in the encoding window, the decoding end (ie the second device) parses each encoding packet (such as EPkt1 and EPkt2 in Fig. 16) the encoding packet header, obtain the window length of the encoding window (that is, the Win_L field, which can be semi-statically configured, that is, not carried in the encoding packet header) and the sequence number of the original data packet in the encoding window, and Coeff ID field. If the coded packet header is designed according to the aforementioned implementation mode 2.2 and includes the Block ID field, the decoding end (ie the second device) parses the coded packet header of each coded packet (EPkt1 and EPkt2 in Figure 16) to obtain the Block ID field and the Coeff ID field. The decoding end (ie, the second device) then parses each original data packet to obtain the serial number of each original data packet, and constructs coefficients according to the serial numbers of N-2 original data packets and the Coeff ID fields of the 2 encoded packets Factor matrix (the coefficient factor matrix shown in Figure 16, the columns of the coefficient factor matrix are arranged from left to right corresponding to the sequence numbers of the original data packets from small to large). The rank of the coefficient factor matrix is N. The decoding end (that is, the second device) then de-encodes the packet header of each encoded packet, obtains the encoded data of each encoded packet, and then sorts the encoded data of the encoded packet and the original data packet according to the coefficient factor matrix, Ensure that the coefficient factor matrix corresponds to it (receive the correct packet as in Figure 16). The decoding end (ie, the second device) uses typical decoding algorithms such as Gaussian elimination to recover the lost original data packets Pkt2 and Pkt3. The decoding end (that is, the second device) parses the header of the decoded original data packet (that is, Pkt2 and Pkt3 in Figure 16 ) to obtain segmentation and concatenation information, and parses the header for receiving the correct N-2 original data packets Obtain the segmentation and concatenation information, remove the header of each original data packet in the N original data packets, and divide and classify the data of the N original data packets according to the segmentation and concatenation information in the packet header of each original data packet. The reverse operation of the association constitutes one or more PDCP PDUs/SDUs. In FIG. 16, Header represents the header of the original data packet, Data represents the original data, NC_Header represents the encoded packet header, EData represents the encoded data, Pkt represents the original data packet, and EPkt represents the encoded packet.
可选的,由于传输过程中的丢包问题,译码端(即第二设备)可能译码成功,也可能译码失败,这里针对译码成功和译码失败这两种情况分别设计反馈消息。针对译码端译码成功(比如,译码端正确恢复出丢失的原数据包)的情况,译码端(即第二设备)可以采用1比特来反馈确认(acknowledge,ACK)信息。针对译码端译码失败(比如,译码端无法正确恢复出丢失的原数据包)的情况,译码端(即第二设备)反馈需要重传的编码包个数、和译码的原数据包范围。Optionally, due to the problem of packet loss during transmission, the decoding end (ie, the second device) may succeed in decoding or fail in decoding. Here, feedback messages are designed for the two cases of successful decoding and decoding failure. . In the case that the decoding end successfully decodes (for example, the decoding end correctly recovers the lost original data packet), the decoding end (ie, the second device) may use 1 bit to feed back acknowledgement (acknowledge, ACK) information. In the event that the decoding end fails to decode (for example, the decoding end cannot correctly recover the lost original data packet), the decoding end (ie, the second device) feeds back the number of encoded packets that need to be retransmitted, and the original decoded data packet. Packet range.
其中,译码端(即第二设备)可通过反馈秩(rank)数,或者需要的rank数(比如,采用6bit来指示,可指示最多64个包)来指示需要重传的编码包个数。rank数,表示译码端(即第二设备)正确接收到的数据包个数,P减去rank数即为需要重传的编码包个数。需要的rank数可用于直接指示需要重传的编码包个数。The decoding end (ie, the second device) can indicate the number of encoded packets that need to be retransmitted by feeding back the rank number, or the required rank number (for example, using 6 bits to indicate a maximum of 64 packets) . The number of ranks indicates the number of data packets correctly received by the decoding end (ie, the second device), and the number of encoded packets that need to be retransmitted is obtained by subtracting the number of ranks from P. The required rank number can be used to directly indicate the number of encoded packets that need to be retransmitted.
一种实现方式中,译码的原数据包范围可通过编码窗的窗长(该变量可半静态配置,可通过8bit进行指示)、编码窗中起始原数据包(即第一数据包)的序列号、编码窗中末尾原数据包(即第一数据包)的序列号中任意两项进行指示。应理解,如果编码窗的窗长是半静态配置的,译码的原数据包范围可通过编码窗中起始原数据包的序列号、编码窗中末尾原数据包的序列号中的任一项联合编码窗的窗长来指示,或者直接通过编码窗中起始原数据包和末尾原数据包的序列号来指示。还应理解,对于编码包的序列号和原数据包的序列号共用一套编号的情况,译码端(即第二设备)在反馈译码的原数据包范围时,将一串连续编号中编码包的序列号剔除,只指示原数据包的序列号。对于编码包的序列号和原数据包的序列号分别用一套编号的情况,译码端(即第二设备)在反馈译码的原数据包范围时,只需关注原数据包的编号范围即可。In an implementation manner, the range of the original data packet to be decoded can be determined by the window length of the encoding window (this variable can be configured semi-statically, and can be indicated by 8 bits), the length of the original original data packet (that is, the first data packet) in the encoding window. Any two items of the sequence number and the sequence number of the last original data packet (ie, the first data packet) in the encoding window are indicated. It should be understood that if the window length of the encoding window is semi-statically configured, the range of the original data packet of the decoding can be determined by any one of the sequence number of the original original data packet in the encoding window and the sequence number of the last original data packet in the encoding window. It is indicated by the window length of the joint coding window, or directly indicated by the sequence numbers of the initial original data packet and the last original data packet in the coding window. It should also be understood that in the case where the serial number of the encoded packet and the serial number of the original data packet share a set of numbers, the decoding end (ie, the second device), when feeding back the range of the decoded original data packet, adds the serial number to the serial number. The serial number of the encoded packet is eliminated, and only the serial number of the original data packet is indicated. For the case where the serial number of the encoded packet and the serial number of the original data packet are respectively set by a set number, the decoding end (ie the second device) only needs to pay attention to the number range of the original data packet when feeding back the range of the decoded original data packet That's it.
另一种实现方式中,如果编码包包头中存在block ID字段,译码的原数据包范围可通过 block ID字段进行反馈。此时可以省去编码窗的窗长、编码窗中起始原数据包和末尾原数据包的序列号。In another implementation manner, if there is a block ID field in the header of the encoded packet, the range of the decoded original data packet can be fed back through the block ID field. In this case, the window length of the coding window and the sequence numbers of the initial original data packet and the last original data packet in the coding window can be omitted.
可选的,如果编码包(即第二数据包)与原数据包(即第一数据包)分开独立编号,即编码包的序列号和原数据包的序列号采用两套编号系统,则编码端(即第一设备)仅允许原数据包进入编码器的缓存区(buffer)。此时,译码端(即第二设备)可以维护两个buffer,一个buffer用来存储原数据包,另一个buffer用来存储编码包。译码端(即第二设备)也可以仅维护一个buffer,通过O/C字段对数据包的类型进行区分。Optionally, if the encoded packet (that is, the second data packet) and the original data packet (that is, the first data packet) are separately numbered, that is, the serial number of the encoded packet and the serial number of the original data packet use two sets of numbering systems, then the encoding The end (ie, the first device) only allows the original data packet to enter the buffer of the encoder. At this time, the decoding end (ie, the second device) can maintain two buffers, one buffer is used to store the original data packet, and the other buffer is used to store the encoded packet. The decoding end (ie, the second device) may also maintain only one buffer, and distinguish the types of the data packets through the O/C field.
如果编码包(即第二数据包)与原数据包(即第一数据包)联合顺序编号,即编码包的序列号和原数据包的序列号共用一套编号系统,则编码端(即第一设备)仅对原数据包进行编码。If the encoded packet (that is, the second data packet) and the original data packet (that is, the first data packet) are numbered sequentially, that is, the serial number of the encoded packet and the serial number of the original data packet share a set of numbering system, then the encoding end (that is, the first data packet) a device) encodes only the original packet.
可选的,编码端(即第一设备)既可以是基站,也可以是UE;译码端(即第二设备)既可以是UE,也可以是基站。当编码端(即第一设备)和译码端(即第二设备)中一端是基站,另一端是UE时,基站可在UE的上行传输之前,通过无线资源控制(radio resource control,RRC)消息或者MAC控制元素(MAC Control Element,MAC CE)消息指示UE上行传输的编码策略。该RRC消息或MAC CE消息可以指示UE的编码方式,如bit级编码还是包级编码;或者指示不同的编码方案,如块编码还是卷积网络编码。Optionally, the encoding end (ie, the first device) may be either a base station or a UE; the decoding end (ie, the second device) may be either a UE or a base station. When one end of the encoding end (ie the first device) and the decoding end (ie the second device) is the base station and the other end is the UE, the base station can control the radio resource control (RRC) before the UE's uplink transmission. The message or the MAC Control Element (MAC Control Element, MAC CE) message indicates the encoding strategy of the UE's uplink transmission. The RRC message or the MAC CE message can indicate the encoding mode of the UE, such as bit-level encoding or packet-level encoding; or indicate a different encoding scheme, such as block encoding or convolutional network encoding.
可见,本申请实施例提供了原数据包(即第一数据包)的包头和编码包包头的字段设计,并通过译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的情况下能够正确译码出原数据包,并且根据原数据包的包头携带的分割和级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。It can be seen that the embodiment of the present application provides the field design of the header of the original data packet (ie the first data packet) and the header of the encoded packet, and through the decoding process and operation, it is expected that the data packet received by the decoding end is full rank (rank= In the case of N), the original data packet can be decoded correctly, and the PDU/SDU can be recovered according to the segmentation and concatenation information carried in the header of the original data packet, thereby reducing the performance loss of the NR system.
实施例二 Embodiment 2
本申请实施例二主要介绍在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如NR协议中,引入网络编码的另一种可能的数据传输方法,该方法只传输编码包,并且介绍PDU/SDU经过分割和/或级联操作后得到的原数据非等大小情况下,如何进行网络编码和数据传输、以及如何设计包头。The second embodiment of the present application mainly introduces another possible data transmission method that introduces network coding in a scenario that does not depend on the size of the SDU or PDU, that is, the size of different SDUs or PDUs may be the same or different, such as in the NR protocol. , this method only transmits coded packets, and introduces how to perform network coding and data transmission, and how to design packet headers when the original data obtained after PDU/SDU segmentation and/or concatenation operations are of unequal size.
应理解,本申请实施例二的整体流程与前述实施例一的整体流程类似,不同之处在于:本申请实施例二对原数据包进一步封装编码包包头,确保传输的所有数据包的大小相等。换句话说,本申请实施例二只传输编码包,不传输原数据包。It should be understood that the overall flow of the second embodiment of the present application is similar to the overall flow of the aforementioned first embodiment, with the difference that: the second embodiment of the present application further encapsulates and encodes the packet header of the original data packet to ensure that the sizes of all transmitted data packets are equal . In other words, Embodiment 2 of the present application only transmits the encoded packet, and does not transmit the original data packet.
参见图17,图17是本申请实施例提供的数据传输方法的第二种示意流程图。如图17所示,该数据传输方法包括但不限于以下步骤:Referring to FIG. 17 , FIG. 17 is a second schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 17, the data transmission method includes but is not limited to the following steps:
S201,第一设备获取N个第一数据包,该N个第一数据包的大小相等,每个第一数据包包括包头和数据,每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。S201, the first device acquires N first data packets, the N first data packets are equal in size, each first data packet includes a packet header and data, and the packet header of each first data packet includes a The division and concatenation information of at least one data unit corresponding to the data, where the division and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit.
S202,第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该编码包包头包括编码因子字段。S202, the first device encodes the N first data packets and adds an encoded packet header to obtain M second data packets, where the encoded packet header includes an encoding factor field.
S203,第一设备传输该M个第二数据包,其中,第一数据包是原数据包,第二数据包是编码包。S203, the first device transmits the M second data packets, wherein the first data packet is an original data packet, and the second data packet is an encoded packet.
可选的,本申请实施例中的第一数据包可以称为原数据包,第二数据包可以称为编码包。原数据包可以理解为未经过网络编码的数据包,编码包可以理解为经过网络编码后的数据包。 本申请实施例中的数据单元是PDU或SDU。Optionally, the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet. The original data packet can be understood as a data packet without network encoding, and the encoded packet can be understood as a data packet after network encoding. The data unit in this embodiment of the present application is a PDU or an SDU.
可选的,第一设备对至少一个数据单元(PDU或SDU)进行分割和/或级联等处理获得N个原数据,再对每个原数据加包头得到第一数据包(即原数据包),其中每个第一数据包的大小都相同。一种实现方式中,为了降低时延,第一设备每得到一个第一数据包(即原数据包)就将其缓存在存储器(这里的存储器是指存储空间,如缓存)中,并对该第一数据包进行编码(比如,将该第一数据包乘以行向量,该行向量中只有一个元素为1,其余元素为0),得到一个编码数据(该编码数据就是该第一数据包),再对该编码数据加编码包包头,得到第二数据包(即编码包)并传输。当该存储器中的第一数据包的个数达到网络编码所需的数据包个数(本申请实施例假设网络编码所需的数据包个数,即数据块大小为N)时,再对该存储器中缓存的N个第一数据包进行网络编码,生成M-N个编码数据。第一设备对该M-N个编码数据中每个编码数据加编码包包头,得到第二数据包(即编码包)。第一设备可以每得到一个第二数据包就传输该第二数据包。其中这M-N个编码数据都融合了N个原数据包的信息。这N个第一数据包的大小相等,这M-N个编码数据的大小也相等,并且任一个编码数据的大小与任一个第一数据包的大小也相等。Optionally, the first device divides and/or concatenates at least one data unit (PDU or SDU) to obtain N pieces of original data, and then adds a header to each original data to obtain the first data packet (that is, the original data packet). ), where each first packet is the same size. In an implementation manner, in order to reduce the delay, every time the first device obtains a first data packet (that is, the original data packet), it caches it in the memory (the memory here refers to the storage space, such as the cache), and stores the first data packet (that is, the original data packet). The first data packet is encoded (for example, the first data packet is multiplied by a row vector, only one element in the row vector is 1, and the remaining elements are 0), and an encoded data is obtained (the encoded data is the first data packet. ), and then add an encoded packet header to the encoded data to obtain a second data packet (ie, an encoded packet) and transmit it. When the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N), the Network coding is performed on the N first data packets buffered in the memory to generate M-N coded data. The first device adds an encoded packet header to each of the M-N encoded data to obtain a second data packet (ie, an encoded packet). The first device may transmit the second data packet every time it obtains the second data packet. The M-N coded data are all fused with the information of the N original data packets. The sizes of the N first data packets are equal, the sizes of the M-N encoded data are also equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets.
另一种实现方式中,第一设备每得到一个第一数据包(即原数据包)就将其缓存在存储器(这里的存储器是指存储空间,如缓存)中。当该存储器中的第一数据包的个数达到网络编码所需的数据包个数(本申请实施例假设网络编码所需的数据包个数,即数据块大小为N)时,再对该存储器中缓存的N个第一数据包进行网络编码,生成M个编码数据,其中这N个第一数据包的大小相等,这M个编码数据的大小也相等,并且任一个编码数据的大小与任一个第一数据包的大小也相等。其中,对N个第一数据包进行网络编码可以理解为:将该N个第一数据包作为N行1列的矩阵,与编码系数矩阵做矩阵乘积。该编码系数矩阵中前N行构成的子矩阵是单位阵,后M-N行构成的子矩阵可以包括码本中的一行或多行,这里的码本可以是范德蒙码本、柯西码本、随机码本等。前N个编码数据中一个编码数据就是一个原数据包,后M-N个编码数据中每个编码数据都融合了N个原数据包的信息。本申请对网络编码的方式不做限定,既可以是卷积网络编码也可以是块网络编码等。第一设备对每个编码数据加编码包包头,得到第二数据包(即编码包)。第一设备可以每得到一个第二数据包就传输该第二数据包。In another implementation manner, each time the first device obtains a first data packet (ie, an original data packet), it caches it in a memory (the memory here refers to a storage space, such as a cache). When the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N), the The N first data packets buffered in the memory are network-coded to generate M pieces of encoded data, wherein the sizes of the N first data packets are equal, the sizes of the M encoded data are also equal, and the size of any encoded data is equal to the size of the M encoded data. The size of any first data packet is also equal. Wherein, performing network coding on the N first data packets can be understood as: taking the N first data packets as a matrix with N rows and 1 column, and performing a matrix product with the coding coefficient matrix. The submatrix formed by the first N rows in the coding coefficient matrix is an identity matrix, and the submatrix formed by the latter M-N rows may include one or more rows in the codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook etc. One encoded data in the first N encoded data is an original data packet, and each encoded data in the last M-N encoded data is fused with the information of the N original data packets. This application does not limit the method of network coding, which can be either convolutional network coding or block network coding. The first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet). The first device may transmit the second data packet every time it obtains the second data packet.
可选的,第一设备对N个第一数据包进行网络编码并加编码包包头后得到M个第二数据包,可以理解为:一方面,每得到一个第一数据包就直接加编码包包头,获得一个第二数据包,N个第一数据包加编码包包头就得到N个第二数据包。另一方面,将N个第一数据包作为N行1列的矩阵,与编码系数矩阵做矩阵乘积,得到M-N个第二数据包。该编码系数矩阵中的一行是码本中的一行,这里的码本可以是范德蒙码本、柯西码本、随机码本等。其中,N和M均为正整数,且M大于N。可见,第一设备传输的数据包(这里只有编码包)的大小相等。Optionally, the first device performs network coding on the N first data packets and adds the encoded packet headers to obtain M second data packets. Packet header, to obtain a second data packet, and N first data packets plus the encoded packet header to obtain N second data packets. On the other hand, taking the N first data packets as a matrix of N rows and 1 column, and performing matrix product with the coding coefficient matrix, M-N second data packets are obtained. A row in the coding coefficient matrix is a row in a codebook, and the codebook here may be a Vandermonde codebook, a Cauchy codebook, a random codebook, or the like. Among them, both N and M are positive integers, and M is greater than N. It can be seen that the size of the data packets (only the encoded packets here) transmitted by the first device are equal.
可选的,上述步骤S201至步骤S203可以由第一设备中单独的NC功能子层实现,也可以由具有NC功能的层实现,具体可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the above steps S201 to S203 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer having an NC function. For details, please refer to the corresponding description in the foregoing Embodiment 1, which is not repeated here. Repeat.
可选的,为更好地理解上述步骤S201至上述步骤S203所述的流程,下面以一个示例来说明上述步骤S201至上述步骤S203所示的编码端数据传输流程。Optionally, in order to better understand the processes described in the above steps S201 to S203, an example is used below to describe the data transmission process at the encoding end shown in the above steps S201 to S203.
示例性的,参见图18,图18是本申请实施例提供的编码端数据传输流程的第二种示意图。如图18所示,以NC功能子层位于PDCP层和RLC层之间为例。假设NC功能子层依次接收到PDCP PDU1~4,根据NC功能子层中对原数据包的大小要求(其中原数据包的大小 可以是半静态配置,也可以是收端(或译码端、或第二设备)提前告知发端(或编码端、或第一设备)的),对PDCP PDU1~4进行分割和/或级联操作,依次得到原数据包Pkt1~Pkt4的数据(如图18中的Data1~Data4)。再对得到的每个数据添加原数据包包头(如图18中的Header),获得原数据包,并将原数据包缓存在NC功能子层的编码器的缓存区(buffer)中等待编码。当buffer中的原数据包达到编码器所需的数据包个数时,假设编码器所需的数据包个数为4,然后将buffer中的4个原数据包进行网络编码并加编码包包头(如图18中的NC_Header),得到编码包并作为NC功能子层的PDU进行发送。因为网络编码所采用的编码系数矩阵中前N行构成的子矩阵是单位阵,后M-N行构成的子矩阵包括码本中的一行或多行,这里的码本可以是范德蒙码本、柯西码本、随机码本等。所以,图18所示的编码数据可分为两类,一类是只包含单个原数据包的信息(比如图18中的Data1~Data4),另一类是包含多个原数据包的信息(比如图18中的EData1和EData2)。应理解,发送编码包时可以只发送得到的部分编码包,也可以发送得到的全部编码包。还应理解,这里分割和/或级联得到的原数据不一定是等大小的,但需要保证每个原数据包(包括数据Data和包头Header)的大小相等,也就是说原数据包的包头Header非等大小。For example, refer to FIG. 18 , which is a second schematic diagram of the data transmission process at the encoding end provided by the embodiment of the present application. As shown in FIG. 18 , it is taken as an example that the NC functional sublayer is located between the PDCP layer and the RLC layer. Assuming that the NC functional sublayer receives PDCP PDUs 1 to 4 in sequence, according to the size requirements of the original data packet in the NC functional sublayer (wherein the size of the original data packet can be semi-static configuration, or the receiving end (or decoding end, (or the second device) informs the originating end (or the encoding end, or the first device) in advance, performs segmentation and/or concatenation operations on PDCP PDUs 1 to 4, and sequentially obtains the data of the original data packets Pkt1 to Pkt4 (as shown in Figure 18 ). Data1 to Data4). Then add the original data packet header (as shown in Figure 18) to each obtained data to obtain the original data packet, and buffer the original data packet in the buffer of the encoder of the NC function sublayer for encoding. When the original data packets in the buffer reach the number of data packets required by the encoder, assuming that the number of data packets required by the encoder is 4, then network-encode the 4 original data packets in the buffer and add the encoded packet header (NC_Header in Figure 18), the encoded packet is obtained and sent as a PDU of the NC functional sublayer. Because the submatrix formed by the first N rows in the coding coefficient matrix used in network coding is an identity matrix, and the submatrix formed by the last M-N rows includes one or more rows in the codebook, the codebook here can be Vandermonde codebook, Cauchy codebook, random codebook, etc. Therefore, the encoded data shown in Figure 18 can be divided into two categories, one is the information containing only a single original data packet (such as Data1 to Data4 in Figure 18), and the other is the information containing multiple original data packets ( Such as EData1 and EData2 in Figure 18). It should be understood that when sending the encoded packets, only a part of the obtained encoded packets may be sent, or all the obtained encoded packets may be sent. It should also be understood that the original data obtained by division and/or concatenation here are not necessarily of equal size, but it is necessary to ensure that the size of each original data packet (including data Data and header Header) is equal, that is, the header of the original data packet. Header is not equal size.
可选的,上述每个第一数据包(即原数据包)包括包头和数据(即上述原数据)。每个第一数据包的包头包括该第一数据包的数据(即上述原数据)对应的至少一个数据单元(PDU或SDU)的分割和级联信息,换句话说,每个原数据包的包头中包括该原数据包的数据与PDU/SDU的映射关系。或者说,该分割和级联信息用于指示该第一数据包的数据与至少一个数据单元(PDU或SDU)的对应关系。Optionally, each of the foregoing first data packets (that is, the original data packets) includes a header and data (that is, the foregoing original data). The packet header of each first data packet includes the segmentation and concatenation information of at least one data unit (PDU or SDU) corresponding to the data of the first data packet (that is, the above-mentioned original data), in other words, the The packet header includes the mapping relationship between the data of the original data packet and the PDU/SDU. In other words, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and at least one data unit (PDU or SDU).
可选的,每个第二数据包(即编码包)包括编码包包头和编码数据(这里的编码数据是第一数据包经过网络编码后得到)。编码包包头包括编码因子字段(如Coeff ID字段),用于指示码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。因为编码系数矩阵中前N行构成的子矩阵是单位阵,所以前N个编码包的编码包包头中携带的Coeff ID字段,指示的是该单位阵中的一行,也就是说,前N个编码包的编码包包头中Coeff ID字段指示行向量只有一个元素为1,其他元素为0。应理解,因为本申请实施例中仅传输一种类型的数据包,即只传输编码包,所以可以不通过指示信息来指示传输的数据包是原数据包还是编码包。也就是说,本申请实施例中编码包包头中可以不包括O/C字段。Optionally, each second data packet (ie, an encoded packet) includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded). The coding packet header includes a coding factor field (such as a Coeff ID field), which is used to indicate the row index of the codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like. Because the submatrix formed by the first N rows in the coding coefficient matrix is a unit matrix, the Coeff ID field carried in the coding packet header of the first N coding packets indicates a row in the unit matrix, that is, the first N The Coeff ID field in the encoded packet header of the encoded packet indicates that only one element of the row vector is 1, and the other elements are 0. It should be understood that, because only one type of data packet is transmitted in this embodiment of the present application, that is, only encoded packet is transmitted, the indication information may not be used to indicate whether the transmitted data packet is an original data packet or an encoded packet. That is to say, in the embodiment of the present application, the O/C field may not be included in the encoded packet header.
可选的,虽然每个编码包都包括编码包包头和编码数据,但因为编码系数矩阵中前N行构成的子矩阵是单位阵,后M-N行构成的子矩阵包括码本中的一行或多行(这里的码本可以是范德蒙码本、柯西码本、随机码本等),所以编码数据可以理解为两类,一类是只包含单个原数据包的信息,另一类是融合了多个原数据包的信息。相应地,本申请实施例中的M个编码包(即第二数据包)也可以理解为两类,分别为第一类编码包和第二类编码包。第一类编码包的编码系数子矩阵是单位阵,第二类编码包的编码系数子矩阵是非单位阵,故M个编码包(即第二数据包)包括N个第一类编码包和M-N个第二类编码包。其中,第一类编码包的编码系数子矩阵和第二类编码包的编码系数子矩阵形成一个编码系数矩阵,该编码系数矩阵用于对N个第一数据包进行编码。Optionally, although each encoding packet includes an encoding packet header and encoding data, because the submatrix formed by the first N rows in the encoding coefficient matrix is an identity matrix, the submatrix formed by the last M-N rows includes one or more rows in the codebook. line (the codebook here can be Vandermonde codebook, Cauchy codebook, random codebook, etc.), so the encoded data can be understood as two types, one is the information that only contains a single original data packet, and the other is fused Information about multiple original packets. Correspondingly, the M encoding packets (that is, the second data packets) in the embodiments of the present application can also be understood as two types, which are the encoding packets of the first type and the encoding packets of the second type. The coding coefficient sub-matrix of the first type of coding packet is an identity matrix, and the coding coefficient sub-matrix of the second type of coding packet is a non-unitary matrix, so the M coding packets (that is, the second data packets) include N first-type coding packets and M-N A second-class encoding package. Wherein, the coding coefficient sub-matrix of the first type of coding packet and the coding coefficient sub-matrix of the second type of coding packet form a coding coefficient matrix, and the coding coefficient matrix is used for coding the N first data packets.
可选的,在本申请实施例中,由于第一设备对原数据包(即第一数据包)进一步添加了编码包包头来保证传输的所有数据包的大小一致,所以原数据包(即第一数据包)的包头中可以省去O/C字段、Type字段、Packet ID字段、Block ID字段中的部分或全部,通过其他字段指示分割和级联信息;而编码包包头的实现方式可以参考前述实施例一中实现方式2.1和实现方式2.2,此处不再赘述。换句话说,原数据包(即第一数据包)中包头携带的分割和级 联信息可参考前述实施例一中实现方式1.1至实现方式1.4的相应描述,此处不再赘述。Optionally, in this embodiment of the present application, since the first device further adds an encoded packet header to the original data packet (that is, the first data packet) to ensure that the sizes of all transmitted data packets are consistent, the original data packet (that is, the first data packet) Part or all of the O/C field, Type field, Packet ID field, and Block ID field can be omitted from the header of a data packet), and the segmentation and concatenation information can be indicated by other fields; and the implementation of the encoded packet header can refer to Implementation mode 2.1 and implementation mode 2.2 in the foregoing embodiment 1 will not be repeated here. In other words, for the segmentation and concatenation information carried in the header of the original data packet (i.e., the first data packet), reference may be made to the corresponding descriptions of implementation modes 1.1 to 1.4 in the foregoing embodiment 1, and details are not repeated here.
示例性的,参见图19,图19是本申请实施例提供的第一数据包的包头和编码包包头的示意图。如图19所示,编码包包头(图19中的NC_Header)采用实现方式2.2的格式,其包括Coeff ID字段和Block ID字段;可选的包括O/C字段,Type字段以及Packet ID字段。其中,图19中的O/C字段用于表示该O/C字段所在的数据包中的数据是原数据包(即上述第一数据包)还是编码数据。第一数据包的包头(图19中的Header)包括分割和级联信息,该分割和级联信息可由S_start字段和/或S_end字段、一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段携带。应理解,图19仅是示例,编码包包头还可以采用实现方式2.1的格式,第一数据包中包头包括的分割和级联信息还可以由其他字段携带,具体参考前述实施一中实现方式1.1至实现方式1.4的相应描述。还应理解,图19所示各个字段的含义可参考前述实施例一中的描述,此处不再赘述。其中,图19中的Data表示第一数据包的数据(或原数据),Pkt表示第一数据包(原数据包),EData表示编码数据,EPkt表示编码包。For example, refer to FIG. 19 , which is a schematic diagram of a packet header and an encoded packet header of a first data packet provided by an embodiment of the present application. As shown in Figure 19, the coded packet header (NC_Header in Figure 19) adopts the format of implementation 2.2, which includes the Coeff ID field and the Block ID field; optionally, it includes the O/C field, the Type field and the Packet ID field. The O/C field in FIG. 19 is used to indicate whether the data in the data packet in which the O/C field is located is the original data packet (ie, the above-mentioned first data packet) or encoded data. The header of the first data packet (Header in FIG. 19 ) includes segmentation and concatenation information, which can be defined by the S_start field and/or the S_end field, one or more extension bits (denoted as E) fields , and one or more length (length, L) fields are carried. It should be understood that Fig. 19 is only an example, the encoded packet header can also adopt the format of implementation 2.1, and the segmentation and concatenation information included in the header in the first data packet can also be carried by other fields. For details, refer to implementation 1.1 in the aforementioned implementation 1. To the corresponding description of Implementation 1.4. It should also be understood that for the meanings of the fields shown in FIG. 19 , reference may be made to the description in the foregoing Embodiment 1, and details are not repeated here. Wherein, Data in FIG. 19 represents the data (or original data) of the first data packet, Pkt represents the first data packet (original data packet), EData represents the encoded data, and EPkt represents the encoded packet.
可见,本申请实施例通过两层头信息(即NC_Header和Header)来封装原数据包,很好地包含了分割和级联信息。另外,由于中间会对一层头信息(即Header)的原数据包进行编码,因此两层头信息的添加是分步完成的,不能一次性完成。It can be seen that, in the embodiment of the present application, the original data packet is encapsulated by using two layers of header information (ie, NC_Header and Header), which well includes segmentation and concatenation information. In addition, since the original data packet of one layer of header information (ie Header) is encoded in the middle, the addition of two layers of header information is completed in steps and cannot be completed at one time.
可选的,虽然第一设备传输了M(M>N)个第二数据包(即编码包),但因为干扰、噪声等因素,第一设备传输的数据包不一定都能被第二设备正确接收,也就是说,在传输过程中可能发生丢包的情况。所以,当第二设备接收到至少N个正确且线性无关的数据包时,才能正确译码并恢复出N个第一数据包(即原数据包)。下述步骤S204至步骤S206将详细介绍译码端的数据传输流程。Optionally, although the first device transmits M (M>N) second data packets (that is, encoded packets), due to factors such as interference, noise, etc., the data packets transmitted by the first device may not all be transmitted by the second device. Correct reception, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and restore the N first data packets (ie, the original data packets). The following steps S204 to S206 will introduce the data transmission process of the decoding end in detail.
S204,第二设备获取P个数据包,该P个数据包均是编码包,每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段。S204, the second device acquires P data packets, where the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field.
S205,第二设备对该P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的大小相等,每个第一数据包包括包头和数据,每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。S205, the second device decodes the P data packets, and obtains N first data packets after decoding, the N first data packets are equal in size, and each first data packet includes a packet header and data, and each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, and the segmentation and concatenation information is used to indicate the data of the first data packet and the at least one data unit. corresponding relationship.
S206,第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。S206, the second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
可选的,第二设备接收到P个数据包,或从存储空间(如buffer)中读取到P个数据包,这P个数据包均是编码包。P、N、M均为正整数,P大于或等于N且小于或等于M,即N≤P≤M。可见,当P等于N时,可以减少冗余开销。应理解,第二设备可以一次性接收到P个数据包,将其按序存储到存储空间中;也可以分多次接收,将每次接收到的数据包按序存储在存储空间中。在接收到的数据包个数等于P后,可执行译码操作,即步骤S205。Optionally, the second device receives P data packets, or reads P data packets from a storage space (eg, buffer), and the P data packets are all encoded packets. P, N, and M are all positive integers, and P is greater than or equal to N and less than or equal to M, that is, N≤P≤M. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S205.
可选的,第二设备采用编码包的解析方式解析P个数据包中每个数据包的编码包包头,获得编码因子字段(即Coeff ID字段),再利用这P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵。该系数因子矩阵的秩(rank)等于N。第二设备去除该P个数据包的编码包包头,得到P个编码数据,采用该系数因子矩阵对这P个编码数据进行译码,获得译码后的N个第一数据包。每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,该分割和级联信息用于指示该第一数据包的数据与该至少一个 数据单元的对应关系。第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将这N个第一数据包的数据还原成至少一个数据单元。Optionally, the second device parses the encoded packet header of each data packet in the P data packets by using the analysis method of the encoded packet, obtains the encoding factor field (that is, the Coeff ID field), and then uses the encoded packet header of the P data packets. The indications of the coded factor fields in form the coefficient factor matrix. The rank of the coefficient factor matrix is equal to N. The second device removes the encoded packet headers of the P data packets to obtain P encoded data, uses the coefficient factor matrix to decode the P encoded data, and obtains decoded N first data packets. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet, where the segmentation and concatenation information is used to indicate the data of the first data packet and the at least one data unit Unit correspondence. The second device restores the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets.
可选的,译码端(即第二设备)可能译码成功,也可能译码失败,所以针对译码成功和译码失败这两种情况分别设计反馈消息。该反馈消息的具体实现方式可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the decoding end (ie, the second device) may succeed in decoding, or may fail in decoding, so feedback messages are separately designed for the two cases of decoding success and decoding failure. For the specific implementation manner of the feedback message, reference may be made to the corresponding description in the foregoing Embodiment 1, which will not be repeated here.
可选的,由于本申请实施例中只传输编码包,所以本申请实施例可以只对编码包进行编号。此时,只需保证编码包的序列号顺序编号即可,比如编码包的序列号顺序递增。Optionally, since only encoding packets are transmitted in this embodiment of the present application, only encoding packets may be numbered in this embodiment of the present application. In this case, it is only necessary to ensure that the serial numbers of the encoded packets are sequentially numbered, for example, the serial numbers of the encoded packets are sequentially numbered.
可选的,基站可通过RRC消息或者MAC CE消息指示UE上行传输的编码策略。该RRC消息或MAC CE消息可以指示UE的编码方式,或者指示不同的编码方案。Optionally, the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message. The RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
可见,本申请实施例通过对原数据包进一步添加编码包包头,来保证编码端(即第一设备)传输的数据包的大小相等。本申请实施例可以在物理层传输块(transport block,TB)大小为数据包整数倍的情况下,有利于分别识别出每个数据包的位置,并有利于通过循环冗余校验(cyclic redundancy check,CRC)判断每个数据包是否正确,如果正确即可向上层递交,最大化网络编码的效率和性能。It can be seen that, in the embodiment of the present application, the encoding packet header is further added to the original data packet to ensure that the data packets transmitted by the encoding end (ie, the first device) are of equal size. In the embodiment of the present application, when the size of the physical layer transport block (TB) is an integer multiple of the data packet, it is beneficial to identify the location of each data packet and to pass the cyclic redundancy check (cyclic redundancy check). check, CRC) to determine whether each data packet is correct, and if it is correct, it can be submitted to the upper layer to maximize the efficiency and performance of network coding.
实施例三 Embodiment 3
本申请实施例三主要介绍在NR协议中引入网络编码的又一种可能的数据传输方法,该方法既传输原数据包也传输编码包,并且介绍在PDU/SDU进行级联操作和等大小分割后,如何进行网络编码和数据传输、以及如何设计包头。The third embodiment of the present application mainly introduces another possible data transmission method that introduces network coding in the NR protocol. This method transmits both the original data packet and the encoded packet, and introduces the cascading operation and equal-size segmentation in the PDU/SDU. Then, how to perform network coding and data transmission, and how to design packet headers.
应理解,本申请实施例三与前述实施例一和前述实施例二在流程上的区别是:本申请实施例三先将多个PDU/SDU进行级联,然后在等大小分割,得到的原数据(即原数据包的数据)等大小;而前述实施例一和前述实施例二是直接对一个或多个PDU/SDU进行非等大小分割和级联操作,其得到的原数据(即原数据包的数据)不一定等大小。It should be understood that the difference in the process between the third embodiment of the present application and the foregoing first and second embodiments is that: the third embodiment of the present application firstly concatenates multiple PDUs/SDUs, and then divides them into equal sizes to obtain the original The size of the data (that is, the data of the original data packet) is equal; while the foregoing Embodiment 1 and the foregoing Embodiment 2 directly perform unequal size segmentation and concatenation operations on one or more PDUs/SDUs, and the obtained original data (that is, the original packet data) are not necessarily equal in size.
参见图20,图20是本申请实施例提供的数据传输方法的第三种示意流程图。如图20所示,该数据传输方法包括但不限于以下步骤:Referring to FIG. 20, FIG. 20 is a third schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 20, the data transmission method includes but is not limited to the following steps:
S301,第一设备获取级联数据包,该级联数据包包括级联包包头和级联数据,该级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元,该级联包包头包括该级联数据包括的多个数据单元的级联信息。S301, the first device acquires a concatenated data packet, where the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein a start data segment and an end data segment At least one of the data segments is all or part of a data unit, each data segment except the start data segment and the end data segment in the plurality of data segments is a data unit, and the concatenated packet header includes The concatenated data includes The concatenation information of multiple data units.
S302,第一设备根据该级联数据包生成N个第一数据包,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等,该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据,每个第一数据包包括包头和数据,每个第一数据包的包头包括该第一数据包的序列号。S302, the first device generates N first data packets according to the concatenated data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, and the N first data packets are equal in size. The data of the j-th first data packet in the packet is the j-th data obtained after the concatenated data packet is divided into N equal parts, each first data packet includes a packet header and data, and the packet header of each first data packet includes the The sequence number of the first packet.
S303,第一设备传输该N个第一数据包。S303, the first device transmits the N first data packets.
S304,第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包。S304, the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets.
S305,第一设备传输该M个第二数据包。S305, the first device transmits the M second data packets.
可选的,本申请实施例中的第一数据包可以称为原数据包,第二数据包可以称为编码包。原数据包可以理解为未经过网络编码的数据包,编码包可以理解为经过网络编码后的数据包。本申请实施例中的数据单元是PDU或SDU。Optionally, the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet. The original data packet can be understood as a data packet without network encoding, and the encoded packet can be understood as a data packet after network encoding. The data unit in this embodiment of the present application is a PDU or an SDU.
可选的,第一设备获取级联数据包的方式有两种。一种实现方式中,第一设备对多个PDU/SDU的部分或全部进行级联,并添加级联包包头,保证得到的级联数据包的大小是原数 据大小的整数倍,具体可以是N倍,N是正整数。第一设备在得到级联数据包后,对该级联数据包进行等大小分割,分成N份数据,并对该N份数据中的每份数据添加包头,得到第一数据包(即原数据包)。其中,级联包包头既可以位于级联数据的第一个比特之前,也可以位于级联数据的最后一个比特之后。也就是说,级联包包头既可以放在级联数据包的头部,也可以放在级联数据包的尾部。Optionally, there are two ways for the first device to obtain the concatenated data packet. In an implementation manner, the first device concatenates part or all of multiple PDUs/SDUs, and adds concatenated packet headers to ensure that the size of the concatenated data packets obtained is an integer multiple of the original data size, which may be specifically: N times, where N is a positive integer. After obtaining the concatenated data packet, the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag). The header of the concatenated packet may be located either before the first bit of the concatenated data, or after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet.
针对级联包包头位于级联数据的最后一个比特后的情况,也就是说,级联包包头位于最后一个第一数据包中,上述步骤S304还可以为:第一设备每获得一个PDU/SDU,就判断该PDU/SDU的大小是否大于或等于原数据大小。如果该PDU/SDU的大小大于或等于原数据大小,则直接将该PDU/SDU按照原数据大小进行分割,得到一个原数据,再对原数据添加包头,得到第一数据包(即原数据包)。如果该PDU/SDU被分割后的剩余部分大小小于原数据大小,则当第一设备获得下一个PDU/SDU后,将该PDU/SDU被分割后的剩余部分与下一个PDU/SDU进行级联,然后再按照原数据大小进行分割,得到另一个原数据,再对该另一个原数据添加包头,得到第一数据包(即原数据包);依次类推。如果该PDU/SDU被分割后的剩余部分大小大于或等于小于原数据大小,则再次对该PDU/SDU被分割后的剩余部分按照原数据大小进行分割,直到该PDU/SDU经过一次或多次分割后的剩余部分大小小于原数据大小为止。一次分割可以得到一个原数据,对一个原数据添加包头可得到一个第一数据包。如果该PDU/SDU的大小小于原数据大小,则第一设备等待下一个PDU/SDU,在获得下一个PDU/SDU后,将该PDU/SDU与该下一个PDU/SDU进行级联,然后判断级联后的PDU/SDU的大小是否大于或等于原数据大小。如果级联后的PDU/SDU的大小大于或等于原数据大小,则第一设备将该级联后的PDU/SDU按照原数据大小进行分割,得到一个原数据,再对原数据添加包头,得到第一数据包(即原数据包)。如果级联后的PDU/SDU的大小小于原数据大小,则第一设备等待第三个PDU/SDU,然后在获得第三个PDU/SDU后,将该级联后的PDU/SDU与第三个PDU/SDU进行级联,直到经过一次或多次级联后的PDU/SDU的大小大于或等于原数据大小为止。也就是说,第一设备可以将级联和分割操作并行/同时执行。For the case where the header of the concatenated packet is located after the last bit of the concatenated data, that is, the header of the concatenated packet is located in the last first data packet, the above step S304 may also be: every time the first device obtains a PDU/SDU , it is judged whether the size of the PDU/SDU is greater than or equal to the original data size. If the size of the PDU/SDU is greater than or equal to the size of the original data, directly divide the PDU/SDU according to the size of the original data to obtain an original data, and then add a header to the original data to obtain the first data packet (that is, the original data packet). ). If the size of the remainder of the segmented PDU/SDU is smaller than the original data size, after the first device obtains the next PDU/SDU, the remainder of the segmented PDU/SDU is concatenated with the next PDU/SDU , and then divide according to the size of the original data to obtain another original data, and then add a packet header to the other original data to obtain the first data packet (ie, the original data packet); and so on. If the size of the remaining part after the PDU/SDU is divided is greater than or equal to less than the size of the original data, the remaining part after the PDU/SDU is divided is divided again according to the size of the original data, until the PDU/SDU passes through one or more times The size of the remaining part after division is smaller than the original data size. One original data can be obtained by one division, and a first data packet can be obtained by adding a packet header to one original data. If the size of the PDU/SDU is smaller than the original data size, the first device waits for the next PDU/SDU, and after obtaining the next PDU/SDU, concatenates the PDU/SDU with the next PDU/SDU, and then judges Whether the size of the concatenated PDU/SDU is greater than or equal to the original data size. If the size of the concatenated PDU/SDU is greater than or equal to the original data size, the first device divides the concatenated PDU/SDU according to the original data size to obtain an original data, and then adds a packet header to the original data to obtain The first data packet (ie, the original data packet). If the size of the concatenated PDU/SDU is smaller than the original data size, the first device waits for the third PDU/SDU, and after obtaining the third PDU/SDU, combines the concatenated PDU/SDU with the third PDU/SDU Each PDU/SDU is concatenated until the size of the PDU/SDU after one or more concatenations is greater than or equal to the original data size. That is, the first device can perform the concatenation and splitting operations in parallel/simultaneously.
其中,原数据大小可以半静态配置,或者可以半静态配置编码包大小和N(N是网络编码所需的数据包个数(即数据块大小)或者说计划编码的数据包个数)。原数据包的包头大小固定,则可以基于编码包大小、原数据包的包头大小、以及N,计算出原数据大小(原数据大小=编码包大小-原数据包的包头大小)和级联数据包的大小(级联数据包的大小=N*原数据大小)。The original data size can be semi-statically configured, or the encoding packet size and N can be semi-statically configured (N is the number of data packets required for network coding (ie data block size) or the number of data packets planned to be encoded). If the header size of the original data packet is fixed, the original data size (original data size = encoded packet size - original data packet header size) and concatenated data can be calculated based on the encoded packet size, the original data packet header size, and N. The size of the packet (the size of the concatenated data packet=N*the original data size).
另一种实现方式中,第一设备对多个PDU/SDU的全部进行级联,并添加填充(padding)比特和级联包包头,保证得到的级联数据包的大小是原数据大小的整数倍,具体可以是N倍,N是正整数。换句话说,此实现方式中级联的PDU/SDU是完整的,边界的PDU/SDU不会被分割,而是通过填充比特的方式来补充缺少的bit数,从而构成一个级联数据,并通过对级联数据加级联包包头,获得一个包括级联包包头的级联数据包。也就是说,此种实现方式下的级联数据包括多个PDU/SDU以及填充比特。第一设备在得到级联数据包后,对该级联数据包进行等大小分割,分成N份数据,并对该N份数据中的每份数据添加包头,得到第一数据包(即原数据包)。第一设备在得到级联数据包后,对该级联数据包进行等大小分割,分成N份数据,并对该N份数据中的每份数据添加包头,得到第一数据包(即原数据包)。其中,级联包包头既可以位于级联数据的第一个比特之前,也可以位于级联数据的最后一个比特之后。也就是说,级联包包头既可以放在级联数据包的头部,也可以放在级联数据包的尾部。In another implementation manner, the first device concatenates all of the multiple PDUs/SDUs, and adds padding bits and concatenated packet headers to ensure that the size of the concatenated data packets obtained is an integer of the original data size times, specifically N times, where N is a positive integer. In other words, the concatenated PDUs/SDUs in this implementation are complete, and the boundary PDUs/SDUs will not be divided, but the missing bits are supplemented by filling bits to form a concatenated data and A concatenated data packet including a concatenated packet header is obtained by adding a concatenated packet header to the concatenated data. That is, the concatenated data in this implementation includes multiple PDUs/SDUs and padding bits. After obtaining the concatenated data packet, the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag). After obtaining the concatenated data packet, the first device divides the concatenated data packet into equal sizes, divides it into N pieces of data, and adds a packet header to each of the N pieces of data to obtain the first data packet (that is, the original data). Bag). The header of the concatenated packet may be located either before the first bit of the concatenated data, or after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet.
针对级联包包头位于级联数据的最后一个比特后的情况,也就是说,级联包包头位于最 后一个第一数据包中,上述步骤S304中第一设备也可以将级联和分割操作并行/同时执行。与前述实现方式不同之处在于:当第一设备获得N-1个第一数据包后,在确定第N个原数据时,该第N个原数据中包括一个PDU/SDU的全部或部分、和填充比特、以及级联包包头。也就是说,边界的PDU/SDU不会被分割,而是通过填充比特的方式来补充缺少的bit数。其中,原数据是指原数据包中的数据。For the case where the header of the concatenated packet is located after the last bit of the concatenated data, that is, the header of the concatenated packet is located in the last first data packet, in the above step S304, the first device may also perform the concatenation and division operations in parallel / execute simultaneously. The difference from the foregoing implementation is that: after the first device obtains N-1 first data packets, when determining the Nth original data, the Nth original data includes all or part of a PDU/SDU, and padding bits, and concatenated packet headers. That is to say, the PDU/SDU at the boundary will not be divided, but the missing bits will be supplemented by filling bits. The original data refers to the data in the original data package.
可选的,为了降低时延,第一设备可以每得到一个第一数据包就传输该第一数据包,并将该第一数据包缓存在存储器(这里的存储器是指存储空间,如缓存)中。N份数据添加包头后可得到N个第一数据包,每个第一数据包包括包头和数据,这N个第一数据包的数据大小相等,且这N个第一数据包的包头大小也相等。这N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据,j的取值为区间[1,N]中的整数。也就是说,该级联数据包经过N等分后得到的第1份数据至第N份数据分别添加包头后,得到第1个第一数据包至第N个第一数据包。当该存储器中的第一数据包的个数达到网络编码所需的数据包个数(本申请实施例假设网络编码所需的数据包个数,即数据块大小为N)时,再对该存储器中缓存的N个第一数据包进行网络编码,生成M个编码数据。其中这M个编码数据的大小相等,并且任一个编码数据的大小与任一个第一数据包的大小也相等。第一设备对每个编码数据加编码包包头,得到第二数据包(即编码包),并传输该第二数据包。M个编码数据加编码包包头后可得到M个第二数据包(即编码包)。其中,本申请对网络编码的方式不做限定。N和M均为正整数,且M和N的大小关系不做限定,即M可以小于N,也可以大于N,还可以等于N。Optionally, in order to reduce the delay, the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in the memory (the memory here refers to a storage space, such as a cache) middle. After adding the header to the N pieces of data, N first data packets can be obtained. Each first data packet includes a header and data. The data size of the N first data packets is equal, and the header size of the N first data packets is also the same. equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packet is divided into N equal parts, and the value of j is an integer in the interval [1, N]. That is, the first to Nth pieces of data obtained after the concatenated data packets are divided into N equal parts are respectively added with headers to obtain the first to Nth first data packets. When the number of the first data packets in the memory reaches the number of data packets required for network coding (this embodiment of the present application assumes the number of data packets required for network coding, that is, the data block size is N), the The N first data packets buffered in the memory are network encoded to generate M encoded data. The sizes of the M encoded data are equal, and the size of any one of the encoded data is also equal to the size of any one of the first data packets. The first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet. After the M encoded data is added to the encoded packet header, M second data packets (ie, encoded packets) can be obtained. Wherein, the present application does not limit the manner of network coding. Both N and M are positive integers, and the size relationship between M and N is not limited, that is, M may be less than N, may be greater than N, and may also be equal to N.
可见,第二数据包(即编码包)比第一数据包(即原数据包)多一个编码包包头,即编码包的编码数据和原数据包大小相等,也就是说,本申请实施例传输的编码包(即第二数据包)和原数据包(即第一数据包)不等大小,一定程度上节约了原数据包的包头开销。It can be seen that the second data packet (that is, the encoded packet) has one more encoded packet header than the first data packet (that is, the original data packet), that is, the encoded data of the encoded packet is equal to the size of the original data packet, that is, the transmission in the embodiment of the present application is The size of the encoded packet (that is, the second data packet) and the original data packet (that is, the first data packet) are not equal, which saves the header overhead of the original data packet to a certain extent.
可选的,本申请实施例对上述步骤S303和上述步骤S304的执行顺序不做限定。比如上述步骤S303既可以在上述步骤S304之前执行,也可以在上述步骤S304之后执行,还可以与上述步骤S304同时/并行执行。Optionally, this embodiment of the present application does not limit the execution order of the foregoing step S303 and the foregoing step S304. For example, the above-mentioned step S303 may be performed before the above-mentioned step S304, or may be performed after the above-mentioned step S304, and may also be performed at the same time/parallel with the above-mentioned step S304.
可选的,上述级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元(即PDU/SDU)的全部或部分,该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个完整的数据单元(即PDU/SDU)。因为该级联数据对应的多个数据单元中第一个数据单元(如,序列号最小的数据单元)不一定放在该级联数据的起始位置,同理,最后一个数据单元(如,序列号最大的数据单元)也不一定放在该级联数据的末尾位置;具体放置位置,只要发端(或编码端,或第一设备)和收端(或译码端,或第二设备)双方均知晓即可,具体可通过协议预定义,或是,发端知会收端等方式,具体不予限定。所以,起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,多个数据段中除起始数据段和末尾数据段外的每个数据段是一个完整的数据单元,可以理解为:该级联数据对应的多个数据单元中除序列号最小和序列号最大的数据单元外的每个数据单元都是完整的。序列号最小的数据单元和序列号最大的数据单元是否完整需根据实际情况判断。Optionally, the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the start data segment and the end data segment is the whole or part of a data unit (ie, PDU/SDU), except for the multiple data segments Each data segment other than the start data segment and the end data segment is a complete data unit (ie, PDU/SDU). Because the first data unit (for example, the data unit with the smallest serial number) in the multiple data units corresponding to the concatenated data is not necessarily placed at the starting position of the concatenated data, similarly, the last data unit (for example, The data unit with the largest serial number) is not necessarily placed at the end of the concatenated data; the specific placement position is as long as the sending end (or the encoding end, or the first device) and the receiving end (or the decoding end, or the second device) It is sufficient that both parties know, and the specifics can be pre-defined in the agreement, or the originating end informs the receiving end, etc., which is not limited in detail. Therefore, at least one of the start data segment and the end data segment is all or part of a data unit, and each data segment in the multiple data segments except the start data segment and the end data segment is a complete data unit, It can be understood that each data unit except the data unit with the smallest serial number and the largest serial number among the multiple data units corresponding to the concatenated data is complete. Whether the data unit with the smallest serial number and the data unit with the largest serial number are complete needs to be judged according to the actual situation.
可选的,上述级联数据包的级联包包头包括该级联数据包括的多个数据单元(即PDU/SDU)的级联信息。其中,针对级联数据包括多个完整的PDU/SDU以及填充比特的情况,可以在级联包包头中引入一个字段,来指示填充信息(比如填充比特的长度)。如果已知级联包包头的大小、每个完整PDU/SDU的大小、以及原数据大小,网络编码所需的数据包 个数(N)半静态配置,则可以推算出填充比特的长度,此时可以不在级联包包头中引入字段来指示填充信息。Optionally, the concatenation packet header of the above-mentioned concatenated data packet includes concatenation information of multiple data units (ie, PDU/SDU) included in the concatenated data. Wherein, for the case where the concatenated data includes multiple complete PDUs/SDUs and padding bits, a field may be introduced into the header of the concatenated packet to indicate padding information (such as the length of padding bits). If the size of the concatenated packet header, the size of each complete PDU/SDU, and the original data size are known, and the number of data packets (N) required for network coding is semi-statically configured, the length of the padding bits can be calculated. When it is necessary to not introduce a field in the header of the concatenated packet to indicate the padding information.
可选的,上述步骤S301至步骤S305可以由第一设备中单独的NC功能子层实现,也可以由具有NC功能的层实现,具体可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the above steps S301 to S305 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer with NC functions. For details, please refer to the corresponding description in the foregoing Embodiment 1, which is not repeated here. Repeat.
可选的,为更好地理解上述步骤S301至上述步骤S305所述的流程,下面以两个示例来说明上述步骤S301至上述步骤S305所示的编码端数据传输流程。Optionally, in order to better understand the processes described in the above steps S301 to S305, the following two examples are used to describe the data transmission process at the encoding end shown in the above steps S301 to S305.
示例性的,参见图21,图21是本申请实施例提供的编码端数据传输流程的第三种示意图。如图21所示,以NC功能子层位于PDCP层和RLC层之间为例。假设NC功能子层依次接收到PDCP PDU1~5。编码端(即第一设备)根据原数据大小和计划编码的数据包个数(即N),对PDCP PDU1、PDCP PDU2等依次级联,直到满足编码的长度需求(即满足N乘以原数据大小的值减去级联包包头的大小)。这里通过取PDCP PDU5的一部分联合PDCP PDU1~4级联构成级联数据,并通过加级联包包头(如图21中的H),构成级联数据包。从而保证得到的级联数据包的大小为原数据大小的整数倍。编码端(即第一设备)再按照原数据大小对级联数据包进行等大小分割,获得若干个原数据(如图21中的Data1~Data5)。编码端(即第一设备)再对获得的每个原数据添加原数据包包头(如图21中的Header),获得包括包头的原数据包(如图21中的Pkt1~Pkt5);一方面将原数据包作为NC功能子层的NC PDU直接传输至下一层,另一方面将原数据包缓存在NC功能子层的编码器的缓存区(buffer)中。当buffer中的原数据包达到编码器所需的数据包个数时,假设编码器所需的数据包个数为5,然后将buffer中的5个原数据包进行网络编码生成编码数据EData1和EData2。应理解,对5个原数据包进行网络编码生成的编码数据的个数可以小于或等于原数据包的个数,也可以大于原数据包的个数。对每个编码数据添加编码包包头(如图21中的NC_Header),得到编码包(如图21中的EPkt1和EPkt2)并作为NC功能子层的PDU进行发送。应理解,发送编码包时可以只发送得到的部分编码包(比如发送EPkt1,不发送EPkt2),也可以发送得到的全部编码包。For example, refer to FIG. 21 , which is a third schematic diagram of a data transmission process at an encoding end provided by an embodiment of the present application. As shown in FIG. 21 , it is taken as an example that the NC functional sublayer is located between the PDCP layer and the RLC layer. It is assumed that the NC functional sublayer receives PDCP PDUs 1 to 5 in sequence. The encoding end (that is, the first device) cascades PDCP PDU1, PDCP PDU2, etc. in turn according to the original data size and the number of data packets to be encoded (that is, N), until the length requirement of the encoding is satisfied (that is, N times the original data is satisfied. size value minus the size of the concatenated packet header). Here, concatenated data is formed by taking a part of PDCP PDU5 and concatenating PDCP PDUs 1 to 4, and by adding a concatenated packet header (H in Figure 21), a concatenated data packet is formed. Therefore, the size of the obtained concatenated data packet is guaranteed to be an integer multiple of the original data size. The encoding end (ie, the first device) then divides the concatenated data packets into equal sizes according to the size of the original data to obtain several pieces of original data (Data1 to Data5 in FIG. 21 ). The encoding end (ie, the first device) adds an original data packet header (as shown in Figure 21 Header) to each obtained original data, and obtains an original data packet including the packet header (as shown in Figure 21 as Pkt1 to Pkt5); on the one hand The original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand, the original data packet is buffered in the buffer of the encoder of the NC functional sublayer. When the original data packets in the buffer reach the number of data packets required by the encoder, assume that the number of data packets required by the encoder is 5, and then perform network coding on the 5 original data packets in the buffer to generate encoded data EData1 and EData2. It should be understood that the number of encoded data generated by performing network coding on five original data packets may be less than or equal to the number of original data packets, or may be greater than the number of original data packets. Add a coded packet header (such as NC_Header in Figure 21) to each coded data to obtain a coded packet (such as EPkt1 and EPkt2 in Figure 21) and send it as a PDU of the NC functional sublayer. It should be understood that when sending the coded packet, only a part of the obtained coded packet may be sent (for example, EPkt1 is sent, and EPkt2 is not sent), or all the obtained coded packets may be sent.
其中,级联包包头既可以位于级联数据的第一个bit之前,也可以位于级联数据的最后一个bit之后。也就是说,级联包包头既可以放在级联数据包的头部,也可以放在级联数据包的尾部。图21示出了级联包包头位于级联数据包头部的情况,相应地,译码端(或收端、或第二设备)可以对一个级联数据包,从左侧包头的第一个比特开始解析。The header of the concatenated packet can either be located before the first bit of the concatenated data, or can be located after the last bit of the concatenated data. That is to say, the concatenated packet header can be placed either at the head of the concatenated data packet or at the tail of the concatenated data packet. Figure 21 shows the case where the header of the concatenated packet is located at the header of the concatenated data packet. Correspondingly, the decoding end (or the receiving end, or the second device) may, for a concatenated data packet, start from the first Bits start parsing.
参见图22,图22是本申请实施例提供的级联数据包中级联包包头的位置示意图。如图22所示,级联数据位于级联包包头之前,译码端(或收端、或第二设备)通过反向解析级联包包头,可以更好地保证实时性。具体地,编码端(即第一设备)根据原数据大小和计划编码的数据包个数(即N),对PDCP PDU1、PDCP PDU2等依次级联,同时更新级联包包头(如图22中的H)中的信息。当级联到最后一个PDCP PDU(如图22中PDCP PDU5)时,结合级联包包头(如图22中的H)的大小,同步确定最后一个级联的PDCP PDU大小(如图22中PDCP PDU5的部分),最后级联构成一个级联数据包。该级联数据包的大小是原数据大小的整数倍。相应地,译码端(或收端、或第二设备)可以对级联数据包的末尾(即级联包包头H)进行解析,其中级联包包头H的数据是从级联数据包最后1bit开始反向解析。Referring to FIG. 22 , FIG. 22 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet provided by an embodiment of the present application. As shown in Figure 22, the concatenated data is located before the concatenated packet header, and the decoding end (or the receiving end, or the second device) reversely parses the concatenated packet header to better ensure real-time performance. Specifically, the encoding end (ie, the first device) cascades PDCP PDU1, PDCP PDU2, etc. in turn according to the original data size and the number of data packets to be encoded (ie, N), and updates the concatenated packet header (as shown in Figure 22). information in H). When concatenating to the last PDCP PDU (as in PDCP PDU5 in Figure 22), the size of the last concatenated PDCP PDU (as in PDCP in Figure 22) is determined synchronously in combination with the size of the concatenated packet header (as in H in Figure 22). part of PDU5), and finally concatenate to form a concatenated data packet. The size of the concatenated data packet is an integer multiple of the original data size. Correspondingly, the decoding end (or the receiving end, or the second device) can parse the end of the concatenated data packet (that is, the concatenated packet header H), wherein the data of the concatenated packet header H is from the end of the concatenated data packet. 1bit starts reverse parsing.
示例性的,参见图23,图23是本申请实施例提供的编码端数据传输流程的第四种示意图。其中,图23与前述图21的主要区别在于级联设计,图23中级联的PDU/SDU是完整的(如图23中级联的PDCP PDU1~4),边界的PDU/SDU不会被分割,而缺少的bit数则通过填充比特的方式来补充(如图23中的P),获得一个级联数据,通过加级联包包头(如图23 中的H),获得一个级联数据包,其大小等于原数据大小的整数倍,其倍数可以半静态配置。应理解,图23中编码端得到级联数据包后的操作与前述图21中编码端的操作相同,此处不再赘述。同理,为了不用等待获得所有的PDU/SDU之后才进行级联和分割操作,可以将级联包包头放在级联数据包的末尾,相应地,译码端从最后1bit开始反向解析级联包包头。For example, refer to FIG. 23 , which is a fourth schematic diagram of a data transmission process at the encoding end provided by an embodiment of the present application. Among them, the main difference between Figure 23 and the aforementioned Figure 21 is the cascade design. The cascaded PDUs/SDUs in Figure 23 are complete (as shown in Figure 23, the cascaded PDCP PDUs 1 to 4), and the boundary PDUs/SDUs will not be Split, and the missing bits are supplemented by filling bits (P in Figure 23) to obtain a concatenated data, and by adding a concatenated packet header (H in Figure 23), to obtain a concatenated data The size of the packet is equal to an integer multiple of the original data size, and the multiple can be configured semi-statically. It should be understood that the operation after the encoder end obtains the concatenated data packet in FIG. 23 is the same as the operation at the encoder end in FIG. 21 described above, and will not be repeated here. Similarly, in order not to wait for all PDUs/SDUs to be obtained before concatenating and splitting, the header of the concatenated packet can be placed at the end of the concatenated data packet. Accordingly, the decoding end starts from the last 1 bit to reverse the parsing level. Packet header.
参见图24,图24是本申请实施例提供的添加填充比特的级联数据包中级联包包头的位置示意图。如图24所示,级联数据位于级联包包头之前,译码端(或收端、或第二设备)通过反向解析级联包包头,可以更好地保证实时性。具体地,编码端(即第一设备)根据原数据大小和计划编码的数据包个数(即N),对PDCP PDU1、PDCP PDU2等依次级联,同时更新级联包包头(如图24中的H)中的信息。当最后一个PDCP PDU(如图22中PDCP PDU4)级联后,结合级联包包头(如图24中的H)的大小,同步确定填充比特的大小(如图24中P),最后将填充比特添加到最后一个PDCP PDU后,并添加级联包包头(如图24中的H),构成一个级联数据包。该级联数据包的大小是原数据大小的整数倍。相应地,译码端(或收端、或第二设备)可以对级联数据包的末尾(即级联包包头H)进行解析,其中级联包包头H的数据是从级联数据包最后1bit开始反向解析。Referring to FIG. 24 , FIG. 24 is a schematic diagram of the location of a concatenated packet header in a concatenated data packet with padding bits added according to an embodiment of the present application. As shown in Figure 24, the concatenated data is located before the concatenated packet header, and the decoding end (or the receiving end, or the second device) reversely parses the concatenated packet header to better ensure real-time performance. Specifically, the encoding end (ie the first device) concatenates PDCP PDU1, PDCP PDU2, etc. in turn according to the original data size and the number of data packets to be encoded (ie N), and updates the concatenated packet header (as shown in Figure 24). information in H). When the last PDCP PDU (PDCP PDU4 in Figure 22) is concatenated, the size of the padding bit (P in Figure 24) is determined synchronously in combination with the size of the concatenated packet header (H in Figure 24), and finally the padding The bits are added after the last PDCP PDU, and the concatenated packet header (H in Figure 24) is added to form a concatenated data packet. The size of the concatenated data packet is an integer multiple of the original data size. Correspondingly, the decoding end (or the receiving end, or the second device) can parse the end of the concatenated data packet (that is, the concatenated packet header H), wherein the data of the concatenated packet header H is from the end of the concatenated data packet. 1bit starts reverse parsing.
可见,本申请实施例对多个PDU/SDU进行级联,并在边界处进行分割或填充比特,以获得一个级联数据,并添加级联包包头得到一个级联数据包,再对级联数据包进行等大小分割得到一定数量的原数据(第一数据包的数据),继而通过加包头获得原数据包,并对原数据包进行编码和加编码包包头后获得编码包,从而在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下,比如现有NR协议中,支持网络编码技术。此外,本申请实施例无需对每个原数据包都添加级联的字段指示,而是通过统一的级联包包头进行级联信息的指示,可以节省包头的开销。It can be seen that in the embodiment of the present application, multiple PDUs/SDUs are concatenated, and the boundaries are divided or filled with bits to obtain a concatenated data, and a concatenated packet header is added to obtain a concatenated data packet, and then the concatenated data is obtained. The data packet is divided into equal size to obtain a certain amount of original data (the data of the first data packet), and then the original data packet is obtained by adding the packet header, and the encoded packet is obtained after encoding the original data packet and adding the encoded packet header, so as to obtain the encoded packet without Depending on the size of the SDU or PDU, that is, the size of different SDUs or PDUs may be the same or different, such as in the existing NR protocol, network coding technology is supported. In addition, in the embodiment of the present application, it is not necessary to add concatenated field indication to each original data packet, but the concatenated information is indicated by a unified concatenated packet header, which can save the overhead of the packet header.
上述内容详细阐述了编码端的数据传输流程,为了保证译码端能够根据正确接收的原数据包和编码包恢复出PDU/SDU,下面将结合编码端的数据传输流程详细介绍级联数据包的级联包包头、第一数据包(即原数据包)的包头、以及第二数据包(即编码包)的编码包包头的实现方式。其中,级联包包头的格式可采用下述实现方式3.1至实现方式3.3中任一种,实现方式3.1至实现方式3.3也可以任一组合形成新的实现方式且所涉及概念或方案相同或相似的部分可以相互参考或组合。The above content describes the data transmission process of the encoding end in detail. In order to ensure that the decoding end can recover the PDU/SDU according to the correctly received original data packets and encoded packets, the following will combine the data transmission process of the encoding end to introduce the concatenation of concatenated data packets in detail. Implementation of the packet header, the packet header of the first data packet (ie the original data packet), and the encoded packet header of the second data packet (ie the encoded packet). The format of the concatenated packet header can be any of the following implementations 3.1 to 3.3, and implementations 3.1 to 3.3 can also be combined to form a new implementation, and the concepts or solutions involved are the same or similar The parts can be referenced to each other or combined.
实现方式3.1Implementation 3.1
可选的,上述级联数据包包括级联包包头和级联数据。该级联包包头包括该级联数据包括的多个数据单元(即PDU/SDU)的级联信息。该级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的数据段的个数(记为D num)的信息;以及指示该级联数据包括的每个数据段的长度的信息。应理解,如果级联数据包的总长度可以确定(如半静态配置)、级联包包头的长度也可以确定,则上述级联信息中可以只包括D num-1个数据段中每个数据段的长度,而不是包括D num个数据段中每个数据段的长度,剩下的一个数据段的长度可通过该级联数据包的总长度、该级联包包头的长度以及D num-1个数据段的长度计算得出。 Optionally, the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data. The concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data. The concatenation information includes: information indicating whether the data unit corresponding to the start data segment (ie the first data segment) and/or the end data segment (ie the last data segment) of the concatenated data is divided, or whether the Information on whether the data unit with the largest serial number and/or the smallest serial number in the data unit corresponding to the data segment in the concatenated data is divided; information indicating the number of data segments included in the concatenated data (denoted as D num ); and information indicating the length of each data segment included in the concatenated data. It should be understood that, if the total length of the concatenated data packets can be determined (for example, a semi-static configuration) and the length of the concatenated packet headers can also be determined, the above-mentioned concatenated information may only include each data in the D num -1 data segments. The length of the segment, instead of including the length of each of the D num data segments, the length of the remaining data segment can be determined by the total length of the concatenated packet, the length of the concatenated packet header, and D num − The length of 1 data segment is calculated.
参见图25,图25是本申请实施例提供的级联包包头的格式示意图一。如图25所示,该级联包包头包括:开始分段(Segment_start,S_start)字段和/或结束分段(Segment_end,S_end)字段,分段数(segment number,表示为Seg_N)字段,以及一个或多个长度(length,L) 字段。图25中级联包包头的各个字段的含义可参考前述实施例一中相应字段的含义,此处不再赘述。Referring to FIG. 25, FIG. 25 is a schematic diagram 1 of a format of a concatenated packet header provided by an embodiment of the present application. As shown in FIG. 25, the concatenated packet header includes: a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, a segment number (segment number, expressed as Seg_N) field, and a or multiple length (length, L) fields. For the meanings of the fields in the header of the concatenated packet in FIG. 25, reference may be made to the meanings of the corresponding fields in the foregoing first embodiment, which will not be repeated here.
可见,实现方式3.1中级联包包头内的长度字段更少,可以节省头开销。这是因为因为分割会导致更多的数据段产生,而通常数据单元的个数比数据段的个数更少,所以节省开销;此外,等长的原数据包的包头和数据比变长情况更易处理,复杂度低。It can be seen that there are fewer length fields in the header of the concatenated packet in the implementation mode 3.1, which can save header overhead. This is because splitting will result in more data segments, and usually the number of data units is less than the number of data segments, so overhead is saved; in addition, the header and data ratios of the original data packets of equal length are variable. More tractable and less complex.
实现方式3.2Implementation 3.2
可选的,上述级联数据包包括级联包包头和级联数据。该级联包包头包括该级联数据包括的多个数据单元(即PDU/SDU)的级联信息。该级联信息包括:指示该级联数据的起始数据段(即第一个数据段)和/或末尾数据段(即最后一个数据段)对应的数据单元是否被分割的信息,或者指示该级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;指示该级联数据包括的第i个数据段是否是该级联数据的最后一个数据段的信息;以及指示该第i个数据段的长度的信息。其中,i是正整数,且i的取值为1至该级联数据包括的数据段总数D num,即i为正整数且1≤i≤D numOptionally, the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data. The concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data. The concatenation information includes: information indicating whether the data unit corresponding to the start data segment (ie the first data segment) and/or the end data segment (ie the last data segment) of the concatenated data is divided, or whether the Information on whether the data unit with the largest serial number and/or the smallest serial number in the data unit corresponding to the data segment in the concatenated data is divided; indicating whether the i-th data segment included in the concatenated data is the last of the concatenated data. information of the data segment; and information indicating the length of the i-th data segment. Wherein, i is a positive integer, and the value of i ranges from 1 to the total number of data segments D num included in the concatenated data, that is, i is a positive integer and 1≤i≤D num .
参见图26a,图26a是本申请实施例提供的级联包包头的格式示意图二。参见图26a,该级联包包头包括:开始分段(Segment_start,S_start)字段和/或结束分段(Segment_end,S_end)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段。图26a的各个子字段的含义可参考前述实施例一的图10a中相同字段的描述,此处不再赘述。参见图26b,图26b是本申请实施例提供的级联包包头的格式示意图三。参见图26b,该级联包包头包括:分段信息(segment information,SI)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段。其中,图26b的各个子字段的含义可参考前述实施例一的图10b中相同字段的描述,此处不再赘述。Referring to FIG. 26a, FIG. 26a is a second schematic diagram of the format of the concatenated packet header provided by the embodiment of the present application. 26a, the concatenated packet header includes: a start segment (Segment_start, S_start) field and/or an end segment (Segment_end, S_end) field, one or more extension bits (extension bits, denoted as E) fields, and One or more length (length, L) fields. For the meaning of each subfield in FIG. 26a, reference may be made to the description of the same fields in FIG. 10a in the first embodiment, which will not be repeated here. Referring to FIG. 26b, FIG. 26b is a schematic diagram 3 of the format of the concatenated packet header provided by the embodiment of the present application. Referring to Figure 26b, the concatenated packet header includes: a segment information (segment information, SI) field, one or more extension bits (denoted as E) fields, and one or more length (length, L) fields . For the meanings of the subfields in FIG. 26b, reference may be made to the description of the same fields in FIG. 10b in the first embodiment, which will not be repeated here.
实现方式3.3Implementation 3.3
可选的,上述级联数据包包括级联包包头和级联数据。该级联包包头包括该级联数据包括的多个数据单元(即PDU/SDU)的级联信息。该级联信息包括:指示该级联数据中起始数据段是否是最后一个数据段(或者说,该级联数据中第一个数据段后是否存在下一个数据段)以及该起始数据段对应的数据单元是否完整(完整即为未被分割,不完整即为被分割)的信息;指示该级联数据包括的第i个数据段是否是该级联数据的最后一个数据段(或者说,该级联数据包括的第i个数据段后是否存在下一个数据段)的信息;以及指示第i个数据段的长度的信息。Optionally, the above-mentioned concatenated data packet includes a concatenated packet header and concatenated data. The concatenation packet header includes concatenation information of a plurality of data units (ie, PDU/SDU) included in the concatenated data. The concatenation information includes: indicating whether the start data segment in the concatenated data is the last data segment (or in other words, whether there is a next data segment after the first data segment in the concatenated data) and the start data segment Information on whether the corresponding data unit is complete (complete means not divided, incomplete means divided); indicates whether the i-th data segment included in the concatenated data is the last data segment (or in other words) of the concatenated data. , the concatenated data includes information on whether there is a next data segment after the i-th data segment); and information indicating the length of the i-th data segment.
参见图27,图27是本申请实施例提供的级联包包头的格式示意图四。如图27所示,该级联包包头包括:扩展比特0(extension bit 0,表示为E0)字段,一个或多个扩展比特(extension bit,表示为E)字段,以及一个或多个长度(length,L)字段。其中,图27的各个子字段的含义可参考前述实施例一的图12中相应字段的描述,此处不再赘述。Referring to FIG. 27, FIG. 27 is a fourth schematic diagram of the format of a concatenated packet header provided by an embodiment of the present application. As shown in Figure 27, the concatenated packet header includes: an extension bit 0 (extension bit 0, denoted as E0) field, one or more extension bits (extension bit, denoted as E) field, and one or more length ( length, L) field. For the meaning of each subfield in FIG. 27 , reference may be made to the description of the corresponding field in FIG. 12 in the first embodiment, which is not repeated here.
可见,实现方式3.2和实现方式3.3在级联包包头中为每一个数据段都设置1bit的扩展比特字段来指示该数据段是否是最后一个数据段,并为每一个数据段设置一个长度字段来指示其长度,有利于译码端根据级联包包头的指示对级联数据进行分割,以恢复出多个PDU/SDU。It can be seen that in implementations 3.2 and 3.3, a 1-bit extended bit field is set for each data segment in the concatenated packet header to indicate whether the data segment is the last data segment, and a length field is set for each data segment to Indicating its length is helpful for the decoding end to segment the concatenated data according to the indication of the header of the concatenated packet, so as to recover multiple PDUs/SDUs.
可选的,上述每个第一数据包包括包头和数据。每个第一数据包的包头包括该第一数据包的序列号,可选的还包括第一指示信息。该第一指示信息用于指示该第一指示信息所在的 第一数据包是原数据包。其中,该第一指示信息在包头中的表现形式可以是O/C字段,应理解,第一指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。第一数据包的序列号可以由Packet ID字段来指示。应理解,第一数据包的序列号可以按照从小到大顺序编号。也就是说,第一设备生成的第一个第一数据包的序列号为1,第二个第一数据包的序列号为2,以此类推。可选的,每个第一数据包的包头还可以包括Type字段和Block ID字段中的一项或多项。Type字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围,比如1比特可以表示2种长度的SN(或Packet ID字段长度);2比特可以表示4种长度的SN(或Packet ID字段长度)。Block ID字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, each of the foregoing first data packets includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet, and optionally also includes first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is the original data packet. The expression form of the first indication information in the packet header may be an O/C field. It should be understood that the first indication information may also be expressed as a field with other names, and the name of the field is not limited in this embodiment of the present application. The sequence number of the first data packet may be indicated by the Packet ID field. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order. That is, the sequence number of the first first data packet generated by the first device is 1, the sequence number of the second first data packet is 2, and so on. Optionally, the header of each first data packet may further include one or more of the Type field and the Block ID field. The Type field is used to indicate the length of the data packet identification field, or to indicate the range of the sequence number of the data packet. For example, 1 bit can represent 2 lengths of SN (or Packet ID field length); 2 bits can represent 4 lengths of SN (or Packet ID field length). The Block ID field is used to indicate the identification of the data block, and this data block includes the first data packet where the Block ID field is located.
参见图28,图28是本申请实施例提供的第一数据包的包头格式示意图六。如图28所示,第一数据包的包头包括:Packet ID字段,可选的包括O/C字段,Type字段和Block ID字段。其中,第一数据包的包头中各个字段的含义可参考前述实施例一中相应字段的含义,此处不再赘述。Referring to FIG. 28, FIG. 28 is a schematic diagram 6 of a packet header format of a first data packet provided by an embodiment of the present application. As shown in Figure 28, the packet header of the first data packet includes: a Packet ID field, optionally including an O/C field, a Type field and a Block ID field. For the meanings of the fields in the header of the first data packet, reference may be made to the meanings of the corresponding fields in the foregoing first embodiment, which will not be repeated here.
可选的,每个第二数据包包括编码包包头和编码数据(这里的编码数据是第一数据包经过网络编码后得到)。每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息、以及编码因子字段(如Coeff ID字段),可选的还包括第二指示信息。第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。该第二指示信息在编码包包头中的表现形式可以是O/C字段,应理解,第二指示信息也可以表现为其他名称的字段,本申请实施例对字段的名称不做限定。该用于指示编码得到该第二数据包的N个第一数据包的标识信息是Block ID字段,或者包括以下至少两项:编码窗的窗长、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。还应理解,如果编码窗的窗长是半静态配置的,则用于指示编码得到该第二数据包的N个第一数据包的标识信息可以包括编码窗中第一个第一数据包的序列号、和编码窗中最后一个第一数据包的序列号中的至少一项即可。编码因子字段(如Coeff ID字段)的长度为8bit,用于指示255行码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。Optionally, each second data packet includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded). The encoded packet header of each second data packet includes identification information used to indicate the N first data packets from which the second data packet is encoded, and an encoding factor field (such as a Coeff ID field), optionally further including a second data packet. Instructions. The second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. The representation form of the second indication information in the header of the encoded packet may be an O/C field. It should be understood that the second indication information may also be represented as a field with other names, and the name of the field is not limited in this embodiment of the present application. The identification information used to indicate the N first data packets obtained by encoding the second data packet is the Block ID field, or includes at least two of the following: the window length of the encoding window, the length of the first first data packet in the encoding window Sequence number, the sequence number of the last first data packet in the encoding window. It should also be understood that if the window length of the coding window is semi-statically configured, then the identification information for indicating that the coding obtains the N first data packets of this second data packet may include the first data packet in the coding window. At least one of the sequence number and the sequence number of the last first data packet in the encoding window is sufficient. The length of the coding factor field (such as the Coeff ID field) is 8 bits, and is used to indicate the row index of the 255-row codebook, where the codebook may be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
可选的,上述编码包包头还可以包括Type字段和Packet ID字段中的一项或多项。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。其中,编码包和原数据包的序列号的实现方式可参考前述实施例一中相应描述,此处不再赘述。具体地,编码包包头的实现方式也可参考前述实施例一中实现方式2.1和实现方式2.2的相应描述,此处不再赘述。Optionally, the above-mentioned encoded packet header may also include one or more of the Type field and the Packet ID field. The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located. The implementation manner of the sequence number of the encoded packet and the original data packet may refer to the corresponding description in the foregoing Embodiment 1, which will not be repeated here. Specifically, for the implementation manner of encoding the packet header, reference may also be made to the corresponding descriptions of the implementation manner 2.1 and the implementation manner 2.2 in the foregoing embodiment 1, which will not be repeated here.
可选的,虽然第一设备分别传输了N个第一数据包(即原数据包)和M个第二数据包(即编码包),但因为干扰、噪声等因素,第一设备传输的数据包不一定都能被第二设备正确接收,也就是说,在传输过程中可能发生丢包的情况。所以,当第二设备接收到至少N个正确且线性无关的数据包时,才能正确译码并恢复出N个第一数据包。Optionally, although the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not The packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets.
下面详细介绍译码端的数据传输流程。The data transmission process at the decoding end is described in detail below.
S306,第二设备获取P个数据包,该P个数据包中包括K个第一数据包和N-K个第二数据包。S306, the second device acquires P data packets, where the P data packets include K first data packets and N-K second data packets.
S307,第二设备对该P个数据包进行译码,获得译码后的N个第一数据包。S307, the second device decodes the P data packets to obtain N first data packets after decoding.
S308,第二设备按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包,并根据该级联包包头包括的形成该级联数据的多个数据单元,即该 级联数据包括的多个数据单元,的级联信息,将该级联数据分割成多个数据单元。S308, the second device restores the data of the N first data packets into one concatenated data packet according to the sequence number size of the N first data packets, and forms the concatenated data packet according to the packet header of the concatenated packet. The concatenation information of the multiple data units of the data, that is, the multiple data units included in the concatenated data, divides the concatenated data into multiple data units.
可选的,第二设备接收到P个数据包,或从存储空间(如buffer)中读取到P个数据包,P是正整数,且大于或等于N。可见,当P等于N时,可以减少冗余开销。应理解,第二设备可以一次性接收到P个数据包,将其按序存储在存储空间中;也可以分多次接收,将每次接收到的数据包按序存储在存储空间中。在接收到的数据包个数等于P后,可执行译码操作,即步骤S307。Optionally, the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S307.
可选的,第二设备判断接收到的数据包是编码包还是原数据包的方式参考前述实施例一中的相应描述,此处不再赘述。如果某个数据包是第一数据包(即原数据包),则第二设备采用原数据包的解析方式解析该数据包的包头,获得该数据包的序列号。如果某个数据包是第二数据包(即编码包),则第二设备采用编码包的解析方式解析该数据包的编码包包头,获得编码因子字段(即Coeff ID字段)和用于指示编码得到该数据包的N个第一数据包的标识信息。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。每个第一数据包包括包头和数据,每个第二数据包包括编码包包头和编码数据。K和P均为正整数,且K小于或等于P。第二设备按照该K个第一数据包的序列号从小到大排序、该P-K个第二数据包的包头中编码因子字段的指示、以及任一个第二数据包的包头中用于指示编码得到该第二数据包的N个第一数据包的标识信息,构成系数因子矩阵。该系数因子矩阵的秩(rank)等于N。第二设备采用该系数因子矩阵对P-K个第二数据包的编码数据和K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。应理解,译码得到的N-K个第一数据包和K个第一数据包加起来就是N个第一数据包。第二设备按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包。该级联数据包中包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。第二设备根据该级联包包头中的级联信息,将该级联数据分割成多个数据单元。应理解,由于级联数据中可能有部分数据段不是完整的数据单元,所以仅对该级联数据进行分割后得到的多个数据单元中也可能存在一个完整数据单元的部分,此时按照级联包包头的指示(比如,S_start字段和S_end字段的指示),将分割得到的不完整的数据单元与其他级联数据中不完整的数据单元进行级联,以恢复出完整的数据单元。Optionally, for the manner in which the second device determines whether the received data packet is an encoded packet or an original data packet, reference is made to the corresponding description in the foregoing Embodiment 1, and details are not repeated here. If a certain data packet is the first data packet (ie, the original data packet), the second device parses the packet header of the data packet by using the parsing method of the original data packet, and obtains the serial number of the data packet. If a certain data packet is a second data packet (that is, an encoded packet), the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding The identification information of the N first data packets of the data packet is obtained. The P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data, and each second data packet includes an encoded packet header and encoded data. Both K and P are positive integers, and K is less than or equal to P. The second device is sorted according to the sequence numbers of the K first data packets from small to large, the indication of the coding factor field in the headers of the P-K second data packets, and the code used to indicate the coding in the header of any second data packet. The identification information of the N first data packets of the second data packet constitutes a coefficient factor matrix. The rank of the coefficient factor matrix is equal to N. The second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, to obtain N-K first data packets after decoding. It should be understood that the sum of N-K first data packets and K first data packets obtained by decoding is N first data packets. The second device restores the data of the N first data packets into one concatenated data packet according to the sequence number of the N first data packets. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the starting data segment and the ending data segment is all or part of a data unit, and the multiple data segments except the starting data segment and the ending data segment Each data segment outside the data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. The second device divides the concatenated data into a plurality of data units according to the concatenation information in the header of the concatenated packet. It should be understood that since there may be some data segments in the concatenated data that are not complete data units, there may also be a part of a complete data unit in the multiple data units obtained by dividing the concatenated data. The indication of the concatenation packet header (for example, the indication of the S_start field and the indication of the S_end field) is to concatenate the incomplete data unit obtained by segmentation with the incomplete data unit in other concatenated data to restore the complete data unit.
其中,K小于或等于N。用于指示编码得到该数据包的N个第一数据包的标识信息是Block ID字段,或包括编码窗的窗长、编码窗中第一个第一数据包的序列号、以及编码窗中最后一个第一数据包的序列号中至少两项。where K is less than or equal to N. The identification information that is used to indicate that coding obtains the N first data packets of this data packet is the Block ID field, or comprises the window length of the coding window, the sequence number of the first first data packet in the coding window, and the last in the coding window. At least two items in the sequence number of a first data packet.
可选的,译码端(即第二设备)可能译码成功,也可能译码失败,所以针对译码成功和译码失败这两种情况分别设计反馈消息。该反馈消息的具体实现方式可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the decoding end (ie, the second device) may succeed in decoding, or may fail in decoding, so feedback messages are separately designed for the two cases of decoding success and decoding failure. For the specific implementation manner of the feedback message, reference may be made to the corresponding description in the foregoing Embodiment 1, which will not be repeated here.
可选的,针对原数据包和编码包的分开独立编号方式和联合顺序编号方式,其在编码端(即第一设备)和译码端(即第二设备)的存储参考前述实施例一中的相应描述,此处不再赘述。Optionally, for the separate independent numbering method and joint sequential numbering method of the original data packet and the encoding packet, the storage at the encoding end (that is, the first device) and the decoding end (that is, the second device) refers to the foregoing Embodiment 1. The corresponding description of , will not be repeated here.
可选的,基站可通过RRC消息或者MAC CE消息指示UE上行传输的编码策略。该RRC消息或MAC CE消息可以指示UE的编码方式,或者指示不同的编码方案。Optionally, the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message. The RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
可见,本申请实施例提供了级联包包头、原数据包(即第一数据包)的包头、以及编码包包头的字段设计,并通过译码流程和操作,以期译码端接收到的数据包满秩(rank=N)的 情况下能够正确译码出原数据包,并根据原数据包的序列号大小进行级联得到级联数据包,再根据级联数据包中级联包包头携带的级联信息,从而恢复出PDU/SDU,进而可以减少NR系统的性能损失。此外,本申请实施例仅在级联包包头中携带级联信息,可以节省包头的开销。It can be seen that the embodiments of the present application provide a concatenated packet header, a header of the original data packet (ie, the first data packet), and a field design of the encoded packet header, and through the decoding process and operation, the data received by the decoding end is expected In the case of full rank (rank=N), the original data packet can be decoded correctly, and the concatenated data packet can be obtained by concatenating according to the serial number of the original data packet, and then carried by the concatenated packet header in the concatenated data packet. The concatenation information of the NR system can be recovered to recover the PDU/SDU, thereby reducing the performance loss of the NR system. In addition, the embodiment of the present application only carries the concatenation information in the packet header of the concatenated packet, which can save the overhead of the packet header.
作为一个可选实施例,本申请实施例三还可以结合前述实施例二形成一个新的实施例。在前述实施例三的基础上结合前述实施例二得到的技术方案与前述实施例三所述技术方案的区别在于:(1)前述实施例三结合前述实施例二所得技术方案可以不传输原数据包,只传输编码包;(2)前述实施例三结合前述实施例二所得技术方案对原数据包进一步封装编码包包头,确保传输的所有数据包的大小相等。As an optional embodiment, Embodiment 3 of the present application may also be combined with Embodiment 2 to form a new embodiment. The difference between the technical solution obtained in the foregoing Embodiment 3 and the foregoing Embodiment 2 and the technical solution in the foregoing Embodiment 3 is that: (1) The technical solution obtained in the foregoing Embodiment 3 in combination with the foregoing Embodiment 2 may not transmit original data (2) The foregoing embodiment 3 further encapsulates the coded packet header of the original data packet in combination with the technical solution obtained in the foregoing embodiment 2 to ensure that all transmitted data packets are of equal size.
具体地,前述实施例三的结合前述实施例二所得技术方案包括但不限于以下步骤:Specifically, the technical solution obtained in the foregoing Embodiment 3 in combination with the foregoing Embodiment 2 includes but is not limited to the following steps:
S1,第一设备获取级联数据包,该级联数据包包括级联包包头和级联数据,该级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,该多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元,该级联包包头包括级联数据包括的多个数据单元的级联信息。其中,级联包包头的设计参考前述实施例三中相应的描述,此处不再赘述。S1, the first device acquires a concatenated data packet, where the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein a start data segment and an end data segment At least one of the data segments is all or part of a data unit, each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit, and the concatenated packet header includes the concatenated data. Concatenation information for multiple data units. The design of the concatenated packet header refers to the corresponding description in the foregoing third embodiment, which is not repeated here.
S2,第一设备根据该级联数据包生成N个第一数据包,每个第一数据包包括包头和数据,该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等,该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。j的取值为区间[1,N]中的整数。其中,第一数据包的包头中包括该第一数据包的序列号。S2, the first device generates N first data packets according to the concatenated data packets, each first data packet includes a packet header and data, the data sizes of the N first data packets are equal, and the N first data packets The size of the packet headers are equal, and the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The value of j is an integer in the interval [1,N]. Wherein, the header of the first data packet includes the sequence number of the first data packet.
S3,第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,M大于N,N和M均为正整数,该编码包包头包括编码因子字段。此时,编码包包头的设计参考前述实施例二中相应描述,此处不再赘述。S3, the first device encodes the N first data packets and adds an encoded packet header to obtain M second data packets, where M is greater than N, N and M are both positive integers, and the encoded packet header includes an encoding factor field. In this case, reference is made to the corresponding description in the foregoing second embodiment for the design of the encoded packet header, which will not be repeated here.
S4,第一设备传输该M个第二数据包,其中,第一数据包是原数据包,第二数据包是编码包。S4, the first device transmits the M second data packets, wherein the first data packets are original data packets, and the second data packets are encoded packets.
S5,第二设备获取P个数据包,该P个数据包均是编码包,每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段,P为正整数。S5, the second device acquires P data packets, the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, the encoded packet header includes an encoding factor field, and P is a positive integer.
S6,第二设备对该P个数据包进行译码,获得译码后的N个第一数据包。其中,译码方式参考前述实施例二中步骤S205的描述,此处不再赘述。S6, the second device decodes the P data packets to obtain N first data packets after decoding. For the decoding method, reference is made to the description of step S205 in the second embodiment, which is not repeated here.
S7,第二设备按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包,并根据该级联包包头包括的形成该级联数据的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,步骤S7参考前述实施例三中步骤S308的描述,此处不再赘述。S7, the second device restores the data of the N first data packets into a concatenated data packet according to the sequence number of the N first data packets, and forms the concatenated data packet according to the packet header of the concatenated packet. The concatenation information of a plurality of data units of the data, and the concatenated data is divided into a plurality of data units. For step S7, reference is made to the description of step S308 in the third embodiment, which is not repeated here.
可见,本申请实施例通过对原数据包进一步添加编码包包头,来保证编码端(即第一设备)传输的数据包的大小相等。本申请实施例可以在物理层传输块(TB)大小为数据包整数倍的情况下,有利于分别识别出每个数据包的位置,并有利于通过CRC判断每个数据包是否正确,如果正确即可向上层递交,最大化网络编码的效率和性能。此外,本申请实施例无需对每个原数据包都添加级联的字段指示,而是通过统一的级联包包头进行级联信息的指示,可以节省包头的开销。It can be seen that, in the embodiment of the present application, the encoding packet header is further added to the original data packet to ensure that the data packets transmitted by the encoding end (ie, the first device) are of equal size. The embodiment of the present application can help to identify the location of each data packet separately when the size of the physical layer transport block (TB) is an integer multiple of the data packet, and is helpful to determine whether each data packet is correct through CRC, if correct It can be submitted to the upper layer to maximize the efficiency and performance of network coding. In addition, in the embodiment of the present application, it is not necessary to add concatenated field indication to each original data packet, but the concatenated information is indicated by a unified concatenated packet header, which can save the overhead of the packet header.
实施例四 Embodiment 4
本申请实施例四主要介绍在NR协议中引入网络编码的再又一种可能的数据传输方法,该方法既传输原数据包也传输编码包,并且介绍仅对PDU/SDU进行分割操作后,如何进行网络编码和数据传输、以及如何设计包头。The fourth embodiment of the present application mainly introduces another possible data transmission method by introducing network coding into the NR protocol. Do network coding and data transfer, and how to design packet headers.
应理解,本申请实施例四与前述实施例一至前述实施例三在流程上的区别是:本申请实施例四只对PDU/SDU进行分割,不级联;而前述实施例一至前述实施例三都可以对PDU/SDU进行分割和级联两个操作。It should be understood that the difference in the process between Embodiment 4 of the present application and the foregoing Embodiments 1 to 3 is that: Embodiment 4 of the present application only divides the PDU/SDU without cascading; while the foregoing Embodiment 1 to the foregoing Embodiment 3 Both splitting and concatenating operations can be performed on PDU/SDU.
参见图29,图29是本申请实施例提供的数据传输方法的第四种示意流程图。如图29所示,该数据传输方法包括但不限于以下步骤:Referring to FIG. 29, FIG. 29 is a fourth schematic flowchart of the data transmission method provided by the embodiment of the present application. As shown in Figure 29, the data transmission method includes but is not limited to the following steps:
S401,第一设备获取N个第一数据包,该N个第一数据包的大小不完全相等,每个第一数据包包括包头和数据,每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息,每个第一数据包的包头还包括数据包标识字段,该数据包标识字段用于指示该第一数据包的序列号。S401, the first device acquires N first data packets, the sizes of the N first data packets are not completely equal, each first data packet includes a packet header and data, and the packet header of each first data packet includes the first data packet The segmentation information of the data unit corresponding to the data of the data packet, the packet header of each first data packet further includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet.
S402,第一设备传输该N个第一数据包。S402, the first device transmits the N first data packets.
S403,第一设备对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包,该N个第一数据包对应用于编码的Q个等效原数据包,该Q个等效原数据包的大小相等,每个第一数据包的包头还包括编码因子字段或偏移字段,该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。S403, the first device encodes the N first data packets and adds the encoded packet headers to obtain M second data packets, the N first data packets correspond to the Q equivalent original data packets used for encoding, and the The Q equivalent original data packets have the same size, and the packet header of each first data packet further includes a coding factor field or an offset field, where the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet The offset number of the sequence number of the equivalent original data packet corresponding to the packet.
S404,第一设备传输该M个第二数据包。S404, the first device transmits the M second data packets.
可选的,本申请实施例中的第一数据包可以称为原数据包,第二数据包可以称为编码包。原数据包可以理解为未经过网络编码的数据包,编码包可以理解为经过网络编码后的数据包。本申请实施例中的数据单元是PDU或SDU。Optionally, the first data packet in this embodiment of the present application may be referred to as an original data packet, and the second data packet may be referred to as an encoded packet. The original data packet can be understood as a data packet without network encoding, and the encoded packet can be understood as a data packet after network encoding. The data unit in this embodiment of the present application is a PDU or an SDU.
可选的,第一设备按照预设大小对至少一个数据单元(PDU或SDU)进行分割,得到N个原数据(原数据指原数据包中的数据)。如果某个数据单元的大小小于或等于该预设大小,则无需对其进行分割,直接作为一个原数据。如果某个数据单元经过一次或多次分割后剩余部分的大小小于该预设大小,则将该剩余部分作为一个原数据,并从下一个数据单元(PDU或SDU)中分割出一部分(该部分的大小也小于该预设大小),作为另一个原数据,使这两个原数据分别加上包头后的大小之和等于该预设大小与包头大小之和。因此,该N个原数据中有部分原数据是等大小的,另外部分原数据不等大小。第一设备再对每个原数据加包头得到第一数据包(即原数据包)。N个原数据分别加包头得到N个第一数据包,由于这N个原数据不等大小,所以这N个第一数据包也不等大小。为了降低时延,第一设备可以每得到一个第一数据包就传输该第一数据包,并将该第一数据包缓存在存储器(这里的存储器是指存储空间,也可以是缓存)中。当该存储器中第一数据包对应的等效原数据包的个数达到网络编码所需的数据包个数(本申请实施例假设网络编码所需的数据包个数,即数据块大小,为Q)时,再对该存储器中缓存的N个第一数据包进行网络编码,生成M个编码数据。其中,第一设备在对N个第一数据包进行网络编码时,将这N个第一数据包形成Q个等大小的等效原数据包,并对该Q个等效原数据包进行网络编码。一个等效原数据包包括一个或多个第一数据包。如果某个第一数据包的大小小于该预设大小与包头大小之和,则可以将相邻两个或多个小于该预设大小的第一数据包形成一个等效原数据包,一个等效数据包的大小等于该预设大小与包头大小之和。应理解,一个等效数据包中可能包括多个第一数据包的包头。第一设备对每个编码数据加编码包包头,得到第二数据包(即编码包),并传输该第二数据包。M个编码数据加编码包包头后可得到M个第二数据包(即编码包)。其中,本申请对网络编 码的方式不做限定。N、M、Q均为正整数,Q小于或等于N,M和N的大小关系不做限定,即M可以小于N,也可以大于N,还可以等于N。Optionally, the first device divides at least one data unit (PDU or SDU) according to a preset size to obtain N pieces of original data (original data refers to data in an original data packet). If the size of a certain data unit is less than or equal to the preset size, it does not need to be divided and is directly used as an original data. If the size of the remaining part of a data unit after being divided one or more times is smaller than the preset size, the remaining part is regarded as an original data, and a part (the part) is divided from the next data unit (PDU or SDU). The size is also smaller than the preset size), as another original data, so that the sum of the sizes of the two original data after adding the packet header respectively is equal to the sum of the preset size and the packet header size. Therefore, some of the original data in the N pieces of original data are of equal size, and the other part of the original data is of unequal size. The first device then adds a packet header to each original data to obtain a first data packet (ie, the original data packet). N pieces of original data are respectively added with packet headers to obtain N pieces of first data packets. Since the sizes of the N pieces of original data are not equal, the sizes of the N pieces of first data packets are also different. In order to reduce the delay, the first device may transmit the first data packet every time it obtains the first data packet, and cache the first data packet in the memory (the memory here refers to the storage space, and may also be a cache). When the number of equivalent original data packets corresponding to the first data packet in the memory reaches the number of data packets required for network coding (the embodiment of this application assumes that the number of data packets required for network coding, that is, the data block size, is Q), perform network coding on the N first data packets buffered in the memory to generate M coded data. The first device, when performing network coding on the N first data packets, forms the N first data packets into Q equivalent original data packets of equal size, and performs network coding on the Q equivalent original data packets. coding. An equivalent original data packet includes one or more first data packets. If the size of a certain first data packet is smaller than the sum of the preset size and the packet header size, two or more adjacent first data packets smaller than the preset size can be formed into an equivalent original data packet, one and so on. The size of the valid data packet is equal to the sum of the preset size and the packet header size. It should be understood that an equivalent data packet may include a plurality of packet headers of the first data packet. The first device adds an encoded packet header to each encoded data to obtain a second data packet (ie, an encoded packet), and transmits the second data packet. After the M encoded data is added to the encoded packet header, M second data packets (ie, encoded packets) can be obtained. Wherein, the present application does not limit the manner of network coding. N, M, and Q are all positive integers. Q is less than or equal to N, and the size relationship between M and N is not limited, that is, M can be less than N, greater than N, or equal to N.
可见,第二数据包(即编码包)比等效原数据包多一个编码包包头,即编码包的编码数据和等效原数据包大小相等,也就是说,本申请实施例传输的编码包(第二数据包)和原数据包(第一数据包)不等大小,并且N个原数据包也不等大小,一定程度上节约了原数据包的包头开销。It can be seen that the second data packet (that is, the encoded packet) has one more encoded packet header than the equivalent original data packet, that is, the encoded data of the encoded packet is equal in size to the equivalent original data packet, that is, the encoded packet transmitted in the embodiment of the present application is (The second data packet) and the original data packet (the first data packet) are not equal in size, and the N original data packets are not equal in size, which saves the packet header overhead of the original data packet to a certain extent.
可选的,本申请实施例对上述步骤S402和上述步骤S403的执行顺序不做限定。比如上述步骤S402既可以在上述步骤S403之前执行,也可以在上述步骤S403之后执行,还可以与上述步骤S403同时/并行执行。Optionally, this embodiment of the present application does not limit the execution order of the foregoing step S402 and the foregoing step S403. For example, the above-mentioned step S402 may be performed before the above-mentioned step S403, or may be performed after the above-mentioned step S403, or may be performed simultaneously/parallelly with the above-mentioned step S403.
可选的,上述步骤S401至步骤S404可以由第一设备中单独的NC功能子层实现,也可以由具有NC功能的层实现,具体可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the above steps S401 to S404 may be implemented by a separate NC function sublayer in the first device, or may be implemented by a layer having an NC function. For details, please refer to the corresponding description in the foregoing Embodiment 1, which is not repeated here. Repeat.
可选的,为更好地理解上述步骤S401至上述步骤S404所述的流程,下面以一个示例来说明上述步骤S401至上述步骤S404所示的编码端数据传输流程。Optionally, in order to better understand the processes described in the above steps S401 to S404, an example is used to describe the data transmission process at the encoding end shown in the above steps S401 to S404.
示例性的,参见图30,图30是本申请实施例提供的编码端数据传输流程的第五种示意图。如图30所示,以NC功能子层位于PDCP层和RLC层之间为例。假设NC功能子层依次接收到PDCP PDU1和PDCP PDU2。编码端(即第一设备)按照预设大小对PDCP PDU1和PDCP PDU2进行分割,得到6个原数据(如图30中的Data1~6)。其中,Data1~3以及Data6的大小相等,Data4和Data5的大小不等,但Data4和Data5分别加上包头(即图30中的Header)后与Data1~3和Data6中任一个加包头后的大小相等。Data4是PDCP PDU1经过前3次等大小分割后剩余的部分,Data5是PDCP PDU2的头部。再对每个原数据添加包头(即图30中的Header),获得包括包头的原数据包;一方面将原数据包作为NC功能子层的NC PDU直接传输至下一层,另一方面将原数据包缓存在NC功能子层的编码器的缓存区(buffer)中。6个原数据分别加包头得到6个原数据包(如图30中的Pkt1~6),这6个原数据包对应用于编码的5个等大小的等效原数据包。当buffer中缓存的原数据包对应的等效原数据包的个数达到编码器所需的数据包个数时(这里假设编码器所需的数据包个数为5),将buffer中的6个原数据包转换成5个等大小的等效原数据包后,对这5个等大小的等效原数据包进行网络编码,生成编码数据EData1和EData2。应理解,对这5个等效原数据包进行网络编码生成的编码数据的个数可以小于等效原数据包的个数,也可以大于等效原数据包的个数。最后对每个编码数据添加编码包包头(如图30中的NC_Header),得到包括包头的编码包(如图30中的EPkt1和EPkt2)并作为NC功能子层的PDU进行发送。应理解,发送编码包时可以只发送得到的部分编码包(比如发送EPkt1,不发送EPkt2),也可以发送得到的全部编码包。For example, referring to FIG. 30 , FIG. 30 is a fifth schematic diagram of the data transmission process at the encoding end provided by the embodiment of the present application. As shown in FIG. 30 , it is taken as an example that the NC functional sublayer is located between the PDCP layer and the RLC layer. It is assumed that the NC functional sublayer receives PDCP PDU1 and PDCP PDU2 in sequence. The encoding end (that is, the first device) divides PDCP PDU1 and PDCP PDU2 according to the preset size to obtain 6 original data (Data1-6 in Figure 30). Among them, the sizes of Data1 to 3 and Data6 are equal, and the sizes of Data4 and Data5 are not equal, but the sizes of Data4 and Data5 after adding the header (ie, the Header in Figure 30) and either of Data1 to 3 and Data6 with the header are added. equal. Data4 is the remaining part of PDCP PDU1 after the first three equal-sized divisions, and Data5 is the header of PDCP PDU2. Then add a packet header (that is, the Header in Figure 30) to each original data to obtain the original data packet including the packet header; on the one hand, the original data packet is directly transmitted to the next layer as the NC PDU of the NC functional sublayer, and on the other hand, the The original data packet is buffered in the buffer of the encoder of the NC function sublayer. The 6 original data are respectively added with headers to obtain 6 original data packets (Pkt1-6 in Figure 30), these 6 original data packets correspond to the 5 equivalent original data packets of equal size used for encoding. When the number of equivalent original data packets corresponding to the original data packets buffered in the buffer reaches the number of data packets required by the encoder (here, it is assumed that the number of data packets required by the encoder is 5), 6 in the buffer After the original data packets are converted into five equivalent original data packets of equal size, network coding is performed on the five equivalent original data packets of equal size to generate encoded data EData1 and EData2. It should be understood that the number of encoded data generated by performing network coding on the five equivalent original data packets may be smaller than the number of equivalent original data packets, or may be greater than the number of equivalent original data packets. Finally, add a coded packet header (such as NC_Header in Figure 30) to each coded data to obtain a coded packet including the packet header (such as EPkt1 and EPkt2 in Figure 30) and send it as a PDU of the NC function sublayer. It should be understood that when sending the coded packet, only a part of the obtained coded packet may be sent (for example, EPkt1 is sent, and EPkt2 is not sent), or all the obtained coded packets may be sent.
可选的,上述每个第一数据包(即原数据包)包括包头和数据(即上述原数据)。每个第一数据包的包头包括该第一数据包的数据对应的数据单元(PDU或SDU)的分割信息。其中,一个第一数据包的数据对应一个PDU/SDU的全部或部分。该分割信息包括:第一数据包的数据在该数据对应的数据单元中的位置信息,和指示该第一数据包的数据的长度的信息。Optionally, each of the foregoing first data packets (that is, the original data packets) includes a header and data (that is, the foregoing original data). The packet header of each first data packet includes segmentation information of the data unit (PDU or SDU) corresponding to the data of the first data packet. Wherein, the data of one first data packet corresponds to all or part of one PDU/SDU. The segmentation information includes: position information of the data of the first data packet in the data unit corresponding to the data, and information indicating the length of the data of the first data packet.
可选的,每个第一数据包的包头还包括Packet ID字段,可选的还可以包括第一指示信息。第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包,该第一指示信息在包头中的表现形式可以是O/C字段。数据包标识字段用于指示第一数据包的序列号。应理解,第一数据包的序列号可以按照从小到大顺序编号,或顺序递增。也就是说,第一设备获取到的第一个第一数据包的序列号为1,第二个第一数据包的序列号为2,以此类推。每个第一数据包的包头还包括编码因子字段(如Coeff ID字段)或偏移(offset)字段,该偏移字段用于 指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。可选的,每个第一数据包的包头还可以包括Type字段和Block ID字段中的一项或多项。Type字段用于指示数据包标识字段的长度,或者用于指示数据包的序列号的范围。Block ID字段用于指示数据块的标识,这个数据块包括该Block ID字段所在的第一数据包。Optionally, the packet header of each first data packet further includes a Packet ID field, and optionally may also include first indication information. The first indication information is used to indicate that the first data packet in which the first indication information is located is an original data packet, and an expression form of the first indication information in the packet header may be an O/C field. The data packet identification field is used to indicate the sequence number of the first data packet. It should be understood that the sequence numbers of the first data packets may be numbered in ascending order, or sequentially increased. That is, the sequence number of the first first data packet obtained by the first device is 1, the sequence number of the second first data packet is 2, and so on. The packet header of each first data packet further includes a coding factor field (such as a Coeff ID field) or an offset (offset) field, where the offset field is used to indicate that the sequence number of the first data packet corresponds to the first data packet The offset number of the sequence number of the equivalent original packet. Optionally, the header of each first data packet may further include one or more of the Type field and the Block ID field. The Type field is used to indicate the length of the data packet identification field, or is used to indicate the range of sequence numbers of the data packet. The Block ID field is used to indicate the identification of the data block, and this data block includes the first data packet where the Block ID field is located.
参见图31a,图31a是本申请实施例提供的第一数据包的包头格式示意图七。如图31a所示,该第一数据包的包头(Header)包括:Packet ID字段,分段信息(segment information,SI)字段,长度(Length,L)字段,以及Coeff ID字段;可选的包括O/C字段,Type字段和Block ID字段。参见图31b,图31b是本申请实施例提供的第一数据包的包头格式示意图八。如图31b所示,该第一数据包的包头包括:Packet ID字段,SI字段,长度(Length,L)字段,以及偏移(offset)字段;可选的包括O/C字段,Type字段和Block ID字段。应理解,第一数据包的包头中O/C字段设置为第一值,用于指示该第一数据包是原数据包。第一值可以是1或0。Referring to FIG. 31a, FIG. 31a is a schematic diagram 7 of a packet header format of a first data packet provided by an embodiment of the present application. As shown in Figure 31a, the header (Header) of the first data packet includes: Packet ID field, segment information (segment information, SI) field, length (Length, L) field, and Coeff ID field; optional include O/C field, Type field and Block ID field. Referring to FIG. 31b, FIG. 31b is a schematic diagram 8 of a packet header format of a first data packet provided by an embodiment of the present application. As shown in Figure 31b, the packet header of the first data packet includes: a Packet ID field, an SI field, a length (Length, L) field, and an offset (offset) field; optionally, it includes an O/C field, a Type field and Block ID field. It should be understood that the O/C field in the packet header of the first data packet is set to a first value, which is used to indicate that the first data packet is an original data packet. The first value can be 1 or 0.
其中,原数据包的包头中Coeff ID字段指示的行向量中只有一个元素等于1,其他元素均为0。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。图31b中offset字段的长度可以为8bit,用于表示原数据包的序列号相对于等效原数据包的序列号的偏移数。图31a和图31b中SI字段的长度为2bit,用于表示第一数据包的数据在该数据对应的数据单元中的位置信息,其取值和含义如下述表1所示。图31a和图31b中其他字段的含义,可参考前述实施例一中相同字段的含义。Among them, only one element of the row vector indicated by the Coeff ID field in the header of the original data packet is equal to 1, and the other elements are all 0. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same. The length of the offset field in FIG. 31b may be 8 bits, which is used to indicate the offset number of the sequence number of the original data packet relative to the sequence number of the equivalent original data packet. The length of the SI field in FIG. 31a and FIG. 31b is 2 bits, which is used to indicate the position information of the data of the first data packet in the data unit corresponding to the data, and its value and meaning are shown in Table 1 below. For the meanings of other fields in FIG. 31a and FIG. 31b, reference may be made to the meanings of the same fields in the foregoing first embodiment.
表1Table 1
Figure PCTCN2022089568-appb-000001
Figure PCTCN2022089568-appb-000001
可选的,上述每个第二数据包(即编码包)包括编码包包头和编码数据(这里的编码数据是第一数据包经过网络编码后得到)。每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息、以及编码因子字段(如Coeff ID字段),可选的还可以包括第二指示信息。第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。用于指示编码得到该第二数据包的Q个等效原数据包的标识信息是Block ID字段,或者包括以下至少两项:指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。应理解,如果编码窗的窗长是半静态配置的,则用于指示编码得到该第二数据包的N个第一数据包的标识信息包括编码窗中第一个第一数据包的序列号、和编码窗中最后一个第一数据包的序列号中的至少一项即可。编码包包头中的编码因子字段(如Coeff ID字段)的长度为8bit,用于指示255行码本的行索引,这里的码本可以是范德蒙码本、柯西码本、随机码本等。Optionally, each of the foregoing second data packets (ie, encoded packets) includes an encoded packet header and encoded data (the encoded data here is obtained after the first data packet is network encoded). The encoded packet header of each second data packet includes identification information used to indicate the Q equivalent original data packets obtained by encoding the second data packet, and a coding factor field (such as a Coeff ID field), and may optionally also include second indication information. The second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. The identification information of Q equivalent original data packets that is used to indicate that coding obtains this second data packet is the Block ID field, or includes at least two of the following: the information indicating the window length of the coding window, the first first in the coding window The sequence number of the data packet, the sequence number of the last first data packet in the encoding window. It should be understood that if the window length of the encoding window is semi-statically configured, then the identification information for indicating that the encoding obtains the N first data packets of the second data packet includes the sequence number of the first first data packet in the encoding window. , and at least one of the sequence numbers of the last first data packet in the encoding window. The length of the encoding factor field (such as the Coeff ID field) in the encoding packet header is 8 bits, which is used to indicate the row index of the 255-row codebook, and the codebook here can be a Vandermonde codebook, a Cauchy codebook, a random codebook, and the like.
可选的,上述编码包包头还可以包括Type字段和Packet ID字段中的一项或多项。编码包包头中的Packet ID字段用于指示该Packet ID字段所在第二数据包(编码包)的SN。其中,编码包和原数据包的序列号的实现方式可参考前述实施例一中相应描述,此处不再赘述。具体地,编码包包头的实现方式也可参考前述实施例一中实现方式2.1和实现方式2.2的相应描 述,此处不再赘述。Optionally, the above-mentioned encoded packet header may also include one or more of the Type field and the Packet ID field. The Packet ID field in the packet header of the encoded packet is used to indicate the SN of the second data packet (encoded packet) where the Packet ID field is located. The implementation manner of the sequence number of the encoded packet and the original data packet may refer to the corresponding description in the foregoing Embodiment 1, which will not be repeated here. Specifically, for the implementation manner of the encoded packet header, reference may also be made to the corresponding descriptions of implementation manner 2.1 and implementation manner 2.2 in the foregoing embodiment 1, which will not be repeated here.
可选的,虽然第一设备分别传输了N个第一数据包(即原数据包)和M个第二数据包(即编码包),但因为干扰、噪声等因素,第一设备传输的数据包不一定都能被第二设备正确接收,也就是说,在传输过程中可能发生丢包的情况。所以,当第二设备接收到至少N个正确且线性无关的数据包时,才能正确译码并恢复出N个第一数据包。下述步骤S405至步骤S407将详细介绍译码端的数据传输流程。Optionally, although the first device transmits N first data packets (that is, original data packets) and M second data packets (that is, encoded packets), the data transmitted by the first device is not The packets may not always be correctly received by the second device, that is, packet loss may occur during transmission. Therefore, when the second device receives at least N correct and linearly independent data packets, it can correctly decode and recover the N first data packets. The following steps S405 to S407 will introduce the data transmission process of the decoding end in detail.
S405,第二设备获取P个数据包,该P个数据包中包括K个第一数据包和P-K个第二数据包。S405, the second device acquires P data packets, where the P data packets include K first data packets and P-K second data packets.
S406,第二设备对该P个数据包进行译码,获得译码后的N个第一数据包。S406, the second device decodes the P data packets to obtain N first data packets after decoding.
S407,第二设备根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。S407: The second device restores the data of the N first data packets into one or more data units according to the segmentation information included in the packet header of each of the N first data packets.
可选的,第二设备接收到P个数据包,或从存储空间(如buffer)中读取到P个数据包,P是正整数,且大于或等于N。可见,当P等于N时,可以减少冗余开销。应理解,第二设备可以一次性接收到P个数据包,将其按序存储在存储空间中;也可以分多次接收,将每次接收到的数据包按序存储在存储空间中。在接收到的数据包个数等于P后,可执行译码操作,即步骤S406。Optionally, the second device receives P data packets, or reads P data packets from a storage space (such as a buffer), where P is a positive integer and is greater than or equal to N. It can be seen that when P is equal to N, the redundancy overhead can be reduced. It should be understood that the second device may receive P data packets at one time, and store them in the storage space in sequence; or may receive them in multiple times, and store the data packets received each time in the storage space in sequence. After the number of received data packets is equal to P, a decoding operation can be performed, that is, step S406.
可选的,第二设备判断接收到的数据包是编码包还是原数据包的方式参考前述实施例一中的相应描述,此处不再赘述。Optionally, for the manner in which the second device determines whether the received data packet is an encoded packet or an original data packet, reference is made to the corresponding description in the foregoing Embodiment 1, and details are not repeated here.
一种实现方式中,针对第一数据包的包头包括编码因子字段(即Coeff ID字段)的情况(即前述图31a所示包头格式),如果某个数据包是第一数据包(即原数据包),则第二设备采用原数据包的解析方式解析该数据包的包头获得编码因子字段(即Coeff ID字段)。如果某个数据包是第二数据包(即编码包),则第二设备采用编码包的解析方式解析该数据包的编码包包头,获得编码因子字段(即Coeff ID字段)和用于指示编码得到该数据包的Q个等效原数据包的标识信息。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。Q个等效原数据包的大小相等。如果多个原数据包对应一个等效原数据包,则该多个原数据包的包头中Coeff ID字段的值相同。对于这P个数据包(或K个第一数据包)中包长小于上述预设大小与原数据包的包头大小之和的数据包,判断这些数据包中编码因子字段的值是否相同,将编码因子字段的值相同的数据包进行等效级联(应理解,这里的等效级联并不是指真正的级联,而是将编码因子字段的值相同的多个数据包作为一个完整数据包,或者说,将编码因子字段的值相同的多个数据包与等效的第三数据包建立映射关系),得到等效的第三数据包。其中,能够等效级联成一个第三数据包的原数据包的序列号连续。如果该等效的第三数据包的长度小于上述预设大小与原数据包的包头大小之和,则认为该等效的第三数据包不完整,则丢弃等效级联成该第三数据包的所有第一数据包(即原数据包)。如果该等效的第三数据包的长度等于上述预设大小与原数据包的包头大小之和,则认为该等效的第三数据包完整,即正确接收。应理解,如果该等效的第三数据包的长度等于上述预设大小与原数据包的包头大小之和,则该等效的第三数据包就是等效原数据包。In an implementation manner, for the case where the header of the first data packet includes a coding factor field (that is, the Coeff ID field) (that is, the packet header format shown in the aforementioned Figure 31a), if a certain data packet is the first data packet (that is, the original data packet), the second device parses the packet header of the data packet to obtain the coding factor field (that is, the Coeff ID field) by using the parsing method of the original data packet. If a certain data packet is a second data packet (that is, an encoded packet), the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding The identification information of Q equivalent original data packets of the data packet is obtained. The P data packets include K first data packets and P-K second data packets. The Q equivalent original data packets are equal in size. If multiple original data packets correspond to one equivalent original data packet, the values of the Coeff ID fields in the packet headers of the multiple original data packets are the same. For the data packets whose packet length is less than the sum of the above-mentioned preset size and the header size of the original data packets in the P data packets (or K first data packets), determine whether the values of the encoding factor fields in these data packets are the same, and set the The data packets with the same value of the coding factor field are equivalently concatenated (it should be understood that the equivalent concatenation here does not refer to real concatenation, but multiple data packets with the same value of the coding factor field are regarded as a complete data. In other words, a mapping relationship is established between multiple data packets with the same value of the coding factor field and an equivalent third data packet) to obtain an equivalent third data packet. The sequence numbers of the original data packets that can be equivalently concatenated into a third data packet are consecutive. If the length of the equivalent third data packet is less than the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is incomplete, and the equivalent concatenation of the third data packet is discarded. All first packets (ie original packets) of the packet. If the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is complete, that is, received correctly. It should be understood that if the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, the equivalent third data packet is the equivalent original data packet.
另一种实现方式,针对第一数据包的包头包括偏移字段(即offset字段)的情况(即前述图31b所示包头格式),如果某个数据包是第一数据包(即原数据包),则第二设备采用原数据包的解析方式解析该数据包的包头该数据包的序列号和偏移字段。如果某个数据包是第二数据包(即编码包),则第二设备采用编码包的解析方式解析该数据包的编码包包头,获得 编码因子字段(即Coeff ID字段)和用于指示编码得到该数据包的Q个等效原数据包的标识信息。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。对于这P个数据包(或K个第一数据包)中包长小于上述预设大小与原数据包的包头大小之和的数据包,判断这些数据包的序列号分别减去各自包头中offset字段的值所得差值是否相等,将差值相等的数据包进行等效级联(应理解,这里的等效级联并不是指真正的级联,而是将编码因子字段的值相同的多个数据包作为一个完整数据包,或者说,将编码因子字段的值相同的多个数据包与等效的第三数据包建立映射关系),得到等效的第三数据包。其中,能够等效级联成一个第三数据包的原数据包的序列号连续。如果该等效的第三数据包的长度小于上述预设大小与原数据包的包头大小之和,则认为该等效的第三数据包不完整,则丢弃等效级联成该第三数据包的所有第一数据包(即原数据包)。如果该等效的第三数据包的长度等于上述预设大小与原数据包的包头大小之和,则认为该等效的第三数据包完整,即正确接收。应理解,如果该等效的第三数据包的长度等于上述预设大小与原数据包的包头大小之和,则该等效的第三数据包就是等效原数据包。Another implementation manner, for the case where the packet header of the first data packet includes an offset field (ie, the offset field) (ie, the packet header format shown in the aforementioned Figure 31b ), if a certain data packet is the first data packet (ie, the original data packet) ), the second device parses the packet header of the data packet and the sequence number and offset fields of the data packet by using the parsing method of the original data packet. If a certain data packet is a second data packet (that is, an encoded packet), the second device parses the encoded packet header of the data packet by using the parsing method of the encoded packet, and obtains the encoding factor field (that is, the Coeff ID field) and is used to indicate the encoding The identification information of Q equivalent original data packets of the data packet is obtained. The P data packets include K first data packets and P-K second data packets. For the P data packets (or the K first data packets) whose packet length is less than the sum of the above-mentioned preset size and the header size of the original data packet, determine that the sequence numbers of these data packets are subtracted from the offset in the respective packet headers. Whether the difference between the values of the fields is equal, the data packets with the same difference are equivalently concatenated (it should be understood that the equivalent concatenation here does not refer to the real concatenation, but the value of the encoding factor field is much the same. Each data packet is regarded as a complete data packet, or in other words, a mapping relationship is established between multiple data packets with the same value of the coding factor field and an equivalent third data packet) to obtain an equivalent third data packet. The sequence numbers of the original data packets that can be equivalently concatenated into a third data packet are consecutive. If the length of the equivalent third data packet is less than the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is incomplete, and the equivalent concatenation of the third data packet is discarded. All first packets (ie original packets) of the packet. If the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, it is considered that the equivalent third data packet is complete, that is, received correctly. It should be understood that if the length of the equivalent third data packet is equal to the sum of the above-mentioned preset size and the header size of the original data packet, the equivalent third data packet is the equivalent original data packet.
可选的,假设K个第一数据包(即原数据包)等效级联成(或对应)T个等效原数据包,T小于或等于K且T为正整数。当第二设备正确接收到的等效原数据包和编码包(即第二数据包)的总个数(T+P-K)大于或等于N时,第二设备按照该T个等效原数据包的序列号从小到大排序、该P-K个第二数据包的编码包包头中编码因子字段的指示、以及任一个第二数据包的包头中用于指示编码得到该第二数据包的Q个等效原数据包的标识信息构成系数因子矩阵。该系数因子矩阵的秩(rank)等于N。第二设备采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包(或T个等效原数据包)进行联合译码,获得译码后的N个第一数据包。第二设备获得译码后的N个第一数据包(即原数据包)后,根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。其中,该N个第一数据包对应用于编码的Q个等效原数据包,该Q个等效原数据包的大小相等。每个第一数据包包括包头和数据,每个第二数据包包括编码包包头和编码数据。K、P、以及Q均为正整数,K小于或等于P,N≤P≤N+M,Q小于或等于N。Optionally, it is assumed that K first data packets (ie, original data packets) are equivalently concatenated into (or correspond to) T equivalent original data packets, where T is less than or equal to K and T is a positive integer. When the total number (T+P-K) of equivalent original data packets and encoded packets (that is, second data packets) correctly received by the second device is greater than or equal to N, the second device according to the T equivalent original data packets The sequence number is sorted from small to large, the indication of the encoding factor field in the encoded packet header of the P-K second data packets, and the packet header of any second data packet used to indicate that the Q number of the second data packet is obtained by encoding, etc. The identification information of the original data packet constitutes a coefficient factor matrix. The rank of the coefficient factor matrix is equal to N. The second device uses the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets (or T equivalent original data packets), and obtain the decoded Nth data packets. a packet. After the second device obtains the decoded N first data packets (that is, the original data packets), according to the segmentation information included in the packet header of each of the N first data packets, the N first data packets Packet data is reduced to one or more data units. Wherein, the N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size. Each first data packet includes a packet header and data, and each second data packet includes an encoded packet header and encoded data. K, P, and Q are all positive integers, K is less than or equal to P, N≤P≤N+M, and Q is less than or equal to N.
为更好地理解上述步骤S406的译码流程,下面以一个示例来举例说明。In order to better understand the decoding process of the above step S406, an example is used as an example below.
示例性的,参见图32,图32是本申请实施例提供的一种构造系数因子矩阵的示意图。假设序列号为3和4的原数据包(即Pkt3和Pkt4)对应一个等效原数据包,序列号为5和6的原数据包(即Pkt5和Pkt6)对应另一等效原数据包。这里假设由于信道衰落、干扰等因素,原数据包Pkt2和Pkt3丢失。一种实现方式中,Pkt3和Pkt4中Coeff ID字段的值相同,Pkt5和Pkt6中Coeff ID字段的值相同,Pkt3和Pkt5中Coeff ID字段的值不相同。数据块大小,即用于编码的等效原数据包个数Q为半静态配置。由于原数据包Pkt3丢失,而译码端(即第二设备)接收到的Pkt4的包长又小于上述预设大小与原数据包的包头大小之和,并且接收到的原数据包中没有与Pkt4的Coeff ID字段的值相同的原数据包,所以译码端(即第二设备)丢弃Pkt4,即译码端(即第二设备)认为Pkt3和Pkt4都丢失了,即Pkt3和Pkt4对应的等效原数据包丢失。也就是说,译码端(即第二设备)在构造系数因子矩阵时忽略Pkt4中携带的Coeff ID字段。由于译码端(即第二设备)接收到的Pkt5和Pkt6的Coeff ID字段的值相同,且Pkt5和Pkt6的长度之和等于上述预设大小与原数据包的包头大小之和,则译码端(即第二设备)认为正确接收到Pkt5和Pkt6,或者认为Pkt5和Pkt6对应的等效原数据包未丢失。也就是说,译码端(即第二设备)在构造系数因子矩阵时将Pkt5和Pkt6视为一个完整数据包,只提取其中一个的Coeff ID字段。该系数因子矩阵的秩(rank)为Q。其中,因为图33 中丢失了2个等效原数据包(即序列号为2和3的等效原数据包),则需要至少2个编码包来联合译码。For example, see FIG. 32 , which is a schematic diagram of constructing a coefficient factor matrix provided by an embodiment of the present application. It is assumed that the original data packets with sequence numbers 3 and 4 (ie, Pkt3 and Pkt4) correspond to an equivalent original data packet, and the original data packets with sequence numbers of 5 and 6 (ie, Pkt5 and Pkt6) correspond to another equivalent original data packet. It is assumed here that the original data packets Pkt2 and Pkt3 are lost due to factors such as channel fading and interference. In an implementation manner, the values of the Coeff ID fields in Pkt3 and Pkt4 are the same, the values of the Coeff ID fields in Pkt5 and Pkt6 are the same, and the values of the Coeff ID fields in Pkt3 and Pkt5 are different. The size of the data block, that is, the number of equivalent original data packets Q used for encoding is semi-static configuration. Because the original data packet Pkt3 is lost, and the packet length of Pkt4 received by the decoding end (ie, the second device) is smaller than the sum of the above preset size and the header size of the original data packet, and there is no original data packet received with The original data packets with the same value of the Coeff ID field of Pkt4, so the decoding end (ie the second device) discards Pkt4, that is, the decoding end (ie the second device) thinks that both Pkt3 and Pkt4 are lost, that is, the corresponding Pkt3 and Pkt4 Equivalent to original packet loss. That is to say, the decoding end (ie, the second device) ignores the Coeff ID field carried in Pkt4 when constructing the coefficient factor matrix. Since the values of the Coeff ID fields of Pkt5 and Pkt6 received by the decoding end (ie, the second device) are the same, and the sum of the lengths of Pkt5 and Pkt6 is equal to the sum of the above preset size and the header size of the original data packet, the decoding The end (ie, the second device) considers that Pkt5 and Pkt6 are correctly received, or that the equivalent original data packets corresponding to Pkt5 and Pkt6 are not lost. That is to say, the decoding end (ie, the second device) regards Pkt5 and Pkt6 as a complete data packet when constructing the coefficient factor matrix, and only extracts the Coeff ID field of one of them. The rank of the coefficient factor matrix is Q. Among them, since two equivalent original data packets (ie, equivalent original data packets with sequence numbers 2 and 3) are lost in FIG. 33, at least two encoded packets are required for joint decoding.
另一种实现方式中,数据块大小,即用于编码的等效原数据包个数Q为半静态配置。如图33所示,译码端(即第二设备)接收到的Pkt5中offset字段的值为1,Pkt6中offset字段的值为2。由于Pkt5的序列号(5)减去自己包头中offset字段的值(1)所得差值为4(5-1=4),Pkt6的序列号(6)减去自己包头中offset字段的值(2)所得差值为4(6-2=4),则译码端(即第二设备)认为正确接收到Pkt5和Pkt6,且Pkt5和Pkt6等效级联成一个序列号为4的等效原数据包。因为原数据包Pkt3丢失,而译码端(即第二设备)接收到的Pkt4的包长又小于上述预设大小与原数据包的包头大小之和,并且接收到的原数据包中没有原数据包的序列号减去自己包头中offset字段的值所得的差值与Pkt4的序列号(4)减去自己包头中offset字段的值(1)所得差值(4-1=3)相同,所以译码端(即第二设备)丢弃Pkt4,即译码端(即第二设备)认为Pkt3和Pkt4都丢失了,即Pkt3和Pkt4对应的等效原数据包(该等效原数据包的序列号为3)丢失。译码端(即第二设备)按照等效原数据包的序列号和编码包的Coeff ID字段构造系数因子矩阵(如图33所示的系数因子矩阵,该系数因子矩阵的列从左到右对应等效原数据包的序列号从小到大排列)。该系数因子矩阵的秩(rank)为Q。其中,因为图33中丢失了2个等效原数据包(即序列号为2和3的等效原数据包),则需要至少2个编码包来联合译码。In another implementation manner, the size of the data block, that is, the number Q of equivalent original data packets used for encoding is semi-static configuration. As shown in FIG. 33 , the value of the offset field in Pkt5 received by the decoding end (ie, the second device) is 1, and the value of the offset field in Pkt6 is 2. Since the sequence number (5) of Pkt5 minus the value of the offset field (1) in its own packet header is 4 (5-1=4), the sequence number (6) of Pkt6 minus the value of the offset field in its own packet header ( 2) The obtained difference is 4 (6-2=4), then the decoding end (ie the second device) considers that Pkt5 and Pkt6 are correctly received, and Pkt5 and Pkt6 are equivalently cascaded into an equivalent serial number of 4 original packet. Because the original data packet Pkt3 is lost, and the packet length of Pkt4 received by the decoding end (ie the second device) is smaller than the sum of the above-mentioned preset size and the header size of the original data packet, and there is no original data packet in the received original data packet. The difference between the sequence number of the data packet minus the value of the offset field in its own packet header is the same as the difference (4-1=3) obtained by subtracting the value of the offset field in its own packet header (1) from the sequence number (4) of Pkt4. Therefore, the decoding end (ie the second device) discards Pkt4, that is, the decoding end (ie the second device) considers that both Pkt3 and Pkt4 are lost, that is, the equivalent original data packets corresponding to Pkt3 and Pkt4 (the equivalent original data packets The serial number is 3) lost. The decoding end (ie, the second device) constructs a coefficient factor matrix (the coefficient factor matrix shown in Figure 33, the columns of the coefficient factor matrix are from left to right) according to the serial number of the equivalent original data packet and the Coeff ID field of the encoded packet. The sequence numbers corresponding to the equivalent original data packets are arranged from small to large). The rank of the coefficient factor matrix is Q. Wherein, because two equivalent original data packets (ie, equivalent original data packets with sequence numbers 2 and 3) are lost in FIG. 33, at least two encoded packets are required for joint decoding.
可选的,译码端(即第二设备)可能译码成功,也可能译码失败,所以针对译码成功和译码失败这两种情况分别设计反馈消息。该反馈消息的具体实现方式可参考前述实施例一中的相应描述,此处不再赘述。Optionally, the decoding end (ie, the second device) may succeed in decoding, or may fail in decoding, so feedback messages are separately designed for the two cases of decoding success and decoding failure. For the specific implementation manner of the feedback message, reference may be made to the corresponding description in the foregoing Embodiment 1, which will not be repeated here.
可选的,针对原数据包和编码包的分开独立编号方式和联合顺序编号方式,其在编码端(即第一设备)和译码端(即第二设备)的存储参考前述实施例一中的相应描述,此处不再赘述。Optionally, for the separate independent numbering method and joint sequential numbering method of the original data packet and the encoding packet, the storage at the encoding end (that is, the first device) and the decoding end (that is, the second device) refers to the foregoing Embodiment 1. The corresponding description of , will not be repeated here.
可选的,基站可通过RRC消息或者MAC CE消息指示UE上行传输的编码策略。该RRC消息或MAC CE消息可以指示UE的编码方式,或者指示不同的编码方案。Optionally, the base station may indicate the coding strategy of the UE for uplink transmission through an RRC message or a MAC CE message. The RRC message or the MAC CE message may indicate the encoding mode of the UE, or indicate a different encoding scheme.
可见,本申请实施例提供一种纯分割场景下支持网络编码的数据传输方法,不仅在不依赖于SDU或PDU大小,即不同SDU或PDU大小可以相同,也可以不同,的场景下可以应用,比如可以兼容NR协议,还能在多个原数据包丢失的情况下也能恢复出PDU或SDU,减少性能损失。It can be seen that the embodiments of the present application provide a data transmission method supporting network coding in a pure segmentation scenario, which can be applied not only in scenarios that do not depend on the size of SDUs or PDUs, that is, the sizes of different SDUs or PDUs may be the same or different, For example, it can be compatible with the NR protocol, and can recover PDU or SDU even when multiple original data packets are lost, reducing performance loss.
上述内容详细阐述了本申请的方法,为便于更好地实施本申请实施例的上述方案,本申请实施例还提供了相应的装置或设备。The above content describes the method of the present application in detail. In order to facilitate better implementation of the above solutions in the embodiments of the present application, the embodiments of the present application also provide corresponding devices or equipment.
本申请实施例可以根据上述方法示例对第一设备和第二设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面将结合图33至图37详细描述本申请实施例的数据传输装置。In this embodiment of the present application, the first device and the second device may be divided into functional modules according to the foregoing method examples. For example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. middle. The above-mentioned integrated modules can be implemented in the form of hardware, and can also be implemented in the form of software function modules. It should be noted that, the division of modules in the embodiments of the present application is schematic, and is only a logical function division, and there may be other division manners in actual implementation. The data transmission apparatus according to the embodiment of the present application will be described in detail below with reference to FIG. 33 to FIG. 37 .
在采用集成的单元的情况下,参见图33,图33是本申请实施例提供的数据传输装置1的一结构示意图。该数据传输装置1可以为第一设备或者可以设置于第一设备中的芯片或电路。如图33所示,该数据传输装置1包括:获取模块11、传输模块12、以及编码模块13。In the case of using an integrated unit, see FIG. 33 , which is a schematic structural diagram of a data transmission apparatus 1 provided by an embodiment of the present application. The data transmission apparatus 1 may be the first device or may be a chip or circuit provided in the first device. As shown in FIG. 33 , the data transmission device 1 includes: an acquisition module 11 , a transmission module 12 , and an encoding module 13 .
第一种设计中,获取模块11,用于获取N个第一数据包;传输模块12,用于传输该获取模块11获取到的N个第一数据包;编码模块13,用于对该获取模块11获取到的N个第一数据包进行编码并加编码包包头后得到M个第二数据包;该传输模块12,还用于传输该M个第二数据包。其中,该N个第一数据包的大小相等。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。该每个第一数据包的包头还包括数据包标识字段。该数据包标识字段用于指示该第一数据包的序列号。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数。In the first design, the acquisition module 11 is used to acquire N first data packets; the transmission module 12 is used to transmit the N first data packets acquired by the acquisition module 11; the encoding module 13 is used to acquire the N first data packets The N first data packets acquired by the module 11 are encoded and the encoded packet headers are added to obtain M second data packets; the transmission module 12 is also used for transmitting the M second data packets. Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The packet header of each first data packet further includes a data packet identification field. The data packet identification field is used to indicate the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers.
应理解,第一种设计中该数据传输装置1可对应执行前述实施例一,并且该数据传输装置1中的各个单元的上述操作或功能分别为了实现前述实施例一中第一设备的相应操作,其技术效果参见前述实施例一中的技术效果,为了简洁,在此不再赘述。It should be understood that, in the first design, the data transmission apparatus 1 can correspondingly execute the foregoing first embodiment, and the above operations or functions of each unit in the data transmission apparatus 1 are intended to implement the corresponding operations of the first device in the foregoing first embodiment, respectively. , and its technical effect can be referred to the technical effect in the foregoing Embodiment 1, which is not repeated here for brevity.
第二种设计中,获取模块11,用于获取N个第一数据包;编码模块13,用于对该获取模块11获取到的N个第一数据包进行编码并加编码包包头后得到M个第二数据包;传输模块12,用于传输该M个第二数据包。其中,该N个第一数据包的大小相等。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。该编码包包头包括编码因子字段。第一数据包是原数据包,第二数据包是编码包。M大于N,N和M均为正整数。In the second design, the acquisition module 11 is used to acquire N first data packets; the encoding module 13 is used to encode the N first data packets acquired by the acquisition module 11 and add the encoded packet header to obtain M. the second data packets; the transmission module 12 is used for transmitting the M second data packets. Wherein, the N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The encoded packet header includes an encoding factor field. The first data packet is an original data packet, and the second data packet is an encoded packet. M is greater than N, and both N and M are positive integers.
应理解,第二种设计中该数据传输装置1可对应执行前述实施例二,并且该数据传输装置1中的各个单元的上述操作或功能分别为了实现前述实施例二中第一设备的相应操作,其技术效果参见前述实施例二中的技术效果,为了简洁,在此不再赘述。It should be understood that in the second design, the data transmission apparatus 1 can correspondingly execute the foregoing second embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are to implement the corresponding operations of the first device in the foregoing second embodiment, respectively. , and its technical effect can be referred to the technical effect in the foregoing second embodiment, which is not repeated here for the sake of brevity.
第三种设计中,获取模块11,用于N个第一数据包;传输模块12,用于传输该获取模块11获取到的N个第一数据包;编码模块13,用于对该获取模块11获取到的N个第一数据包进行编码并加编码包包头后得到M个第二数据包;该传输模块12,还用于传输该M个第二数据包。其中,该N个第一数据包的大小不完全相等。每个第一数据包包括包头和数据。该每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息。该每个第一数据包的包头还包括数据包标识字段。该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等效原数据包,该Q个等效原数据包的大小相等。该每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。其中,第一数据包是原数据包,第二数据包是编码包。N、M以及Q均为正整数,Q小于或等于N。In the third design, the acquisition module 11 is used for N first data packets; the transmission module 12 is used to transmit the N first data packets acquired by the acquisition module 11; the encoding module 13 is used for the acquisition module 11. The N first data packets obtained are encoded and the encoded packet headers are added to obtain M second data packets; the transmission module 12 is also used for transmitting the M second data packets. Wherein, the sizes of the N first data packets are not completely equal. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field. The data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size. The packet header of each first data packet further includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. N, M, and Q are all positive integers, and Q is less than or equal to N.
应理解,第三种设计中该数据传输装置1可对应执行前述实施例四,并且该数据传输装置1中的各个单元的上述操作或功能分别为了实现前述实施例四中第一设备的相应操作,其技术效果参见前述实施例四中的技术效果,为了简洁,在此不再赘述。It should be understood that in the third design, the data transmission apparatus 1 can correspondingly execute the foregoing fourth embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are to implement the corresponding operations of the first device in the foregoing fourth embodiment, respectively. , and its technical effects refer to the technical effects in the foregoing fourth embodiment, which are not repeated here for brevity.
其中,上述三种设计中,上述获取模块11和上述编码模块13可以集成为一个模块,例如处理模块。上述传输模块12还可以称为收发模块。Among the above three designs, the above acquisition module 11 and the above encoding module 13 may be integrated into one module, such as a processing module. The above-mentioned transmission module 12 may also be referred to as a transceiver module.
参见图34,图34是本申请实施例提供的数据传输装置1的另一结构示意图。该数据传输装置1可以为第一设备或者可以设置于第一设备中的芯片或电路。如图34所示,该数据传输装置1包括:获取模块21、生成模块22、传输模块23、以及编码模块24。Referring to FIG. 34 , FIG. 34 is another schematic structural diagram of the data transmission apparatus 1 provided by the embodiment of the present application. The data transmission apparatus 1 may be the first device or may be a chip or circuit provided in the first device. As shown in FIG. 34 , the data transmission apparatus 1 includes: an acquisition module 21 , a generation module 22 , a transmission module 23 , and an encoding module 24 .
获取模块21,用于获取级联数据包;生成模块22,用于根据该获取模块21获取到的该级联数据包生成N个第一数据包;传输模块23,用于传输该生成模块22生成的N个第一数 据包;编码模块24,用于对该N个第一数据包进行编码并加编码包包头后得到M个第二数据包;该传输模块23,还用于传输该M个第二数据包。其中,该级联数据包包括级联包包头和级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。该级联包包头包括该级联数据包括的多个数据单元的级联信息。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是该级联数据包经过N等分后得到的第j份数据。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的序列号。其中,第一数据包是原数据包,第二数据包是编码包。N和M均为正整数。j的取值为区间[1,N]中的整数。The acquisition module 21 is used to acquire the concatenated data packets; the generation module 22 is used to generate N first data packets according to the concatenated data packets acquired by the acquisition module 21 ; the transmission module 23 is used to transmit the generation module 22 The N first data packets generated; the encoding module 24 is used to encode the N first data packets and obtain M second data packets after adding the encoded packet header; the transmission module 23 is also used to transmit the M second data packets a second packet. The concatenated data packet includes a concatenated packet header and concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The concatenated packet header includes concatenation information of a plurality of data units included in the concatenated data. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. Both N and M are positive integers. The value of j is an integer in the interval [1,N].
其中,上述获取模块21、上述生成模块22、以及上述编码模块24可以集成为一个模块,例如处理模块。上述传输模块23还可以称为收发模块。Wherein, the above-mentioned acquisition module 21, the above-mentioned generation module 22, and the above-mentioned encoding module 24 may be integrated into one module, such as a processing module. The above-mentioned transmission module 23 may also be referred to as a transceiver module.
应理解,该数据传输装置1可对应执行前述实施例三,并且该数据传输装置1中的各个单元的上述操作或功能分别为了实现前述实施例三中第一设备的相应操作,其技术效果参见前述实施例三中的技术效果,为了简洁,在此不再赘述。It should be understood that the data transmission apparatus 1 can correspondingly execute the foregoing third embodiment, and the above-mentioned operations or functions of each unit in the data transmission apparatus 1 are respectively in order to realize the corresponding operations of the first device in the foregoing third embodiment. For the sake of brevity, the technical effects in the foregoing third embodiment will not be repeated here.
参见图35,图35是本申请实施例提供的数据传输装置2的一结构示意图。该数据传输装置2可以为第二设备或者可以设置于第二设备中的芯片或电路。如图35所示,该数据传输装置2包括:获取模块31、译码模块32、以及还原模块33。Referring to FIG. 35 , FIG. 35 is a schematic structural diagram of a data transmission apparatus 2 provided by an embodiment of the present application. The data transmission apparatus 2 may be the second device or may be a chip or circuit provided in the second device. As shown in FIG. 35 , the data transmission device 2 includes: an acquisition module 31 , a decoding module 32 , and a restoration module 33 .
第一种设计中,获取模块31,用于获取P个数据包;译码模块32,用于对该P个数据包进行译码,获得译码后的N个第一数据包;还原模块33,用于根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。每个第一数据包包括包头和数据。该每个第一数据包的包头包括数据包标识字段。该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包的大小相等。该每个第一数据包的包头包括该第一数据包的数据部分对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。其中,第一数据包是原数据包,第二数据包是编码包。P和K均为正整数,K小于或等于P。P大于或等于N。In the first design, the acquisition module 31 is used to acquire P data packets; the decoding module 32 is used to decode the P data packets to obtain N first data packets after decoding; the restoration module 33 is used to restore the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets. The P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data. The header of each first data packet includes a data packet identification field. The data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets have the same size. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data portion of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
可选的,上述译码模块32,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。Optionally, the above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine the K first data packets and the P-K first data packets from the P data packets. Two data packets; analyze the packet header of each first data packet in the K first data packets by the analysis method of the original data packet, obtain the serial number of the first data packet, and use the analysis method of the encoded packet to analyze the P-K data packets The encoded packet header of the second data packet in the second data packet obtains the encoding factor field; according to the sequence numbers of the K first data packets and the indication of the encoding factor field in the packet header of the P-K second data packets, the coefficient factor is formed matrix; using the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, and obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets.
可选的,在该N个第一数据包和/或该M个第二数据包中携带该N个第一数据包和该M个第二数据包之间的对应关系。具体的,该对应关系可以携带在该N个第一数据包的包头和/或该M个第二数据包的包头。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该M个第二数据包的包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息来指示该对应关系。Optionally, the corresponding relationship between the N first data packets and the M second data packets is carried in the N first data packets and/or the M second data packets. Specifically, the corresponding relationship may be carried in the packet headers of the N first data packets and/or the packet headers of the M second data packets. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the headers of the M second data packets may include identification information for indicating the N first data packets from which the second data packets are encoded to indicate the corresponding relationship.
可选的,上述长度阈值是编码包长度阈值L1。上述译码模块32,还具体用于:比较该P个数据包中每个数据包的长度与该编码包长度阈值L1的大小关系;如果该P个数据包中某个数据包的长度等于该编码包长度阈值L1,则确定该数据包是第二数据包(编码包);如果该P个数据包中某个数据包的长度小于该编码包长度阈值L1,则确定该数据包是第一数据包(原数据包);从而从该P个数据包中确定出K个第一数据包和P-K个第二数据包。Optionally, the above-mentioned length threshold is an encoded packet length threshold L1. The above-mentioned decoding module 32 is also specifically used for: comparing the length of each data packet in the P data packets and the size relationship of the encoded packet length threshold L1; if the length of a certain data packet in the P data packets is equal to the Encoded packet length threshold L1, then determine that the data packet is the second data packet (encoded packet); if the length of a data packet in the P data packets is less than the encoded packet length threshold L1, then determine that the data packet is the first packet data packets (original data packets); thus, K first data packets and P-K second data packets are determined from the P data packets.
可选的,上述长度阈值是原数据包长度阈值L2。上述译码模块32,还具体用于:比较该P个数据包中每个数据包的长度与该原数据包长度阈值L2的大小关系;如果该P个数据包中某个数据包的长度小于或等于该原数据包长度阈值L2,则确定该数据包是第一数据包(原数据包);如果该P个数据包中某个数据包的长度大于该原数据包长度阈值L2,则确定该数据包是第二数据包(编码包);从而从该P个数据包中确定出K个第一数据包和P-K个第二数据包。Optionally, the above-mentioned length threshold is the original data packet length threshold L2. The above-mentioned decoding module 32 is also specifically used for: comparing the length of each data packet in the P data packets and the size relationship of the original data packet length threshold L2; if the length of a certain data packet in the P data packets is less than or equal to the original packet length threshold L2, then determine that the packet is the first packet (original packet); if the length of a certain packet in the P packets is greater than the original packet length threshold L2, then determine The data packet is a second data packet (encoded packet); thus K first data packets and P-K second data packets are determined from the P data packets.
可选的,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包。Optionally, the header of each first data packet further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is an original data packet.
可选的,每个第二数据包的编码包包头包括第二指示信息,用于指示该第二指示信息所在的第二数据包是编码包。Optionally, the encoded packet header of each second data packet includes second indication information, which is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
这样,以上译码模块32可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。In this way, the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
应理解,该数据传输装置2可对应执行前述实施例一,并且该数据传输装置2中的各个单元的上述操作或功能分别为了实现前述实施例一中第二设备的相应操作,其技术效果参见前述实施例一中的技术效果,为了简洁,在此不再赘述。It should be understood that the data transmission device 2 can correspondingly execute the foregoing first embodiment, and the above operations or functions of each unit in the data transmission device 2 are respectively in order to realize the corresponding operations of the second device in the foregoing first embodiment. For technical effects, please refer to For the sake of brevity, the technical effects in the foregoing Embodiment 1 will not be repeated here.
第二种设计中,获取模块31,用于获取P个数据包;译码模块32,用于对该P个数据包进行译码,获得译码后的N个第一数据包;还原模块33,用于根据该N个第一数据包中每个第一数据包的包头包括的分割和级联信息,将该N个第一数据包的数据还原成至少一个数据单元。其中,该P个数据包均是编码包。每个数据包包括编码包包头和编码数据,该编码包包头包括编码因子字段。该N个第一数据包的大小相等。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息。该分割和级联信息用于指示该第一数据包的数据与该至少一个数据单元的对应关系。其中,第一数据包是原数据包,第二数据包是编码包。P大于或等于N,N为正整数,P为正整数。In the second design, the acquisition module 31 is used to acquire P data packets; the decoding module 32 is used to decode the P data packets to obtain the decoded N first data packets; the restoration module 33 is used to restore the data of the N first data packets into at least one data unit according to the segmentation and concatenation information included in the packet header of each of the N first data packets. The P data packets are all encoded packets. Each data packet includes an encoded packet header and encoded data, the encoded packet header including an encoding factor field. The N first data packets have the same size. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation and concatenation information of at least one data unit corresponding to the data of the first data packet. The segmentation and concatenation information is used to indicate the correspondence between the data of the first data packet and the at least one data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. P is greater than or equal to N, where N is a positive integer and P is a positive integer.
可选的,上述译码模块32,具体用于:采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。Optionally, the above-mentioned decoding module 32 is specifically configured to: parse the encoded packet headers of the P data packets by using the parsing method of the encoded packets to obtain the encoding factor field carried by each encoded packet header, and utilize the encoding of the P data packets. The indication of the encoding factor field in the packet header constitutes a coefficient factor matrix; the encoded data of the P data packets are decoded by using the coefficient factor matrix, and N first data packets after decoding are obtained.
应理解,该数据传输装置2可对应执行前述实施例二,并且该数据传输装置2中的各个单元的上述操作或功能分别为了实现前述实施例二中第二设备的相应操作,其技术效果参见前述实施例二中的技术效果,为了简洁,在此不再赘述。It should be understood that the data transmission apparatus 2 can correspondingly execute the foregoing second embodiment, and the above operations or functions of each unit in the data transmission apparatus 2 are respectively in order to realize the corresponding operations of the second device in the foregoing second embodiment. For the sake of brevity, the technical effects in the foregoing Embodiment 2 will not be repeated here.
第三种设计中,获取模块31,用于获取P个数据包;译码模块32,用于对该P个数据包进行译码,获得译码后的N个第一数据包,该N个第一数据包的大小不完全相等;还原模块33,用于根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。每个第一数据包包括包头和数据。该每个第一数据包的包头中包括该第一数 据包的数据对应的数据单元的分割信息。该每个第一数据包的包头还包括数据包标识字段。该数据包标识字段用于指示该第一数据包的序列号。该N个第一数据包对应用于编码的Q个等效原数据包,该Q个等效原数据包的大小相等。该每个第一数据包的包头还包括编码因子字段或偏移字段。该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。其中,第一数据包是原数据包,第二数据包是编码包。P大于或等于N,N大于或等于Q,P、N以及Q均为正整数。In the third design, the obtaining module 31 is used to obtain P data packets; the decoding module 32 is used to decode the P data packets to obtain N first data packets after decoding, the N first data packets. The sizes of the first data packets are not completely equal; the restoring module 33 is used to restore the data of the N first data packets into a One or more data units. The P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data. The header of each first data packet includes segmentation information of the data unit corresponding to the data of the first data packet. The packet header of each first data packet further includes a data packet identification field. The data packet identification field is used to indicate the sequence number of the first data packet. The N first data packets correspond to the encoded Q equivalent original data packets, and the Q equivalent original data packets have the same size. The packet header of each first data packet further includes a coding factor field or an offset field. The offset field is used to indicate the offset number of the sequence number of the first data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet. The first data packet is an original data packet, and the second data packet is an encoded packet. P is greater than or equal to N, N is greater than or equal to Q, and P, N, and Q are all positive integers.
可选的,上述每个第一数据包的包头包括编码因子字段。上述译码模块32,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中编码因子字段的指示和该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。Optionally, the header of each first data packet includes a coding factor field. The above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the P-K second data packets are analyzed by the analysis method of the encoded packet In the coding packet header of the second data packet, the coding factor field is obtained; according to the indication of the coding factor field in the packet header of the K first data packets and the indication of the coding factor field in the coding packet header of the P-K second data packets, A coefficient factor matrix is formed; the encoded data of the P-K second data packets and the K first data packets are jointly decoded using the coefficient factor matrix to obtain N decoded first data packets. Wherein, the rank of the coefficient factor matrix is equal to N.
可选的,上述每个第一数据包的包头还包括偏移字段,该偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数。上述译码模块32,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号和偏移字段,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的包头中第一数据包的序列号和偏移字段、和该P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N个第一数据包。上述长度阈值是编码包长度阈值L1。或者,上述长度阈值是原数据包长度阈值L2。Optionally, the header of each first data packet further includes an offset field, and the offset field is used to indicate that the sequence number of the first data packet is relative to the sequence of the equivalent original data packet corresponding to the first data packet. number of offsets. The above-mentioned decoding module 32 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets; The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number and offset field of the first data packet are obtained, and the P-K data packets are analyzed by the analysis method of the encoded packet The encoding factor field is obtained from the encoded packet header of the second data packet in the second data packet; according to the sequence number and offset field of the first data packet in the packet header of the K first data packets, and the P-K second data packets The indication of the encoding factor field in the packet header of the encoded packet forms a coefficient factor matrix; the encoded data of the P-K second data packets and the K first data packets are jointly decoded using the coefficient factor matrix to obtain the decoded N first packets. The above-mentioned length threshold is the encoded packet length threshold L1. Alternatively, the above-mentioned length threshold is the original packet length threshold L2.
可选的,在该第二数据包的包头携带该Q个等效原数据包和该第二数据包之间的对应关系。这样,可以基于该对应关系来获得上述系数因子矩阵。可选的,可以在该第二数据包的包头包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息来指示该对应关系。Optionally, the header of the second data packet carries the correspondence between the Q equivalent original data packets and the second data packet. In this way, the above-mentioned coefficient factor matrix can be obtained based on the correspondence. Optionally, the packet header of the second data packet may include identification information for indicating the Q equivalent original data packets obtained by encoding the second data packet to indicate the corresponding relationship.
可选的,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包;每个第二数据包包括编码包包头和编码数据,该每个第二数据包的编码包包头中包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。这样,以上译码模块32可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。Optionally, the packet header of each of the first data packets further includes first indication information, which is used to indicate that the first data packet where the first indication information is located is the original data packet; each second data packet includes an encoded packet header and Encoded data, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet. In this way, the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
应理解,该数据传输装置2可对应执行前述实施例四,并且该数据传输装置2中的各个单元的上述操作或功能分别为了实现前述实施例四中第二设备的相应操作,其技术效果参见前述实施例四中的技术效果,为了简洁,在此不再赘述。It should be understood that the data transmission device 2 can correspondingly execute the foregoing fourth embodiment, and the above-mentioned operations or functions of each unit in the data transmission device 2 are respectively in order to realize the corresponding operations of the second device in the foregoing fourth embodiment. For the sake of brevity, the technical effects in the foregoing Embodiment 4 will not be repeated here.
其中,上述三种设计中,上述获取模块31、上述译码模块32、以及上述还原模块33可以集成为一个模块,例如处理模块。上述获取模块31可以包括收发单元,用于收发数据包或信息等。Among the above three designs, the acquisition module 31 , the decoding module 32 , and the restoration module 33 may be integrated into one module, such as a processing module. The above obtaining module 31 may include a transceiving unit for transceiving data packets or information and the like.
参见图36,图36是本申请实施例提供的数据传输装置2的另一结构示意图。该数据传输装置2可以为第二设备或者可以设置于第二设备中的芯片或电路。如图36所示,该数据传输装置2包括:获取模块41、译码模块42、还原模块43、以及分割模块44。Referring to FIG. 36 , FIG. 36 is another schematic structural diagram of the data transmission apparatus 2 provided by the embodiment of the present application. The data transmission apparatus 2 may be the second device or may be a chip or circuit provided in the second device. As shown in FIG. 36 , the data transmission device 2 includes: an acquisition module 41 , a decoding module 42 , a restoration module 43 , and a segmentation module 44 .
获取模块41,用于获取P个数据包;译码模块42,用于对该获取模块41获取到的P个数据包进行译码,获得译码后的N个第一数据包;还原模块43,用于按照该N个第一数据包的序列号大小顺序,将该N个第一数据包的数据还原成一个级联数据包;分割模块44,还用于根据该级联包包头包括的形成该级联数据的多个数据单元的级联信息,将该级联数据分割成多个数据单元。其中,该P个数据包中包括K个第一数据包和P-K个第二数据包。每个第一数据包包括包头和数据。该每个第一数据包的包头包括该第一数据包的序列号。该N个第一数据包的数据大小相等,且该N个第一数据包的包头大小相等。该N个第一数据包中第j个第一数据包的数据是级联数据包经过N等分后得到的第j份数据。该级联数据包包括该级联包包头和该级联数据。该级联数据包括多个数据段级联得到的数据。其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分。该多个数据段中除该起始数据段和该末尾数据段外的每个数据段是一个数据单元。其中,第一数据包是原数据包,第二数据包是编码包。j的取值为区间[1,N]中的整数。P和K均为正整数,K小于或等于P。P大于或等于N。The acquisition module 41 is used to acquire P data packets; the decoding module 42 is used to decode the P data packets acquired by the acquisition module 41 to obtain the decoded N first data packets; the restoration module 43 , is used to restore the data of the N first data packets into a concatenated data packet according to the sequence number size order of the N first data packets; the segmentation module 44 is also used for according to the packet header of the concatenated packet. The concatenation information of a plurality of data units of the concatenated data is formed, and the concatenated data is divided into a plurality of data units. The P data packets include K first data packets and P-K second data packets. Each first data packet includes a packet header and data. The header of each first data packet includes the sequence number of the first data packet. Data sizes of the N first data packets are equal, and packet header sizes of the N first data packets are equal. The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts. The concatenated data packet includes the concatenated packet header and the concatenated data. The concatenated data includes data obtained by concatenating multiple data segments. Wherein at least one of the start data segment and the end data segment is all or part of a data unit. Each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit. The first data packet is an original data packet, and the second data packet is an encoded packet. The value of j is an integer in the interval [1,N]. Both P and K are positive integers, and K is less than or equal to P. P is greater than or equal to N.
可选的,上述译码模块42,具体用于:根据该P个数据包中每个数据包的长度以及长度阈值,从该P个数据包中确定出K个第一数据包和P-K个第二数据包;采用原数据包的解析方式解析该K个第一数据包中每个第一数据包的包头,获得该第一数据包的序列号,并采用编码包的解析方式解析该P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据该K个第一数据包的序列号、和该P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用该系数因子矩阵对该P-K个第二数据包的编码数据和该K个第一数据包进行联合译码,获得译码后的N-K个第一数据包。其中,该系数因子矩阵的秩(rank)等于N。该译码后的N-K个第一数据包和该K个第一数据包属于N个第一数据包。其中,该长度阈值是编码包长度阈值L1。或者,该长度阈值是原数据包长度阈值L2。Optionally, the above-mentioned decoding module 42 is specifically used for: according to the length of each data packet in the P data packets and the length threshold, determine the K first data packets and the P-K first data packets from the P data packets. Two data packets; analyze the packet header of each first data packet in the K first data packets by the analysis method of the original data packet, obtain the serial number of the first data packet, and use the analysis method of the encoded packet to analyze the P-K data packets The encoded packet header of the second data packet in the second data packet obtains the encoding factor field; according to the sequence numbers of the K first data packets and the indication of the encoding factor field in the packet header of the P-K second data packets, the coefficient is formed factor matrix; using the coefficient factor matrix to jointly decode the encoded data of the P-K second data packets and the K first data packets, and obtain the decoded N-K first data packets. Wherein, the rank of the coefficient factor matrix is equal to N. The decoded N-K first data packets and the K first data packets belong to the N first data packets. The length threshold is the encoded packet length threshold L1. Alternatively, the length threshold is the original packet length threshold L2.
可选的,上述每个第一数据包的包头还包括第一指示信息,用于指示该第一指示信息所在的第一数据包是原数据包。Optionally, the header of each first data packet further includes first indication information, which is used to indicate that the first data packet in which the first indication information is located is an original data packet.
每个第二数据包包括编码包包头和编码数据,可选的,该每个第二数据包的编码包包头包括第二指示信息,该第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。Each second data packet includes an encoded packet header and encoded data. Optionally, the encoded packet header of each second data packet includes second indication information, and the second indication information is used to indicate where the second indication information is located. The second data packet is an encoded packet.
这样,以上译码模块32可以根据包头中的第一指示信息和/或第二指示信息来确定该数据包是原数据包还是编码数据包,进而采用相对应的解析方式对该数据包的包头进行解析。In this way, the above decoding module 32 can determine whether the data packet is an original data packet or an encoded data packet according to the first indication information and/or the second indication information in the packet header, and then use a corresponding parsing method for the packet header of the data packet to parse.
其中,上述获取模块41、上述译码模块42、上述还原模块43、以及上述分割模块44可以集成为一个模块,例如处理模块。上述获取模块41可以包括收发单元,用于收发数据包或信息等。The acquisition module 41, the decoding module 42, the restoration module 43, and the segmentation module 44 may be integrated into one module, such as a processing module. The above obtaining module 41 may include a transceiving unit for transceiving data packets or information and the like.
应理解,该数据传输装置2可对应执行前述实施例三,并且该数据传输装置2中的各个单元的上述操作或功能分别为了实现前述实施例三中第二设备的相应操作,其技术效果参见前述实施例三中的技术效果,为了简洁,在此不再赘述。It should be understood that the data transmission device 2 can correspondingly execute the foregoing third embodiment, and the above operations or functions of each unit in the data transmission device 2 are respectively to implement the corresponding operations of the second device in the foregoing third embodiment. For the sake of brevity, the technical effects in the foregoing third embodiment will not be repeated here.
可选的,以上各实施例的编码模块可以对应于编码器,译码模块可以对应于译码器。编码器或译码器可以由硬件电路或软件来实现。除编码模块和译码模块,以及和收发单元对应的模块之外的模块的功能可以由处理器来实现。Optionally, the encoding module in the above embodiments may correspond to an encoder, and the decoding module may correspond to a decoder. The encoder or decoder can be implemented by hardware circuits or software. The functions of the modules other than the encoding module, the decoding module, and the modules corresponding to the transceiver unit may be implemented by the processor.
参见图37,图37是本申请实施例提供的通信装置的结构示意图。如图37所示,本申请 实施例提供的通信装置1000可用于实现上述方法实施例中描述的方法,可以参见上述方法实施例中的说明。该通信装置1000可以是前述第一设备和前述第二设备中的任意一种。Referring to FIG. 37 , FIG. 37 is a schematic structural diagram of a communication apparatus provided by an embodiment of the present application. As shown in FIG. 37 , the communication apparatus 1000 provided in this embodiment of the present application can be used to implement the method described in the foregoing method embodiment, and reference may be made to the description in the foregoing method embodiment. The communication apparatus 1000 may be any one of the aforementioned first device and the aforementioned second device.
通信装置1000包括一个或多个处理器1001。处理器1001可以是通用处理器或者专用处理器等。例如可以是基带处理器、或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对装置(如,通信设备、基站或芯片等)进行控制,执行软件程序,处理软件程序的数据。该装置可以包括收发单元,用以实现信号的输入(接收)和输出(发送)。例如,装置可以为芯片,该收发单元可以是芯片的输入和/或输出电路,或者通信接口。该芯片可以用于通信设备或接入网设备(比如基站)。又如,装置可以为通信设备(比如UE)或接入网设备(比如基站),该收发单元可以为收发器,射频芯片等。 Communication device 1000 includes one or more processors 1001 . The processor 1001 may be a general-purpose processor or a special-purpose processor, or the like. For example, it may be a baseband processor, or a central processing unit. The baseband processor may be used to process communication protocols and communication data, and the central processing unit may be used to control devices (eg, communication equipment, base stations or chips, etc.), execute software programs, and process data of software programs. The apparatus may include a transceiving unit for implementing signal input (reception) and output (transmission). For example, the device may be a chip, and the transceiver unit may be an input and/or output circuit of the chip, or a communication interface. The chip can be used in communication equipment or access network equipment (such as base stations). For another example, the apparatus may be a communication device (such as a UE) or an access network device (such as a base station), and the transceiver unit may be a transceiver, a radio frequency chip, or the like.
通信装置1000包括一个或多个处理器1001,该一个或多个处理器1001可实现前述任一实施例中第一设备、或第二设备的方法。The communication apparatus 1000 includes one or more processors 1001, and the one or more processors 1001 can implement the method of the first apparatus or the second apparatus in any of the foregoing embodiments.
可选的,处理器1001除了实现前述任一实施例的方法,还可以实现其他功能。Optionally, the processor 1001 may also implement other functions in addition to implementing the method in any of the foregoing embodiments.
可选的,一种设计中,处理器1001也可以包括指令1003,所述指令可以在所述处理器上被运行,使得通信装置1000执行上述任一方法实施例中描述的方法。Optionally, in one design, the processor 1001 may also include instructions 1003, and the instructions may be executed on the processor, so that the communication apparatus 1000 executes the method described in any of the foregoing method embodiments.
在又一种可能的设计中,通信装置1000也可以包括电路,所述电路可以实现前述任一方法实施例中第一设备或第二设备的功能。In yet another possible design, the communication apparatus 1000 may also include a circuit, and the circuit may implement the function of the first device or the second device in any of the foregoing method embodiments.
在又一种可能的设计中,通信装置1000中可以包括一个或多个存储器1002,其上存有指令1004,所述指令可在所述处理器上被运行,使得通信装置1000执行上述任一方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的处理器中也可以存储指令和/或数据。例如,所述一个或多个存储器1002可以存储上述实施例中所描述的第一数据包,或者上述实施例中所涉及的其他信息。所述处理器和存储器可以单独设置,也可以集成在一起。In yet another possible design, the communication device 1000 may include one or more memories 1002 having stored thereon instructions 1004 that may be executed on the processor to cause the communication device 1000 to perform any of the above The method described in the method example. Optionally, data may also be stored in the memory. Instructions and/or data may also be stored in the optional processor. For example, the one or more memories 1002 may store the first data packet described in the above embodiments, or other information involved in the above embodiments. The processor and the memory can be provided separately or integrated together.
在又一种可能的设计中,通信装置1000还可以包括收发单元1005以及天线1006,或者,包括通信接口。收发单元1005可以称为收发机、收发电路、或者收发器等,用于通过天线1006实现装置的收发功能。所述通信接口(图中未示出),可以用于核心网设备和接入网设备,或是,接入网设备和接入网设备之间的通信。可选的,该通信接口可以为有线通信的接口,比如光纤通信的接口。In yet another possible design, the communication apparatus 1000 may further include a transceiver unit 1005 and an antenna 1006, or a communication interface. The transceiver unit 1005 may be referred to as a transceiver, a transceiver circuit, or a transceiver, etc., and is used to implement the transceiver function of the device through the antenna 1006 . The communication interface (not shown in the figure) can be used for the communication between the core network device and the access network device, or between the access network device and the access network device. Optionally, the communication interface may be a wired communication interface, such as an optical fiber communication interface.
处理器1001可以称为处理单元,对装置(比如通信设备)进行控制。The processor 1001, which may be referred to as a processing unit, controls an apparatus such as a communication device.
应理解,在本申请实施例中的处理器可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that the processor in the embodiments of the present application may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (digital signal processors, DSP), dedicated integrated Circuit (application specific integrated circuit, ASIC), off-the-shelf programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存 储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。It should also be understood that the memory in the embodiments of the present application may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically programmable Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory. Volatile memory may be random access memory (RAM), which acts as an external cache. By way of example and not limitation, many forms of random access memory (RAM) are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (DRAM) Access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory Fetch memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如光纤,或是无线,例如红外、无线、微波等,方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。The above embodiments may be implemented in whole or in part by software, hardware (eg, circuits), firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer may be a general purpose computer, special purpose computer, computer network, or other programmable device. The computer instructions may be stored in or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be downloaded from a website site, computer, server or data center Transmission to another website site, computer, server or data center by means of wire, such as optical fiber, or wireless, such as infrared, wireless, microwave, etc. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, or the like that contains one or more sets of available media. The usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVDs), or semiconductor media. The semiconductor medium may be a solid state drive.
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行前述实施例所描述的第一设备的方法步骤;或者当该计算机程序代码在计算机上运行时,使得该计算机执行前述实施例所描述的第二设备的方法步骤。The embodiments of the present application also provide a computer program product, the computer program product includes computer program code, when the computer program code is run on a computer, the computer program code causes the computer to execute the method steps of the first device described in the foregoing embodiments; or When the computer program code is run on a computer, the computer is caused to perform the method steps of the second device described in the foregoing embodiments.
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有程序指令,当其在计算机上运行时,使得该计算机执行前述实施例所描述的第一设备的方法步骤;或者当该计算机程序代码在计算机上运行时,使得该计算机执行前述实施例所描述的第二设备的方法步骤。Embodiments of the present application further provide a computer-readable storage medium, where program instructions are stored on the computer-readable storage medium, and when the computer-readable storage medium runs on a computer, the computer can execute the method steps of the first device described in the foregoing embodiments. ; or when the computer program code is run on a computer, causing the computer to execute the method steps of the second device described in the foregoing embodiments.
本申请实施例还提供一种装置,该装置可以为芯片。该芯片包括处理器。该处理器用于读取并执行存储器中存储的计算机程序,以执行前述任一实施例的任意可能的实现方式中的方法。可选的,该芯片还包括存储器,该存储器与该处理器通过电路或电线连接。进一步可选的,该芯片还包括通信接口,该处理器与该通信接口连接。该通信接口用于接收待处理的数据和/或信号,该处理器从该通信接口获取该数据和/或信号,并对该数据和/或信号进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。An embodiment of the present application further provides a device, and the device may be a chip. The chip includes a processor. The processor is configured to read and execute a computer program stored in the memory to perform the method of any possible implementation of any of the foregoing embodiments. Optionally, the chip further includes a memory, and the memory is connected to the processor through a circuit or a wire. Further optionally, the chip further includes a communication interface, and the processor is connected to the communication interface. The communication interface is used for receiving data and/or signals to be processed, the processor obtains the data and/or signals from the communication interface, processes the data and/or signals, and outputs the processing result through the communication interface. The communication interface may be an input-output interface.
可选的,上述的处理器与存储器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。Optionally, the above-mentioned processor and memory may be physically independent units, or the memory may also be integrated with the processor.
本申请的另一实施例中,还提供一种通信系统,该通信系统包括第一设备和第二设备。该第一设备和该第二设备可以执行前述任一实施例中的方法。In another embodiment of the present application, a communication system is also provided, where the communication system includes a first device and a second device. The first device and the second device may perform the method in any of the foregoing embodiments.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be implemented. The process can be completed by instructing the relevant hardware by a computer program, and the program can be stored in a computer-readable storage medium. When the program is executed , which may include the processes of the foregoing method embodiments. The aforementioned storage medium includes: ROM or random storage memory RAM, magnetic disk or optical disk and other mediums that can store program codes.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present application, but the protection scope of the present application is not limited to this. should be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (40)

  1. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取N个第一数据包,所述N个第一数据包的大小相等,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,所述分割和级联信息用于指示该第一数据包的数据与所述至少一个数据单元的对应关系,所述每个第一数据包的包头还包括数据包标识字段,所述数据包标识字段用于指示该第一数据包的序列号;Obtain N first data packets, the size of the N first data packets are equal, each first data packet includes a packet header and data, and the packet header of each first data packet includes the data corresponding to the first data packet The segmentation and concatenation information of at least one data unit of the Also includes a data packet identification field, the data packet identification field is used to indicate the sequence number of the first data packet;
    传输所述N个第一数据包;transmitting the N first data packets;
    对所述N个第一数据包进行编码并加编码包包头后得到M个第二数据包,所述编码包包头包括编码因子字段,N和M均为正整数;After the N first data packets are encoded and the encoded packet header is added, M second data packets are obtained, and the encoded packet header includes an encoding factor field, and N and M are both positive integers;
    传输所述M个第二数据包,其中第一数据包是原数据包,第二数据包是编码包。The M second data packets are transmitted, wherein the first data packet is an original data packet and the second data packet is an encoded packet.
  2. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取P个数据包,所述P个数据包中包括K个第一数据包和P-K个第二数据包,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括数据包标识字段,所述数据包标识字段用于指示所述第一数据包的序列号,每个第二数据包包括编码包包头和编码数据,所述每个第二数据包的编码包包头包括编码因子字段;P和K均为正整数,K小于或等于P;Obtain P data packets, the P data packets include K first data packets and P-K second data packets, each first data packet includes a packet header and data, and the packet header of each first data packet includes A data packet identification field, the data packet identification field is used to indicate the sequence number of the first data packet, each second data packet includes an encoded packet header and encoded data, and the encoded packet header of each second data packet Including the coding factor field; both P and K are positive integers, and K is less than or equal to P;
    对所述P个数据包进行译码,获得译码后的N个第一数据包,所述N个第一数据包的大小相等,所述每个第一数据包的包头还包括所述第一数据包的数据部分对应的至少一个数据单元的分割和级联信息,所述分割和级联信息用于指示所述第一数据包的数据与所述至少一个数据单元的对应关系;N为正整数,P大于或等于N。The P data packets are decoded to obtain N first data packets after decoding, the N first data packets are equal in size, and the packet header of each first data packet also includes the first data packet. The segmentation and concatenation information of at least one data unit corresponding to the data part of a data packet, the segmentation and concatenation information is used to indicate the corresponding relationship between the data of the first data packet and the at least one data unit; N is Positive integer, P is greater than or equal to N.
  3. 根据权利要求2所述的方法,其特征在于,所述对所述P个数据包进行译码,获得译码后的N个第一数据包,包括:The method according to claim 2, wherein the decoding the P data packets to obtain the decoded N first data packets, comprising:
    根据所述P个数据包中每个数据包的长度以及长度阈值,从所述P个数据包中确定出K个第一数据包和P-K个第二数据包;According to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets;
    采用原数据包的解析方式解析所述K个第一数据包中每个第一数据包的包头,获得所述第一数据包的序列号,并采用编码包的解析方式解析所述P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the P-K first data packet is analyzed by the analysis method of the encoded packet. The encoding packet header of the second data packet in the two data packets obtains the encoding factor field;
    根据所述K个第一数据包的序列号和所述P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;采用所述系数因子矩阵对所述P-K个第二数据包的编码数据和所述K个第一数据包进行联合译码,获得译码后的N-K个第一数据包,K为小于或等于N的正整数;According to the sequence numbers of the K first data packets and the indication of the coding factor field in the packet header of the P-K second data packets, a coefficient factor matrix is formed; the coefficient factor matrix is used for the P-K second data packets The encoded data and the K first data packets are jointly decoded to obtain N-K first data packets after decoding, and K is a positive integer less than or equal to N;
    所述译码后的N-K个第一数据包和所述K个第一数据包属于N个第一数据包。The decoded N-K first data packets and the K first data packets belong to the N first data packets.
  4. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取N个第一数据包,所述N个第一数据包的大小相等,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括该第一数据包的数据对应的至少一个数据单元的分割和级联信息,所述分割和级联信息用于指示该第一数据包的数据与所述至少一个数据单元的对 应关系;Obtain N first data packets, the size of the N first data packets are equal, each first data packet includes a packet header and data, and the packet header of each first data packet includes the data corresponding to the first data packet The segmentation and concatenation information of at least one data unit of , the segmentation and concatenation information are used to indicate the correspondence between the data of this first data packet and the at least one data unit;
    对所述N个第一数据包进行编码并加编码包包头后得到M个第二数据包,所述编码包包头包括编码因子字段,M大于N,N和M均为正整数;After the N first data packets are encoded and the encoded packet header is added, M second data packets are obtained, and the encoded packet header includes an encoding factor field, where M is greater than N, and both N and M are positive integers;
    传输所述M个第二数据包,其中,第一数据包是原数据包,第二数据包是编码包。The M second data packets are transmitted, wherein the first data packets are original data packets and the second data packets are encoded packets.
  5. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取P个数据包,所述P个数据包均是编码包,每个数据包包括编码包包头和编码数据,所述编码包包头包括编码因子字段;Acquire P data packets, the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field;
    对所述P个数据包进行译码,获得译码后的N个第一数据包,所述N个第一数据包的大小相等,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括所述第一数据包的数据对应的至少一个数据单元的分割和级联信息,所述分割和级联信息用于指示所述第一数据包的数据与所述至少一个数据单元的对应关系;P和N均为正整数,P大于或等于N。Decode the P data packets to obtain decoded N first data packets, the N first data packets are equal in size, each first data packet includes a packet header and data, and each of the N first data packets is equal in size. The header of the first data packet includes division and concatenation information of at least one data unit corresponding to the data of the first data packet, and the division and concatenation information is used to indicate that the data of the first data packet is related to the at least one data unit. The correspondence of a data unit; both P and N are positive integers, and P is greater than or equal to N.
  6. 根据权利要求5所述的方法,其特征在于,所述对所述P个数据包进行译码,获得译码后的N个第一数据包,包括:The method according to claim 5, wherein the decoding the P data packets to obtain the decoded N first data packets, comprising:
    采用编码包的解析方式解析该P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用该P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;Adopt the parsing mode of the coded packet to parse the coded packet headers of the P data packets to obtain the coding factor field carried by each coded packet header, and utilize the indication of the coding factor field in the coded packet header of the P data packets to form a coefficient factor matrix;
    采用该系数因子矩阵对该P个数据包的编码数据进行译码,获得译码后的N个第一数据包。The encoded data of the P data packets are decoded by using the coefficient factor matrix, and N first data packets after decoding are obtained.
  7. 根据权利要求1-3中任一项所述的方法,其特征在于,所述每个第一数据包的包头还包括第一指示信息,所述第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包;和/或,The method according to any one of claims 1-3, wherein the packet header of each first data packet further includes first indication information, and the first indication information is used to indicate the first indication information The first data packet in which it is located is the original data packet; and/or,
    每个第二数据包的编码包包头还包括第二指示信息,所述第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。The encoded packet header of each second data packet further includes second indication information, where the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,一个第一数据包的数据包括至少一个数据段,一个数据段包括一个数据单元的全部或部分;The method according to any one of claims 1-7, wherein the data of a first data packet includes at least one data segment, and a data segment includes all or part of a data unit;
    所述分割和级联信息包括:The segmentation and concatenation information includes:
    指示该第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元是否被分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;Information indicating whether the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet is divided, or indicating the sequence number in the data unit corresponding to the data segment in the data of the first data packet information on whether the data unit with the largest and/or smallest sequence number is split;
    指示该第一数据包的数据包括的第i个数据段是否是该第一数据包的数据中的最后一个数据段的信息;Indicate whether the i-th data segment included in the data of the first data packet is the information of the last data segment in the data of the first data packet;
    以及指示所述第i个数据段的长度的信息;and information indicating the length of the i-th data segment;
    其中,i的取值为1至该第一数据包的数据包括的数据段总数。Wherein, the value of i ranges from 1 to the total number of data segments included in the data of the first data packet.
  9. 根据权利要求1-7中任一项所述的方法,其特征在于,一个第一数据包的数据包括至少一个数据段,一个数据段包括一个数据单元的全部或部分;The method according to any one of claims 1-7, wherein the data of a first data packet includes at least one data segment, and a data segment includes all or part of a data unit;
    所述分割和级联信息包括:The segmentation and concatenation information includes:
    指示该第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元是否被 分割的信息,或者指示该第一数据包的数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;Information indicating whether the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet is divided, or indicating the sequence number in the data unit corresponding to the data segment in the data of the first data packet information on whether the data unit with the largest and/or smallest sequence number is split;
    指示该第一数据包的数据包括的数据段的个数的信息;information indicating the number of data segments included in the data of the first data packet;
    以及指示每个数据段的长度的信息。and information indicating the length of each data segment.
  10. 根据权利要求1-7中任一项所述的方法,其特征在于,一个第一数据包的数据包括至少一个数据段,一个数据段包括一个数据单元的全部或部分;The method according to any one of claims 1-7, wherein the data of a first data packet includes at least one data segment, and a data segment includes all or part of a data unit;
    所述分割和级联信息包括:The segmentation and concatenation information includes:
    该第一数据包的数据中第一个数据段和/或最后一个数据段对应的数据单元的序列号,或者该第一数据包的数据中数据段对应的数据单元的最大序列号和/或最小序列号;The sequence number of the data unit corresponding to the first data segment and/or the last data segment in the data of the first data packet, or the maximum sequence number and/or the maximum sequence number of the data unit corresponding to the data segment in the data of the first data packet minimum serial number;
    指示该第一数据包的数据包括的第i个数据段是否是最后一个数据段的信息;Indicate whether the i-th data segment included in the data of the first data packet is the information of the last data segment;
    以及指示所述第i个数据段的长度的信息;and information indicating the length of the i-th data segment;
    其中,i的取值为1至该第一数据包的数据包括的数据段总数。Wherein, the value of i ranges from 1 to the total number of data segments included in the data of the first data packet.
  11. 根据权利要求1-3或7-10中任一项所述的方法,其特征在于,所述编码包包头还包括用于指示编码得到该第二数据包的N个第一数据包的标识信息,所述用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:The method according to any one of claims 1-3 or 7-10, wherein the encoded packet header further includes identification information for indicating the N first data packets obtained by encoding the second data packet , the identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following:
    指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。Information indicating the window length of the encoding window, the sequence number of the first first data packet in the encoding window, and the sequence number of the last first data packet in the encoding window.
  12. 根据权利要求4-10中任一项所述的方法,其特征在于,所述M个第二数据包中包括N个第一类编码包和M-N个第二类编码包,其中第一类编码包的编码系数子矩阵是单位阵,第二类编码包的编码系数子矩阵是非单位阵,所述第一类编码包的编码系数子矩阵和所述第二类编码包的编码系数子矩阵形成一个编码系数矩阵,所述编码系数矩阵用于对所述N个第一数据包进行编码;The method according to any one of claims 4-10, wherein the M second data packets include N first type encoding packets and M-N second type encoding packets, wherein the first type encoding packets The coding coefficient submatrix of the packet is an identity matrix, and the coding coefficient submatrix of the second type coding packet is a non-identity matrix, and the coding coefficient submatrix of the first type coding packet and the coding coefficient submatrix of the second type coding packet are formed. an encoding coefficient matrix, the encoding coefficient matrix is used to encode the N first data packets;
    所述M个第二数据包中每个第二数据包的编码包包头包括用于指示编码得到该第二数据包的N个第一数据包的标识信息,所述用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:The encoded packet header of each second data packet in the M second data packets includes identification information for indicating that the N first data packets of the second data packet are obtained by encoding, and the encoded packet header is used to indicate that the encoding obtains the first data packet of the second data packet. The identification information of the N first data packets of the two data packets is a block identification field or includes at least two of the following:
    指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。Information indicating the window length of the encoding window, the sequence number of the first first data packet in the encoding window, and the sequence number of the last first data packet in the encoding window.
  13. 根据权利要求1-12中任一项所述的方法,其特征在于,所述数据单元为协议数据单元PDU或业务数据单元SDU。The method according to any one of claims 1-12, wherein the data unit is a protocol data unit PDU or a service data unit SDU.
  14. 根据权利要求1-13中任一项所述的方法,其特征在于,所述第一数据包的序列号顺序递增;和/或,The method according to any one of claims 1-13, wherein the sequence number of the first data packet is sequentially increased; and/or,
    所述每个第二数据包的编码包包头中还包括该第二数据包的序列号,所述第二数据包的序列号顺序递增。The encoded packet header of each second data packet further includes the sequence number of the second data packet, and the sequence number of the second data packet increases sequentially.
  15. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取级联数据包,所述级联数据包包括级联包包头和级联数据,所述级联数据包括多个 数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,所述多个数据段中除所述起始数据段和所述末尾数据段外的每个数据段是一个数据单元,所述级联包包头包括所述级联数据包括的多个数据单元的级联信息;Acquire a concatenated data packet, the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the start data segment and the end data segment is One is all or part of a data unit, each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit, and the concatenated packet header includes the Concatenation information of multiple data units included in the concatenated data;
    根据所述级联数据包生成N个第一数据包,所述N个第一数据包的数据大小相等,且所述N个第一数据包的包头大小相等,所述N个第一数据包中第j个第一数据包的数据是所述级联数据包经过N等分后得到的第j份数据,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括该第一数据包的序列号,j的取值为区间[1,N]中的整数;N first data packets are generated according to the concatenated data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, and the N first data packets are equal in size. The data of the j-th first data packet is the j-th piece of data obtained after the concatenated data packets are divided into N equal parts, each first data packet includes a packet header and data, and the packet header of each first data packet is Including the sequence number of the first data packet, and the value of j is an integer in the interval [1, N];
    传输所述N个第一数据包;transmitting the N first data packets;
    对所述N个第一数据包进行编码并加编码包包头后得到M个第二数据包,N和M均为正整数;After the N first data packets are encoded and the encoded packet header is added, M second data packets are obtained, where N and M are both positive integers;
    传输所述M个第二数据包。The M second data packets are transmitted.
  16. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取P个数据包,所述P个数据包中包括K个第一数据包和P-K个第二数据包,P和K均为正整数,K小于或等于P;Acquire P data packets, the P data packets include K first data packets and P-K second data packets, P and K are both positive integers, and K is less than or equal to P;
    对所述P个数据包进行译码,获得译码后的N个第一数据包,所述N个第一数据包的数据大小相等,且所述N个第一数据包的包头大小相等,每个第一数据包包括包头和数据,所述每个第一数据包的包头包括所述第一数据包的序列号,所述N个第一数据包中第j个第一数据包的数据是级联数据包经过N等分后得到的第j份数据,j的取值为区间[1,N]中的整数;N为正整数,P大于或等于N;Decoding the P data packets to obtain decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, Each first data packet includes a packet header and data, the packet header of each first data packet includes the sequence number of the first data packet, and the data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packet is divided into N equal parts, and the value of j is an integer in the interval [1, N]; N is a positive integer, and P is greater than or equal to N;
    按照所述N个第一数据包的序列号大小顺序,将所述N个第一数据包的数据还原成一个级联数据包,所述级联数据包包括所述级联包包头和所述级联数据,所述级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,所述多个数据段中除所述起始数据段和所述末尾数据段外的每个数据段是一个数据单元;Restore the data of the N first data packets into one concatenated data packet according to the sequence number of the N first data packets, and the concatenated data packet includes the concatenated packet header and the Concatenated data, the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the starting data segment and the ending data segment is all or part of a data unit, and the multiple data segments are Each data segment other than the start data segment and the end data segment is a data unit;
    根据所述级联包包头包括的所述级联数据包括的多个数据单元的级联信息,将所述级联数据分割成多个数据单元。The concatenated data is divided into a plurality of data units according to the concatenation information of the plurality of data units included in the concatenated data included in the header of the concatenated packet.
  17. 根据权利要求16所述的方法,其特征在于,所述对所述P个数据包进行译码,获得译码后的N个第一数据包,包括:The method according to claim 16, wherein the decoding the P data packets to obtain the decoded N first data packets, comprising:
    根据所述P个数据包中每个数据包的长度以及长度阈值,从所述P个数据包中确定出K个第一数据包和P-K个第二数据包;According to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets;
    采用原数据包的解析方式解析所述K个第一数据包中每个第一数据包的包头,获得所述第一数据包的序列号,并采用编码包的解析方式解析所述P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;根据所述K个第一数据包的序列号和所述P-K个第二数据包的包头中编码因子字段的指示,构成系数因子矩阵;The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the P-K first data packet is analyzed by the analysis method of the encoded packet. The encoded packet header of the second data packet in the two data packets obtains the encoding factor field; according to the sequence numbers of the K first data packets and the indication of the encoding factor field in the packet header of the P-K second data packets, the coefficient is formed factor matrix;
    采用所述系数因子矩阵对所述P-K个第二数据包的编码数据和所述K个第一数据包进行联合译码,获得译码后的N-K个第一数据包,所述译码后的N-K个第一数据包和所述K个第一数据包属于N个第一数据包。The encoded data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix to obtain the decoded N-K first data packets. The N-K first data packets and the K first data packets belong to the N first data packets.
  18. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取级联数据包,所述级联数据包包括级联包包头和级联数据,所述级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,所述多个数据段中除所述起始数据段和所述末尾数据段外的每个数据段是一个数据单元,所述级联包包头包括所述级联数据包括的多个数据单元的级联信息;Acquire a concatenated data packet, the concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the start data segment and the end data segment is One is all or part of a data unit, each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit, and the concatenated packet header includes the Concatenation information of multiple data units included in the concatenated data;
    根据所述级联数据包生成N个第一数据包,所述N个第一数据包的数据大小相等,且所述N个第一数据包的包头大小相等,所述N个第一数据包中第j个第一数据包的数据是所述级联数据包经过N等分后得到的第j份数据,每个第一数据包包括包头和数据,所述每个第一数据包中包括所述第一数据包的序列号,j的取值为区间[1,N]中的整数;N first data packets are generated according to the concatenated data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, and the N first data packets are equal in size. The data of the j-th first data packet is the j-th data obtained after the concatenated data packets are divided into N equal parts, and each first data packet includes a packet header and data, and each first data packet includes the sequence number of the first data packet, the value of j is an integer in the interval [1, N];
    对所述N个第一数据包进行编码并加编码包包头后得到M个第二数据包,所述编码包包头包括编码因子字段,N和M均为正整数;After the N first data packets are encoded and the encoded packet header is added, M second data packets are obtained, and the encoded packet header includes an encoding factor field, and N and M are both positive integers;
    传输所述M个第二数据包。The M second data packets are transmitted.
  19. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取P个数据包,所述P个数据包均是编码包,每个数据包包括编码包包头和编码数据,所述编码包包头包括编码因子字段;Acquire P data packets, the P data packets are all encoded packets, each data packet includes an encoded packet header and encoded data, and the encoded packet header includes an encoding factor field;
    对所述P个数据包进行译码,获得译码后的N个第一数据包,所述N个第一数据包的数据大小相等,且所述N个第一数据包的包头大小相等,所述N个第一数据包中第j个第一数据包的数据是所述级联数据包经过N等分后得到的第j份数据,每个第一数据包的包头中包括所述第一数据包的序列号;Decoding the P data packets to obtain decoded N first data packets, the data sizes of the N first data packets are equal, and the header sizes of the N first data packets are equal, The data of the jth first data packet in the N first data packets is the jth piece of data obtained after the concatenated data packets are divided into N equal parts, and the header of each first data packet includes the A sequence number of a data packet;
    按照所述N个第一数据包的序列号大小顺序,将所述N个第一数据包的数据还原成一个级联数据包,并根据所述级联包包头包括的所述级联数据包括的多个数据单元的级联信息,将所述级联数据分割成多个数据单元;According to the sequence number of the N first data packets, the data of the N first data packets is restored into a concatenated data packet, and the concatenated data included in the packet header of the concatenated packet includes: The concatenated information of a plurality of data units, the concatenated data is divided into a plurality of data units;
    其中,所述级联数据包包括级联包包头和级联数据,所述级联数据包括多个数据段级联得到的数据,其中起始数据段和末尾数据段中的至少一个是一个数据单元的全部或部分,所述多个数据段中除起始数据段和末尾数据段外的每个数据段是一个数据单元,所述级联包包头包括级联数据包括的多个数据单元的级联信息。The concatenated data packet includes a concatenated packet header and concatenated data, and the concatenated data includes data obtained by concatenating multiple data segments, wherein at least one of the start data segment and the end data segment is a data segment All or part of the unit, each data segment in the plurality of data segments except the start data segment and the end data segment is a data unit, and the concatenated packet header includes the data units of the multiple data units included in the concatenated data. Cascading information.
  20. 根据权利要求19所述的方法,其特征在于,所述对所述P个数据包进行译码,获得译码后的N个第一数据包,包括:The method according to claim 19, wherein the decoding the P data packets to obtain the decoded N first data packets, comprising:
    采用编码包的解析方式解析所述P个数据包的编码包包头获得每个编码包包头携带的编码因子字段,利用所述P个数据包的编码包包头中编码因子字段的指示构成系数因子矩阵;The coding packet headers of the P data packets are parsed by the coding packet analysis method to obtain the coding factor field carried in the coding packet header of each coding packet, and the coefficient factor matrix is formed by using the indication of the coding factor field in the coding packet header of the P data packets ;
    采用所述系数因子矩阵对所述P个数据包的编码数据进行译码,获得译码后的N个第一数据包。The encoded data of the P data packets is decoded by using the coefficient factor matrix to obtain N first data packets after decoding.
  21. 根据权利要求15-17中任一项所述的方法,其特征在于,所述每个第一数据包的包头还包括第一指示信息,所述第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包;和/或,The method according to any one of claims 15-17, wherein the packet header of each first data packet further includes first indication information, and the first indication information is used to indicate the first indication information The first data packet in which it is located is the original data packet; and/or,
    每个第二数据包的编码包包头包括第二指示信息,所述第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。The encoded packet header of each second data packet includes second indication information, where the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  22. 根据权利要求15-21中任一项所述的方法,其特征在于,所述级联信息包括:The method according to any one of claims 15-21, wherein the concatenation information comprises:
    指示所述级联数据的起始数据段和/或末尾数据段对应的数据单元是否被分割的信息,或者,指示所述级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;Information indicating whether the data unit corresponding to the start data segment and/or the end data segment of the concatenated data is divided, or, indicating that the sequence number in the data unit corresponding to the data segment in the concatenated data is the largest and/or the sequence number Information on whether the data unit with the smallest number is divided;
    指示所述级联数据包括的数据段的个数的信息;information indicating the number of data segments included in the concatenated data;
    以及指示所述级联数据包括的每个数据段的长度的信息。and information indicating the length of each data segment included in the concatenated data.
  23. 根据权利要求15-22中任一项所述的方法,其特征在于,所述级联信息包括:The method according to any one of claims 15-22, wherein the concatenation information comprises:
    指示所述级联数据的起始数据段和/或末尾数据段对应的数据单元是否被分割的信息,或者指示所述级联数据中数据段对应的数据单元中序列号最大和/或序列号最小的数据单元是否被分割的信息;Information indicating whether the data unit corresponding to the start data segment and/or the end data segment of the concatenated data is divided, or indicating the largest sequence number and/or sequence number in the data unit corresponding to the data segment in the concatenated data Information about whether the smallest data unit is divided;
    指示所述级联数据包括的第i个数据段是否是最后一个数据段的信息;information indicating whether the i-th data segment included in the concatenated data is the last data segment;
    以及指示所述第i个数据段的长度的信息;and information indicating the length of the i-th data segment;
    其中,i的取值为1至所述级联数据包括的数据段总数。Wherein, the value of i ranges from 1 to the total number of data segments included in the concatenated data.
  24. 根据权利要求15-17、或21中任一项所述的方法,其特征在于,所述编码包包头还包括用于指示编码得到该第二数据包的N个第一数据包的标识信息,所述用于指示编码得到该第二数据包的N个第一数据包的标识信息是块标识字段或包括以下至少两项:The method according to any one of claims 15-17 or 21, wherein the encoded packet header further includes identification information for indicating the N first data packets obtained by encoding the second data packet, The identification information for indicating the N first data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following:
    指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。Information indicating the window length of the encoding window, the sequence number of the first first data packet in the encoding window, and the sequence number of the last first data packet in the encoding window.
  25. 根据权利要求15-23中任一项所述的方法,其特征在于,所述级联数据包括多个完整数据单元级联得到的数据以及填充比特。The method according to any one of claims 15-23, wherein the concatenated data includes data obtained by concatenating multiple complete data units and padding bits.
  26. 根据权利要求25所述的方法,其特征在于,所述级联包包头还包括填充信息,所述填充信息包括所述填充比特的长度。The method according to claim 25, wherein the concatenated packet header further comprises padding information, and the padding information comprises the length of the padding bits.
  27. 根据权利要求15-26中任一项所述的方法,其特征在于,所述数据单元为协议数据单元PDU或业务数据单元SDU。The method according to any one of claims 15-26, wherein the data unit is a protocol data unit PDU or a service data unit SDU.
  28. 根据权利要求15-27中任一项所述的方法,其特征在于,所述第一数据包的序列号顺序递增;和/或,The method according to any one of claims 15-27, wherein the sequence numbers of the first data packets are sequentially increased; and/or,
    所述每个第二数据包的编码包包头中还包括该第二数据包的序列号,所述第二数据包的序列号顺序递增。The encoded packet header of each second data packet further includes the sequence number of the second data packet, and the sequence number of the second data packet increases sequentially.
  29. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取N个第一数据包,所述N个第一数据包的大小不完全相等,每个第一数据包包括包头和数据,所述每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息,所述每个第一数据包的包头还包括数据包标识字段,所述数据包标识字段用于指示该第一数据包的序列号;Obtain N first data packets, the sizes of the N first data packets are not exactly equal, each first data packet includes a packet header and data, and the packet header of each first data packet includes the first data packet The segmentation information of the data unit corresponding to the data, the packet header of each first data packet also includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet;
    传输所述N个第一数据包;transmitting the N first data packets;
    对所述N个第一数据包进行编码并加编码包包头后得到M个第二数据包,所述N个第 一数据包对应用于编码的Q个等效原数据包,所述Q个等效原数据包的大小相等,所述每个第一数据包的包头还包括编码因子字段或偏移字段,所述偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数,N、M以及Q均为正整数,Q小于或等于N;After the N first data packets are encoded and the encoded packet headers are added, M second data packets are obtained, and the N first data packets correspond to the Q equivalent original data packets used for encoding, and the Q The equivalent original data packets have the same size, and the packet header of each first data packet further includes a coding factor field or an offset field, and the offset field is used to indicate that the sequence number of the first data packet is relative to the first data packet. The offset number of the sequence number of the equivalent original data packet corresponding to the data packet, N, M and Q are all positive integers, and Q is less than or equal to N;
    传输所述M个第二数据包。The M second data packets are transmitted.
  30. 一种数据传输方法,其特征在于,包括:A data transmission method, comprising:
    获取P个数据包,所述P个数据包中包括K个第一数据包和P-K个第二数据包,每个第一数据包包括包头和数据,所述每个第一数据包的包头中包括该第一数据包的数据对应的数据单元的分割信息,所述每个第一数据包的包头还包括数据包标识字段,所述数据包标识字段用于指示该第一数据包的序列号;Acquire P data packets, the P data packets include K first data packets and P-K second data packets, each first data packet includes a packet header and data, and the packet header of each first data packet is Including the segmentation information of the data unit corresponding to the data of the first data packet, the packet header of each first data packet also includes a data packet identification field, and the data packet identification field is used to indicate the sequence number of the first data packet ;
    对所述P个数据包进行译码,获得译码后的N个第一数据包,所述N个第一数据包的大小不完全相等,所述N个第一数据包对应用于编码的Q个等效原数据包,所述Q个等效原数据包的大小相等,每个第一数据包的包头还包括编码因子字段或偏移字段,所述偏移字段用于指示该第一数据包的序列号相对于该第一数据包对应的等效原数据包的序列号的偏移数;P、N、K以及Q均为正整数,P大于或等于N,N大于或等于Q;The P data packets are decoded, and N first data packets after decoding are obtained. The sizes of the N first data packets are not completely equal, and the N first data packets correspond to the encoded Q equivalent original data packets, the Q equivalent original data packets have the same size, the packet header of each first data packet further includes a coding factor field or an offset field, and the offset field is used to indicate the first data packet. The offset number of the sequence number of the data packet relative to the sequence number of the equivalent original data packet corresponding to the first data packet; P, N, K and Q are all positive integers, P is greater than or equal to N, and N is greater than or equal to Q ;
    根据该N个第一数据包中每个第一数据包的包头包括的分割信息,将该N个第一数据包的数据还原成一个或多个数据单元。According to the segmentation information included in the packet header of each of the N first data packets, the data of the N first data packets is restored into one or more data units.
  31. 根据权利要求30所述的方法,其特征在于,所述每个第一数据包的包头包括编码因子字段;The method of claim 30, wherein the header of each first data packet includes a coding factor field;
    所述对所述P个数据包进行译码,获得译码后的N个等效原数据包,包括:The described P data packets are decoded to obtain N equivalent original data packets after decoding, including:
    根据所述P个数据包中每个数据包的长度以及长度阈值,从所述P个数据包中确定出K个第一数据包和P-K个第二数据包;According to the length of each data packet in the P data packets and the length threshold, determine K first data packets and P-K second data packets from the P data packets;
    采用原数据包的解析方式解析所述K个第一数据包中每个第一数据包的包头,获得所述第一数据包的序列号,并采用编码包的解析方式解析所述P-K个第二数据包中第二数据包的编码包包头,获得编码因子字段;The packet header of each first data packet in the K first data packets is parsed by the analysis method of the original data packet, the serial number of the first data packet is obtained, and the P-K first data packet is analyzed by the analysis method of the encoded packet. The encoding packet header of the second data packet in the two data packets obtains the encoding factor field;
    根据所述K个第一数据包的包头中编码因子字段的指示和所述P-K个第二数据包的编码包包头中编码因子字段的指示,构成系数因子矩阵;According to the indication of the coding factor field in the packet header of the K first data packets and the indication of the coding factor field in the coding packet header of the P-K second data packets, a coefficient factor matrix is formed;
    采用所述系数因子矩阵对所述P-K个第二数据包的编码数据和所述K个第一数据包进行联合译码,获得译码后的N个第一数据包。The encoded data of the P-K second data packets and the K first data packets are jointly decoded by using the coefficient factor matrix to obtain N decoded first data packets.
  32. 根据权利要求29-31中任一项所述的方法,其特征在于,所述每个第一数据包的包头还包括第一指示信息,所述第一指示信息用于指示该第一指示信息所在的第一数据包是原数据包;和/或,The method according to any one of claims 29-31, wherein the packet header of each first data packet further includes first indication information, and the first indication information is used to indicate the first indication information The first data packet in which it is located is the original data packet; and/or,
    每个第二数据包的编码包包头中包括第二指示信息,所述第二指示信息用于指示该第二指示信息所在的第二数据包是编码包。The encoded packet header of each second data packet includes second indication information, where the second indication information is used to indicate that the second data packet in which the second indication information is located is an encoded packet.
  33. 根据权利要求29-32中任一项所述的方法,其特征在于,所述分割信息包括:该第一数据包的数据在该数据对应的数据单元中的位置信息,和指示该第一数据包的数据的长度的信息。The method according to any one of claims 29-32, wherein the segmentation information comprises: position information of the data of the first data packet in the data unit corresponding to the data, and information indicating the first data Information about the length of the packet's data.
  34. 根据权利要求19-33中任一项所述的方法,其特征在于,所述编码包包头还包括用于指示编码得到该第二数据包的Q个等效原数据包的标识信息,所述用于指示编码得到该第二数据包的Q个等效原数据包的标识信息是块标识字段或包括以下至少两项:The method according to any one of claims 19-33, wherein the encoded packet header further includes identification information for indicating that the Q equivalent original data packets of the second data packet are obtained by encoding, and the The identification information used to indicate that the Q equivalent original data packets obtained by encoding the second data packet is a block identification field or includes at least two of the following:
    指示编码窗的窗长的信息、编码窗中第一个第一数据包的序列号、编码窗中最后一个第一数据包的序列号。Information indicating the window length of the encoding window, the sequence number of the first first data packet in the encoding window, and the sequence number of the last first data packet in the encoding window.
  35. 根据权利要求29-34中任一项所述的方法,其特征在于,所述数据单元为协议数据单元PDU或业务数据单元SDU。The method according to any one of claims 29-34, wherein the data unit is a protocol data unit PDU or a service data unit SDU.
  36. 根据权利要求29-35中任一项所述的方法,其特征在于,所述第一数据包的序列号顺序递增;和/或,The method according to any one of claims 29-35, wherein the sequence number of the first data packet is sequentially increased; and/or,
    每个第二数据包的编码包包头中还包括该第二数据包的序列号,所述第二数据包的序列号顺序递增。The encoded packet header of each second data packet further includes the sequence number of the second data packet, and the sequence number of the second data packet increases sequentially.
  37. 一种数据传输装置,其特征在于,包括用于执行权利要求1-36中任一项所述方法的模块。A data transmission device, characterized by comprising a module for executing the method of any one of claims 1-36.
  38. 一种通信装置,其特征在于,包括:A communication device, comprising:
    一个或多个处理器,所述一个或多个处理器与一个或多个存储器耦合;one or more processors coupled with one or more memories;
    其中,所述一个或多个存储器用于存储计算机程序,所述一个或多个处理器用于执行存储于所述一个或多个存储器中的计算机程序,以使得所述通信装置执行如权利要求1-36中任一项所述的方法。Wherein, the one or more memories are used to store computer programs, and the one or more processors are used to execute the computer programs stored in the one or more memories, so that the communication device performs the method of claim 1. The method of any one of -36.
  39. 一种可读存储介质,其特征在于,用于存储程序,所述程序被一个或多个处理器执行,使得包括所述一个或多个处理器的装置执行如权利要求1-36中任一项所述的方法。A readable storage medium, characterized by being used for storing a program, the program being executed by one or more processors, so that an apparatus including the one or more processors executes any one of claims 1-36 method described in item.
  40. 一种通信系统,其特征在于,包括如权利要求38所述的通信装置。A communication system, characterized by comprising the communication device as claimed in claim 38.
PCT/CN2022/089568 2021-04-30 2022-04-27 Data transmission method and apparatus, and readable storage medium WO2022228467A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110483034.0A CN115276891A (en) 2021-04-30 2021-04-30 Data transmission method and device and readable storage medium
CN202110483034.0 2021-04-30

Publications (1)

Publication Number Publication Date
WO2022228467A1 true WO2022228467A1 (en) 2022-11-03

Family

ID=83745621

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/089568 WO2022228467A1 (en) 2021-04-30 2022-04-27 Data transmission method and apparatus, and readable storage medium

Country Status (2)

Country Link
CN (1) CN115276891A (en)
WO (1) WO2022228467A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883005A (en) * 2021-09-26 2023-03-31 华为技术有限公司 Data transmission method and device and readable storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991625A (en) * 2015-03-06 2016-10-05 电信科学技术研究院 Method and equipment for carrying out data transmission
CN107925505A (en) * 2015-07-08 2018-04-17 华为技术有限公司 A kind of user and network side equipment, the method for the definite tupe to data packet
CN108141320A (en) * 2015-10-23 2018-06-08 摩托罗拉移动有限责任公司 Random linear network encoding data transmission
CN109691061A (en) * 2017-02-10 2019-04-26 Oppo广东移动通信有限公司 A kind of method and apparatus for transmitting data
CN110214439A (en) * 2017-01-20 2019-09-06 Oppo广东移动通信有限公司 Data transmission method, device, transmitting terminal, receiving end and system
US20200221329A1 (en) * 2019-01-09 2020-07-09 Samsung Electronics Co., Ltd. Method and apparatus for processing data in wireless communication system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991625A (en) * 2015-03-06 2016-10-05 电信科学技术研究院 Method and equipment for carrying out data transmission
CN107925505A (en) * 2015-07-08 2018-04-17 华为技术有限公司 A kind of user and network side equipment, the method for the definite tupe to data packet
CN108141320A (en) * 2015-10-23 2018-06-08 摩托罗拉移动有限责任公司 Random linear network encoding data transmission
CN110214439A (en) * 2017-01-20 2019-09-06 Oppo广东移动通信有限公司 Data transmission method, device, transmitting terminal, receiving end and system
CN109691061A (en) * 2017-02-10 2019-04-26 Oppo广东移动通信有限公司 A kind of method and apparatus for transmitting data
US20200221329A1 (en) * 2019-01-09 2020-07-09 Samsung Electronics Co., Ltd. Method and apparatus for processing data in wireless communication system

Also Published As

Publication number Publication date
CN115276891A (en) 2022-11-01

Similar Documents

Publication Publication Date Title
US10469210B2 (en) Acknowledgment data unit for data unit fragment
WO2021012727A1 (en) Data transmission method and device, and storage medium
US20220368494A1 (en) Uplink re-transmission with compact memory usage
US20200145145A1 (en) Acknowledgment data unit for data unit fragment
WO2022001367A1 (en) Coding method and device
WO2017220855A1 (en) Method and apparatus for performing packet duplication in a multi-connectivity scenario
JP2022046754A (en) Method and device in user equipment and base station used for channel coding
WO2022142814A1 (en) Method and apparatus for processing code block on basis of hybrid automatic repeat request
WO2022228467A1 (en) Data transmission method and apparatus, and readable storage medium
US8634315B2 (en) Method and arrangement for transmitting a data unit in a wireless communications system
CN113316922B (en) Apparatus, method, device and computer readable storage medium for transmitting data packets
JP7297678B2 (en) Method and apparatus for determining whether data is corrupted
US20230019547A1 (en) Uplink data transmission scheduling
WO2020192772A1 (en) Communication method and apparatus
JP7036118B2 (en) Retransmission control method, wireless terminal, wireless base station
WO2023046029A1 (en) Data transmission method and apparatus, and readable storage medium
WO2019134071A1 (en) Feedback information sending method, receiving method, device and system
WO2023005909A1 (en) Timeout packet loss method and apparatus in network coding scenario, and readable storage medium
WO2023273973A1 (en) Communication method and communication apparatus
US20220360652A1 (en) Downlink protocol alignment and decoding
WO2020238689A1 (en) Communication method and device in wireless local area network
WO2022261984A1 (en) Communication method and communication apparatus
WO2022050019A1 (en) Information processing device and decoding method
WO2022236752A1 (en) Wireless communication method, first device, and second device
US20240129068A1 (en) Communication method and apparatus

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: 22794937

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE