WO2022227845A1 - 一种数据处理方法、装置和系统 - Google Patents

一种数据处理方法、装置和系统 Download PDF

Info

Publication number
WO2022227845A1
WO2022227845A1 PCT/CN2022/078757 CN2022078757W WO2022227845A1 WO 2022227845 A1 WO2022227845 A1 WO 2022227845A1 CN 2022078757 W CN2022078757 W CN 2022078757W WO 2022227845 A1 WO2022227845 A1 WO 2022227845A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
data
cache
column
packet
Prior art date
Application number
PCT/CN2022/078757
Other languages
English (en)
French (fr)
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 WO2022227845A1 publication Critical patent/WO2022227845A1/zh

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/0041Arrangements at the transmitter end
    • 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/0045Arrangements at the receiver end
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/04Error control

Definitions

  • the present application relates to the field of wireless communication technologies, and in particular, to a related method, apparatus and system for encoding or decoding data packets.
  • wireless communication systems generally use a retransmission request mechanism to implement error control.
  • a retransmission request mechanism to implement error control.
  • HARQ hybrid automatic repeat request
  • MAC medium access control
  • RLC radio link control
  • ARQ automatic repeat of the radio link control
  • Network coding technology solves the problem of packet loss in data transmission by encoding the original data packet and increasing redundancy, which increases the reliability of transmission and has low feedback overhead. It is a method that can effectively improve the transmission performance of wireless communication systems.
  • the present application provides a data processing method, device and system, which introduce network coding technology into a wireless communication system and improve the transmission performance of the wireless communication system on the basis of changing existing protocols and increasing system overhead as little as possible.
  • an embodiment of the present application provides a data processing method, which can be executed by a sending end, including:
  • Map K first data packets in the cache where the first data packets include first header information, and the first header information includes information indicating the location of the first data packets in the cache;
  • the M data segments in the M data segment are encoded to generate N second data packets, the data in the M data segments include part or all of the data in the K first data packets, and the length of the M data segments are equal; send the K first data packets; and send at least one of the N second data packets; wherein, M, N, and K are positive integers.
  • the technical solution does not require actual splitting and concatenating operations on the first data packet, does not increase the complexity of the system while implementing network coding in the wireless communication system, and maximizes compatibility with existing protocols.
  • the K first data packets are mapped in the cache in a row-first-column manner, for example, in a column-by-column manner.
  • the length direction of the column is consistent with the length direction of the K first data packets in the buffer.
  • the length of the M data segments is the length of the cached column, and M is the number of columns included in the coding window, wherein the column The length direction of is consistent with the length direction of the K first data packets in the buffer.
  • the virtual partitioning and cascading operation performed in the cache is very convenient, which is beneficial to reduce the complexity of data processing in communication.
  • each first data packet in the K first data packets starts from the starting position of the first data packet The first row of the column where the mapping starts.
  • This design can reduce the overhead of the first header information because the row where the starting position of each first data packet is located is fixed.
  • a possible design in the cache, when the line number of the end position of the first data packet P in the K first data packets is greater than or equal to a preset When the row number is set, the next first data packet of the first data packet P is mapped from the first row of the next column of the column where the end position of the first data packet P is located, and P is an integer greater than or equal to 0.
  • the starting position of each first data packet is flexibly determined by setting the decision threshold, and the trade-off between the overhead of the first header information and the coding efficiency is well realized.
  • the second data packet includes second header information
  • the second header information includes an indication of the M corresponding to the second data packet information about a data segment.
  • the embodiment of the present application provides another data processing method, which can be executed by the receiving end, including:
  • the first data packets include first header information, and the first header information includes information indicating the location of the first data packets in the cache, so
  • the A first data packets belong to the K first data packets to be acquired
  • the B second data packets include some or all of the second data packets in the N second data packets
  • the second data packets are Corresponding to the encoded data packets of M data segments, the data in the M data segments includes part or all of the data in the K first data packets, and the lengths of the M data segments are equal
  • a first data packet is mapped to part or all of the data in the buffer and the B second data packets are jointly decoded to obtain the K first data packets; wherein, A and B are greater than or equal to An integer of 0, and A and B are not both 0.
  • the second aspect is a receiving end-side solution corresponding to the first aspect, and the beneficial effects are the same as those of the first aspect.
  • the length of the first data packet Q in the (KA) lost first data packets is L
  • the length of each data segment in the M data segments is S
  • the second data packets are used to restore the first data packet Q, wherein, means rounded up, L and S are greater than 0, and
  • the embodiments of the present application provide another data processing method, which can be executed by the receiving end, including:
  • the data of the D sub-data segments are part of the data segments of the E data segments, and the data of the C data segments and the D sub-data segments include the A first For part or all of the data in the data packet, the C data segments and the E data segments have the same length; A, B, C, and D are integers greater than or equal to 0, and E and F are greater than 0. Integer, and A and B are not both 0.
  • the third aspect is a receiving end-side solution corresponding to the first aspect, and the beneficial effects are the same as those of the first aspect.
  • the length of the first data packet Q in the F lost first data packets is L
  • the length of each data segment in the E data segments is S
  • the second data packets are used to restore the first data packet Q, wherein, means rounded up, L and S are greater than 0, and
  • each of the A first data packets The starting position of the first data packet is the first row of the starting column where the first data packet is located.
  • the third aspect the possible design of the second aspect, or the possible design of the third aspect, in a possible design, in the cache, if the first data packet in the A first data packet is When the line number of the end position of a data packet P is greater than or equal to the preset line number, the start position of the next first data packet of the first data packet P is the end of the column where the end position of the first data packet P is located.
  • P is an integer greater than or equal to 0, wherein the A first data packets include the next first data packet of the first data packet P; or, the F lost first data A packet includes the next first data packet of said first data packet P.
  • the first data packet is The original data packet
  • the second data packet is an encoded data packet.
  • the first header information also Including information indicating the relationship between the line number of the end position of the first data packet P and the preset line number.
  • the cache is a two-dimensional cache
  • the specific contents of several kinds of information indicating the location of the first data packet in the cache are introduced as follows:
  • the indication of the first includes: in the cache,
  • the column number of the start position of the first data packet the column number of the end position of the first data packet, the column number of the end position of the first data packet and the column number of the start position of the first data packet. any two of the differences between; and,
  • the line number of the start position of the first data packet, the line number of the end position of the first data packet, the line number of the start position of the first data packet and the line number of the end position of the first data packet is any two of the differences between.
  • the length of the column of the cache is predefined, or configured;
  • the information indicating the location of the first data packet in the cache includes: in the cache,
  • the column number of the starting position of the first data packet the row number of the starting position of the first data packet, and the length of the first data packet.
  • the length of the column of the cache is predefined, or configured;
  • the information indicating the location of the first data packet in the cache includes: in the cache,
  • the column number of the end position of the first data packet the row number of the end position of the first data packet, and the length of the first data packet.
  • the indication of the first includes: in the cache,
  • the column number of the start position of the first data packet the column number of the end position of the first data packet, the column number of the end position of the first data packet and the column number of the start position of the first data packet. any two of the differences between; and,
  • the cache is a one-dimensional cache
  • the index of the start position of the first data packet in the cache is V1_mod+V1_num*S, V1_mod+(V2_num-num_OS)*S, or V2_mod-mod_OS+(V2_num-num_OS)*S; the index of the end position of the first data packet in the cache The index is V2_mod+V2_num*S, V2_mod+(V1_num+num_OS)*S, or V1_mod+mod_OS+(V1_num+num_OS)*S.
  • the indication that the first data packet is stored in the first buffer includes one of the following information combinations: V1_mod, V1_num, length L of the first data packet; V2_mod, V2_num, L; V1_mod, V1_num, V2_mod, num_OS; V1_mod, V1_num, num_OS, mod_OS; V2_mod, V2_num , V1_mod, num_OS; V2_mod, V2_num, num_OS, mod_OS.
  • the second header information is included in the cache, the starting column number of the encoding Win_R1, the encoded encoding window length Win_S, and any two of the encoded end column numbers Win_R2.
  • the second header information may also include at least one of a packet identifier, a type, and a row index of the coefficient codebook.
  • the sending end sends an indication to the receiving end Offset information
  • the offset is the offset between the coding start position in the first row of the coding start column and the row where the coding start position is located
  • the corresponding receiving end can understand the offset as the start of decoding
  • the start position is the offset between the first row of the decoding start column and the row where the decoding start position is located.
  • the offset can make the sending end and the receiving end achieve a consistent understanding of the encoding start position and the decoding start position, and avoid unnecessary decoding errors.
  • the present application provides an apparatus, which may be a sending end, or a device (eg, a chip) applied in the sending end, and the apparatus may include a device for performing the above-mentioned first aspect or the first aspect.
  • the corresponding functional module of the method for the transmitting end may be a sending end, or a device (eg, a chip) applied in the sending end, and the apparatus may include a device for performing the above-mentioned first aspect or the first aspect.
  • the present application provides a device, which may be a receiving end, or a device (eg, a chip) applied to the receiving end, the device may include a device for performing the first aspect or the first aspect.
  • a device which may be a receiving end, or a device (eg, a chip) applied to the receiving end, the device may include a device for performing the first aspect or the first aspect.
  • Corresponding functional modules of the method for the receiving end in any of the possible designs, in the implementation of the second aspect or in any of the possible designs in the second aspect, or in the implementation of the third aspect or in any of the possible designs in the third aspect .
  • an embodiment of the present application provides an apparatus, where the apparatus includes a processor, configured to implement the first aspect or the method in any possible design of the first aspect, and execute the second aspect or the second aspect The method in any one of the possible designs, or perform the function of the sender in the third aspect or the method in any one of the possible designs of the third aspect.
  • the apparatus may also include a memory for storing instructions and data. The memory is coupled to the processor, and when the processor executes the program instructions stored in the memory, the function of the sending end can be implemented.
  • the apparatus may also include a communication interface, which is used for the apparatus to communicate with other devices. Exemplarily, the communication interface may be a transceiver, a circuit, a bus, or other types of communication interfaces, and the other devices may be terminal devices. Wait.
  • an embodiment of the present application provides an apparatus, where the apparatus includes a processor, configured to implement the first aspect or the method in any possible design of the first aspect, and execute the second aspect or the second aspect The method in any of the possible designs, or perform the function of the receiving end in the third aspect or the method in any of the possible designs of the third aspect.
  • the apparatus may also include a memory for storing instructions and data. The memory is coupled to the processor, and when the processor executes the program instructions stored in the memory, the function of the above-mentioned network device can be implemented.
  • the apparatus may also include a communication interface, which is used for the apparatus to communicate with other devices. Exemplarily, the communication interface may be a transceiver, a circuit, a bus, or other types of communication interfaces, and the other devices may be network devices. Wait.
  • an embodiment of the present application further provides a computer-readable storage medium, where instructions are stored in the storage medium, and when the instructions are executed, the first aspect or any of the possible designs in the first aspect can be implemented.
  • an embodiment of the present application further provides a chip system, where the chip system includes a processor and a memory, and is configured to implement the method in the first aspect or any possible design of the first aspect, and execute the second aspect. Or the method in any possible design of the second aspect, or the method of executing the sending end or the receiving end in the third aspect or the method in any possible design of the third aspect.
  • the chip system can be composed of chips, and can also include chips and other discrete devices.
  • the embodiments of the present application further provide a computer program product, which includes an instruction, when the instruction is executed, the method in the first aspect or any possible design of the first aspect can be implemented, and the second aspect can be executed.
  • a computer program product which includes an instruction, when the instruction is executed, the method in the first aspect or any possible design of the first aspect can be implemented, and the second aspect can be executed.
  • an embodiment of the present application further provides a communication system, including the apparatus of the fourth aspect and the apparatus of the fifth aspect. Or include the device of the sixth aspect and the device of the seventh aspect.
  • FIG. 1 is a schematic diagram of a communication system architecture provided by an embodiment of the present application.
  • FIG. 2(a) is a schematic diagram of a point-to-point transmission scenario provided by an embodiment of the present application
  • FIG. 2(b) is a schematic diagram of a multi-hop single connection scenario provided by an embodiment of the present application.
  • FIG. 2(c) is a schematic diagram of a multi-hop and multi-connection scenario provided by an embodiment of the present application
  • FIG. 2(d) is a schematic diagram of a dual connection scenario provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a data packet provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of data processing at a sending end according to an embodiment of the present application.
  • FIG. 5 is a schematic diagram of an integrated access and backhaul (IAB) node (node) protocol stack provided by an embodiment of the present application;
  • IAB integrated access and backhaul
  • FIG. 6 is a flowchart of a data processing method provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of a mapping method for displaying data in a two-dimensional cache provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a mapping method for displaying data in a one-dimensional cache provided by an embodiment of the present application.
  • FIG. 9(a) is a schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the sender, provided by an embodiment of the present application.
  • FIG. 9(b) is another schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the transmitting end provided by the embodiment of the present application.
  • FIG. 9(c) is another schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the transmitting end provided by the embodiment of the present application.
  • FIG. 10(a) is a schematic diagram showing the mapping position of the first data packet in the one-dimensional cache of the transmitting end, provided by an embodiment of the present application;
  • FIG. 10(b) is another schematic diagram showing the mapping position of the first data packet in the one-dimensional buffer of the transmitting end provided by the embodiment of the application;
  • FIG. 10(c) is another schematic diagram showing the mapping position of the first data packet in the one-dimensional buffer of the transmitting end provided by the embodiment of the application;
  • FIG. 11 is a flowchart of another data processing method provided by an embodiment of the present application.
  • FIG. 12(a) is a schematic diagram showing the mapping position of the first data packet in the two-dimensional cache of the receiving end provided by the embodiment of the application;
  • FIG. 12(b) is another schematic diagram showing the mapping position of the first data packet in the two-dimensional cache of the receiving end provided by the embodiment of the application;
  • FIG. 12(c) is another schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the receiving end provided by the embodiment of the application;
  • FIG. 13 is a schematic diagram of data processing based on a protocol architecture provided by an embodiment of the present application.
  • FIG. 14(a) is a schematic structural diagram of a first data packet provided by an embodiment of the present application.
  • FIG. 14(b) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 14(c) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 14(d) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 14(e) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 14(f) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 15 is a schematic diagram of mapping a first data packet in a one-dimensional cache of a sender according to an embodiment of the application
  • 16 is a schematic structural diagram of a second data packet provided by an embodiment of the application.
  • FIG. 17(a) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 17(b) is a schematic structural diagram of another first data packet provided by an embodiment of the present application.
  • FIG. 17(c) is a schematic structural diagram of another second data packet provided by an embodiment of the present application.
  • FIG. 17(d) is a schematic structural diagram of another second data packet provided by an embodiment of the present application.
  • 18 is another schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the sender according to the embodiment of the present application.
  • FIG. 19 is another schematic diagram showing the mapping position of the first data packet in the one-dimensional cache of the sender according to the embodiment of the present application.
  • FIG. 20 is another schematic diagram showing the mapping position of the first data packet in the two-dimensional buffer of the sender according to the embodiment of the present application.
  • FIG. 21 is another schematic diagram showing the mapping position of the first data packet in the one-dimensional buffer of the sender according to the embodiment of the present application.
  • 22 is a schematic diagram of a decoding method based on a two-dimensional cache provided by an embodiment of the present application.
  • FIG. 23 is a schematic diagram of a decoding method based on a one-dimensional cache provided by an embodiment of the present application.
  • FIG. 24 is a schematic flowchart of data processing at a packet data convergence protocol (PDCP) layer provided by an embodiment of the present application;
  • PDCP packet data convergence protocol
  • 25 is a schematic diagram of counting the first data packet and the second data packet at the PDCP layer according to an embodiment of the present application
  • FIG. 26 is a schematic diagram of an apparatus provided by an embodiment of the present application.
  • FIG. 27 is a schematic diagram of another apparatus provided by an embodiment of the present application.
  • FIG. 28 is a schematic diagram of still another apparatus provided by an embodiment of the present application.
  • FIG. 1 is a schematic structural diagram of a communication system 1000 to which an embodiment of the present application is applied.
  • the communication system includes a radio access network 100 and a core network 200 .
  • the communication system 1000 may further include the Internet 300 .
  • the radio access network 100 may include at least one radio access network device (such as 110a and 110b in FIG. 1 ), and may also include at least one terminal (such as 120a-120j in FIG. 1 ).
  • the terminal is connected to the wireless access network device in a wireless way, and the wireless access network device is connected to the core network in a wireless or wired way.
  • the core network device and the radio access network device can be independent and different physical devices, or the functions of the core network device and the logical functions of the radio access network device can be integrated on the same physical device, or they can be one physical device. It integrates the functions of some core network equipment and some functions of the wireless access network equipment. Terminals and terminals and wireless access network devices and wireless access network devices may be connected to each other in a wired or wireless manner.
  • FIG. 1 is just a schematic diagram, and the communication system may also include other network devices, such as wireless relay devices and wireless backhaul devices, which are not shown in FIG. 1 .
  • the radio access network equipment can be a base station (base station), an evolved base station (evolved NodeB, eNodeB), a transmission reception point (transmission reception point, TRP), the next generation in the fifth generation (5th generation, 5G) mobile communication system
  • Base station (next generation NodeB, gNB), the next generation base station in the sixth generation (6th generation, 6G) mobile communication system, the base station in the future mobile communication system or the access node in the WiFi system, etc.; it can also complete the base station part
  • a functional module or unit for example, may be a centralized unit (central unit, CU) or a distributed unit (distributed unit, DU).
  • the radio access network device may be a macro base station (110a in FIG.
  • the embodiments of the present application do not limit the specific technology and specific device form adopted by the wireless access network device.
  • the following description takes a base station as an example of a radio access network device.
  • a terminal may also be referred to as terminal equipment, user equipment (UE), mobile station, mobile terminal, and the like.
  • Terminals can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things ( internet of things, IOT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grid, smart furniture, smart office, smart wear, smart transportation, smart city, etc.
  • Terminals can be mobile phones, tablet computers, computers with wireless transceiver functions, wearable devices, vehicles, drones, helicopters, airplanes, ships, robots, robotic arms, smart home devices, etc.
  • the embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal.
  • Base stations and terminals can be fixed or mobile. Base stations and terminals can be deployed on land, including indoor or outdoor, hand-held or vehicle-mounted; they can also be deployed on water; they can also be deployed in the air on aircraft, balloons, and satellites. The embodiments of the present application do not limit the application scenarios of the base station and the terminal.
  • the helicopter or drone 120i in FIG. 1 may be configured as a mobile base station, for those terminals 120j accessing the radio access network 100 through 120i, the terminal 120i is Base station; but for base station 110a, 120i is a terminal, that is, communication between 110a and 120i is performed through a wireless air interface protocol.
  • the communication between 110a and 120i may also be performed through an interface protocol between the base station and the base station.
  • both the base station and the terminal may be collectively referred to as communication devices, and 110a, 110b, and 120a-120j in FIG. 1 may be referred to as communication devices having their respective functions, such as a communication device having a base station function, or a communication device having a terminal function communication device.
  • Communication between base stations and terminals, between base stations and base stations, and between terminals and terminals can be carried out through licensed spectrum, through unlicensed spectrum, or through licensed spectrum and unlicensed spectrum at the same time;
  • the frequency spectrum below gigahertz (GHz) is used for communication, the frequency spectrum above 6GHz can also be used for communication, and the frequency spectrum below 6GHz and the frequency spectrum above 6GHz can be used for communication at the same time.
  • the embodiments of the present application do not limit the spectrum resources used for wireless communication.
  • the function of the base station may also be performed by a module (eg, a chip) in the base station, or may be performed by a control subsystem including the function of the base station.
  • the control subsystem including the base station function here may be the control center in the application scenarios of the above-mentioned terminals such as smart grid, industrial control, intelligent transportation, and smart city.
  • the functions of the terminal can also be performed by a module (such as a chip or a modem) in the terminal, and can also be performed by a device including the terminal functions.
  • the base station sends downlink data (also referred to as downlink signals) to the terminal, and the downlink data is carried on the downlink channel;
  • the terminal sends uplink data (also referred to as uplink signals) to the base station, and the uplink data is carried on the uplink channel .
  • the terminal can establish a wireless connection with a cell controlled by the base station.
  • the cell that has established a wireless connection with the terminal is called the serving cell of the terminal.
  • the present application can be applied to a variety of specific communication scenarios, for example, point-to-point transmission between a base station and a terminal or between a terminal (as shown in Figure 2(a) for point-to-point transmission between a base station and a terminal), multiple Hop (as shown in Figure 2(b), Figure 2(c)) transmission, dual connectivity (Dual Connectivity, DC) (as shown in Figure 2(d)) or multiple connections of multiple base stations and terminals.
  • XR extended reality
  • a data packet is a unit of data in communication.
  • the information in a communication transmission can be divided into multiple data packets, and these data packets will be sent to the sender of the data (that is, the party sending the data during the communication process, hereinafter referred to as the sender) after some data processing.
  • the receiving end of the data (that is, the party receiving the data in the communication process, hereinafter referred to as the receiving end), the receiving end obtains the message after some inverse processing corresponding to the sending end.
  • a data packet can include a packet header and a packet body, and the packet header is the header information; the packet body is the data part of the data packet except the packet header.
  • a data packet can carry data in units of bits or bytes. Of course, it is not limited to these two methods.
  • the length of a data packet can be understood as the amount of data measured in the corresponding unit.
  • the length of the data packet can also be understood as the size of the data packet.
  • the original data packet in this embodiment of the present application refers to a data packet that has not yet undergone network coding operations.
  • the encoded data packet is the data packet generated after the original data packet is network encoded.
  • Splitting is dividing a data packet into at least two parts, which can also be expressed as division or splitting.
  • the division may be performed in units of bits or in units of bytes.
  • Cascading can also be expressed as connection and splicing, which specifically refers to connecting multiple data segments into a whole in turn, such as connecting the end of one data segment with the starting position of another data segment, and so on.
  • At least one may also be expressed as one or more.
  • First”, “Second”, “Third”, “A”, “B”, “C” and “D” distinguish the technical features in this kind of technical features.
  • “, “third”, “A”, “B”, “C” and “D” describe the technical features in no order or order of magnitude.
  • “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.
  • "Transfer" as a noun can include sending and/or receiving of data, and as a verb can mean sending and/or receiving.
  • the indication of the information involved in the embodiment of the present application may be an explicit indication or an implicit indication.
  • the displayed information is the information to be instructed to be sent directly.
  • the implicit indication is to achieve the purpose of indicating the information to be indicated by establishing a correspondence between the information to be indicated and another information, and indicating the other information.
  • the current mainstream network coding schemes include but are not limited to random liner network coding (RLNC), convolutional network coding (CNC), Reed Solomon (RS) coding and streaming coding (streaming). coding), etc.
  • the sender sends at least one original data packet, and encodes the at least one original data packet by constructing a coding coefficient matrix to obtain at least one encoded data packet.
  • the at least one encoded data packet is sent. If the original data packet is lost at the receiving end, the lost original data packet is recovered by jointly decoding the received original data packet and the encoded data packet.
  • the data packet to be encoded can be considered as a service data unit (SDU) or a protocol data unit (protocol data unit). , PDU), and the size of the SDU or PDU corresponding to any layer cannot be guaranteed to be the same, so it is impossible to directly perform network coding on the SDU or PDU.
  • SDU service data unit
  • PDU protocol data unit
  • the existing communication protocol cannot directly support the network coding technology, and only data packets of equal length can be obtained for network coding through operations such as segmentation, concatenation, and padding.
  • the receiving end needs to introduce the relevant information of these operations, and restore the PDU or SDU before the operation through the reverse operation. Operations such as segmentation, concatenation, and padding will inevitably complicate the processing flow of the transmitter and receiver, which will degrade the performance of the wireless communication system.
  • solving the problem of introducing network coding technology through segmentation, concatenation, etc. greatly changes the existing protocol, so it is not conducive to the forward compatibility of communication.
  • an embodiment of the present application proposes a data processing method, which introduces network coding technology into a wireless communication system and improves the transmission performance of the wireless communication system on the basis of changing the existing protocol as little as possible and increasing the system overhead.
  • the protocol stack of the current wireless communication protocol includes a user plane protocol stack and a control plane protocol stack.
  • the user plane protocol stack includes a service data adaptation protocol (SDAP) layer, a PDCP layer, a radio link control (radio link control, RLC) layer, Medium access control (MAC) layer and physical PHY layer
  • the control plane protocol stack includes non-access stratum (non-access stratum), radio resource control (radio resource control, RRC) layer, PDCP layer, RLC layer , MAC layer, and PHY layer.
  • the embodiments of the present application do not exclude that the user plane protocol stack or the protocol stack of other communication protocols may also include other protocol layers, or not include one or more of the protocol layers listed above.
  • FIG. 4 shows the process of how the internet protocol (IP) data packet of the sender is processed at each layer and encapsulated into a PDU and then delivered to the next layer.
  • IP internet protocol
  • the MAC layer generates a MAC PDU and transmits it to the PHY layer and sends it to the receiver.
  • the data packet processed by the SDAP layer enters the PDCP layer as the SDU of the PDCP layer.
  • the header information H of the PDCP layer is added to form the PDCP layer.
  • PDU (not shown in the figure) is passed to the RLC layer.
  • the SDU of this layer can be segmented at the RLC layer, and the SDU of this layer can be concatenated at the MAC layer.
  • the involved protocol layers may also include an adaptive backhaul protocol ( backhaul adaptation protocol, BAP) layer.
  • BAP backhaul adaptation protocol
  • Figure 5 shows a schematic diagram of a protocol stack of an IAB node.
  • IAB node is divided into two functional modules: DU module and mobile terminal (mobile terminal, MT) module, these two functional modules correspond to a protocol stack respectively.
  • a new protocol layer such as a network coding function layer
  • the network coding function layer may be located between any two existing protocol layers, such as between the PDCP layer and the RLC layer, between the RLC layer and the MAC layer, or between the MAC layer and the PHY layer, and so on.
  • the functions corresponding to the technical solutions of the present application may also be embedded in an existing protocol layer, for example, a BAP layer, a PDCP layer, an RLC layer, or a MAC layer.
  • Embodiment 7 of the present application will describe in detail the specific solution of embedding the technical solution of the present application into the PDCP layer.
  • the technical solutions of the present application may be implemented in the CU or DU. It should be noted that, the technical solutions of Embodiments 1 to 6 of the present application are not limited to be realized by the above technical solutions.
  • network coding is performed on part or all of the data segment obtained by mapping the first data packet to the buffer of the sending end, and the first data packet and the second data packet generated by the network coding are sent, wherein , each first data packet includes header information for indicating its position in the cache.
  • each first data packet includes header information for indicating its position in the cache.
  • Joint decoding is performed to recover the first data packet lost during transmission.
  • the first embodiment provides a data processing method, which can be applied to any of the scenarios mentioned above in this application.
  • the execution body of the method can be a sender, and the sender can send K pieces of first data to be sent.
  • the packet is network encoded to obtain N second data packets, and the first data packet and the second data packet are sent to the receiving end.
  • the transmitting end may be the aforementioned base station, the corresponding receiving end may be a terminal or a base station, the transmitting end may also be a terminal, and correspondingly, the receiving end may be a base station or a terminal.
  • the sender can also be an IAB node or IAB donor, and the receiver can also be an IAB node or IAB donor.
  • K and N are positive integers. As shown in Figure 6, it specifically includes the following steps:
  • Map K first data packets in the cache, where the first data packets include first header information, and the first header information includes information indicating the location of the first data packets in the cache.
  • the first data packet may also be referred to as an original data packet, or an original data packet.
  • the packet body of the first data packet is the data packet transmitted downward at the upper layer of the network coding function layer, for example, when the network coding function layer is located in When between the PDCP layer and the RLC layer, the packet body of the first data packet is the PDCP layer PDU transmitted downward by the PDCP layer.
  • the first data packet is the data packet being processed by the protocol layer.
  • the body of the first data packet can be the PDCP layer.
  • SDU The packet body of the first data packet may be a PDU or an SDU, which is not limited in this application.
  • the K first data packets are continuously sent in one scheduling of the sending end and the receiving end.
  • a cache may be entered to perform a virtual segmentation and concatenation operation, so as to ensure that the objects of network coding are data segments with equal lengths.
  • the use of "virtual" here to express this kind of division and concatenation is not the actual division and concatenation of the K first data packets.
  • the concatenation operation performed on the SDU of this layer is a transparent operation to the protocol layer that does not involve the network coding function in the existing protocol. It should be noted that, since the embodiment involves the processing method of the sender, the buffer here refers to the buffer of the sender (in the following description of the method in FIG.
  • the buffer refers to the buffer of the sender), And it may be an actual cache, or a virtual cache constructed to implement the technical solution of the present application.
  • the location information in the first header information generated by the sending end indicates the location information of the first data packet in the buffer of the sending end.
  • mapping K first data packets may be understood as storing or placing K first data packets in the cache.
  • the structure of the virtual cache can be configured or adjusted, and mapping the K first data packets can be understood as associating the K first data packets with a specific position in the virtual cache, In order to ensure that the encoding operation of the first data packet according to the encoding length is implemented.
  • the first header information included in each of the K first data packets respectively indicates the position of each first data packet in the cache, according to which the location of each first data packet in the cache can be uniquely determined. Location.
  • the first header information may have a fixed number of bits. For the specific structure of the first header information, please refer to the second embodiment of the present application.
  • the arrangement order corresponding to the positions of the K first data packets in the cache is the sequence of sending the K first data packets, or the sequence of the sequence numbers of the first data packets. In this way, the complexity is relatively low for the encoding operation at the transmitting end and the subsequent decoding operation at the receiving end.
  • the sender maps the K first data packets in the buffer.
  • the sender can obtain the location information of the K first data packets in the cache in combination with information such as the length of the first data packet and the structure of the buffer before the mapping, so that it can obtain the location information of the K first data packets before the mapping. Contents of the first header information contained in the K first data packets.
  • the sender may map the K first data packets to the buffer according to the location information indicated by the first header information included in each first data packet. If the arrangement order corresponding to the positions of the K first data packets in the cache is the order in which the K first data packets are sent, the sender can also directly send the K first data packets in turn according to the sending order of the first data packets.
  • Packets are mapped to buffers, which is less complex for the sender to process. If the arrangement order corresponding to the positions of the K first data packets in the cache is not directly related to the order in which the K first data packets are sent, then the position indicated by the first header information contained in each first data packet will be followed. information, and map the K first data packets to the cache respectively.
  • the length of the first header information may be fixed.
  • the content of the first header information may be empty .
  • the sending end sequentially maps the K first data packets to the buffer in a predetermined order, the position of each of the K first data packets in the buffer is determined. At this time, the sending end then fills in the information of the positions of the K first data packets in the cache correspondingly into their respective first header information.
  • each of the K first data packets is located in the cache at a position indicated by its header information.
  • This application does not limit the specific structure of the cache.
  • the cache can be a two-dimensional storage structure, for example, two dimensions can correspond to two dimensions of columns and rows, respectively.
  • columns and rows are two mutually orthogonal dimensions.
  • data is mapped row by row, that is, the length direction of the column is the same as the The length direction of the first data packet in the cache is consistent, and the width of each column corresponds to the unit corresponding to the first data packet, that is, for each row in each column, one unit of data can be mapped.
  • the cache includes columns X to X+5, where X is an integer greater than or equal to 0.
  • Each column contains at least one row.
  • the data in the first data packet is mapped into the cache in a row-first-column manner, such as a column-by-column manner, as indicated by the arrows, first from top to bottom, and then from left to right.
  • row and column are relative concepts.
  • the two dimensions in the two-dimensional structure are described in terms of rows and columns in the embodiments of the present application, the names of the two dimensions can be interchanged or replaced with other names, such as the first dimension and the second dimension, the first dimension and The second dimension is orthogonal, and the first dimension and the second dimension may correspond to the aforementioned columns and rows, respectively.
  • the definitions of the two dimensions are substantially the same as the aforementioned definitions of "column" and "row” respectively, it is substantially consistent with the technical solutions of the embodiments of the present application.
  • the structure of the cache described above may be referred to as a storage structure of row-before-column.
  • data is mapped to the cache in a row-first-column manner, such as a column-by-column manner.
  • the cache can also be a one-dimensional structure.
  • the unit of the first data packet is consistent with the unit of the data in the cache, and the mapping direction of the first data packet is the same as the storage direction of the cache (also called the length of the cache). direction) is consistent and corresponds to the direction in which the length of the first data packet is located.
  • the data in the M data segments include part or all of the data in the K first data packets, and the The lengths of the M data segments are equal.
  • the M data segments in this step include part or all of the data of the K first data packets in the cache, and data segments of equal length obtained after virtual segmentation and concatenation operations.
  • M is a positive integer.
  • the cache is a two-dimensional structure:
  • the M data segments include partial data of the three first data packets (the M data segments do not include the data of the first data packets that fall outside the coding window).
  • the data of the K first data packets that are not included in the M data segments are data that fall outside the coding window.
  • the data of the first data packet referred to in this application includes the packet header and the packet body of the first data packet.
  • the length of each data segment is the column length of the cache, and the start position of each data segment is the first row of a column in the cache, and the end position is the end row of the column. That is, it can be considered that the data mapped in each column in the coding window corresponds to a data segment.
  • At least part of the data of the first data packet sent at the time of transmission which are referred to as other data in the figures of the embodiments of the present application.
  • padding data may be mapped to fill the area, which are also referred to as other data in the figures of the embodiments of the present application.
  • the value of M is the number of columns included in the coding window.
  • the virtual segmentation and concatenation operation corresponding to the M data segments obtained in this example is very convenient, which is beneficial to reduce the complexity of data processing in communication.
  • the length of each data segment is any length, and/or the starting position of the first data segment in the M data segments in the coding window is not the first column and the first row in the coding window.
  • the start position of the first data segment in the M data segments is the start position of encoding. That is to say, in the first column of the coding window at this time, there is an offset between the row where the starting position of the data segment is located and the first row.
  • the offset is the offset between the first row of the column where the encoding start position is located and the row where the encoding start position is located.
  • the offset reflects the starting position of encoding, or the offset can reflect the mapped positions of the M data segments in the cache.
  • the length of each data segment is still set to the column length of the cache, and the offset is set to the first column of the encoding window (column X), where the first data packet mapped into the cache is located.
  • the offset between the row and the first row is shown in Figure 9(c).
  • the dot-dash line in the figure can be understood as the boundary line between each data segment.
  • encoding can be performed from the first first data packet in the K first data packets. In this way, data irrelevant to the current transmission will not be introduced, thereby reducing the complexity of data processing.
  • the data in the coding window is divided M times to obtain M data segments.
  • the starting position indicated by the offset that is, the starting position of the first data segment
  • the starting position of the line indicated by the offset is the same as the starting position of the first data packet.
  • At least part of the data of the first data packet sent during the last data transmission may be mapped between the start positions of the first data packets, and are referred to as other data in the drawings of the embodiments of the present application.
  • the padding data can be mapped to fill the area between them.
  • the sender and the receiver can reach a consensus on the parameters related to the existence form in some ways, for example: each The length of the data segment and/or the offset in the example can be pre-agreed by the receiver and the sender, and the sender can also notify the receiver through RRC signaling or downlink control information (DCI), and the sender can also carry The receiving end is notified in the first header information of the first data packet.
  • each The length of the data segment and/or the offset in the example can be pre-agreed by the receiver and the sender, and the sender can also notify the receiver through RRC signaling or downlink control information (DCI), and the sender can also carry The receiving end is notified in the first header information of the first data packet.
  • DCI downlink control information
  • Fig. 10(a) and Fig. 10(b) respectively show that the M data segments include the data of all 3 first data packets and the M data The segment includes part of the data of the 3 first packets.
  • the length of the M data segments can also be pre-agreed, through RRC signaling, or DCI notification, or carried in the first header information, etc., so that the sender and the receiver can reach a consensus understanding.
  • the metered length of the one-dimensional cache which can equally divide the one-dimensional cache into multiple segments. If the analogy is to a two-dimensional cache, the metered length of a one-dimensional cache is equivalent to the column length of a two-dimensional cache. Each segment in the 1D cache is equivalent to a column in the 2D cache. Figuratively speaking, as shown in Figure 9(a), 9(b) or 9(c), it is equivalent to connecting the end of one column in the two-dimensional cache with the beginning of the next column in sequence, and then expanding it into a one-dimensional cache. .
  • the existence form of the M data segments in the cache can be referred to the descriptions in Example 1 and Example 2 in the above-mentioned two-dimensional cache, and combined with Figures 9(a), 9(b), 9(b), Figures 10(a), 10(b), and 10(c) have similar situations in 9(c), which will not be repeated here.
  • the subsequent embodiments of the present application will mainly take the two-dimensional cache as an example for detailed introduction. The comparison and description of the two are realized in combination with the given related drawings.
  • the transmitting end may perform a network coding operation on the M data segments to generate N second data packets.
  • the second data packet may also be referred to as an encoded data packet.
  • the second data packet includes second header information, and the second header information may indicate information of M data segments corresponding to the second data packet, or in other words, the second header information may indicate encoding range of the window.
  • the second header information may also include coding parameters, such as coding coefficient indices, etc., for the receiving end to perform accurate decoding operations.
  • the second header information can enable the receiving end to know which data segments the N second data packets can be used for decoding.
  • the specific structure of the second header information please refer to Embodiment 2 of the present application.
  • the correspondence between the second data packet and the M data segments can also be indicated by the sender to the receiver through high-level signaling, so that the receiver can parse the second header information before parsing the information. It is possible to obtain this correspondence, which improves the decoding efficiency of the receiving end.
  • N is a positive integer.
  • step 102 are independent of each other, and there is no restriction on the order of execution, that is, step 102 can be executed first, and then step 103 can be executed, or step 103 can be executed first, and then step 102 can be executed, or step 102 can be executed. 102 and step 103 are executed simultaneously.
  • step 103 is performed before step 102, the delay of data communication can be reduced.
  • Part or all of the N second data packets generated this time may be determined to be sent according to a specific scenario or a communication environment. For example, when the channel quality corresponding to certain scenarios or communication environments is relatively good, the sender may choose to send a part of the N second data packets first, and then request more second packets if it receives feedback from the receiver. In the case of data packets, the number of second data packets in the remaining second data packets among the N second data packets to be sent is determined according to the number of second data packets that need to be sent according to the feedback information.
  • the sender can encode again to generate the second data packet Send to satisfy the request of the receiver. In this way, the overhead caused by the sending of the redundant second data packet at the sending end can be saved.
  • the sender may choose to send all the N second data packets, so that the overhead caused by some feedback information can be saved. In this way, the performance of the system is improved.
  • the specific details of the feedback information will be specifically described in the third embodiment.
  • step 103 when step 103 is performed after step 102 , this step may be performed before or after step 103 , and may also be performed simultaneously with step 103 .
  • step 104 When step 103 is executed before step 102, then step 104 must be executed after step 103.
  • the technical solution shown in FIG. 6 can be regarded as a coding solution at the transmitting end.
  • this embodiment continues to provide another data processing method, which can be considered as a decoding scheme.
  • the execution subject of the method can be the receiving end, which is intended to recover the first data lost in the communication process. data pack.
  • the decoding scheme in this technical solution corresponds to the encoding scheme in the embodiment of FIG. 4 . Unless otherwise specified, the understanding of related terms is consistent and will not be repeated. As shown in Figure 11, it includes:
  • a first data packets and B second data packets where the first data packets include first header information, and the first header information includes information indicating a location of the first data packets in the cache.
  • This step corresponds to steps 103 and 104 . Since the first data packet may be lost due to channel noise, interference, etc. during the transmission process, the receiving end receives A first data packets, where A is an integer, and 0 ⁇ A ⁇ K, that is to say, the A first data packet here is A data packet may belong to the K first data packets sent in step 103, and for the receiving end, the K data packets belong to the first data packets that need to be received (or acquired). It should be noted that the loss of the first data packet referred to here can be understood as the first data packet being discarded or erased at the receiving end due to a receiving error.
  • the receiving end interprets the buffer referred to in the first header information as the buffer of the receiving end.
  • the buffering refers to the buffering at the receiving end. It can be understood that the construction of the cache of the receiving end described in step 201 is exactly the same as that of the sending end, and the location of the first data packet is exactly the same in the two caches, so the receiving end parses and obtains the first data packet. After the location information of the first data packet in the buffer indicated by the first header information, it can be directly understood as the information of the location of the first data packet in the buffer of the receiving end.
  • the buffer of the sender and the buffer of the receiver may be different, but there is a corresponding relationship pre-agreed by the sender and the receiver, then the receiver can determine the received The position of the A first data packet in the cache of the receiving end, but, in the embodiments of the present application, the construction of the cache of the receiving end is exactly the same as that of the cache of the sending end, and the position of the first data packet is also completely in the two caches. The same example is used to expand the description.
  • the pre-appointment in this application may be understood as defining, pre-defining, storing, pre-storing, pre-negotiating, pre-configuring, curing, or pre-firing.
  • the second data packet in this step is used for joint decoding with some or all of the data in the A data packets that fall within the decoding window.
  • the meaning of the decoding window corresponds to the encoding window, and the receiving end decodes the data segment and/or sub-data segment that falls in the decoding window and can correspond to the data segment in the encoding window of the transmitting end.
  • the second data packet may be an encoded data packet corresponding to the M data segments described in step 102 .
  • the B second data packets received in step 201 may all come from the second data packets sent in step 104, that is, B ⁇ N.
  • the receiving end corresponds to the received data packets in step 104.
  • the sent data packet may not be enough to help completely recover the lost first data packet, then at this time, the receiving end can send feedback information to the transmitting end, indicating the number of the second data packets needed, the B received in step 201.
  • the second data packets also include the second data packets sent by the sender according to the feedback information.
  • the transmitting end may generate it by re-encoding or the like. That is to say, the B data packets include part or all of the N data packets sent in step 104 .
  • the content of each of the B second data packets is the same as that of each of the N second data packets.
  • the receiving end may map the A first data packets to some or all of the data in the buffer of the receiving end and at least one of the B second data packets.
  • the receiving end parses the received A first data packets to obtain the first header information of the A first data packets.
  • the receiving end respectively maps the A first data packets in the buffer of the receiving end according to the position indicated by the A first header information.
  • mapping reference may be made to the expression in step 101 .
  • the C data segments and/or D sub-data segments and at least one of the B second data packets are jointly decoded to recover the E data segments, and the E data segments include F lost first data packets
  • the data of the D sub-data segments is part of the data segment in the E data segments, and the data of the C data segments and the D sub-data segments include the part of the A first data packets or For all data, the lengths of the C data segments and the E data segments are equal.
  • the virtual segmentation and concatenation method adopted in this step is consistent with that described in step 103 of the sender, but since there may be packet loss during data transmission (for example, F first data packets are lost), in It may not be possible to obtain all M data segments in the buffer at the receiving end, but to obtain C data segments and D sub-data segments.
  • the data of the data segment in the M data segments is not all lost, the part including the non-lost data in the data segment is called a sub-data segment.
  • Both C and D are integers ⁇ 0.
  • the data of the C data segments and the D sub-data segments include all the data in the A first data packets.
  • the data of the C data segments and the D sub-data segments include part of the data in the A first data packets.
  • the decoding range defined by the decoding window in the buffer of the receiving end corresponds to the encoding range defined by the encoding window of the transmitting end in the buffer of the transmitting end.
  • the data of the A first data packets that cannot be included in the data of the C data segments and the D sub-data segments all fall outside the decoding window.
  • the existence form of the data segment at the receiving end in the buffer is consistent with the existence form of the data segment in the buffer at the sending end.
  • the existing forms of the data segments shown in FIG. 12(a) to FIG. 12(c) are consistent with Example 1 in step 102
  • the data segments in the buffer of the receiving end can also exist in the manner of Example 2, through
  • the receiver can completely know the existence form of the data segment in the cache.
  • the offset in step 102 is the offset between the first row of the column where the encoding starting position is located and the row where the encoding starting position is located.
  • the offset correspondingly reflects the starting position of decoding, or in other words, reflects the mapped position of the data segment in the cache.
  • the second data packet includes second header information
  • the second header information may indicate information of a data segment in the cache corresponding to the second data packet, or in other words, the second header information may indicate translation The range of the code window.
  • the second header information can also include coding parameters, for example, coding coefficient indices, etc., for the receiving end to perform an accurate decoding operation correspondingly.
  • the second header information can enable the receiving end to know which first data packets or which data segments in the buffer the second data packet is used for decoding.
  • the data segments in the cache corresponding to the second data packet include the above-mentioned C data segments and E data segments.
  • the C data segments and/or the D sub-data segments and at least one of the B second data packets are processed.
  • Joint decoding recovers E data segments.
  • the E data segments include data of F lost first data packets, where E and F are integers greater than 0.
  • a decoding method of recovering one data segment from one second data packet if a decoding method of recovering one data segment from one second data packet is adopted, at least one of the C data segments and the B second data packets can be jointly decoded to recover the lost data segment , so as to recover the lost first data packet.
  • the number of second data packets involved in decoding may be equal to (M-C). After decoding, M data segments are also mapped in the buffer, and K first data packets sent by the sender can be obtained accordingly.
  • the enhanced decoding method if the enhanced decoding method is adopted, at least one second data packet among the C data segments, the B second data packets, and the D sub-data segments will participate in joint decoding.
  • the C data segments and the D sub-data segments and at least one of the B second data packets can be jointly decoded to recover the data in the lost first data packet.
  • M data segments are also mapped in the buffer, and K first data packets sent by the sender can be obtained accordingly.
  • the packet bodies of the K first data packets are obtained and continue to be transmitted to the upper layer.
  • the body of the packet can be PDU or SDU as mentioned above. This will not affect other rules of the existing protocol.
  • FIG. 13 shows an implementation of the data processing method described in FIG. 6 based on a protocol architecture.
  • the network coding function is implemented in the newly introduced network coding function layer.
  • the network coding function layer is located between the PDCP layer and the RLC layer.
  • the PDU of the PDCP layer is passed down to the network coding function layer as the SDU of the network coding function layer.
  • the figure shows 3 first data packets.
  • the network coding function layer adopts steps 101 and 102 involved in FIG. 6 , two second data packets are generated, wherein h is the second header information of the second data packets.
  • the 3 first data packets and the 2 second data packets are further passed down to the RLC layer as PDUs of the network coding function layer (not shown in the figure).
  • the packet header of each layer is marked as H for the purpose of simplicity, the information included in the H of each layer may be different.
  • the SDUs in each layer are not numbered for brevity, but it is known that they are different SDUs.
  • the data packets passed down by the network coding function layer can be fully compatible with the functions of the RLC layer, that is, the RLC layer can process and operate the network coding PDU as a PDCP PDU. It should be noted here that the operations of data in other protocol layers are consistent with those in the prior art, and thus are not repeated here.
  • This embodiment introduces a design solution for the specific structure of the first header information and the specific structure of the second header information. It should be noted that the technical solution of the present application does not need to apply the specific structure of the first header information and the specific structure of the second header information in the second embodiment at the same time, that is, they are decoupled.
  • This embodiment may be based on the first embodiment.
  • the first header information includes information indicating the location of the first data packet in the cache.
  • the column number of the start position of the first data packet Through the column number of the start position of the first data packet, the column number of the end position of the first data packet, the column number of the end position of the first data packet and the column number of the start position of the first data packet Any two in the difference between; and, the line number of the starting position of the first data packet, the line number of the ending position of the first data packet, the line number of the starting position of the first data packet Any two of the differences with the line number of the end position of the first data packet can uniquely determine the position of the first data packet in the cache.
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the difference between the column number of the end position of the first data packet and the column number of the start position of the first data packet Value, line number at the start of the first packet, and row number at the end of the first packet.
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the row number of the start position of the first data packet, the column number of the end position of the first data packet, and the first data packet. The line number where the package ends.
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the difference between the column number of the end position of the first data packet and the column number of the start position of the first data packet value, the line number of the start position of the first data packet, the difference between the line number of the end position of the first data packet and the line number of the start position of the first data packet.
  • the difference between the aforementioned line numbers may be a positive number or a negative number.
  • the line indicating the end position of the first data packet is below the line of the start position of the first data packet ;
  • the line number indicating the end position of the first data packet is above the line number of the start position of the first data packet.
  • the first header information of the first data packet includes: in the cache, the column number of the end position of the first data packet, the difference between the column number of the end position of the first data packet and the column number of the start position of the first data packet , the line number of the end position of the first data packet, and the difference between the line number of the end position of the first data packet and the line number of the start position of the first data packet.
  • the position of the first data packet in the cache may also be indicated in combination with the length of the first data packet.
  • the first header information of the first data packet includes: in the buffer, the column number of the initial position of the first data packet, the row number of the initial position of the first data packet, and the length of the first data packet.
  • the first header information of the first data packet includes: in the cache, the column number of the end position of the first data packet, the line number of the end position of the first data packet, and the length of the first data packet.
  • the sending end and the receiving end reach a consensus on the buffered column length in advance.
  • the column length of the buffer can be pre-agreed by the receiver and the sender, the sender can also notify the receiver through RRC signaling or DCI, and the sender can also carry it in the first packet of the first data packet. Notify the receiver in a message.
  • Figures 14(a) to 14(f) sequentially correspond to the structures of the first data packets in the implementation manners 1 to 6.
  • the column number of the start position of the first data packet is represented as R1
  • the column number of the end position of the first data packet is represented as R2
  • the column number of the end position of the first data packet and the start position of the first data packet The difference between the column numbers of the The difference D2 between the line numbers at the start position and the length of the first data packet is denoted by L.
  • the order of the positions between the fields in the figure is just an example. In fact, the order of the fields in the first header information can be interchanged arbitrarily, as long as the sender and the receiver agree in advance to ensure understanding. consistency is sufficient.
  • the number of bits of related fields can be specified, for example:
  • the column number of the starting position of the first data packet 8 bits
  • the line number of the starting position of the first data packet 7 bits, so that the line number in the range of 128 bytes can be represented;
  • the line number of the end position of the first data packet 7 bits, so that the line number in the range of 128 bytes can be represented;
  • the difference between the line number at the end of the first data packet and the line number at the start of the first data packet 8 bits, where the first bit indicates whether the difference is positive or negative, and the remaining 7 bits can be A line number representing a 128-byte range;
  • the length of the first data packet 11 bits, corresponding to a maximum length of 2048 bytes.
  • a relatively simple way to indicate the information of the location of the first data packet in the cache is to set a cache location index for the cache storage direction (length direction), and mark the start of the first data packet with the location index. Start position, end position of the first data packet, or combine the length of the first data packet with one of the start position of the first data packet and the end position of the first data packet to uniquely determine that the first data packet is in the cache s position.
  • This operation method is relatively simple. When the buffer space is large, the number of bits required for the corresponding position index will also increase.
  • a new indication method can be used to reduce the overhead of the first header information.
  • index represents the cache location index mentioned above, and the value range can be, for example, 0 to 1, Indicates rounded down.
  • the first data packet start position offset V1_mod is the distance between the first data packet start position and the start position of the segment where the first data packet start position is located;
  • the first data packet end position offset V2_mod is the distance between the first data packet end position and the start position of the segment where the first data packet end position is located;
  • the number of segments num_OS that the end position of the first data packet is offset from the start position
  • the index of the start position and the index of the end position of the first data packet in the cache can be calculated by the following formulas, these formulas are only some examples:
  • the index of the starting position of the first data packet in the cache is V1_mod+V1_num*S, V1_mod+(V2_num-num_OS)*S, or V2_mod-mod_OS+(V2_num-num_OS)*S;
  • the index of the end position of the first data packet in the buffer is V2_mod+V2_num*S, V2_mod+(V1_num+num_OS)*S, or V1_mod+mod_OS+(V1_num+num_OS)*S.
  • the content included in the first header information can also be implemented in the following ways:
  • the first header information of the first data packet includes: V1_mod, V1_num, and the length L of the first data packet.
  • the index of the start position is V1_mod+V1_num*S; the index of the end position is V1_mod+V1_num*S+L.
  • the first header information of the first data packet includes: V2_mod, V2_num, and L. At this time, the index of the start position is V2_mod+V2_num*S-L, and the index of the end position is V2_mod+V2_num*S.
  • the first header information may include at least two items of V1_mod, V2_mod, and mod_OS, and at least two items of V1_num, V2_num, and num_OS.
  • the first header information of the first data packet includes: V1_mod, V1_num, V2_mod, and num_OS.
  • the first header information of the first data packet includes: V1_mod, V1_num, num_OS, and mod_OS.
  • the first header information of the first data packet includes: V2_mod, V2_num, V1_mod, and num_OS.
  • the first header information of the first data packet includes: V2_mod, V2_num, num_OS, and mod_OS.
  • the second data packet includes second header information, the second header information is included in the cache, the encoding starting column number Win_R1, the encoding encoding window length Win_S (for example, the number of columns in the cache participating in this encoding, if the corresponding embodiment
  • the scenario of Example 1 in 1 can also be understood as the number of data segments M) and any two of the end column numbers Win_R2 of the encoding. That is, through any two fields above, it can be determined which data segments are encoded this time, or, in other words, the encoding window range of this encoding.
  • Win_S may also notify the receiving end in a semi-static configuration, and at this time, Win_S may not be included in the second header information.
  • the second header information may further include at least one of the following fields:
  • Packet ID packet ID used to represent the sequence SN number of the second data packet, and its value range is 0 to 2 N -1, where N is the number of bits of the packet ID;
  • the row index coeff ID of the coefficient codebook 8-bit overhead can represent 255 rows of codebook coefficients, which are used to encode the data segment in the coding window.
  • Common codebooks include Vandermonde codebook, Cauchy codebook, random codebook, etc.
  • sequence between the fields in the second header information can be arbitrary, and the structure of a second data packet shown in FIG. 16 is just an example.
  • the number of bits in the relevant field may be specified, for example:
  • Win_R1 8 bits, corresponding to one of the 256 columns that can be indicated;
  • Win_S 8 bits, corresponding to the length that can indicate 256 kinds of coding windows
  • Win_R2 8 bits, corresponding to one of the 256 columns that can be indicated;
  • packet ID It is a value range of 8 bits or 16 bits, which can be uniquely determined in combination with type;
  • both the first header information and the second header information may further include a common field original/code (O/C) field to indicate that the currently sent data packet is the first
  • cyclic redundancy check (cyclic redundancy check, CRC) information may also be added to the first data packet and/or the second data packet.
  • CRC cyclic redundancy check
  • the end of the first header information, the end of the first header information and the end of the first packet, the end of the second header information, the second header information CRC information is added to the end of the data packet and the end of the second data packet, and the ellipsis in the figure represents the omitted first header information or other fields in the second header information.
  • an additional bit may be added to the first header information, and the one bit indicates whether CRC information is added at the end of the first header information of the corresponding first data packet and/or at the end of the first data packet.
  • An additional bit may also be added to the second header information, where the one bit indicates whether CRC information is added at the end of the second header information of the corresponding second data packet and/or at the end of the second data packet. Adding CRC information to at least one of the first header information, the second header information, the first data packet, and the second data packet can correspondingly ensure the first header information, the second header information, the first data packet, and the second data packet. Packet integrity and accuracy.
  • the overhead through the structure of the first header information and/or the second header information as above is relatively small.
  • the total overhead of the first header information is about 4 bytes
  • the total overhead of the second header information is about 2 bytes.
  • This design not only effectively ensures the accuracy of the encoding and decoding process operations, but also requires at least 8 bytes of indication overhead compared to the traditional split and concatenated method, and also greatly saves the system overhead.
  • the technical solutions of the embodiments of the present application also take into account the compatibility of existing protocols.
  • This embodiment introduces a design solution for feedback information.
  • This embodiment may be based on Embodiment 1 or Embodiment 2.
  • the receiving end may instruct the transmitting end to obtain sufficient first data packets. Two data packets to complete the entire decoding process. At the same time, for a mature data transmission mechanism, the sender will also know whether all the data in this data transmission has been correctly received by the receiver. Based on this, the technical solution of this embodiment can be introduced.
  • the receiving end sends feedback information to the transmitting end, which is used to indicate whether the data packets of this data transmission are successfully received.
  • the receiving end may directly send feedback information to the transmitting end, where the feedback information is an acknowledgment response ACK. If there is a decoding error at the receiving end, that is, the K first data packets are not received correctly, the receiving end sends feedback information to the transmitting end, and the feedback information includes the data segments of the M data segments that the receiving end has correctly received. The number of , which corresponds to the rank number. Or, the feedback information includes the number of second data packets that need to be sent by the sending end, that is, corresponding to the required number of ranks.
  • the following method can be used: If the data segment in the decoding window cannot be completely mapped in the receiving end buffer after decoding, it is determined that the data segment is lost, and M minus the missing data segment The number is the rank number. If the data segment in the decoding window cannot be completely mapped in the buffer of the receiver before decoding, it is determined that the data segment is lost, and the number of lost data segments minus the number of received encoded packets is the required rank number.
  • the feedback information further includes information indicating the data segment corresponding to the second data packet that needs to be sent by the sending end, or includes information indicating the range of the encoding window for this encoding.
  • the feedback information includes any two of Win_R1, Win_S, and Win_R2, and their definitions and examples are the same as the relevant parts in the second embodiment, and will not be repeated.
  • the feedback information used in this embodiment makes the entire data transmission process more complete, which facilitates the receiving end to receive all the data sent by the transmitting end more quickly and correctly, and improves the transmission performance of the system.
  • This embodiment provides another data processing method, which may be based on the technical solution of the data processing method described in Embodiment 1, and may also be combined with at least one of Embodiments 2 and 3.
  • each of the K first data packets can be made to start from the first row of the column where the first data packet starts. map. If the end position of the first data packet is not the last row of the column where the end position is located, for the column where the end position of the first data packet P is located, the row of the end position of the first data packet can be padding to the last row of the column. The area in between is filled. This ensures that the next first data packet is mapped from the first row of the next column, which is equivalent to that each column in the cache only contains data of one first data packet.
  • the padding-filled data may be all 0s.
  • the rest data processing methods at the sending end and/or the data processing methods at the receiving end are the same as those in the first embodiment.
  • the expressions are consistent, so they will not be repeated.
  • the first header information does not need to indicate information related to the row where the starting position is located.
  • the first header information includes the following implementations:
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the column number of the end position of the first data packet and the column number of the start position of the first data packet. The difference, the line number where the first packet ends.
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the column number of the end position of the first data packet, and the line number of the end position of the first data packet.
  • the first header information of the first data packet includes: in the cache, the column number of the start position of the first data packet, the column number of the end position of the first data packet and the column number of the start position of the first data packet.
  • the difference value the difference between the line number of the end position of the first data packet and the line number of the start position of the first data packet.
  • the first header information of the first data packet includes: in the buffer, the column number of the start position of the first data packet and the length of the first data packet.
  • Embodiment 2 For an example of the number of bits in each of the above fields, reference may be made to Embodiment 2.
  • each data packet in the K first data packets can also be mapped from the beginning of each segment defined by the metering length in the cache, as shown in FIG.
  • the rest of the present manners are similar to the above-mentioned implementation manners of the two-dimensional cache, and those skilled in the art can refer to the above-mentioned implementation manners for the two-dimensional cache, which will not be repeated here.
  • the overhead of the first header information can be further reduced.
  • This embodiment provides yet another data processing method, which may be based on the technical solution of the data processing method described in Embodiment 1, and may also be combined with at least one of Embodiments 2 and 3.
  • Embodiment 5 introduces a decision threshold.
  • the decision threshold may be a preset line number, and the preset line number may be notified to the terminal in a signaling manner. Still taking the storage structure of two-dimensional cache, row first and then column as an example, as shown in FIG.
  • the row number of the end position of the first data packet P is greater than the decision Threshold, then for column X+1, padding is used to fill the row from the end position of the first data packet P to the last row of the column, to ensure that the next first data packet P+1 can start from the first row of column X+2 Start mapping.
  • the line number of the end position of the first data packet P+1 is less than the decision threshold, then in the X+4th column, the first data packet P+2 will be mapped immediately following the first data packet P+1 . That is, no padding needs to be performed between the first data packet P+2 and the first data packet P+1.
  • the padding operation as described above can be used, or the padding operation can be omitted, as long as the sender and receiver are determined in advance and kept. A consensus on this is sufficient.
  • a type field may also be added to the first header information, which may be 1 bit, to indicate whether padding is additionally performed after the first data packet. If yes, the start position of the next first data packet of the first data packet is the first row of the column after the end position of the first data packet; if not, the start position of the next first data packet of the first data packet The start position is the next line of the line where the end position of the first data packet is located.
  • the 1-bit type field can indicate whether the mapping of the first data packet is connected to the end of the previous data packet, that is, the starting position is located in the middle row of a certain column, or from the column where the end position of the previous first data packet is located.
  • the first row of the next column starts mapping; for other information contained in the first header information, refer to Embodiment 2 and Embodiment 4.
  • the rest data processing methods at the sending end and/or the data processing methods at the receiving end are the same as those in the first embodiment.
  • the expressions are consistent, so they will not be repeated.
  • a position in each segment can also be specified as the decision threshold in the above expression. As shown in FIG. 21 , the position of the decision threshold in each segment is fixed.
  • the remaining implementation manners of the one-dimensional cache in this embodiment are similar to the above-mentioned implementation manners of the two-dimensional cache, and those skilled in the art can refer to the above-mentioned implementation manners for the two-dimensional cache, which will not be repeated here.
  • the technical solution of this embodiment can flexibly distinguish whether padding is performed after each first data packet by setting a decision threshold, which can save the overhead of the first header information through the padding operation and minimize the redundancy caused by padding. Too much information reduces the coding efficiency, which well achieves a compromise between the overhead of the first header information and the coding efficiency.
  • This embodiment provides a new decoding technical solution, which can be called an enhanced decoding solution, which is applied to the receiving end, can be combined with the first embodiment, and can also be combined with one or more of the second to fifth embodiments.
  • an enhanced decoding solution which is applied to the receiving end
  • the essence of the other decoding schemes mentioned above is that in the buffer of the receiving end, as long as the mapped data segment is incomplete (for example, the data segment is completely lost or partially lost), the data segment is considered to be lost.
  • a second data packet is needed to restore it.
  • the loss of the first data packet only results in the loss of a part of a data segment, but not all of it, then the received part of the data segment, that is, the sub-data segment, can be used for the receiving end.
  • Joint decoding can reduce the number of second data packets required for decoding and effectively improve decoding efficiency.
  • the length of the first data packet Q in the F lost first data packets described in Embodiment 1 is L
  • the length of each data segment in the E data segments is S
  • the second data packet can restore the first data packet Q, wherein, means rounded up, L and S are greater than 0, and
  • the decoding scheme in this embodiment may require fewer second data packets for decoding than the other decoding schemes mentioned above.
  • FIG. 22 it is still an example of a two-dimensional cache storage structure with rows first and then columns.
  • the receiving end has completed mapping the received first header information in the buffer of the receiving end according to the first header information in the received first data packet. Packet 1 and First Packet 3.
  • the first data packet 2 was lost in transmission.
  • the existing form of the data segment is the form in Example 1 of the embodiment, that is, the data of each column in the decoding window can be considered as a data segment, and the column number of each column is used to identify these data segments.
  • Example 1 of the embodiment that is, the data of each column in the decoding window can be considered as a data segment, and the column number of each column is used to identify these data segments.
  • the first data packet 1 corresponds to data segments X and X+1
  • the first data packet 2 corresponds to data segments X+1, X+2, X+3 and X+4
  • the first data Packet 3 partially corresponds to data segments X+4 and X+5 in the decoding window.
  • the lost first data packet 2 although there are four data segments, some data in data segments X+1 and X+4 are not lost.
  • the ratio of the length L of the first data packet to the length S of the data segment is L/S, 2 ⁇ L/S ⁇ 3, therefore, three second data packets are used for the sub-data segments corresponding to data segments X, X+5, and data segment X+1 (that is, data segment X+1 has been correctly received
  • the lost first data packet 2 can be recovered by joint decoding with the sub-data segment corresponding to the data segment sub X+4 (that is, the part of the data that has been correctly received by the data segment X+4).
  • two of the three second data packets can be used to restore the data segments X+2 and X+3, respectively, and the remaining one second data packet can be used according to the area A where the data is lost in the column X+1.
  • the 2_1 part of the second data packet is used to assist decoding the first column X+4
  • the lost area B and the 2_3 part of the second data packet are used for auxiliary decoding of the lost area A in the X+1th column.
  • the lost first data packet 2 involves 4 data segments, the lost first data packet 2 can only be recovered by participating in the decoding of four second data packets. It can be seen that by adopting the decoding scheme of this embodiment, the number of second data packets required for decoding can be reduced in this case.
  • decoding is the same as that in the prior art, for example, if the data segment in the first coding window is configured according to the Galois field (galois field, GF) field and is GF (2 k ), then K-bit-by-k decoding.
  • Galois field Galois field, GF
  • the decoding scheme provided in the present embodiment can also be used, and its implementation is similar to the two-dimensional cache, please refer to FIG. 23, and the specific implementation is the same as that described in the present embodiment above.
  • the implementation manner of the two-dimensional cache is similar, and those skilled in the art can refer to the above-mentioned implementation manner of the two-dimensional cache, which will not be repeated here.
  • the decoding algorithm provided in this embodiment divides the second data packet and uses it for decoding the corresponding position in the cache. Compared with other decoding schemes, the required number of second data packets is smaller, which improves the The decoding efficiency also reduces the transmission frequency of the second data packet.
  • Embodiments 1 to 6 are embedded in the PDCP layer as an example for description. It should be understood that the technical solutions of this embodiment may be further combined with one or more of the above embodiments.
  • the functions of the PDCP layer mainly include header compression, integrity protection, encryption, and packet header addition based on the sequence of processing.
  • the functions of the PDCP layer mainly include decryption, integrity protection verification, reordering and repeated discarding, and header decompression in sequence based on the processing sequence.
  • the functions of the embodiments of the present application can be collectively referred to as network coding functions, in an implementation manner, as shown in FIG.
  • the network coding function is located between the header compression and integrity protection functions, that is, the sending end is in the The PDCP layer performs network coding function operations on the header-compressed SDU, and then performs integrity protection, encryption, and packet header addition to form the PDU of the PDCP layer and transmits it to the lower RLC layer.
  • the network coding function is located between reordering, repeated discarding, and header decompression, that is, the receiving end performs the network coding function operation after reordering and repeatedly discarding the received PDUs at the PDCP layer.
  • the second header information of the second data packet may include a packet ID, which is used to represent the SN number of the second data packet.
  • a packet ID counting method an independent counting method can be adopted: separate and independent counting from the PDU of the PDCP layer, that is, the first data packet described in the foregoing embodiment.
  • the PDU of the PDCP layer is hereinafter referred to as the first data packet.
  • the packet ID can also be counted with the first packet: in one implementation, as shown in Figure 25, for the SN numbers (Q+2 and Q+4) of the second packet, the second packet and the first The data packets are counted together, that is, the second data packet and the first data packet are counted up sequentially according to the order of sending; but for the SN number (Q, Q+1, Q+2, Q+3, Q+4), the first data packet is independent of the second data packet count, that is, the second data packet will not affect the continuity of the first data packet count, this way, the second data packet and the first data packet SN will appear In the same case, whether the data packet is the first data packet or the second data packet can be distinguished by, for example, the O/C field.
  • the network coding function is embedded in the PDCP layer to realize the network coding, and there is no need to actually split and concatenate the SDU of the PDCP layer, which is well compatible with the existing protocols.
  • embedding the network coding function in the PDCP layer can also better adapt to the DC scenario, that is, the PDCP PDUs are not actually segmented and The cascading still maintains the original integrity, and the corresponding SN number has not changed.
  • the data processing methods provided by the embodiments of the present application are introduced from the perspective of the sending end and the receiving end as execution subjects.
  • the transmitting end and the receiving end may include hardware structures and/or software modules, and implement the above-mentioned various functions in the form of hardware structures, software modules, or hardware structures plus software modules. Function. Whether one of the above functions is performed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.
  • an embodiment of the present application further provides an apparatus 1100 , where the apparatus 1100 includes a mapping module 1101 , an encoding module 1102 and a transceiver module 1103 .
  • the apparatus 1100 is configured to implement the function of the sender in the above method.
  • the device may be the transmitter itself, or may be a device applied to the transmitter.
  • the device may be a chip system.
  • the chip system may be composed of chips, or may include chips and other discrete devices.
  • the mapping module 1101 is configured to map K first data packets in the cache, where the first data packets include first header information, and the first header information includes instructions indicating that the first data packets are in the cache location information.
  • An encoding module 1102 configured to encode the M data segments in the cache to generate N second data packets, where the data in the M data segments includes part or all of the data in the K first data packets , and the lengths of the M data segments are equal.
  • the transceiver module 1103 is configured to send K first data packets and at least one of the N second data packets. Among them, M, N, K are positive integers.
  • mapping module 1101 is integrated in the processor
  • the encoding module 1102 is integrated in the encoder
  • the transceiver module 1103 is integrated in the transceiver.
  • the mapping module 1101 and the encoding module 1102 are both integrated in the encoder
  • the transceiver module 1103 is integrated in the transceiver.
  • the above-mentioned modules can be implemented in the form of hardware, or can be implemented in the form of software function modules.
  • an embodiment of the present application further provides an apparatus 1200 , where the apparatus 1200 includes a mapping module 1201 , a decoding module 1202 , and a transceiver module 1203 .
  • the apparatus 1200 is configured to implement the function of the receiving end in the above method.
  • the device may be the receiving end itself, or may be a device applied to the receiving end.
  • the device may be a chip system.
  • the chip system may be composed of chips, or may include chips and other discrete devices.
  • the transceiver module 1203 is configured to receive A first data packets and B second data packets, where the first data packets include first header information, and the first header information includes instructions indicating that the first data packets are in Information about the location in the cache.
  • the mapping module 1202 is configured to map the A first data packets in the cache according to the position indicated by the first header information.
  • a decoding module 1202 configured to perform joint decoding on the C data segments and/or D sub-data segments and at least one of the B second data packets to recover E data segments, where the E data segments include F data of the lost first data packets, a sub-data segment of the D sub-data segments is part of a data segment of the E data segments, the data of the C data segments and the D sub-data segments Including part or all of the data in the A first data packets, the C data segments and the E data segments have the same length; wherein, A, B, C, and D are integers greater than or equal to 0, E and F are integers greater than 0, and A and B are not 0 at the same time.
  • mapping module 1201 For the specific execution process of the mapping module 1201 , the decoding module 1202 and the transceiver module 1203 , reference may be made to the description of the method executed by the transmitting end in the above Embodiments 1 to 7.
  • Those skilled in the art can obtain apparatus embodiments for implementing the receiving end in Embodiments 1 to 7 by combining the descriptions of the foregoing apparatus embodiments and the process descriptions in Embodiments 1 to 7, which will not be repeated here.
  • mapping module 1201 is integrated in the processor
  • decoding module 1202 is integrated in the encoder
  • transceiver module 1203 is integrated in the transceiver.
  • mapping module 1201 and the decoding module 1202 are both integrated in the encoder
  • the transceiver module 1203 is integrated in the transceiver.
  • the above modules can be implemented in the form of hardware, or can be implemented in the form of software function modules.
  • an embodiment of the present application further provides an apparatus 1300 .
  • the apparatus 1300 includes at least one processor 1301 .
  • the apparatus 1300 is used to implement the function of the sender in the above method, and the apparatus may be the sender itself, or may be an apparatus applied to the sender, such as a chip.
  • the processor 1301 is configured to implement the functions of the transmitting end in the first to seventh embodiments above. For details, refer to the detailed descriptions in the above-mentioned Embodiments 1 to 7, which are not described herein again.
  • the apparatus 1300 is used to implement the function of the receiving end in the above method, and the apparatus may be the receiving end itself, or may be a device applied to the receiving end, such as a chip.
  • the processor 1301 is configured to implement the functions received in the first to seventh embodiments above. For details, refer to the detailed descriptions in the above-mentioned Embodiments 1 to 7, which are not described herein again.
  • apparatus 1300 may also include at least one memory 1302 for storing program instructions and/or data.
  • Memory 1302 and processor 1301 are coupled.
  • the coupling in the embodiments of the present application is the spaced coupling or communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information interaction between the devices, units or modules.
  • memory 1302 may also be located external to device 1300.
  • the processor 1301 may cooperate with the memory 1302 .
  • Processor 1301 may execute program instructions stored in memory 1302 . At least one of the at least one memory may be included in the processor.
  • the apparatus 1300 may further include a communication interface 1303 for communicating with other devices through a transmission medium, so that the apparatus 1300 may communicate with other devices.
  • the communication interface 1303 may be a transceiver, circuit, bus, or other type of communication interface, and the other device may be a receiving end or a transmitting end.
  • the processor 1301 uses the communication interface 1303 to send and receive information, and is used to implement the methods in the first to seventh embodiments above.
  • connection medium between the communication interface 1303, the processor 1301, and the memory 1302 is not limited in the embodiments of the present application.
  • the connection may be made through a bus, and the bus may include at least one of an address bus, a data bus, and a control bus. .
  • the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, which can implement or
  • the methods, steps and logic block diagrams disclosed in the embodiments of the present application are executed.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the steps of the methods disclosed in combination with the embodiments of the present application can be directly embodied as the hardware in the processor executes the steps to complete the methods, or the hardware and software modules in the processor are combined to execute the steps to complete the methods.
  • the memory may be a non-volatile memory, such as a hard disk (HD) or a solid-state drive (SSD), etc., and may also be a volatile memory (volatile memory), such as random Access memory (random-access memory, RAM).
  • a memory is, but is not limited to, any medium that can be used to carry or store program code in the form of instructions or data structures and that can be accessed by a computer.
  • the memory in this embodiment of the present application may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and/or data.
  • the methods provided in the embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
  • software When implemented in software, it can 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. When the computer program instructions are loaded and 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, a special purpose computer, a computer network, network equipment, user equipment, or other programmable apparatus.
  • 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 wire (eg coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (eg 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, data center, or the like that contains one or more of the available mediums integrated.
  • the usable media can be magnetic media, such as floppy disks, hard disks, and magnetic tapes; optical media, such as digital video discs (DVD); and semiconductor media, such as SSDs, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种数据处理方法、装置和系统。在发送端,对第一数据包映射到发送端的缓存中得到的数据段的部分或者全部进行网络编码,并发送第一数据包和网络编码生成的第二数据包,其中,每个第一数据包包括用于指示其在缓存中位置信息的头信息。在接收端,根据接收到的第一数据包的头信息中包含的指示缓存中的位置信息,将其映射至与发送端结构相同的接收端的缓存中,并与收到的第二数据包,进行联合译码以恢复在传输过程中丢失的第一数据包。该技术方案无需对第一数据包进行实际的分割级联等操作,在无线通信系统实现网络编码的同时不会增加系统复杂度,还最大限度地实现了对现有协议的兼容。

Description

一种数据处理方法、装置和系统
本申请要求于2021年04月30日提交国家知识产权局、申请号为202110486482.6、申请名称为“一种数据处理方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及无线通信技术领域,特别涉及一种对数据包进行编码或者译码处理的相关方法、装置和系统。
背景技术
目前无线通信系统普遍采用重传请求机制实现差错控制。例如,通过媒体接入控制(medium access control,MAC)层的混合自动重传请求(hybrid automatic repeat request,HARQ)与无线链路控制(radio link control,RLC)层的自动重传请求(automatic repeat request,ARQ)联合保障无线通信系统数据传输的可靠性。然而,这种重传请求机制不能满足新一代无线通信系统对高可靠和低开销等指标的需求。
网络编码技术通过对原数据包进行编码、增加冗余来解决数据传输中丢包等问题,增加了传输的可靠性,同时具有较低的反馈开销,是一种可以有效改善无线通信系统传输性能的技术。
如何将网络编码技术应用于无线通信系统架构,是当前的研究热点。
发明内容
本申请提供一种数据处理方法、装置和系统,在尽可能少改动现有协议、少增加系统开销的基础上,将网络编码技术引入无线通信系统,改善无线通信系统的传输性能。
第一方面,本申请实施例提供了一种数据处理方法,可以由发送端执行,包括:
在缓存中映射K个第一数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在所述缓存中位置的信息;对所述缓存中的M个数据段进行编码生成N个第二数据包,所述M个数据段中的数据包括所述K个第一数据包中的部分或者全部数据,且所述M个数据段的长度相等;发送所述K个第一数据包;以及,发送所述N个第二数据包中的至少一个;其中,M、N、K为正整数。
该技术方案无需对第一数据包进行实际的分割级联等操作,在无线通信系统实现网络编码的同时不会增加系统复杂度,还最大限度地实现了对现有协议的兼容。
结合上述第一方面以及上述可能的设计,在一种可能的设计中,所述K个第一数据包在所述缓存中以先行后列的方式映射,比如说,以逐列的方式映射。其中所述列的长度方向与所述K个第一数据包在所述缓存中的长度方向一致。
结合第一方面以及上述可能的设计,在一种可能的设计中,所述M个数据段的长度为所述缓存的列的长度,M为编码窗所包括的列数,其中,所述列的长度方向与所 述K个第一数据包在所述缓存中的长度方向一致。
本设计中,在缓存中所进行的虚拟分割级联操作是非常便捷的,有利于降低通信中数据处理的复杂度。
结合第一方面以及上述可能的设计,在一种可能的设计中,在所述缓存中,所述K个第一数据包中的每个第一数据包从所述第一数据包起始位置所在列首行开始映射。
本设计由于固定了每个第一数据包的起始位置所在的行,可以减少第一头信息的开销。
结合第一方面以及上述可能的设计,在一种可能的设计中,在所述缓存中,当所述K个第一数据包中的第一数据包P结束位置的行号大于或等于预设行号时,所述第一数据包P的下一个第一数据包从所述第一数据包P结束位置所在列的后一列首行开始映射,P为大于或等于0的整数。
本设计通过设置判决门限灵活地确定每个第一数据包起始位置,很好地实现了第一头信息开销和编码效率的折中。
结合第一方面以及上述可能的设计,在一种可能的设计中,所述第二数据包包括第二头信息,所述第二头信息包括指示与所述第二数据包对应的所述M个数据段的信息。
第二方面,本申请实施例提供了另一种数据处理方法,可以由接收端执行,包括:
接收A个第一数据包和B个第二数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在缓存中的位置的信息,所述A个第一数据包属于需获取的K个第一数据包,所述B个第二数据包包括N个第二数据包中的部分或者全部第二数据包,所述第二数据包为对应于M个数据段的编码数据包,所述M个数据段中的数据包括所述K个第一数据包中的部分或者全部数据,且所述M个数据段的长度相等;将所述A个第一数据包映射到所述缓存中的部分或者全部数据及所述B个第二数据包进行联合译码以获得所述K个第一数据包;其中,A、B为大于或等于0的整数,且A与B不同时为0。
第二方面是与第一方面对应的一种接收端侧方案,有益效果与第一方面一致。
结合第二方面,在一种可能的设计中,(K-A)个丢失的第一数据包中的第一数据包Q的长度为L,M个数据段中每个数据段的长度为S,
Figure PCTCN2022078757-appb-000001
个所述第二数据包用于恢复所述第一数据包Q,其中,
Figure PCTCN2022078757-appb-000002
表示向上取整,L和S大于0,且
Figure PCTCN2022078757-appb-000003
第三方面,本申请实施例提供了另一种数据处理方法,可以由接收端执行,包括:
接收A个第一数据包和B个第二数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在缓存中的位置的信息;
在所述缓存中根据所述第一头信息指示的所述位置,映射所述A个第一数据包;
将C个数据段和/或D个子数据段与所述B个第二数据包中的至少一个进行联合译码恢复E个数据段,所述E个数据段包括F个丢失的第一数据包的数据,所述D个子数据段中的子数据段是所述E个数据段中的数据段的部分,所述C个数据段和所述D个子数据段的数据包括所述A个第一数据包中的部分或者全部数据,所述C个数据段和所述E个数据段的长度相等;其中,A、B、C、D为大于或等于0的整数,E、F为大于0的整数,且A与B不同时为0。
第三方面是与第一方面对应的一种接收端侧方案,有益效果与第一方面是一致的。
结合第三方面,在一种可能的设计中,所述F个丢失的第一数据包中的第一数据包Q的长度为L,所述E个数据段中每个数据段的长度为S,
Figure PCTCN2022078757-appb-000004
个所述第二数据包用于恢复所述第一数据包Q,其中,
Figure PCTCN2022078757-appb-000005
表示向上取整,L和S大于0,且
Figure PCTCN2022078757-appb-000006
结合第二方面、第三方面、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,在所述缓存中,所述A个第一数据包中的每个第一数据包起始位置为所述第一数据包所在起始列的首行。
结合第二方面、第三方面、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,在所述缓存中,若所述A个第一数据包中的第一数据包P结束位置的行号大于或等于预设行号时,所述第一数据包P的下一个第一数据包的起始位置为所述第一数据包P结束位置所在列的后一列首行,P为大于或等于0的整数,其中,所述A个第一数据包包括所述第一数据包P的下一个第一数据包;或者,所述F个丢失的第一数据包包括所述第一数据包P的下一个第一数据包。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述第一数据包为原数据包,所述第二数据包为编码数据包。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述第一头信息还包括指示所述第一数据包P结束位置的行号与所述预设行号大小关系的信息。
当缓存为二维缓存时,如下介绍几种指示所述第一数据包在所述缓存中位置的信息的具体内容:
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
所述第一数据包起始位置的行号、所述第一数据包结束位置的行号、所述第一数据包起始位置的行号与所述第一数据包结束位置的行号之间的差值中的任意两个。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述缓存的列的长度是预定义的,或者是配置的;
所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
所述第一数据包起始位置的列号、所述第一数据包起始位置的行号、和所述第一数据包的长度。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述缓存的列的长度是预定义的,或者是配置的;
所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
所述第一数据包结束位置的列号、所述第一数据包结束位置的行号和所述第一数据包的长度。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,所述指示所述第一数据包在所述第一缓存中位置的信息包括:在所述缓存中,
所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
所述第一数据包结束位置的行号。
当缓存为一维缓存时,定义如下几种字段:第一数据包起始位置所在的段号V1_num;第一数据包结束位置所在的段号V2_num;第一数据包起始位置偏移V1_mod,为第一数据包起始位置与第一数据包起始位置所在段的起始位置之间的距离;第一数据包结束位置偏移V2_mod,为第一数据包结束位置与第一数据包结束位置所在段的起始位置之间的距离;第一数据包结束位置相对于起始位置偏移的段数num_OS;第一数据包结束位置偏移相较于起始位置偏移的差值mod_OS,即mod_OS=V2_mod-V1_mod。第一数据包在缓存中起始位置的索引为V1_mod+V1_num*S、V1_mod+(V2_num-num_OS)*S、或者V2_mod-mod_OS+(V2_num-num_OS)*S;第一数据包在缓存中结束位置的索引为V2_mod+V2_num*S、V2_mod+(V1_num+num_OS)*S、或者V1_mod+mod_OS+(V1_num+num_OS)*S。
基于此介绍几种指示所述第一数据包在所述缓存中位置的信息的具体内容:
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,所述指示所述第一数据包在所述第一缓存中位置的信息包括如下信息组合中的一种:V1_mod、V1_num、第一数据包的长度L;V2_mod、V2_num、L;V1_mod、V1_num、V2_mod、num_OS;V1_mod、V1_num、num_OS、mod_OS;V2_mod、V2_num、V1_mod、num_OS;V2_mod、V2_num、num_OS、mod_OS。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,第二头信息包括在缓存中,编码的起始列号Win_R1,编码的编码窗长度Win_S,以及编码的结束列号Win_R2中的任意两个。
当然第二头信息还可以包括包标识、类型和系数码本的行索引中的至少一个。
结合第一方面、第二方面、第三方面、第二方面可能的设计、第二方面可能的设计、或者第三方面可能的设计,在一种可能的设计中,发送端向接收端发送指示偏移的信息,所述偏移为编码起始位置在编码起始列的首行与编码起始位置所在的行之间的偏移,对应的接收端可以将该偏移理解为译码起始位置在译码起始列的首行与译码起始位置所在的行之间的偏移。
该偏移可以使得发送端和接收端实现编码起始位置和译码起始位置达成一致理解,避免不必要地译码错误。
第四方面,本申请提供一种装置,该装置可以是发送端,也可以是应用于发送端中的装置(例如,芯片),该装置可以包括用于执行上述第一方面或第一方面中任一种可能的设计中、执行第二方面或第二方面中任一种可能的设计中、或执行第三方面 中或第三方面中任一种可能的设计中发送端的方法的对应功能模块。
第五方面,本申请提供一种装置,该装置可以是接收端,也可以是应用于接收端中的装置(例如,芯片),该装置可以包括用于执行上述第一方面或第一方面中任一种可能的设计中、执行第二方面或第二方面中任一种可能的设计中、或执行第三方面中或第三方面中任一种可能的设计中接收端的方法的对应功能模块。
第六方面,本申请实施例提供一种装置,所述装置包括处理器,用于实现上述第一方面或第一方面中任一种可能的设计中的方法、执行第二方面或第二方面中任一种可能的设计中的方法、或执行第三方面中或第三方面中任一种可能的设计中的方法中的发送端的功能。所述装置还可以包括存储器,用于存储指令和数据。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的程序指令时,可以实现上述发送端的功能。所述装置还可以包括通信接口,所述通信接口用于该装置与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线或其它类型的通信接口,其它设备可以为终端设备等。
第七方面,本申请实施例提供一种装置,所述装置包括处理器,用于实现上述第一方面或第一方面中任一种可能的设计中的方法、执行第二方面或第二方面中任一种可能的设计中的方法、或执行第三方面中或第三方面中任一种可能的设计中的方法中的接收端的功能。所述装置还可以包括存储器,用于存储指令和数据。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的程序指令时,可以实现上述网络设备的功能。所述装置还可以包括通信接口,所述通信接口用于该装置与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线或其它类型的通信接口,其它设备可以为网络设备等。
第八方面,本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有指令,当该指令运行时,可以实现上述第一方面或第一方面中任一种可能的设计中的方法、执行第二方面或第二方面中任一种可能的设计中的方法、或执行第三方面中或第三方面中任一种可能的设计中的方法中的发送端或者接收端的方法。
第九方面,本申请实施例还提供一种芯片系统,该芯片系统包括处理器和存储器,用于实现上述第一方面或第一方面中任一种可能的设计中的方法、执行第二方面或第二方面中任一种可能的设计中的方法、或执行第三方面中或第三方面中任一种可能的设计中的方法中的发送端或者接收端的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第十方面,本申请实施例中还提供一种计算机程序产品,包括指令,当该指令运行时,可以实现上述第一方面或第一方面中任一种可能的设计中的方法、执行第二方面或第二方面中任一种可能的设计中的方法、或执行第三方面中或第三方面中任一种可能的设计中的方法中的发送端或者接收端的功能
第十一方面,本申请实施例中还提供一种通信系统,包括第四方面的装置和第五方面的装置。或者包括第六方面的装置和第七方面的装置。
上述第四至第十一方面的有益效果分别对应于上述第一至三方面的有益效果,在此不予赘述。
附图说明
图1为本申请实施例提供的一种通信系统架构示意图;
图2(a)为本申请实施例提供的一种点对点传输场景的示意图;
图2(b)为本申请实施例提供的一种多跳单连接场景的示意图;
图2(c)为本申请实施例提供的一种多跳多连接场景的示意图;
图2(d)为本申请实施例提供的一种双连接场景的示意图;
图3为本申请实施例提供的一种数据包的示意图;
图4为本申请实施例提供的一种发送端数据处理的示意图;
图5为本申请实施例提供的一种接入回传一体化(integrated access and backhaul,IAB)节点(node)协议栈示意图;
图6为本申请实施例提供的一种数据处理方法的流程图;
图7为本申请实施例提供的一种展示数据在二维缓存中映射方式的示意图;
图8为本申请实施例提供的一种展示数据在一维缓存中映射方式的示意图;
图9(a)为本申请实施例提供的一种展示第一数据包在发送端的二维缓存中映射位置的示意图;
图9(b)为本申请实施例提供的另一种展示第一数据包在发送端的二维缓存中映射位置的示意图;
图9(c)为本申请实施例提供的另一种展示第一数据包在发送端的二维缓存中映射位置的示意图;
图10(a)为本申请实施例提供的一种展示第一数据包在发送端的一维缓存中映射位置的示意图;
图10(b)为本申请实施例提供的另一种展示第一数据包在发送端的一维缓存中映射位置的示意图;
图10(c)为本申请实施例提供的另一种展示第一数据包在发送端的一维缓存中映射位置的示意图;
图11为本申请实施例提供的另一种数据处理方法的流程图;
图12(a)为本申请实施例提供的一种展示第一数据包在接收端的二维缓存中映射位置的示意图;
图12(b)为本申请实施例提供的另一种展示第一数据包在接收端的二维缓存中映射位置的示意图;
图12(c)为本申请实施例提供的又一种展示第一数据包在接收端的二维缓存中映射位置的示意图;
图13为本申请实施例提供的一种基于协议架构的数据处理示意图;
图14(a)为本申请实施例提供的一种第一数据包的结构示意图;
图14(b)为本申请实施例提供的另一种第一数据包的结构示意图;
图14(c)为本申请实施例提供的另一种第一数据包的结构示意图;
图14(d)为本申请实施例提供的另一种第一数据包的结构示意图;
图14(e)为本申请实施例提供的另一种第一数据包的结构示意图;
图14(f)为本申请实施例提供的另一种第一数据包的结构示意图;
图15为本申请实施例提供的一种第一数据包在发送端的一维缓存中映射示意图;
图16为本申请实施例提供的一种第二数据包的结构示意图;
图17(a)为本申请实施例提供的另一种第一数据包的结构示意图;
图17(b)为本申请实施例提供的又一种第一数据包的结构示意图;
图17(c)为本申请实施例提供的另一种第二数据包的结构示意图;
图17(d)为本申请实施例提供的又一种第二数据包的结构示意图;
图18为本申请实施例提供的另一种展示第一数据包在发送端的二维缓存中映射位置的示意图;
图19为本申请实施例提供的另一种展示第一数据包在发送端的一维缓存中映射位置的示意图;
图20为本申请实施例提供的另一种展示第一数据包在发送端的二维缓存中映射位置的示意图;
图21为本申请实施例提供的另一种展示第一数据包在发送端的一维缓存中映射位置的示意图;
图22为本申请实施例提供的一种基于二维缓存的译码方式的示意图;
图23为本申请实施例提供的一种基于一维缓存的译码方式的示意图;
图24为本申请实施例提供的一种在分组数据汇聚协议(packet data convergence protocol,PDCP)层进行数据处理的流程示意图;
图25为本申请实施例提供的一种在PDCP层对第一数据包和第二数据包进行计数的示意图;
图26为本申请实施例提供的一种装置的示意图;
图27为本申请实施例提供的另一种装置的示意图;
图28为本申请实施例提供的又一种装置的示意图。
具体实施方式
图1是本申请的实施例应用的通信系统1000的架构示意图。如图1所示,该通信系统包括无线接入网100和核心网200,可选的,通信系统1000还可以包括互联网300。其中,无线接入网100可以包括至少一个无线接入网设备(如图1中的110a和110b),还可以包括至少一个终端(如图1中的120a-120j)。终端通过无线的方式与无线接入网设备相连,无线接入网设备通过无线或有线方式与核心网连接。核心网设备与无线接入网设备可以是独立的不同的物理设备,也可以是将核心网设备的功能与无线接入网设备的逻辑功能集成在同一个物理设备上,还可以是一个物理设备上集成了部分核心网设备的功能和部分的无线接入网设备的功能。终端和终端之间以及无线接入网设备和无线接入网设备之间可以通过有线或无线的方式相互连接。图1只是示意图,该通信系统中还可以包括其它网络设备,如还可以包括无线中继设备和无线回传设备,在图1中未画出。
无线接入网设备可以是基站(base station)、演进型基站(evolved NodeB,eNodeB)、发送接收点(transmission reception point,TRP)、第五代(5th generation,5G)移动通信系统中的下一代基站(next generation NodeB,gNB)、第六代(6th generation, 6G)移动通信系统中的下一代基站、未来移动通信系统中的基站或WiFi系统中的接入节点等;也可以是完成基站部分功能的模块或单元,例如,可以是集中式单元(central unit,CU),也可以是分布式单元(distributed unit,DU)。无线接入网设备可以是宏基站(如图1中的110a),也可以是微基站或室内站(如图1中的110b),还可以是中继节点或施主节点等。本申请的实施例对无线接入网设备所采用的具体技术和具体设备形态不做限定。为了便于描述,下文以基站作为无线接入网设备的例子进行描述。
终端也可以称为终端设备、用户设备(user equipment,UE)、移动台、移动终端等。终端可以广泛应用于各种场景,例如,设备到设备(device-to-device,D2D)、车物(vehicle to everything,V2X)通信、机器类通信(machine-type communication,MTC)、物联网(internet of things,IOT)、虚拟现实、增强现实、工业控制、自动驾驶、远程医疗、智能电网、智能家具、智能办公、智能穿戴、智能交通、智慧城市等。终端可以是手机、平板电脑、带无线收发功能的电脑、可穿戴设备、车辆、无人机、直升机、飞机、轮船、机器人、机械臂、智能家居设备等。本申请的实施例对终端所采用的具体技术和具体设备形态不做限定。
基站和终端可以是固定位置的,也可以是可移动的。基站和终端可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和人造卫星上。本申请的实施例对基站和终端的应用场景不做限定。
基站和终端的角色可以是相对的,例如,图1中的直升机或无人机120i可以被配置成移动基站,对于那些通过120i接入到无线接入网100的终端120j来说,终端120i是基站;但对于基站110a来说,120i是终端,即110a与120i之间是通过无线空口协议进行通信的。当然,110a与120i之间也可以是通过基站与基站之间的接口协议进行通信的,此时,相对于110a来说,120i也是基站。因此,基站和终端都可以统一称为通信装置,图1中的110a、110b以及120a-120j可以称为具有它们各自相对应的功能的通信装置,例如具有基站功能的通信装置、或者具有终端功能的通信装置。
基站和终端之间、基站和基站之间、终端和终端之间可以通过授权频谱进行通信,也可以通过免授权频谱进行通信,也可以同时通过授权频谱和免授权频谱进行通信;可以通过6千兆赫(gigahertz,GHz)以下的频谱进行通信,也可以通过6GHz以上的频谱进行通信,还可以同时使用6GHz以下的频谱和6GHz以上的频谱进行通信。本申请的实施例对无线通信所使用的频谱资源不做限定。
在本申请的实施例中,基站的功能也可以由基站中的模块(如芯片)来执行,也可以由包含有基站功能的控制子系统来执行。这里的包含有基站功能的控制子系统可以是智能电网、工业控制、智能交通、智慧城市等上述终端的应用场景中的控制中心。终端的功能也可以由终端中的模块(如芯片或调制解调器)来执行,也可以由包含有终端功能的装置来执行。
在本申请中,基站向终端发送下行数据(也可以称为下行信号),下行数据承载在下行信道上;终端向基站发送上行数据(也可以称为上行信号),上行数据承载在上行信道上。终端为了与基站进行通信,可以与基站控制的小区建立无线连接。与终端建立了无线连接的小区称为该终端的服务小区。
进一步的,本申请可以应用于多种具体通信场景,例如,基站和终端之间或终端 之间的点对点传输(如图2(a)为基站和终端之间的点对点传输)、基站和终端的多跳(如图2(b)、图2(c))传输、多个基站和终端的双连接(Dual Connectivity,DC)(如图2(d))或多连接等场景。需要说明的是,如上具体通信应用场景只是举例,并不产生限制。特别地,从业务的角度看,本申请实施例适用于诸多业务场景,例如扩展现实(extended reality,XR)业务中的数据编码场景、低时延、上行大容量场景等中的一项或一项。
为便于理解本申请实施例,在开始介绍本申请实施例之前,先对本申请涉及到的若干名词或术语进行简单介绍。
1)数据包
数据包(data packet)是通信中的数据单位。例如,在一次通信传输中的信息可以被划分成多个数据包,这些数据包在数据的发送端(即通信过程中发送数据的一方,后简称发送端)进行一些数据处理之后会被发送至数据的接收端(即通信过程中接收数据的一方,后简称接收端),接收端在经过一些与发送端对应的逆处理之后获得该消息。数据包可以包括包头和包体,包头即为头信息;包体即数据包除包头外的数据部分。如图3所示,数据包可以以比特为单位承载数据,也可以以字节为单位承载数据,当然不限于这两种方式,数据包的长度可以理解为在对应单位衡量下的数据量。其中,数据包的长度还可以理解为数据包的大小。
另外,本申请实施例中的原数据包,是指尚未经过网络编码操作的数据包。而编码数据包,是原数据包经过网络编码之后生成的数据包。
2)分割、级联
分割是将一个数据包分成至少两个部分,也可以表示为划分或者拆分。可以以比特的单位进行分割,也可以以字节的单位进行分割。
级联也可以表示为连接,拼接,具体指将多个数据段依次连接成一个整体,如一个数据段的末尾与另一个数据段的起始位置连接,依次类推。
需要说明的是,本申请实施例中,至少一个还可以表述为一个或者多个。“第一”、“第二”、“第三”、“A”、“B”、“C”和“D”等区分该种技术特征中的技术特征,该“第一”、“第二”、“第三”、“A”、“B”、“C”和“D”描述的技术特征间无先后顺序或者大小顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c;a和b;a和c;b和c;或a和b和c。“传输”作为名词可以包括数据的发送和/或接收、作为动词可以表示发送和/或接收。
本申请实施例中涉及的信息的指示,可以是显式指示,还可以是隐式指示。例如,显示信息为直接发送要指示的信息。又例如,隐式指示为通过建立要指示的信息与另一信息之间的对应关系,并将该另一信息进行指示,达到指示要指示的信息的目的。目前主流的网络编码方案包括但不限于随机线性网络编码(random liner network  coding,RLNC)、卷积网络编码(convolutional network coding,CNC)、里德所罗门(reed solomon,RS)编码和流编码(streaming coding)等。例如,以RLNC编码方案的一种实现方式为例:一次通信过程中,发送端发送至少一个原数据包,通过构建编码系数矩阵对该至少一个原数据包进行编码得到至少一个编码数据包。发送该至少一个编码数据包。在接收端若存在原数据包丢失的情况,通过将接收到的原数据包和编码数据包进行联合译码,恢复出丢失的原数据包。因为网络编码技术要求多个待编码的数据包大小相同,其中,现有的通信协议中,待编码的数据包可以认为是业务数据单元(service data unit,SDU)或者协议数据单元(protocol data unit,PDU),而任何一层对应的SDU或者PDU大小都无法保证是相同的,因此无法直接对SDU或者PDU进行网络编码。
也就是说,现有的通信协议无法直接支持网络编码技术,通过分割、级联、填充(padding)等操作才能得到长度相等的数据包进行网络编码。对应地,在接收端要引入这些操作的相关信息、通过逆操作来恢复进行该操作前的PDU或者SDU。分割、级联、padding等操作将不可避免地导致发送端和接收端的处理流程复杂化,这些都致使无线通信系统的性能下降。另外,通过分割、级联等方式解决引入网络编码技术的问题对现有协议的改动很大,因此还不利于通信的前向兼容。
有鉴于此,本申请实施例提出了一种数据处理方法,在尽可能少改动现有协议、少增加系统开销的基础上,将网络编码技术引入无线通信系统,改善无线通信系统的传输性能。
以新无线电(new radio,NR)为例,目前无线通信协议的协议栈包括用户面协议栈和控制面协议栈。在一种可能的实现方式中,对于终端或基站,用户面协议栈包括业务数据适配协议(service data adaptation protocol,SDAP)层、PDCP层、无线链路控制(radio link control,RLC)层、媒体接入控制(medium access control,MAC)层和物理PHY层,控制面协议栈包括非接入层(non-access stratum)、无线资源控制(radio resource control,RRC)层、PDCP层、RLC层、MAC层和PHY层,当然本申请实施例并不排除用户面协议栈或者其它通信协议的协议栈还能包括其它的协议层、或者不包括以上所列举的协议层中的一个或者多个。进一步地,以图4为例,示出了发送端的英特网协议(internet protocol,IP)数据包如何在每一层进行处理并封装成PDU后传递到下一层的过程。最后,MAC层生成MAC PDU传递到PHY层后向接收端发送。例如,经过SDAP层处理的数据包作为PDCP层的SDU进入PDCP层,在PDCP层中,对该SDU进行头压缩、完整性保护和加密等操作之后,加上PDCP层的头信息H形成PDCP层的PDU(图中未示出)传递至RLC层。在RLC层可以对本层的SDU进行分割操作,在MAC层可以对本层的SDU进行级联操作。特别地,对于在接入回传一体化(integrated access and backhaul,IAB)场景下的节点,例如IAB node或者IAB授主(IAB donor),其涉及的协议层还可以包括自适应回传协议(backhaul adaptation protocol,BAP)层。图5示出了IAB node的一种协议栈示意图。图中,IAB node分为两个功能模块:DU模块和移动终端(mobile terminal,MT)模块,这两种功能模块分别对应了一个协议栈。
基于现有的协议架构,可以新引入一个协议层,例如,网络编码功能层,来实现本申请技术方案。该网络编码功能层可以位于现有的任何两个协议层之间,例如位于PDCP层和RLC层之间、位于RLC层和MAC层之间、或者位于MAC层和PHY层之间等。也可以将本申请技术方案对应的功能嵌入现有的协议层中,例如嵌入到BAP层、PDCP层、RLC层、或者MAC层等。本申请实施例七将以本申请技术方案嵌入PDCP层的具体方案做详细阐述。另外,在涉及基站的一些应用场景下,根据不同的需求,可以在CU或DU内实现本申请技术方案。需要说明的是,本申请实施例一至六的技术方案不限定通过以上何种技术方案实现。
实施例一
本申请的技术方案,在发送端,对第一数据包映射到发送端的缓存中得到的数据段的部分或者全部进行网络编码,并发送第一数据包和网络编码生成的第二数据包,其中,每个第一数据包包括用于指示其在缓存中位置信息的头信息。在接收端,根据接收到的第一数据包的头信息中包含的指示缓存中的位置信息,将其映射至与发送端结构相同的接收端的缓存中,并与收到的第二数据包,进行联合译码以恢复在传输过程中丢失的第一数据包。该技术方案无需对第一数据包进行实际的分割级联等操作,在无线通信系统实现网络编码的同时不会增加系统复杂度,还最大限度地实现了对现有协议的兼容。
具体地,本实施例一提供了一种数据处理的方法,可以应用于本申请前述提及的任意一种场景,方法的执行主体可以是发送端,该发送端对待发送的K个第一数据包进行网络编码获得N个第二数据包,并将第一数据包和第二数据包向接收端发送。发送端可以是如前所述的基站,对应的接收端可以是终端或者基站,发送端还可以是终端,对应的,接收端可以是基站或者终端。特别地,在IAB场景下,发送端还可以是IAB node或者IAB donor,接收端也可以是IAB node或者IAB donor。这里,K和N为正整数。图6所示,具体包括如下步骤:
101.在缓存中映射K个第一数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在所述缓存中位置的信息。
第一数据包又可以称为原数据包、或者原始数据包。当本方法通过新引入的网络编码功能层并在其中实现时,第一数据包的包体即为位于网络编码功能层的上一层向下传送的数据包,例如,当网络编码功能层位于PDCP层与RLC层之间时,第一数据包的包体为PDCP层向下传送的PDCP层PDU。当本方法嵌入某一现有协议层实现时,第一数据包即为该协议层正在处理的数据包,例如,当本方法嵌入PDCP层实现时,第一数据包的包体可以为PDCP层SDU。第一数据包的包体可以是PDU或者是SDU,本申请对此并不做限制。在一种实现方式中,该K个第一数据包在发送端和接收端的一次调度中连续发送。
本申请实施例在对K个第一数据包进行网络编码之前,可以进入缓存进行虚拟地分割级联的操作,以保证网络编码的对象是长度相等的数据段。这里使用“虚拟”来表达这种分割级联并非是对K个第一数据包做实际地分割级联操作,例如,不同于现有技术中RLC层对本层的SDU进行的分割操作、MAC层对本层的SDU进行的级联操 作,而是一种对现有协议中不涉及网络编码功能的协议层透明的操作。需要说明的是,由于实施例涉及的是发送端的处理方法,这里的缓存指的是发送端的缓存(在以下对图6的方法的叙述中,如无特殊说明,缓存均指发送端的缓存),并且可以是实际存在的缓存,也可以是一种为了实现本申请技术方案而构造的虚拟缓存。发送端生成的第一头信息中位置的信息指示的是第一数据包在发送端缓存中位置的信息。
当本申请实施例的缓存为实际的缓存时,映射K个第一数据包可以理解为在缓存中存放或者放置K个第一数据包。当本申请实施例的缓存为虚拟缓存时,虚拟缓存的结构是可以配置或调整的,映射K个第一数据包可以理解为将K个第一数据包与虚拟缓存中的特定位置进行关联,以确保实现对第一数据包按照所述编码长度的编码操作。
K个第一数据包中的每个数据包所包括的第一头信息分别指示了每个第一数据包在缓存中的位置,据此可以唯一确定出每个第一数据包在缓存中的位置。第一头信息可以具有固定的比特数。关于该第一头信息的具体结构,请参见本申请实施例二。
在一种可能的实现方式中,K个第一数据包在缓存中的位置所对应排列顺序即为K个第一数据包的发送的先后顺序,或者是第一数据包的序列号的顺序。如此,对于发送端的编码操作和接收端后续的译码操作来说复杂度都是比较低的。
发送端在缓存中映射K个第一数据包。在一种可能的实现方式中,发送端能够在映射之前结合第一数据包的长度、以及缓存的结构等信息获知K个第一数据包在缓存中的位置信息,这样在映射之前就可以获得K个第一数据包中所包含的第一头信息中的内容。发送端可以按照每个第一数据包包含的第一头信息所指示的位置信息将K个第一数据包映射至缓存。若K个第一数据包在缓存中的位置所对应的排列顺序为K个第一数据包发送的先后顺序,发送端还可以直接按照第一数据包的发送顺序,依次将K个第一数据包映射至缓存,这种映射方式对发送端来说处理复杂度更低。若K个第一数据包在缓存中的位置所对应排列顺序与K个第一数据包发送的先后顺序没有直接关联,那么便按照每个第一数据包包含的第一头信息所指示的位置的信息,将K个第一数据包分别映射至缓存。
如前所述,第一头信息的长度可以是固定的,在一种可能的实现方式中,在发送端缓存中映射K个第一数据包之前,第一头信息中的内容可以是空的。当发送端将K个第一数据包按照预定的顺序依次映射至缓存中后,K个第一数据包的每一个第一数据包在缓存中的位置就确定了。此时,发送端再将K个第一数据包在缓存中的位置的信息对应填入它们各自的第一头信息中。
完成所述映射后,可以认为K个第一数据包中的每个第一数据包在缓存中位于与其头信息指示的位置。
本申请对缓存的具体结构不做限制。
缓存可以是一个二维的存储结构,例如,二维可以分别对应列和行两种维度。具体地,对本申请中所指的“列”和“行”做出定义:列和行是互相正交的两个维度,对于一列缓存而言,数据逐行进行映射,即列的长度方向与第一数据包在缓存中的长度方向一致,而每列的宽度是与对应第一数据包的单位对应的,也即对于每一列中的每一行,可以映射一个单位的数据。一种实现方式中,如图7中所示,缓存中包括了列X至列X+5,X为大于或等于0的整数。每一列包含了至少一行。第一数据包中的数据 按照先行后列的方式,比如逐列的方式,如箭头所示地先从上至下、后从左至右被映射至缓存中。需要说明的是,行和列是相对的概念。本申请实施例中虽然以行和列对两维结构中的两个维度进行说明,但两维的名称可以互换或者替换成其它名称,如即第一维度和第二维度,第一维度和第二维度是正交的,第一维度和第二维度分别可以对应于上述的列和行。同理,只要两维的定义与分别与前述对“列”和“行”定义实质相同,即与本申请实施例的技术方案实质是一致的。
以上描述的缓存的结构可以称为为先行后列的存储结构,对应的,数据按照先行后列的方式,比如逐列的方式,映射至缓存中。
缓存还可以为一维的结构,例如如图8所示,第一数据包的单位与缓存中数据的单位一致,第一数据包的映射方向与缓存的存储方向(也可以称为缓存的长度方向)一致,且对应于第一数据包的长度所在的方向。
102.对所述缓存中的M个数据段进行编码生成N个第二数据包,所述M个数据段中的数据包括所述K个第一数据包中的部分或者全部数据,且所述M个数据段的长度相等。
本步骤的M个数据段包括缓存中的K个第一数据包的部分或者全部数据、由虚拟分割级联操作后获得的等长的数据段。M为正整数。
在一些可能的实现方式中,若缓存为二维的结构:
举例来说,假设K=3,即有3个第一数据包,H1至H3分别为三个第一数据包的第一头信息。图9(a)中的虚线框可以理解为本次编码的编码窗,表征本次编码的数据范围,即发送端会对在编码窗内的所有完整的数据段进行编码。图9(a)中,3个第一数据包完全落在编码窗内,那么可以认为M个数据段包括了这3个第一数据包的全部数据。而图9(b)中第3个数据包中有一部分落在了虚线框,即编码窗,之外,由于在本次编码的数据将不涵盖落在编码窗之外的数据,因此,在这种情况下,可以认为M个数据段包括了这3个第一数据包的部分数据(M个数据段不包括落在编码窗外的第一数据包的数据)。M个数据段没有包括的K个第一数据包的数据是落在编码窗外的数据。
需要说明的是,本申请中所指的第一数据包的数据,包括第一数据包的包头和包体。
关于M个数据段在缓存中的存在形式,可以有多种,现进行举例:
举例一:
每个数据段的长度为该缓存的列长度,且每个数据段的起始位置为缓存中一列的首行、结束位置为该列的结束行。也即可以认为编码窗内每一列映射的数据对应一个数据段。举例来说,如图9(b)所示,位于编码窗内的数据被分割为长度为缓存的列长度S1的M个数据段(M=6)。需要说明的是,当K个第一数据包中位置最靠前的第一数据包并非从编码窗的第一列列X首行开始映射时,在列X前半部分可能映射有上一次数据传输时发送的第一数据包的至少部分数据,它们在本申请实施例的图中被称为其它数据。当编码窗的最后一列缓存还存在未被映射的区域时,可以映射padding数据去填满该区域,它们在本申请实施例的图中也被称为其它数据。此时,M的值是编码窗内包括的列数。
本举例中获得的M个数据段对应的虚拟分割级联操作是非常便捷的,有利于降低通信中数据处理的复杂度。
举例二:
每个数据段的长度为任意长度,和/或编码窗中的M个数据段中的第一个数据段的起始位置不是编码窗内首列首行。需要说明的是,本申请中,M个数据段中的第一个数据段起始位置即为编码的起始位置。也就是说,此时编码窗的首列中,数据段的起始位置所在的行与首行存在一个偏移。该偏移为编码起始位置所在列首行与所述编码起始位置所在的行之间的偏移。该偏移反映了编码的起始位置,或者说该偏移可以反映M个数据段在缓存中所映射的位置。在一种实现方式中,每个数据段的长度仍设为该缓存的列长度,该偏移设置为编码窗首列(列X)中,第一个映射入缓存的第一数据包所在的行与首行的偏移,如图9(c)所示,图中的点划线可以理解为各个数据段之间的边界线。此时,可以实现从K个第一数据包中第一个第一数据包开始进行编码。如此不会引入与本次发送不相关的数据,从而降低数据处理复杂度。本实现方式中,从偏移指示的位置开始按照缓存的列长度,对编码窗中的数据进行M次分割,获得M个数据段。与举例一类似,若偏移指示的起始位置,即第一个数据段的起始位置,不与第一个数据包的起始位置一致,偏移指示的行的起始位置和第一个第一数据包起始位置之间可能映射有上一次数据传输时发送的第一数据包的至少部分数据在本申请实施例图中被称为其它数据。在编码窗的最后一列,第M个数据段的结束位置所在的行号大于第K个第一数据包结束位置所在的行号时,可以映射padding数据去填满它们之间的区域。
为了保证接收端的缓存中数据段的存在形式与发送端的缓存中对应数据段的存在形式相同,发送端和接收端可以通过一些方式使得对与该存在形式相关的参数达成一致理解,例如:每个数据段的长度和/或举例中的偏移可以为接收端和发送端预先约定,发送端也可以通过RRC信令或者下行控制信息(downlink control information,DCI)通知接收端,发送端还可以携带在第一数据包的第一头信息中通知接收端。
若缓存为一维的结构,举例来说,仍假设K=3,即有3个第一数据包,H1至H3分别为三个第一数据包的第一头信息。与图9(a)和图9(b)的文字说明类似,图10(a)和图10(b)分别示出了M个数据段包括全部3个第一数据包的数据和M个数据段包括部分3个第一数据包的数据。M个数据段的长度同样可以通过预先约定、通过RRC信令、或者DCI通知或者携带在第一头信息中通知等方式使发送端和接收端之间达成一致理解。
为了便于后续低开销地标记第一数据包在缓存中映射的位置,对于一维的缓存,这里引入一个概念:一维缓存的计量长度,其可以将一维缓存等分成多段。如果类比到二维的缓存,一维缓存的计量长度就相当于二维缓存中的列长度。一维缓存中的每段相当于二维缓存的一列。形象地来说,如图9(a)、9(b)或者9(c),相当于将二维缓存中的一列的结尾与下一列的开头顺次相连后展开即变形成了一维缓存。因此,对于一维缓存,M个数据段在缓存中的存在形式,可以参见上述二维缓存中的举例一和举例二中的表述,并分别结合与图9(a)、9(b)、9(c)情况类似的图10(a)、10(b)、10(c),此处不予赘述。同时,处于避免重复叙述的目的,本申请后续实 施例,都将主要以二维缓存为例进行详细的介绍,对于一维缓存的场景,未做详细描述的部分,均可参照本段中对两者的比较说明,结合给出的相关附图实现。
获得M个等长的数据段后,发送端便可对该M个数据段进行网络编码操作,生成N个第二数据包。该第二数据包又可称为编码数据包。在一种实现方式中,该第二数据包包括第二头信息,该第二头信息可以指示该第二数据包对应的M个数据段的信息,或者说,该第二头信息可以指示编码窗的范围。第二头信息还可以包括编码参数,例如,编码系数索引等,用于接收端进行准确的译码操作。第二头信息可以使得接收端获知N个第二数据包可以用于译码哪些数据段。第二头信息的具体结构,请参见本申请实施例二。当然,关于第二数据包与M个数据段之间的这种对应关系,同样也可以通过例如高层信令等方式由发送端向接收端指示,这样接收端在对第二头信息进行解析之前就有可能获得这个对应关系,提高了接收端译码的效率。
这里网络编码的操作可以应用如RLNC、RS码、CNC、或者流码等,本领域技术人员知道如何实现,本申请中不予赘述。N为正整数。
103.发送K个第一数据包。
需要说明的是,本步骤和步骤102是互相独立的,在执行上没有先后顺序的限制,也即可以先执行步骤102,再执行步骤103,或者先执行步骤103,再执行步骤102,或者步骤102和步骤103同时执行。当步骤103在步骤102之前执行时,可以减少数据通信的时延。
104.发送所述N个第二数据包中的至少一个。
可以根据具体的场景或者通信的环境等确定发送本次生成的N个第二数据包中的部分或者全部。例如,当某些场景或者通信的环境对应的信道质量较好时,发送端可以选择先发送N个第二数据包中的一部分数据包,若随后收到接收端的反馈信息请求更多的第二数据包时,再根据反馈信息对应还需要发送的第二数据包个数,决定发送N个第二数据包中剩下的第二数据包中的第二数据包的个数。在某些情况下可能N个第二数据包中剩下的第二数据包的个数还无法达到请求的第二数据包的个数,那么此时,发送端可以再次编码生成第二数据包进行发送以满足接收端的请求。如此,可以节省发送端多余的第二数据包的发送所带来的开销。当某些场景或者通信的环境对应的信道质量较差时,发送端可以选择将N个第二数据包全部发送,如此,可以节省一些反馈信息的带来的开销。这样,系统的性能得以提高。关于该反馈信息的具体细节,将在实施例三中具体表述。
另外,当步骤103在步骤102后执行时,本步骤可以在步骤103之前执行或者之后执行,还可以与步骤103同时执行。当步骤103在步骤102前执行时,那么步骤104一定是在步骤103之后执行。
图6所示的技术方案可以认为是一种发送端的编码方案。为了构建一个完整的通信流程,本实施例继续提供另一种数据处理方法,可以认为是一种译码方案,该方法的执行主体可以是接收端,意图恢复出在通信过程中丢失的第一数据包。本技术方案中的译码方案与图4实施例中的编码方案是对应的。如无特殊的说明,对相关的术语的理解是一致的,不再重复说明。如图11所示,具体包括:
201.接收A个第一数据包和B个第二数据包,第一数据包包括第一头信息,所 述第一头信息包括指示所述第一数据包在缓存中的位置的信息。
本步骤与步骤103和104对应。由于传输过程中的信道噪声、干扰等可能导致第一数据包丢失,接收端收到A个第一数据包,其中A为整数,且0≤A<K,也就是说,这里的A个第一数据包可以属于步骤103中发送的K个第一数据包,对于接收端来说这K个数据包属于需要接收(或者说获取)的第一数据包。需要说明的是,这里所指的第一数据包的丢失,可以理解为第一数据包在接收端因接收错误被丢弃,或者说被擦除。当A=K时,无数据包丢失,无需执行本实施例中的译码流程,可以直接将收到的B个第二数据包丢弃。这不是本实施例关注的场景。0≤A<K表明在数据传输过程中存在数据包丢失的场景,特殊的,当A=0时,接收端没有收到任何第一数据包,即所有K个第一数据包在传输过程中都丢失的场景。类似的,接收到的B个数据包个数B为≥0的整数。另外A与B不同时为0,否则无法执行步骤203中的联合译码。第一数据包的结构在步骤101中已经描述。需要说明的是,接收端将第一头信息中所指的缓存的理解为接收端的缓存。在以下对图11的方法叙述中,如无特殊说明,缓存均指接收端的缓存。可以理解的是,步骤201中所述的接收端的缓存的构建是与发送端的缓存完全相同的,第一数据包的位置在两个缓存中也是完全相同的,所以接收端解析获得第一数据包第一头信息所述指示的第一数据包在缓存中的位置信息后,可以直接理解为该第一数据包在接收端缓存中位置的信息。当然,在某些可能实施方式中,发送端的缓存和接收端的缓存可以不相同、但是具有发送端和接收端预先约定的对应关系,那么接收端可以根据该对应关系以及第一头信息确定接收到的A个第一数据包在接收端缓存中的位置,但是,本申请实施例均以接收端的缓存的构建是与发送端的缓存完全相同的、第一数据包的位置在两个缓存中也是完全相同的为例进行展开说明。
本申请中的预先约定可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
本步骤中的第二数据包,用于与落在译码窗内的A个数据包中的部分或者全部数据进行联合译码。其中,译码窗的含义是与编码窗对应的,接收端会对落在译码窗中的能够对应到发送端编码窗内数据段的数据段和/或子数据段进行译码。如图6所述技术方案的步骤102类似的表述,第二数据包可以为对应于步骤102中所述的M个数据段的编码数据包。
可选的,步骤201中接收的B个第二数据包,可以全部都来自步骤104中发送的第二数据包,也即B≤N,在一些情况下,接收端对应接收到的步骤104中发送的数据包可能还不足以帮助完全恢复丢失的第一数据包,那么此时,接收端可以向发送端发送反馈信息,指示还需要的第二数据包的个数,步骤201中接收的B个第二数据包还包括了发送端根据该反馈信息发送的第二数据包,此时可能存在B≥N,也即发送端在本次调度总共发送的第二数据包数要大于步骤102中生成的N个。对于超出N个的部分,如步骤104中所述,发送端可以通过再次编码等方式生成。也就是说,B个数据包包括了步骤104中发送的N个数据包的部分或者全部。B个第二数据包中的每个第二数据包与N个第二数据包中的每个第二数据包的内容是相同的。
接收A个第一数据包和B个第二数据包后,接收端便可以将A个第一数据包映射到接收端缓存中的部分或者全部数据和所述B个第二数据包中的至少一个进行联合译 码,最终恢复K个第一数据包。例如,可以通过如下步骤202至203来实现:
202.在缓存中根据所述第一头信息所述指示的所述位置,映射所述A个第一数据包。
如步骤201中所述,接收端解析接收到的A个第一数据包获得A个第一数据包的第一头信息。接收端根据A个第一头信息所指示的位置,在接收端的缓存中分别映射这A个第一数据包。其中,对“映射”的理解可以参照步骤101中的表述。
203.将C个数据段和/或D个子数据段与所述B个第二数据包中的至少一个进行联合译码恢复E个数据段,E个数据段包括F个丢失的第一数据包的数据,D个子数据段中的子数据段是E个数据段中的数据段的部分,C个数据段和所述D个子数据段的数据包括所述A个第一数据包中的部分或者全部数据,C个数据段和E个数据段的长度相等。
本步骤采用的虚拟分割级联方式与发送端步骤103中所描述的是一致的,但是由于在数据传输过程中,可能存在丢包的现象,(例如丢失了F个第一数据包),在接收端缓存中可能无法对应获得所有M个数据段,而是获得C个数据段和D个子数据段。当M个数据段中的数据段的数据并未全部丢失时,将包括了该数据段中的未丢失数据部分称为子数据段。C和D均为≥0的整数。现举例如下几种可能的情况:
情况一:0<C<M且D=0,例如,如图12(a)所示。
情况二:C=0且D>0,例如,如图12(b)所示。
情况三:0<C<M且D>0,例如,如图12(c)所示。
当A个第一数据包完全落在了接收端的译码窗内,C个数据段和D个子数据段的数据包括所述A个第一数据包中的全部数据。当A个第一数据包的数据中有部分数据落在了该译码窗之外,那么C个数据段和D个子数据段的数据包括所述A个第一数据包中的部分数据。这里的译码窗在接收端缓存中界定的译码范围与发送端编码窗在发送端缓存的中界定的编码范围是对应一致的。C个数据段和D个子数据段的数据无法包括的A个第一数据包的数据均落在译码窗外。另外需要说明的是,接收端数据段在缓存中的存在形式,是与发送端缓存中数据段的存在形式一致的。虽然图12(a)至图12(c)中示出的数据段的存在形式与步骤102中的举例一一致,但是,在接收端的缓存中数据段也可以以举例二的方式存在,通过步骤102中发送端指示的数据段的长度和/或偏移,接收端完全可以对应知晓数据段在缓存中的存在形式。需要说明的是,步骤102中的偏移为编码起始位置所在列首行与所述编码起始位置所在的行之间的偏移,对应的,在接收端可以对应将其理解成译码起始位置所在列的首行与译码起始位置所在的行之间的偏移。该偏移对应地反映了译码的起始位置,或者说,反映了数据段在缓存中所映射的位置。
在一种实现方式中,第二数据包包括第二头信息,该第二头信息可以指示该第二数据包对应的缓存中的数据段的信息,或者说,该第二头信息可以指示译码窗的范围。第二头信息还能够包括编码参数,例如,编码系数索引等,用于接收端对应进行准确的译码操作。第二头信息可以使得接收端获知第二数据包用于译码哪些第一数据包或者说缓存中的哪些数据段。在本实施例中,第二数据包对应的缓存中的数据段包括上述的C个数据段和E个数据段。
根据接收端采用的译码方式和丢失的第一数据包所对应的数据段的个数,将C个数据段和/或D个子数据段与所述B个第二数据包中的至少一个进行联合译码恢复E个数据段。这E个数据段包括F个丢失的第一数据包的数据,这里E、F为大于0的整数。可选的,当接收端本次完全译码成功时,A+F=K。
在一种实现方式中,若采用一个第二数据包恢复一个数据段的译码方式,可以将C个数据段与B个第二数据包中的至少一个进行联合译码恢复出丢失的数据段,以此恢复丢失的第一数据包。参与译码的第二数据包的个数,可以等于(M-C)个。译码后在缓存中也映射了M个数据段,可以据此获得发送端发送的K个第一数据包。
在另一种实现方式中,若采用增强译码的方式,C个数据段和B个第二数据包中的至少一个第二数据包,以及D个子数据段将参与联合译码。可以将C个数据段和D个子数据段与B个第二数据包中的至少一个进行联合译码,恢复出丢失的第一数据包中的数据。译码后在缓存中也映射了M个数据段,可以据此获得发送端发送的K个第一数据包。关于增强译码的具体细节,将在实施例六中详细介绍。
进一步地,在接收端可以将K个第一数据包的第一头信息移除后得到K个第一数据包的包体继续向上层传递。如前所述该包体可以是PDU或SDU。如此将不会影响现有协议的其它规则。
图13示出了图6所述的数据处理方法基于协议架构的一种实现方式。在该方式中网络编码功能在新引入的网络编码功能层实现。网络编码功能层位于PDCP层和RLC层之间,PDCP层的PDU向下传递至网络编码功能层作为网络编码功能层的SDU,通过添加第一头信息H后即成为第一数据包。图中示出了3个第一数据包。在网络编码功能层采用图6所涉及的步骤101和102后,生成得到了两个第二数据包,其中h为第二数据包的第二头信息。3个第一数据包和2个第二数据包作为网络编码功能层的PDU(图中未示出)被继续向下传递至RLC层。需要说明的是,虽然每一层的包头出于简明的目的都标记为H,但是每一层的H包括的信息可以是不同的。在每一层中的SDU出于简明的目的未标号,但可以知道它们是不同的SDU。网络编码功能层向下传递的数据包可以完全兼容RLC层的功能,即RLC层将网络编码PDU视为PDCP PDU进行处理和操作即可。需要这里说明的是,数据在其它协议层的操作与现有技术中的一致,因此不予赘述。
实施例二
本实施例介绍了一种第一头信息具体结构和第二头信息具体结构的设计方案。需要说明的是,本申请的技术方案不必同时应用实施例二中的第一头信息的具体结构和第二头信息的具体结构,即它们之间是解耦的。
本实施例可以基于实施例一。
如前所述,第一头信息包括指示所述第一数据包在缓存中的位置的信息。
先以二维缓存、先行后列的存储结构为例。
通过所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个; 以及,所述第一数据包起始位置的行号、所述第一数据包结束位置的行号、所述第一数据包起始位置的行号与所述第一数据包结束位置的行号之间的差值中的任意两个,可以唯一确定第一数据包在缓存中的位置。
如下以几种具体的可能的实现方式进行举例:
实现方式一:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包结束位置的列号与第一数据包起始位置的列号之间的差值、第一数据包起始位置的行号、第一数据包结束位置的行号。
实现方式二:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包起始位置的行号、第一数据包结束位置的列号和第一数据包结束位置的行号。
实现方式三:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包结束位置的列号与第一数据包起始位置的列号之间的差值、第一数据包起始位置的行号、第一数据包结束位置的行号与第一数据包起始位置的行号之间的差值。其中,前述行号之间的差值可以为正数或者负数,例如,行号之间的差值为正数时,表示第一数据包结束位置的行在第一数据包起始位置行下方;行号之间的差值为负数时,表示第一数据包结束位置的行号在第一数据包起始位置的行号上方。
实现方式四:
第一数据包的第一头信息包括:在缓存中,第一数据包结束位置的列号、第一数据包结束位置的列号与第一数据包起始位置的列号之间的差值、第一数据包结束位置的行号、第一数据包结束位置的行号与第一数据包起始位置的行号之间的差值。
在另一些可能的实现方式中,还可以结合第一数据包的长度来指示第一数据包在缓存中的位置。
实现方式五:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包起始位置的行号和第一数据包的长度。
实现方式六:
第一数据包的第一头信息包括:在缓存中,第一数据包结束位置的列号、第一数据包结束位置的行号和第一数据包的长度。
当第一头信息包括第一数据包长度时,在一些可能的实现方式中,发送端和接收端预先对缓存的列长度达成一致理解。
如实施例一中所述,所述缓存的列长度可以为接收端和发送端预先约定,发送端也可以通过RRC信令或者DCI通知接收端,发送端还可以携带在第一数据包的第一头信息中通知接收端。
如图14(a)至14(f)依次对应了实现方式一至六的第一数据包的结构。其中,为了简洁,将第一数据包起始位置的列号表示为R1、第一数据包结束位置的列号表示为R2、第一数据包结束位置的列号与第一数据包起始位置的列号之间的差值表示为 D1、第一数据包起始位置的行号L1、第一数据包结束位置的行号L2、第一数据包结束位置的行号与第一数据包起始位置的行号之间的差值D2,以及第一数据包的长度表示为L。需要说明的是,图中字段之间的位置顺序只是一种举例,实际上第一头信息中的字段之间的顺序可以任意互换的,只需发送端和接收端提前约定好,保证理解的一致性即可。
可选地,在以上各种实现方式中,可以对相关的字段的比特数做出规定,例如:
第一数据包起始位置的列号:8比特;
第一数据包结束位置的列号:8比特;
第一数据包结束位置的列号与第一数据包起始位置的列号之间的差值:8比特;
第一数据包起始位置的行号:7比特,如此可以表示128字节范围的行号;
第一数据包结束位置的行号:7比特,如此可以表示128字节范围的行号;
第一数据包结束位置的行号与第一数据包起始位置的行号之间的差值:8比特,其中第一个比特表示该差值为正数还是负数,剩下的7比特可以表示128字节范围的行号;
第一数据包的长度:11比特,对应最大长度为2048字节。
再以一维缓存为例,来介绍具体的实现方式。
对于一维缓存,一种比较简单的指示第一数据包在缓存中位置的信息的方式是:通过给缓存存储方向(长度方向)设置缓存位置索引,并通过位置索引标记第一数据包的起始位置、第一数据包的结束位置,或者结合第一数据包的长度与第一数据包的起始位置、第一数据包的结束位置中的一个,来唯一确定第一数据包在缓存中的位置。这种操作方式比较简单,当缓存空间较大,对应位置索引所需要的比特数也会增加,可以使用一种新的指示方式来降低第一头信息的开销。
可以定义缓存总长度以计量长度S为单位分为多段,每段的段号
Figure PCTCN2022078757-appb-000007
其中,index表示上述提及的缓存位置索引,取值范围例如可以为0至l,
Figure PCTCN2022078757-appb-000008
表示向下取整。
现结合图15定义如下几个字段:
第一数据包起始位置所在的段号V1_num;
第一数据包结束位置所在的段号V2_num;
第一数据包起始位置偏移V1_mod,为第一数据包起始位置与第一数据包起始位置所在段的起始位置之间的距离;
第一数据包结束位置偏移V2_mod,为第一数据包结束位置与第一数据包结束位置所在段的起始位置之间的距离;
第一数据包结束位置相对于起始位置所偏移的段数num_OS;
第一数据包结束位置偏移相较于起始位置偏移所偏移的差值mod_OS,即
mod_OS=V2_mod-V1_mod。
因此,可以通过如下公式分别计算出第一数据包在缓存中起始位置的索引和结束位置的索引,这些公式只是部分示例:
第一数据包在缓存中起始位置的索引为V1_mod+V1_num*S、V1_mod+(V2_num- num_OS)*S、或者V2_mod-mod_OS+(V2_num-num_OS)*S;
第一数据包在缓存中结束位置的索引为V2_mod+V2_num*S、V2_mod+(V1_num+num_OS)*S、或者V1_mod+mod_OS+(V1_num+num_OS)*S。
基于以上,第一头信息中所包括的内容,还可以有如下几种实现方式:
实现方式六:
第一数据包的第一头信息包括:V1_mod、V1_num、第一数据包的长度L。此时,起始位置的索引为V1_mod+V1_num*S;结束位置的索引为V1_mod+V1_num*S+L。实现方式七:
第一数据包的第一头信息包括:V2_mod、V2_num、L。此时,起始位置的索引为V2_mod+V2_num*S-L,结束位置的索引为V2_mod+V2_num*S。
在另一些可能的实施方式中,第一头信息可以包括V1_mod,V2_mod和mod_OS三项中的至少两项,以及V1_num,V2_num和num_OS中的至少两项。以下为几种可能的具体实现方式。
实现方式八:
第一数据包的第一头信息包括:V1_mod、V1_num、V2_mod、num_OS。
实现方式九:
第一数据包的第一头信息包括:V1_mod、V1_num、num_OS、mod_OS。
实现方式十:
第一数据包的第一头信息包括:V2_mod、V2_num、V1_mod、num_OS。
实现方式十一:
第一数据包的第一头信息包括:V2_mod、V2_num、num_OS、mod_OS。
如上实现方式六至十一对应的对应的第一数据包的结构,本领域技术人员参见图14(a)至14(e)中任意一种均可以得到,因此不再重复作图。
如下继续介绍第二头信息的具体结构。第二数据包包括第二头信息,第二头信息包括在缓存中,编码的起始列号Win_R1,编码的编码窗长度Win_S(例如,缓存中参与本次编码的列数,若对应实施例一中的举例一的场景,则也可以理解为数据段的个数M),以及编码的结束列号Win_R2中的任意两个。也即通过如上任意两个字段,即可确定出本次编码的数据段是哪些,或者说,本次编码的编码窗范围。因为发送端的编码的数据段(编码窗)和接收端的译码的数据段(译码窗)是对应的,因此,接收端通过解析以上信息,便可获知第二数据包用于译码的数据段是哪些。需要说明的是Win_S也可以通过半静态配置的方式通知接收端,此时在第二头信息中可以不包括Win_S。
可选的,第二头信息还可以包括如下至少一种字段:
包标识packet ID:用于表示第二数据包的序列SN号,其取值范围为0至2 N-1,N为packet ID的比特数;
类型type:用于表示第二数据包SN号的不同取值范围,例如,若type=0,可以表示packet ID的比特数N为8。若type=1,可以表示packet ID的比特数N为16。type的比特数为一位时,第二数据包SN号可以有两种不同的取值范围,type的比特数为 两位时,第二数据包SN号可以有四种不同的取值范围,依次类推;
系数码本的行索引coeff ID:8比特开销可以表示255行码本系数,用于对编码窗中的数据段进行编码,常用的码本有范德蒙码本、柯西码本、随机码本等
同样的,第二头信息中的各个字段之间顺序可以是任意的,图16中示出的一种第二数据包的结构只是一种举例。
在一种实现方式中,可以对相关字段的比特数做出规定,例如:
Win_R1:8比特,对应可以指示到256列中的一列;
Win_S:8比特,对应可以指示到256种编码窗的长度;
Win_R2:8比特,对应可以指示到256列中的一列;
packet ID:为8比特或者16比特等取值范围,可以结合type唯一确定;
type:1比特或者2比特;
coeff ID:8比特。
在一种实现方式中,无论是第一头信息还是第二头信息,都还可以包括通用字段原始/编码(original/code,O/C)字段,用以指示当前发送的数据包为第一数据包还是第二数据包,用于接收端快速区别数据包的类型。例如O/C字段=0则当前发送的数据包为第一数据包,O/C字段=1则当前发送的数据包为第二数据包。
在一种实现方式中,还可以对第一数据包和/或第二数据包添加循环冗余码校验(cyclic redundancy check,CRC)信息。例如,如图17(a)至17(d)所示,可以在第一头信息的末尾、第一头信息的末尾和第一数据包的末尾、第二头信息的末尾、第二头信息的末尾和第二数据包的末尾中添加上CRC信息,图中的省略号代表省去的第一头信息或者第二头信息中的其它字段。可选的,可以在第一头信息中额外增加一比特,该一比特指示对应的第一数据包的第一头信息末尾和/或第一数据包末尾是否添加了CRC信息。还可以在第二头信息中额外增加一比特,该一比特指示对应的第二数据包的第二头信息末尾和/或第二数据包末尾是否添加了CRC信息。对第一头信息、第二头信息、第一数据包和第二数据包中的至少一个添加CRC信息,可以对应地分别保证第一头信息、第二头信息、第一数据包和第二数据包的完整性和准确性。
通过如上第一头信息和/或第二头信息的结构的开销相对较小。举例来说,若采用如上对相关的字段的比特数的设计,则不管是何种实现方式,第一头信息的总开销约在4字节、第二头信息的总开销约为2字节。如此设计,不仅有效保证了编码和译码流程操作的准确性,相比于传统地分割级联方式至少需要8字节的指示开销,也大大节约了系统的开销。同时本申请实施例的技术方案也考虑到了现有协议的兼容性。
实施例三:
本实施例介绍了一种反馈信息的设计方案。本实施例可以基于实施例一或者实施例二。
如前述实施例一中所述的,当接收端接收到的第二数据包不足以恢复出本次数据传输所丢失的第一数据包时,接收端可以向发送端进行指示以获取足够的第二数据包来完成整个译码流程。同时,对于成熟的数据传输机制来说,发送端也会知悉本次数据传输的所有数据是否已经被接收端正确接收。基于此,可以引入本实施例的技术方 案。
本实施例的技术方案,接收端向发送端发送反馈信息,用于指示本次数据传输的数据包是否接收成功。
在一种实现方式中,若接收端正确接收了发送端发送的K个第一数据包,那么可以直接向发送端发送反馈信息,该反馈信息为确认应答ACK。若接收端存在译码错误的情况,也即未正确接收这个K个第一数据包,接收端向发送端发送反馈信息,反馈信息中包括接收端已经正确接收的M个数据段中的数据段的个数,也即对应为秩rank数。或者反馈信息中包括还需要发送端发送的第二数据包的个数,也即对应为需要的rank数。
关于接收端如何确定rank数,可以使用如下的方式:若在译码后,接收端缓存中无法完整映射出译码窗内的数据段,则判定该数据段丢失,M减去丢失的数据段个数,即为rank数。若在译码前,接收端缓存中无法完整映射出译码窗内的数据段,则判定该数据段丢失,丢失的数据段个数减去收到的编码包个数,即为需要的rank数。
在一种实现方式中,反馈信息还包括指示需要发送端发送的第二数据包所对应的数据段的信息,或者说包括指示本次编码的编码窗的范围的信息。此时,反馈信息中包括Win_R1、Win_S和Win_R2中的任意两个,它们的定义和举例与实施例二中的相关部分相同,不在赘述。
本实施例采用的反馈信息,使得整个数据传输流程更加完整,便于接收端更快速地正确接收发送端发送的所有数据,提高系统的传输性能。
实施例四
本实施例提供了另一种数据处理方法,其可以基于在实施例一所述的数据处理方法的技术方案,并且其同样可以与实施例二和三中的至少一种结合。
以二维、先行后列的缓存存储结构,即逐列映射的缓存存储结构为例,可以使K个第一数据包中的每一个都从该第一数据包起始位置所在列首行开始映射。若第一数据包的结束位置不是结束位置所在列最后一行,对于第一数据包P的结束位置所在的列,则可以采用padding的方式将第一数据包结束位置的行至该列最后一行之间的区域填充满。这样保证了下一个第一数据包是从下一列首行开始映射,且相当于缓存中的每一列只包含了一个第一数据包的数据。具体如图18所示。在一种实现方式中,padding填充的数据可以是全0。
相对于实施例一,除了第K个数据包在缓存中的起始位置做了进一步的限定,其余在发送端的数据处理方式,和/或,在接收端的数据处理方式是与实施例一中的表述一致的,因此不予赘述。
在本实施例中,第一头信息将不需要再指示与起始位置所在行有关的信息。例如第一头信息包括如下几种实现方式:
实现方式一:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包的结束位置的列号与第一数据包起始位置的列号之间的差值、第一数据包结束位置的行号。
实现方式二:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包的结束位置的列号和第一数据包结束位置的行号。
实现方式三:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号、第一数据包的结束位置的列号与第一数据包起始位置的列号之间的差值、第一数据包结束位置行号和第一数据包起始位置的行号的差值。
实现方式四:
第一数据包的第一头信息包括:在缓存中,第一数据包起始位置的列号和第一数据包的长度。
关于以上各个字段的比特数举例,可以参见实施例二。
对于一维缓存,也可以使得K个第一数据包中的每一个数据包从缓存中由计量长度定义的每段的段首开始映射,如图19所示,本实施例对于一维缓存的其余现方式与上述二维缓存的实现方式是类似,本领域技术人员参照上述对二维缓存的实现方式实现,此处不予赘述。
因为第一头信息所包含的字段相比于实施例二进一步减少,故可以进一步减少第一头信息的开销。
实施例五
本实施例提供了又一种数据处理方法,其可以基于在实施例一所述的数据处理方法的技术方案,并且其同样可以与实施例二和三中的至少一种结合。
本实施例可以认为是实施例四的进一步改进,在实施例四中,只要第一数据包的结束位置并非落在某一列最后一行,即对第一数据包进行padding的操作。相比于实施例四,实施例五引入了一个判决门限,该判决门限具体可以是预设行号,该预设行号可以以信令的方式通知给终端。仍以二维缓存、先行后列比如逐列的存储结构为例,如图20所示,在一种实现方式中,在列X+1,第一数据包P的结束位置的行号大于判决门限,则对于列X+1,第一数据包P的结束位置的行至该列最后一行采用padding的方式进行填充,保证下一个第一数据包P+1可以从第X+2列首行开始映射。在第X+4列第一数据包P+1的结束位置的行号小于判决门限,则第X+4列中,第一数据包P+2将紧跟着第一数据包P+1映射。即第一数据包P+2和第一数据包P+1之间无需进行padding。需要说明的是,若某一数据包的结束位置所在的行好正好等于判决门限,那么可以采用如上所述的padding操作,也可以不进行padding操作,只要预先确定好并保持发送端和接收端对此的认识一致即可。
对于每一个映射至缓存的第一数据包,在本实施例中都会存在一个结束位置与判决门限的判断,来确定是否在该第一数据包后进行padding。因此,还可以在第一头信息中添加一个type字段,其可以为1比特,用于指示该第一数据包后是否额外进行了padding。若是,该第一数据包的下一个第一数据包的起始位置为该第一数据包结束位置所在列后一列首行;若否,该第一数据包的下一个第一数据包的起始位置为该第一数据包结束位置所在的行的下一行。或者说,1比特type字段可表示第一数据包映射 采用的方式是连着上一个数据包末尾映射,即起始位置位于某一列的中间行,还是从上一个第一数据包结束位置所在列的下一列首行开始映射;第一头信息中包含的其它信息可以参照实施例二和实施例四。
相对于实施例一,除了第K个数据包在缓存中的起始位置做了进一步的限定,其余在发送端的数据处理方式,和/或,在接收端的数据处理方式是与实施例一中的表述一致的,因此不予赘述。
基于类似的构思,对于一维缓存,同样也可以规定在每段中的一个位置作为上述表述中的判决门限,如图21所示,该判决门限在每段的中的位置是固定的。本实施例对于一维缓存其余的实现方式与上述二维缓存的实现方式是类似的,本领域技术人员可以参照上述对二维缓存的实现方式实现,此处不予赘述。
本实施例的技术方案,通过设置判决门限灵活地对每个第一数据包后是否进行padding进行区分,既可以通过padding的操作节约第一头信息的开销,又可以尽量减少padding导致的冗余信息过多而降低编码效率,很好地实现了第一头信息开销和编码效率的折中。
实施例六
本实施例提供了一种新的译码技术方案,可以称为一种增强译码方案,应用于接收端,可以与实施例一结合,进一步还可以与实施例二至五中的一个或者多个相结合,若前述实施例提到了其它译码技术方案,只要将该部分进行替代即可。
前述提及的其它译码方案的实质是,在接收端的缓存中,映射的数据段只要是不完整的(例如数据段完全丢失或者部分丢失),就认为该数据段丢失,在联合译码中就对应需要一个第二数据包对其进行恢复。而在本实施例中,若第一数据包的丢失只是导致了一个数据段的部分丢失,而非全部丢失,那么可以将接收到的该数据段的部分,即子数据段,用于接收端的联合译码,这样可以降低译码所需的第二数据包个数,有效提高译码效率。
在一种实现方式中,实施例一中所述的F个丢失的第一数据包中的第一数据包Q的长度为L,E个数据段中每个数据段的长度为S,
Figure PCTCN2022078757-appb-000009
个所述第二数据包可以恢复所述第一数据包Q,其中,
Figure PCTCN2022078757-appb-000010
表示向上取整,L和S大于0,且
Figure PCTCN2022078757-appb-000011
特别的,当L>S时,本实施例中的译码方案对应需要的用于译码的第二数据包个数可能比前述提及的其它译码方案要少。
下面以图22为例对以上表述进行详细说明:
如图22,仍是二维、先行后列的缓存存储结构为例,接收端已经完成了根据接收到的第一数据包中的第一头信息,在接收端的缓存中映射接收到的第一数据包1和第一数据包3。第一数据包2在传输中丢失。此时,数据段的存在形式为实施例中的举例一中的形式,也即可以认为译码窗中的每一列的数据为一个数据段,现以每列的列号标识这些数据段。在图22中,可以认为第一数据包1对应到数据段X和X+1,第一数据包2对应到数据段X+1、X+2、X+3和X+4,第一数据包3在译码窗中部分对应到数据段X+4、X+5。对于丢失的第一数据包2,虽然对应有四个数据段,但是数据段X+1和X+4有部分数据并未丢失,第一数据包的长度L与数据段的长度S之比为 L/S,2<L/S<3,因此用三个第二数据包与数据段X、X+5、数据段X+1对应的子数据段(即为数据段X+1已正确接收的部分数据)和数据段子X+4对应的子数据段(即为数据段X+4已正确接收的部分数据)进行联合译码即可恢复出丢失的第一数据包2。具体地,可以将三个第二数据包中的两个分别用于恢复数据段X+2和X+3,将剩下的一个第二数据包按照第列X+1中丢失数据的区域A和列X+4中丢失区域B的位置进行对应划分获得第二数据包的2_1、2_2和2_3部分,如图22所示,第二数据包的2_1部分用于辅助译码第列X+4中丢失区域B、第二数据包的2_3部分用于辅助译码第列X+1中丢失区域A。而前述的译码算法,因为丢失的第一数据包2涉及到4个数据段,四个第二数据包参与译码才能恢复丢失的第一数据包2。可见采用本实施例的译码方案,此时可以降低译码所需的第二数据包的个数。译码的具体操作与现有技术中的相同,例如,若第编码窗内的数据段时按照伽罗华域(galois field,GF)域配置的,且为GF(2 k),则可以进行逐k比特的译码。
类似的,对于一维缓存,同样也可以运用如上本实施例中提供的译码方案,其实现方式与二维缓存是类似的,请参见图23,具体的实现方式与如上本实施例介绍的二维缓存的实现方式是类似的,本领域技术人员可以参照上述对二维缓存的实现方式实现,此处不予赘述。
本实施例提供的译码算法,通过将第二数据包进行划分后用于缓存中对应位置的译码,相对于其它的译码方案,需要的第二数据包的个数更少,提升了译码效率,也降低了第二数据包的发送频次。
实施例七
在本申请具体实施方式的开始部分,提到本申请的技术方案可以在新引入的一个协议层,如网络编码功能层实现,也可以嵌入现有的协议层中实现。本实施例将以实施例一至六中的一个或者多个技术方案嵌入PDCP层为例进行表述。需要理解的是,本实施例的技术方案,可以进一步与上各个实施例中的一个或者多个结合。
在发送端,PDCP层的功能基于处理的先后顺序主要依次包括头压缩、完整性保护、加密和包头添加。相应的,在接收端,PDCP层的功能基于处理的先后顺序主要依次包括解密,完整性保护验证、重排序和重复丢弃、以及头解压缩。假设本申请实施例的功能可以统称为网络编码功能,则在一种实现方式中,如图24所示,在发送端,网络编码功能位于头压缩和完整性保护功能之间,即发送端在PDCP层对头压缩后的SDU进行网络编码功能操作,再进行完整性保护、加密和包头添加,形成PDCP层的PDU向下层RLC层进行传递。相应地,在接收端,网络编码功能位于重排序和重复丢弃、头解压缩之间,即接收端在PDCP层对接收到的PDU进行重排序和重复丢弃操作之后进行网络编码功能操作。
对于第二数据包,如前述实施例二中已经提到的,第二数据包的第二头信息中可以包括packet ID,用于表示第二数据包的SN号。具体地,对于该packet ID计数方式的设计,可以采用独立的计数方式:与PDCP层的PDU,也即前述实施例中所述的第一数据包,分开独立计数。后将PDCP层的PDU称为第一数据包。packet ID还可以 与第一数据包一起计数:在一种实现方式中,如图25所示,对于第二数据包的SN号(Q+2和Q+4),第二数据包和第一数据包一起计数,也即第二数据包与第一数据包按照发送的先后顺序按序递增计数;但是对于第一数据包的SN号(Q,Q+1,Q+2,Q+3,Q+4),第一数据包独立于第二数据包计数,也即第二数据包不会影响第一数据包计数的连续性,此种方式会出现第二数据包与第一数据包SN相同的情况,可以通过例如O/C字段区分该数据包是第一数据包还是第二数据包。
将网络编码功能嵌入PDCP层中实现,在进行网络编码的同时,无需对PDCP层的SDU进行实际地分割级联等操作,很好地兼容了现有的协议。另外,由于DC场景下的复制(duplication)和分离(split)操作在PDCP层实现,将网络编码功能嵌入PDCP层中实现也能更好的适配DC场景,即PDCP的PDU没有被实际分割和级联,依旧保持原有的完整性,并且对应SN号也没有发生变化。
上述本申请提供的实施例中,从发送端和接收端作为执行主体的角度对本申请实施例提供的数据处理方法进行了介绍。为了实现上述本申请实施例提供的数据处理中的各功能,发送端和接收端可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
实施例八
与上述实施例的构思相同,如图26所示,本申请实施例还提供一种装置1100,该装置1100包括映射模块1101、编码模块1102和收发模块1103。
一示例中,装置1100用于实现上述方法中发送端的功能。该装置可以是发送端本身,也可以是应用于发送端中的装置。其中,该装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
其中,映射模块1101,用于在缓存中映射K个第一数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在所述缓存中位置的信息。编码模块1102,用于对所述缓存中的M个数据段进行编码生成N个第二数据包,所述M个数据段中的数据包括所述K个第一数据包中的部分或者全部数据,且所述M个数据段的长度相等。收发模块1103,用于发送K个第一数据包和发送所述N个第二数据包中的至少一个。其中,M、N、K为正整数。
关于映射模块1101、编码模块1102和收发模块1103的具体执行过程,可参见上实施例一至七中关于发送端执行的方法的记载。本领域技术人员结合上述装置实施例的描述和实施例一至七中的过程描述,可以得到用于实现实施例一至七中的发送端的装置实施例,在此不加赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,在一种可能的实现方式中映射模块1101集成在处理器中,编码模块1102集成在编码器中,以及收发模块1103集成在收发器中。在另外一种可能的实现方式中,映射模块1101和编码模块1102均集成在编码器中,收发模块1103集成在收发器中。上述模块既可以采用硬件的形式实现,也可以采用软件功能 模块的形式实现。
实施例九
与上述实施例的构思相同,如图27所示,本申请实施例还提供一种装置1200,该装置1200包括映射模块1201、译码模块1202和收发模块1203。
一示例中,装置1200用于实现上述方法中接收端的功能。该装置可以是接收端本身,也可以是应用于接收端中的装置。其中,该装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
其中,收发模块1203,用于接收A个第一数据包和B个第二数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在缓存中的位置的信息。映射模块1202,用于在所述缓存中根据所述第一头信息指示的所述位置,映射所述A个第一数据包。译码模块1202,用于将C个数据段和/或D个子数据段与所述B个第二数据包中的至少一个进行联合译码恢复E个数据段,所述E个数据段包括F个丢失的第一数据包的数据,所述D个子数据段中的子数据段是所述E个数据段中的数据段的部分,所述C个数据段和所述D个子数据段的数据包括所述A个第一数据包中的部分或者全部数据,所述C个数据段和所述E个数据段的长度相等;其中,A、B、C、D为大于或等于0的整数,E、F为大于0的整数,且A与B不同时为0。
关于映射模块1201、译码模块1202和收发模块1203的具体执行过程,可参见上实施例一至七中关于发送端执行的方法的记载。本领域技术人员结合上述装置实施例的描述和实施例一至七中的过程描述,可以得到用于实现实施例一至七中的接收端的装置实施例,在此不加赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,在一种可能的实现方式中映射模块1201集成在处理器中,译码模块1202集成在编码器中,以及收发模块1203集成在收发器中。在另外一种可能的实现方式中,映射模块1201和译码模块1202均集成在编码器中,收发模块1203集成在收发器中。上述模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
实施例十
与上述构思相同,如图28所示,本申请实施例还提供一种装置1300。装置1300包括至少一个处理器1301。
一示例中,该装置1300用于实现上述方法中发送端的功能,该装置可以是发送端本身,也可以是应用于发送端中的装置,如芯片。处理器1301用于实现上述实施例一至七中发送端的功能。具体参见上述实施例一至七中的详细描述,此处不再说明。
在另一示例中,该装置1300用于实现上述方法中接收端的功能,该装置可以是接收端本身,也可以是应用于接收端中的装置,如芯片。处理器1301用于实现上述实施例一至七中接收的功能。具体参见上述实施例一至七中的详细描述,此处不再说明。
在一些实现方式中,装置1300还可以包括至少一个存储器1302,用于存储程序 指令和/或数据。存储器1302和处理器1301耦合。本申请实施例中的耦合是装置、单元或模块之间的间隔耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。作为另一种实现,存储器1302还可以位于装置1300之外。处理器1301可以和存储器1302协同操作。处理器1301可能执行存储器1302中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
在一些实施例中,装置1300还可以包括通信接口1303,用于通过传输介质和其它设备进行通信,从而使得装置1300可以和其它设备进行通信。示例性地,通信接口1303可以是收发器、电路、总线或其它类型的通信接口,该其它设备可以是接收端或者发送端。处理器1301利用通信接口1303收发信息,并用于实现上述实施例一至七中的方法。
本申请实施例中不限定上述通信接口1303、处理器1301以及存储器1302之间的连接介质,例如,可以通过总线连接,所述总线可以包括为地址总线、数据总线和控制总线中的至少一种。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为处理器中的硬件执行完成这些方法的步骤,或者用处理器中的硬件及软件模块组合执行完成这些方法的步骤。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk,HD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的程序代码并能够由计算机存取的任何介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例提供的方法,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等 数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,SSD等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (30)

  1. 一种数据处理方法,其特征在于,包括:
    在缓存中映射K个第一数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在所述缓存中位置的信息;
    对所述缓存中的M个数据段进行编码生成N个第二数据包,所述M个数据段中的数据包括所述K个第一数据包中的部分或者全部数据,且所述M个数据段的长度相等;
    发送所述K个第一数据包;以及,
    发送所述N个第二数据包中的至少一个;其中,M、N、K为正整数。
  2. 如权利要求1所述的方法,其特征在于,所述M个数据段的长度为S,S大于或等于0;
    所述第一头信息还包括用于指示所述S的值的信息;或者,
    所述方法还包括:发送用于指示所述S的值的信息。
  3. 如权利要求1或者2所述的方法,其特征在于,所述M个数据段的长度为所述缓存的列的长度,所述M为编码窗所包括的列数,其中,所述列的长度方向与所述K个第一数据包在所述缓存中的长度方向一致。
  4. 如权利要求1至3任一所述的方法,其特征在于,在所述缓存中,所述K个第一数据包中的每个第一数据包从所述第一数据包起始位置所在列首行开始映射。
  5. 如权利要求1至4任一所述的方法,其特征在于,在所述缓存中,当所述K个第一数据包中的第一数据包P结束位置的行号大于或等于预设行号时,所述第一数据包P的下一个第一数据包从所述第一数据包P结束位置所在列的后一列首行开始映射,P为大于或等于0的整数。
  6. 如权利要求5所述的方法,其特征在于,所述第一头信息还包括指示所述第一数据包P结束位置的行号与所述预设行号大小关系的信息。
  7. 如权利要求1至6任一所述的方法,其特征在于,所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
    所述第一数据包起始位置的行号、所述第一数据包结束位置的行号、所述第一数据包起始位置的行号与所述第一数据包结束位置的行号之间的差值中的任意两个。
  8. 如权利要求1至6任一所述的方法,其特征在于,所述缓存的列的长度是预定义的,或者所述方法还包括:发送指示所述缓存的列的长度的信息;
    所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包起始位置的行号、和所述第一数据包的长度。
  9. 如权利要求1至6任一所述的方法,其特征在于,所述缓存的列的长度是预定义的,或者所述方法还包括:发送指示所述缓存的列的长度的信息;
    所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包结束位置的列号、所述第一数据包结束位置的行号和所述第一数据包的长度。
  10. 如权利要求4至6任一所述的方法,其特征在于,所述指示所述第一数据包在所述第一缓存中位置的信息包括:在所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
    所述第一数据包结束位置的行号。
  11. 如权利要求1至10任一所述的方法,其特征在于,所述第二数据包包括第二头信息,所述第二头信息包括指示与所述第二数据包对应的所述M个数据段的信息。
  12. 如权利要求1至3、7至9、和11任一所述的方法,其特征在于,还包括:
    发送指示偏移的信息,所述偏移为编码起始位置所在列首行与所述编码起始位置所在的行之间的偏移。
  13. 一种数据处理方法,其特征在于,包括:
    接收A个第一数据包和B个第二数据包,所述第一数据包包括第一头信息,所述第一头信息包括指示所述第一数据包在缓存中的位置的信息;
    在所述缓存中根据所述第一头信息指示的所述位置,映射所述A个第一数据包;
    将C个数据段和/或D个子数据段与所述B个第二数据包中的至少一个进行联合译码恢复E个数据段,所述E个数据段包括F个丢失的第一数据包的数据,所述D个子数据段中的子数据段是所述E个数据段中的数据段的部分,所述C个数据段和所述D个子数据段的数据包括所述A个第一数据包中的部分或者全部数据,所述C个数据段和所述E个数据段的长度相等;
    其中,A、B、C、D为大于或等于0的整数,E、F为大于0的整数,且A与B不同时为0。
  14. 如权利要求13所述的方法,其特征在于,所述B个第二数据包包括第二头信息,所述第二头信息包括指示所述第二数据包所用于译码的数据段的信息,所述所用于译码的数据段包括所述C个数据段和所述E个数据段。
  15. 如权利要求13或者14所述的方法,其特征在于,在所述缓存中,所述A个第一数据包中的每个第一数据包起始位置为所述第一数据包起始位置所在列首行。
  16. 如权利要求13至15任一所述的方法,其特征在于,在所述缓存中,若所述A个第一数据包中的第一数据包P结束位置的行号大于或等于预设行号时,所述第一数据包P的下一个第一数据包的起始位置为所述第一数据包P结束位置所在列的后一列首行,P为大于或等于0的整数,其中,所述A个第一数据包包括所述第一数据包P的下一个第一数据包;或者,所述F个丢失的第一数据包包括所述第一数据包P的下一个第一数据包。
  17. 如权利要求16所述的方法,其特征在于,所述第一头信息还包括指示所述第一数据包P结束位置的行号与所述预设行号大小关系的信息。
  18. 如权利要求13至17任一所述的方法,其特征在于,所述F个丢失的第一数据包中的第一数据包Q的长度为L,所述E个数据段中每个数据段的长度为S,
    Figure PCTCN2022078757-appb-100001
    个所述第二数据包用于恢复所述第一数据包Q,其中,
    Figure PCTCN2022078757-appb-100002
    表示向上取整,L和S大于0,且B大于或等于
    Figure PCTCN2022078757-appb-100003
  19. 如权利要求13至18任一所述的方法,其特征在于,所述C个数据段和所述E个数据段的长度为S,S大于或等于0;
    所述第一头信息还包括用于指示所述S的值的信息;或者,
    所述方法还包括:接收用于指示所述S的值的信息。
  20. 如权利要求13至19任一所述的方法,其特征在于,所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
    所述第一数据包起始位置的行号、所述第一数据包结束位置的行号、所述第一数据包起始位置的行号与所述第一数据包结束位置的行号之间的差值中的任意两个。
  21. 如权利要求13至19任一所述的方法,其特征在于,所述缓存的列的长度是预定义的,或者是由接收的配置所指示的;
    所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包起始位置的行号、和所述第一数据包的长度。
  22. 如权利要求13至19任一所述的方法,其特征在于,所述缓存的列的长度是预定义的,或者是由接收的配置所指示的;
    所述指示所述第一数据包在所述缓存中位置的信息包括:所述缓存中,
    所述第一数据包结束位置的列号、所述第一数据包结束位置的行号和所述第一数据包的长度。
  23. 如权利要求15至17任一所述的方法,其特征在于,所述指示所述第一数据包在所述第一缓存中位置的信息包括:在所述缓存中,
    所述第一数据包起始位置的列号、所述第一数据包结束位置的列号、所述第一数据包结束位置的列号与所述第一数据包起始位置的列号之间的差值中的任意两个;以及,
    所述第一数据包结束位置的行号。
  24. 如权利要求13至22任一所述的方法,其特征在于,还包括:
    接收指示偏移的信息,所述偏移为译码起始位置所在列首行与所述译码起始位置所在的行之间的偏移。
  25. 一种通信装置,其特征在于,包括用于实现如权利要求1至12任一方法的单元或者模块。
  26. 一种通信装置,其特征在于,包括用于实现如权利要求13至24任一方法的单元或者模块。
  27. 一种通信装置,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令时,使得所述装置执行权利要求1至12任一项所述的方法。
  28. 一种通信装置,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器执行所述指令时,使得所述装置执行权利要求13至24任一项所述的方法。
  29. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令在计算机上运行时,使得计算机执行权利要求1至12、13至24任一项所述的方法。
  30. 一种通信系统,其特征在于,包括如权利要求27和权利要求28所述的通信装置。
PCT/CN2022/078757 2021-04-30 2022-03-02 一种数据处理方法、装置和系统 WO2022227845A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110486482.6 2021-04-30
CN202110486482.6A CN115276896A (zh) 2021-04-30 2021-04-30 一种数据处理方法、装置和系统

Publications (1)

Publication Number Publication Date
WO2022227845A1 true WO2022227845A1 (zh) 2022-11-03

Family

ID=83745592

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/078757 WO2022227845A1 (zh) 2021-04-30 2022-03-02 一种数据处理方法、装置和系统

Country Status (2)

Country Link
CN (1) CN115276896A (zh)
WO (1) WO2022227845A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017193261A1 (zh) * 2016-05-09 2017-11-16 华为技术有限公司 信息传输的方法、接收设备、发送设备和系统
CN110266448A (zh) * 2017-06-19 2019-09-20 华为技术有限公司 信息处理的方法、装置、通信设备和通信系统
CN110463094A (zh) * 2017-05-12 2019-11-15 南通朗恒通信技术有限公司 一种支持混合自动重传请求的用户设备、基站中的方法和装置
WO2020210682A1 (en) * 2019-04-12 2020-10-15 Apple Inc. Network coding at the packet data convergence protocol (pdcp) layer to increase communication reliability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017193261A1 (zh) * 2016-05-09 2017-11-16 华为技术有限公司 信息传输的方法、接收设备、发送设备和系统
CN110463094A (zh) * 2017-05-12 2019-11-15 南通朗恒通信技术有限公司 一种支持混合自动重传请求的用户设备、基站中的方法和装置
CN110266448A (zh) * 2017-06-19 2019-09-20 华为技术有限公司 信息处理的方法、装置、通信设备和通信系统
WO2020210682A1 (en) * 2019-04-12 2020-10-15 Apple Inc. Network coding at the packet data convergence protocol (pdcp) layer to increase communication reliability

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
INTEL CORPORATION, AT&T: "Use cases and options for network coding in IAB", 3GPP DRAFT; RP-192535, 3RD GENERATION PARTNERSHIP PROJECT (3GPP), MOBILE COMPETENCE CENTRE ; 650, ROUTE DES LUCIOLES ; F-06921 SOPHIA-ANTIPOLIS CEDEX ; FRANCE, vol. TSG RAN, no. Sitges, Spain; 20191209 - 20191212, 2 December 2019 (2019-12-02), Mobile Competence Centre ; 650, route des Lucioles ; F-06921 Sophia-Antipolis Cedex ; France , XP051834175 *
INTEL CORPORATION: "Network coding for Release 17 IAB", 3GPP DRAFT; RP-191346_NETWORK CODING FOR IAB, 3RD GENERATION PARTNERSHIP PROJECT (3GPP), MOBILE COMPETENCE CENTRE ; 650, ROUTE DES LUCIOLES ; F-06921 SOPHIA-ANTIPOLIS CEDEX ; FRANCE, vol. TSG RAN, no. Newport Beach, U.S.A; 20190603 - 20190606, 25 May 2019 (2019-05-25), Mobile Competence Centre ; 650, route des Lucioles ; F-06921 Sophia-Antipolis Cedex ; France , pages 1 - 8, XP051739673 *

Also Published As

Publication number Publication date
CN115276896A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
JP7017627B2 (ja) 通信システムにおける冗長バージョン設計ソリューション
JP7327831B2 (ja) 通信方法及びデバイス
US12003322B2 (en) Data transmission method and communication apparatus
CN115104269B (zh) 具有紧凑存储器使用的上行链路重传
WO2022001367A1 (zh) 一种编码方法及装置
WO2021169522A1 (zh) 数据处理方法及装置
CN112636879B (zh) 基于混合自动重传请求的码块处理的方法和装置
WO2022228467A1 (zh) 数据传输方法、装置及可读存储介质
US11817958B2 (en) MAC-based hybrid automatic repeat request (HARQ)
WO2022227845A1 (zh) 一种数据处理方法、装置和系统
WO2023005909A1 (zh) 网络编码场景下的超时丢包方法、装置及可读存储介质
WO2023005885A1 (zh) 一种切换场景的数据转发方法及装置
WO2023273975A1 (zh) 一种数据传输方法和通信装置
JP7036118B2 (ja) 再送制御方法、無線端末、無線基地局
CN108400832A (zh) 数据处理方法和通信设备
WO2019144787A1 (zh) 一种交织方法及交织设备
WO2023016506A1 (zh) 传输数据的方法及通信装置
WO2023273973A1 (zh) 一种通信方法及通信装置
WO2023046029A1 (zh) 数据传输方法、装置及可读存储介质
WO2024119379A1 (zh) 一种信息比特的确定方法及装置
WO2022236719A1 (zh) 无线通信方法、终端设备和网络设备
WO2022236752A1 (zh) 无线通信方法、第一设备和第二设备
WO2023284666A1 (zh) 一种网络编码功能的配置方法以及相关装置
WO2023169243A1 (zh) 信息处理方法及装置
WO2023246433A1 (zh) 编译码方法及相关装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22794324

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22794324

Country of ref document: EP

Kind code of ref document: A1