Communication method, apparatus, and storage medium
By sending indication information between the PDCP layer and the RLC layer, and by sliding the reassembly window and reordering window, the sequence number gap problem caused by data packet timeout in 5G NR technology is solved, thereby improving data transmission performance.
Patent Information
- Application Number
- CN202511575866.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-31
- Publication Date
- 2026-03-03
- Estimated Expiration
- 2045-10-31
AI Technical Summary
In the user plane protocol of 5G NR technology, the sequence number gap caused by data packet timeout in the receiving device leads to the asynchrony of the reassembly window and the reordering window, which affects the data transmission performance.
By sending indication information between the PDCP layer and the RLC layer to indicate sequence number gaps, the window synchronization is ensured by sliding the reassembly window and reordering the window.
The issues of window scrolling stagnation and desynchronization have been resolved, improving data transmission performance.
Smart Images

Figure CN121056931B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a communication method, apparatus and storage medium. Background Technology
[0002] In the user plane protocol of 5G mobile communication New Radio (NR) technology, the Radio Link Control (RLC) layer of the receiving device is responsible for reliably delivering the received data packets to the Packet Data Convergence Protocol (PDCP) layer, and the PDCP layer of the receiving device is responsible for delivering the received data packets to the upper layer in order.
[0003] Currently, when a data packet's transmission timeout occurs at the PDCP layer of a transmitting device, it may actively discard the set of data packets associated with that packet. This results in sequence number gaps in the data packets received by the receiving device, meaning the sequence numbers of the received data packets are not consecutive. In this situation, if the receiving device does not detect that the transmitting device has discarded data packets at the PDCP layer, it may cause problems such as the transmitting device's transmission window and the receiving device's RLC layer's reordering window becoming stuck (i.e., unable to slide forward), the receiving device's RLC layer's reordering window and the PDCP layer's reordering window becoming out of sync, or the unnecessary activation of the reordering timer, thereby affecting data transmission performance. Summary of the Invention
[0004] This application provides a communication method, apparatus, and storage medium that enables the receiving device to promptly slide and reorder windows, thereby improving data transmission performance. The technical solution is as follows:
[0005] In a first aspect, a communication method is provided. This method can be executed by a first device, or by a component (such as a circuit, chip, or chip system) configured in the first device, or by a logic module or software capable of implementing all or part of the functions of the first device. This application does not limit the scope of this method. The following description uses a first device (such as a terminal device) as an example:
[0006] The method includes: when the PDCP layer of the first device fails to transmit a data packet due to timeout, resulting in the loss of the associated PDU set, and / or when the PDCP sequence number gap report sent during RRC handover fails to transmit successfully, the first device sends a first indication message to the lower-level RLC layer to indicate the PDCP sequence number in the PDCP sequence number gap of the PDCP layer. Upon receiving the first indication message from the PDCP layer, the RLC layer of the first device sends a first PDU carrying the sequence number gap information to the RLC layer of the peer end. The first PDU is a data PDU, and the sequence number gap information is used to indicate the PDCP sequence number in the PDCP sequence number gap, as well as the difference between the RLC sequence number and the corresponding PDCP sequence number. In this way, after receiving the first PDU, the receiving end can promptly determine the sequence number gaps of the RLC layer and the PDCP layer based on the first PDU, and promptly slide the reassembly window of the RLC layer and the reordering window of the PDCP layer. This avoids problems such as window sliding stagnation, asynchronous reassembly and reordering windows, or unnecessary activation of the reordering timer due to the loss of the sequence number gap report during RRC handover, thereby improving data transmission performance.
[0007] In one possible implementation of the first aspect, the situation in which the PDU set associated with the data packet is discarded due to the data packet failing to be sent due to timeout includes the following two: if the data packet has not been acknowledged before the regular discard timer configured for the data packet expires, the remaining unsent data packets in the PDU set associated with the data packet are discarded; or, if the data packet has not been acknowledged before the low importance discard timer configured for the data packet expires, the remaining unsent data packets in the PDU set associated with the data packet are discarded.
[0008] In this way, in scenarios where the PDU set associated with a data packet is discarded due to the expiration of the regular or low-importance discard timer configured in the data packet configuration, a first indication message can be sent to the lower-level RLC layer to indicate the PDCP sequence number gap in the PDCP layer. This allows the RLC layer to construct and send a first PDU to the peer based on the first indication message. In this way, the receiving end can promptly detect the sequence number gap at the sending end based on the first PDU, thereby avoiding window stagnation or window asynchrony problems caused by the receiving end's inability to detect the sequence number gap at the sending end.
[0009] In one possible implementation of the first aspect, the first indication information is used to indicate the minimum PDCP sequence number in the PDCP sequence number gap, and the gap length of the PDCP sequence number gap. The gap length refers to the difference between the maximum and minimum PDCP sequence numbers in the PDCP sequence number gap. Thus, the PDCP sequence number gap can be indicated using the minimum PDCP sequence number and the gap length, saving information content in the first indication information.
[0010] In one possible implementation of the first aspect, the sequence number gap information in the first PDU is used to indicate the minimum PDCP sequence number in the PDCP sequence number gap, the gap length of the PDCP sequence number gap, and the difference between the minimum RLC sequence number in the RLC sequence number gap and the minimum PDCP sequence number in the PDCP sequence number gap. This saves information content in the first PDU.
[0011] In one possible implementation of the first aspect, the sequence number gap information can be carried in the header of the first PDU.
[0012] In this way, the first PDU can be implemented using the normal PDU format without affecting the data content of the PDU, that is, it can be compatible with the normal PDU.
[0013] In one possible implementation of the first aspect, the header of the first PDU includes a first field, which indicates the PDCP number in the PDCP number gap and the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap; or, the first PDU includes a second field and a first field, where the second field indicates whether the corresponding PDU carries number gap information, and if the second field indicates that the corresponding PDU carries number gap information, the first field indicates the PDCP number in the PDCP number gap and the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap. Thus, at least one field in the header of the first PDU can be used to indicate the number gap information.
[0014] In one possible implementation of the first aspect, the first field includes a sequence number (SN) field and a sequence number offset (SO) field. The SN field is used to indicate the minimum or maximum PDCP sequence number in the PDCP sequence number gap, and the SO field is used to indicate the gap length of the PDCP sequence number gap and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
[0015] In one possible implementation of the first aspect, the first byte of the SO field is used to indicate the gap length of the PDCP number gap, and the second byte of the SO field is used to indicate the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap; or, the first byte of the SO field is used to indicate the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap, and the second byte of the SO field is used to indicate the gap length of the PDCP number gap.
[0016] In one possible implementation of the first aspect, the second field includes a segmentation indicator SI field and a further segmentation indicator I field.
[0017] In one possible implementation of the first aspect, when SI field = 00 and I field = 1, the corresponding PDU is indicated to be a PDU carrying sequence number gap information.
[0018] In this way, the first PDU can be constructed using the existing fields of a normal PDU without having to define a completely new PDU format to implement the first PDU. This reduces the total number of message types that need to be defined in the protocol specification, and also reduces the complexity of code implementation.
[0019] In one possible implementation of the first aspect, the payload of the first PDU is 0. That is, the first PDU is a data PDU that does not carry data content, which ensures that the first PDU does not affect normal data transmission.
[0020] Secondly, a communication method is provided, which can be executed by a second device, or by a component configured in the second device (such as a circuit, chip, or chip system), or by a logic module or software capable of implementing all or part of the functions of the second device. This application does not limit this. The following description uses a second device (such as a reader / writer) as an example.
[0021] The method includes: the RLC layer of the second device receiving a first PDU from the first device, the first PDU being a data PDU carrying sequence number gap information, the sequence number gap information indicating the PDCP sequence number in the PDCP sequence number gap of the first device, and the difference between the RLC sequence number and the corresponding PDCP sequence number; the RLC layer sliding its reassembly window based on the PDCP sequence number in the PDCP sequence number gap and the difference; the RLC layer sending second indication information to the PDCP layer, the second indication information indicating the PDCP sequence number in the PDCP sequence number gap; and the PDCP layer sliding its reordering window based on the second indication information. Thus, after receiving the first PDU from the first device, the RLC layer of the second device can promptly detect the PDCP sequence number gap at the transmitting end based on the first PDU, and promptly slide the reassembly window and reordering window, thereby avoiding problems such as window sliding stagnation, asynchronous reassembly and reordering windows, or unnecessary startup of the reordering timer due to loss of sequence number gap reports during RRC switching, thus improving data transmission performance.
[0022] In one possible implementation of the second aspect, the RLC layer slides its recombination window based on the PDCP sequence number and the difference in the PDCP sequence number gap, including: the RLC layer determines the maximum and minimum RLC sequence number in the RLC sequence number gap based on the PDCP sequence number and the difference in the PDCP sequence number gap; the RLC layer slides its recombination window when the maximum and minimum RLC sequence numbers meet the conditions.
[0023] In one possible implementation of the second aspect, when the maximum RLC sequence number and the minimum RLC sequence number satisfy the condition, the sliding reassembly window includes: if the first state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, then the first state variable is updated to the RLC sequence number of the first unreceived data packet of the RLC layer, and the updated RLC sequence number is greater than the original RLC sequence number, so as to slide the reassembly window; wherein, the first state variable is used to characterize the RLC sequence number of the next data packet expected to be received by the RLC layer.
[0024] In one possible implementation of the second aspect, if the maximum RLC sequence number is greater than or equal to the second state variable, then the second state variable is updated to the maximum RLC sequence number plus one. The second state variable is used to represent the maximum RLC sequence number of the data packets received by the RLC layer. And / or, if the third state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, then the third state variable is updated to the RLC sequence number of the first unreceived data packet of the RLC layer, and the updated RLC sequence number is greater than the original RLC sequence number. The third state variable is used to represent the maximum RLC sequence number confirmed in the most recent state report.
[0025] In one possible implementation of the second aspect, if the first state variable is less than the minimum RLC index or greater than the maximum RLC index, then the first PDU is discarded; or, if the maximum RLC index is less than the first state variable, or the minimum RLC index is greater than or equal to the upper edge of the reassembly window, then the first PDU is discarded, and the upper edge of the reassembly window is the first state variable minus one of the window size of the reassembly window.
[0026] In one possible implementation of the second aspect, sliding the PDCP layer reordering window according to the second indication information includes: determining a first COUNT value and a second COUNT value according to the second indication information, wherein the first COUNT value is the COUNT value corresponding to the smallest PDCP sequence number indicated by the second indication information, and the second COUNT value is the COUNT value corresponding to the largest PDCP sequence number indicated by the second indication information, and the COUNT value is composed of the PDCP sequence number and the superframe number; if the fourth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value, then updating the fourth state variable to the COUNT value of the first data packet that the PDCP layer has not fully received, and the updated COUNT value is greater than the original COUNT value, so as to slide the reordering window, wherein the fourth state variable is used to represent the COUNT value of the next data packet that the PDCP layer expects to submit to the upper layer.
[0027] In one possible implementation of the second aspect, if the fourth state variable is less than or equal to the second COUNT value, and the fifth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value, then the fifth state variable is updated to the second COUNT value plus one. The fifth state variable is used to characterize the COUNT value of the next data packet expected to be received from the lower layer in the PDCP layer.
[0028] In one possible implementation of the second aspect, the second indication information is used to indicate the minimum PDCP sequence number in the PDCP sequence number gap and the gap length of the PDCP sequence number gap; determining the first COUNT value and the second COUNT value according to the second indication information includes: determining the first COUNT value according to the minimum PDCP sequence number; and determining the second COUNT value according to the first COUNT value and the gap length.
[0029] The second aspect is the implementation on the device side, which corresponds to the first aspect. The explanations, supplements, and descriptions of the beneficial effects of the first aspect also apply to the second aspect, and will not be repeated here.
[0030] Thirdly, a communication device is provided, comprising a transceiver module. The transceiver module is configured to: at the PDCP layer, in the event that the PDU set associated with a data packet is discarded due to a timeout failure to be transmitted, and / or, in the event that a PDCP sequence number gap report sent during an RRC handover fails to be transmitted successfully, send first indication information to the RLC layer, the first indication information indicating the PDCP sequence number in the PDCP sequence number gap caused by the data packet discarding at the PDCP layer; at the RLC layer, after receiving the first indication information from the PDCP layer, send a first PDU to the RLC layer of a second device, the first PDU being a data PDU carrying sequence number gap information, the sequence number gap information indicating the PDCP sequence number in the PDCP sequence number gap, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap.
[0031] Fourthly, a communication device is provided, comprising a transceiver module, the transceiver module being configured to: at the RLC layer, receive a first PDU from a first device, the first PDU being a data PDU carrying sequence number gap information, the sequence number gap information being used to indicate the PDCP sequence number in the PDCP sequence number gap of the first device, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap; slide a reassembly window of the RLC layer according to the PDCP sequence number in the PDCP sequence number gap and the difference, the reassembly window being used to indicate data packets that the RLC layer expects to receive but has not yet received; send second indication information to the PDCP layer, the second indication information being used to indicate the PDCP sequence number in the PDCP sequence number gap; at the PDCP layer, after receiving the second indication information from the PDCP layer, slide a reordering window of the PDCP layer according to the second indication information, the reordering window being used to indicate data packets that the PDCP layer expects to submit to the upper layer.
[0032] The third and fourth aspects are the implementation on the device side, which correspond to the first and second aspects. The explanations, supplements, and descriptions of the beneficial effects of the first and second aspects also apply to the third and fourth aspects, and will not be repeated here.
[0033] Fifthly, a communication device is provided, including a processor. The processor is coupled to a memory and can be used to execute instructions or data in the memory to implement the method in any possible implementation of the first aspect described above. Optionally, the communication device further includes a memory. Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.
[0034] In one implementation, the communication interface may be a transceiver, or an input / output interface.
[0035] In another implementation, the communication device is a chip configured in the first device. When the communication device is a chip configured in the first device, the communication interface can be an input / output interface.
[0036] In a sixth aspect, a communication device is provided, including a processor. The processor is coupled to a memory and can be used to execute instructions or data in the memory to implement the method in any possible implementation of the second aspect described above. Optionally, the communication device further includes a memory. Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.
[0037] In one implementation, the communication interface may be a transceiver, or an input / output interface.
[0038] In another implementation, the communication device is a chip configured in the second device. When the communication device is a chip configured in the second device, the communication interface can be an input / output interface.
[0039] In a seventh aspect, a communication device is provided, including a processor and a memory. The processor is used to read instructions stored in the memory and to receive signals via a receiver and transmit signals via a transmitter to execute the method in any possible implementation of any of the above aspects.
[0040] Optionally, the processor may be one or more, and the memory may be one or more.
[0041] Eighthly, a processor is provided, comprising: an input circuit, an output circuit, and a processing circuit. The processing circuit is configured to receive signals through the input circuit and transmit signals through the output circuit, causing the processor to execute a method in any possible implementation of any aspect.
[0042] In specific implementation, the processor can be one or more chips, the input circuit can be input pins, the output circuit can be output pins, and the processing circuit can be transistors, gate circuits, flip-flops, and various logic circuits. The input signal received by the input circuit can be received and input by, for example, but not limited to, a receiver, and the signal output by the output circuit can be, for example, but not limited to, output to and transmitted by a transmitter. Furthermore, the input circuit and the output circuit can be the same circuit, which is used as both the input circuit and the output circuit at different times. This application does not limit the specific implementation of the processor and various circuits.
[0043] Ninthly, a computer program product is provided, the computer program product comprising: a computer program (also referred to as code or instructions) that, when the computer program is run, causes a computer to perform a method in any possible implementation of any of the above aspects.
[0044] In a tenth aspect, a computer-readable storage medium is provided that stores a computer program (also referred to as code or instructions) that, when run on a computer, causes the computer to perform the methods in any possible implementation of any of the preceding aspects.
[0045] Eleventhly, embodiments of this application provide a chip system including one or more processors for calling and executing instructions stored in memory, causing the methods in any of the above aspects or possible implementations to be executed. The chip system may be composed of chips or may include chips and other discrete devices.
[0046] The chip system may include input circuits or interfaces for transmitting information or data, and output circuits or interfaces for receiving information or data.
[0047] In a twelfth aspect, a communication system is provided, including the aforementioned first and second devices. Optionally, the communication system may further include other devices for communicating with terminal devices and / or network devices. Attached Figure Description
[0048] Figure 1 This diagram illustrates the transmission of data at each layer of the protocol stack.
[0049] Figure 2 This paper illustrates the data packet processing flow of each protocol layer on the user plane of the transmitting side;
[0050] Figure 3 A schematic diagram of the sending window, the reassembly window, and the reordering window is shown;
[0051] Figure 4 A schematic diagram of a serial number notch is shown;
[0052] Figure 5 A schematic diagram showing the sliding stop of the transmit window of the transmitter RLC layer and the reassembly window of the receiver RLC layer is shown;
[0053] Figure 6 This diagram illustrates a situation where the reassembly window of the RLC layer at the receiver is out of sync with the reordering window of the PDCP layer.
[0054] Figure 7 A schematic diagram illustrating the handling of sequence number gaps by the UE, source base station, and target base station in an RRC handover scenario is shown.
[0055] Figure 8 A schematic diagram of the format of a first PDU carrying serial number gap information is shown;
[0056] Figure 9 A schematic diagram of a communication method provided in an embodiment of this application is shown;
[0057] Figure 10 A schematic diagram of the sequence number gap processing flow of the transmitting end is shown;
[0058] Figure 11 A schematic diagram of data transmission with a gap generated at the transmitting end in a data transmission scenario between the UE and the source base station is shown.
[0059] Figure 12 A schematic diagram of data transmission at the source base station is shown in a data transmission scenario between the UE and the source base station.
[0060] Figure 13 This diagram illustrates a data transmission method for gap handling in a UE during an RRC handover scenario.
[0061] Figure 14 A schematic diagram of the sequence number gap processing flow of the RLC layer at the receiving end is shown;
[0062] Figure 15 This diagram illustrates a data transmission scenario in which the target base station handles gaps during data transmission between a UE and a target base station.
[0063] Figure 16 A schematic diagram of the sequence number gap processing flow of the PDCP layer at the receiving end is shown;
[0064] Figure 17 A schematic block diagram of a communication device provided in an embodiment of this application is shown;
[0065] Figure 18 A schematic block diagram of another communication device provided in an embodiment of this application is shown. Detailed Implementation
[0066] The technical solutions of this application embodiment can be applied to various communication systems, such as: Global System of Mobile communication (GSM) system, Code Division Multiple Access (CDMA) system, Wideband Code Division Multiple Access (WCDMA) system, General Packet Radio Service (GPRS), Long Term Evolution (LTE) system, LTE Frequency Division Duplex (FDD) system, LTE Time Division Duplex (TDD) system, Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication system, future 5th Generation (5G) system, or New Radio (NR), etc.
[0067] In this application, the terminal device can refer to user equipment (UE), station, access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent, or user device. The terminal device can also be a cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), handheld device with wireless communication capabilities, computing device or other processing device connected to a wireless modem, large screen, in-vehicle device, wearable device, terminal device in a 5G network, or terminal device in a future public land mobile network (PLMN), etc. This application does not limit the scope of the terminal device.
[0068] The network device in this application embodiment can be a device used for communication of terminal devices. For example, the network device is a radio access network (RAN) node (or device) that connects the terminal device to the wireless network, and can also be called a base station. For example, the network device can be an evolved NodeB (eNodeB), a transmission reception point (TRP), a next-generation NodeB (gNB) in a 5G mobile communication system, a base station in a future mobile communication system, or an access point (AP) in a WiFi system, a radio controller, relay station, access point, vehicle-mounted equipment, wearable device, or other network devices in future evolved communication systems, etc., in a cloud radio access network (CRAN) scenario.
[0069] In this embodiment, the terminal device or network device includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on top of the operating system layer. The hardware layer includes hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also called main memory). The operating system can be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer includes applications such as browsers, address books, word processing software, and instant messaging software. Furthermore, this embodiment does not specifically limit the structure of the execution entity of the method provided in this embodiment, as long as it can communicate according to the method provided in this embodiment by running a program that records the code of the method provided in this embodiment.
[0070] Furthermore, various aspects or features of this application can be implemented as methods, apparatus, or articles of manufacture using standard programming and / or engineering techniques. The term "article of manufacture" as used herein encompasses a computer program accessible from any computer-readable device, carrier, or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, or magnetic tapes), optical discs (e.g., compact discs (CDs), digital versatile discs (DVDs), etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memory (EPROMs), cards, sticks, or key drives, etc.). Additionally, the various storage media described herein may represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing, and / or carrying instructions and / or data.
[0071] To facilitate understanding of the embodiments of this application, the relevant concepts involved in this application will first be explained.
[0072] 1. Protocol Layer Structure
[0073] Interoperable network devices and terminal devices have a specific protocol layer structure. For example, the control plane protocol layer structure, from top to bottom, can include the functions of protocol layers such as Radio Resource Control (RRC), Packet Data Convergence Protocol (PDCP), Radio Link Control (RLC), Media Access Control (MAC), and Physical (PHY). The user plane protocol layer structure, from top to bottom, can include the functions of protocol layers such as PDCP, RLC, MAC, and Physical. The Physical layer is located at the lowest layer (Layer 1), the MAC, RLC, and PDCP belong to the second layer (Layer 2), and RRC belongs to the third layer (Layer 3). In one implementation, a Service Data Adaptation Protocol (SDAP) layer may also be included above the PDCP layer.
[0074] The functions of these protocol layers can be implemented by a single node or by multiple nodes. For example, in one evolutionary architecture, a radio access network device may include a centralized unit (CU) and a distributed unit (DU), with multiple DUs being centrally controlled by a single CU. CUs and DUs can be distinguished according to the protocol layers of the wireless network; for example, the functions of PDCP and higher protocol layers are located in the CU, while the functions of lower protocol layers, such as RLC and MAC layers, are located in the DU.
[0075] It should be understood that this protocol layer division is merely an example. It can also be applied to other protocol layers, such as the RLC layer, where the functions of the RLC layer and above are placed in the CU, and the functions of the protocol layers below the RLC layer are placed in the DU. Alternatively, it can be divided within a specific protocol layer, for example, placing some functions of the RLC layer and the functions of the protocol layers above the RLC layer in the CU, and placing the remaining functions of the RLC layer and the functions of the protocol layers below the RLC layer in the DU. Furthermore, it can be divided in other ways, such as by latency, placing functions whose processing time needs to meet latency requirements in the DU, and functions that do not need to meet this latency requirement in the CU.
[0076] When network devices and terminal devices transmit data, taking upstream data transmission as an example, such as... Figure 1 As shown, Figure 1This diagram illustrates the data transmission process across the protocol stack layers. Data first reaches the PDCP layer of the terminal device, where it is processed before being transmitted to the RLC and MAC layers. After further processing at the MAC layer, it is sent to the network device via the physical layer. When the network device receives data, it sequentially passes through the physical layer, MAC layer, RLC layer, and PDCP layer. Data in each radio bearer requires processing at each layer. Each layer has corresponding functional entities to perform its respective function; for example, the PDCP layer corresponds to a PDCP entity, the RLC layer to an RLC entity, and the MAC layer to a MAC entity. Each radio bearer contains one PDCP entity and one or more RLC entities, each RLC entity corresponding to a logical channel. One MAC entity corresponds to multiple logical channels, and data within these logical channels can be multiplexed at the MAC layer, for example, multiplexed into the same data block, before finally being transmitted through the physical layer. The transmission process for downlink data is similar.
[0077] 2. Data packet
[0078] The user plane (UP) protocol stack of the 5th generation (5G) system includes, from top to bottom, the SDAP layer, PDCP layer, RLC layer, MAC layer, and PHY layer.
[0079] Figure 2 This illustrates the data packet processing flow of each protocol layer in the user plane on the transmitting side. See also... Figure 2 On the transmitting side, data packets first reach the SDAP layer. The SDAP layer, based on the Quality of Service (QoS) flow to Data Radio Bearer (DRB) mapping rules, delivers the data packets to the corresponding PDCP entity for each DRB (each DRB corresponds to one PDCP entity). The PDCP layer performs compression and encryption operations on the data packets before delivering them to the RLC layer. The RLC layer processes the data packets, whether segmented or not, before delivering them to the MAC layer. The MAC layer assembles one or more data packets into a MAC Protocol Data Unit (PDU) and delivers it to the PHY layer.
[0080] The data packets received by the SDAP layer are Internet Protocol (IP) packets, which are called SDAP Service Data Units (SDUs) at the SDAP layer. After processing these SDUs by adding headers and other steps to obtain SDAP Protocol Data Units (PDUs), the SDAP layer delivers the SDAP PDU to the PDCP entity. In other words, the data packets delivered by the SDAP layer to the PDCP entity are SDAP PDUs.
[0081] In the DPCP layer, the SDAP PDU is referred to as a PDCP SDU. After the PDCP layer performs processing such as adding a header to the PDCP SDU to obtain the PDCP PDU, it delivers the PDCP PDU to the RLC layer. That is, the data packet delivered by the PDCP layer to the RLC layer is a PDCP PDU.
[0082] In the RLC layer, the PDCP PDU is referred to as an RLC SDU. The RLC layer may or may not segment the RLC SDU. When the RLC SDU is segmented, each segment is called an RLC SDU segment. After obtaining the RLC PDU by adding headers and other related processing to the RLC SDU segments or RLC SDUs, the RLC PDU is delivered to the MAC layer. That is, the data packet delivered by the RLC layer to the MAC layer is an RLC PDU.
[0083] In the MAC layer, the RLC PDU is referred to as a MAC SDU. The MAC layer performs various processing on the MAC SDU, such as adding a MAC header, to obtain a MAC subPDU. One or more MAC subPDUs are then combined to form a MAC PDU, which is then delivered to the PHY layer. In other words, the data packets delivered by the MAC layer to the PHY layer are MAC PDUs.
[0084] The PHY layer modulates and encodes the MAC PDU to generate a transport block (TB), which is then sent out through air interface resources.
[0085] In this embodiment, improvements are mainly made to the data transmission operations of the PDCP layer and the RLC layer. For ease of understanding, the main functions of the PDCP layer and the RLC layer will be described in detail below.
[0086] 3. The sequence number (SN) of the data packet.
[0087] SN is a unique identifier assigned to each data packet, used to track the order in which data packets are sent and received. It can also be called a sequence number.
[0088] The serial number (SN) of RLC layer packets is called the RLC SN, and the serial number (SN) of PDCP layer packets is called the PDCP SN. The RLC SN and PDCP SN belong to different layers of the protocol stack, and their objects and counting logic are completely independent. They may only coincidentally have the same value in specific scenarios, but they are not related in essence.
[0089] PDCP SNs belong to the PDCP layer and operate on PDCP PDUs. One PDCP SN uniquely corresponds to one PDCP PDU. RLC SNs belong to the RLC layer and operate on RLC PDUs; one RLC SN corresponds to one RLC PDU.
[0090] 4. RLC layer
[0091] The RLC layer, located above the MAC layer and below the PDCP layer, provides services such as segmentation and retransmission for user and control data. Its core task is to ensure that each data packet is reliably and sequentially delivered to the upper layer (PDCP layer) on a single link. This is achieved through the Automatic Repeat Request (ARQ) mechanism.
[0092] The RLC layer includes acknowledged mode (AM) as its transmission mode. Acknowledged RLC (AMRLC) introduces an ACK / NACK mechanism, requiring the receiver to ACK or NACK the received data. The sender can then retransmit unacknowledged data packets based on the received ACK / NACK information. AM RLC ensures reliable data transmission to peer entities and corrects potential errors during transmission through retransmission, providing reliable data transmission guarantees. This application embodiment primarily uses AM RLC as an example for illustration.
[0093] An RLC entity is a specific functional instance of the RLC layer. In this embodiment, the main focus is on the transmission operation of the RLC entity at the sending end and the reception operation of the RLC entity at the receiving end.
[0094] 4.1 RLC Entity of the Sending End
[0095] The sending RLC entity can receive RLC SDUs from the upper layer and send RLC PDUs to its peer RLC entity through the lower layer. The sending RLC entity can also retransmit packets that have not been acknowledged.
[0096] 1) Send Window
[0097] To prevent buffer overflow at the receiver and to implement flow control, in AM mode, the RLC entity at the transmitter maintains a transmission window and uses a sliding window protocol.
[0098] The sending window is a logical buffer within an RLC entity used to indicate the range of RLC sequence numbers for data packets (RLC PDUs) that have not yet been acknowledged. The sender can only send data within the sending window; after receiving an acknowledgment, the sending window slides forward. In other words, the sending window manages the data transmission range of the sender's RLC entity.
[0099] The lower edge of the sending window (TX_Next_Ack) is the smallest RLC sequence number (SN) of the data packet that has been sent but not yet acknowledged. The upper edge of the sending window is: lower edge + window size (Window_Size) - 1. The window size can be set according to the bit length of the RLC SN field, or it can be set in other ways. The status variable TX_Next is used to represent the RLC SN of the next data packet expected to be sent, and is usually the upper edge of the sending window + 1.
[0100] Figure 3 A schematic diagram of the sending window, the reassembly window, and the reordering window is shown. Figure 3 Figure (a) in the diagram is a schematic diagram of the sending window, as shown below. Figure 3 As shown in Figure (a), the lower edge (TX_Next_Ack) of the sending window is SN=1, the upper edge is SN=8, the window size (Window_Size) is 8, and TX_Next is SN=9. That is, the minimum SN of the currently sent and unacknowledged RLC SDU is 1, and the expected SN of the next RLC SDU to be sent is 9. Subsequently, if a positive acknowledgment (ACK) is received for an RLC SDU with SN=2, the sending window can slide forward, such as updating the lower edge of the sending window to SN=2 and the upper edge to SN=9.
[0101] 2) RLC PDU
[0102] A PDU is the basic unit used for data exchange in a communication protocol. A PDU at the RLC layer is called an RLC PDU.
[0103] In AM RLC, RLC PDUs can include two types: RLC data PDUs and RLC control PDUs. RLC data PDUs include Acknowledgment Mode Data (AMD) PDUs, and RLC control PDUs include Status Report (STATUS) PDUs.
[0104] An AMD PDU is a data PDU used by the RLC layer under AM for data transmission. An AMD PDU consists of a data field and an AMD PDU header. The data field carries the data content of the upper-layer PDU (i.e., RLC SDU), while the AMD PDU header contains multiple fields required for controlling and managing data transmission.
[0105] A STATUS PDU is a control PDU used by the RLC layer under AM (Advanced Modem) to notify the sender of received data PDUs and to acknowledge lost data PDUs. A STATUS PDU consists of a data field and an RLC control header.
[0106] 3) Discard timer (t-Discard)
[0107] After the sending RLC entity delivers the data packet (AMD PDU) to the lower layer for the first time (i.e., the first transmission), it can start a discard timer. If the discard timer expires without receiving a positive acknowledgment from the peer, the data packet is discarded and will not be retransmitted.
[0108] 4.2 RLC Entity at the Receiver
[0109] The core objective of the receiving end's RLC entity is to reassemble potentially segmented or out-of-order RLC PDUs into complete RLC SDUs and deliver them to the upper layer (PDCP layer).
[0110] 1) Reorganization window
[0111] The receiving RLC entity maintains a receive window, also known as a reassembly window. The reassembly window indicates the sequence number range of data packets (RLC PDUs) expected to be received but not yet received. In other words, the reassembly window manages the data reception range of the RLC layer. After receiving an expected data packet, the reassembly window slides forward.
[0112] The lower edge of the reassembly window (RX_Next) marks the start of the reassembly window and represents the sequence number of the next expected received data packet (RLC PDU). The reassembly window size defines the maximum range of sequence numbers that can be received starting from RX_Next. The upper edge of the reassembly window is: lower edge + window size - 1.
[0113] The workflow of the receiving RLC entity includes: When an RLC PDU is received, it first determines whether its SN (Signal Serial Number) is within the reassembly window. If the RLC PDU's SN falls outside the reassembly window (e.g., the SN is too small, indicating it's already acknowledged old data; or the SN is too large, exceeding the current reception range), the PDU is discarded. If the RLC PDU's SN falls within the reassembly window and is the expected next data packet (SN=RX_Next), it is delivered to the PDCP layer, and the reassembly window is slid. If the PDU's SN falls within the reassembly window but is not the expected next data packet (SN>RX_Next), it indicates an out-of-order packet. It can be stored in the reassembly buffer, and a status report is sent to the peer (the receiving RLC entity) to clearly indicate which packets are missing, actively requesting retransmission.
[0114] Please refer to Figure 3 In Figure (b), the lower edge (RX_Next) of the reassembly window is SN=1, the upper edge is SN=8, the window size (Window_Size) is 8, and TX_Next is SN=9. That is, the next RLC SDU expected to be received has SN=1, allowing the reception of RLC SDUs with SNs 1 to 8. Subsequently, if the received RLC SDU has SN=1, it is delivered to the upper layer, and the reassembly window is slid forward, i.e., the lower edge of the reassembly window is updated to SN=2, and the upper edge is updated to SN=9. If the received RLC SDU has SN=2, it is first stored in the reassembly buffer, and a status report is sent back to the peer to indicate that the RLC SDU with SN=1 was lost, actively requesting a retransmission.
[0115] 2) Reassembly timer (t-Reassembly)
[0116] The receiving RLC entity is configured with t-Reassembly. t-Reassembly is initiated when an incompletely reassembled RLCSDU exists to ensure that data delivery is not blocked due to indefinite waiting.
[0117] At the transmitting end, the RLC entity may split an RLC SDU into multiple RLC PDUs for transmission if its length exceeds the transport block size (TB) of the underlying MAC layer. The receiving end's RLC entity must collect all segments of the same SDU and assemble them into a complete SDU before delivering it to the PDCP layer. If a segment of the same SDU is lost (e.g., due to radio channel errors causing incorrect decoding by the MAC layer), the receiving end will initiate t-Reassembly, waiting for the missing segment. If it is not received after a timeout, it is determined that the missing segment has been lost, and subsequent processing is triggered, such as delivering a complete SDU, to avoid the receiving end waiting indefinitely for the missing segment.
[0118] In addition, in the event of a t-Reassembly timeout, a status report (such as sending a STATUS PDU) will be triggered. This status report is used to notify the sending RLC entity of the SN of received and unacknowledged data packets, so that the sending RLC entity can slide the sending window.
[0119] 3) RLC serial number gap
[0120] An RLC sequence gap refers to a discontinuity in the RLC sequence numbers (SNs) within the RLC layer. In other words, the receiver's RLC entity detects a missing SN within a sequence. The receiver's RLC entity can sort the received RLC PDUs by RLC sequence number. If a discontinuity in RLC sequence numbers is detected, it is considered an RLC sequence gap.
[0121] For example, the sending RLC entity sends RLC PDUs with sequence numbers n, n+1, and n+2 in sequence, but the receiving end only correctly receives RLC PDUs with sequence numbers n and n+2, missing the RLC PDU with sequence number n+1. This results in an RLC sequence number gap. Figure 4 A schematic diagram of a serial number notch is shown, such as... Figure 4 As shown, assuming Figure 4 The sequence number gap is the RLC sequence number gap. The RLC entity at the transmitting end sends RLC PDUs with RLC SNs from 0 to 6 in sequence, but the receiving end only correctly receives RLC PDUs with RLC SNs of 0, 1, 2, 5 and 6, missing RLC PDUs with sequence numbers 3 and 4. At this time, the RLC sequence number gap occurs, and the RLC SNs in the RLC sequence number gap are 3 and 4 respectively.
[0122] Additionally, in AM RLC, the RLC entity at the receiving end can initiate t-Reassembly if it detects an RLC sequence number gap. If the lost PDU is not received before the t-Reassembly timeout, a retransmission will be requested.
[0123] 4) Relevant state variables of the RLC entity at the receiving end
[0124] RX_Next: The SN (RLC SN) of the next expected (to be) received data packet (RLC PDU). This is the lower edge of the reassembly window.
[0125] RX_Next_Highes: The maximum sequence number (SN) of received packets incremented by 1. Indicates the furthest progress of current reception. Can be used to detect packet loss after RX_Next.
[0126] RX_DELIV: The serial number (SN) of the next data packet expected to be delivered to the upper layer (PDCP layer). It indicates the latest progress of completed delivery and serves as a report log pointer. It can record the acknowledgment point of the last status report, preventing duplicate reports and optimizing signaling.
[0127] RX_Next_Status: The value of the largest SN of received packets reported to the peer RLC entity (the sending RLC entity) plus 1.
[0128] In this embodiment of the application, the aforementioned state variables together constitute the basis for the RLC entity intelligent management data reception and retransmission request of the receiving end.
[0129] 5. PDCP layer
[0130] The PDCP layer sits above the RLC layer and primarily provides services such as encryption, integrity protection, and cross-link ordering guarantees.
[0131] A PDCP entity is a specific functional instance of the PDCP layer. The following sections will describe the sending operation of the PDCP entity at the sending end and the receiving operation of the PDCP entity at the receiving end.
[0132] 5.1 PDCP Entity at the Sending End
[0133] After receiving a data packet (PDCP SDU) from the upper layer (SDAP layer for user plane, RRC layer for control plane), the PDCP entity at the sending end can assign a unique serial number (SN) to this data packet, which is sequentially incremented. Then, the data packet is compressed, encrypted, and other processed before being delivered to the RLC layer.
[0134] 1) Discard timer
[0135] The PDCP layer can be configured with two types of discard timers: a regular discard timer and a discard timer for low importance. Both timers essentially discard untransmitted data packets (PDCP SDUs) after a timeout, aiming to prevent increased transmission delays or resource waste due to excessively long waiting times. The core difference lies in the applicable service priority.
[0136] The standard drop timer is suitable for all default priority services, especially those that are latency-sensitive and require guaranteed transmission. The low-importance drop timer is an optional drop timer specifically designed for certain types of low-importance services. The two timers differ in duration.
[0137] Each packet (PDCP SDU) in the PDCP layer corresponds to a drop timer (such as a regular drop timer or a low-importance drop timer). When the PDCP layer receives a packet from a higher layer, it can decide which drop timer to activate for that packet. After a drop timer is activated, if the packet has not been acknowledged before the corresponding drop timer expires, the PDCP layer will drop the packet. In some cases, the entire PDU set associated with the packet may be dropped, meaning the remaining unsent packets (RLC SDUs) in the PDU set associated with the packet may be discarded.
[0138] For example, the PDCP layer decision rules include: when a packet (PDCP SDU) arrives at the PDCP entity from the upper layer, the PDCP entity checks its current configuration to determine which drop timer to start for this newly arrived packet. If the corresponding DRB is configured with a low importance drop timer and the corresponding DRB is marked as "low importance", then the low importance drop timer is started for the packet. Otherwise, the drop timer is started for the packet.
[0139] 2) PDU set
[0140] A PDU set refers to a collection of one or more PDUs that carry a payload, such as a frame or video slice, generated at the application level. In other words, all the PDUs in a PDU set correspond to a single frame or video slice, or other payload, at the application layer.
[0141] 5.2 PDCP Entity at the Receiver
[0142] After receiving a data packet (RLC PDU) from the lower RLC layer, the PDCP entity at the receiving end first performs decryption and integrity checks. Then, it can reorder the data packets according to their sequence numbers and deliver them to the upper layer in order.
[0143] The core task of the PDCP entity at the receiving end is to handle high-level out-of-order packets, reordering data submitted from the RLC layer. This is achieved through a mechanism of timed waiting and timeout skipping. In other words, the PDCP receiving entity does not actively request retransmissions. Upon receiving out-of-order packets, it starts a reordering timer to wait. After a period of waiting, lost packets are skipped to avoid blocking.
[0144] 1) COUNT value
[0145] The COUNT value is a unique identifier for a PDCP layer packet (PDCP PDU), composed of the Hyper Frame Number (HFN) and the PDCP SN, i.e., COUNT = [HFN, SN]. For example, COUNT = HFN × 2 n +SN, where n is the bit length of PDCP SN, such as 12 bits or 18 bits.
[0146] HFN is a key parameter in wireless communication protocols used for data encryption and time synchronization. It's a component of the PDCP layer's counter and, together with the PDCP SN, forms the complete COUNT value, used to resolve the PDCP SN circular overflow problem. When a user equipment (UE) establishes a radio resource control (RRC) connection with a base station, the PDCP layer initializes HFN for each radio bearer, typically with an initial value of 0. Subsequently, HFN increments based on PDCP SN overflow. When the PDCP SN reaches its maximum value (e.g., the maximum value for a 12-bit SN is 4095) and overflows (i.e., the SN returns to zero from its maximum value), HFN automatically increments by 1.
[0147] 2) Reorder windows
[0148] The PDCP entity at the receiving end maintains a receive window, also known as a reordering window. The reordering window indicates the range of data packets (PDCP SDUs) expected to be delivered to the upper layer. In other words, the reordering window manages the data delivery range of the PDCP layer to ensure orderly delivery.
[0149] The lower edge of the reordering window (RX_DELIV) marks the starting point of the reordering window and represents the COUNT value of the next data packet (PDCP SDU) expected to be delivered to the upper layer. This is typically the maximum COUNT value of delivered data packets plus 1. The upper edge of the reordering window is RX_DELIV + window size - 1. The window size can be configured based on the PDCP SN length or other parameters. The state variable RX_NEXT represents the COUNT value of the next data packet expected to be received, typically the upper edge of the reordering window plus 1.
[0150] When the PDCP entity at the receiving end successfully delivers the PDU with COUNT = RX_DELIV to the upper layer, it will perform the following operations: update RX_DELIV to "the maximum COUNT value of delivered packets + 1"; the lower edge of the reordering window moves forward with RX_DELIV, and the window slides to the right as a whole.
[0151] Please refer to Figure 3 In Figure (c), the lower edge (RX_DELIV) of the reordering window is COUNT=1, the upper edge is COUNT=8, the window size (Window_Size) is 8, and TX_Next is COUNT=9. That is, the current expected next PDCP SDU to be delivered to the upper layer has COUNT=1, and the expected next PDCP SDU to be received has COUNT=9. Subsequently, if a PDCP SDU with COUNT=1 is delivered upwards, the reordering window is slid forward, i.e., the lower edge of the reordering window is updated to COUNT=2, and the upper edge is updated to COUNT=9.
[0152] 3) PDCP serial number gap
[0153] A PDCP sequence number gap refers to a discontinuity in the PDCP sequence number (SN) within the PDCP layer. In other words, the receiving PDCP entity detects a missing consecutive PDCP SN. The receiving PDCP entity can sort received PDCP PDUs by PDCP SN; if a discontinuity in the PDCP SN is detected, a PDCP sequence number gap is considered to have occurred.
[0154] For example, if the receiving PDCP entity receives PDCP PDUs with PDCP SNs of n, n+1, n+3, and n+4, then it is considered that a PDCP sequence number gap has occurred, i.e., PDCP SN=n+2 is missing. Please refer to [reference needed]. Figure 4 Assuming Figure 4 The sequence number gap is the PDCP sequence number gap. The receiver receives PDCP PDUs with PDCP SNs of 0, 1, 2, 5 and 6, but is missing PDCP PDUs with PDCP SNs of 3 and 4. At this time, a PDCP sequence number gap occurs, and the PDCP SNs in the PDCP sequence number gap are 3 and 4 respectively.
[0155] In this embodiment, the PDCP SN and RLC SN are independent of each other. However, the notch lengths of the PDCP notch and the RLC notch are usually the same. Moreover, the difference between the PDCP SN in the PDCP notch and the corresponding RLC SN in the RLC notch is the same.
[0156] 4) Reordering timer (t-Reordering)
[0157] t-Reordering is a timer configured by the PDCP layer for the reordering window. When there is a PDCP sequence number gap within the reordering window, t-Reordering is initiated to detect packet loss. If the data packet corresponding to the missing PDCP SN (or COUNT value) within the window is not received after t-Reordering times out, the PDCP entity at the receiving end determines that the data packet has been lost. At this time, the missing data packet is skipped, and the continuously received data packets within the window are delivered in order. The lower edge of the reordering window is updated, allowing the reordering window to slide forward and avoiding the blocking of the overall transmission due to local packet loss.
[0158] 5) State variables related to the PDCP entity at the receiving end
[0159] RX_DELIV: The COUNT value of the next packet expected to be delivered to the upper layer, or in other words, the COUNT value of the next packet expected to be delivered.
[0160] RX_NEXT: The COUNT value of the next expected data packet to be received.
[0161] These two variables are core parameters in the receiver's PDCP entity, specifically used to manage the reordering and delivery processes to higher layers. They define the reordering window and control its sliding. When packets arrive in order, these two values are consistent; however, they separate when out-of-order packets occur.
[0162] Next, we will provide an exemplary description of the application scenarios that may be involved in the embodiments of this application.
[0163] Extended Reality (XR) integrates multiple technologies such as Virtual Reality (VR) and Augmented Reality (AR). By utilizing computer graphics, perception technology, and human-computer interaction technology, XR merges virtual information with real-world scenes, enabling users to interact with the virtual world in real time through specific devices, thus providing a rich user experience. Application scenarios for XR services include, but are not limited to, gaming and entertainment, live video streaming, smart manufacturing, education and training, and healthcare. XR service data packets primarily consist of video / images and interactive commands, requiring networks with high throughput, low latency, and high reliability.
[0164] PDU sets play a crucial role in XR data transmission. All PDUs in a PDU set correspond to a single frame or video slice in the application layer's payload. Depending on the video frame's encoding and transmission method, if a packet in a PDU set is dropped, other packets in the set become useless, making the entire PDU set undecoded. This results in a poor user experience, and further wastes resources if these useless packets continue to be transmitted over the air interface. Therefore, the PDCP layer can discard the PDU set associated with a given PDU when its discard timer expires. Discarding the associated PDU set means discarding any unsuccessfully transmitted packets (RLCSDUs) within that set. A single PDU set discard can involve dropping anywhere from several Mbits to hundreds of Mbits of data.
[0165] However, the loss of one packet in a PDU set leading to the loss of the entire associated PDU set can have serious consequences. For example, if the receiver is unaware that the sender dropped a packet at the PDCP layer, it may cause problems such as the sending window of the sender's RLC layer and the reassembly window of the receiver's RLC layer to stagnate, the reassembly window of the sender's RLC layer and the reordering window of the PDCP layer to become out of sync, or the unnecessary activation of the reordering timer when the PDCP sequence number gap report is lost during RRC switching.
[0166] Next, we will illustrate the impact of the PDU set being discarded due to the timeout of the discard timer corresponding to the data packet.
[0167] Scenario 1: In non-RRC handover scenarios, if no new data packets arrive after the sender discards the PDU set, and the receiver is unaware that the sender has discarded data packets, it may cause problems such as the sending window of the sender's RLC layer and the reassembly window of the receiver's RLC layer becoming stuck, or the reassembly window of the sender's RLC layer and the reordering window of the PDCP layer becoming out of sync.
[0168] Please refer to Figure 5 , Figure 5 This diagram illustrates a situation where the transmit window of the transmitter's RLC layer and the reassembly window of the receiver's RLC layer are stuck in a sliding motion. It is assumed that PDU set 1 includes RLC SDUs with SNs of 0 to 7.
[0169] like Figure 5As shown in Figure (a), the RLC SDU with SN=0 (or possibly a segment of the RLC SDU) sent by the sending RLC entity is successfully received by the receiving RLC entity. The RLC SDU with SN=1 in PDU set 1 times out, causing PDU set 1 to be discarded, that is, the RLC SDUs with SN=1~7 in PDU set 1 are discarded. Subsequently, no new data arrives at the sending RLC entity, that is, the sending RLC entity does not send any new data.
[0170] like Figure 5 As shown in Figure (b), although the RLC entity at the receiving end receives the RLC SDU with SN=0, it cannot push the reassembly window forward because it cannot receive new data. Simultaneously, due to the lack of new data, it cannot detect sequence number gaps, and therefore cannot start the reassembly timer (t-Reassembly) based on the detected sequence number gaps, nor can it trigger a status report and send a status report back to the sending end when the reassembly timer times out. In this situation, the sending end cannot receive the status report from the sending end, and therefore cannot push the transmission window forward based on the status report. This results in a stagnation in the sliding of the transmission window of the RLC layer and the reassembly window of the receiving end's RLC layer.
[0171] Depend on Figure 5 As shown in Figures (a) and (b), the stall in the sending window and reassembly window push occurs because the sender cannot predict whether new data packets will arrive at the sender's RLC entity quickly. If new data packets arrive at the sender's RLC entity quickly, Figure 5 The phenomenon of stalling during the sending and reassembly of the window will not occur.
[0172] To address the stalled push of the transmission and reassembly windows, relevant organizations have proposed a control plane solution. This involves the sending RLC entity at the transmitting end sending a control plane indication signaling (i.e., a control PDU) to the receiving end, indicating the sequence number of the data packets (RLC SDUs) dropped by the sending end. However, while this indication signaling can resolve the stalled push of the RLC layer's transmission and reassembly windows caused by sequence number gaps at the PDCP layer, it may potentially cause a desynchronization between the receiving end's RLC layer reassembly window and the PDCP layer's reordering window.
[0173] Please refer to Figure 6 , Figure 6 A schematic diagram is shown where the reassembly window of the RLC layer at the receiver is out of sync with the reordering window of the PDCP layer.
[0174] like Figure 6As shown in Figure (a), the RLC SDU with SN=0 (which may also be a segment of an RLCSDU) sent by the RLC entity at the transmitting end is successfully received by the RLC entity at the receiving end. The RLC SDU with SN=1 in PDU set 1 times out, causing PDU set 1 to be discarded; that is, the RLC SDUs with SNs=1 to 7 in PDU set 1 are discarded. Based on the solutions proposed by relevant organizations, to avoid stagnation in the RLC layer's transmission and reassembly window push, the RLC transmitting entity can send control plane indication signaling to the RLC entity at the receiving end. This indication signaling is used to instruct the RLC SDUs with SNs=1 to 7 in PDU set 1 to be discarded.
[0175] like Figure 6 As shown in Figure (b), after the receiving RLC entity receives the indication signaling from the transmitting RLC entity, the reassembly window will slide forward 7 units, that is, the lower edge of the reassembly window will be updated to RX_Next = 8. If the transmitting RLC entity subsequently sends another RLC SDU with SN=8, as shown in Figure (b), the reassembly window will slide forward 7 units, that is, the lower edge of the reassembly window will be updated to RX_Next = 8. Figure 6 As shown in Figure (c), after the RLC entity at the receiving end receives this RLC SDU, the RLC reassembly window can slide forward one more unit, that is, the lower edge of the sliding window is updated to RX_Next = 9.
[0176] However, as Figure 6 As shown in Figure (d), because the reordering window of the PDCP layer and the reassembly window of the RLC layer lack a synchronization mechanism, the lower edge of the reordering window of the PDCP layer at the receiving end remains at RX_DELV = 1 and does not slide forward. This leads to the problem of the reassembly window of the RLC layer and the reordering window of the PDCP layer being out of sync.
[0177] From the above Figure 6 As the example shows, the indication signaling issued by the RLC layer at the sending end is closely related to the protocol layer of that indication signaling. It can only solve problems at its own layer (i.e., the RLC layer), and cannot solve problems that occur simultaneously at other layers (i.e., the PDCP layer). In other words, for the problems existing in Scenario 1, the solutions proposed by relevant organizations can only solve the problem of the reassembly window sliding stopping at the RLC layer, but cannot solve the problem of the reordering window sliding stalling at the PDCP layer.
[0178] Scenario 2: During RRC handover, the failure to transmit the PDCP sequence number gap report causes the receiver's reordering timer to start unnecessarily, resulting in unnecessary waiting time and affecting transmission efficiency.
[0179] Taking the scenario of data transmission between UE and base station as an example, during the data transmission process between UE and source base station, RRC handover will be performed in some cases (such as UE movement or source base station resource shortage), that is, switching from source base station to target base station while maintaining service continuity.
[0180] During RRC handover, if PDCP layer data packets are dropped, a PDCP sequence number gap report can be triggered and sent to the source base station. This PDCP sequence number gap report indicates which PDCP PDUs were lost, such as indicating the PDCP sequence number of the lost PDCP PDUs. The PDCP sequence number gap report is typically included in the PDCP status report and is transmitted via the control plane, i.e., via the control PDU.
[0181] However, if the PDCP sequence number gap report fails to transmit successfully (i.e., the source base station fails to receive the PDCP sequence number gap report from the UE), the UE's RLC layer will restart during RRC handover. Therefore, the source base station will no longer be able to receive the PDCP sequence number gap report. After successful RRC handover, the source base station will also be unable to synchronize the PDCP sequence number gap report to the target base station, resulting in the loss of the PDCP sequence number gap report due to RRC handover. This will cause the target base station to be unable to detect the loss of PDCP layer data packets after the UE hands over. Consequently, when it receives a PDCP PDU with discontinuous PDCP sequence numbers, it will determine that a PDCP sequence number gap has been detected and start a reordering timer. Only after the reordering timer expires can it determine that the data packet corresponding to the PDCP sequence number gap is lost, and then deliver the received PDCP PDU to the upper layer. This leads to the unnecessary starting of the reordering timer, resulting in unnecessary waiting time and wasted transmission time, affecting data transmission efficiency.
[0182] Please refer to Figure 7 , Figure 7 This diagram illustrates the handling of sequence number gaps by the UE, source base station, and target base station in an RRC handover scenario. Figure 7 In the example, the difference between PDCP SN and RLC SN is 2.
[0183] like Figure 7As shown in Figure (a), during RRC handover, in the UE's PDCP layer, PDCP PDUs with PDCP SNs of 1-3 are successfully transmitted, while PDCP PDUs with PDCP SNs of 4-6 are discarded (common in XR services) and not delivered to the RLC layer, resulting in a PDCP sequence number gap in the PDCP layer for PDCP SNs of 4-6. In this case, a PDCP sequence number gap report is triggered and delivered to the RLC layer. This PDCP sequence number gap report indicates that PDCP PDUs with PDCP SNs of 4-6 have been discarded. Simultaneously, PDCP PDUs with PDCP SNs of 7-10 are also delivered to the RLC layer. Correspondingly, the UE's RLC layer receives RLC PDUs with RLC SNs of 3-5 and 8-12, along with the PDCP sequence number gap report, resulting in an RLC sequence number gap in the RLC layer for RLC SNs of 6-7.
[0184] Depend on Figure 7 As shown in Figure (a), the PDCP SN and RLC SN are independent, but the PDCP serial number gap and the RLC serial number gap have the same gap length, and the difference between the corresponding PDCP serial number and RLC serial number is 2. For example, the serial number gap length of both the PDCP serial number gap and the RLC serial number gap is 3 units, and the difference between the corresponding PDCP serial number and RLC serial number in these two types of serial number gaps is 2. For example, the difference between the minimum PDCP SN (4) and the minimum RLC SN (6) in these two types of serial number gaps is 2.
[0185] like Figure 7 As shown in Figure (b), at the RLC layer of the source base station, the PDCP sequence number gap report and RLC PDUs with RLC SNs of 11-12 failed to transmit successfully for some reason. Specifically, the source base station's RLC layer did not receive the PDCP sequence number gap report and RLC PDUs with RLC SNs of 11 and 12, but successfully received RLC PDUs with RLC SNs of 9 and 10. Correspondingly, at the PDCP layer of the source base station, PDCP PDUs with PDCP SNs of 1-3 and 7-8 were received, but the PDCP sequence number gap report and PDCP PDUs with PDCP SNs of 4-6 were not received. Since the UE's RRC layer will restart during RRC handover, it will be impossible for the PDCP sequence number gap report and RLC PDUs with RLC SNs of 11 and 12 to be retransmitted to the source base station. Consequently, the source base station also cannot synchronize the PDCP sequence number gap report to the target base station.
[0186] like Figure 7In Figure (c), after a successful RRC handover, i.e., after the UE successfully switches to the target base station, the source base station can send a Sequence Number Status Transfer (SN Status Transfer) message to the target base station. This message is used to transmit the uplink PDCP SN and HFN status to inform the target base station that the UE has sent uplink PDCP SDUs to the source base station but they were not correctly received, ensuring the continuity of data transmission. Furthermore, the UE needs to retransmit the PDCPPDUs with PDCP SNs of 9 and 10 that were not acknowledged by the receiving end to ensure data integrity. Therefore, the target base station can confirm that it has received PDCP PDUs with PDCP SNs of 1~3 and 7~10, but still has not received PDCP PDUs with PDCP SNs of 4~6. If the PDCP sequence number gap report is not lost, the target base station can directly determine that the PDCP PDUs with PDCP SNs of 4~6 are lost based on the PDCP sequence number gap report synchronized by the source base station, and deliver the received PDCP PDUs to the upper layer. However, when PDCP sequence number gap reports are lost due to RRC handover, the target base station, upon discovering PDCP sequence number gaps for PDCP SNs 4-6, cannot directly determine whether the corresponding PDCP PDU is lost. Instead, it needs to start a reordering timer (t-Reordering) to wait. Only when the corresponding PDCP PDU is not received after the t-Reordering timeout can it be determined that the PDCP PDU is lost, and then subsequent processing can be performed. Therefore, the loss of PDCP sequence number gap reports leads to the unnecessary activation of the reordering timer, resulting in unnecessary waiting and transmission time wastage, thus affecting data transmission efficiency.
[0187] The problem in Scenario 2 above is caused by the failure to successfully transmit the PDCP sequence number gap report during RRC handover. To address this issue, relevant organizations have proposed a control plane solution: before the RRC handover is successful and the transmitting end's PDCP layer restarts, the transmitting end's PDCP layer retransmits the PDCP sequence number gap report so that the target base station can successfully receive it. However, since the PDCP sequence number gap report is transmitted via the control PDU, this solution violates the fundamental principle of radio protocols that control PDUs cannot be stored or retransmitted.
[0188] As can be seen from the above examples, handling the PDCP sequence number gap problem from the control plane may lead to the reassembly window and the reordering window being out of sync, or violate the basic principles of the wireless protocol.
[0189] In view of this, this application proposes a processing scheme for addressing the PDCP sequence number gap problem from the data plane. This processing scheme is based on a special data PDU. In this processing scheme, a special data PDU is constructed at the RLC layer, which can carry sequence number gap information. This sequence number gap information is used to indicate the PDCP sequence number in the PDCP sequence number gap appearing in the PDCP layer, and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
[0190] For ease of understanding, before providing a detailed description of the processing scheme of the embodiments of this application, this special data PDU (hereinafter referred to as the first PDU) will be introduced first.
[0191] The first PDU is a data PDU of the RLC layer. The RLC layer can construct the first PDU when it learns of the PDCP sequence number gap existing in the PDCP layer.
[0192] In one possible implementation, the first PDU can be called GR_PDU.
[0193] In one possible implementation, the net payload of the first PDU is 0.
[0194] The first PDU carries a sequence number gap information, which is used to indicate the following two parts:
[0195] 1) PDCP serial number in the PDCP serial number gap.
[0196] In other words, this sequence number gap information can be used to determine the PDCP sequence number in the PDCP sequence number gap.
[0197] For example, the PDCP sequence number in the PDCP sequence number gap can be indicated in the following forms.
[0198] In one possible form, the PDCP sequence gap information includes: the smallest PDCP sequence number in the PDCP sequence gap, and the gap length of the PDCP sequence gap. The gap length of the PDCP sequence gap refers to the difference between the largest and smallest PDCP sequence numbers in the PDCP sequence gap.
[0199] Thus, all PDCP numbers in the PDCP number gap can be indicated by the minimum PDCP number and the gap length.
[0200] The second possible form is that the sequence gap information includes the minimum and maximum PDCP sequence numbers in the PDCP sequence gap.
[0201] In this way, all PDCP numbers in the PDCP number gap can be indicated by the minimum PDCP number and the maximum PDCP number.
[0202] The third possible form is that the sequence gap information includes: the largest PDCP sequence number in the PDCP sequence gap, and the gap length of the PDCP sequence gap.
[0203] Thus, all PDCP numbers in the PDCP number gap can be indicated by the maximum PDCP number and the gap length.
[0204] 2) The difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap.
[0205] In other words, the RLC number in the RLC number gap can be determined based on the PDCP number in the PDCP number gap and the difference.
[0206] For example, this difference could be the difference between the smallest PDCP number in the PDCP number gap and the smallest RLC number in the RLC number gap. Alternatively, it could be the difference between the largest PDCP number in the PDCP number gap and the largest RLC number in the RLC number gap.
[0207] Optionally, the header of the first PDU carries the sequence number gap information. For example, the header of the first PDU carries the sequence number gap information, and the net payload is 0. It should be understood that the sequence number gap information can also be carried in other locations of the first PDU, and this application embodiment does not limit this.
[0208] Optionally, the implementation of the sequence number gap information in the header of the first PDU may include the following two implementations:
[0209] In the first implementation, the header of the first PDU includes a first field. The first field is used to indicate the PDCP sequence number in the PDCP sequence number gap, and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
[0210] Optionally, the first field includes multiple fields that indicate the PDCP number in the PDCP number gap, as well as the difference between the PDCP number and the corresponding RLC number.
[0211] As an example, the first field includes an SN field and a sequence number offset (SO) field, which indicate the PDCP sequence number in the PDCP sequence number gap and the difference between the PDCP sequence number and the corresponding RLC sequence number.
[0212] Optionally, the SN field is used to indicate the minimum or maximum PDCP number in the PDCP number gap; the SO field is used to indicate the gap length of the PDCP number gap and the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap.
[0213] For example, the first byte of the SO field is used to indicate the gap length of the PDCP number gap, and the second byte of the SO field is used to indicate the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap; or, the second byte of the SO field is used to indicate the gap length of the PDCP number gap, and the first byte of the SO field is used to indicate the difference between the PDCP number in the PDCP number gap and the corresponding RLC number in the RLC number gap.
[0214] Optionally, the SN field is used to indicate the minimum and maximum PDCP sequence numbers in the PDCP sequence number gap. The SO field is used to indicate the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
[0215] It should be understood that the implementation of using the SN field and SO field to indicate the PDCP number in the PDCP number gap, and the difference between the PDCP number and the corresponding RLC number, can also take other forms, which will not be illustrated in detail in this application.
[0216] In the second implementation, the header of the first PDU includes a second field and a first field. The second field indicates whether the corresponding PDU carries the sequence number gap information. Furthermore, when the second field indicates that the corresponding PDU carries the sequence number gap information, the first field indicates the PDCP sequence number in the PDCP sequence number gap, and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
[0217] Optionally, the second field includes multiple fields, which can be used to indicate whether the first PDU carries the sequence number gap information.
[0218] Optionally, the first and second fields can be regular fields in an RLC PDU. That is, the format of an RLCPDU can be reused to construct the first PDU.
[0219] In this embodiment, the second field of the RLC PDU header can be defined as indicating whether the RLC PDU is a PDU carrying sequence number gap information, i.e., whether the RLC PDU is a regular data PDU or a PDU carrying sequence number gap information. If the second field indicates that the corresponding RLC PDU is a PDU carrying sequence number gap information, then the first field is used to indicate the PDCP sequence number in the PDCP sequence number gap, and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap. If the second field indicates that the corresponding RLC PDU is not a PDU carrying sequence number gap information, then the first field is used to indicate the content defined for a regular data PDU.
[0220] As an example, the second field includes a segment indicator (SI) field and a more fragments indicator (I) field. If the SI field and the other field meet preset conditions, the corresponding PDU is indicated to be a PDU carrying sequence number gap information.
[0221] For example, if SI field = 00 and I field = 1, it indicates that the corresponding PDU is a PDU carrying sequence number gap information. Otherwise (such as if SI field ≠ 00, or SI field = 00 and I field = 0), it indicates that the corresponding PDU is not a PDU carrying sequence number gap information, that is, it indicates that the corresponding PDU is a regular data PDU.
[0222] It should be noted that the SI field is used to indicate the segmentation status of the corresponding PDU, such as whether the corresponding PDU belongs to a segmented data packet, that is, whether the corresponding data packet is a complete, unsegmented data packet. I indicates whether there are more segments, that is, whether the corresponding segment is the last segment. When SI is not equal to 00, it means that the corresponding PDU is a segment, the corresponding PDU does not have the I field, and the corresponding RLC PDU cannot carry sequence number gap information. When SI=00 and SI=0, it means that the SO field does not exist, the payload of the corresponding RLC PDU is a complete RLC SDU, and the corresponding RLC PDU cannot carry sequence number gap information. When SI field=00 and I field=1, the corresponding RLC PDU is a PDU carrying sequence number gap information.
[0223] Please refer to Figure 8 The figure illustrates a schematic diagram of the format of a first PDU carrying sequence number gap information. For example... Figure 8As shown, the format of the first PDU includes a header and a payload (Data). The header includes: SI field, I field, SN field, and SO field, and may also include D / C field, P field, and R field, etc. SI=00 and I=1. SN indicates the smallest PDCP sequence number in the PDCP sequence number gap. The first byte of SO indicates the gap length of the PDCP sequence number gap. The second byte of SO is used to indicate the difference between the smallest RLC sequence number in the RLC sequence number gap and the smallest PDCP sequence number in the PDCP sequence number gap.
[0224] In this embodiment, if the PDCP layer at the sending end fails to transmit the data packet due to a timeout, resulting in the loss of the PDU set associated with that data packet, and / or if the PDCP sequence number gap report fails to transmit during RRC handover, the PDCP layer can send first indication information to the lower-level RLC layer. This first indication information indicates the PDCP sequence number in the PDCP sequence number gap caused by the data packet loss. After receiving the first indication information from the PDCP layer, the RLC layer can construct and send a first PDU to the peer RLC layer. The first PDU is a data PDU carrying sequence number gap information, which indicates the PDCP sequence number in the PDCP sequence number gap, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap. In this way, the receiving end can promptly determine the sequence number gaps of the RLC layer and PDCP layer based on the first PDU, and slide the reassembly window of the RLC layer and the reordering window of the PDCP layer. This avoids problems such as window sliding stagnation, asynchronous reassembly and reordering windows, or unnecessary start of the reordering timer due to loss of sequence number gap reports during RRC switching, thus improving data transmission performance.
[0225] The following detailed explanation of the solution provided in this application, in conjunction with the corresponding flowcharts, illustrates the method. It is understood that the illustrative flowcharts provided in this application primarily use different devices (e.g., the first device, the second device) as examples of the execution entities in this interactive illustration to demonstrate the method; however, this application does not limit the execution entities of the interactive illustrations. For example, the devices in the illustrative flowcharts (e.g., the first device, the second device) can also be chips, chip systems, or processors that support the implementation of this method on those devices, or they can be logic modules or software capable of implementing all or part of the functions of those devices.
[0226] As a general statement, the message or signaling interactions involved in the interaction process of this application embodiment can be standard messages or signaling or newly introduced messages or signaling. This application embodiment does not make specific limitations on this.
[0227] Please refer to Figure 9 , Figure 9A schematic diagram of a communication method provided in an embodiment of this application is shown. It can be understood that... Figure 9 The first device is a transmitter, and the second device is a receiver. The first device includes a PDCP layer and an RLC layer, and the second device also includes a PDCP layer and an RLC layer. In some embodiments, the first device is a terminal device (such as a UE), or a device within the terminal device (e.g., a processor, chip, or chip system); the second device is a network device (such as a base station), or a device within the network device (e.g., a processor, chip, or chip system). Alternatively, the first device is a network device, or a device within the network device (e.g., a processor, chip, or chip system); the second device is a mobile terminal, or a device within the mobile terminal (e.g., a processor, chip, or chip system). Figure 9 As shown, the method includes the following steps:
[0228] The process of handling gaps at the transmitting end:
[0229] Step 901: If the PDCP layer of the first device loses the PDU set associated with the data packet due to a timeout failure, and / or if the PDCP sequence number gap report sent during RRC handover fails to transmit successfully, the first indication information is sent to the RLC layer of the first device. The first indication information is used to indicate the PDCP sequence number in the PDCP sequence number gap caused by the data packet loss. Accordingly, the RLC layer of the first device receives the first indication information.
[0230] It should be noted that the first indication information in this application embodiment is indication information transmitted between different protocol layers (PDCP layer and RLC layer) in the same device. It is a gap indication information used to indicate the sequence number gap that occurs in the PDCP layer, and thus indicate the data packet (PDCP PDU) lost by the PDCP layer. This application embodiment does not limit the information type of the first indication information.
[0231] As an example, the first indication information may include: the smallest PDCP sequence number in the PDCP sequence number gap, and the gap length of the PDCP sequence number gap. Alternatively, the smallest and largest PDCP sequence numbers in the PDCP sequence number gap. Alternatively, the largest PDCP sequence number in the PDCP sequence number gap, and the gap length of the PDCP sequence number gap, etc. This application embodiment does not limit the specific form of this sequence number gap information.
[0232] As described in Scenario 1 above, if the PDCP layer at the sending end fails to send the data packet due to a timeout, resulting in the loss of the PDU set associated with the data packet, and if the PDCP layer does not transmit data subsequently, and the RLC layer at the sending end and the receiving end are unaware that the PDCP layer has dropped the data packet, i.e., they are unaware that there is a PDCP sequence number gap in the PDCP layer, it may cause the sending window at the sending end and the reassembly window at the receiving end to stop sliding.
[0233] In this embodiment of the application, when the PDU set associated with the data packet is discarded due to the data packet timeout failure to be sent, a first indication information is sent to the RLC layer of the first device, so that the RLC layer can perceive the PDCP sequence number gap in the RLC layer according to the first indication information, and then slide the sending window of the RLC layer and send the first PDU to the sending end (second device), so that the sending end slides the reassembly window and reordering window according to the first PDU.
[0234] As an example, the PDCP layer dropping the PDU set associated with a data packet due to a timeout failure to be sent can include either of the following two scenarios:
[0235] The first scenario: If the packet has not been acknowledged before the regular discard timer configured for the packet expires, discard the remaining unsent packets in the PDU set associated with the packet.
[0236] In other words, if the data packet is configured with a regular discard timer, and the data packet has not been acknowledged before the regular discard timer expires, the remaining unsent data packets in the PDU set associated with the data packet will be discarded.
[0237] For example, after the PDCP layer receives a data packet from the upper layer, if the data packet is configured with a regular discard timer, then the regular discard timer corresponding to the data packet is started. After the data packet is sent, if the data packet has not been acknowledged as received before the regular discard timer for the data packet expires, that is, if no positive acknowledgment (ACK) has been received for the data packet, then the remaining unsent data packets in the PDU set associated with the data packet are discarded.
[0238] The second scenario: If the packet has not been acknowledged before the low importance discard timer configured in the packet configuration expires, discard the remaining unsent packets in the PDU set associated with the packet.
[0239] In other words, if a low importance discard timer is configured for a data packet, and the data packet has not been acknowledged before the low importance discard timer expires, the remaining unsent data packets in the PDU set associated with the data packet will be discarded.
[0240] For example, after the PDCP layer receives a data packet from the upper layer, if the data packet is configured with a low importance discard timer, then the low importance discard timer corresponding to the data packet is started. After the data packet is sent, if the data packet has not been acknowledged as received before the low importance discard timer for the data packet expires, that is, if no positive acknowledgment (ACK) has been received for the data packet, then the remaining unsent data packets in the PDU set associated with the data packet are discarded.
[0241] The PDCP sequence number gap report is used to indicate a PDCP sequence number gap in the PDCP layer, and is typically triggered during RRC handover due to packet loss. For example, if the PDCP layer of the first device fails to transmit a packet due to timeout, resulting in the loss of the PDU set associated with the packet, it can trigger a PDCP sequence number gap report and submit it to the lower layer. However, due to various reasons, the PDCP sequence number gap report may not be transmitted successfully, i.e., it may not be successfully sent to the sending end. As described in Scenario 2 above, this may result in the PDCP sequence number gap report being missing after a successful RRC handover, leading to the unnecessary activation of the receiver's reordering timer, causing unnecessary waiting time and affecting transmission efficiency.
[0242] To address the issue of unnecessary activation of the reordering timer at the receiving end due to the failure to transmit the PDCP sequence number gap report, in this embodiment, when the PDCP sequence number gap report fails to transmit during RRC handover, the PDCP layer can send a first indication message to the RLC layer of the first device to indicate that a sequence number gap has occurred in the PDCP layer. This allows the RLC layer to detect the PDCP sequence number gap based on the first indication message and send a first PDU to the transmitting end, enabling the transmitting end to detect the PDCP sequence number gap based on the first PDU and avoid unnecessary activation of the reordering timer.
[0243] As an example, if the PDCP sequence number gap report is not acknowledged within a certain period of time after it is sent, and no positive acknowledgment is received for the PDCP sequence number gap report, it can be determined that the PDCP sequence number gap report was not successfully transmitted.
[0244] Step 902: After receiving the first indication information from the PDCP layer, the RLC layer of the first device sends a first PDU to the RLC layer of the second device. The first PDU is a data PDU carrying sequence number gap information. The sequence number gap information is used to indicate the PDCP sequence number in the PDCP sequence number gap, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap. Accordingly, the RLC layer of the second device receives the first PDU.
[0245] After receiving the first indication information from the PDCP layer, the RLC layer of the first device can construct a first PDU carrying sequence number gap information and send the first PDU to the RLC layer of the transmitting end.
[0246] It should be noted that the data structure of the first PDU can be referred to the relevant descriptions in the above embodiments, and will not be repeated here. For example, the header of the first PDU carries the sequence number gap information, which includes: the smallest PDCP sequence number in the PDCP sequence number gap, the gap length of the PDCP sequence number gap, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap.
[0247] As an example, after receiving the first indication information from the PDCP layer, the RLC layer of the first device can construct a first PDU and send the first PDU to the RLC layer of the second device via the MAC layer. For example, the RLC layer of the first device sends the first PDU to the lower layer (MAC layer), and after receiving the first PDU from the upper layer (RLC layer), the MAC layer of the first device sends the first PDU to the MAC layer of the second device, which then delivers the first PDU to the RLC layer of the second device.
[0248] Next, combined Figure 10 The process of handling gaps at the transmitting end is illustrated by an example. For example... Figure 10 As shown, the first device (transmitter)'s processing flow for the gap includes the following steps:
[0249] A1. The PDCP layer of the first device determines whether the regular discard timer of a PDCP PDU configured with a regular discard timer has expired. If yes, jump to A2; if no, jump to A3.
[0250] Among them, the regular discard timer timeout means that the corresponding PDCP PDU did not receive a positive acknowledgment before the regular discard timer expired, that is, the PDCP PDU timed out and was not successfully sent.
[0251] A2. The PDCP layer of the first device discards all unsent RLCSDUs in the PDU set associated with the PDCP PDU.
[0252] If you are currently in a non-RRC switching scenario, you can jump to A6 after A2.
[0253] A3. The PDCP layer of the first device determines whether a low-importance discard timer for a PDCP PDU configured with a low-importance discard timer has expired. If yes, jump to A4; if no, jump to A5.
[0254] Among them, the low importance discard timer timeout means that the corresponding PDCP PDU did not receive a positive acknowledgment before the low importance discard timer timed out, that is, the PDCP PDU timed out and was not successfully sent.
[0255] A4. The PDCP layer of the first device discards all unsent RLCSDUs in the PDU set associated with the PDCP PDU.
[0256] If you are currently in a non-RRC switching scenario, you can jump to A6 after A4.
[0257] A5. The PDCP layer of the first device determines whether there is a PDCP sequence number gap report sent by the PDCP layer that was lost due to RRC handover. If yes, proceed to A6; otherwise, do nothing.
[0258] In the event that the PDCP sequence number gap report sent by the PDCP layer fails to be transmitted successfully during an RRC handover scenario, it can be determined that the PDCP sequence number gap report sent by the PDCP layer was lost due to the RRC handover.
[0259] A6. The PDCP layer of the first device sends the first indication information to the lower layer (RLC layer). The first indication information is used to indicate the PDCP sequence number in the PDCP sequence number gap.
[0260] For example, the first indication information includes the minimum PDCP number in the PDCP number gap and the gap length of the PDCP number gap, where the gap length is the difference between the maximum and minimum PDCP number in the PDCP number gap.
[0261] A7. After receiving the first indication information sent by the upper layer, the RLC layer of the first device constructs a first PDU. The first PDU is a data PDU carrying sequence number gap information. The sequence number gap information is used to indicate the PDCP sequence number in the PDCP sequence number gap, as well as the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap.
[0262] For example, the header of the first PDU carries the sequence number gap information, which includes: the smallest PDCP sequence number in the PDCP sequence number gap, the gap length of the PDCP sequence number gap, and the difference between the RLC sequence number in the RLC sequence number gap and the corresponding PDCP sequence number in the PDCP sequence number gap.
[0263] A8. The RLC layer of the first device sends the first PDU to the lower layer (MAC layer).
[0264] Afterwards, the MAC layer of the first device receives the first PDU from the upper layer (RLC layer), and can send the first PDU to the MAC layer of the second device, which then delivers the first PDU to the RLC layer of the second device.
[0265] Next, combined Figure 11 , Figure 12 , Figure 13 and Figure 15 This paper provides an exemplary illustration of the process for handling PDCP sequence number gaps among the UE, source base station, and target base station in an RRC handover scenario. In this example, the difference between the PDCP SN and the RLC SN is 2.
[0266] Please refer to Figure 11 , Figure 11 This diagram illustrates a data transmission scenario where a gap occurs at the transmitting end in the data transmission between the UE and the source base station. (For example...) Figure 11 As shown in Figure (a), in the data transmission scenario between the UE and the source base station, at the UE's PDCP layer, PDCP PDUs with PDCP SN=0~2 are successfully transmitted. The PDCP layer discards PDCP PDUs with PDCP SN=3~5 without submitting them to the lower-level RLC layer. In this case, a PDCP sequence number gap report is triggered, and the PDCP layer submits the PDCP sequence number gap report along with PDCP PDUs with PDCP SN=6~8 to the lower-level RLC layer. Figure 11 As shown in Figure (b), the UE's RLC layer receives RLC PDUs with RLC SNs of 2~3 and 8~9, as well as PDCP sequence number gap reports, and can send these RLC PDUs and PDCP sequence number gap reports to the lower MAC layer so that they can be sent to the source base station via MAC.
[0267] Please refer to Figure 12 , Figure 12 This diagram illustrates data transmission at the source base station in a data transmission scenario between the UE and the source base station. Figure 12 As shown in Figure (b), at the RLC layer of the source base station, the PDCP sequence number gap report and the RLC PDUs with RLC SNs of 9-10 failed to transmit successfully for some reason. That is, the RLC layer of the source base station did not receive the PDCP sequence number gap report and the RLC PDUs with RLC SNs of 9-10, but successfully received the RLC PDU with RLC SN of 8. At this time, the UE receives and executes the RRC handover command. During the handover, the RLC layer restarts, and the PDCP sequence number gap report and the RLC PDUs with RLC SNs of 9-10 can no longer be sent to the source base station through retransmission. Accordingly, as Figure 12As shown in Figure (a), the PDCP layer of the source base station receives PDCP PDUNs with PDCP SNs of 0 to 2 and PDCP SN of 6, but does not receive PDCP PDUNs with PDCP SNs of 7 to 8, nor does it receive PDCP sequence number gap reports.
[0268] After a successful RRC handover, i.e. after the UE successfully switches to the target base station, the source base station can send a Sequence Number Status Transfer (SN Status Transfer) message to the target base station. This message is used to transmit the uplink PDCP SN (8) and HFN status (0) to inform the target base station of the maximum PDCP SN and HFN status that the UE has sent to the source base station but has not been correctly received, thus ensuring the continuity of data transmission.
[0269] In this embodiment of the application, in order to solve the problem of PDCP sequence number gap reports being lost due to RRC handover, after the RRC handover is successful, the PDCP layer of the UE can send gap indication information (first indication information) to the lower RLC layer, so that the RLC layer can construct and send GR_PDU (first PDU) to the target base station according to the gap indication information.
[0270] Please refer to Figure 13 , Figure 13 This diagram illustrates data transmission during gap handling by the UE in an RRC handover scenario. Figure 13 As shown in Figure (a), after a successful RRC handover, if the PDCP layer of the UE fails to transmit the PDCP sequence number gap report, it can send gap indication information to the lower-level RLC layer. This gap indication information carries the minimum PDCP SN (3) and gap length (2) in the PDCP sequence number gap. The gap length refers to the difference between the maximum and minimum PDCP sequence numbers. In addition, the UE's PDCP layer can also retransmit PDCP PDUs with PDCP SN=9~10 to the RLC layer, and newly transmit PDCP PDUs with PDCP SN=11~12. Figure 13 As shown in Figure (b), after the UE's RLC layer receives the gap indication information from the PDCP layer, it can construct a GR_PDU and send it to the lower-level MAC layer to transmit the GR_PDU to the RLC layer of the target base station. The GR_PDU includes the SN, SI, I, and SO fields. The SN field is 3, meaning the PDCP SN of the GR_PDU is 3, which is the minimum PDCP SN in the PDCP sequence gap. The SI field is 00, the I field is 1, the first byte of the SO field is 2 (gap length), and the second byte of the SO field is 2 (the difference between the minimum RLC SN and the minimum PDCP SN in the gap).
[0271] The process of handling notches at the receiver's RLC layer:
[0272] Step 903: After receiving the first PDU, the RLC layer of the second device slides the reassembly window of the RLC layer according to the PDCP sequence number indicated by the sequence number gap information carried by the first PDU and the difference.
[0273] After receiving the first PDU from the lower layer (MAC layer), the RLC layer of the second device can read the sequence number gap information carried by the first PDU, and slide the reconstruction window of the RLC layer according to the PDCP sequence number gap and the correction value indicated by the sequence number gap information.
[0274] As an example, the reassembly window of the RLC layer can be slid by updating the first state variable. For instance, the first state variable can be updated to the RLC sequence number of the first unreceived packet in the RLC layer, with the updated RLC sequence number being greater than the original RLC sequence number, thus sliding the reassembly window of the RLC layer.
[0275] The first state variable represents the RLC sequence number of the next data packet expected to be received at the RLC layer, and is the lower edge of the reassembly window. For example, the first state variable can be represented by RX_Next. The RLC sequence number of the first unreceived data packet refers to the RLC sequence number of the first unreceived data packet, that is, the RLC sequence number of the first unreceived data packet after the RLC sequence number gap.
[0276] By updating the first state variable to the RLC sequence number of the first unreceived packet at the RLC layer, the lower edge of the reassembly window can be slid forward to the RLC sequence number of the first unreceived packet, thus enabling the reassembly window to slide forward.
[0277] As an example, the RLC layer of the second device can first determine the maximum and minimum RLC numbers in the RLC number gap based on the PDCP number in the PDCP number gap and the difference. Then, if the maximum and minimum RLC numbers in the RLC number gap meet the condition, that is, if it is determined that a sliding reassembly window needs to be slid based on the maximum and minimum RLC numbers, the reassembly window is slid.
[0278] For example, if the first state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, then the first state variable is updated to the RLC sequence number of the first unreceived data packet at the RLC layer to slide the reassembly window. If the first state variable is greater than the maximum RLC sequence number, or less than the minimum RLC sequence number, then the first PDU is discarded.
[0279] Thus, if the lower edge of the reconstruction window is within the RLC sequence number gap, which may cause the reconstruction window to stop sliding, the first state variable can be updated to slide the reconstruction window forward. If the lower edge of the reconstruction window is outside the RLC sequence number gap, the first PDU is discarded and no further processing is performed.
[0280] As an example, after determining the maximum and minimum RLC numbers within the RLC number gap, we can first determine whether the RLC number gap is within the current reassembly window based on the maximum and minimum RLC numbers. If it is not within the current reassembly window, the first PDU is discarded. If it is within the current reassembly window, we continue to determine whether the maximum and minimum RLC numbers meet certain conditions, such as whether the first state variable is greater than or equal to the minimum RLC number and less than or equal to the maximum RLC number; if so, the reassembly window is slid.
[0281] For example, after determining the maximum and minimum RLC numbers in the RLC number gap, if the maximum RLC number is less than the first state variable, or the minimum RLC number is greater than or equal to the upper edge of the recombination window, then the first PDU is discarded. If the maximum RLC number is greater than or equal to the first state variable, and the minimum RLC number is less than the upper edge of the recombination window, then it is further determined whether the maximum and minimum RLC numbers meet the conditions, such as whether the first state variable is greater than or equal to the minimum RLC number and less than or equal to the maximum RLC number; if so, then the recombination window is slid.
[0282] As an example, the second and / or third state variables can be updated before updating the first state variable. The second state variable is used to characterize the highest RLC sequence number of packets received by the RLC layer. For example, the second state variable can be represented as RX_Next_Highest. The third state variable is used to characterize the highest RLC sequence number confirmed in the most recent state report. For example, the third state variable can be represented as RX_Highest_Status.
[0283] For example, if the maximum RLC sequence number is greater than or equal to the second state variable, then the second state variable is updated to the maximum RLC sequence number plus one. For instance, RX_Next_Highest is updated to maximum RLC sequence number + 1. And / or, if the third state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, then the third state variable is updated to the RLC sequence number of the first unreceived packet at the RLC layer, and the updated RLC sequence number is greater than the original RLC sequence number.
[0284] In one possible implementation, after receiving the first PDU, the RLC layer of the second device can first determine the maximum and minimum RLC sequence numbers in the RLC sequence number gap based on the PDCP sequence number indicated by the sequence number gap information carried by the first PDU and the difference. Then, it determines whether the maximum RLC sequence number is less than a first state variable or whether the minimum RLC sequence number is greater than or equal to the upper edge of the reassembly window. If yes, i.e., the maximum RLC sequence number is less than the first state variable or the minimum RLC sequence number is greater than or equal to the upper edge of the reassembly window, the first PDU is discarded. If no, i.e., the maximum RLC sequence number is greater than or equal to the first state variable and the minimum RLC sequence number is less than the upper edge of the reassembly window, it determines whether the maximum RLC sequence number is greater than or equal to a second state variable. If yes, the second state variable is updated to the maximum RLC sequence number plus one. If no, it determines whether a third state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number. If yes, the third state variable is updated to the RLC sequence number of the first unreceived data packet of the RLC layer. If not, determine if the first state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number. If yes, update the first state variable to the RLC sequence number of the first unreceived data packet. If not, do not update the first state variable.
[0285] The upper edge of the reassembled window is the sum of the first state variable and the window size of the reassembled window minus one, i.e., the upper edge of the reassembled window = first state variable + window size - 1.
[0286] Step 904: The RLC layer of the second device sends a second indication message to the PDCP layer of the second device. The second indication message is used to indicate the PDCP sequence number in the PDCP sequence number gap. Correspondingly, the PDCP layer of the second device receives the second indication message.
[0287] It should be noted that the second indication information in this embodiment is indication information transmitted between different protocol layers (PDCP layer and RLC layer) in the same device. It is a gap indication information used to indicate the sequence number gap that occurs in the PDCP layer, and thus indicate the data packet (PDCP PDU) lost by the PDCP layer. This embodiment does not limit the information type of the second indication information.
[0288] As an example, the second indication information may include: the smallest PDCP sequence number in the PDCP sequence number gap, and the gap length of the PDCP sequence number gap. Alternatively, the smallest and largest PDCP sequence numbers in the PDCP sequence number gap. Alternatively, the largest PDCP sequence number in the PDCP sequence number gap, and the gap length of the PDCP sequence number gap, etc. This application embodiment does not limit the specific form of this sequence number gap information.
[0289] It should also be noted that the information type of the second indication information and the above-mentioned first indication information may be the same or different, and the embodiments of the present application do not limit this either.
[0290] Next, an exemplary description of the processing flow of the gap by the sending end will be given in conjunction with Figure 14 As shown in Figure 14 The processing flow of the RLC layer of the second device (receiving end) for the sequence number gap includes the following steps:
[0291] B1. Receive the RLC PDU from the lower layer (MAC layer) and read the SI field in the RLC PDU header.
[0292] B2. Determine whether SI = 00.
[0293] If so, jump to B3. If not, process the RLC PDU in the normal RLC PDU processing manner. Exemplarily, the normal RLC PDU processing manner can refer to the content in Section 5.2.3.2 of 3GPP TS 38.322 protocol.
[0294] B3. Read the I field in the RLC PDU header.
[0295] B4. Determine whether I = 1.
[0296] If so, jump to B5. If not, process the RLC PDU in the normal manner.
[0297] B5. Determine that the RLC PDU is a GR_PDU, and read the PDCP SN = m (the smallest PDCP sequence number of the PDCP sequence number gap) and the second byte value of the SO field in the GR_PDU header. Calculate the smallest RLC sequence number y in the RLC sequence number gap according to the read content, read the first byte value of the SO field as the gap length LEN, and calculate the largest RLC sequence number z = y + LEN in the RLC sequence number gap.
[0298] B6. Determine whether z < RX_Next or y ≥ RX_Next + Window_Size.
[0299] If so, jump to B7. If not, jump to B8.
[0300] B7. Discard the GR_PDU.
[0301] B8. Determine whether z ≥ RX_Next_Highest.
[0302] If so, jump to B9. If not, jump to B10.
[0303] B9. Update RX_Next_Highest = z + 1.
[0304] B10. Determine whether y ≤ RX_Highest_Status ≤ z.
[0305] If yes, then proceed to B11. If no, then proceed to B12.
[0306] B11. Update RX_Highest_Status to the RLC SN of the first unreceived RLC SDU, and this RLC SN is greater than the RX_Highest_Status before the update.
[0307] B12. Determine whether y ≤ RX_Next ≤ z.
[0308] If yes, proceed to B13. If no, proceed to B14.
[0309] B13. Update RX_Next to the RLC SN of the first unreceived RLC SDU, and make sure that the RLC SN is greater than the RX_Next before the update.
[0310] B14. Instead of submitting GR_PDU to the upper PDCP layer, send gap indication information to the PDCP layer. This gap indication information carries the minimum PDCP sequence number m and the gap length LEN in the PDCP sequence gap.
[0311] Please refer to Figure 15 , Figure 15 This is a schematic diagram illustrating the gap handling by the target base station in a scenario where the UE and the target base station transmit data, as provided in an embodiment of this application. Figure 15 As shown in Figure (b), after the RLC layer of the target base station receives the GR_PDU and RLC SDUs with RLC SNs of 9 to 12 from the lower layer (MAC layer), the RLC layer reads the PDCP SN=3 from the GR_PDU header and the value of the second byte of the SO field (2, the difference between the smallest RLC sequence number and the smallest PDCP sequence number in the gap). Based on these two pieces of information, the minimum RLC SN of the RLC sequence number gap is calculated to be 5. Then, based on the minimum RLC SN and the value of the first byte of the SO field in the GR_PDU header (2, the gap length), the range of RLC SN for the RLC sequence number gap is calculated to be 5 to 7. According to the range of RLC SN for the RLC sequence number gap (5 to 7), we know that 3 ≤ RX_Next ≤ 5. In this case, RX_Next can be updated to the sequence number 13 of the first unreceived RLC SDU, that is, RX_Next=13, and the reconstruction window slides forward 8 units. Then, the header of the received RLC SDU with RLCSN=9~12 is removed and handed over to the upper PDCP layer.
[0312] Additionally, the RLC layer determines the PDCP SN range of the PDCP sequence number gap to be 3 to 5 based on the PDCP SN=3 in the received GR_PDU header and the value of the first byte of the SO field being 2. The RLC layer does not submit the GR-PDU to the upper layer (PDCP layer), but instead sends gap indication information (second indication information) to the upper layer. This gap indication information includes: the smallest PDCP sequence number in the PDCP sequence number gap (3) and the gap length (2).
[0313] The process of the notch indication information processed by the PDCP layer at the receiving end:
[0314] Step 905: After receiving the second instruction information, the PDCP layer of the second device slides the reordering window of the PDCP layer according to the second instruction information.
[0315] As an example, the reordering window of the PDCP layer can be slid by updating the fourth state variable. For instance, the PDCP layer's reordering window can be slid by updating the fourth state variable to the COUNT value of the first unreceived packet in the PDCP layer, with the updated COUNT value being greater than the original COUNT value.
[0316] The fourth state variable represents the COUNT value of the next data packet expected to be delivered to the upper layer by the PDCP layer, and is the lower edge of the reordering window. For example, the fourth state variable can be represented by RX_DELIV. The COUNT value of the first unreceived data packet by the PDCP layer refers to the PDCP sequence number of the first unreceived data packet, that is, the PDCP sequence number of the first unreceived data packet after the PDCP sequence number gap. In this embodiment, the data packet corresponding to the PDCP sequence number gap is considered a received data packet.
[0317] By updating the fourth state variable to the COUNT value of the first unreceived packet in the PDCP layer, the lower edge of the reordering window can be slid forward to the COUNT value of the first unreceived packet, thus enabling the reordering window to slide forward.
[0318] As an example, after receiving the second indication information, the PDCP layer can first determine the first COUNT value and the second COUNT value based on the second indication information. The first COUNT value is the COUNT value corresponding to the smallest PDCP sequence number indicated by the second indication information, and the second COUNT value is the COUNT value corresponding to the largest PDCP sequence number indicated by the second indication information. Then, if the first COUNT value and the second COUNT value satisfy a condition—that is, if it is determined that a sliding reordering window is needed based on the first COUNT value and the second COUNT value—then the sliding reordering window is executed.
[0319] In other words, after receiving the second indication information, the minimum PDCP sequence number indicated by the second indication information can be converted into the corresponding COUNT value (i.e., the first COUNT value), and the maximum PDCP sequence number can be converted into the corresponding COUNT value (i.e., the second COUNT value). For example, the first COUNT value is first determined based on the minimum PDCP sequence number, that is, the minimum PDCP sequence number is first converted into the corresponding first COUNT value, and then the second COUNT value is determined based on the first COUNT value and the gap length. For example, the second COUNT value = the first COUNT value + the gap length LEN.
[0320] In one implementation, the process of converting the minimum PDCP sequence number indicated by the second indication information into the corresponding first COUNT value includes: determining a superframe number reference value, and determining the first COUNT value based on the minimum PDCP sequence number and the superframe number reference value. For example, the superframe number reference value can be represented as RCVD_HFN.
[0321] In one implementation, the process of determining the superframe number reference value includes: determining whether the minimum PDCP sequence number is less than the difference between the PDCP sequence number of the first data packet and the window size of the reordering window. Here, the first data packet refers to the data packet that the PDCP layer expects to deliver to the upper layer next. If yes, the superframe number reference value is the superframe number of the first data packet plus one. If no, it is determined whether the minimum PDCP sequence number is greater than or equal to the sum of the PDCP sequence number of the first data packet and the window size of the reordering window. If yes, the superframe number reference value is the superframe number of the first data packet minus one. If no, the superframe number reference value is the superframe number of the first data packet.
[0322] For example, assuming the superframe number base value is represented by RCVD_HFN, the PDCP sequence number of the first data packet is represented by SN(RX_DELIV), the superframe number of the first data packet is represented by HFN(RX_DELIV), and the window size of the reordering window is represented by Window_Size. If the minimum PDCP sequence number < SN(RX_DELIV) - Window_Size, then RCVD_HFN = HFN(RX_DELIV) + 1; if the minimum PDCP sequence number ≥ SN(RX_DELIV) - Window_Size, then continue to determine whether the minimum PDCP sequence number is greater than or equal to SN(RX_DELIV) + Window_Size. If yes, then RCVD_HFN = HFN(RX_DELIV) - 1; if no, RCVD_HFN = HFN(RX_DELIV).
[0323] As an example, this can be achieved when the fourth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value.
[0324] When the first COUNT value and the second COUNT value meet the conditions, that is, when it is determined according to the first COUNT value and the second COUNT value that the sliding reordering window is required, the fourth state variable is updated to the COUNT value of the first unreceived data packet at the PDCP layer to slide the reordering window.
[0325] As an example, if the fourth state variable is less than or equal to the second COUNT value, and the fifth state variable (RX_NEXT) is greater than or equal to the first COUNT value and less than or equal to the second COUNT value, then the fifth state variable is updated to the second COUNT value plus one. The fifth state variable is used to represent the COUNT value of the next data packet expected to be received from the lower layer at the PDCP layer. Exemplarily, the fifth state variable can be represented by RX_NEXT.
[0326] In a possible implementation, after determining the first COUNT value and the second COUNT value, it can be first determined whether the second COUNT value is less than the fourth state variable. If so, no processing is performed. If not, it is determined whether the fifth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value. If so, the fifth state variable is updated to the second COUNT value plus one. If not, it is determined whether the fourth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value. If so, the fourth state variable is updated to the COUNT value of the first unreceived data packet at the PDCP layer, and the updated COUNT value is greater than the COUNT value before the update to slide the reordering window. If not, no processing is performed, that is, the fourth state variable is not updated, so the reordering window is not slid.
[0327] Next, in combination with Figure 16 An exemplary description of the processing flow of the PDCP layer at the sending end for the gap is given. As Figure 16 shown, the processing flow of the PDCP layer of the second device (receiving end) for the gap includes the following steps:
[0328] C1. Determine whether the PDCP layer receives the gap indication information (the second indication information) from the lower layer (RLC layer). If so, jump to C2; if not, no processing is performed.
[0329] C2. Read the gap length LEN and the minimum PDCP sequence number m indicated by the gap indication information.
[0330] C3. Determine whether m < SN(RX_DELIV) - Window_Size. If so, jump to C4. If not, jump to C5.
[0331] C4. RCVD_HFN = HFN(RX_DELIV) + 1.
[0332] C5. Determine whether m ≥ SN(RX_DELIV) + Window_Size. If yes, jump to C6. If no, jump to C7.
[0333] C6. RCVD_HFN = HFN(RX_DELIV) - 1.
[0334] C7. RCVD_HFN = HFN(RX_DELIV).
[0335] C8. Determine the COUNT value u = [RCVD_HFN, RCVD_SN] corresponding to m.
[0336] RCVD_SN is the minimum PDCP sequence number m.
[0337] C9. Determine the COUNT value w = u + LEN corresponding to the maximum PDCP sequence number indicated by the gap indication information.
[0338] C10. Determine whether w < RX_DELIV. If yes, do not process. If no, jump to C11.
[0339] C11. Determine whether u ≤ RX_NEXT ≤ w. If yes, jump to C12. If no, jump to C13.
[0340] C12. Update RX_NEXT = w + 1.
[0341] C13. Determine whether u ≤ RX_DELIV ≤ w. If yes, jump to C14. If no, do not process.
[0342] C14. Update RX_DELIV to the COUNT value of the first un - received RLC SDU (the RLC SDUs within the PDCP sequence number gap are regarded as received RLC SDUs), and the updated COUNT value is greater than the previous RX_DELIV.
[0343] As Figure 15 shown in figure (a) of Figure 15 In the example of , since HFN = 0, the converted COUNT value is the same as the PDCP SN before conversion.
[0344] It should be understood that Figures 1 to 16 The flowcharts or scene diagrams shown are for illustrative purposes only and are not intended to limit the embodiments of this application to the examples illustrated. In fact, those skilled in the art can interpret the embodiments based on... Figures 1 to 16 The examples in the document can be transformed into equivalent ways to obtain more implementations.
[0345] The above text combined Figures 1 to 16 This document describes in detail the communication method provided in the embodiments of this application. The following will combine... Figures 17 to 18 The device embodiments of this application are described in detail below. It should be understood that the communication device of this application embodiment can execute the various communication methods of the foregoing embodiments of this application, that is, the specific working processes of the various products below can be referred to the corresponding processes in the foregoing method embodiments.
[0346] In the embodiments described above, the first device may execute some or all of the steps in each embodiment; the second device may execute some or all of the steps in each embodiment. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations thereof. Furthermore, the steps may be executed in different orders as presented in the embodiments, and it is not necessary to execute all the operations in the embodiments of this application. Moreover, the sequence number of each step does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0347] Figure 17 A schematic block diagram of a communication device provided in an embodiment of this application is shown. Figure 17 As shown, the communication device 1700 may include a communication module 1710. The communication module 1710 can implement corresponding communication functions, which can be internal communication functions of the communication device 1700 or communication functions between the communication device 1700 and other devices. Optionally, the communication module 1710 may also be referred to as a communication interface or transceiver module. Optionally, the communication device 1700 further includes a processing module 1720. The processing module 1720 can implement corresponding processing functions.
[0348] Optionally, the communication device 1700 further includes a storage module, which can be used to store instructions and / or data; the processing module 1720 can read the instructions and / or data in the storage module so that the communication device 1700 can implement the aforementioned method embodiments.
[0349] In one possible design, the communication device 1700 may correspond to the first device in the above method embodiments, or to a component (such as a circuit, chip, or chip system) configured in the first device. The communication device 1700 may be used to perform the steps or processes performed by the first device in any of the above method embodiments.
[0350] In one possible design, the communication device 1700 may correspond to the second device in the above method embodiments, or to a component (such as a circuit, chip, or chip system) configured in the second device. The communication device 1700 may be used to perform the steps or processes performed by the second device in any of the above method embodiments.
[0351] This application embodiment also provides a method such as Figure 18 The 1800 shown can be a chip or system-on-a-chip in a first or second Bluetooth device; it can also be a chip or system-on-a-chip in a second device. For example... Figure 18 As shown, the 1800 includes a processor 1801, a transceiver 1802, and a communication line 1803.
[0352] Furthermore, the 1800 may also include a memory 1804. The processor 1801, memory 1804, and transceiver 1802 can be connected via a communication line 1803.
[0353] The processor 1801 can be a central processing unit (CPU), a network processor (NP), a digital signal processor (DSP), a microprocessor, a microcontroller, a programmable logic device (PLD), or any combination thereof. The processor 1801 can also be other devices with processing capabilities, such as circuits, devices, or software modules, without limitation.
[0354] Transceiver 1802 is used to communicate with other devices or other communication networks. These other communication networks can be Ethernet, radio access network (RAN), wireless local area networks (WLAN), etc. Transceiver 1802 can be a module, circuit, transceiver, or any device capable of enabling communication.
[0355] Communication line 1803 is used to transmit information between the components included in 1800.
[0356] Memory 1804 is used to store instructions. These instructions can be computer programs.
[0357] The memory 1804 can be a read-only memory (ROM) or other type of static storage device that can store static information and / or instructions; it can also be a random access memory (RAM) or other type of dynamic storage device that can store information and / or instructions; it can also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, etc., without limitation.
[0358] It should be noted that the memory 1804 can exist independently of the processor 1801, or it can be integrated with the processor 1801. The memory 1804 can be used to store instructions, program code, or some data, etc. The memory 1804 can be located inside or outside the processor 1800, without limitation. The processor 1801 is used to execute the instructions stored in the memory 1804 to implement the communication method provided in the following embodiments of this application.
[0359] In one example, processor 1801 may include one or more CPUs, for example Figure 18 CPU0 and CPU1 in the CPU.
[0360] As an optional implementation, the 1800 includes multiple processors, for example, besides Figure 18 In addition to processor 1801, it may also include processor 1807.
[0361] As an optional implementation, 1800 also includes an output device 1805 and an input device 1806. For example, the input device 1806 is a device such as a keyboard, mouse, microphone, or joystick, and the output device 1805 is a device such as a display screen or speaker.
[0362] It should be noted that the communication device 1800 can be a desktop computer, laptop computer, network server, mobile phone, tablet computer, wireless terminal, embedded device, chip system, or something else. Figure 18 Equipment with a similar structure. Furthermore... Figure 18 The structural composition shown does not constitute a limitation on the communication device, except... Figure 18In addition to the components shown, the communication device may include more or fewer components than illustrated, or combine certain components, or have different component arrangements.
[0363] In this embodiment of the application, the chip system may be composed of chips or may include chips and other discrete devices.
[0364] Furthermore, the actions, terms, etc., involved in the various embodiments of this application can be referenced interchangeably without limitation. The message names or parameter names in the messages exchanged between the various devices in the embodiments of this application are merely examples, and other names may be used in specific implementations without limitation.
[0365] This application also provides a computer program product that, when executed by a computer, can implement the functions of any of the above method embodiments.
[0366] This application also provides a computer program that, when executed by a computer, can implement the functions of any of the above method embodiments.
[0367] This application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be implemented by a computer program instructing related hardware. This program can be stored in the computer-readable storage medium, and when executed, it can include the processes of the above method embodiments. The computer-readable storage medium can be an internal storage unit of the terminal (including a data sending end and / or a data receiving end) of any of the foregoing embodiments, such as the terminal's hard disk or memory. The computer-readable storage medium can also be an external storage device of the terminal, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the terminal. Further, the computer-readable storage medium can include both the terminal's internal storage unit and external storage devices. The computer-readable storage medium is used to store the computer program and other programs and data required by the terminal. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
[0368] It should be noted that the terms "first" and "second," etc., in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. "First" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Therefore, a feature defined with "first" and "second" may explicitly or implicitly include one or more of that feature. In the description of this embodiment, unless otherwise stated, "a plurality of" means two or more.
[0369] Furthermore, the terms “comprising” and “having”, and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus.
[0370] It should be understood that in this application, "at least one (item)" means one or more. "More than one" means two or more. "At least two (items)" means two or three or more. "And / or" is used to describe the relationship between related objects, indicating that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple. "...when" and "if" both mean that a corresponding action will be taken under certain objective circumstances, not a time limit, nor do they require a judgment action at the time of implementation, nor do they imply any other limitations.
[0371] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.
[0372] In this application, "sending information to...(terminal device)" can be understood as the destination of the information being the terminal device. This can include sending information directly or indirectly to the terminal device. "Receiving information from...(terminal device)" can be understood as the source of the information being the terminal device, and can include receiving information directly or indirectly from the terminal device. Information may undergo necessary processing between the source and destination, such as format changes, but the destination can understand the valid information from the source.
[0373] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0374] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0375] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0376] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
Claims
1. A communication method characterized by comprising: Applied to a first device, the method comprises: In a case that a PDU set associated with a data packet is discarded due to a failure of the data packet to be sent successfully before a timeout of the data packet, and / or in a case that a PDCP sequence number gap report sent during RRC switching is not transmitted successfully, the PDCP layer sends first indication information to the RLC layer, the first indication information being used to indicate PDCP sequence numbers in the PDCP sequence number gap caused by the data packet discard; After receiving the first indication information from the PDCP layer, the RLC layer sends a first PDU to an RLC layer of a second device, the first PDU being a data PDU carrying sequence number gap information, the sequence number gap information being used to indicate PDCP sequence numbers in the PDCP sequence number gap and a difference between RLC sequence numbers in an RLC sequence number gap and corresponding PDCP sequence numbers in the PDCP sequence number gap.
2. The method of claim 1, wherein, The case that the PDU set associated with the data packet is discarded due to a failure of the data packet to be sent successfully before a timeout of the data packet comprises: In a case that the data packet has not been confirmed to be received before a timeout of a regular discard timer configured for the data packet, discarding remaining unsent data packets in the PDU set associated with the data packet; or In a case that the data packet has not been confirmed to be received before a timeout of a low-importance discard timer configured for the data packet, discarding remaining unsent data packets in the PDU set associated with the data packet.
3. The method of claim 1, wherein: the first indication information is used to indicate a minimum PDCP sequence number in the PDCP sequence number gap and a gap length of the PDCP sequence number gap; and the gap length refers to a difference between a maximum PDCP sequence number and the minimum PDCP sequence number in the PDCP sequence number gap.
4. The method of claim 1, wherein: the sequence number gap information is used to indicate a minimum PDCP sequence number in the PDCP sequence number gap, a gap length of the PDCP sequence number gap, and a difference between a minimum RLC sequence number in the RLC sequence number gap and the minimum PDCP sequence number in the PDCP sequence number gap.
5. The method of claim 1, wherein, The header of the first PDU carries the sequence number gap information.
6. The method of claim 5, wherein: the header of the first PDU comprises a first field, the first field being used to indicate PDCP sequence numbers in the PDCP sequence number gap and a difference between the PDCP sequence numbers in the PDCP sequence number gap and corresponding RLC sequence numbers in the RLC sequence number gap; or the first PDU comprises a second field and the first field, the second field being used to indicate whether a corresponding PDU is the PDU carrying the sequence number gap information, and in a case that the second field indicates that the corresponding PDU is the PDU carrying the sequence number gap information, the first field is used to indicate PDCP sequence numbers in the PDCP sequence number gap and a difference between the PDCP sequence numbers in the PDCP sequence number gap and corresponding RLC sequence numbers in the RLC sequence number gap.
7. The method of claim 6, wherein, The first field includes a sequence number SN field and a sequence number offset SO field, the SN field is used to indicate the minimum PDCP sequence number or the maximum PDCP sequence number in the PDCP sequence number gap, and the SO field is used to indicate the gap length of the PDCP sequence number gap and the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap.
8. The method of claim 7, wherein, a first byte of the SO field is used to indicate the gap length of the PDCP sequence number gap, and a second byte of the SO field is used to indicate the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap; or, a first byte of the SO field is used to indicate the difference between the PDCP sequence number in the PDCP sequence number gap and the corresponding RLC sequence number in the RLC sequence number gap, and a second byte of the SO field is used to indicate the gap length of the PDCP sequence number gap.
9. The method of any one of claims 6-8, wherein, The second field includes a segment indicator SI field and a more fragment indicator I field.
10. The method of claim 9, wherein, In the case of SI field = 00 and I field = 1, it is indicated that the corresponding PDU is a PDU carrying the sequence number gap information.
11. The method of claim 1, wherein, The net payload of the first PDU is 0.
12. A communication method characterized by comprising: The method applied to a second device, comprising: an RLC layer receiving a first PDU from a first device, the first PDU being a data PDU carrying sequence number gap information, the sequence number gap information being used to indicate a PDCP sequence number in a PDCP sequence number gap of the first device and a difference between the PDCP sequence number in the PDCP sequence number gap and a corresponding PDCP sequence number in an RLC sequence number gap; the RLC layer sliding a reassembly window of the RLC layer according to the PDCP sequence number in the PDCP sequence number gap and the difference, the reassembly window being used to indicate data packets expected to be received but not yet received by the RLC layer; the RLC layer sending second indication information to a PDCP layer, the second indication information being used to indicate the PDCP sequence number in the PDCP sequence number gap; the PDCP layer, after receiving the second indication information, sliding a reordering window of the PDCP layer according to the second indication information, the reordering window being used to indicate data packets expected to be submitted to an upper layer by the PDCP layer.
13. The method of claim 12, wherein, the RLC layer sliding the reassembly window according to the PDCP sequence number in the PDCP sequence number gap and the difference, comprising: the RLC layer determining a maximum RLC sequence number and a minimum RLC sequence number in the RLC sequence number gap according to the PDCP sequence number in the PDCP sequence number gap and the difference; the RLC layer sliding the reassembly window in the case that the maximum RLC sequence number and the minimum RLC sequence number meet a condition.
14. The method of claim 13, wherein, the sliding of the reassembly window in the case that the maximum RLC sequence number and the minimum RLC sequence number meet the condition, comprising: If the first state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, the first state variable is updated to the RLC sequence number of the first unreceived data packet of the RLC layer, and the updated RLC sequence number is greater than the RLC sequence number before the update, so as to slide the reordering window; wherein the first state variable is used to represent the RLC sequence number of the next expected received data packet of the RLC layer.
15. The method of claim 14, wherein, The method further comprises: If the maximum RLC sequence number is greater than or equal to the second state variable, the second state variable is updated to the maximum RLC sequence number plus one, and the second state variable is used to represent the maximum RLC sequence number of the received data packet of the RLC layer. And / or, If the third state variable is greater than or equal to the minimum RLC sequence number and less than or equal to the maximum RLC sequence number, the third state variable is updated to the RLC sequence number of the first unreceived data packet of the RLC layer, and the updated RLC sequence number is greater than the RLC sequence number before the update, and the third state variable is used to represent the maximum RLC sequence number confirmed in the last status report.
16. The method of claim 14 or 15, wherein, The method further comprises: If the first state variable is less than the minimum RLC sequence number or greater than the maximum RLC sequence number, the first PDU is discarded; or If the maximum RLC sequence number is less than the first state variable, or the minimum RLC sequence number is greater than or equal to the upper edge of the reordering window, the first PDU is discarded, and the upper edge of the reordering window is the sum of the first state variable and the window size of the reordering window minus one.
17. The method of claim 12, wherein, The method further comprises: According to the second indication information, the first COUNT value and the second COUNT value are determined, the first COUNT value is the COUNT value corresponding to the minimum PDCP sequence number indicated by the second indication information, and the second COUNT value is the COUNT value corresponding to the maximum PDCP sequence number indicated by the second indication information, and the COUNT value is composed of a PDCP sequence number and a superframe number; If the fourth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value, the fourth state variable is updated to the COUNT value of the first incompletely received data packet of the PDCP layer, and the updated COUNT value is greater than the COUNT value before the update, so as to slide the reordering window, and the fourth state variable is used to represent the COUNT value of the next expected data packet submitted to the upper layer of the PDCP layer.
18. The method of claim 17, wherein, The method further comprises: If the fourth state variable is less than or equal to the second COUNT value, and the fifth state variable is greater than or equal to the first COUNT value and less than or equal to the second COUNT value, the fifth state variable is updated to the second COUNT value plus one, and the fifth state variable is used to represent the COUNT value of the next expected data packet received from the lower layer of the PDCP layer.
19. The method of claim 17 or 18, wherein, The second indication information is used for indicating a minimum PDCP sequence number in the PDCP sequence number gap and a gap length of the PDCP sequence number gap. The determining the first COUNT value and the second COUNT value according to the second indication information comprises: determining the first COUNT value according to the minimum PDCP sequence number; determining the second COUNT value according to the first COUNT value and the gap length.
20. A communications device, characterized by The apparatus comprises at least one processor coupled with a memory, and the memory has stored therein programs or instructions, and the processor executes the programs or instructions to cause the apparatus to perform the method of any one of claims 1-11 or claims 12-19.
21. A computer readable storage medium having stored thereon a computer program or instructions, characterized in that, The computer programs or instructions, when executed, cause the computer to perform the method of any one of claims 1-11 or claims 12-19.
22. A communication system, characterized by The communication apparatus comprises the apparatus of claim 20.
23. A chip system, characterized by The chip system comprises one or more processors for invoking and running instructions stored in a memory, so that the method of any one of claims 1-11 or claims 12-19 is executed.
24. A computer program product comprising instructions, characterized in that, When it is run on a computer, it causes the computer to perform the method of any one of claims 1-11 or claims 12-19.
Citation Information
Patent Citations
In-order delivery of packet data convergence protocol (PDCP) service data units in downlink during handover
CN101843138A
Methods and devices for handling data unit transmission problems
WO2025160786A1