Communication method and apparatus
By starting a timer on the data packet receiving side to detect holes and stopping retransmission when the timeout occurs, the resource waste and latency problems caused by the RLC retransmission mechanism are solved, and efficient data transmission of XR services is achieved in 5G communication systems.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-24
- Publication Date
- 2026-04-02
AI Technical Summary
In 5G communication systems, the RLC retransmission mechanism will keep retransmitting data packets until the correct transmission is confirmed, which leads to resource waste and affects subsequent data transmission for latency-sensitive services such as XR services, especially when the channel quality is poor.
By starting a first timer on the data packet receiving side, voids are detected and data packet retransmission is stopped when the timer expires, reducing resource waste and energy consumption, and timely advancing the sending and receiving windows to adapt to XR service requirements.
It effectively reduces the waste of transmission resources, saves the computing and energy consumption of communication equipment, ensures the timely transmission of subsequent data, and adapts to the high latency requirements of XR services.
Smart Images

Figure CN2025123652_02042026_PF_FP_ABST
Abstract
Description
Communication method and apparatus
[0001] Cross-reference to Related Applications
[0002] This application claims priority to the Chinese Patent Application No. 202411394909.X, filed on September 30, 2024, and entitled “A communication method and apparatus”, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD
[0003] Embodiments of the present application relate to the field of communication technology, and in particular to a communication method and apparatus. BACKGROUND
[0004] Due to poor channel quality or other reasons, data packets may be lost or mispackaged when transmitted over the air. In order to improve the reliability of data transmission, the 5th generation (5G) introduces an RLC retransmission mechanism. After introducing the radio link control (RLC) retransmission mechanism, the RLC entity at the receiving end sends a reception status report to the RLC entity at the sending end, so that the RLC entity at the sending end can obtain the actual reception status of the data packets and determine the retransmission of the data packets that have not been correctly transmitted.
[0005] The RLC retransmission mechanism can ensure the correct transmission of data packets over the air, but the sending end RLC entity will always arrange the retransmission of the data packets before confirming the correct transmission of the data packets. This approach has a problem of resource waste for time-sensitive services. For example, for extended reality (XR) services, the time delay requirement is ten to several tens of milliseconds. Excessive time delay for data packet retransmission not only wastes transmission resources, but also affects the transmission of subsequent data and the service experience. SUMMARY
[0006] The present application provides a communication method and apparatus to adapt to the needs of XR services when the RLC retransmission mechanism is enabled, reduce the waste of transmission resources, and timely push the sending window and the receiving window to ensure the timely transmission of subsequent data.
[0007] In a first aspect, the present application provides a communication method, which can be executed by a receiving side RLC entity. The receiving side can be a terminal or a network device. The terminal can be the terminal itself, a component (e.g., a processor, a chip, or a chip system) in the terminal, or a logic module or software that implements all or part of the terminal function. The network device can be the network device itself, a component (e.g., a processor, a chip, or a chip system) in the network device, or a logic module or software that implements all or part of the network device function. The present application does not specifically limit this.
[0008] The method can be applied to a 5G communication system or a communication system above 5G, and can also be applied to a non-terrestrial communication system. The present application does not specifically limit this. The following is executed:
[0009] If there is a discontinuous reception data packet in the data packet receiving window, a first timer is started, the first timer corresponds to a to-be-transmitted data packet or a hole in the data packet receiving window; if one or more to-be-transmitted data packets are received before the first timer expires, the first timer is stopped; or if one or more to-be-transmitted data packets are not received when the first timer expires, it is determined that the transmission of the one or more to-be-transmitted data packets is successful; and sending indication information, the indication information is used to indicate to the communication device that the transmission of the one or more to-be-transmitted data packets is successful.
[0010] In the present application, the receiving side RLC entity detects a hole, starts a first timer for each to-be-transmitted data packet in the hole, and determines to notify the sending side RLC entity to stop transmitting the to-be-transmitted data packet when the first timer corresponding to each to-be-transmitted data packet expires. Alternatively, the receiving side RLC entity detects a hole, starts a first timer for the hole, and determines to notify the sending side RLC entity to stop transmitting the to-be-transmitted data packet when the first timer expires. Based on this, the retransmission of the to-be-transmitted data packet can be ended in advance, the waste of transmission resources can be reduced, the sending window and the receiving window can be timely pushed, the timely transmission of subsequent data can be ensured, and the needs of XR services can be adapted.
[0011] In an optional manner, the one or more to-be-transmitted data packets belong to the data packets in the hole.
[0012] Since maintaining the timer consumes the computing resources of the communication device, when a receiving hole is detected, a first timer is started for the hole. When the first timer expires, it is determined that the one or more to-be-transmitted data packets in the hole do not need to be continuously transmitted, which can avoid starting multiple first timers and further reduce the implementation complexity of the receiving side RLC entity.
[0013] In an alternative, if the first pending data packet is received before the first timer expires, the first timer is stopped, the first timer corresponds to one pending data packet, and the one or more pending data packets are the first pending data packet.
[0014] Since maintaining the first timer consumes a large amount of energy of the communication device, ending the first timer early after determining that the first pending data is received can save the energy of the communication device.
[0015] In an alternative, if all pending data packets in the hole are received before the first timer expires, the first timer is stopped, the first timer corresponds to the hole, and the one or more pending data packets are all pending data packets in the hole.
[0016] Since maintaining the first timer consumes a large amount of energy of the communication device, ending the first timer early after determining that all pending data in the hole is received can save the energy of the communication device.
[0017] In an alternative, the discontinuous reception data packet in the data packet receiving window is determined by one of the following methods:
[0018] Method one, N>M+1; or, method two, N=M+1, and the data packet corresponding to M is not successfully transmitted; or, method three, when the second timer expires, updating X to be the data packet sequence number of the first data packet with the data packet sequence number greater than or equal to Y and not successfully transmitted, the second timer is used to trigger the data packet receiving status report; or, method four, when the second timer expires, updating X to be the data packet sequence number of the first data packet with the data packet sequence number greater than or equal to Y and not successfully transmitted, and N is greater than X+1; or, method five, when the second timer expires, updating X to be the data packet sequence number of the first data packet with the data packet sequence number greater than or equal to Y and not successfully transmitted, and N is equal to X+1, and the data packet corresponding to X is not successfully transmitted; method six, the RLC entity generates or sends the data packet receiving status report; wherein N indicates the next data packet sequence number of the maximum data packet sequence number of the data packet received by the RLC entity in the data packet receiving window, the N is updated in real time; M indicates the next data packet sequence number of the data packet sequence number of the last data packet of the data packets correctly received by the RLC entity in succession; X indicates the data packet sequence number of the largest unsuccessfully transmitted data packet in the data packet receiving status report; Y indicates the data packet sequence number corresponding to N when the second timer is triggered.
[0019] It should be noted that N corresponds to the receiving side variable RX_Next_Highest, M corresponds to the receiving side variable RX_Next, X corresponds to the receiving side variable RX_Highest_Status, and Y corresponds to the receiving side variable RX_Next_Status_Trigger.
[0020] Through the first way, the receiving side RLC entity judges that there is a data packet to be transmitted which has not been successfully transmitted before the data packet corresponding to N in the receiving window, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted does not need to be continuously transmitted, thereby avoiding resource waste. Through the second way, the receiving side RLC entity judges that the data packet corresponding to M in the receiving window has not been successfully transmitted, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet corresponding to M does not need to be continuously transmitted, thereby avoiding resource waste. Through the third way, the receiving side RLC entity confirms that there is a data packet to be transmitted which has not been successfully transmitted before the data packet corresponding to X in the receiving window according to the expiration of the second timer, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted does not need to be continuously transmitted, thereby avoiding resource waste. Through the fourth way, the receiving side RLC entity judges that there is a data packet to be transmitted which has not been successfully transmitted between the data packet corresponding to X and the data packet corresponding to N in the receiving window when the second timer expires, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted does not need to be continuously transmitted, thereby avoiding resource waste. Through the fifth way, the receiving side RLC entity judges that the data packet corresponding to X in the receiving window has not been successfully transmitted when the second timer expires, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted does not need to be continuously transmitted, thereby avoiding resource waste. Through the sixth way, the receiving side RLC entity determines that there is a data packet to be transmitted which has not been successfully transmitted in the receiving window according to the generation or sending of the data packet reception status report, and thus starts the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted does not need to be continuously transmitted, thereby avoiding resource waste.
[0021] In an optional way, when the first timer corresponds to the hole, the data packet sequence number of the one or more data packets to be transmitted is greater than or equal to M and less than X or N or Y.
[0022] Based on this, the receiving side RLC entity confirms that the data packet to be transmitted in the range greater than or equal to M and less than X or N or Y does not need to be continuously transmitted when the first timer expires, thereby avoiding resource waste.
[0023] In an optional way, when the first timer corresponds to the hole, the first variable is set when the first timer is started, and the data packet sequence number of the one or more data packets to be transmitted is greater than or equal to M and less than the first variable; wherein the value of the first variable is the same as the value of X or N or Y, or the value of the first variable is the same as the minimum value of X, Y and N.
[0024] Based on this, the receiving side RLC entity can maintain a first variable for determining the range of the data packet to be transmitted corresponding to the first timer. When the first timer expires, it is confirmed that the data packet to be transmitted in the range greater than or equal to M and less than the first variable does not need to be continuously transmitted, thereby avoiding resource waste.
[0025] In an alternative way, when the first timer corresponds to a data packet to be transmitted, the first timer is started for the data packet sequence numbers of the data packets to be transmitted in the first range when the conditions of the first way or the second way are met, the first range indicating greater than or equal to M and less than N. Based on this, the receiving side RLC entity determines that the corresponding data packets to be transmitted in the first range do not need to be continuously transmitted when the first timer expires, avoiding resource waste.
[0026] Or, when the third way is met, the first timer is started for the data packet sequence numbers of the data packets to be transmitted in the second range, the second range indicating greater than or equal to M and less than X. Based on this, the receiving side RLC entity determines that the corresponding data packets to be transmitted in the second range do not need to be continuously transmitted when the first timer expires, avoiding resource waste.
[0027] Or, when the fourth way or the fifth way is met, the first timer is started for the data packet sequence numbers of the data packets to be transmitted in the third range, the third range indicating greater than or equal to X and less than N, or greater than or equal to M and less than N. Based on this, the receiving side RLC entity determines that the corresponding data packets to be transmitted in the third range do not need to be continuously transmitted when the first timer expires, avoiding resource waste.
[0028] Or, when the sixth way is met, the first timer is started for the data packet sequence numbers of the data packets to be transmitted in the first range or the second range. Based on this, the receiving side RLC entity determines that the corresponding data packets to be transmitted in the first range or the second range do not need to be continuously transmitted when the first timer expires, avoiding resource waste.
[0029] In an alternative way, when one or more data packets to be transmitted are not received when the first timer expires, the receiving side RLC entity updates M to be the data packet sequence number of the next data packet that has not been successfully transmitted if it is determined that M corresponding data packets have been successfully transmitted; and / or, updates N to be the data packet sequence number of the next data packet that has not been successfully transmitted if it is determined that N corresponding data packets have been successfully transmitted; and / or, updates X to be the data packet sequence number of the next data packet that has not been successfully transmitted if it is determined that X corresponding data packets have been successfully transmitted. Wherein, when the first timer corresponds to a data packet to be transmitted, the data packet that has not been successfully transmitted refers to a data packet that has not been correctly received and for which the corresponding first timer has not been started or has not expired; when the first timer corresponds to a hole, the data packet that has not been successfully transmitted refers to a data packet that has not been correctly received and does not belong to the hole range for which the corresponding first timer has expired. Based on this, the sending window and the receiving window can be timely promoted, ensuring timely transmission of subsequent data.
[0030] In an alternative way, the duration of the first timer is greater than the duration of the second timer.
[0031] It should be noted that the duration of the first timer is usually configured by the network. The application does not specifically limit the duration of the first timer. Optionally, the duration of the first timer is greater than the duration of the second timer. It should be noted that when the above-mentioned mode one or mode two is met, the starting time of the first timer and the second timer can be the same. If the duration of the first timer is less than or equal to the duration of the second timer, the first timer has stopped working before the second timer times out, and the data packet that should be retransmitted is never retransmitted, so the RLC retransmission mechanism fails. Therefore, when the above-mentioned mode one or mode two is met, in order to ensure the normal operation of the RLC retransmission mechanism, the duration of the first timer is usually set to be greater than the duration of the second timer.
[0032] In an optional mode, when one or more data packets to be transmitted are not received when the first timer times out, the receiving side RLC entity updates M and / or N and / or X, and if the second timer is running and the first condition is met, the second timer is stopped and / or reset. The first condition includes one or more of the following: Y is equal to M, Y is equal to M+1 and the data packet corresponding to M does not exist discontinuous reception, or Y is out of the data packet reception window range.
[0033] Based on this, the receiving side RLC entity can determine the stopping and / or resetting time of the second timer, thereby avoiding triggering invalid data packet reception status report.
[0034] In an optional mode, when one or more data packets to be transmitted are not received when the first timer times out, the receiving side RLC entity updates M and / or N and / or X, and if the second timer is not running and the second condition is met, the second timer is started. The second condition includes one or more of the following: N>M+1; or, N=M+1, and the data packet corresponding to M is not transmitted successfully.
[0035] Based on this, the receiving side RLC entity can determine the starting time of the second timer, thereby triggering the data packet reception status report and feeding back the data packet reception status to the sending side communication device in time.
[0036] In a second aspect, the present application provides a communication method, which can be executed by a packet receiving side packet data convergence protocol (PDCP) entity. The packet receiving side can be a terminal or a network device. The terminal can be the terminal itself, a component (e.g., a processor, a chip, or a chip system) in the terminal, or a logic module or software that implements all or part of the terminal functions. The network device can be the network device itself, a component (e.g., a processor, a chip, or a chip system) in the network device, or a logic module or software that implements all or part of the network device functions. The present application does not specifically limit this. The following is executed:
[0037] receiving first information from the RLC entity, the first information comprising a sequence number of RLC data packets successfully transmitted by the RLC entity; and sending, to the RLC entity, a sequence number of RLC data packets that do not need to be transmitted if it is determined that the third timer has expired, the third timer being started by the PDCP entity when detecting packet loss.
[0038] In the present application, after the receiving side PDCP entity detects a hole, a reordering timer is started. If no data packet to be transmitted is received after the reordering timer expires, the receiving side RLC entity is sent a sequence number of RLC data packets that do not need to be transmitted. Based on this, the retransmission of data packets to be transmitted can be ended in advance, the waste of transmission resources can be reduced, the sending window and the receiving window can be timely pushed, the timely transmission of subsequent data can be ensured, and the needs of XR services can be adapted.
[0039] In an optional manner, the receiving side PDCP entity determines a sequence number of PDCP data packets that do not need to be transmitted; and determines a sequence number of RLC data packets that do not need to be transmitted according to the first information and the sequence number of PDCP data packets that do not need to be transmitted.
[0040] Based on this, the receiving side PDCP entity determines that the PDCP reordering timer has expired, so that it is determined that the data packets to be transmitted corresponding to the reordering timer do not need to be continuously transmitted, and resource waste is avoided.
[0041] In a third aspect, the present application provides a communication method, which can be executed by a packet receiving side RLC entity. The packet receiving side can be a terminal or a network device. The terminal can be the terminal itself, a component (e.g., a processor, a chip, or a chip system) in the terminal, or a logic module or software that implements all or part of the terminal functions. The network device can be the network device itself, a component (e.g., a processor, a chip, or a chip system) in the network device, or a logic module or software that implements all or part of the network device functions. The present application does not specifically limit this. The following is executed:
[0042] The first information is sent to the PDCP entity, and the first information includes the sequence number of the RLC data packet successfully transmitted by the RLC entity; and the sequence number of the RLC data packet not needing to be transmitted is received from the PDCP entity.
[0043] In an optional mode, if the first sequence number is equal to M, M is updated as the sequence number of the next unsuccessfully transmitted data packet; and / or, if the first sequence number is equal to N, N is updated as the sequence number of the next unsuccessfully transmitted data packet; and / or, if the first sequence number is equal to X, X is updated as the sequence number of the next unsuccessfully transmitted data packet; wherein the first sequence number is any one of the sequence numbers of the RLC data packets not needing to be transmitted, N indicates the sequence number of the next data packet of the maximum sequence number of the data packets received by the RLC entity within the data receiving window, M indicates the sequence number of the next data packet of the sequence number of the last data packet of the data packets correctly received by the RLC entity in succession, and X indicates the sequence number of the maximum unsuccessfully transmitted data packet indicated in the data packet receiving status report.
[0044] Based on this, the sending window and the receiving window can be timely promoted, and the timely transmission of subsequent data is ensured.
[0045] In a fourth aspect, an embodiment of the present application provides a communication apparatus, which can be a terminal or a network device. The communication apparatus has the functions of the first aspect to the third aspect, for example, the communication apparatus includes modules or units or means corresponding to the steps involved in the first aspect to the third aspect, and the functions or units or means can be implemented by software or hardware, or by executing corresponding software by hardware.
[0046] In a possible design, the communication apparatus includes a processing unit and a transceiver unit. The transceiver unit can be configured to transceive signals to implement communication between the communication apparatus and another apparatus, for example, the transceiver unit is configured to receive the first information. The processing unit can be configured to perform some internal operations of the communication apparatus. The transceiver unit can be referred to as an input output unit, a communication unit, etc., and can be a transceiver. The processing unit can be a processor, a processing circuit, a logic circuit, etc.
[0047] In yet another possible design, the communication apparatus includes a processor, and can further include a transceiver for transceiving signals. The processor executes program instructions to complete the method in any possible design or implementation manner of the first aspect to the third aspect. The communication apparatus can further include one or more memories coupled to the processor. The memories can store the necessary computer programs or instructions for implementing the functions related to the first aspect to the third aspect. The processor can execute the computer programs or instructions stored in the memories, and when the computer programs or instructions are executed, the communication apparatus can implement the method in any possible design or implementation manner of the first aspect to the third aspect.
[0048] In yet another possible design, the communication apparatus includes a processor, and can further include a transceiver for transceiving signals. The processor executes program instructions to complete the method in any possible design or implementation manner of the first aspect to the third aspect. The communication apparatus can further include one or more memories coupled to the processor. The memories can store the necessary computer programs or instructions for implementing the functions related to the first aspect to the third aspect. The processor can execute the computer programs or instructions stored in the memories, and when the computer programs or instructions are executed, the communication apparatus can implement the method in any possible design or implementation manner of the first aspect to the third aspect.
[0049] In yet another possible design, the communication apparatus includes a processor and an interface circuit. The processor is configured to communicate with other apparatuses through the interface circuit, and execute the method in any possible design or implementation manner of the first aspect to the third aspect.
[0050] It can be understood that, in the fifth aspect, the processor can be implemented by hardware or software. When implemented by hardware, the processor can be a logic circuit, an integrated circuit, or the like. When implemented by software, the processor can be a general-purpose processor, which reads software codes stored in the memory to implement the functions. In addition, the processor can be one or more, and the memory can be one or more. The memory can be integrated with the processor, or the memory and the processor can be separately arranged. In a specific implementation process, the memory and the processor can be integrated on the same chip, or can be separately arranged on different chips. The type of the memory and the arrangement manner of the memory and the processor are not limited in the embodiments of the present application.
[0051] In the fifth aspect, the embodiments of the present application provide a communication system including the terminal or the network device for executing the method in the first aspect to the third aspect. In addition, it should be noted that in each aspect, there can be a process executed by multiple devices or network elements interacting with each other, and the corresponding process can not be executed by a single device or network element. The corresponding process is mainly executed by the corresponding devices or network elements interacting with each other, which will not be described here.
[0052] In a sixth aspect, the present application provides a chip system, which comprises a processor and can further comprise a memory, and is used to implement the method of the first aspect to the third aspect. The chip system can be composed of a chip or can comprise a chip and other discrete devices.
[0053] In a seventh aspect, the present application further provides a computer readable storage medium, which stores computer readable instructions, and when the computer readable instructions are run on a computer, the computer is caused to execute the method of the first aspect to the third aspect.
[0054] In an eighth aspect, the present application provides a computer program product comprising instructions which, when executed on a computer, cause the computer to perform the method of any of the embodiments of the first aspect to the third aspect. BRIEF DESCRIPTION OF DRAWINGS
[0055] FIG. 1 shows an architecture diagram of a network device;
[0056] FIG. 2 shows an architecture diagram of a network device;
[0057] FIG. 3 shows a user protocol stack diagram;
[0058] FIG. 4A shows a data packet transmission diagram;
[0059] FIG. 4B shows a data packet transmission diagram;
[0060] FIG. 5 shows a flow diagram of a communication method according to an embodiment of the present application;
[0061] FIG. 6A shows a data packet transmission diagram;
[0062] FIG. 6B shows a data packet transmission diagram;
[0063] FIG. 6C shows a data packet transmission diagram;
[0064] FIG. 6D shows a data packet transmission diagram;
[0065] FIG. 7 shows a data packet transmission diagram;
[0066] FIG. 8 shows a flow diagram of a communication method according to an embodiment of the present application;
[0067] FIG. 9 shows a data packet transmission diagram;
[0068] FIG. 10 shows a flow diagram of a communication method according to an embodiment of the present application;
[0069] FIG. 11 shows a data packet transmission diagram;
[0070] FIG. 12 shows a structural schematic diagram of a communication apparatus provided by an embodiment of the present application;
[0071] FIG. 13 shows a structural schematic diagram of a communication apparatus provided by an embodiment of the present application;
[0072] FIG. 14 shows a structural schematic diagram of a communication apparatus provided by an embodiment of the present application. DETAILED DESCRIPTION
[0073] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the drawings. The specific operation methods in the method embodiments can also be applied to the device embodiments or system embodiments. In the description of the present application, unless otherwise specified, the meaning of "multiple" is two or more. Therefore, the implementation of the device and the method can be referred to each other, and the repeated parts will not be described again.
[0074] In the description of the embodiments of the present application, the association relationship of "and / or" between the associated objects means that there can be three relationships, for example, A and / or B can mean that there are three cases of A alone, A and B together, and B alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after it.
[0075] It should be understood that in the present application, "at least one" means one or more. "Multiple" means two or more. "At least two" means two or more. "At least one" or the like means any combination of these items, including any combination of single or multiple items. For example, at least one 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.
[0076] The terms "first", "second" and corresponding term labels in the present application are used to distinguish similar objects, and do not necessarily describe a specific order or sequence. It should be understood that the terms used in this way can be interchanged under appropriate circumstances, which is only a distinguishing way used in the description of the objects with the same properties in the embodiments of the present application. The method and device provided by the embodiments of the present application are based on the same or similar technical concepts. Since the principles of the method and device for solving problems are similar, the implementation of the device and the method can be referred to each other, and the repeated parts will not be described again.
[0077] The method provided by the embodiments of the present application can be applied to various mobile communication systems, for example, can be an internet of things (IoT), narrow band internet of things (NB-IoT), can be a 4th generation (4G) communication system (for example, long term evolution (LTE)), can also be a 5th generation (5G) communication system (for example, 5G new radio (NR)), can also be a mixed architecture of LTE and NR, and can also be a new communication system in future communication development, and the like. The communication system can also include a machine to machine (M2M) network, machine type communication (MTC), or other networks.
[0078] In order to facilitate understanding of the embodiments of the present application, the application scenarios used by the present application are described by taking the architecture of the communication system shown in FIG. 1 as an example. As shown in FIG. 1, the communication system includes a data network (DN), a core network, and an access network. The access network includes at least one access network device, and the access network can also include at least one terminal device, for example, the terminal device can be the XR device shown in FIG. 1. The transmission path of the downlink data is that the data generated by the application server is forwarded through the data network, sent to the core network through the N6 interface, the data is transmitted to the access network device by the core network through the N3 interface, and the data is sent to the XR device by the access network device through the Uu air interface. The transmission path of the uplink data is opposite to that of the downlink data, and the specific process is not described herein. The terminal devices can also communicate through a sidelink (SL).
[0079] It can be understood that FIG. 1 only shows one possible communication system architecture to which the embodiments of the present application can be applied, and in other possible scenarios, other devices can also be included in the communication system architecture.
[0080] In the embodiments of the present application, the network device can be a device in a wireless network, and the network device can also be referred to as a network apparatus or a radio access network device or an access network device. For example, the network device can be a radio access network (RAN) node that accesses a terminal device to a wireless network, and can also be referred to as an access network device. The network device includes but is not limited to: a base station, an evolved NodeB (eNodeB), a transmission reception point (TRP), a next generation NodeB (gNB) in a 5th generation (5G) mobile communication system, an access network device in an open radio access network (O-RAN), a base station in a future mobile communication system, or an access node in a wireless fidelity (WiFi) system, etc.; or can be a module or unit that completes part of the function of the base station, for example, can be a centralized unit (CU), a distributed unit (DU), a centralized unit control plane (CU-CP) module, or a centralized unit user plane (CU-UP) module. The access network device can be a macro base station, or a micro base station or an indoor station, or a relay node or a donor node, etc. The specific technology and specific device form of the network device adopted in the present application are not limited.
[0081] As shown in FIG. 2, in some implementations, a network device can include a centralized unit (CU) and a distributed unit (DU). A RAN device including a CU node and a DU node splits the protocol layers of a gNB in the NR system, with some of the protocol layers' functions being centrally controlled at the CU and the rest or all of the protocol layers' functions being distributed in the DU, with the CU centrally controlling the DU. One CU can be associated with one or more DUs. In one typical protocol stack split, the CU includes the radio resource control (RRC) and the control-plane corresponding packet data convergence protocol (PDCP), and the DU includes the RLC layer, the media access control (MAC) layer, and the physical (PHY) layer. Further, the CU can be further split into a control plane (CU-CP) and a user plane (CU-UP). The CU-CP is responsible for control plane functions, mainly including the RRC and the control-plane corresponding PDCP (i.e., PDCP-C). The PDCP-C is mainly responsible for encryption and decryption of control plane data, integrity protection, data transmission, etc. The CU-UP is responsible for user plane functions, mainly including the service data adaptation protocol (SDAP) and the user-plane corresponding PDCP (i.e., PDCP-U). The SDAP is mainly responsible for processing data of the core network and mapping a flow to a bearer. The PDCP-U is mainly responsible for encryption and decryption of the data plane, integrity protection, header compression, sequence number maintenance, data transmission, etc. The CU-CP and the CU-UP are connected through an El interface. The CU-CP represents the gNB to connect with the core network through an NG interface, and to connect with the DU through a control plane (i.e., Fl-C) of an Fl interface. The CU-UP connects with the DU through a user plane (i.e., Fl-U) of the Fl interface. Of course, there is also a possible implementation that the PDCP-C is in the CU-UP.
[0082] It can be understood that in different systems, the CU (including CU-CP or CU-UP) or DU can also have different names, but those skilled in the art can understand its meaning. For example, in an open radio access network (O-RAN) system, the CU can also be referred to as an O-CU (open CU), the DU can also be referred to as an O-DU, the CU-CP can also be referred to as an O-CU-CP, and the CU-UP can also be referred to as an O-CU-UP. For the convenience of description, the CU, CU-CP, CU-UP and DU are taken as examples for description in the present application. The network device can also include an active antenna unit (AAU). The CU implements part of the functions of the gNB, and the DU implements part of the functions of the gNB. For example, the CU is responsible for processing non-real-time protocols and services, and implements the functions of the RRC layer. The DU is responsible for processing physical layer protocols and real-time services, and implements the functions of the RLC layer, the MAC layer and the physical layer.
[0083] When applied to O-RAN, the network device can also have an artificial intelligence (AI) function, for example, the O-RAN includes an intelligent controller. The intelligent controller can be a non-real-time RAN intelligent controller (non-real time RAN intelligent controller, non-RT RIC / NRT RIC), or a near-real-time RAN intelligent controller (near-real time RAN intelligent controller, near-RT RIC / nRT RIC). The non-real-time RIC can be used to implement non-real-time intelligent management of RAN functions, can implement a workflow including model training and model updating, and guide applications / functions in the nRT RIC based on a policy. The near-real-time RIC can be used to implement near-real-time intelligent management of the RAN. Through data collection and related operations on the E2 interface, near-real-time control and optimization of modules and resources of the O-RAN are implemented.
[0084] The terminal device involved in the embodiments of the present application can be a wireless terminal device capable of receiving network device scheduling and indication information. The terminal device can also be referred to as a terminal device, a user equipment (UE), a terminal, a mobile station (MS), a mobile terminal (MT), etc. The terminal device can be a device including a wireless communication function (providing voice / data connectivity to users). For example, a handheld device with wireless connection function, or a vehicle-mounted device, a vehicle-mounted module, etc. At present, some examples of terminal devices are: a mobile phone, a tablet computer, a notebook computer, a palm computer, a mobile internet device (MID), a wearable device, a virtual reality (VR) device, an augmented reality (AR) device, a wireless terminal in industrial control, a wireless terminal in vehicle networking, a wireless terminal in self driving, a wireless terminal in remote medical surgery, a wireless terminal in smart grid, a wireless terminal in transportation safety, a wireless terminal in smart city, or a wireless terminal in smart home, a device-to-device (D2D) terminal device, a vehicle-to-everything (V2X) communication terminal device, a smart vehicle, a telematics box (T-box), a machine-to-machine / machine-type communications (M2M / MTC) terminal device, an internet of things (IoT) terminal device, etc. For example, the terminal device can be a vehicle-mounted device, a whole vehicle device, a vehicle-mounted module, a vehicle, an on board unit (OBU), a roadside unit (RSU), a T-box, a chip or a system on chip (SOC), etc. The above-mentioned chip or SOC can be installed in a vehicle, an OBU, an RSU or a T-box. The wireless terminal in industrial control can be a camera, a robot, etc. The wireless terminal in smart home can be a television, an air conditioner, a sweeper, a sound box, a set-top box, etc.The terminal device can also be a V2X device, for example, a smart car or an intelligent car, a digital car, an unmanned car or a driverless car or a pilotless car or an automobile, a self-driving car or an autonomous car, a pure EV or a Battery EV, a hybrid electric vehicle (HEV), a range extended EV (REEV), a plug-in HEV (PHEV), a new energy vehicle, a road site unit (RSU).
[0085] The communication between the terminal and the network device follows a certain wireless protocol stack. For example, the wireless protocol stack between the terminal and the network device includes a control plane protocol stack and a user plane protocol stack. Among them, the control plane protocol stack is the protocol stack adopted for the terminal and the network device to transmit control signaling, and the user plane protocol stack is the protocol stack adopted for the terminal and the network device to transmit user data. For example, the control plane protocol stack can include a radio resource control (RRC) layer, a PDCP layer, an RLC layer, a media access control (MAC) layer and a physical layer (PHY). As shown in FIG. 3, the user plane protocol stack includes a PDCP layer, an RLC layer, a MAC layer and a PHY layer. Optionally, a service data adaptation protocol (SDAP) layer can also be included above the PDCP layer. Among them, the SDAP layer, the PDPC layer, the RLC layer, the MAC layer and the PHY layer can be collectively referred to as an access layer. For specific description of each protocol stack, please refer to the relevant technical specifications of 3GPP.
[0086] In this application, eXtended Reality (XR) refers to various types of environments generated by combining reality and virtuality through computing technology and wearable devices, as well as human-computer interaction, which specifically includes the following typical forms:
[0087] - Augmented Reality (AR);
[0088] - Mixed Reality (MR);
[0089] - Virtual Reality (VR).
[0090] XR is one of the 5G multimedia applications that is currently considered as a focus in the industry. Generally, XR traffic periodically generates data frames at a certain frame rate. The frame rate can also be referred to as the frame generation rate. The unit of the frame rate is frame per second (fps). Taking an AR service with a frame rate of 60 fps as an example, 60 video frames are generated per second, and a video frame occurs approximately every 16.66 ms. A video frame can be transmitted by multiple data packets, which can be divided into one or more protocol data unit (PDU) sets.
[0091] XR data / traffic usually has a higher transmission delay requirement. Therefore, the concept of remaining time and reporting mechanism are introduced. The remaining time refers to the remaining time available for air interface transmission of data. Here, the data can be a data packet or a set of multiple data packets, such as a PDU set. Taking the uplink AR service as an example, the typical packet delay budget (PDB) is 30 ms, i.e., the upper limit of the transmission delay between the access layer of the terminal device where the data packet arrives and the N6 interface of the user plane function (UPF) where the data packet arrives is 30 ms. If the data packet is not successfully transmitted within the PDB requirement time, the data packet is considered to have timed out and lost its effect. In this case, the remaining time can refer to the PDB remaining for the data.
[0092] Alternatively, the PDU set delay budget (PSDB) can also be considered in XR traffic, which has a similar meaning to PDB and defines the upper limit of the transmission delay of a PDU set (i.e., a group of data packets). For uplink XR traffic, PSDB refers to the upper limit of the time from the access layer of the terminal device where the first data packet in the PDU set arrives to the N6 interface of the UPF where the last data packet arrives. For downlink, it is the opposite. In this case, the remaining time can refer to the PSDB remaining for the data.
[0093] Suppose the PDB of a data packet is 20 ms, and the data packet arrives at the buffer of the terminal device and has not been transmitted for 5 ms, then the remaining time of the data packet is only 15 ms, and the network device needs to schedule the data packet in 15 ms to ensure its transmission. Alternatively, the remaining time can be determined according to the remaining time of the discard timer of the data. When the data arrives at the buffer of the terminal device, the terminal device starts a discard timer for the data. When the discard timer expires, the terminal device discards the corresponding data. That is, the data transmission must be completed before the discard timer expires. Usually, the timing length of the discard timer is equal to the PDB / PSDB of the data, and thus the remaining time is equivalent to the remaining PDB / PSDB.
[0094] In the 5G network, data packets may be lost or incorrect when transmitted through the air interface due to channel quality and other reasons. Therefore, in order to improve the reliability of data transmission, the 5G supports the RLC retransmission mechanism (also referred to as the RLC acknowledged mode (AM)).
[0095] When the RLC AM is used, the receiving side RLC entity detects a lost packet and starts a reassembly timer (i.e., the second timer in the following), and when the reassembly timer expires, sends a data packet reception status report to the sending side RLC entity. In addition, the reassembly timer can also be understood as being used to trigger the data packet reception status report. The data packet reception status report indicates which data packets have been correctly received or have not been correctly received or have been successfully transmitted, so that the sending side can retransmit the data packets that have not been correctly transmitted.
[0096] The following briefly introduces the transmission mode of the data packet as follows:
[0097] A data packet can be divided into multiple small data packets for air interface transmission, and the multiple small data packets have the same sequence number (SN). The correct reception of a data packet (also referred to as successful transmission) means that all the small data packets corresponding to the data packet are completely received. For example, a data packet with SN=5 is divided into three small data packets, the first small data packet occupies 0-100 bytes, the second small data packet occupies 100-150 bytes, and the third small data packet occupies 150-200 bytes. The header of each small data packet carries the occupied byte information, and in addition, the header of the last small data packet also carries information that the small data packet is the tail of the SN. If the receiving side RLC entity arranges the received small data packets in sequence based on the header information to completely occupy 0-200 bytes, it is determined that the data packet with SN=5 is correctly received. If the receiving side RLC entity arranges the received small data packets in sequence based on the header information to not completely occupy 0-200 bytes, it is determined that the data packet with SN=5 is not correctly received (or referred to as already received or partially received), for example, the first small data packet and the third small data packet are received and the second small data packet is not received. This is only an illustrative example.
[0098] In order to implement RLC AM, the sending side and the receiving side respectively maintain a number of variables to determine the data packets that need to be retransmitted. Specifically, the following variables are included:
[0099] The sending side:
[0100] TX_Next_ACK (sending side data packet sequence number to be acknowledged): indicates the next SN of the maximum SN of the data packet that the sending side RLC entity acknowledges (or determines or verifies) as correctly transmitted. The TX_Next_ACK is usually updated after the sending side RLC entity receives a data reception status report. The initial value of TX_Next_ACK is 0, and when the data packet with the SN equal to TX_Next_ACK is successfully transmitted (or correctly transmitted), TX_Next_ACK is updated. For example, the sending side RLC entity has acknowledged that data packets 0, 1, 2, 4, and 5 are successfully transmitted, then TX_Next_ACK is equal to 3, and when the sending side RLC entity acknowledges that data packet 3 is correctly transmitted, TX_Next_ACK is updated to 6.
[0101] TX_Next (sending side data packet sequence number to be allocated): indicates the SN of the next data packet to be allocated by the sending side RLC entity. The initial value of TX_Next is 0, and when the sending side RLC entity receives a data packet from the upper layer (such as a PDCP entity), the RLC entity sets the SN of the data packet to TX_Next and increases TX_Next by 1. For example, when TX_Next is equal to 3, the RLC entity receives a data packet from the upper layer, then sets the SN of the data packet to 3 and updates TX_Next to 4.
[0102] In particular, for the transmitting side, the SN range equal to or greater than TX_Next_ACK and less than TX_Next_ACK + AM_Window_Size is called the transmitting window. The transmitting side RLC entity should not deliver to lower layer (e.g. MAC entity) the data packet outside the transmitting window. Wherein, AM_Window_Size represents the window size, which can take the value of 2048 or 131072 in 5G, and the size of the window is usually determined by network configuration. Correspondingly, for the receiving side, the SN range equal to or greater than RX_Next (understood by referring to the description below) and less than RX_Next + AM_Window_Size is called the receiving window, and when the receiving side receives the data packet outside the receiving window, the receiving side discards the data packet.
[0103] Receiving side:
[0104] RX_Next (the data packet sequence number expected to be received by the receiving side) (i.e. M in the following): indicates the data packet sequence number of the next data packet of the data packet sequence number of the last data packet (the data packet with the largest SN) among the data packets that have been continuously and correctly received by the receiving side RLC entity. The initial value of RX_Next is 0, and RX_Next is updated after the data packet with SN = RX_Next is correctly received. For example, the receiving side RLC entity has continuously and correctly received data packets 0, 1, 2, 4, 5, the RLC entity continuously and correctly receives data packets 0, 1, 2, the data packet sequence number of the last data packet is 2, and the next data packet sequence number of 2 is 3, then RX_Next is equal to 3. When the receiving side correctly receives data packet 3, at this time, the RLC entity continuously and correctly receives data packets 0, 1, 2, 3, 4, 5, the data packet sequence number of the last data packet is 5, and the next data packet sequence number of 5 is 6, then RX_Next is updated to 6.
[0105] RX_Next_Highest (the next data packet sequence number of the highest received data packet on the receiving side, also referred to as N below): indicates the next data packet sequence number of the highest data packet sequence number of the data packets (including partial reception) that the RLC entity on the receiving side has received. The RX_Next_Highest is updated in real time. The initial value of RX_Next_Highest is 0, and the RLC entity on the receiving side updates RX_Next_Highest when it receives a data packet with a sequence number greater than or equal to RX_Next_Highest. For example, the RLC entity on the receiving side has received all or part of data packets 0, 1, 2, 4, and 5, the highest data packet sequence number is 5, and the next data packet sequence number of 5 is 6, so RX_Next_Highest is equal to 6. When all or part of data packet 6 is received, the highest data packet sequence number is 6, and the next data packet sequence number of 6 is 7, so RX_Next_Highest is updated to 7.
[0106] RX_Next_Status_Trigger (the data packet sequence number of the reassembly timer trigger on the receiving side, also referred to as Y below): indicates the data packet sequence number corresponding to RX_Next_Highest (also referred to as N) when the reassembly timer (also referred to as the second timer) is triggered. If RX_Next_Highest > RX_Next + 1, or RX_Next_Highest = RX_Next + 1 and the data packet corresponding to RX_Next is not correctly received (which can be understood as not completely received), the RLC entity on the receiving side confirms that there is a missing packet (or a data packet that is not correctly received, or a hole exists) between RX_Next_Highest and RX_Next. For example, as shown in FIG. 4A, the RLC entity on the receiving side has correctly received data packets 0, 1, 2, 4, and 5, the RLC entity has continuously correctly received data packets 0, 1, and 2, the last data packet has a data packet sequence number of 2, and the next data packet sequence number of 2 is 3, so RX_Next is equal to 3. The RLC entity has received a data packet with a highest data packet sequence number of 5, the next data packet sequence number of 5 is 6, and RX_Next_Highest is equal to 6. RX_Next_Highest > RX_Next + 1 (3 + 1), so it is confirmed that there is a hole. The RLC entity starts the reassembly timer when it determines that there is a hole, and sends a data packet reception status report to the RLC entity on the sending side when the reassembly timer times out. When the RLC entity starts the reassembly timer, RX_Next_Status_Trigger is set to RX_Next_Highest, that is, 6. In FIG. 4A, data packets 0, 1, 2, 4, and 5 are shown as data packets that have been correctly received, and data packets 3 and 6 are shown as data packets that have not been received at all.
[0107] Exemplarily, as shown in FIG. 4B, the receiving side RLC entity has continuously correctly received data packet 0, 1, received part of data packet 2, the RLC entity continuously correctly receives data packet 0, 1, the data packet sequence number of the last data packet is 1, the next data packet sequence number of 1 is 2, then RX_Next is equal to 2. The maximum data packet sequence number of the data packet received by the RLC entity is 2, the next data packet sequence number of 2 is 3, then RX_Next_Highest is equal to 3, RX_Next_Highest = RX_Next + 1 (2 + 1), and data packet 2 is not successfully transmitted, then it is confirmed that there is a hole. The RLC entity starts a reassembly timer when it is determined that there is a hole, and sends a data packet reception status report to the sending side RLC entity when the reassembly timer times out. When the RLC entity starts the reassembly timer, RX_Next_Status_Trigger is set to RX_Next_Highest, that is, 3. In FIG. 4B, data packets 0, 1 are taken as data packets that have been correctly received, data packet 3 is taken as a data packet that has not been received at all, and data packet 2 is taken as a data packet that has been partially received.
[0108] RX_Highest_Status (the packet sequence number of the upper bound of the received packet status report of the receiving side data packet): indicates the packet sequence number of the largest unsuccessfully transmitted data packet in the data packet reception status report. The RX_Highest_Status is updated after the reassembly timer expires or the data packet with SN = RX_Highest_Status is correctly received. The initial value of RX_Highest_Status is 0, and when the data packet with SN equal to RX_Highest_Status is correctly received, RX_Highest_Status is updated to the SN of the next unsuccessfully received data packet. Or when the reassembly timer expires, RX_Highest_Status is updated to the SN of the first unsuccessfully received data packet after RX_Next_Status_Tigger (including RX_Next_Status_Tigger). For example, the receiving side RLC entity has continuously correctly received data packets 0, 1, 2, 4, the RLC entity has continuously correctly received data packets 0, 1, 2, the last data packet has a packet sequence number of 2, and the next packet sequence number of 2 is 3, at this time RX_Next is equal to 3. The receiving side RLC entity has correctly received data packets 0, 1, 2, and has not received data packet 3, so RX_Highest_Status is equal to 3. The largest data packet sequence number of the data packet received by the RLC entity is 4, the next packet sequence number of 4 is 5, and RX_Next_Highest is equal to 5. RX_Next_Highest > RX_Next + 1 (3 + 1), so it is confirmed that there is an unsuccessfully received data packet. At this time, the RLC entity starts the reassembly timer and sets RX_Next_Status_Trigger to RX_Next_Highest, that is, 5. When the reassembly timer expires, the first unsuccessfully received data packet sequence number after RX_Next_Status_Trigger is 5, RX_Highest_Status is updated to 5, and a data packet reception status report is sent to the sending side RLC entity. The largest unsuccessfully transmitted data packet sequence number that can be indicated in the data packet reception status report is RX_Highest_Status, at this time RX_Highest_Status is equal to 5.
[0109] For example, the receiving side RLC entity has correctly received packets 0, 1, 2, 5, the RLC entity has continuously correctly received packets 0, 1, 2, the last packet has a packet sequence number 2, the next packet sequence number of 2 is 3, RX_Next is equal to 3 at this time. The receiving side RLC entity has correctly received packets 0, 1, 2, has not received packet 3, RX_Highest_Status is equal to 3. The maximum packet sequence number of the packets received by the RLC entity is 5, the next packet sequence number of 5 is 6, RX_Next_Highest is equal to 6. RX_Next_Highest > RX_Next + 1 (3 + 1), it is confirmed that there is a packet that has not been correctly received. At this time, the RLC entity starts the reassembly timer, and sets RX_Next_Status_Trigger to RX_Next_Highest, that is, 6. When the reassembly timer expires, the first packet that has not been correctly received after RX_Next_Status_Trigger is 6, RX_Highest_Status is updated to 6, and a packet reception status report is sent to the sending side RLC entity. The maximum packet sequence number of the packets that have not been successfully transmitted that can be indicated in the packet reception status report is RX_Highest_Status, that is, 6.
[0110] When the packet reception status report is triggered, the receiving side RLC entity can generate a status PDU, which contains information about whether part or all of the packets in the SN range greater than or equal to RX_Next and less than or equal to RX_Highest_Status are correctly received. After receiving the packet reception status report, the sending side RLC entity can update TX_Next_ACK, and perform packet retransmission based on the packets that have not been correctly received indicated in the data reception status report until it is confirmed that the packet is correctly received.
[0111] The RLC retransmission mechanism can guarantee correct transmission of the packet over the air interface, but the sending side RLC entity will always arrange the packet to be retransmitted before confirming that the packet is correctly transmitted. This way, there is a problem of resource waste for time-sensitive services. For example, for XR services, the time delay requirement is ten to several tens of milliseconds, and time delay exhausted packet retransmission not only wastes transmission resources, but also affects the transmission of subsequent data and affects service experience. In the RLC retransmission mechanism, the sending side RLC entity does not consider the time delay budget of the data, and even if the data has timed out, as long as it has not been correctly transmitted, it will always be retransmitted, which not only wastes transmission resources, but also may cause the sending window and the receiving window to not be able to advance in time, affecting the transmission of subsequent data.
[0112] To solve the above problems, in the third generation partnership project (3GPP) R19 standard research, it is proposed that when the receiving side RLC entity determines that the data packet is timed out or no longer needs to be retransmitted, when feeding back the data packet receiving status report, for the data packet that no longer needs to be retransmitted, even if it has not been correctly received, the receiving side RLC entity feeds back correct reception (equivalent to feeding back a false positive acknowledgment (ACK)) for it. Based on this, the sending side considers that the data packet has been correctly received, and no longer performs retransmission. In this way, the receiving side and the sending side end the data packet retransmission in advance, and update the receiving window and the sending window. Further, the receiving side can determine that the data packet no longer needs to be retransmitted through a timer, but the specific design of the timer is not clear.
[0113] Based on this, the present application provides a method for configuring a timer, which can adapt to the needs of XR services when the RLC retransmission mechanism is enabled, reduce the waste of transmission resources, and timely promote the sending window and the receiving window to ensure the timely transmission of subsequent data. This scheme mainly involves the processing operation of the data packet receiving side RLC entity, in addition, it also involves the data interaction between the receiving side RLC entity and the receiving side upper layer PDCP entity and the RLC entity of the data packet sending side. The following describes the scheme of the present application in three embodiments. In embodiment one, a timer is configured for each to-be-transmitted data packet in the hole. In embodiment two, one timer is set for one or more to-be-transmitted data packets (or for one hole) in the hole. In embodiment three, the reordering timer corresponding to the PDCP entity determines how to end the retransmission of the to-be-transmitted data packet. Wherein, the hole can be understood with reference to the introduction of RX_Next_Status_Trigger, which is not described here. Wherein, the to-be-transmitted data packet is a data packet transmitted by the sending side RLC entity to the receiving side RLC entity, but not correctly received by the receiving side RLC entity (may only receive part of the data packet (for example, data packet 2 in FIG. 4B) or all are not received (for example, data packet 3 in FIG. 4B)).
[0114] Wherein, when the communication device of the data packet receiving side is a terminal, correspondingly, the communication device corresponding to the data packet sending side is a network device. When the communication device of the data packet receiving side is a network device, correspondingly, the communication device corresponding to the data packet sending side is a terminal. The above-mentioned terminal can be understood as a terminal device itself, and can also be understood as a component (such as a processor, a chip, or a chip system) in the terminal, or can also be a logic module or a chip for realizing all or part of the terminal function. The above-mentioned network device can be understood as a terminal device itself, and can also be understood as a component (such as a processor, a chip, or a chip system) in the network device, or can also be a logic module or a chip for realizing all or part of the network device function.
[0115] Embodiment one, configure timer for each data packet to be transmitted in the hole
[0116] Referring to the data interaction between the data packet receiving side RLC entity (referred to as RLC receiving entity) and the data packet sending side RLC entity (referred to as RLC sending entity) as shown in FIG. 5, the following is executed:
[0117] Step 501, the RLC receiving entity determines whether there is a discontinuous reception data packet in the data packet receiving window. If there is, step 502 is executed, and if there is not, step 503 is executed.
[0118] Among them, the data packet receiving window is also the SN range greater than or equal to RX_Next and less than RX_Next+AM_Window_Size. The presence of a discontinuous reception data packet in the data packet receiving window can be determined in one of the following ways:
[0119] Method one, N>M+1, where N (also referred to as RX_Next_Highest above) indicates the next data packet sequence number of the maximum data packet sequence number of the data packet received by the RLC entity in the data packet receiving window; M (also referred to as RX_Next above) indicates the next data packet sequence number of the data packet sequence number of the last data packet correctly received by the RLC entity. The above description related to RX_Next_Highest and RX_Next can be referred to for understanding, and will not be repeated here.
[0120] Exemplarily, as shown in FIG. 4A above, the RLC receiving entity has correctly received data packets 0, 1, 2, 4, 5, the RLC receiving entity has continuously correctly received data packets 0, 1, 2, RX_Next is equal to 3, RX_Next_Highest is equal to 6, RX_Next_Highest> RX_Next+1 (3+1). Data packet 3 is not successfully transmitted, so the RLC entity determines that there is a discontinuous reception data packet in the receiving window [3, 3+AM_Window_Size].
[0121] In this way, the RLC receiving entity determines that there is a to-be-transmitted data packet that has not been successfully transmitted before the data packet corresponding to N in the receiving window, and then the RLC receiving entity can determine whether the to-be-transmitted data packet needs to be continuously retransmitted through the subsequent steps, avoiding resource waste caused by continuous retransmission after data packet timeout.
[0122] Method two, N=M+1, and the data packet corresponding to M is not successfully transmitted.
[0123] For example, as shown in FIG. 4B, the RLC receiving entity has correctly received data packet 0 and 1, and has received part of data packet 2. The RLC receiving entity has continuously correctly received data packet 0 and 1, RX_Next equals 2, RX_Next_Highest equals 3, RX_Next_Highest = RX_Next + 1 (2 + 1), and data packet 2 has not been successfully transmitted. Then, the RLC entity determines that there is a discontinuous reception data packet in the receiving window [2, 2 + AM_Window_Size].
[0124] In this way, the RLC receiving entity determines that the data packet corresponding to M has not been successfully transmitted in the receiving window, and then the RLC receiving entity can determine whether the data packet corresponding to M needs to be continuously retransmitted through subsequent steps, so as to avoid resource waste caused by continuous retransmission of the data packet after the data packet expires.
[0125] In the third mode, when the second timer (i.e., the reassembly timer) expires, X (i.e., RX_Highest_Status) is updated to the data packet number of the first data packet with a data packet number greater than or equal to Y (i.e., RX_Next_Status_Trigger) and not successfully transmitted, and the second timer is used to trigger a data packet reception status report. X indicates the data packet number of the largest data packet not successfully transmitted in the data packet reception status report, and Y indicates the data packet number corresponding to N when the second timer is triggered. For details, refer to the description of RX_Highest_Status and RX_Next_Status_Trigger.
[0126] It should be noted that when the second timer expires, the RLC receiving entity has detected that there is a discontinuous reception data packet (or a hole) in the receiving window, and triggers the sending of a data packet reception status report to the RLC sending entity.
[0127] Exemplarily, as shown in FIG. 6A, the RLC receiving entity has correctly received data packets 0, 1, 5, and since the data packets 2, 3, 4 between data packet 1 and data packet 5 are all not received, the RLC receiving entity continuously correctly receives data packets 0, 1. The data packet sequence number of the last received data packet in the continuously correctly received data packets 0, 1 is 1, and the next data packet sequence number of 1 is 2, at this time RX_Next is equal to 2. The maximum data packet sequence number of the data packets received by the RLC receiving entity is 5, and the next data packet sequence number of 5 is 6, RX_Next_Highest is equal to 6. RX_Next_Highest > RX_Next + 1 (2 + 1), so it is confirmed that there is a data packet not correctly received (or called a hole). At this time, the RLC receiving entity starts the reassembly timer, RX_Next_Status_Tigger is equal to 6, and when the reassembly timer times out, the SN of the first data packet not correctly received which is greater than or equal to RX_Next_Status_Tigger is 6, and RX_Highest_Status is updated to 6. In FIG. 6A, data packets 0, 1, 5 are shown as data packets that have been correctly received, and data packets 2, 3, 4 and 6 are all data packets not received.
[0128] Exemplarily, as shown in FIG. 6B, the RLC receiving entity has correctly received data packets 0, 1, 5, and since the data packets 2, 3, 4 between the data packet 1 and the data packet 5 are all not received, the RLC receiving entity continuously correctly receives the data packets 0, 1. The data packet sequence number of the last received data packet in the continuously correctly received data packets 0, 1 is 1, and the next data packet sequence number of 1 is 2, at this time, RX_Next is equal to 2. The maximum data packet sequence number of the data packet received by the RLC receiving entity is 5, and the next data packet sequence number of 5 is 6, RX_Next_Highest is equal to 6. RX_Next_Highest> RX_Next+1 (2+1), and it is confirmed that there is a data packet not correctly received (or called a hole). At this time, the RLC receiving entity starts the reassembly timer, and RX_Next_Status_Tigger is equal to 6. If the RLC receiving entity correctly receives the data packet 6 before the reassembly timer expires, RX_Next_Highest is updated to 7. When the reassembly timer expires, the SN of the first data packet not correctly received which is greater than or equal to RX_Next_Status_Tigger is 7, and RX_Highest_Status is updated to 7. In FIG. 6B, before the reassembly timer is started, the data packets 0, 1, 5 are the data packets correctly received, and the data packets 2, 3, 4 and 6 are all not received. After the reassembly timer is started, the reassembly timer is ahead, and the data packets 0, 1, 5, 6 are the data packets correctly received, and the data packets 2, 3, 4, 6 and 7 are all not received.
[0129] In this way, the RLC receiving entity determines that there is a data packet not successfully transmitted before the data packet corresponding to X in the receiving window, and then the RLC receiving entity can determine whether the data packet needs to be continuously retransmitted through subsequent steps, so as to avoid resource waste caused by continuous retransmission after the data packet expires.
[0130] The fourth mode is that when the second timer expires, X is updated to the data packet sequence number of the first data packet not successfully transmitted and greater than or equal to Y, and the updated N is greater than X+1.
[0131] Exemplarily, as shown in FIG. 6C, the RLC receiving entity has correctly received data packets 0, 1, 5, and since the data packets 2, 3, 4 between the data packet 1 and the data packet 5 are all not received, the RLC receiving entity continuously correctly receives the data packets 0, 1. The data packet sequence number of the last received data packet in the data packets 0, 1 continuously correctly received by the RLC entity is 1, and the next data packet sequence number of 1 is 2, at this time, RX_Next is equal to 2. The maximum data packet sequence number of the data packet received by the RLC receiving entity is 5, and the next data packet sequence number of 5 is 6, RX_Next_Highest is equal to 6. RX_Next_Highest (6) > RX_Next+1 (2+1), and it is confirmed that there is a data packet not correctly received (that is, the first hole). At this time, the RLC receiving entity starts the reassembly timer, and RX_Next_Status_Tigger is equal to 6. Before the reassembly timer expires, the RLC receiving entity receives data packets 7, 8, and RX_Next_Highest is updated to 9. When the reassembly timer expires, the SN of the first data packet not correctly received greater than or equal to RX_Next_Status_Tigger is 6, RX_Highest_Status is updated to 6, and the data packet reception status report is triggered. At this time, RX_Next_Highest (9) > RX_Highest_Status+1 (6+1), and it is confirmed that there is a data packet not correctly received (that is, the second hole). In FIG. 6C, the data packets 0, 1, 5, 7 and 8 are data packets correctly received, and the data packets 2, 3, 4 and 6 are all data packets not received.
[0132] In this way, the RLC receiving entity determines that there is a data packet not successfully transmitted between the data packet corresponding to X and the data packet corresponding to N in the receiving window when the second timer expires, and then the RLC receiving entity can determine whether the data packet needs to be continuously retransmitted through subsequent steps, so as to avoid resource waste caused by continuous retransmission after the data packet expires.
[0133] Fifth, when the second timer expires, X is updated to the data packet sequence number of the first data packet not successfully transmitted and greater than or equal to Y, and the updated N is equal to X+1, and the data packet corresponding to X is not successfully transmitted.
[0134] Exemplarily, as shown in FIG. 6D, the RLC receiving entity has correctly received data packets 0, 1, 5, and since the data packets 2, 3, 4 between the data packet 1 and the data packet 5 are all not received, the RLC receiving entity continuously correctly receives the data packets 0, 1. The data packet sequence number of the last received data packet in the continuously correctly received data packets 0, 1 is 1, and the next data packet sequence number of 1 is 2, at this time, RX_Next is equal to 2. The maximum data packet sequence number of the data packets received by the RLC receiving entity is 5, and the next data packet sequence number of 5 is 6, RX_Next_Highest is equal to 6. RX_Next_Highest (6) > RX_Next+1 (2+1), and it is confirmed that there is a data packet (i.e., the first hole) not correctly received. At this time, the RLC receiving entity starts the reassembly timer, RX_Highest_Status is equal to 2, and RX_Next_Status_Tigger is equal to 6. Before the reassembly timer expires, the RLC receiving entity receives the data packet 6, but does not completely receive correctly, and RX_Next_Highest is updated to 7. When the reassembly timer expires, the SN of the first data packet not correctly received which is greater than or equal to RX_Next_Status_Tigger is 6, and RX_Highest_Status is updated to 6. At this time, RX_Next_Highest (7) = RX_Highest_Status+1 (6+1), and the data packet 6 is not successfully transmitted, and it is confirmed that there is a data packet 6 (i.e., the second hole) not correctly received. In FIG. 6D, the data packets 0, 1, 5 are data packets already correctly received, the data packets 2, 3, 4 are data packets all not received, and 6 is a data packet already partially received.
[0135] In this way, the RLC receiving entity determines that the data packet corresponding to X in the receiving window is not successfully transmitted when the second timer expires, and then the RLC receiving entity can determine whether the data packet corresponding to X needs to be continuously retransmitted through subsequent steps, so as to avoid resource waste caused by continuous retransmission after the data packet expires.
[0136] Sixth, the RLC entity generates or sends a data packet receiving status report.
[0137] It should be noted that the data packet receiving status report is generated after the RLC receiving entity has detected that there is a discontinuously received data packet (or called a hole) in the receiving window. Therefore, it can be understood that when the RLC entity generates or sends the data packet receiving status report, the RLC receiving entity has determined that there is a discontinuously received data packet in the data packet receiving window.
[0138] In this way, the RLC receiving entity determines that there is a to-be-transmitted data packet that is not successfully transmitted in the receiving window according to the generation or sending of the data packet reception status report, and then the RLC receiving entity can determine whether the to-be-transmitted data packet needs to be continuously retransmitted through subsequent steps, so as to avoid resource waste caused by continuous retransmission after the data packet times out.
[0139] In step 502, the RLC receiving entity starts a first timer, and the first timer corresponds to a to-be-transmitted data packet.
[0140] The one or more to-be-transmitted data packets belong to data packets in the hole. As shown in FIG. 6A, there is a hole between data packet 1 and data packet 5, and the data packets in the hole include data packet 2, data packet 3, and data packet 4. The first timer can include multiple first timers, and each first timer corresponds to data packet 2, data packet 3, or data packet 4. It can be understood that the first timer corresponds to the retransmission time of a to-be-transmitted data packet.
[0141] Optionally, when the condition of the first mode or the second mode is met, the RLC receiving entity starts a first timer for each data packet sequence number of the to-be-transmitted data packet in the first range. The first range indicates that the data packet sequence number is greater than or equal to M and less than N.
[0142] For example, as shown in FIG. 4A, when the first mode is met, the first range is [3, 6), the data packet sequence number of the to-be-transmitted data packet in the first range is 3, and the RLC receiving entity starts a first timer for the data packet with the data packet sequence number 3. For example, as shown in FIG. 4B, when the second mode is met, the first range is [2, 3), the data packet sequence number of the to-be-transmitted data packet in the first range is 2, and the RLC receiving entity starts a first timer for the data packet with the data packet sequence number 2.
[0143] In this way, the RLC receiving entity starts a first timer for all to-be-transmitted data packets that are not successfully transmitted in the receiving window, so as to determine whether the to-be-transmitted data packet needs to be continuously transmitted, thereby avoiding resource waste caused by continuous retransmission after the data packet times out.
[0144] Optionally, when the third mode is met, the RLC receiving entity starts a first timer for each data packet sequence number of the to-be-transmitted data packet in the second range. The second range can indicate that the data packet sequence number is greater than or equal to M and less than or equal to X.
[0145] For example, as shown in FIG. 6A, when the third mode is met, the second range is [2, 6), the data packet sequence numbers of the to-be-transmitted data packets in the second range are 2, 3, and 4, and the RLC receiving entity starts a first timer for the data packets with the data packet sequence numbers 2, 3, and 4, respectively.
[0146] In this way, the RLC receiving entity starts the first timer for the untransmitted data packet in the range indicated by the data packet receiving status report, so as to determine whether the untransmitted data packet needs to continue to be transmitted, thereby avoiding resource waste caused by continuing to retransmit the data packet after the data packet is timed out.
[0147] Optionally, when the fourth mode or the fifth mode is met, the RLC receiving entity starts the first timer for the data packet sequence number of the untransmitted data packet in the third range, and the third range indicates that the untransmitted data packet is greater than or equal to X and less than the current N, or greater than or equal to M and less than N.
[0148] For example, as shown in FIG. 6C, when the fourth mode is met, the third range is [6, 9) or [2, 9), the data packet sequence number of the untransmitted data packet in the third range is 6, and the RLC receiving entity starts the first timer for the data packet with the data packet sequence number 6. For example, as shown in FIG. 6D, when the fifth mode is met, the third range is [6, 7) or [2, 7), the data packet sequence number of the untransmitted data packet in the third range is 6, and the RLC receiving entity starts the first timer for the data packet with the data packet sequence number 6. It should be noted that when the fourth mode or the fifth mode is met, when or after the second timer corresponding to the first hole is timed out, the second hole is detected to exist, the first timer is started for the untransmitted data packet in the second hole, and whether the untransmitted data packet in the second hole needs to continue to be transmitted is determined in time.
[0149] In this way, the RLC receiving entity starts the first timer for the untransmitted data packet in the range indicated by the data packet receiving status report, so as to determine whether the untransmitted data packet needs to continue to be transmitted, thereby avoiding resource waste caused by continuing to retransmit the data packet after the data packet is timed out.
[0150] Optionally, when the sixth mode is met, the RLC receiving entity starts the first timer for the data packet sequence number of the untransmitted data packet in the first range or the second range.
[0151] For example, as shown in FIG. 4A, when the reassembly timer is timed out, RX_Highest_Status is updated to 6, the first range is [3, 6), the second range is [3, 6), the data packet sequence number of the untransmitted data packet in the first range or the second range is 3, and the RLC receiving entity starts the first timer for the data packet with the data packet sequence number 3.
[0152] In this way, the RLC receiving entity starts the first timer for all untransmitted data packets in the receiving window or the untransmitted data packet in the range indicated by the data packet receiving status report when the data packet receiving status report is generated or transmitted, so as to determine whether the untransmitted data packet needs to continue to be transmitted, thereby avoiding resource waste caused by continuing to retransmit the data packet after the data packet is timed out.
[0153] It should be noted that the duration of the first timer is usually configured by the network. The present application does not specifically limit the duration of the first timer. Alternatively, the duration of the first timer is greater than the duration of the second timer. It should be noted that when the above-mentioned mode one or mode two is met, the starting time of the first timer and the second timer can be the same. If the duration of the first timer is less than or equal to the duration of the second timer, the first timer has stopped working before the second timer times out, and then the data packet that should be retransmitted is never retransmitted, and then the RLC retransmission mechanism fails. Therefore, when the above-mentioned mode one or mode two is met, in order to ensure the normal operation of the RLC retransmission mechanism, the duration of the first timer is usually set to be greater than the duration of the second timer.
[0154] When the above-mentioned mode four or mode five is met, since the starting time of the first timer corresponding to the data to be transmitted in the second hole and the second timer corresponding to the second hole can be the same, in order to ensure the normal operation of the RLC retransmission mechanism, the duration of the first timer corresponding to the data to be transmitted in the second hole can be greater than the duration of the second timer corresponding to the second hole.
[0155] In addition, it should be noted that when the above-mentioned mode three or mode six is met, since the first timer is started after the second timer has stopped, the duration of the first timer can not be limited, and can be set to be greater than, less than or equal to the duration of the second timer.
[0156] Exemplarily, if the PDB in the AR service is 30 ms and the duration of the second timer is 5 ms, the duration of the first timer can be set to be less than or equal to 30 ms. Based on this, it can be ensured that when the RLC retransmission mechanism is enabled, the requirements of the AR service can be adapted, the waste of transmission resources is reduced, and the timely transmission of subsequent data is ensured.
[0157] Step 503, the RLC receiving entity continues to receive the data packet from the RLC sending entity and monitors the status of the data packet.
[0158] Since the RLC receiving entity does not detect the discontinuous reception data packet, it continues to receive the data packet from the RLC sending entity and monitors the status of the data packet, maintains RX_Next, RX_Next_Highest, RX_Next_Status_Trigger and RX_Highest_Status.
[0159] The execution order of steps 502 and 503 is not limited here, and can be executed in one of the two.
[0160] Step 504, before the first timer expires, the RLC receiving entity receives one or more data packets to be transmitted, the first timer is stopped.
[0161] It should be noted that, in step 504, before the first timer expires, the RLC receiving entity receives one or more data packets to be transmitted, which means that the RLC receiving entity correctly receives one or more data packets to be transmitted before the first timer expires. Alternatively, the first timer is stopped after receiving the first data packet to be transmitted, and the one or more data packets to be transmitted are the first data packet to be transmitted. Since maintaining the first timer consumes a large amount of energy of the communication device, ending the first timer in advance after determining that the first data packet to be transmitted is received can save the energy of the communication device. For example, as shown in FIG. 6A, before the first timer corresponding to the data packet sequence number 2 expires, the RLC receiving entity correctly receives the data packet 2, and the first timer corresponding to the data packet sequence number 2 is stopped. Before the first timer corresponding to the data packet sequence number 3 expires, the RLC receiving entity correctly receives the data packet 3, and the first timer corresponding to the data packet sequence number 3 is stopped. Before the first timer corresponding to the data packet sequence number 4 expires, the RLC receiving entity correctly receives the data packet 4, and the first timer corresponding to the data packet sequence number 4 is stopped.
[0162] Step 505, when the first timer expires, the RLC receiving entity does not receive one or more data packets to be transmitted, and determines that the one or more data packets to be transmitted are successfully transmitted (or referred to as no need for retransmission).
[0163] It should be noted that, when the first timer expires, the RLC receiving entity does not receive one or more data packets to be transmitted (or receives part of the one or more data packets to be transmitted), it is determined that the one or more data packets to be transmitted are not successfully transmitted, and the one or more data packets to be transmitted do not need to be retransmitted, and it is determined that the one or more data packets to be transmitted are discarded.
[0164] It should be noted that the RLC receiving entity does not receive one or more to-be-transmitted data packets when the first timer expires in step 505 refers to that the RLC receiving entity does not correctly receive one or more to-be-transmitted data packets when the first timer expires. For example, based on the above description of FIG. 6A, FIG. 7 is obtained, when the third mode is met, the second range is [2, 6), the data packet sequence numbers of the data packets to be transmitted in the second range are 2, 3, and 4, the RLC receiving entity starts the first timer for the data packets with the data packet sequence numbers of 2, 3, and 4, and when the first timers corresponding to the data packets with the data packet sequence numbers of 2, 3, and 4 expire, the RLC receiving entity receives part of the data packets with the data packet sequence numbers of 2, 3, and 4 or does not receive the data packets with the data packet sequence numbers of 2, 3, and 4, it is determined that the data packets with the data packet sequence numbers of 2, 3, and 4 are successfully transmitted, and RX_Next is updated to 6. In FIG. 7, when the first timer is not started, the data packets 0, 1, and 5 are correctly received, and the data packets 2, 3, 4, and 6 are not received. After the first timer is started, the data packets 0, 1, and 5 are correctly received, the data packets 4 and 6 are not received, and the data packets 2 and 3 are partially received.
[0165] It should be noted that after the first timer expires, it is meaningless for the RLC sending entity to continue to send the to-be-transmitted data packets. For example, the user is currently watching the video frame of the 10th second, the RLC entity detects that the data packet corresponding to the video X of the 10th second frame has a packet loss, and if the data packet corresponding to the video X of the 10th second frame is still not successfully transmitted when the first timer expires, it is not necessary to transmit the data packet because the user may have watched the video frame of the 15th second. At this time, the video frame of the 10th second is received, and displaying the video frame of the 10th second after the video frame of the 15th second will bring bad user experience to the user. Therefore, when the RLC receiving entity does not receive one or more to-be-transmitted data packets when the first timer expires, the RLC receiving entity still determines that the one or more to-be-transmitted data packets are successfully transmitted, which can guarantee the service experience of the user.
[0166] In step 506, the RLC receiving entity sends indication information to the RLC sending entity, and the indication information is used to indicate the communication device that one or more to-be-transmitted data packets are successfully transmitted.
[0167] It should be noted that after performing the above step 505 and step 506, the RLC receiving entity can send the indication information to the RLC sending entity. However, for the above step 505, the indication information indicates that the one or more to-be-transmitted data packets are actually successfully transmitted. For the above step 506, the indication information indicates that the one or more to-be-transmitted data packets are not actually successfully transmitted, but rather that the first timer has expired without receiving the one or more to-be-transmitted data packets. The RLC receiving entity knows the actual content of the indication information, and the RLC sending entity only knows that the to-be-transmitted data packets do not need to be transmitted.
[0168] Alternatively, the indication information can be sent by the RLC receiving entity after the one or more to-be-transmitted data packets are successfully transmitted. Alternatively, the indication information can be sent after the first timer corresponding to the one or more to-be-transmitted data packets expires and it is determined that the one or more to-be-transmitted data packets are not successfully transmitted. For example, the indication information can indicate the sequence number of the data packet, and the RLC sending entity can consider that the corresponding data packet is acknowledged (ACK) (i.e., successfully transmitted or does not need to be retransmitted) and / or negatively acknowledged (i.e., failed transmission or needs to be retransmitted) based on the sequence number of the data packet indicated by the indication information. For example, as shown in FIG. 6C or FIG. 6D, when the second timer corresponding to the second hole expires, the first timer corresponding to the to-be-transmitted data packet in the first hole has stopped or expired, and the data packet reception status report corresponding to the second hole can include the indication information. In the data packet reception status report corresponding to the second hole, the sequence number of the to-be-transmitted data packet in the first hole is not fed back as a negative acknowledgment (NACK), and the RLC sending entity confirms that the to-be-transmitted data packet in the first hole is successfully transmitted or does not need to be retransmitted.
[0169] Optionally, when the first timer expires and the RLC receiving entity does not receive one or more data packets to be transmitted, the RLC receiving entity determines that the data packet corresponding to M is successfully transmitted, and then updates M (RX_Next) to the data packet number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired); and / or, if it is determined that the data packet corresponding to N (RX_Next_Highest) is successfully transmitted, then N is updated to the data packet number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired); and / or, if it is determined that the data packet corresponding to X (RX_Highest_Status) is successfully transmitted, then X is updated to the data packet number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired). When the first timer corresponds to a data packet to be transmitted, the data packet that is not successfully transmitted refers to a data packet that has not been correctly received and the corresponding first timer has not started or expired. When the first timer corresponds to a hole, the data packet that is not successfully transmitted refers to a data packet that has not been correctly received and does not belong to the range of the hole corresponding to the first timer that has expired. Based on this, the sending window and the receiving window can be timely pushed, and the timely transmission of subsequent data can be ensured.
[0170] For example, as shown in FIG. 6A, the RLC receiving entity starts the first timer for the data packets with data packet numbers 2, 3, and 4. If the first timers corresponding to the data packet numbers 2, 3, and 4 expire and the RLC receiving entity does not receive the data packets corresponding to the data packet numbers 2, 3, and 4, then the RLC receiving entity updates RX_Next to 6. Since the durations of the first timers corresponding to the data packet numbers 2, 3, and 4 are the same. When the first timer corresponding to the data packet number 2 expires, the first timers corresponding to the data packet numbers 3 and 4 also expire, and thus the data packet number of the next data packet that is not successfully transmitted is 6. If the first timers corresponding to the data packet numbers 2, 3, and 4 are all stopped and the data packet corresponding to the data packet number 3 is actually not received, then the RLC retransmission mechanism is not performed. The RLC receiving entity continues to receive data packets, and if the data packets 6, 7, and 10 are subsequently received, it is determined that there is a discontinuous reception data packet (i.e., a second hole) between the data packets 7 and 10. When the reassembly timer corresponding to the second hole starts, RX_Next_Highest is updated to 11, and when the timer corresponding to the second hole expires, RX_Highest_Status is updated to 11. This is only an example and is not limited in particular.
[0171] It is also noted that after the RLC receiving entity updates M and / or N and / or X when one or more data packets are not received by the first timer expiring, if the second timer is running and the first condition is met, the RLC receiving entity stops and / or resets the second timer (i.e. reassembly timer), the first condition includes one or more of the following: Y(RX_Next_Status_Tigger) is equal to M(RX_Next), Y(RX_Next_Status_Tigger) is equal to M+1 and there is no discontinuous reception case for the data packet corresponding to M, or Y is out of the data packet reception window. Based on this, the RLC receiving entity can explicitly determine the occasion to stop and / or reset the second timer, thereby avoiding triggering invalid data packet reception status report.
[0172] For example, the RLC receiving entity has correctly received data packets 0, 1, 5, RX_Next is equal to 2, RX_Next_Highest is equal to 6, at the start of the reassembly timer, RX_Next_Status_Tigger is equal to 6, before the first timer corresponding to data packet sequence number 2, 3, 4 expires, the data packets corresponding to data packet sequence number 2, 3, 4 are correctly received, RX_Next is updated to 6, RX_Next_Status_Tigger is equal to RX_Next, at this time the reassembly timer is stopped and / or reset. For example, the RLC receiving entity has correctly received data packets 0, 1, 5 only partially received, RX_Next is equal to 2, RX_Next_Highest is equal to 6, at the start of the reassembly timer, RX_Next_Status_Tigger is equal to 6. Before the first timer corresponding to data packet sequence number 2, 3, 4 expires, the data packets corresponding to data packet sequence number 2, 3, 4 are correctly received. RX_Next is updated to 5, RX_Next_Status_Tigger is equal to RX_Next+1, and the RLC receiving entity determines that the data packet corresponding to data packet sequence number 5 has been correctly received, at this time the reassembly timer is stopped and / or reset. For example, in the above examples, the reception window is [RX_Next, RX_Next+AM_Window_Size), as RX_Next is updated, the reception window is also constantly changing. When RX_Next is updated to 7, RX_Next_Status_Tigger is still equal to 6, it is determined that RX_Next_Status_Tigger is out of the reception window, then the reassembly timer is stopped and / or reset.
[0173] When the one or more to-be-transmitted data packets are not received when the first timer expires, after the RLC receiving entity updates M and / or N and / or X, if the second timer is not running and the second condition is met, the RLC receiving entity starts the second timer, and the second condition includes one or more of the following: N > M + 1; or, N = M + 1, and the data packet corresponding to M is not successfully transmitted. When N > M + 1; or, N = M + 1, and the data packet corresponding to M is not successfully transmitted, the RLC receiving entity determines that there is a discontinuous reception data packet in the data packet reception window, and thus needs to start the reassembly timer. Based on this, the RLC receiving entity can determine the starting time of the second timer, thereby triggering the data packet reception status report and feeding back the data packet reception status to the sending side communication device in a timely manner.
[0174] It should be noted that, in terms of product implementation, maintaining multiple timers by the communication device consumes a large amount of resources. Based on this, it can be determined whether the corresponding first timer has expired by regularly checking the data packets buffered in the RLC receiving entity. This method cannot immediately discover and react when the first timer expires, but from the product implementation point of view, it does not need to actually maintain the timer, which can reduce the product implementation complexity. Assuming that the first timer corresponding to data packet 2 has a duration of 80 ms, the RLC receiving entity can check the data packets buffered in the RLC receiving entity every 50 ms after feeding back the data packet reception report to the RLC sending entity (the time is the initial time). When the initial time is separated from the current time by 100 ms, if data packet 2 is not buffered in the RLC entity or all data packet 2 is not buffered or only part of data packet 2 is buffered, it is considered that data packet 2 is not received when the first timer corresponding to data packet 2 expires, but the RLC receiving entity sends the information that data packet 2 is successfully transmitted to the RLC sending entity. If all data packet 2 is buffered in the RLC entity, it is considered that data packet 2 is received before the first timer corresponding to data packet 2 expires, and the RLC receiving entity sends the information that data packet 2 is successfully transmitted to the RLC sending entity.
[0175] In the above embodiment one, the RLC receiving entity starts a first timer for each to-be-transmitted data packet in the hole after detecting the hole, and determines to notify the RLC sending entity to stop transmitting the to-be-transmitted data packet when the first timer corresponding to each to-be-transmitted data packet expires. Based on this, the retransmission of the to-be-transmitted data packet can be ended in advance, the waste of transmission resources can be reduced, the sending window and the receiving window can be timely promoted, the timely transmission of subsequent data can be ensured, and the demand of XR service can be adapted.
[0176] Embodiment two, one timer is set for one or more to-be-transmitted data packets in the hole (or for one hole)
[0177] With reference to FIG. 8, the data interaction between the data packet receiving side RLC entity (referred to as RLC receiving entity) and the data packet sending side RLC entity (referred to as RLC sending entity) is taken as an example for illustration. The following is performed:
[0178] In step 801, the RLC receiving entity determines whether there is a discontinuous data packet in the data packet receiving window. If yes, step 802 is performed, and if no, step 803 is performed.
[0179] In step 801, the RLC receiving entity determines whether there is a discontinuous data packet in the data packet receiving window. If yes, step 802 is performed, and if no, step 803 is performed.
[0180] In step 802, the RLC receiving entity starts a first timer corresponding to the hole in the data packet receiving window.
[0181] In the hole, one or more data packets to be transmitted are included, as shown in FIG. 6A, there is a hole between data packet 1 and data packet 5, and the data packets in the hole include data packet 2, data packet 3 and data packet 4. A first timer is set for data packet 2, data packet 3 and data packet 4. The first timer corresponds to the retransmission time of one or more data packets to be transmitted. In FIG. 6A, there are three data packets in the hole, and the first timer corresponds to the retransmission time of data packet 2, data packet 3 and data packet 4.
[0182] Optionally, when the conditions of mode one or mode two are met, the RLC receiving entity starts a first timer for the data packet sequence number of the data packet to be transmitted in the hole.
[0183] For example, as shown in FIG. 4A, when mode one is met, the hole range is (2, 4), and the RLC receiving entity starts a first timer for the hole (here, a first timer is started for data packet with data packet sequence number 3). For example, as shown in FIG. 4B, when mode two is met, the hole range is (1, 3), and the RLC receiving entity starts a first timer for the hole (here, a first timer is started for data packet with data packet sequence number 2).
[0184] In this way, the RLC receiving entity starts a first timer for all the data packets to be transmitted in the hole in the receiving window, so as to determine whether the data packet to be transmitted needs to be continuously transmitted, thereby avoiding resource waste caused by continuous retransmission of the data packet after timeout.
[0185] Optionally, when mode three is met, the RLC receiving entity starts a first timer for the data packet sequence number of the data packet to be transmitted in the hole.
[0186] Exemplarily, as shown in FIG. 6A, when the third condition is met, the hole range is (1, 5), and the RLC receiving entity starts a first timer for the data packets in the hole (here, the first timer is started for the data packets with packet sequence numbers 2, 3 and 4).
[0187] In this way, the RLC receiving entity starts a first timer for all the data packets in the hole range in the status report indication, for judging whether the data packets need to be continuously transmitted, so as to avoid resource waste caused by continuous retransmission of the data packets after timeout.
[0188] Optionally, when the fourth or fifth condition is met, the RLC receiving entity starts a first timer for the data packets with packet sequence numbers in the hole.
[0189] Exemplarily, as shown in FIG. 6C, when the fourth condition is met, the first hole range is (1, 5), and the second hole range is (5, 7), the RLC receiving entity starts a first timer for the data packet with packet sequence number 64 in the second hole after the reassembly timer corresponding to the first hole times out.
[0190] Exemplarily, as shown in FIG. 6D, when the fifth condition is met, the first hole range is (1, 5), and the second hole range is (5, 7), the RLC receiving entity starts a first timer for the data packet with packet sequence number 6 in the second hole after the reassembly timer corresponding to the first hole times out. It should be noted that when the fourth or fifth condition is met, the reassembly timer corresponding to the first hole has timed out or timed out after the second hole is detected, a first timer is started for the data packets in the second hole, so as to timely judge whether the data packets in the second hole need to be continuously transmitted.
[0191] In this way, the RLC receiving entity starts a first timer for all the data packets in the hole range in the status report indication, for judging whether the data packets need to be continuously transmitted, so as to avoid resource waste caused by continuous retransmission of the data packets after timeout.
[0192] Optionally, when the sixth condition is met, the RLC receiving entity starts a first timer for the data packets with packet sequence numbers in the hole.
[0193] Exemplarily, as shown in FIG. 4A, the hole range is (2, 4), and the RLC receiving entity starts a first timer for the data packet with packet sequence number 3 in the hole.
[0194] In this way, the RLC receiving entity starts the first timer for judging whether the to-be-transmitted data packet needs to continue to be transmitted, when generating or sending the data packet receiving status report, for all the to-be-transmitted data packets in the receiving window or all the to-be-transmitted data packets in the range indicated by the data packet receiving status report, so as to avoid the resource waste caused by the continued retransmission of the data packet after the data packet is timed out.
[0195] It should be noted that the duration of the first timer is usually configured by the network. The application does not specifically limit the duration of the first timer. Optionally, the duration of the first timer is greater than the duration of the second timer. It should be noted that when the above-mentioned mode one or mode two is met, the starting time of the first timer and the second timer can be the same. If the duration of the first timer is less than or equal to the duration of the second timer, the first timer has stopped working before the second timer is timed out, and then the data packet that should be retransmitted is never retransmitted, and then the RLC retransmission mechanism is invalid. Therefore, when the above-mentioned mode one or mode two is met, in order to ensure the normal operation of the RLC retransmission mechanism, the duration of the first timer is usually greater than the duration of the second timer.
[0196] When the above-mentioned mode four or mode five is met, since the starting time of the first timer corresponding to the to-be-transmitted data in the second hole and the second timer corresponding to the second hole can be the same, in order to ensure the normal operation of the RLC retransmission mechanism, the duration of the first timer corresponding to the to-be-transmitted data in the second hole is greater than the duration of the second timer corresponding to the second hole.
[0197] In addition, it should be noted that when the above-mentioned mode three or mode six is met, since the first timer is started after the second timer has stopped, the duration of the first timer can not be limited, and can be set to be greater than, less than or equal to the duration of the second timer.
[0198] Exemplarily, if the PDB in the AR service is 30 ms and the duration of the second timer is 5 ms, the duration of the first timer can be set to be less than or equal to 30 ms. Based on this, it can be ensured that the RLC retransmission mechanism can adapt to the requirements of the AR service when the RLC retransmission mechanism is enabled, the waste of transmission resources is reduced, and the timely transmission of subsequent data is ensured.
[0199] Step 803, the RLC receiving entity continues to receive the data packet from the RLC sending entity, and monitors the status of the data packet.
[0200] Since the RLC receiving entity does not detect the discontinuous receiving data packet, it continues to receive the data packet from the RLC sending entity and monitors the status of the data packet, maintains RX_Next, RX_Next_Highest, RX_Next_Status_Trigger and RX_Highest_Status.
[0201] In step 804, before the first timer expires, the RLC receiving entity receives one or more data packets to be transmitted, and stops the first timer.
[0202] It should be noted that in step 804, before the first timer expires, the RLC receiving entity receives one or more data packets to be transmitted, which means that before the first timer expires, the RLC receiving entity correctly receives all the data packets to be transmitted in the hole. Alternatively, all the data packets to be transmitted in the hole are received before the first timer expires, and the first timer is stopped. One or more data packets to be transmitted are all the data packets to be transmitted in the hole. Since maintaining the first timer consumes a large amount of energy of the communication device, ending the first timer in advance after determining that all the data packets in the hole are received can save the energy of the communication device. Exemplarily, as shown in FIG. 6A, before the first timer corresponding to the data packet sequence numbers 2, 3 and 4 expires, the RLC receiving entity receives the data packets 2, 3 and 4, and the first timer corresponding to the hole is stopped.
[0203] Optionally, the one or more to-be-transmitted data packets with packet sequence numbers greater than or equal to M (RX_Next) and less than or equal to X (RX_Highest_Status) or N (RX_Next_Highest) or Y (RX_Next_Status_Trigger) can also be understood as the to-be-transmitted data packets in the hole. For example, as shown in FIG. 4A, the receiving side RLC entity has correctly received data packets 0, 1, 2, 4, and 5. The RLC entity has continuously correctly received data packets 0, 1, and 2, the last data packet has a packet sequence number 2, and the next data packet sequence number of 2 is 3, so RX_Next is equal to 3. The maximum data packet received by the RLC entity has a packet sequence number 5, the next data packet sequence number of 5 is 6, and RX_Next_Highest is equal to 6. RX_Next_Highest > RX_Next + 1 (3 + 1), so it is confirmed that there is a hole. The RLC entity starts a reassembly timer when it determines that there is a hole, and sends a data packet reception status report to the sending side RLC entity when the reassembly timer expires. When the RLC entity starts the reassembly timer, RX_Next_Status_Trigger is set to RX_Next_Highest, that is, 6. When the reassembly timer expires, RX_Highest_Status is set to the packet sequence number of the first correctly received data packet after RX_Next_Status_Trigger, that is, 6. The largest unsuccessfully transmitted data packet indicated in the data packet reception status report can be the data packet with the packet sequence number 6. The hole range is [2, 6). Greater than or equal to M and less than X or N or Y, that is, the data packet 3 in the hole range.
[0204] Optionally, when the RLC receiving entity starts the first timer, a first variable is set, the one or more to-be-transmitted data packets have packet sequence numbers greater than or equal to M and less than or equal to the first variable, and the value of the first variable is the same as the value of X or N or Y, or the value of the first variable is the same as the minimum value of X, Y, and N. Based on this, the RLC receiving entity can maintain a first variable to determine the range of the hole corresponding to the first timer, and determine that the to-be-transmitted data packets in the hole do not need to be continuously transmitted when the first timer expires. When the first timer expires, the RLC receiving entity determines that all data packets between M and the first variable are successfully transmitted, and then updates M to the packet sequence number of the first unsuccessfully transmitted data packet after the data packet corresponding to the first variable. For example, taking the above FIG. 4A as an example, the minimum value of X, N, and Y is 3, the one or more to-be-transmitted data packets have packet sequence numbers greater than or equal to 3 and less than or equal to 3, that is, the to-be-transmitted data packet in the hole is data packet 3.
[0205] Step 805, when the first timer expires, the RLC receiving entity does not receive the one or more to-be-transmitted data packets, and it is determined that the one or more to-be-transmitted data packets are successfully transmitted (or referred to as no need for retransmission).
[0206] It should be noted that, in step 805, when the first timer expires, the RLC receiving entity does not receive the one or more to-be-transmitted data packets, which means that, when the first timer expires, the RLC receiving entity does not correctly receive all the to-be-transmitted data packets in the hole or does not correctly receive part of the to-be-transmitted data packets in the hole. It should be noted that, after the expiration of the first timer, it is meaningless for the RLC sending entity to continue to send the to-be-transmitted data packets. Therefore, when the RLC receiving entity does not receive the one or more to-be-transmitted data packets at the expiration of the first timer, the RLC entity still determines that the one or more to-be-transmitted data packets are successfully transmitted, which can guarantee the user's service experience.
[0207] Step 806, the RLC receiving entity sends indication information to the RLC sending entity, and the indication information is used to indicate to the communication device that the one or more to-be-transmitted data packets are successfully transmitted.
[0208] It should be noted that, after the execution of the above steps 805 and 806, the RLC receiving entity can send indication information to the RLC sending entity. However, for the above step 805, the indication information indicating that the one or more to-be-transmitted data packets are successfully transmitted means that all the to-be-transmitted data packets in the hole are actually successfully transmitted. For the above step 806, the indication information indicating that the one or more to-be-transmitted data packets are successfully transmitted does not mean that all the to-be-transmitted data packets in the hole are actually successfully transmitted, but actually means that the RLC receiving entity does not receive all the to-be-transmitted data packets in the hole at the expiration of the first timer. The RLC receiving entity knows the actual indication content of the indication information, and the RLC sending entity only knows that there is no need to transmit the to-be-transmitted data packets.
[0209] Optionally, the indication information can be sent by the RLC receiving entity after all the data packets in the hole are successfully transmitted. Alternatively, the indication information can be sent by the RLC receiving entity after determining that one or more data packets in the hole are not successfully transmitted after the expiration of the first timer. Illustratively, the indication information can indicate the data packet sequence number, and the RLC sending entity can determine that the data packet corresponding to the data packet sequence number indicated by the indication information is acknowledged (ACK) (i.e., successfully transmitted or not needed to be retransmitted) and / or not acknowledged (i.e., failed to be transmitted or needed to be retransmitted) by default. Illustratively, as shown in FIG. 6C or FIG. 6D, when the second timer corresponding to the second hole expires, the first timer corresponding to the first hole has stopped or expired, and the data packet reception status report corresponding to the second hole can include the indication information. When the data packet reception status report corresponding to the second hole does not feed back the negative acknowledgment (NACK) of the data packet sequence number of the data packet to be transmitted in the first hole, the RLC sending entity determines that all the data packets to be transmitted in the first hole are successfully transmitted or not needed to be retransmitted.
[0210] Optionally, when the first timer expires and the RLC receiving entity does not receive one or more data packets to be transmitted, the RLC receiving entity determines that the data packet corresponding to M is successfully transmitted, updates M (RX_Next) to the data packet sequence number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired); and / or, if it is determined that the data packet corresponding to N (RX_Next_Highest) is successfully transmitted, updates N to the data packet sequence number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired); and / or, if it is determined that the data packet corresponding to X (RX_Highest_Status) is successfully transmitted, updates X to the data packet sequence number of the next data packet that is not successfully transmitted (and the corresponding first timer has not expired). Based on this, the sending window and the receiving window can be timely pushed to ensure the timely transmission of subsequent data.
[0211] For example, based on the above description of FIG. 6A, FIG. 9 is obtained. The RLC receiving entity starts the first timer for the 3 data packets (data packet sequence numbers 2, 3, 4) in the hole range (1, 5). If the first timer expires, the RLC receiving entity does not receive one or more of the data packets corresponding to data packet sequence numbers 2, 3, 4, and the RLC receiving entity updates RX_Next to 6. The RLC receiving entity continues to receive data packets, and if data packets 6, 7, 10 are subsequently received, it is determined that there is a data packet (i.e., a second hole) between data packet 7 and data packet 10 that is received continuously, RX_Next_Highest is updated to 11 when the reassembly timer corresponding to the second hole is started, and RX_Highest_Status is updated to 11 when the timer corresponding to the second hole expires. This is only an example and is not limited specifically. In FIG. 9, before the first timer is started, data packets 0, 1, 5 are correctly received, and data packets 2, 3, 4, 6 are not received. After the first timer is started, the first timer expires, data packets 0, 1, 5 are correctly received, data packets 4, 6 are not received, and data packets 2, 3 are partially received.
[0212] It should also be noted that when one or more data packets to be transmitted are not received when the first timer expires, the RLC receiving entity updates M and / or N and / or X, and if the second timer is running and the first condition is met, the RLC receiving entity stops and / or resets the second timer (i.e., the reassembly timer). The first condition includes one or more of the following: Y(RX_Next_Status_Tigger) is equal to M(RX_Next), Y(RX_Next_Status_Tigger) is equal to M+1 and there is no discontinuous reception of data packets corresponding to M, or Y is outside the data packet reception window. When one or more data packets to be transmitted are not received when the first timer expires, the RLC receiving entity updates M and / or N and / or X, and if the second timer is not running and the second condition is met, the RLC receiving entity starts the second timer. The second condition includes one or more of the following: N>M+1, or N=M+1 and the data packet corresponding to M is not transmitted successfully. When N>M+1 or N=M+1 and the data packet corresponding to M is not transmitted successfully, the RLC receiving entity determines that there is discontinuous reception of data packets in the data packet reception window, and thus needs to start the reassembly timer. How to start the second timer can be understood with reference to the description in the above first embodiment, and thus will not be described here.
[0213] In the above embodiment two, after the RLC receiving entity detects the hole, a first timer is started for the hole, and when the first timer expires, it is determined that the RLC sending entity is notified to stop transmitting the to-be-transmitted data packet. Based on this, the retransmission of the to-be-transmitted data packet can be ended in advance, the waste of transmission resources is reduced, the sending window and the receiving window are timely pushed, the timely transmission of subsequent data is ensured, and the needs of XR services are adapted.
[0214] Embodiment three, the reordering timer corresponding to the multiplexing PDCP entity determines how to end the retransmission of the to-be-transmitted data packet
[0215] In the prior art, when the PDCP entity detects a discontinuous transmission data packet (i.e., detects a hole) when reordering the received data packet, a reordering timer (i.e., the third timer described below) is started. When the reordering timer expires, the PDCP layer no longer waits for this part of the data packet, but directly updates the data packet receiving window. Referring to FIG. 10, the data interaction between the data packet receiving side RLC entity (referred to as RLC receiving entity), the data packet receiving side PDCP entity (referred to as PDCP receiving entity), and the data packet sending side RLC entity (referred to as RLC sending entity) is taken as an example to illustrate. The following is performed:
[0216] Step 1001, the RLC receiving entity sends first information to the PDCP receiving entity, and the first information includes the RLC data packet sequence number transmitted successfully by the RLC receiving entity.
[0217] It should be noted that the RLC receiving entity transmission success can be understood as the correct reception of the RLC receiving entity, which can be understood with reference to the related description in the above data packet transmission mode. Exemplarily, the RLC receiving entity can send the RLC SN to the PDCP receiving entity.
[0218] In addition, it should also be noted that after the PDCP receiving entity receives the RLC data packet sequence number, the correspondence between the PDCP data packet sequence number and the RLC data packet sequence number is maintained. Exemplarily, the PDCP SN in the PDCP receiving entity is cached to PDCP SN 35. At this time, the first information sent by the RLC receiving entity to the PDCP receiving entity includes RLC SN 5-8, and then the PDCP receiving entity can arrange the PDCP SN in order, and correspond the PDCP SN 36-39 to the RLC SN 5-8.
[0219] In particular, for a base station using a CU-DU separation architecture, the DU (RLC layer position) needs to indicate the RLC SN of each submitted data packet to the CU (PDCP layer position), for example, carrying the RLC SN in the GTP-U header of the submitted data packet.
[0220] Step 1002, the PDCP receiving entity detects the discontinuous data packets, and starts a third timer (i.e. a reordering timer).
[0221] For example, the PDCP receiving entity detects PDCP SN1-8, PDCP SN10-14, and missing PDCP SN9 in the PDCP entity buffer, i.e. there are discontinuous data packets in PDCP SN1-14, and then starts the third timer.
[0222] Step 1003, if the third timer expires, the PDCP receiving entity sends the RLC data packet sequence number that does not need to be transmitted to the RLC sending entity.
[0223] Step 1004, the RLC receiving entity sends the RLC data packet sequence number that does not need to be transmitted to the RLC sending entity.
[0224] Before step 1003, after the PDCP receiving entity determines the PDCP data packet sequence number that does not need to be transmitted, the PDCP receiving entity determines the RLC data packet sequence number that does not need to be transmitted according to the first information and the PDCP data packet sequence number that does not need to be transmitted. Based on this, the receiving side PDCP entity determines that the PDCP reordering timer expires, so as to determine that the data packet corresponding to the reordering timer does not need to continue to be transmitted, thereby avoiding resource waste. For example, the PDCP receiving entity detects PDCP SN11-18, PDCP SN20-24, and missing PDCP SN19 in the PDCP entity buffer, i.e. there are discontinuous data packets in PDCP SN11-24, and then starts the third timer. When the third timer expires, the PDCP receiving entity still does not receive PDCP SN19, and determines that PDCP SN19 does not need to be transmitted. Assuming that the PDCP receiving entity determines the correspondence between the PDCP data packet sequence number and the RLC data packet sequence number based on the first information as PDCP SN19 corresponding to RLC SN9. The PDCP receiving entity sends the RLC SN9 that does not need to be transmitted to the RLC receiving entity. The RLC receiving entity indicates the RLC SN9 that does not need to be transmitted to the RLC sending entity.
[0225] Optionally, if the first sequence number is equal to M (i.e. RX_Next), M is updated as the data packet sequence number of the next data packet that is not transmitted successfully; and / or, if the first sequence number is equal to N (i.e. RX_Next_Highest), N is updated as the data packet sequence number of the next data packet that is not transmitted successfully; and / or, if the first sequence number is equal to X (i.e. RX_Highest_Status), X is updated as the data packet sequence number of the next data packet that is not transmitted successfully; wherein the first sequence number is any one of the RLC data packet sequence numbers that do not need to be transmitted. Based on this, the sending window and the receiving window can be timely promoted, and timely transmission of subsequent data can be ensured.
[0226] Exemplarily, as shown in FIG. 11, the PDCP receiving entity receives data packets 1, 2 and 5, 6, corresponding to RLC SNs 11, 12, 15, 16 respectively. The PDCP receiving entity detects that a hole exists, starts a reordering timer, and when the reordering timer expires, the PDCP no longer waits for data packets 3, 4, and infers from the RLC SNs of the received data packets that the RLC SNs in the hole are 13, 14, and indicates to the RLC receiving entity that RLC SNs 13, 14 do not need to be transmitted, or the PDCP indicates to the RLC receiving entity that data packets between RLC SNs 12 and 15 do not need to be transmitted. In addition, the RLC receiving entity updates RX_Next to 17. In FIG. 11, when the reordering timer is not started, data packets 1, 2, 5, 6 are taken as data packets that have been correctly received, data packets 3, 4 and 7 are taken as data packets that have not been received at all, when the reordering timer expires, data packets 11, 12, 15, 16 are taken as data packets that have been correctly received, data packet 14, 17 are taken as data packets that have not been received at all, and data packet 13 is taken as a data packet that has been partially received.
[0227] In the above-mentioned embodiment three, after the PDCP receiving entity detects a hole, starts a reordering timer, and when the reordering timer expires without receiving the data packets to be transmitted, the PDCP receiving entity sends the RLC receiving entity the sequence number of the RLC data packet that does not need to be transmitted. Based on this, the retransmission of the data packets to be transmitted can be ended in advance, the waste of transmission resources is reduced, the sending window and the receiving window are timely pushed, the timely transmission of subsequent data is ensured, and the needs of XR services are adapted.
[0228] The above mainly describes the scheme provided by the embodiments of the application from the perspective of device interaction. It can be understood that, in order to implement the above functions, each device can include a corresponding hardware structure and / or software module for executing each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of the examples described in the embodiments disclosed herein, the embodiments of the application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is implemented in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the application.
[0229] The embodiments of the application can divide the functional units of the device according to the above method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one unit. The above integrated unit can be implemented in the form of hardware or software functional unit.
[0230] In the case of employing the integrated unit, FIG. 12 shows a possible exemplary block diagram of a communication apparatus involved in the embodiments of the present application. As shown in FIG. 12, the communication apparatus 1200 can include a processing unit 1201 and a transceiver unit 1202. The processing unit 1201 is configured to control and manage the actions of the communication apparatus 1200. The transceiver unit 1202 is configured to support the communication of the communication apparatus 1200 with other devices. Optionally, the transceiver unit 1202 can include a receiving unit and / or a transmitting unit, which are configured to perform the receiving and transmitting operations, respectively. Optionally, the communication apparatus 1200 can further include a storage unit configured to store the program code and / or data of the communication apparatus 1200. The transceiver unit can be referred to as an input / output unit, a communication unit, etc., and can be a transceiver; the processing unit can be a processor. When the communication apparatus is a module (e.g., a chip) in a communication device, the transceiver unit can be an input / output interface, an input / output circuit or an input / output pin, etc., and can also be referred to as an interface, a communication interface or an interface circuit, etc.; the processing unit can be a processor, a processing circuit or a logic circuit, etc. Exemplarily, the apparatus can be the terminal or the network device described above.
[0231] The more detailed description of the processing unit 1201 and the transceiver unit 1202 can be directly obtained by referring to the relevant description in the above-mentioned various method embodiments, which will not be repeated here.
[0232] As shown in FIG. 13, the present application further provides a communication apparatus 1300. The communication apparatus 1300 can be a chip or a chip system. The communication apparatus can be located in the device (e.g., a terminal or a network device, etc.) involved in any of the above-mentioned method embodiments, to perform the actions corresponding to the device.
[0233] Optionally, the chip system can be composed of a chip, or can include a chip and other discrete devices.
[0234] The communication apparatus 1300 includes a processor 1310.
[0235] The processor 1310 is configured to execute the computer program stored in the storage 1320, to realize the actions of the device in any of the above-mentioned method embodiments.
[0236] The communication apparatus 1300 can further include a storage 1320 configured to store the computer program.
[0237] Optionally, the storage 1320 and the processor 1310 are coupled. The coupling is an indirect coupling or communication connection between the apparatuses, units or modules, which can be electrical, mechanical or other forms, for information interaction between the apparatuses, units or modules. Optionally, the storage 1320 and the processor 1310 are integrated together.
[0238] The processor 1310 and the memory 1320 can each be one or more, without limitation.
[0239] Optionally, in actual application, the communication apparatus 1300 can include a transceiver 1330 or not include the transceiver 1330, which is shown in a dashed box in the figure. The communication apparatus 1300 can interact with other devices through the transceiver 1330. The transceiver 1330 can be a circuit, a bus, a transceiver, or any other device that can be used for information interaction.
[0240] In a possible implementation, the communication apparatus 1300 can be a terminal and a network device in the above-described method implementation.
[0241] The specific connection medium between the transceiver 1330, the processor 1310, and the memory 1320 is not limited in the embodiments of the present application. In the embodiments of the present application, the memory 1320, the processor 1310, and the transceiver 1330 are connected through a bus in FIG. 13, the bus is represented by a thick line in FIG. 13, and the connection mode between other components is only illustrative and is not limited. The bus can be divided into an address bus, a data bus, a control bus, and the like. For convenience of representation, only one thick line is used in FIG. 13, but it does not mean that there is only one bus or only one type of bus. In the embodiments of the present application, the processor can be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array, or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and can implement or execute the disclosed methods, steps, and logic block diagrams in the embodiments of the present application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of the present application can be directly embodied as execution completed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
[0242] In the embodiments of the present application, the memory can be a non-volatile memory such as a hard disk drive (HDD) or a solid-state drive (SSD), and can also be a volatile memory such as a random-access memory (RAM). The memory can also be any other medium capable of carrying or storing desired program codes in the form of instructions or data structures and capable of being accessed by a computer, but is not limited to this. The memory in the embodiments of the present application can also be a circuit or any other device capable of implementing a storage function, used for storing computer programs, program instructions, and / or data.
[0243] Based on the above embodiments, referring to FIG. 14, the embodiments of the present application further provide another communication apparatus 1400, comprising: an interface circuit 1410 and a logic circuit 1420; the interface circuit 1410 can be understood as an input and output interface, and can be used to perform the transceiving steps of each device in any of the above method embodiments; the logic circuit 1420 can be used to run codes or instructions to perform the methods performed by each device in any of the above embodiments, and details are not described herein.
[0244] Based on the above embodiments, the embodiments of the present application further provide a computer readable storage medium, which stores instructions, when the instructions are executed, the methods performed by each device in any of the above method embodiments are implemented. The computer readable storage medium can include: a U disk, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk, and various media that can store program codes.
[0245] Based on the above embodiments, the embodiments of the present application provide a communication system, which comprises the terminal and network device mentioned in any of the above method embodiments, and can be used to perform the methods performed by each device in any of the above method embodiments.
[0246] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0247] The present application is described with reference to flowcharts and / or block diagrams according to the methods, devices (systems), and computer program products of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing apparatus to produce a machine, so that the instructions executed by the computer or other programmable data processing apparatus produce the device for implementing the functions specified in one or more flows in the flowcharts and / or one or more blocks in the block diagrams.
[0248] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart or flowchart(s) and / or block diagram block or blocks.
[0249] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart or flowchart(s) and / or block diagram block or blocks.
Claims
1. A communication method characterized by comprising: The method comprises: if there is discontinuous reception data packet in the data packet receiving window, starting a first timer, the first timer corresponding to a data packet to be transmitted or a hole in the receiving window; if one or more data packets to be transmitted are received before the first timer expires, stopping the first timer; or if the one or more data packets to be transmitted are not received when the first timer expires, determining that the one or more data packets to be transmitted are successfully transmitted; sending indication information, the indication information being used to indicate to a communication device that the one or more data packets to be transmitted are successfully transmitted.
2. The method of claim 1, wherein, The one or more data packets to be transmitted belong to the data packets in the hole.
3. The method according to claim 1 or 2, characterized in that, The step of stopping the first timer if one or more data packets to be transmitted are received before the first timer expires comprises: stopping the first timer if a first data packet to be transmitted is received before the first timer expires, the first timer corresponding to a data packet to be transmitted, and the one or more data packets to be transmitted being the first data packet to be transmitted.
4. The method according to claim 1 or 2, characterized in that, The step of stopping the first timer if one or more data packets to be transmitted are received before the first timer expires comprises: stopping the first timer if all data packets to be transmitted in the hole are received before the first timer expires, the first timer corresponding to the hole, and the one or more data packets to be transmitted being all data packets to be transmitted in the hole.
5. The method according to any one of claims 1 to 4, characterized in that, The data packet receiving window has discontinuous reception data packets is determined in one of the following ways: way one, N>M+1; or, way two, N=M+1, and the data packet corresponding to M is not successfully transmitted; or, way three, when a second timer expires, updating X to be the data packet sequence number of a first data packet with a data packet sequence number greater than or equal to Y and not successfully transmitted, the second timer being used to trigger a data packet receiving status report; or, way four, when the second timer expires, updating the X to be the data packet sequence number of a first data packet with a data packet sequence number greater than or equal to the Y and not successfully transmitted, and the N being greater than the X+1; or, way five, when the second timer expires, updating the X to be the data packet sequence number of a first data packet with a data packet sequence number greater than or equal to the Y and not successfully transmitted, and the N being equal to the X+1, the data packet corresponding to the X not being successfully transmitted; way six, an RLC entity generating or sending the data packet receiving status report; wherein the N indicates a next data packet sequence number of a maximum data packet sequence number of data packets that the RLC entity has received in the data packet receiving window; the M indicates a next data packet sequence number of a data packet sequence number of a last data packet of data packets that the RLC entity has continuously and correctly received; the X indicates a data packet sequence number of a maximum data packet not successfully transmitted in the data packet receiving status report; and the Y indicates a data packet sequence number corresponding to the N when the second timer is triggered.
6. The method of claim 5, wherein, The data packet sequence number of the one or more data packets to be transmitted is greater than or equal to the M and less than the X or the N or the Y.
7. The method of claim 5, wherein, The method further comprises: A first variable is set when the first timer is started, and a packet sequence number of the one or more to-be-transmitted data packets is greater than or equal to the M and less than the first variable; The first variable has the same value as the X or the N or the Y, or the first variable has the same value as the minimum value of the X, the Y and the N.
8. The method of claim 5, wherein, The first timer corresponds to one to-be-transmitted data packet, and the starting of the first timer includes: When the condition of the first mode or the second mode is met, the first timer is started for a packet sequence number of a to-be-transmitted data packet in a first range, and the first range indicates that the packet sequence number is greater than or equal to the M and less than the N; or, When the third mode is met, the first timer is started for a packet sequence number of a to-be-transmitted data packet in a second range, and the second range indicates that the packet sequence number is greater than or equal to the M and less than the X; or, When the fourth mode or the fifth mode is met, the first timer is started for a packet sequence number of a to-be-transmitted data packet in a third range, and the third range indicates that the packet sequence number is greater than or equal to the X and less than the N, or greater than or equal to the M and less than the N; or, When the sixth mode is met, the first timer is started for a packet sequence number of a to-be-transmitted data packet in the first range or the second range.
9. The method of claim 7, wherein, When the first timer expires, the M is updated to a first unsuccessfully transmitted data packet sequence number after a data packet corresponding to the first variable.
10. The method according to any one of claims 5-9, characterized in that, The duration of the first timer is greater than the duration of the second timer.
11. The method according to any one of claims 5-10, characterized in that, When the one or more to-be-transmitted data packets are not received when the first timer expires, the method further includes: If the second timer is running and the first condition is met, the second timer is stopped and / or reset, and the first condition includes one or more of the following: The Y is equal to the M, the Y is equal to the M+1, and the M corresponding data packet does not exist discontinuous reception, or the Y is out of the data packet receiving window range.
12. The method of any one of claims 5-11, wherein, When the one or more to-be-transmitted data packets are not received when the first timer expires, the method further includes: If the second timer is not running and the second condition is met, the second timer is started, and the second condition includes one or more of the following: N>M+1; or, N=M+1, and the M corresponding data packet is not transmitted successfully.
13. The method of any one of claims 1-12, wherein, The determination of the transmission of the one or more to-be-transmitted data packets is the determination of the discarding of the one or more to-be-transmitted data packets.
14. A communication method, comprising: The method includes: Receiving first information from a radio link control (RLC) entity, and the first information includes a RLC data packet sequence number transmitted successfully by the RLC entity; If it is determined that a third timer expires, sending a RLC data packet sequence number that does not need to be transmitted to the RLC entity, and the third timer is started when a packet data convergence protocol (PDCP) entity detects a packet loss.
15. The method of claim 14, wherein, The method further includes: Determining a PDCP data packet sequence number that does not need to be transmitted; Determining the RLC data packet sequence number that does not need to be transmitted according to the first information and the PDCP data packet sequence number that does not need to be transmitted.
16. A method of communication, comprising: Comprising: sending first information to a packet data convergence protocol (PDCP) entity, the first information comprising RLC packet sequence numbers for which the RLC entity has successfully transmitted; receiving from the PDCP entity RLC packet sequence numbers for which the RLC entity has not successfully transmitted.
17. The method of claim 16, wherein, The method further comprises: if the first sequence number is equal to M, updating the M to be the packet sequence number of the next unsuccessfully transmitted packet; and / or, if the first sequence number is equal to N, updating the N to be the packet sequence number of the next unsuccessfully transmitted packet; and / or, if the first sequence number is equal to X, updating the X to be the packet sequence number of the next unsuccessfully transmitted packet; wherein the first sequence number is any one of the RLC packet sequence numbers for which the RLC entity has not successfully transmitted, wherein the N indicates the next packet sequence number of the maximum packet sequence number of packets for which the RLC entity has received, wherein the M indicates the next packet sequence number of the packet sequence number of the last packet of the packets for which the RLC entity has successfully received in succession, and wherein the X indicates the maximum packet sequence number of the unsuccessfully transmitted packets indicated in the packet reception status report.
18. A communications device, characterized by Comprising: at least one processor and a memory; the memory for storing computer programs or data; the at least one processor for running part or all of the computer programs or data to cause the method of any one of claims 1-17 to be performed.
19. A computer-readable storage medium, characterized in that, The computer readable storage medium stores instructions which, when executed by a computer, cause the method of any one of claims 1-17 to be performed.
20. A computer program product comprising computer programs or instructions, characterized in that, The computer programs or instructions, when running on a computer, cause the method of any one of claims 1-17 to be performed.
Citation Information
Patent Citations
BO (Buffer Occupy) counting sending based method capable of avoiding waste of LTE (Long Term Evolution) air-interface resource in ARQ (Automatic Repeat Request) retransmission
CN102315924A
Segmented grouping method and receiving end
CN108668320A
Processing method of RLC acknowledgement mode retransmission data packet of Tiantong system data plane
CN115426680A
RLC (Radio Link Control) data transmission method and device, computer equipment and readable medium
CN117692107A
Control Channel Monitoring in a Wireless Network
US20240155643A1