Communication method and apparatus
By responding to the indication information of the packet discarding timer timeout in the wireless communication system and updating the sending window, the problem of resource waste after the sending side packet timeout is solved, and the protocol stack and resource utilization are optimized.
Patent Information
- Application Number
- PCT/CN2024/128177
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-03
- Filing Date
- 2024-10-29
- Publication Date
- 2025-05-08
AI Technical Summary
In the wireless communication system, the PDCP entity on the sending side discards the packet after the discardTimer timed out, but the packet has been handed over to the lower layer at this time, resulting in wasted air interface resources and invalid transmission.
In response to the drop timer timeout of the packet in the first protocol layer of the first communication device, the instruction information is sent to the second communication device to stop the transmission of the data packet and update the lower boundary of the transmission window to reduce interaction and resource waste between the protocol layers.
The user-plane protocol stack is optimized, resource waste is reduced, resource utilization is improved, and invalid transmission and retransmission of data packets are reduced.
Smart Images

Figure CN2024128177_08052025_PF_FP_ABST
Abstract
Description
Communication method and device
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on November 3, 2023, with application number 202311469916.7 and application name “A Communication Method and Device”, the entire contents of which are incorporated by reference into this application. Technical Field
[0003] The present application relates to the field of communication technology, and in particular to a communication method and device. Background Art
[0004] Wireless communication systems use a layered protocol stack design. The user plane protocol stack on both the transmitting and receiving sides includes the service data adaptation protocol (SDAP), packet data convergence protocol (PDCP), radio link control (RLC), medium access control (MAC), and physical (PHY) layers, as shown in Figure 1.
[0005] Currently, when a PDCP entity on the transmitting side receives a PDCP service data unit (SDU) from an upper layer, it can start a discard timer (discardTimer) associated with the PDCP SDU. If the discardTimer times out, the PDCP entity on the transmitting side discards the PDCP SDU and the corresponding PDCP protocol data unit (PDU) associated with the discardTimer. When the discardTimer times out, the PDCP PDU associated with the discardTimer has been delivered to the lower layer (e.g., the RLC layer), then the PDCP entity can send an indication message to the RLC entity to instruct the discard of the corresponding data packet. Accordingly, if the corresponding RLC SDU (or RLC SDU segment) has not yet been delivered to the lower layer (e.g., the MAC layer), then the RLC entity can discard the RLC SDU (or RLC SDU segment) according to the indication message. If the RLC SDU (or RLC SDU segment) has been delivered to the lower layer, the RLC entity cannot discard the RLC SDU (or RLC SDU segment) and cannot terminate the air interface transmission of the RLC SDU (or RLC SDU segment). In addition, the RLC entity may continue to perform the automatic repeat request (ARQ) transmission corresponding to the RLC SDU (or RLC SDU segment) on the air interface. However, after the discardTimer of the PDU SDU times out, the air interface transmission of the corresponding RLC SDU (or RLC SDU segment) and the ARQ transmission corresponding to the RLC SDU (or RLC SDU segment) are useless transmissions, resulting in a waste of air interface resources.
[0006] Summary of the Invention
[0007] The embodiments of the present application provide a communication method and apparatus for optimizing a user plane protocol stack, which is beneficial to improving resource utilization.
[0008] In a first aspect, the present application provides a communication method that can be applied to a first protocol layer of a first communication device. Specifically, the method may include: when a discard timer corresponding to a first data packet expires, the first protocol layer of the first communication device sends first indication information to the first protocol layer of a second communication device, where the first indication information is used to indicate that the first data packet is no longer to be transmitted.
[0009] The first communication device and the second communication device can be a terminal device or a network device. When the first communication device is a terminal device, the second communication device can be a network device or another terminal device. When the first communication device is a network device, the second communication device can be a terminal device. In the embodiment of the present application, the function performed by the terminal device can be performed by a device in the terminal device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device can be performed by a device in the network device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the network device.
[0010] In the above embodiment, in response to the expiration of the discard timer corresponding to the first data packet, the first protocol layer of the first communication device discards the first data packet and sends first indication information to the first protocol layer of the second communication device to indicate that the first data packet is no longer to be transmitted. Compared to a solution in which the PDCP layer sends indication information to the RLC layer, this solution can reduce interactions between protocol layers within the same communication device, optimize the user plane protocol stack, and reduce resource waste caused by the RLC layer having already delivered the data packet that is no longer to be transmitted to the lower layer for transmission or retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0011] In one possible implementation, the first protocol layer of the first communication device may further update the first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions.
[0012] Exemplarily, the first indication information is further used to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted. Alternatively, the first protocol layer of the first communication device may further send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted.
[0013] In the above implementation, the first protocol layer of the first communication device updates the lower boundary of the sending window, and sends to the first protocol layer of the second communication device a message indicating that the data packet with a sequence number less than the updated first variable will no longer be transmitted, thereby reducing the interaction between different protocol layers under the same communication device, optimizing the user plane protocol stack, reducing invalid transmission or invalid retransmission of data packets, and helping to improve resource utilization and reduce the impact on the immediate transmission of subsequent data packets.
[0014] In a possible implementation, the first protocol layer of the first communication device may further receive a second status report from the second communication device, where the second status report includes NACK information of the first data packet or includes ACK information of the first data packet.
[0015] In one possible implementation, the first communication device is a network device, and the first protocol layer of the first communication device can also send a first data packet to the first protocol layer of the second communication device. Exemplarily, the first protocol layer of the first communication device sends at least one first PDU to the second protocol layer (e.g., MAC layer) of the first communication device; the second protocol layer of the first communication device receives the at least one first PDU, caches the at least one first PDU, and generates a first data packet based on the at least one first PDU after determining the transmission resource of the at least one first PDU, and sends the first data packet to the second communication device. For example, the second protocol layer of the first communication device can compose a transmission block for the at least one PDU to obtain the first data packet.
[0016] In the above implementation, the first protocol layer of the first communication device sends the at least one first PDU to the second protocol layer of the first communication device before the second protocol layer of the first communication device determines the transmission resources of the at least one first PDU. Compared with the second protocol layer of the first communication device first determining the transmission resources of the at least one first PDU, sending a request message for requesting the at least one first PDU to the first protocol layer of the first communication device, and the first protocol layer of the first communication device sending the at least one first PDU to the second protocol layer of the first communication device in response to the request message, this scheme can reduce data processing delay, reduce the interaction delay between protocol layers that squeezes the air interface transmission time of the data packet, and is conducive to improving the service quality of low-latency services.
[0017] In one possible implementation, the first communication device is a network device, and the first protocol layer of the first communication device may also send a first data packet to the first protocol layer of the second communication device, and send a third data packet to the third communication device, where the cell set in which the second communication device is located is different from the cell set in which the third communication device is located. Exemplarily, the first protocol layer in the first communication device copies the first PDU to obtain two first PDUs, and sends the two first PDUs to the second protocol layer of the second communication device; after receiving the two first PDUs, the second protocol layer of the second communication device caches one of the two first PDUs in a first buffer area, and caches the other first PDU in a second buffer area; further, after determining the transmission resource of the first PDU, the second protocol layer of the second communication device obtains a first data packet from the first PDU group TB in the first buffer area, and sends the first data packet to the second communication device, and obtains a third data packet from the first PDU group TB in the second buffer area, and sends the third data packet to the third communication device.
[0018] In the above implementation, enabling the first protocol layer to have the data replication function is conducive to meeting the service quality requirements of extremely low latency and extremely high reliability services.
[0019] In one possible implementation, the first communication device is a network device. The first protocol layer of the first communication device may also send a first data packet to a second communication device and a third communication device, where the cell set in which the third communication device resides is different from the cell set in which the second communication device resides. The first protocol layer of the first communication device sends the first data packet to the second protocol layer of the first communication device. The second protocol layer of the first communication device caches the first data packet and maintains two state variables corresponding to the first data packet. One of the two state variables is used to indicate whether the first communication device sent the first data packet to the second communication device, and the remaining state variable is used to indicate whether the first communication device sent the first data packet to the third communication device.
[0020] In the above implementation, the second protocol layer (such as the MAC layer) is enabled to maintain the state variable corresponding to the data packet. The state variable is associated with multiple cell sets, which facilitates determining the transmission status of the data packet in these multiple cell sets, and is conducive to meeting the service quality requirements of extremely low latency and extremely high reliability services.
[0021] In the second aspect, the present application provides a communication method, which can be applied to the first protocol layer of a first communication device. Specifically, the first protocol layer of the first communication device can receive a first status report from the second communication device, wherein the first status report includes NACK information of the second data packet; and, when a first condition is met, send a second indication information to the first protocol layer of the second communication device, wherein the second indication information is used to indicate that the second data packet is no longer transmitted; or, when the first condition is not met, send the second data packet to the second communication device; wherein the first condition is one or more of the following: the discard timer corresponding to the second data packet has timed out or the discard timer corresponding to the second data packet is not running; the sequence number of the second data packet is less than the first variable of the sending window; or, the number of retransmissions of the second data packet reaches the maximum number of retransmissions; wherein the first variable is the lower boundary of the sending window.
[0022] The first communication device and the second communication device can be a terminal device or a network device. When the first communication device is a terminal device, the second communication device can be a network device or another terminal device. When the first communication device is a network device, the second communication device can be a terminal device. In the embodiment of the present application, the function performed by the terminal device can be performed by a device in the terminal device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device can be performed by a device in the network device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the network device.
[0023] In the above embodiment, the first protocol layer of the first communication device responds to the NACK information of the second data packet and, upon determining that the first condition is satisfied, sends second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer to be transmitted. Compared to a solution in which the PDCP layer sends indication information to the RLC layer, this solution can reduce interaction between protocol layers within the same communication device, optimize the user plane protocol stack, and reduce resource waste caused by the RLC layer having already delivered the data packet that is no longer to be transmitted to the lower layer for retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0024] Alternatively, the first protocol layer of the first communication device responds to the NACK information of the second data packet and retransmits the second data packet when determining that the first condition is not met, thereby ensuring the reliability of data transmission.
[0025] In one possible implementation, the first protocol layer of the first communication device may further update the first variable, wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions.
[0026] Illustratively, the first protocol layer of the first communication device may further send third indication information to the first protocol layer of the second communication device, where the third indication information is used to instruct that packets with sequence numbers less than the updated first variable are no longer transmitted. Alternatively, the second indication information is further used to instruct that packets with sequence numbers less than the updated first variable are no longer transmitted.
[0027] In the above implementation, the first protocol layer of the first communication device updates the lower boundary of the sending window, and sends to the first protocol layer of the second communication device a message indicating that the data packet with a sequence number less than the updated first variable will no longer be transmitted, thereby reducing the interaction between different protocol layers under the same communication device, optimizing the user plane protocol stack, reducing invalid transmission or invalid retransmission of data packets, and helping to improve resource utilization and reduce the impact on the immediate transmission of subsequent data packets.
[0028] In a possible implementation, the first protocol layer of the first communication device may also update the number of retransmissions of the second data packet when the first condition is not met, so as to maintain the number of retransmissions of the second data packet.
[0029] In a third aspect, the present application provides a communication method, which can be applied to the first protocol layer of a second communication device. Specifically, the method may include: the first protocol layer of the second communication device receives first indication information from the first protocol layer of the first communication device, the first indication information being used to indicate that the first data packet is no longer to be transmitted; updating a second variable of a receiving window according to the first indication information, wherein the updated second variable is greater than or equal to the sequence number of a data packet within the receiving window that has not been completely received and has not been indicated by the first communication device as no longer to be transmitted, and the second variable is the lower boundary of the receiving window.
[0030] The first communication device and the second communication device can be a terminal device or a network device. When the first communication device is a terminal device, the second communication device can be a network device or another terminal device. When the first communication device is a network device, the second communication device can be a terminal device. In the embodiment of the present application, the function performed by the terminal device can be performed by a device in the terminal device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device can be performed by a device in the network device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the network device.
[0031] In the above embodiment, the first protocol layer of the second communication device can update the second variable of the receiving window in response to the first indication information, so as to avoid retransmission of the data packet that the first communication device determines no longer to transmit, thereby reducing resource consumption and reducing the impact on the timely transmission of subsequent data packets.
[0032] In one possible implementation, the first protocol layer of the second communication device may also send a second status report to the first communication device when the reassembly timer of the receiving window times out, and the second status report includes NACK information of the first data packet, or includes ACK information of the first data packet.
[0033] In one possible implementation, the first protocol layer of the second communication device sends the second status report to the first communication device when the reassembly timer of the receiving window times out. Specifically, the first protocol layer of the second communication device sends the second status report to the first communication device when the prohibition timer has timed out or the prohibition timer is not running and the reassembly timer of the receiving window times out.
[0034] Through the above implementation, the receiving side uses the prohibition timer to reduce the number of status reports sent by the receiving side to the sending side, which can reduce the waste of resources caused by the high frequency of status report feedback from the receiving side making some status reports useless.
[0035] In one possible implementation, the first protocol layer of the second communication device can also update the third variable when the sequence number of the first data packet is greater than or equal to the third variable. The updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1. The third variable is associated with the maximum value of the sequence number of the data packet received by the receiving side to achieve maintenance of the third variable.
[0036] In a fourth aspect, the present application provides a communication method that can be applied to the first protocol layer of a second communication device. Specifically, the method may include: the first protocol layer of the second communication device receives a first data packet from the first communication device; when the first data packet is completely received and the sequence number of the first data packet is a second variable of a receive window, updating the second variable, wherein the updated second variable is greater than or equal to the sequence number of a data packet within the receive window that has not been completely received and has not been instructed by the first communication device to no longer be transmitted, and the second variable is the lower boundary of the receive window.
[0037] The first communication device and the second communication device can be a terminal device or a network device. When the first communication device is a terminal device, the second communication device can be a network device or another terminal device. When the first communication device is a network device, the second communication device can be a terminal device. In the embodiment of the present application, the function performed by the terminal device can be performed by a device in the terminal device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device can be performed by a device in the network device (for example, a chip, or a chip system, or a circuit), or it is a device that can be used with the network device.
[0038] In the above embodiment, when a data packet is completely received and the serial number of this data packet is the lower boundary of the receiving window, the first protocol layer of the second communication device can update the lower boundary of the receiving window, pushing the lower boundary of the receiving window to slide, thereby reducing the impact on the timely reception of subsequent data packets.
[0039] In one possible implementation, the first protocol layer of the second communication device can also update the third variable when the sequence number of the first data packet is greater than the third variable. The updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1. The third variable is associated with the maximum value of the sequence number of the data packet received by the receiving side to achieve maintenance of the third variable.
[0040] In a fifth aspect, the present application provides a communication device. The communication device is configured to execute the method described in the first aspect or the second aspect, and any possible design thereof. The communication device is, for example, a first communication device, or a functional module in the first communication device, such as a baseband device or a chip system.
[0041] In one possible design, the communication device includes a baseband device and a radio frequency device.
[0042] In another possible design, the communication device includes a processing module (sometimes also referred to as a processing unit) and a transceiver module (sometimes also referred to as a transceiver unit). The transceiver module can implement both sending and receiving functions. When the transceiver module implements the sending function, it can be referred to as a sending module (sometimes also referred to as a sending unit); when the transceiver module implements the receiving function, it can be referred to as a receiving module (sometimes also referred to as a receiving unit). The sending module and the receiving module can be the same functional module, which is referred to as a transceiver module and can implement both sending and receiving functions; alternatively, the sending module and the receiving module can be different functional modules, with the transceiver module being a general term for these functional modules.
[0043] In a sixth aspect, the present application provides a communication device. The communication device is configured to perform the method described in the third aspect or the fourth aspect, and any possible design thereof. The communication device is, for example, a second communication device, or a functional module in the second communication device, such as a baseband device or a chip system.
[0044] In one possible design, the communication device includes a baseband device and a radio frequency device.
[0045] In another possible design, the communication device includes a processing module (sometimes also referred to as a processing unit) and a transceiver module (sometimes also referred to as a transceiver unit). The transceiver module can implement both sending and receiving functions. When the transceiver module implements the sending function, it can be referred to as a sending module (sometimes also referred to as a sending unit); when the transceiver module implements the receiving function, it can be referred to as a receiving module (sometimes also referred to as a receiving unit). The sending module and the receiving module can be the same functional module, which is referred to as a transceiver module and can implement both sending and receiving functions; alternatively, the sending module and the receiving module can be different functional modules, with the transceiver module being a general term for these functional modules.
[0046] In a seventh aspect, an embodiment of the present application further provides a communication device. The communication device may include one or more processors. Optionally, the communication device may further include a memory. The memory is used to store one or more computer programs or instructions. The one or more processors are used to execute the one or more computer programs or instructions stored in the memory, so that the communication device performs the method described in the first aspect or the second aspect above, and any possible design thereof, or performs the method described in the third aspect or the fourth aspect above, and any possible design thereof.
[0047] In an eighth aspect, embodiments of the present application further provide a communication system, which includes one or more of the following: the communication device described in the fifth aspect, or the communication device described in the sixth aspect.
[0048] In the ninth aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store computer programs or instructions. When the computer-readable storage medium is executed, the method described in the above-mentioned first aspect or second aspect and any possible design thereof is implemented, or the method described in the above-mentioned third aspect or fourth aspect and any possible design thereof is implemented.
[0049] In the tenth aspect, an embodiment of the present application also provides a computer program product comprising instructions, which, when run on a computer, enables the method described in the above-mentioned first aspect or second aspect and any possible design thereof to be implemented, or enables the method described in the above-mentioned third aspect or fourth aspect and any possible design thereof to be implemented.
[0050] In the eleventh aspect, an embodiment of the present application also provides a chip, which is coupled to a memory and is used to read and execute program instructions in the memory, so that the device where the chip is located implements the method described in the above-mentioned first aspect or second aspect and any possible design thereof, or implements the method described in the above-mentioned third aspect or fourth aspect and any possible design thereof.
[0051] The technical effects that can be achieved in the above-mentioned fifth to eleventh aspects can be referred to the technical effects that can be achieved in the above-mentioned first to fourth aspects and any possible design thereof, and no further details will be given. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] FIG1 is a schematic diagram of a user plane protocol stack;
[0053] FIG2 is a schematic diagram of the architecture of a communication system;
[0054] FIG3 is a schematic diagram of a user plane protocol stack provided in an embodiment of the present application;
[0055] FIG4 is a flow chart of a first communication method provided in an embodiment of the present application;
[0056] FIG5 is a schematic diagram of first indication information provided in an embodiment of the present application;
[0057] FIG6 is a schematic diagram of an updated receiving window provided in an embodiment of the present application;
[0058] FIG7 is a schematic diagram of another updated receiving window provided in an embodiment of the present application;
[0059] FIG8 is a schematic diagram of an updated receiving window provided in an embodiment of the present application;
[0060] FIG9 is a schematic diagram of a flow chart of a second communication method provided in an embodiment of the present application;
[0061] FIG10 is a schematic diagram of a flow chart of a third communication method provided in an embodiment of the present application;
[0062] FIG11 is a schematic diagram of a CU-DU separation architecture provided in an embodiment of the present application;
[0063] FIG12 is a schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0064] FIG13 is a schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0065] FIG14 is a schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0066] FIG15 is a schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0067] FIG16 is a schematic structural diagram of a communication device provided in an embodiment of the present application;
[0068] FIG17 is a schematic structural diagram of a communication device provided in an embodiment of the present application;
[0069] FIG18 is a schematic structural diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0070] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
[0071] The network architecture and business scenarios described in this application are intended to more clearly illustrate the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Ordinary technicians in this field will know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0072] In the embodiments of the present application, "multiple" may refer to two or more. In view of this, in the embodiments of the present application, "multiple" may also be understood as "at least two". "At least one" may be understood as one or more, for example, one, two or more. For example, "including at least one" means including one, two or more. For example, including at least one of A, B and C, then included may be A, B, C, A and B, A and C, B and C, or A, B and C. "And / or" describes the association relationship of associated objects. Specifically, there may be three relationships. For example, A and / or B may represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / ", unless otherwise specified, generally indicates that the previous and subsequent associated objects are in an "or" relationship.
[0073] In addition, the terms "system" and "network" in the embodiments of the present application may be used interchangeably, and "according to" and "based on" may be used interchangeably.
[0074] In the embodiments of this application, ordinal numbers such as "first" and "second" are generally used to distinguish different objects and are not used to define the order, timing, priority, or importance of multiple objects. For example, in the embodiments of this application, the first communication device and the second communication device are used to distinguish between two communication devices and do not define the priority or importance of the two communication devices.
[0075] The embodiments of the present application will be presented around a system including multiple devices, components, modules, etc. It should be understood that the system may include other devices, components, modules, etc. not mentioned, or may only include some of the devices, components, or modules, etc. mentioned in the embodiments.
[0076] The following first introduces a communication system to which the embodiments of the present application are applicable.
[0077] The technical solutions of the embodiments of the present application can be applied to various communication systems, such as universal mobile telecommunications system (UMTS), wireless local area network (WLAN), enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC) system, machine type communication (MTC) system, massive machine type communication (mMTC) system, enhanced machine type communication (eMTC) system, Internet of Things (IoT) communication system, short-range wireless communication system (such as sidelink, wireless fidelity (Wi-Fi), Bluetooth, etc.), wired network, vehicle to everything (V2X) communication system, device-to-device (D2D) communication system, augmented reality (AR), virtual reality (VR), Internet of Vehicles communication system, 4th generation (4G) The fifth generation (4G) mobile communication system (such as the long term evolution (LTE) system), the LTE frequency division duplex (FDD) system, the LTE time division duplex (TDD) system, the world wide interoperability for microwave access (WiMAX) communication system, the fifth generation (5G) mobile communication system (such as the new radio (NR) system), the future communication system (such as the sixth generation (6G) mobile communication system), or other similar communication systems are not restricted.The embodiments of the present application are described using the communication system shown in FIG2 as an example. When the technical solutions of the embodiments of the present application are applied to other communication systems, the devices, components, modules, etc. in the embodiments can be replaced with corresponding devices, components, and modules in other communication systems without limitation.
[0078] Figure 2 is a schematic diagram of the architecture of the communication system used in the embodiment of the present application. As shown in Figure 2, the communication system includes an access network 100 and a core network 200. Optionally, the communication system may also include the Internet 300. The access network 100 may include at least one radio access network (RAN) node, such as 110a and 110b in Figure 2, and may also include at least one terminal device, such as 120a-120j in Figure 2. 110a is a base station, 110b is a micro station, 120a, 120e, 120f and 120j are mobile phones, 120b is a car, 120c is a gas pump, 120d is a home access point (HAP) arranged indoors or outdoors, 120g is a laptop, 120h is a printer, and 120i is a drone. The same terminal device or network device can provide different functions in different application scenarios. For example, in FIG2 , there are mobile phones 120 a , 120 e , 120 f , and 120 j . Mobile phone 120 a can access base station 110 a , connect to car 120 b , communicate directly with mobile phone 120 e , and access HAP. Car 120 b can access HAP and communicate directly with mobile phone 120 a . Mobile phone 120 f can access micro station 110 b , connect to laptop computer 120 g , and connect to printer 120 h . Mobile phone 120 j can control drone 120 i .
[0079] A network device is a network-side device with wireless transceiver capabilities. A network device can be a device in a radio access network (RAN) that provides wireless communication capabilities for terminal devices, and is called a RAN device. The RAN can be an access network in the 3rd Generation Partnership Project (3GPP), such as 4G, 5G, or future-oriented 6G networks. The RAN can also be an open access network (O-RAN or ORAN), a cloud radio access network (CRAN), or a communication network of two or more of the above networks.
[0080] RAN equipment can also be a base station, an evolved NodeB (eNodeB), a transmission reception point (TRP), a next-generation NodeB (gNB) in a 5G mobile communication system, a base station in a 6G mobile communication system, a base station in a future mobile communication system, or an access node in a WiFi system.
[0081] The RAN device can also be a module or unit that performs some of the functions of the base station. For example, it can be a centralized unit (CU), a distributed unit (DU), or a radio unit (RU). Among them, one CU can be connected to one DU, or one CU can be connected to multiple DUs, which can save costs and facilitate network expansion. In other words, the access network equipment can consist of a CU and one or more DUs. The CU and DU are connected via the F1 interface, and the CU and the core network are connected via the next generation (NG) interface. Optionally, the CU can also be divided into a CU-control plane (CP) and a CU-user plane (UP).
[0082] In one possible implementation, the CU can perform the functions of the radio resource control protocol (RRC) layer and the PDCP layer of the base station, and can also perform the functions of the SDAP layer; the DU can perform the functions of the RLC layer and the MAC layer of the base station, and can also perform the functions of part or all of the PHY layer. For detailed descriptions of the above-mentioned protocol layers, please refer to the relevant technical specifications of the 3rd Generation Partnership Project (3GPP). The CU and DU can be set separately, or they can be included in the same network element, such as the baseband unit (BBU). The RU can be included in a radio frequency device or radio frequency unit, such as a remote radio unit (RRU), an active antenna unit (AAU), or a remote radio head (RRH). In different systems, the CU, DU, or RU may have different names, but those skilled in the art will understand their meanings. For example, in the ORAN system, the CU may also be called an O-CU (Open CU), the DU may also be called an O-DU (Open DU), and the RU may also be called an O-RU (Open RU). Any of the CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented by a software module, a hardware module, or a combination of a software module and a hardware module. It is understandable that the base station may adopt a CU-DU separation architecture or not. The base station may adopt a CP-UP separation architecture or not.
[0083] The network device may be a macro base station (such as 110a in FIG2 ), a micro base station or an indoor station (such as 110b in FIG2 ), a relay node or a donor node, etc. The embodiments of the present application do not limit the specific technology and specific device form used by the network device.
[0084] In the embodiments of the present application, the functions of the network device may be performed by a module (such as a chip) in the network device, or by a control subsystem that includes the network device functions. The control subsystem that includes the network device functions may be a control center in the aforementioned application scenarios such as smart grid, industrial control, smart transportation, and smart city.
[0085] A terminal device is a user-side device with wireless transceiver capabilities. A terminal device may also be referred to as a terminal, user equipment (UE), mobile station, mobile terminal, etc. Terminal devices can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things (IoT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grid, smart furniture, smart office, smart wearable, smart transportation, smart city, etc. A terminal device may be a mobile phone, tablet computer, computer with wireless transceiver capabilities, wearable device, vehicle, drone, helicopter, airplane, ship, robot, robotic arm, smart home appliance, etc. In the embodiments of the present application, a device for realizing the function of a terminal device may be a terminal device, or a device capable of supporting the terminal device to realize the function, such as a chip system or a combination device or component capable of realizing the function of the terminal device, which may be installed in the terminal device. The embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal device.
[0086] In the embodiment of the present application, the functions of the terminal device may also be performed by a module (such as a chip or a modem) in the terminal device, or may be performed by a device that includes the functions of the terminal device.
[0087] Network devices and terminal devices can be fixed or mobile. They can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; on water; and in the air on aircraft, balloons, and satellites. The embodiments of this application do not limit the application scenarios of network devices and terminal devices.
[0088] The roles of network devices and terminal devices can be relative. For example, the helicopter or drone 120i in Figure 2 can be configured as a mobile network device. For terminal devices 120j accessing the wireless access network 100 via 120i, terminal device 120i is a network device. However, for network device 110a, 120i is a terminal device, meaning that communication between 110a and 120i occurs via a wireless air interface protocol. Of course, communication between 110a and 120i can also occur via an interface protocol between network devices. In this case, 120i is also a network device relative to 110a. Therefore, both network devices and terminal devices can be collectively referred to as communication devices. 110a and 110b in Figure 2 can be referred to as communication devices with network device functionality, while 120a-120j in Figure 2 can be referred to as communication devices with terminal device functionality.
[0089] Network devices and terminal devices, network devices and network devices, and terminal devices and terminal devices can communicate through licensed spectrum, through unlicensed spectrum, or through both licensed and unlicensed spectrum at the same time, without any restrictions.
[0090] In the embodiments of the present application, both the sending side and the receiving side can be terminal devices; or, the sending side can be a terminal device and the receiving side can be a network device; or, the sending side can be a network device and the receiving side can be a terminal device, without limitation.
[0091] Next, the technical features involved in the embodiments of this application are introduced.
[0092] (1) User plane protocol stack between the sending side and the receiving side
[0093] As shown in Figure 1, the user plane protocol stack between the transmitting and receiving sides includes the SDAP layer, PDCP layer, RLC layer, MAC layer, and PHY layer. The SDAP layer's main function is to mark the quality of service (QoS) flow identifier in uplink and downlink data packets and map QoS flows to data radio bearers (DRBs). Data packets on the user plane are primarily transmitted via DRBs. Depending on the QoS flow, data between the transmitting and receiving sides can be carried on multiple DRBs.
[0094] The PDCP layer is located between the SDAP layer and the RLC layer, and provides functions such as message forwarding on the user plane / control plane, security functions (encryption / integrity protection), header compression / data compression, timed discard, adding sequence numbers (SN), reordering, and in-order delivery.
[0095] The RLC layer is located between the PDCP layer and the MAC layer. It communicates with the PDCP layer through the RLC channel and with the MAC layer through the logical channel. It provides functions such as data transmission, RLC SDU segmentation and reassembly, ARQ error correction, and duplicate detection. The RLC layer supports three modes: transparent mode (TM), unacknowledged mode (UM), and acknowledged mode (AM). Among them:
[0096] The TM mode is used to transmit signaling radio bearer 0 (SRB0) data, paging data, and broadcast system messages. These messages cannot be segmented and the data is transparently transmitted through the RLC layer.
[0097] UM mode is suitable for real-time services with high latency requirements and error tolerance. A data packet is considered complete after it is transmitted through the UM RLC entity. Even if the data packet is lost during air interface transmission, the RLC layer will not retransmit it.
[0098] The AM mode is suitable for non-real-time services with high reliability requirements, such as web browsing, file downloads using the File Transfer Protocol (FTP), and signaling transmission. These services need to minimize data loss. The AM RLC entity uses the ARQ mechanism to ensure lossless data transmission. The basic concept is that the receiving RLC entity can send an RLC status report to the transmitting RLC entity (for example, carried by the RLC control PDU) to indicate which data was successfully received and which data failed to be received. The transmitting RLC entity receives the RLC status report and, based on the RLC status report, retransmits any data packets that failed to be transmitted.
[0099] The main functions of the MAC layer are to provide resource selection, scheduling information reporting, MAC SDU multiplexing and demultiplexing, and hybrid automatic repeat request (HARQ) transmission of data packets.
[0100] The PHY layer is located at the bottom of the air interface protocol stack and is mainly responsible for coding, modulation, multi-antenna processing, and time-frequency resource mapping.
[0101] (2) Timing discard function on the sending side
[0102] When the PDCP entity on the transmitting side receives a PDCP SDU from the upper layer, it starts a discard timer (discardTimer) associated with the PDCP SDU. If the discardTimer times out, the PDCP entity on the transmitting side discards the PDCP SDU associated with the discardTimer and the corresponding PDCP PDU. When the discardTimer times out, the PDCP PDU associated with the discardTimer has been delivered to the lower layer (for example, the RLC layer), then the PDCP entity may send indication information to the RLC entity to instruct the discard of the corresponding RLC SDU. Accordingly, if the RLC entity has not delivered the corresponding RLC SDU (or RLC SDU segment) to the lower layer, then the RLC entity may discard the RLC SDU (or RLC SDU segment) according to the indication information; otherwise, the RLC entity cannot discard the RLC SDU (or RLC SDU segment) and may continue to transmit / retransmit the RLC SDU (or RLC SDU segment).
[0103] (3) Reordering function on the receiving side
[0104] The PDCP entity on the receiving side maintains a receive window. If the sequence numbers of the packets received within the receive window are discontinuous (i.e., there is a sequence number hole), a reordering timer (t-reordering) is started to wait for the hole in the receive window to be filled.
[0105] If the t-reordering timer expires, the receiving PDCP entity slides the receive window and no longer waits for the same set of air interfaces. In other words, the receiving PDCP entity no longer waits for packets that fall outside the receive window. Even if these packets are subsequently received, the receiving PDCP entity discards them.
[0106] (4) ARQ function of AM RLC
[0107] For highly reliable but latency-insensitive services, the base station can configure AM RLC for data transmission and configure the maximum number of AM ARQ retransmissions. If the number of ARQ retransmissions for an RLC SDU (or a segment of an RLC SDU) reaches the pre-configured maximum number of retransmissions, a radio link failure (RLF) is triggered, which in turn triggers the RRC connection re-establishment process.
[0108] In the timed discard function on the sending side, the discardTimer associated with a PDCP SDU of the PDCP entity on the sending side times out, triggering packet loss at the PDCP layer. However, the air interface transmission of the data packet cannot be terminated because the lower layer data packet has been sent. The data packet may continue to undergo RLC ARQ transmission (and HARQ transmission) on the air interface, but the air interface transmission at this time is useless, which not only wastes air interface resources but also causes the receiving side to submit the timed-out data packet to the upper layer. In the reordering function on the receiving side, the t-reordering timer of the PDCP entity on the receiving side times out, triggering the PDCP entity on the receiving side to push the window. The data packets that fall outside the receiving window have timed out and are useless, but the lower layer RLC ARQ (and HARQ) cannot terminate the retransmission of the data packet, which will cause a waste of resources and hinder the timely transmission of subsequent data packets.
[0109] In view of this, embodiments of the present application provide a communication method and apparatus for optimizing the user plane protocol stack, thereby improving resource utilization. The method and apparatus described herein are based on the same technical concept. Since the method and apparatus solve similar problems, the implementation of the apparatus and method can refer to each other, and any repetitions will not be repeated.
[0110] The following is an introduction to the technical terms involved in the embodiments of this application.
[0111] (1) First communication device and second communication device
[0112] The first communication device may be a transmitting side of a data packet, a network device or a component in a network device (e.g., a chip, a chip system, or a circuit), or a terminal device or a component in a terminal device (e.g., a chip, a chip system, or a circuit). For network devices and terminal devices, please refer to the relevant description in FIG2 and will not be repeated here.
[0113] The second communication device may be a receiving side of a data packet, a network device or a component in a network device (e.g., a chip, or a chip system, or a circuit), or a terminal device or a component in a terminal device (e.g., a chip, or a chip system, or a circuit). For network devices and terminal devices, please refer to the relevant description in FIG2 and will not be repeated here.
[0114] Exemplarily, the first communication device may be a terminal device or a component in a terminal device, and the second communication device may also be a terminal device or a component in a terminal device; or, the first communication device may be a terminal device or a component in a terminal device, and the second communication device may be a network device or a component in a network device; or, the first communication device may be a network device or a component in a network device, and the second communication device may be a terminal device or a component in a terminal device.
[0115] (2) Data Packet
[0116] A data packet may be an SDU or a PDU, without limitation. In the embodiments of the present application, a data packet may be a complete data packet or a segment of a data packet. For simplicity, the following description uses a data packet as an example. It should be understood that the data packet in the following description may also be replaced by a data packet segment. The embodiments of the present application do not limit the data types included in the data packet.
[0117] (3) First protocol layer
[0118] The method provided in the embodiment of the present application can be implemented by the first protocol layer. The first protocol layer can also be called an aggregation layer, or a layer 2 (layer 2, l2) aggregation layer, a combined layer, or a first protocol entity, etc. In one possible implementation, the first protocol layer can replace the PDCP layer and the RLC layer, have the functions of the PDCP layer and the RLC layer, and can be located between the SDAP layer and the MAC layer, as shown in (1) in Figure 3. In another possible implementation, the first protocol layer can be an enhancement of the PDCP layer, and have the functions of the PDCP layer. In another possible implementation, the first protocol layer can be an enhancement of the RLC layer, and have the functions of the RLC layer. In another possible implementation, the first protocol layer can also be deployed independently and can be located between the PDCP layer and the RLC layer, as shown in (2) in Figure 3. It can be understood that the position of the first protocol layer shown in (2) in Figure 3 is an example, and the embodiment of the present application is not limited to this. For example, the first protocol layer can be located between the RLC layer and the MAC layer, or the first protocol layer can replace part or all of the functions of the PDCP layer, the RLC layer and the SDAP layer, etc.
[0119] (4) Send Window
[0120] The send window, also known as the send queue, is not limited to this. It can be understood as a continuous sequence number or range of sequence numbers on the sender's side, or as a queue of packets on the sender's side. For simplicity, the following explanation uses the send window as an example of a continuous sequence number. The sender only sends packets with sequence numbers that fall within the send window to the receiver.
[0121] The sending window involves two variables, which are denoted as Tx_lower and Tx_high. Tx_lower, which can also be called the first variable or the low sequence number of the sending side, is used to identify the lower boundary of the sending window. During initialization, Tx_lower can be 0 or 1, without restriction. Tx_high, which can also be called the high sequence number of the sending side, is used to identify the upper boundary of the sending window. Exemplarily, Tx_high can be the sum of Tx_lower and the length of the sending window (such as window size1), that is, Tx_high = Tx_lower + window size1. Among them, window size1 can be pre-defined or pre-configured, without restriction. For example, assuming that Tx_lower is 0 and window size1 is 6, then Tx_high can be 6, and the sending window can include {SN0, SN1, SN2, SN3, SN4, SN5, SN6}.
[0122] (5) Receive Window
[0123] The receive window, also known as the receive queue, is not limited to this. It can be understood as a continuous sequence number or range of sequence numbers on the receive side, or as a queue of packets received by the receive side. For simplicity, the following explanation uses a receive window as an example of a continuous sequence number range. The receive side only accepts or processes packets with sequence numbers that fall within the receive window. For details, please refer to the aforementioned description of the receive-side reordering function and will not be repeated here.
[0124] The receiving window involves three variables, which are respectively denoted as Rx_lower, Rx_high and Rx_highest. Among them, Rx_lower, which can also be called the second variable or the receiving side low variable, is used to identify the lower boundary of the receiving window. During initialization, Rx_lower can be 0 or 1, without restriction. Rx_high, which can also be called the receiving side high sequence number, is used to identify the upper boundary of the receiving window. Exemplarily, Rx_high can be the sum of Rx_lower and the length of the receiving window (such as denoted as window size2), that is, Rx_high = Rx_lower + window size2. Among them, window size2 can be pre-defined or pre-configured, without restriction. For example, assuming Rx_lower is 1 and window size1 is 4, then Rx_high can be 5, and the receiving window can include {SN1, SN2, SN3, SN4, SN5}. Rx_highest, which can also be called the third variable, is used to associate the maximum value of the sequence number of the data packet received by the receiving side. For example, Rx_highest may be the maximum sequence number of the data packets received by the receiving side plus 1. For example, if the maximum sequence number of the data packets received by the receiving side is 3, then Rx_highest may be 4.
[0125] In addition, the term "first protocol layer" in the following text can be replaced by "first protocol entity" or "first protocol layer entity", etc.
[0126] Next, the communication method provided by the embodiment of the present application is introduced.
[0127] FIG4 exemplarily illustrates a flow chart of a first communication method provided by an embodiment of the present application. In this embodiment, in response to the expiration of a discard timer corresponding to a first data packet, the transmitting side indicates to the receiving side that the data packet is no longer to be transmitted. Specifically, as shown in FIG4 , the method may include the following contents.
[0128] S401: The first protocol layer of the first communication device starts a discard timer corresponding to a first data packet.
[0129] S401 is an optional step, indicated by a dotted line in FIG4 . Exemplarily, the first protocol layer of the first communication device may receive a first data packet from an upper layer (e.g., an SDAP layer, or a PDCP layer, etc.) and start a discard timer corresponding to the first data packet. The number of first data packets may be one or more, without limitation. One or more data packets may be associated with the same discard timer. In other words, one discard timer may manage whether one or more data packets need to be discarded. For the first protocol layer, please refer to the relevant description of FIG3 and will not be repeated here.
[0130] Optionally, the first protocol layer of the first communication device may assign a sequence number to the first data packet. Optionally, after the first protocol layer of the first communication device performs corresponding processing on the first data packet, it may be delivered to a lower layer (e.g., a MAC layer or an RLC layer) for transmission. Optionally, the sequence number of the first data packet belongs to a sending window, that is, the sending window includes the sequence number of the first data packet.
[0131] It can be understood that the relevant content of S401 can be executed by the first protocol layer of the first communication device, or can be executed by one or more other protocol layers of the first communication device, or can be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0132] In this embodiment, the first protocol layer of the first communication device can maintain a discard timer corresponding to the first data packet. When the discard timer corresponding to the first data packet has not timed out, the first protocol layer of the first communication device can perform transmission or retransmission of the first data packet. For example, the first communication device sends a first data packet to the second communication device (not shown in Figure 4); the second communication device attempts to receive the first data packet. The first data packet can be received successfully, or the first data packet can fail to be received, without restriction. Further, if the second communication device fails to receive the first data packet, the first communication device can retransmit the first data packet. It should be noted that in the embodiment of the present application, the maximum number of retransmissions of the data packet can be predefined, or can be preconfigured, without restriction.
[0133] Alternatively, when the discard timer corresponding to the first data packet times out, the first protocol layer of the first communication device may discard the first data packet and send first indication information to the first protocol layer of the second communication device, ie, execute S402.
[0134] S402: When the discard timer corresponding to the first data packet times out, the first protocol layer of the first communication device sends first indication information to the first protocol layer of the second communication device.
[0135] Correspondingly, the first protocol layer of the second communication device receives the first indication information from the first protocol layer of the first communication device.
[0136] The first indication information can be used to indicate that the first data packet is no longer being transmitted; or can be expressed as follows: the first indication information can be used to indicate that the first communication device is no longer sending the first data packet; or can be expressed as follows: the first indication information can be used to indicate that the first data packet has been discarded. Exemplarily, the content format of the first indication information can be implemented in the following ways, but is not limited to these. These ways are described below.
[0137] Implementation method 1: The first indication information may include a first field and a second field. The first field may be used to indicate that the first data packet is no longer transmitted, and the second field may be used to indicate whether N data packets with a sequence number subsequent to the sequence number of the first data packet continue to be transmitted. The value of the nth bit in the second field may include a first value and a second value. When the value of the second field is the first value, the nth bit is used to indicate that the data packet with a sequence number equal to the sequence number of the first data packet plus n is no longer transmitted; or, when the value of the second field is the second value, the nth bit is used to indicate that the data packet with a sequence number equal to the sequence number of the first data packet plus n continues to be transmitted. Wherein, n is an integer greater than 0 and less than or equal to N. N is a positive integer.
[0138] For example, assuming that the serial number of the first data packet is x, denoted as SN x, the first field may include SN x, which is used to indicate that the data packet of SN x is no longer transmitted, as shown in (1) in Figure 5. The second field can be called a bitmap. When the value of the first bit of the bitmap is 0, it is used to indicate that the data packet with the serial number (x+1) continues to be transmitted; or, when the value of the first bit of the bitmap is 1, it is used to indicate that the data packet with the serial number (x+1) is no longer transmitted. When the value of the second bit of the bitmap is 0, it is used to indicate that the data packet with the serial number (x+2) continues to be transmitted; or, when the value of the second bit of the bitmap is 1, it is used to indicate that the data packet with the serial number (x+2) is no longer transmitted. The same applies to the remaining data packets and they are not listed one by one. In (1) in Figure 5, N is 8 as an example.
[0139] In one embodiment, the first protocol layer of the first communication device may determine that the data packet continues to be transmitted based on one or more of the following: a discard timer corresponding to the data packet has not timed out, the number of retransmissions of the data packet has not reached a maximum number of retransmissions, or the sequence number of the data packet is within a sending window. In one embodiment, the first protocol layer of the first communication device may determine that the data packet is no longer transmitted based on one or more of the following: a discard timer corresponding to the data packet has timed out (or the discard timer corresponding to the data packet is not running), the number of retransmissions of the data packet has reached a maximum number of retransmissions, or the sequence number of the data packet is outside the sending window.
[0140] Implementation 2: The first indication information may include the sequence number of the first data packet to indicate that the first data packet is no longer transmitted, as shown in (2) in Figure 5. In (2) in Figure 5, the number of first data packets is two, and the sequence numbers of these two data packets are x (denoted as SN x) and y (denoted as SN y), respectively. The first indication information includes SN x and SN y, which is used to indicate that the data packet of SN x and the data packet of SN y are no longer transmitted.
[0141] Implementation method 3: The first indication information may include one or more groups of fields, and one group of fields in the one or more groups of fields may include a third field and a fourth field. The third field may be used to indicate that a data packet is no longer transmitted, and the fourth field may be used to indicate the number of data packets that are no longer transmitted starting from the sequence number of this data packet, or to indicate the number of data packets that are no longer transmitted starting from the first sequence number after the sequence number of this data packet (i.e., the sequence number of this data packet plus 1). It can be understood that the data packets indicated by the one or more groups of fields may all be first data packets, i.e., the number of first data packets is multiple; or the data packets indicated by the one or more groups of fields may include the first data packet and the data packets that are no longer transmitted determined by the first protocol layer of the first communication device, without limitation. Please refer to the aforementioned content for the data packets that are no longer transmitted determined by the first protocol layer of the first communication device, and no further details will be given.
[0142] For example, the first indication information includes two groups of fields, the third field in the first group of fields includes SN x, which is used to indicate that the data packet of SN x is no longer transmitted, the fourth field in the first group of fields includes n1, which is used to indicate that n1 consecutive data packets starting with sequence number x are no longer transmitted, that is, (n1-1) data packets with sequence numbers (x+1), ..., (x+n1-1) are no longer transmitted (or n1 is used to indicate that n1 consecutive data packets starting with sequence number x+1 are no longer transmitted, that is, n1 data packets with sequence numbers (x+1), ..., (x+n1) are no longer transmitted); the third field in the second group of fields includes SN y, which is used to indicate that the data packet of SN y is no longer transmitted, the fourth field in the second group includes n2, which is used to indicate that the data packet with sequence number starting with SN The n2 consecutive data packets starting from y are no longer transmitted, that is, the (n2-1) data packets with sequence numbers (y+1), ..., (y+n2-1) are no longer transmitted (or n2 is used to indicate that the n2 consecutive data packets with sequence numbers starting from y+1 are no longer transmitted, that is, the n2 data packets with sequence numbers (y+1), ..., (y+n2) are no longer transmitted), as shown in (3) of Figure 5. Where n1 and n2 are both positive integers.
[0143] Through the above implementation, the first indication information can use multiple methods to indicate the data packet that is no longer transmitted, which is highly flexible.
[0144] In S402, in response to a discard timer corresponding to the first data packet expiring, the first protocol layer of the first communication device discards the first data packet and sends first indication information to the first protocol layer of the second communication device to indicate that the first data packet is no longer to be transmitted. Compared to a solution in which the PDCP layer sends indication information to the RLC layer, this solution can reduce interactions between protocol layers within the same communication device, optimize the user plane protocol stack, and reduce resource waste caused by the RLC layer having already delivered the data packet that is no longer to be transmitted to the lower layer for transmission or retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0145] In one possible implementation, when the discard timer corresponding to the first data packet times out, the first protocol layer of the first communication device may also update (or modify, etc.) the first variable of the sending window, that is, update Tx_lower, which is not shown in FIG4 . Updating the first variable of the sending window may also be referred to as updating the sending window. The updated Tx_high of the sending window may remain unchanged, or may be the sum of the updated Tx_lower and window size1, without limitation. Thereafter, the first communication device only sends data packets whose sequence numbers are within the updated sending window to the second communication device. Exemplarily, the updated Tx_lower may include the following implementations. These implementations are described below.
[0146] Implementation 1: The updated Tx_lower may be the smallest sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out. Alternatively, the updated Tx_lower may be the first sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out. The first sequence number refers to the first sequence number in a ascending order of sequence numbers. The first sequence number may also be expressed as the last sequence number in a ascending order of sequence numbers. For ease of understanding, the following description uses the first sequence number in a ascending order of sequence numbers as an example.
[0147] It can be understood that if the number of data packets in the sending window that have not been confirmed as successfully received by the second communication device and the discard timer has not timed out is one, then the updated Tx_lower can be the serial number of this one data packet; or if the number of data packets in the sending window that have not been confirmed as successfully received by the second communication device and the discard timer has not timed out is multiple, then the updated Tx_lower can be the minimum serial number among the serial numbers of these multiple data packets.
[0148] A data packet confirmed as successfully received by the second communication device can be understood as: the first communication device receiving acknowledgment (ACK) information for the data packet from the second communication device. A data packet not confirmed as successfully received by the second communication device can be understood as: the first communication device not yet receiving ACK information for the data packet from the second communication device. Optionally, the first communication device may receive negative acknowledgment (NACK) information for the data packet from the second communication device. In this case, the data packet can also be referred to as a data packet not confirmed as successfully received by the second communication device.
[0149] For example, assuming the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 0 (i.e., the discard timer corresponding to the data packet of SN0 has timed out). If the discard timer corresponding to the data packet of SN1 has timed out (or is not running), the data packets of SN2 and SN3 have been confirmed to be successfully received by the second communication device, and the data packets of SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the corresponding discard timers have not timed out, then the updated Tx_lower is the minimum sequence number among SN4, SN5, and SN6, that is, the updated Tx_lower is 4. Accordingly, the updated sending window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10}.
[0150] As another example, assume that the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 1 (i.e., the discard timer corresponding to the data packet of SN1 has timed out). If the data packets of SN0 and SN3 have been confirmed to be successfully received by the second communication device, the discard timer corresponding to the data packet of SN2 has timed out (or is not running), and the data packets of SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the corresponding discard timers have not timed out, then the updated Tx_lower is the smallest sequence number among SN4, SN5, and SN6, that is, the updated Tx_lower is 4. Accordingly, the updated sending window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10}.
[0151] As another example, assume that the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 1 (i.e., the discard timer corresponding to the data packet of SN1 has timed out). If the data packets of SN2 and SN3 have been confirmed to be successfully received by the second communication device, and the data packets of SN0, SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the corresponding discard timers have not timed out, then the updated Tx_lower is the minimum sequence number among SN0, SN4, SN5, and SN6, that is, the updated Tx_lower is still 0. Accordingly, the updated sending window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6}.
[0152] Exemplarily, if the sequence number of the first data packet is not the first variable (i.e., not Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device and the corresponding discard timer has not timed out, the Tx_lower before and after the update is the same; or, if there are multiple first data packets, the sequence numbers of the multiple first data packets do not include the first variable (i.e., do not include Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device and the corresponding discard timer has not timed out, the Tx_lower before and after the update is the same. Optionally, in this case, the first protocol layer of the first communication device may not update Tx_lower, without limitation.
[0153] Figure 6 exemplarily illustrates a schematic diagram of an updated transmit window. In Figure 6 , the updated Tx_lower represents the first sequence number among the sequence numbers of packets within the transmit window that have not been confirmed as successfully received by the second communication device and whose discard timer has not expired. Furthermore, packets with sequence numbers less than the updated Tx_lower may include one or more of the following: packets whose discard timer has expired (or whose discard timer is not running), or packets whose receipt has been confirmed as successfully received by the second communication device.
[0154] Implementation 2: The updated Tx_lower may be the smallest sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device and whose retransmission count has not reached the maximum retransmission count. Alternatively, the updated Tx_lower may be the first sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device and whose retransmission count has not reached the maximum retransmission count. The description of the first sequence number is provided above and is not repeated here.
[0155] It can be understood that if the number of data packets in the sending window that have not been confirmed as successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions is one, then the updated Tx_lower can be the serial number of this one data packet; or if the number of data packets in the sending window that have not been confirmed as successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions is multiple, then the updated Tx_lower can be the minimum serial number among the serial numbers of these multiple data packets.
[0156] For example, assuming the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 0 (i.e., the discard timer corresponding to the data packet of SN0 has timed out). If the number of retransmissions of the data packet of SN1 reaches the maximum number of retransmissions, the data packets of SN2 and SN3 have been confirmed to be successfully received by the second communication device, and the data packets of SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions, then the updated Tx_lower is the minimum sequence number among SN4, SN5, and SN6, that is, the updated Tx_lower is 4. Accordingly, the updated sending window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10}.
[0157] As another example, assume that the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 1 (i.e., the discard timer corresponding to the data packet of SN1 has timed out). If the number of retransmissions of the data packet of SN0 reaches the maximum number of retransmissions, the data packets of SN2 and SN3 have been confirmed to be successfully received by the second communication device, and the data packets of SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions, then the updated Tx_lower is the minimum sequence number among SN4, SN5, and SN6, that is, the updated Tx_lower is 4. Accordingly, the updated sending window is {SN4, SN5, SN6, SN7, SN8, SN9, SN10}.
[0158] As another example, assume that the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6}, Tx_lower is 0, Tx_high is 6, and the sequence number of the first data packet is 1 (i.e., the discard timer corresponding to the data packet of SN1 has timed out). If the data packets of SN2 and SN3 have been confirmed to be successfully received by the second communication device, and the data packets of SN0, SN4, SN5, and SN6 have not been confirmed to be successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions, then the updated Tx_lower is the minimum sequence number among SN0, SN4, SN5, and SN6, that is, the updated Tx_lower is still 0. Accordingly, the updated sending window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6}.
[0159] Exemplarily, if the sequence number of the first data packet is not the first variable (i.e., not Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions, the Tx_lower before and after the update is the same; or, if there are multiple first data packets, the sequence numbers of the multiple first data packets do not include the first variable (i.e., do not include Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device and the number of retransmissions has not reached the maximum number of retransmissions, the Tx_lower before and after the update is the same. Optionally, in this case, the first protocol layer of the first communication device may not update Tx_lower, without limitation.
[0160] Figure 7 illustrates an exemplary diagram of an updated transmit window. In Figure 7, the updated Tx_lower represents the first sequence number among the sequence numbers of data packets within the transmit window that have not been confirmed successfully received by the second communication device and whose retransmission count has not reached the maximum number of retransmissions. Furthermore, data packets with sequence numbers less than the updated Tx_lower may include one or more of the following: data packets whose retransmission count has reached the maximum number of retransmissions, or data packets whose reception has been confirmed successfully by the second communication device.
[0161] Implementation 3: The updated Tx_lower may be the smallest sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not expired, and whose maximum number of retransmissions has not been reached. Alternatively, the updated Tx_lower may be the first sequence number among the sequence numbers of data packets within the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not expired, and whose maximum number of retransmissions has not been reached. The description of the first sequence number is provided above and is not repeated here.
[0162] It can be understood that if the number of data packets in the sending window that has not been confirmed as successfully received by the second communication device, the discard timer has not timed out, and the maximum number of retransmissions has not been reached is one, then the updated Tx_lower can be the serial number of this one data packet; or if the number of data packets in the sending window that has not been confirmed as successfully received by the second communication device, the discard timer has not timed out, and the maximum number of retransmissions has not been reached is multiple, then the updated Tx_lower can be the minimum serial number among the serial numbers of these multiple data packets.
[0163] For example, assuming the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Tx_lower is 0, Tx_high is 8, and the sequence number of the first data packet is 0 (i.e., the discard timer corresponding to the data packet of SN0 has timed out). If the discard timer corresponding to the data packet of SN1 has timed out (or is not running), the data packets of SN2 and SN3 have been confirmed as successfully received by the second communication device, the discard timer corresponding to the data packet of SN5 has timed out (or is not running), the number of retransmissions of the data packet of SN6 has reached the maximum number of retransmissions, and the data packets of SN4, SN7, and SN8 have not been confirmed as successfully received by the second communication device, the corresponding discard timers have not timed out, and the maximum number of retransmissions has not been reached, then the new Tx_lower is the smallest sequence number among SN4, SN7, and SN8, that is, the updated Tx_lower is 4. Accordingly, the updated sending window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12}.
[0164] As another example, assuming the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Tx_lower is 0, Tx_high is 8, and the sequence number of the first data packet is 3 (i.e., the discard timer corresponding to the data packet of SN3 has timed out). If the number of retransmissions of the data packet of SN0 is greater than the maximum number of retransmissions, the data packets of SN1 and SN2 have been confirmed to be successfully received by the second communication device, the discard timer corresponding to the data packet of SN5 has timed out (or is not running), the number of retransmissions of the data packet of SN6 has reached the maximum number of retransmissions, and the data packets of SN4, SN7, and SN8 have not been confirmed to be successfully received by the second communication device, the corresponding discard timers have not timed out, and the maximum number of retransmissions has not been reached, then the updated Tx_lower is the smallest sequence number among SN4, SN7, and SN8, that is, the updated Tx_lower is 4. Accordingly, the updated sending window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12}.
[0165] As another example, assuming the sending window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Tx_lower is 0, Tx_high is 8, and the sequence number of the first data packet is 3 (i.e., the discard timer corresponding to the data packet of SN3 has timed out). If the data packets of SN1 and SN2 have both been confirmed as successfully received by the second communication device, the discard timer corresponding to the data packet of SN5 has timed out (or is not running), the number of retransmissions of the data packet of SN6 has reached the maximum number of retransmissions, and the data packets of SN0, SN4, SN7, and SN8 have not been confirmed as successfully received by the second communication device, the corresponding discard timers have not timed out, and the maximum number of retransmissions has not been reached, then the updated Tx_lower is the smallest sequence number among SN0, SN4, SN7, and SN8, that is, the updated Tx_lower is still 0. Accordingly, the updated sending window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}.
[0166] Exemplarily, when the sequence number of the first data packet is not the first variable (i.e., not Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device, the corresponding discard timer has not timed out, and the number of retransmissions has not reached the maximum number of retransmissions, the Tx_lower before and after the update is the same; or, when there are multiple first data packets, the sequence numbers of the multiple first data packets do not include the first variable (i.e., do not include Tx_lower), and the data packet of Tx_lower has not been confirmed as successfully received by the second communication device, the corresponding discard timer has not timed out, and the number of retransmissions has not reached the maximum number of retransmissions, the Tx_lower before and after the update is the same. Optionally, in this case, the first protocol layer of the first communication device may also not update Tx_lower, without restriction.
[0167] In this third embodiment, the updated Tx_lower is the first sequence number among the sequence numbers of data packets within the transmission window that have not been confirmed as successfully received by the second communication device, whose discard timer has not expired, and whose retransmission count has not reached the maximum number of retransmissions. Furthermore, data packets with sequence numbers less than the updated Tx_lower may include one or more of the following: data packets whose discard timer has expired (or is not running), data packets whose retransmission count has reached the maximum number of retransmissions, or data packets whose receipt has been confirmed as successfully received by the second communication device.
[0168] In one embodiment, the first indication information can also be used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. Optionally, the first indication information can include the updated Tx_lower to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. For example, the first indication information includes the sequence number of the first data packet and the updated Tx_lower to indicate that the first data packet is no longer transmitted and the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. For another example, considering that the sequence number of the first data packet is less than the updated Tx_lower, the first indication information can also include the updated Tx_lower, excluding the sequence number of the first data packet, to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. That is, the first indication information can be used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted.
[0169] In another embodiment, the first protocol layer of the first communication device may also send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that packets with sequence numbers less than the updated Tx_lower value are no longer transmitted. That is, the first protocol layer of the first communication device sends the first indication information and the third indication information to the first protocol layer of the second communication device. Optionally, the third indication information may include the updated Tx_lower value, indicating that packets with sequence numbers less than the updated Tx_lower value are no longer transmitted.
[0170] In the above implementation, the first protocol layer of the first communication device updates the lower boundary of the sending window, and sends a message to the first protocol layer of the second communication device to indicate that the data packet with a sequence number less than the updated Tx_lower will no longer be transmitted, thereby reducing the interaction between different protocol layers under the same communication device, optimizing the user plane protocol stack, reducing invalid transmission or invalid retransmission of data packets, and helping to improve resource utilization and reduce the impact on the immediate transmission of subsequent data packets.
[0171] The first protocol layer of the second communication device receives the first indication information and can record the sequence number of the first data packet indicated by the first indication information that is no longer to be transmitted. Further, the first protocol layer of the second communication device can update the second variable of the receiving window based on the first indication information, that is, execute the content of S403.
[0172] S403: The first protocol layer of the second communication device updates the second variable of the receiving window according to the first indication information.
[0173] S403 is an optional step, indicated by a dotted line in FIG4 . The first protocol layer of the second communication device may update the second variable of the receiving window according to the first indication information, that is, update Rx_lower. Here, updating the second variable of the receiving window may also be referred to as updating the receiving window. The Rx_high of the updated receiving window may remain unchanged, or may be the sum of the updated Rx_lower and window size2, without limitation. Thereafter, the second communication device receives the data packet from the first communication device according to the updated receiving window. Exemplarily, the second communication device may update Rx_lower when the sequence number of the first data packet is greater than or equal to Rx_lower. It should be noted that when the sequence number of the first data packet is less than Rx_lower, the second communication device may update Rx_lower or may not update Rx_lower, without limitation.
[0174] Exemplarily, the updated Rx_lower may be greater than or equal to the sequence number of the data packet that has not been completely received within the receiving window and has not been instructed by the first communication device to no longer be transmitted. For example, the updated Rx_lower may be the first sequence number among the sequence numbers of the data packet that has not been completely received (or not completely received) within the receiving window and has not been instructed by the first communication device to no longer be transmitted; or the updated Rx_lower may also be the first sequence number plus 1 (i.e., the second sequence number) among the sequence numbers of the data packet that has not been completely received within the receiving window and has not been instructed by the first communication device to no longer be transmitted. For the description of the first sequence number, please refer to the above content and will not be repeated here. In this embodiment, the first sequence number may also be replaced by: the sequence number of the last data packet submitted to the upper layer by the second communication device according to the sequence number. Accordingly, the second sequence number may be replaced by: the sequence number of the last data packet submitted to the upper layer by the second communication device according to the sequence number plus 1 (i.e., the sequence number of the second to last data packet).
[0175] A completely received data packet may be understood as: the entire data packet has been received by the second communication device. An incompletely received data packet may be understood as: part or all of the data packet has not been received by the second communication device.
[0176] Figure 8 illustrates an example of an updated receive window. In Figure 8 , the updated Rx_lower represents the first sequence number of packets that were not completely received and not instructed by the first communication device to no longer transmit, plus 1. Furthermore, packets with sequence numbers less than the updated Rx_lower include one or more of the following: packets that have been delivered to an upper layer (or completely received), or packets that the first communication device has instructed to no longer transmit. Furthermore, Figure 8 illustrates an example where Rx_highest represents the maximum sequence number of packets received by the second communication device, plus 1.
[0177] For example, assuming the receive window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Rx_lower is 0, and Rx_high is 8. If the data packets of SN0, SN1, and SN3 have been completely received, and the remaining data packets have not been completely received, the first indication information indicates that the first data packet is no longer transmitted, and the sequence number of the first data packet is 4, then the sequence numbers of the data packets in the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit include: SN2, SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower can be 2, and accordingly, the updated receive window can be {SN2, SN3, SN4, SN5, SN6, SN7, SN8, SN9, SN10}; alternatively, the updated Rx_lower can also be greater than 2.
[0178] Alternatively, if data packets SN1 and SN3 have been completely received, but the remaining data packets have not been completely received, and the first indication information indicates that the first data packet is no longer to be transmitted, and the sequence number of the first data packet is 4, then the sequence numbers of the data packets within the receive window that have not been completely received and have not been instructed by the first communication device to no longer be transmitted include: SN0, SN2, SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower can still be 0, and accordingly, the updated receive window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}; alternatively, the updated Rx_lower can also be greater than 0.
[0179] Alternatively, if data packets SN1 and SN3 have been completely received, but the remaining data packets have not been completely received, the first indication information is used to indicate that data packets with sequence numbers less than the updated Tx_lower will no longer be transmitted, and the updated Tx_lower is 4. Then, the sequence numbers of the data packets within the receive window that have not been completely received and have not been instructed by the first communication device to no longer be transmitted include: SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower can be 5, and accordingly, the updated receive window can be {SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12, SN13}; alternatively, the updated Rx_lower can also be greater than 5.
[0180] As another example, assume that the receive window is {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Rx_lower is 0, and Rx_high is 8. If the data packets of SN1, SN2, and SN3 have been completely received, and the remaining data packets have not been completely received, the first indication information indicates that the first data packet is no longer transmitted, and the sequence number of the first data packet is 0, then the sequence numbers of the data packets in the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit include: SN4, SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower can be 4, and accordingly, the updated receive window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12}; alternatively, the updated Rx_lower can also be greater than 4.
[0181] Alternatively, if data packets SN1, SN2, and SN3 have been completely received, and the remaining data packets have not been completely received, the first indication information is used to indicate that data packets with sequence numbers less than the updated Tx_lower are no longer transmitted, and the updated Tx_lower is 6, then the sequence numbers of the data packets within the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit include: SN7 and SN8. Furthermore, the updated Rx_lower can be 7, and accordingly, the updated receive window can be {SN7, SN8, SN9, SN10, SN11, SN12, SN13, SN14, SN15}; alternatively, the updated Rx_lower can also be greater than 7.
[0182] As another example, assume that the receive window is {SN2, SN3, SN4, SN5, SN6, SN7, SN8}, Rx_lower is 2, and Rx_high is 8. If the data packets of SN2 and SN3 have been completely received, and the remaining data packets have not been completely received, the first indication information indicates that the first data packet is no longer transmitted, and the sequence number of the first data packet is 1, then the sequence numbers of the data packets in the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit include: SN4, SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower can be 4, and accordingly, the updated receive window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10}; alternatively, the updated Rx_lower can also be greater than 4.
[0183] Alternatively, if none of the data packets in the receive window are completely received, the first indication information indicates that the first data packet is no longer to be transmitted, and the sequence number of the first data packet is 1, then the sequence numbers of the data packets in the receive window that are not completely received and not instructed by the first communication device to no longer be transmitted include: SN2, SN3, SN4, SN5, SN6, SN7, and SN8. Furthermore, the updated Rx_lower may still be 2, and accordingly, the updated receive window may still be {SN2, SN3, SN4, SN5, SN6, SN7, SN8}; alternatively, the updated Rx_lower may also be greater than 2.
[0184] Alternatively, if data packets SN2 and SN3 have been completely received, but the remaining data packets have not been completely received, the first indication information is used to indicate that data packets with sequence numbers less than the updated Tx_lower are no longer transmitted, and the updated Tx_lower is 6. Then, the sequence numbers of the data packets within the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit include: SN7 and SN8. Furthermore, the updated Rx_lower can be 7, and accordingly, the updated receive window can be {SN7, SN8, SN9, SN10, SN11, SN12, SN13}; alternatively, the updated Rx_lower can be greater than 7.
[0185] In one possible implementation, the second communication device may start a reassembly timer for the receive window. For example, the second communication device may start the reassembly timer before S403. For example, if there are holes in the receive window, or if the sequence numbers of data packets received within the receive window are discontinuous, or if the third variable (i.e., Rx_highest) is greater than the second variable (i.e., Rx_high), the second communication device may start the reassembly timer. For example, the first protocol layer of the second communication device may start the reassembly timer, but this is not limited to the first protocol layer. If the reassembly timer for the receive window expires, the second communication device may send a second status report to the first communication device; in response, the first communication device may receive the second status report. For example, the first protocol layer of the second communication device may send the second status report to the first protocol layer of the first communication device; in response, the first protocol layer of the first communication device may receive the second status report. The second status report may indicate data packets that failed to be received and / or data packets that were successfully received within the receive window. For example, the second status report may include ACK information for data packet 1, indicating that data packet 1 was successfully received. For another example, the second status report includes NACK information for data packet 2, indicating a reception failure of data packet 2. In this embodiment, the second status report may include NACK information for the first data packet, indicating a reception failure of the first data packet; or may include ACK information for the first data packet, indicating a successful reception of the first data packet. The second status report may be, for example, an RLC status report, without limitation.
[0186] Optionally, the second communication device may be configured with an inhibit timer, and the inhibit timer may be activated when sending a status report. For example, the first protocol layer of the second communication device may be configured with the inhibit timer, and the first protocol layer of the second communication device may activate the inhibit timer when sending a status report. If the inhibit timer is running or has not timed out, the second communication device may not send a status report to the first communication device; alternatively, if the inhibit timer has timed out or is not running, the second communication device may send a status report to the first communication device. For example, if the inhibit timer has timed out (or is not running) and the reassembly timer for the receive window has timed out, the second communication device may send a second status report to the first communication device. Alternatively, if the inhibit timer has timed out (or is not running) and the reassembly timer for the receive window has timed out, the first protocol layer of the second communication device may send a second status report to the first communication device. This inhibit timer can reduce the number of status reports sent from the receiving side to the transmitting side, thereby reducing resource waste caused by the receiving side's high frequency of status report feedback, rendering some status reports useless.
[0187] In one possible implementation, if the sequence number of the first data packet is greater than or equal to the third variable (i.e., greater than Rx_highest), the second communication device may further update the third variable. For example, the first protocol layer in the second communication device updates the third variable. The updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1.
[0188] In S403, the first protocol layer of the second communication device can update the second variable of the receiving window in response to the first indication information, so as to avoid retransmission of the data packet that the first communication device determines no longer to transmit, thereby reducing resource consumption and reducing the impact on the timely transmission of subsequent data packets.
[0189] FIG9 exemplarily illustrates a flow chart of a second communication method provided in an embodiment of the present application. In this embodiment, in response to a failure to receive the second data packet, the transmitting side indicates to the receiving side that the data packet is no longer to be transmitted. Specifically, as shown in FIG9 , the method may include the following contents.
[0190] S901: The first communication device sends a second data packet to the second communication device.
[0191] In this embodiment, the second communication device fails to receive the second data packet.
[0192] For example, the first protocol layer of the first communication device sends a second data packet to the second communication device. Specifically, the first protocol layer of the first communication device can deliver the second data packet to the lower layer, which then sends the second data packet to the second communication device. For the first protocol layer, please refer to the relevant description of FIG. 3 and will not be repeated here.
[0193] Optionally, the first protocol layer of the first communication device receives the second data packet from the upper layer and starts a discard timer corresponding to the second data packet. Optionally, the first protocol layer of the first communication device may assign a sequence number to the second data packet. Optionally, the sequence number of the second data packet belongs to a sending window, that is, the sending window includes the sequence number of the second data packet.
[0194] It can be understood that the relevant content of S901 can be executed by the first protocol layer of the first communication device, or by one or more other protocol layers of the first communication device, or by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0195] In one possible implementation, if the sequence number of the second data packet is greater than or equal to a third variable (i.e., greater than Rx_highest), the second communication device may further update the third variable. For example, the first protocol layer in the second communication device updates the third variable, and the updated third variable is the sequence number of the second data packet or the sequence number of the second data packet plus 1. For example, the first communication device sends the second data packet; in response, the second communication device attempts to receive the second data packet. Regardless of whether the second data packet is received successfully or unsuccessfully, the second communication device may update the third variable if the sequence number of the second data packet is greater than or equal to the third variable.
[0196] In this embodiment, the second communication device fails to receive the second data packet.
[0197] S902: The second communication device sends a first status report to the first communication device.
[0198] Accordingly, the first communication device receives the first status report from the second communication device.
[0199] For example, the first protocol layer of the second communication device sends a first status report to the first protocol layer of the first communication device; accordingly, the first protocol layer of the first communication device receives the first status report. The first status report can be used to indicate data packets that failed to be received and / or data packets that were successfully received within the receive window. For example, the first status report includes ACK information for data packet 1, indicating that data packet 1 was successfully received. For another example, the first status report includes NACK information for data packet 2, indicating that data packet 2 failed to be received. In this embodiment, the first status report includes NACK information for the second data packet, indicating that the second data packet failed to be received. The first status report can be an RLC status report, without limitation.
[0200] Optionally, the first protocol layer of the second communication device may start a reassembly timer. For example, if there is a hole in the receive window, or the sequence numbers of data packets received within the receive window are discontinuous, or the third variable (i.e., Rx_highest) is greater than the second variable (i.e., Rx_high), the first protocol layer of the second communication device may start the reassembly timer. If the reassembly timer expires, the first protocol layer of the second communication device may send a first status report to the first protocol layer of the first communication device. For details about the reassembly timer, please refer to S403 and will not be repeated here.
[0201] Optionally, the first protocol layer of the second communication device may start an inhibit timer. When the inhibit timer expires (or the inhibit timer is not running) and the reassembly timer expires, the first protocol layer of the second communication device may send a first status report to the first protocol layer of the first communication device. For details about the inhibit timer, please refer to S403 and will not be repeated here.
[0202] It can be understood that the relevant content of S902 can be executed by the first protocol layer of the second communication device, or by one or more other protocol layers of the second communication device, or by the first protocol layer and one or more other protocol layers of the second communication device, without limitation.
[0203] The first protocol layer of the first communication device may determine whether the first condition is satisfied in response to the NACK information of the second data packet, and execute S903 and S904 if the first condition is satisfied, or execute S905 and S906 if the first condition is not satisfied.
[0204] Among them, the first condition may include one or more of the following: the discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet is not running), the sequence number of the second data packet is less than the first variable of the sending window (i.e., less than Tx_lower), or the number of retransmissions of the second data packet reaches the maximum number of retransmissions. Exemplarily, the first condition may be that the drop timer corresponding to the second data packet has timed out (or the drop timer corresponding to the second data packet has not run); or, the first condition may be that the sequence number of the second data packet is less than the first variable of the sending window (i.e., less than Tx_lower); or, the first condition may be that the number of retransmissions of the second data packet has reached the maximum number of retransmissions; or, the first condition may be that the drop timer corresponding to the second data packet has timed out (or the drop timer corresponding to the second data packet has not run), and the sequence number of the second data packet is less than the first variable of the sending window (i.e., less than Tx_lower); or, the first condition may be that the drop timer corresponding to the second data packet has timed out (or the drop timer corresponding to the second data packet has not run), and the number of retransmissions of the second data packet has reached the maximum number of retransmissions; or, the first condition may be that the sequence number of the second data packet is less than the first variable of the sending window (i.e., less than Tx_lower), and the number of retransmissions of the second data packet has reached the maximum number of retransmissions; or, the first condition may be that the drop timer corresponding to the second data packet has timed out (or the drop timer corresponding to the second data packet has not run), the sequence number of the second data packet is less than the first variable of the sending window (i.e., less than Tx_lower), and the number of retransmissions of the second data packet has reached the maximum number of retransmissions.
[0205] S903: When the first condition is met, the first protocol layer of the first communication device sends second indication information to the first protocol layer of the second communication device.
[0206] Correspondingly, the first protocol layer of the second communication device receives the second indication information from the first protocol layer of the first communication device.
[0207] The second indication information can be used to indicate that the second data packet is no longer being transmitted; or alternatively, the second indication information can be used to indicate that the first communication device is no longer sending the second data packet. The content format of the second indication information is described in detail with reference to the first indication information and will not be further described. For example, the first protocol layer of the first communication device responds to the NACK information of the second data packet and, upon determining that the first condition is satisfied, sends the second indication information to the first protocol layer of the second communication device.
[0208] Exemplarily, if the second data packet fails to be received and the discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet is not running), the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received and the serial number of the second data packet is less than the first variable of the sending window, the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received and the number of retransmissions of the second data packet reaches the maximum number of retransmissions, the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received and the discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet is not running), and the sequence number of the second data packet is less than the first variable of the sending window, Then, the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received, the discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet is not running), and the number of retransmissions of the second data packet reaches the maximum number of retransmissions, then the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received, the sequence number of the second data packet is less than the first variable of the sending window, and the number of retransmissions of the second data packet reaches the maximum number of retransmissions, then the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted; or, if the second data packet fails to be received, the discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet is not running), the sequence number of the second data packet is less than the first variable of the sending window, and the number of retransmissions of the second data packet reaches the maximum number of retransmissions, then the first protocol layer of the first communication device may send second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer transmitted.
[0209] In S903, the first protocol layer of the first communication device responds to the NACK information of the second data packet and, if it determines that the first condition is satisfied, sends second indication information to the first protocol layer of the second communication device to indicate that the second data packet is no longer to be transmitted. Compared to a solution in which the PDCP layer sends indication information to the RLC layer, this solution can reduce interaction between protocol layers within the same communication device, optimize the user plane protocol stack, and reduce resource waste caused by the RLC layer having already delivered the data packet that is no longer to be transmitted to the lower layer for retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0210] In one possible implementation, when the first condition is met, the first protocol layer of the first communication device may further update (or modify, etc.) the first variable of the send window, that is, update Tx_lower (not shown in FIG9 ). Updating the first variable of the send window may also be referred to as updating the send window. The updated Tx_high of the send window may remain unchanged, or may be the sum of the updated Tx_lower and window size1, without limitation. Thereafter, the first communication device only transmits to the second communication device packets whose sequence numbers fall within the updated send window.
[0211] Exemplarily, the updated Tx_lower may be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated Tx_lower may also be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated Tx_lower may also be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions. For details, please refer to the relevant content of S402 and will not be repeated here.
[0212] In one embodiment, the second indication information can also be used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. Optionally, the second indication information can include the updated Tx_lower to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. For example, the second indication information includes the sequence number of the second data packet and the updated Tx_lower to indicate that the second data packet is no longer transmitted and the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. For another example, considering that the sequence number of the second data packet is less than the updated Tx_lower, the second indication information can also include the updated Tx_lower, excluding the sequence number of the second data packet, to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted. That is, the second indication information can be used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted.
[0213] In another embodiment, the first protocol layer of the first communication device may also send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that packets with sequence numbers less than the updated Tx_lower value are no longer transmitted. That is, the first protocol layer of the first communication device sends the second indication information and the third indication information to the first protocol layer of the second communication device. Optionally, the third indication information may include the updated Tx_lower value, indicating that packets with sequence numbers less than the updated Tx_lower value are no longer transmitted.
[0214] In the above implementation, the first protocol layer of the first communication device updates the lower boundary of the sending window, and sends a message to the first protocol layer of the second communication device to indicate that the data packet with a sequence number less than the updated Tx_lower will no longer be transmitted, thereby reducing the interaction between different protocol layers under the same communication device, optimizing the user plane protocol stack, reducing invalid transmission or invalid retransmission of data packets, and helping to improve resource utilization and reduce the impact on the immediate transmission of subsequent data packets.
[0215] S904: The first protocol layer of the second communication device updates the second variable of the receiving window according to the second indication information.
[0216] S904 is an optional step, indicated by a dotted line in Figure 9. The first protocol layer of the second communication device may update the second variable of the receive window, i.e., update Rx_lower, based on the first indication information. Updating the second variable of the receive window may also be referred to as updating the receive window. The updated Rx_high of the receive window may remain unchanged, or may be the sum of the updated Rx_lower and window size2, without limitation. The second communication device then receives data packets from the first communication device based on the updated receive window.
[0217] Exemplarily, the updated Rx_lower may be greater than or equal to the sequence number of a data packet within the receive window that has not been completely received and has not been instructed by the first communication device to no longer transmit. For example, the updated Rx_lower may be the first sequence number among the sequence numbers of data packets within the receive window that have not been completely received (or not received in full) and have not been instructed by the first communication device to no longer transmit; or the updated Rx_lower may be the first sequence number plus 1 (i.e., the second sequence number) among the sequence numbers of data packets within the receive window that have not been completely received and have not been instructed by the first communication device to no longer transmit. For the specific implementation process, please refer to the relevant content of S403 and will not be repeated here.
[0218] In S904, the first protocol layer of the second communication device can update the second variable of the receiving window in response to the second indication information, so as to avoid retransmission of the data packet that the first communication device determines no longer to transmit, thereby reducing resource consumption and reducing the impact on the timely transmission of subsequent data packets.
[0219] S905: If the first condition is not met, the first communication device sends a second data packet to the second communication device.
[0220] 9 takes the case where the second communication device successfully receives the second data packet as an example. It should be understood that if the second communication device fails to continue to receive the second data packet, the contents of S902 may be executed.
[0221] For example, the first protocol layer of the first communication device sends a second data packet to the second communication device. Specifically, the first protocol layer of the first communication device can deliver the second data packet to the lower layer, which then sends the second data packet to the second communication device. For the first protocol layer, please refer to the relevant description of FIG. 3 and will not be repeated here.
[0222] Exemplarily, if the discard timer corresponding to the second data packet has not timed out, the sequence number of the second data packet is greater than or equal to the first variable of the sending window (that is, greater than or equal to Tx_lower), and the number of retransmissions of the second data packet has not reached the maximum number of retransmissions, the first communication device sends the second data packet to the second communication device; or, if the discard timer corresponding to the second data packet has not timed out and the sequence number of the second data packet is greater than or equal to the first variable of the sending window, the first communication device sends the second data packet to the second communication device; or, if the discard timer corresponding to the second data packet has not timed out and the number of retransmissions of the second data packet has not reached the maximum number of retransmissions, the first communication device sends the second data packet to the second communication device. The communication device sends a second data packet; or, if the sequence number of the second data packet is greater than or equal to the first variable of the sending window and the number of retransmissions of the second data packet has not reached the maximum number of retransmissions, the first communication device sends the second data packet to the second communication device; or, if the discard timer corresponding to the second data packet has not timed out, the first communication device sends the second data packet to the second communication device; or, if the sequence number of the second data packet is greater than or equal to the first variable of the sending window, the first communication device sends the second data packet to the second communication device; or, if the number of retransmissions of the second data packet has not reached the maximum number of retransmissions, the first communication device sends the second data packet to the second communication device.
[0223] It can be understood that the relevant content of S905 can be executed by the first protocol layer of the first communication device, or can be executed by one or more other protocol layers of the first communication device, or can be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0224] In S905 , if the first condition is not met, the first communication device may retransmit the second data packet to ensure reliability of data transmission.
[0225] In one possible implementation, when the first condition is not met, the first protocol layer of the first communication device may also update (or modify, etc.) the first variable of the sending window, that is, update Tx_lower, which is not shown in Figure 9. Among them, updating the first variable of the sending window may also be referred to as updating the sending window. The Tx_high of the updated sending window may remain unchanged, or may be the sum of the updated Tx_lower and window size1, without limitation. Afterwards, the first communication device only sends data packets whose sequence numbers are within the updated sending window to the second communication device. For example, in addition to the NACK information of the second data packet, the first status report may also include ACK information of the data packet with Tx_lower, then the first protocol layer of the first communication device may also update Tx_lower. It can be understood that when the first status report does not include ACK information of the data packet of Tx_lower, the first protocol layer of the first communication device can update Tx_lower (Tx_lower before and after the update may be the same or different (such as the number of retransmissions of the data packet of Tx_lower is greater than the maximum number of retransmissions, etc.)); or, the first protocol layer of the first communication device may not update Tx_lower, without restriction.
[0226] Exemplarily, the updated Tx_lower may be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated Tx_lower may also be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated Tx_lower may also be the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions. For details, please refer to the relevant content of S402 and will not be repeated here.
[0227] In one embodiment, after updating Tx_lower, the first protocol layer of the first communication device may further send third indication information (not shown in FIG9 ) to the first protocol layer of the second communication device. This third indication information is used to indicate that packets with sequence numbers less than the updated Tx_lower should no longer be transmitted. For details, please refer to the above description. That is, if the first condition is not met, the first protocol layer of the first communication device may update Tx_lower and send the third indication information to the first protocol layer of the second communication device.
[0228] Optionally, after receiving the third indication information, the first protocol layer of the second communication device may update the second variable of the receive window based on the third indication information. The updated Rx_lower may be greater than or equal to the sequence number of a data packet within the receive window that was not completely received and was not instructed by the first communication device not to be transmitted. For details, please refer to the relevant content of S904 and will not be repeated here. That is, if the first condition is not met, the first protocol layer of the first communication device may update Tx_lower and send the third indication information to the first protocol layer of the second communication device; accordingly, the first protocol layer of the second communication device may update Rx_lower based on the third indication information.
[0229] This means that the first protocol layer of the first communication device can update Tx_lower regardless of whether the first condition is met. In other words, the first protocol layer of the first communication device can update Tx_lower according to the status report of the second communication device. Exemplarily, the first protocol layer of the first communication device can update Tx_lower according to the first status report after S902 and before S903 (or after S902 and before (or after) S905). Furthermore, if the first status report includes NACK information of the second data packet and the first condition is met, the first protocol layer of the first communication device can send the first indication information and / or the third indication information to the first protocol layer of the second communication device; or, if the first status report includes NACK information of the second data packet and the first condition is not met, the first protocol layer of the first communication device can send the third indication information to the first protocol layer of the second communication device.
[0230] S906: The first protocol layer of the first communication device updates (or modifies) the number of retransmissions of the second data packet.
[0231] For example, if the first communication device receives the NACK information of the second data packet for the first time, the first protocol layer of the first communication device can set the number of retransmissions of the second data packet (such as retx_times) to an initial value (such as 0 or 1); or, if it is not the first time that the first communication device receives the NACK information of the second data packet, the first communication device updates the number of retransmissions of the second data packet, and the updated number of retransmissions is the number of retransmissions plus 1.
[0232] It can be understood that the relevant content of S906 can be executed by the first protocol layer of the first communication device, or by one or more other protocol layers of the first communication device, or by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0233] It should be noted that the execution order of S905 and S906 is provided as an example and is not limited thereto. For example, the first communication device may update the retransmission count of the second data packet while simultaneously sending the second data packet to the second communication device. For another example, the first communication device may first update the retransmission count of the second data packet and then send the second data packet to the second communication device.
[0234] Figure 10 exemplarily illustrates a flow diagram of a third communication method provided by an embodiment of the present application. In this embodiment, the receiving side updates the second variable of the receiving window in response to successful reception of a first data packet and the sequence number of the first data packet being the second variable of the receiving window. Specifically, as shown in Figure 10, the method may include the following.
[0235] S1001: A first communication device sends a first data packet to a second communication device.
[0236] In this embodiment, the second communication device successfully receives the first data packet.
[0237] For example, the first protocol layer of a first communication device sends a first data packet to a second communication device. Specifically, the first protocol layer of the first communication device can deliver the first data packet to a lower layer, which then sends the first data packet to the second communication device. For details about the first protocol layer, please refer to the relevant description of FIG. 3 and will not be repeated here.
[0238] Optionally, a first protocol layer of the first communication device receives a first data packet from an upper layer and starts a discard timer corresponding to the first data packet. Optionally, the first protocol layer of the first communication device may assign a sequence number to the first data packet. Optionally, the sequence number of the first data packet belongs to a sending window, that is, the sending window includes the sequence number of the first data packet.
[0239] It can be understood that the relevant content of S1001 can be executed by the first protocol layer of the first communication device, or can be executed by one or more other protocol layers of the first communication device, or can be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0240] The first communication device sends a first data packet; accordingly, the second communication device attempts to receive the first data packet. In this embodiment, the second communication device successfully receives the first data packet.
[0241] S1002: When the first data packet is completely received and the sequence number of the first data packet is the second variable of the receiving window, the first protocol layer of the second communication device updates the second variable.
[0242] The first data packet is received successfully, that is, the first data packet is received completely, and the first protocol layer of the second communication device can submit the first data packet to the upper layer for processing. If the sequence number of the first data packet is the second variable of the receiving window (i.e., Rx_lower), then the first protocol layer of the second communication device can update the second variable, that is, update Rx_lower. Among them, updating the second variable can also be called updating the receiving window. The Rx_high of the updated receiving window can remain unchanged, or it can be the sum of the updated Rx_lower and window size2, without limitation. For example, the first protocol layer of the second communication device can update Rx_lower in response to the successful reception of the first data packet and the sequence number of the first data packet is Rx_lower. Afterwards, the second communication device receives the data packet from the first communication device according to the updated receiving window.
[0243] Exemplarily, the updated Rx_lower is greater than or equal to the sequence number of the data packet within the receive window that was not completely received and not instructed by the first communication device to no longer transmit. For example, the updated Rx_lower may be the first sequence number among the sequence numbers of the data packet within the receive window that was not completely received (or not fully received) and not instructed by the first communication device to no longer transmit; or the updated Rx_lower may be the first sequence number plus 1 (i.e., the second sequence number) among the sequence numbers of the data packet within the receive window that was not completely received and not instructed by the first communication device to no longer transmit. For the specific implementation method, please refer to the content of S403 and will not be repeated here.
[0244] In one possible implementation, the first protocol layer of the second communication device may start a reassembly timer. For example, if there is a hole in the receive window, or the sequence numbers of the data packets received in the receive window are discontinuous, or the third variable (i.e., Rx_highest) is greater than the second variable (i.e., Rx_high), the first protocol layer of the second communication device may start a reassembly timer. If the reassembly timer times out, the first protocol layer of the second communication device may send a second status report to the first protocol layer of the first communication device. In this embodiment, the second status report includes ACK information for the first data packet, indicating that the first data packet was successfully received. Please refer to the relevant content of S403 for the reassembly timer, which will not be repeated here.
[0245] Optionally, the first protocol layer of the second communication device may start an inhibit timer. When the inhibit timer expires (or the inhibit timer is not running) and the reassembly timer expires, the first protocol layer of the second communication device may send a second status report to the first protocol layer of the first communication device. For details about the inhibit timer, please refer to S403 and will not be repeated here.
[0246] In one possible implementation, if the sequence number of the first data packet is equal to the third variable (i.e., greater than Rx_highest), that is, if Rx_highest is equal to the second variable, the second communication device may further update the third variable. For example, the first protocol layer in the second communication device updates the third variable. The updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1. In other words, in this embodiment, the updated third variable remains the second variable or is the second variable plus 1.
[0247] In one possible implementation, the first protocol layer of the first communication device may update the first variable of the transmit window, i.e., update Tx_lower. For example, the first communication device may update Tx_lower in response to the expiration of the discard timer corresponding to the first data packet. For details, please refer to the relevant content in the embodiment shown in FIG4 , which will not be described in detail here. For another example, the first communication device may also update Tx_lower in response to the second status report of the second communication device. For details, please refer to the relevant content in the embodiment shown in FIG9 , which will not be described in detail here. In addition, please refer to the relevant description of the updated Tx_lower in the embodiments shown in FIG4 or FIG9 , which will not be described in detail here.
[0248] In S1002, when a data packet is completely received and the serial number of this data packet is the lower boundary of the receiving window, the first protocol layer of the second communication device can update the lower boundary of the receiving window, push the lower boundary of the receiving window to slide, and reduce the impact on the timely reception of subsequent data packets.
[0249] It should be noted that the aforementioned first communication method, second communication method and third communication method can be used independently or in combination without limitation.
[0250] It is understood that the first communication device may update Tx_lower in response to the expiration of the discard timer corresponding to the data packet; or may update Tx_lower in response to a status report from the second communication device; or may directly update Tx_lower. For example, the first communication device may update Tx_lower periodically or aperiodically. The embodiments of the present application do not limit the triggering conditions for the transmitting side to update Tx_lower.
[0251] It is understandable that the second communication device may update Rx_lower in response to the first indication information (or second indication information, or third indication information) of the first communication device; or may update Rx_lower in response to the complete reception of the data packet of Rx_lower; or may directly update Rx_lower. For example, the second communication device may update Rx_lower periodically or aperiodically. The embodiments of the present application do not limit the triggering conditions for the receiving side to update Rx_lower.
[0252] The communication method provided in the embodiment of the present application can be applied to a scenario where a terminal device communicates with another terminal device, or it can also be applied to a scenario where a terminal device communicates with a network device. When the communication method provided in the embodiment of the present application is applied to a scenario where a terminal device communicates with a network device, the network device may not adopt a CU-DU separation architecture, or it may adopt a CU-DU separation architecture.
[0253] In one possible implementation, if the network device adopts a CU-DU separation architecture, the first protocol layer can be deployed in the CU, as shown in Figure 11. The first protocol layer is deployed in the CU, and the first protocol layer can communicate with the DU. The lower layer of the first protocol layer can be recorded as the second protocol layer, and the second protocol layer can be deployed in the DU. The second protocol layer can be, for example, a MAC layer, without limitation. The following description takes the second protocol layer as the MAC layer as an example. Accordingly, the MAC layer is deployed in the DU. The MAC layer can also be referred to as a MAC entity, or a MAC layer entity, etc., without limitation. In addition, the DU can be connected to the RU, which is not shown in Figure 11. For the description of the CU, DU, and RU, please refer to the above content and will not be repeated here.
[0254] It can be understood that the content executed by the first protocol layer below can be implemented by the CU, and the content executed by the MAC layer can be implemented by the DU.
[0255] In a possible implementation, a CU can be connected to at least one DU. FIG12 shows an example of a CU connected to two DUs (respectively denoted as DU1 and DU2). As shown in FIG12 , the MAC layer deployed by DU 1 is denoted as MAC 1, and the MAC layer deployed by DU 2 is denoted as MAC 2. The MAC layer may include a cache module (or cache area, or cache, etc.) for caching data and performing data segmentation, such as caching PDUs from the first protocol layer. The cache module in MAC 1 is denoted as cache module 1, and the cache module in MAC 2 is denoted as cache module 2. Exemplarily, the first protocol layer processes the SDU received from the upper layer to generate at least one PDU, and before receiving a transmission request indicated by the MAC layer, transmits the at least one PDU to the MAC layer and caches it in the cache module of the MAC layer, such as cache module 1 or cache module 2. Afterwards, when the MAC layer takes the data packet group transport block (TB), it can preferentially read the PDU with high priority from the cache module, segment the read PDU as needed, and modify the format of the first protocol layer header. For example, the MAC layer can determine the priority of the PDU based on the priority information of the PDU or the type information of the PDU (such as the priority of the PDU used for control is higher than the priority of the PDU used for retransmitting data, and the priority of the PDU used for retransmitting data is higher than the priority of the PDU used for transmitting data). Among them, the PDU priority information or the PDU type information can be the indication accompanying the packet when the CU transmits the PDU to the DU, and is not limited. It should be understood that after the MAC layer takes out the PDU group (or composition) TB from the cache module, it can delete the PDU from the cache module and release the cache in time.
[0256] Taking sending the first data packet as an example, the first communication device is a network device, and the first protocol layer of the first communication device sends the first data packet to the second communication device. Specifically, it can be as follows: the first protocol layer of the first communication device sends at least one first PDU to the MAC layer; after the MAC layer receives the at least one first PDU, it caches the at least one first PDU, and after determining the transmission resources of the at least one first PDU, obtains the first data packet for the at least one first PDU group TB, and sends the first data packet to the second communication device.
[0257] In this implementation, the first protocol layer caches the PDU in the cache module of the MAC layer in advance, so that the MAC layer can directly take the PDU from the cache module to form a TB after determining the transmission resources. Compared with the solution in which the MAC layer sends a transmission request to the first protocol layer after determining the transmission resources, and the first protocol layer sends the PDU to the MAC layer in response to the transmission request, this implementation can reduce the data processing delay under the CU-DU separation architecture, reduce the interaction delay between protocol layers and squeeze the air interface transmission time of the data packet, and is conducive to improving the QoS of low-latency services.
[0258] In one possible implementation, the first protocol layer is deployed in the CU, and the MAC layer is deployed in the DU. N logical channels (LCHs) are established between the first protocol layer and the MAC layer. The N LCHs are associated with the N cache modules of the MAC layer, and the N LCHs are associated with N cell sets, as shown in Figure 13. For example, one LCH is associated with one cache module of the MAC layer, and one cache module of the MAC layer is associated with one LCH. For example, one LCH is associated with one cell set, and one cell set is associated with one LCH. A cell set may include one or more cells, without limitation. N is an integer greater than 1. Figure 13 illustrates an example where N is 3. The three cache modules are respectively designated as cache module 1, cache module 2, and cache module 3; the three LCHs are respectively designated as LCH1, LCH2, and LCH3; and the three cell sets are respectively designated as cell set 1, cell set 2, and cell set 3. Among them, LCH1 is associated with cache module 1 and cell set 1, LCH2 is associated with cache module 2 and cell set 2, and LCH3 is associated with cache module 3 and cell set 3.
[0259] Exemplarily, the first protocol layer processes the SDU received from the upper layer to generate at least one PDU (PDU1 for illustration). Before receiving a transmission request from the MAC layer, the first protocol layer replicates PDU1 N times, resulting in N PDU1s. These PDU1s are then delivered to associated buffer modules in the MAC layer via N LCHs for caching. For example, PDU1 is delivered to buffer module 1 in the MAC layer via LCH1 for caching, PDU1 is delivered to buffer module 2 in the MAC layer via LCH2 for caching, and PDU1 is delivered to buffer module 3 in the MAC layer via LCH2 for caching. Subsequently, upon receiving scheduling resources for a specific cell set, the MAC layer retrieves a data packet group TB from the buffer module associated with that cell set. For example, the MAC layer retrieves PDU group TB from buffer module 1 and sends it to cell set 1. For example, the MAC layer retrieves PDU group TB from buffer module 2 and sends it to cell set 2. For example, the MAC layer retrieves PDU group TB from buffer module 3 and sends it to cell set 3.
[0260] Taking the example where the payload of the first data packet and the third data packet are the same (i.e., the PDU generating the first data packet and the PDU generating the third data packet are the same), the first communication device is a network device, and the first protocol layer of the first communication device can also send a third data packet to the third communication device, and the cell set where the third communication device is located is different from the cell set where the second communication device is located. Specifically, the first protocol layer of the first communication device sends the first data packet to the second communication device and sends the third data packet to the third communication device as follows: the first protocol layer of the first communication device copies the first PDU to obtain two first PDUs, and sends the two first PDUs to the MAC layer; after receiving the two first PDUs, the MAC layer caches one of the two first PDUs in a first buffer area and caches the other first PDU in a second buffer area; further, after determining the transmission resource of the first PDU, the MAC layer obtains the first PDU group TB from the first buffer area to obtain the first data packet, and sends the first data packet to the second communication device, and obtains the first PDU group TB from the second buffer area to obtain the third data packet, and sends the third data packet to the third communication device.
[0261] The third communication device may be a terminal device or a component in the terminal device (eg, a chip, a chip system, or a circuit), without limitation. For the terminal device, please refer to the relevant description in FIG. 2 , which will not be described in detail.
[0262] This implementation enables data replication at the first protocol layer, helping to meet the QoS requirements of extremely low-latency and high-reliability services. Furthermore, the first protocol layer can pre-cache PDUs in the MAC layer's cache module, reducing data processing latency in a CU-DU separation architecture and minimizing the impact of interaction delays between protocol layers on air interface transmission time, thereby improving the QoS of low-latency services.
[0263] In one possible implementation, the first protocol layer is deployed in the CU, and the MAC layer is deployed in the DU. A LCH is established between the first protocol layer and the MAC layer. The MAC layer can maintain a cache module for each first protocol layer. Each cache module can be associated with N cell sets for transmitting N identical data, as shown in Figure 14. A cell set can include one or more cells, without limitation. N is an integer greater than 1. Figure 14 illustrates N as 3.
[0264] In this implementation, each data packet (or PDU) in the cache module corresponds to N state variables, and these N state variables can be used to indicate the transmission status of the data packet in N cell sets, such as indicating that it has not been transmitted or that it has been transmitted. One state variable corresponds to one cell set, and one cell set corresponds to one state variable. In one embodiment, the value of a state variable corresponding to a data packet includes a third value and a fourth value. When the value of this state variable is the third value, this state variable is used to indicate that the corresponding data packet has been transmitted in its corresponding cell set; or when the value of this state variable is the fourth value, this state variable is used to indicate that it has not been transmitted in its corresponding cell set. Optionally, a state variable can occupy 1 bit, and the third value can be 1 and the fourth value can be 0; or the third value can be 0 and the fourth value can be 1. Exemplarily, each state variable of a data packet can be initialized to the fourth value. When the MAC layer sends the data packet to a certain cell set, it can update (or modify) the state variable corresponding to the cell set maintained by the data packet to the third value. The first protocol layer sends a data packet to the MAC layer, the MAC layer caches the data packet, and the subsequent TB grouping process can refer to the above content and will not be repeated here.
[0265] For example, assuming that the third value is 1 and the fourth value is 0, each of Data Packet 1, Data Packet 2, and Data Packet 3 maintains (or corresponds to) three state variables, wherein the first state variable corresponds to Cell Set 1, the second state variable corresponds to Cell Set 2, and the third state variable corresponds to Cell Set 3. The state variables corresponding to these three data packets are all initialized to 0, that is, the three state variables of each data packet are initialized to 0, as shown in (1) in Figure 15. If the MAC layer sends Data Packet 1 and Data Packet 2 to Cell Set 1, and sends Data Packet 1, Data Packet 2, and Data Packet 3 to Cell Set 3, but has not yet sent a data packet to Cell Set 2, then the values of the three state variables corresponding to Data Packet 1 are 101, the values of the three state variables corresponding to Data Packet 2 are 101, and the values of the three state variables corresponding to Data Packet 3 are 001, as shown in (2) in Figure 15. It can be understood that the state variables can be stored in the same cache module as the data packets, or in different cache modules, without limitation.
[0266] Optionally, the MAC layer can segment the data packet and maintain the status of the segmentation in each cell set, that is, maintain state variables at the segment granularity. For details, please refer to the aforementioned implementation process of maintaining state variables at the data packet granularity, which will not be repeated here.
[0267] Optionally, when a data packet has been transmitted on all corresponding cell sets, the data packet is deleted from the cache module of the MAC layer, thereby releasing the cache space in time.
[0268] Taking the example of a first communication device sending a first data packet to a second communication device and a third communication device, where the first communication device is a network device, the first protocol layer of the first communication device can also send the first data packet to the third communication device, where the cell set in which the third communication device resides is different from the cell set in which the second communication device resides. The first protocol layer of the first communication device sends the first data packet to the MAC layer; the MAC layer caches the first data packet and maintains two state variables corresponding to the first data packet. One of the two state variables is used to indicate whether the first communication device sent the first data packet to the second communication device, and the remaining state variable is used to indicate whether the first communication device sent the first data packet to the third communication device.
[0269] This implementation enables the MAC layer to maintain state variables corresponding to data packets. These state variables are associated with multiple cell sets, making it easier to determine the transmission status of the data packet within these multiple cell sets, which is beneficial for meeting the QoS requirements of extremely low-latency and extremely high-reliability services. In addition, the first protocol layer can pre-cache the PDU in the MAC layer's cache module, which can reduce data processing delays in the CU-DU separation architecture and reduce the interaction delay between protocol layers that squeezes the air interface transmission time of the data packet, which is beneficial for improving the QoS of low-latency services.
[0270] In the embodiments provided in the present application, the method provided in the embodiments of the present application is introduced from the perspective of the interaction between the first communication device and the second communication device. Among them, the steps performed by the communication device (for example, the first communication device or the second communication device) can be implemented by different functional entities constituting the terminal equipment, or the steps performed by the communication device (for example, the first communication device or the second communication device) can be implemented by different functional entities constituting the network equipment. The communication device (for example, the first communication device or the second communication device) may include a hardware structure and / or a software module to implement the above-mentioned functions in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether a certain function of the above-mentioned functions is performed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.
[0271] The following describes the communication device used to implement the above method in the embodiment of the present application with reference to the accompanying drawings. Therefore, the above contents can be used in subsequent embodiments, and repeated contents will not be repeated.
[0272] Fig. 16 exemplarily shows a schematic structural diagram of a communication device 1600. The communication device 1600 can implement the functions or steps implemented by the first communication device or the second communication device in the above-mentioned various method embodiments.
[0273] Exemplarily, the communication apparatus 1600 may be a network device or a component in a network device, or a terminal device or a component in a terminal device.
[0274] In one embodiment, the communication device 1600 may include a processing module 1601 and a transceiver module 1602. The processing module 1601 may be used to perform data processing, such as executing the various method embodiments described above. The processing module 1601 may also be referred to as a processing unit. The transceiver module 1602 may be used to implement corresponding communication functions, such as receiving or sending relevant data, information, or messages. The transceiver module 1602 may also be referred to as a communication interface, a communication module, or a transceiver unit.
[0275] It should be noted that the communication device 1600 may include the processing module 1601 but not the transceiver module 1602. Alternatively, the communication device 1600 may include the transceiver module 1602 but not the processing module 1601. The specific implementation depends on whether the above solution executed by the communication device 1600 includes both processing and transceiver actions.
[0276] Optionally, the communication device 1600 may further include a storage module, which is not shown in Figure 16. The storage module may be used to store instructions and / or data, and the processing module 1601 may read the instructions and / or data in the storage module to enable the communication device 1600 to implement the aforementioned method embodiment.
[0277] Optionally, the transceiver module 1602 may include a sending module and a receiving module. The sending module is used to perform the sending operation in the above method embodiment. The receiving module is used to perform the receiving operation in the above method embodiment.
[0278] It should be noted that the communication device 1600 may include a sending module but not a receiving module. Alternatively, the communication device 1600 may include a receiving module but not a sending module. The specific implementation depends on whether the above solution executed by the communication device 1600 includes a sending action and a receiving action.
[0279] Optionally, the communication device 1600 is a chip system, the transceiver unit may be an input and output interface of a chip (eg, a baseband chip), and the processing unit may be a processor of the chip system.
[0280] In a first implementation manner, the communication device 1600 may be a first communication device, configured to execute the steps executed by the first communication device in each of the aforementioned method embodiments.
[0281] In one example, the communication device 1600 can execute the following: the transceiver module 1602 can be used to send a first indication message from the first protocol layer of the first communication device to the first protocol layer of the second communication device when the discard timer corresponding to the first data packet times out, and the first indication message is used to indicate that the first data packet is no longer transmitted.
[0282] Optionally, the processing module 1601 can be used to update a first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose maximum number of retransmissions has not been reached.
[0283] Optionally, the transceiver module 1602 may be further configured to send third indication information to the first protocol layer of the second communication device, where the third indication information is configured to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted.
[0284] Optionally, the transceiver module 1602 may be further configured to receive a second status report from the second communication device, where the second status report includes NACK information of the first data packet, or includes ACK information of the first data packet.
[0285] In another example, the communication device 1600 can execute the following: the transceiver module 1602 can be used to receive a first status report from a second communication device, the first status report including NACK information of the second data packet; and, when a first condition is met, send a second indication information to the first protocol layer of the second communication device, the second indication information being used to indicate that the second data packet is no longer transmitted; or, when the first condition is not met, send the second data packet to the second communication device; wherein the first condition is one or more of the following: the discard timer corresponding to the second data packet has timed out or the discard timer corresponding to the second data packet is not running; the sequence number of the second data packet is less than the first variable of the sending window; or, the number of retransmissions of the second data packet reaches the maximum number of retransmissions; wherein the first variable is the lower boundary of the sending window.
[0286] Optionally, the processing module 1601 can be used to update a first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose maximum number of retransmissions has not been reached.
[0287] Optionally, the transceiver module 1602 may be further configured to send third indication information to the first protocol layer of the second communication device, where the third indication information is configured to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted.
[0288] Optionally, the processing module 1601 may also be configured to update the number of retransmissions of the second data packet when the first condition is not met.
[0289] In a second implementation manner, the communication device 1600 may be a second communication device, configured to execute the steps executed by the second communication device in each of the aforementioned method embodiments.
[0290] In one example, the communication device 1600 can execute the following: the transceiver module 1602 can be used to receive the first indication information of the first protocol layer from the first communication device, and the first indication information is used to indicate that the first data packet is no longer transmitted; the processing module 1601 can be used to update the second variable of the receiving window according to the first indication information, wherein the updated second variable is greater than or equal to the sequence number of the data packet in the receiving window that has not been completely received and has not been indicated by the first communication device as no longer to be transmitted, and the second variable is the lower boundary of the receiving window.
[0291] Optionally, the transceiver module 1602 can also be used to send a second status report to the first communication device when the reassembly timer of the receiving window times out, and the second status report includes NACK information of the first data packet, or includes ACK information of the first data packet.
[0292] Optionally, when the reassembly timer of the receiving window times out, sending the second status report to the first communication device can specifically be: the transceiver module 1602 can be used to send the second status report to the first communication device when the prohibition timer has timed out or the prohibition timer is not running and the reassembly timer of the receiving window times out.
[0293] Optionally, the processing module 1601 can also be used to update the third variable when the serial number of the first data packet is greater than or equal to the third variable, and the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0294] In another example, the communication device 1600 can execute the following: the transceiver module 1602 can be used to receive a first data packet from a first communication device; the processing module 1601 can be used to update the second variable when the first data packet is completely received and the serial number of the first data packet is the second variable of the receiving window, wherein the updated second variable is greater than or equal to the serial number of the data packet in the receiving window that has not been completely received and has not been instructed by the first communication device to no longer be transmitted, and the second variable is the lower boundary of the receiving window.
[0295] Optionally, the processing module 1601 can also be used to update the third variable when the serial number of the first data packet is equal to the third variable, and the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0296] It should be understood that a more detailed description of how each module performs the corresponding process can be directly obtained by referring to the relevant descriptions in the aforementioned method embodiments. For the sake of brevity, it is not repeated here.
[0297] The processing module 1601 in the above embodiment can be implemented by at least one processor or processor-related circuits. The transceiver module 1602 can be implemented by a transceiver or transceiver-related circuits. The storage module can be implemented by at least one memory.
[0298] As shown in Figure 17, an embodiment of the present application provides a schematic structural diagram of a communication device 1700. The communication device 1700 may include a processor 1720 for implementing or supporting the communication device 1700 in implementing the functions of the first communication device or the second communication device in any method embodiment of the present application. For details, please refer to the detailed description of the aforementioned method embodiment, which is not repeated here. For example, the processor 1720 is used to read and execute program instructions through a communication interface so that the communication device 1700 implements the corresponding method. The processor 1720 may include one or more processors without limitation.
[0299] It should be noted that the aforementioned functional modules may be implemented by hardware or by a combination of hardware and software, without limitation. Furthermore, when the communication device 1700 includes only the processor 1720 , the communication device 1700 may be a chip or a chip system.
[0300] For example, the communication device 1700 may be a chip system, wherein the chip system may be composed of a chip, or may include a chip and other discrete components, without limitation.
[0301] Optionally, communication device 1700 may further include memory 1730 for storing program instructions and / or data. Memory 1730 is coupled to processor 1720. Coupling can be understood as an indirect coupling or communication connection between devices, units, or modules, which can be electrical, mechanical, or other forms, for information exchange between devices, units, or modules. Processor 1720 may operate in conjunction with memory 1730. Processor 1720 and memory 1730 may be integrated or separately configured.
[0302] Furthermore, the processor 1720 is configured to execute program instructions stored in the memory 1730 so that the communication device 1700 implements a corresponding method.
[0303] One or more memories in memory 1730 may be included in the processor, or memory 1730 may exist independently, such as an off-chip memory, and be connected to processor 1720 via a communication bus (represented by a bold line 1740 in FIG. 17 ). Memory 1730 and processor 1720 may also be integrated together.
[0304] Optionally, the communication device 1700 further includes a communication interface 1710 (indicated by a dotted line in FIG. 17 ) for communicating with other devices via a transmission medium, thereby enabling the device in the communication device 1700 to communicate with the other device. For example, when the communication device is a first communication device, the other device may be a second communication device, etc. The processor 1720 may use the communication interface 1710 to send and receive data. For example, the processor 1720 may be configured to control the communication interface 1710 to receive and / or send signals.
[0305] The communication interface 1710 may be a transceiver. In hardware implementation, the transceiver may be used to implement the functions of the transceiver module 1602 . The transceiver is integrated into the communication device 1700 to form the communication interface 1710 .
[0306] It should be pointed out that the communication interface 1710 can have a sending function and a receiving function, and can realize the reception and sending of signals; or it can have a sending function but not a receiving function, and is used to realize the sending of signals; or it can have a receiving function but not a sending function, and is used to realize the reception of signals.
[0307] It should be noted that the specific connection medium between the communication interface 1710, processor 1720, and memory 1730 is not limited in the embodiments of the present application. In FIG17 , the memory 1730, processor 1720, and communication interface 1710 are connected via a communication bus 1740. The connection methods between other components are merely schematic and not limiting. The communication bus 1740 can be divided into an address bus, a data bus, a control bus, and the like. For ease of illustration, FIG17 shows only one thick line, but this does not mean that there is only one communication bus or only one type of communication bus.
[0308] In the embodiments of the present application, processor 1720 may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. A general-purpose processor may be a microprocessor or any conventional processor. The methods disclosed in conjunction with the embodiments of the present application may be executed by hardware in the processor, or by a combination of hardware and software in the processor.
[0309] In the embodiment of the present application, the memory 1730 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), or a volatile memory, such as a random-access memory (RAM). The memory may also be any other medium for carrying or storing program code in the form of instructions or data structures and accessible by a computer; or a circuit or any other device capable of performing a storage function, for storing program instructions and / or data.
[0310] Specifically, the communication device 1700 can be a network device or a component in a network device (such as a DU, etc.), or a terminal device or a component in a terminal device. For example, the communication device 1700, as the transmitting side of the second terminal device, can be the first network device or a component in the first network device, or the first terminal device or a component in the first terminal device. For another example, the communication device 1700, as the receiving side of the second network device, can be the first terminal device or a component in the first terminal device. For another example, the communication device 1700, as the receiving side of the first terminal device, can be the second network device or a component in the second network device, or the second terminal device or a component in the second terminal device. For another example, the communication device 1700, as the receiving side of the first network device, can be the second terminal device or a component in the second terminal device.
[0311] In a first possible implementation, the communication device 1700 may be a CU in the first network device, used to implement the relevant methods corresponding to the first communication device in the above embodiments. For specific functions, please refer to the descriptions in the above embodiments.
[0312] Illustratively, the method corresponding to the first communication device in each of the above embodiments includes: upon expiration of a discard timer corresponding to a first data packet, sending first indication information, where the first indication information is used to indicate that the first data packet is no longer to be transmitted. For example, the CU sends the first indication information to the DU in the first network device, the DU sends the first indication information to the RU in the first network device, and the RU then sends the first indication information to the second communication device.
[0313] Optionally, the relevant methods corresponding to the first communication device in the above-mentioned embodiments include: updating the first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions.
[0314] Optionally, the method corresponding to the first communication device in each of the above embodiments includes: sending third indication information, where the third indication information is used to indicate that packets with sequence numbers less than the updated first variable are no longer transmitted. For example, the CU sends the third indication information to the DU in the first network device, which then sends the third indication information to the RU in the first network device. The RU then sends the third indication information to the second communication device.
[0315] In a second possible implementation, the communication device 1700 may be a CU in the first network device, used to implement the relevant methods corresponding to the first communication device in the above embodiments. For specific functions, please refer to the descriptions in the above embodiments.
[0316] Exemplarily, the relevant method corresponding to the first communication device in each of the above embodiments includes: receiving a first status report, the first status report including NACK information for the second data packet; and, if a first condition is met, sending second indication information, the second indication information being used to indicate that the second data packet is no longer transmitted; or, if the first condition is not met, sending the second data packet; wherein the first condition is one or more of the following: the discard timer corresponding to the second data packet has timed out or the discard timer corresponding to the second data packet is not running; the sequence number of the second data packet is less than a first variable of the sending window; or the number of retransmissions of the second data packet reaches a maximum number of retransmissions; wherein the first variable is the lower boundary of the sending window. For example, the RU in the first network device receives the first status report from the second communication device and sends it to the DU in the first network device, and the CU can receive the first status report from the DU. For example, the CU sends the second indication information (or second data packet) to the DU in the first network device, which then sends it to the RU in the first network device, which then sends the second indication information (or second data packet) to the second communication device.
[0317] Optionally, the relevant methods corresponding to the first communication device in the above-mentioned embodiments include: updating the first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions.
[0318] Optionally, the method corresponding to the first communication device in each of the above embodiments includes: sending third indication information, where the third indication information is used to indicate that packets with sequence numbers less than the updated first variable are no longer transmitted. For example, the CU sends the third indication information to the DU in the first network device, which then sends the third indication information to the RU in the first network device. The RU then sends the third indication information to the second communication device.
[0319] Optionally, the relevant method corresponding to the first communication device in each of the above embodiments includes: updating the number of retransmissions of the second data packet when the first condition is not met.
[0320] In a third possible implementation, the communication device 1700 may be a CU in the second network device, used to implement the relevant methods corresponding to the second communication device in the above embodiments. For specific functions, please refer to the descriptions in the above embodiments.
[0321] Exemplarily, the relevant methods corresponding to the second communication device in each of the above embodiments include: receiving first indication information, the first indication information being used to indicate that the first data packet is no longer to be transmitted; updating a second variable of a receiving window according to the first indication information, wherein the updated second variable is greater than or equal to the sequence number of a data packet within the receiving window that has not been completely received and has not been indicated by the first communication device as no longer to be transmitted, and the second variable is the lower boundary of the receiving window. For example, the RU in the second network device receives the first indication information from the first communication device and sends it to the DU in the second network device, and the CU can receive the first indication information from the DU.
[0322] Optionally, the method corresponding to the second communication device in each of the above embodiments includes: sending a second status report when the reassembly timer of the receive window expires, the second status report including NACK information for the first data packet or including ACK information for the first data packet. Alternatively, sending the second status report when the inhibit timer has expired or the inhibit timer is not running and the reassembly timer of the receive window has expired. For example, the CU sends the second status report to the DU in the second network device, the DU sends the second status report to the RU in the second network device, and the RU then sends the second status report to the first communication device.
[0323] Optionally, the relevant methods corresponding to the second communication device in each of the above embodiments include: when the serial number of the first data packet is greater than or equal to a third variable, updating the third variable, the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0324] In a fourth possible implementation, the communication device 1700 may be a CU in the second network device, used to implement the relevant methods corresponding to the second communication device in the above embodiments. For specific functions, please refer to the descriptions in the above embodiments.
[0325] Exemplarily, the relevant methods corresponding to the second communication device in each of the above embodiments include: receiving a first data packet; and when the first data packet is completely received and the sequence number of the first data packet is a second variable of a receive window, updating the second variable, wherein the updated second variable is greater than or equal to the sequence number of a data packet within the receive window that has not been completely received and has not been instructed by the first communication device to no longer be transmitted, and the second variable is the lower boundary of the receive window. For example, the RU in the second network device receives a first data packet from the first communication device and sends it to the DU in the second network device, and the CU can receive the first data packet from the DU.
[0326] Optionally, the relevant methods corresponding to the second communication device in each of the above embodiments include: when the serial number of the first data packet is equal to a third variable, updating the third variable, the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0327] In addition, the communication device 1700 may also be a first terminal device, used to implement the relevant methods corresponding to the first communication device in the above-mentioned embodiments. For specific functions, please refer to the descriptions of the above-mentioned embodiments and will not be repeated here. The communication device 1700 may also be a second terminal device, used to implement the relevant methods corresponding to the second communication device in the above-mentioned embodiments. For specific functions, please refer to the descriptions of the above-mentioned embodiments and will not be repeated here.
[0328] Based on the same concept, referring to FIG18 , an embodiment of the present application also provides another communication device 1800, including: an input / output interface 1810 and a logic circuit 1820; the input / output interface 1810 is used to receive code instructions and transmit them to the logic circuit 1820; the logic circuit 1820 is used to run code instructions to execute the method executed by the first communication device or the second communication device in any of the above embodiments.
[0329] Exemplarily, the communication apparatus 1800 may be a network device or a component in a network device (such as a CU, etc.), or a terminal device or a component in a terminal device.
[0330] The operations performed by the communication device 1800 (the first communication device or the second communication device) are described in detail below.
[0331] In a first implementation manner, the communication device 1800 may be a first communication device, configured to execute the steps executed by the first communication device in each of the aforementioned method embodiments, such as the method executed by the first communication device in any of the aforementioned embodiments shown in FIG. 4 , FIG. 9 or FIG. 10 .
[0332] For example, when the discard timer corresponding to the first data packet expires, the first protocol layer of the communication device 1800 sends first indication information to the first protocol layer of the second communication device, where the first indication information is used to indicate that the first data packet is no longer transmitted.
[0333] Optionally, the communication device 1800 can update the first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose maximum number of retransmissions has not been reached.
[0334] Optionally, the communication device 1800 may further send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that data packets with sequence numbers smaller than the updated first variable are no longer transmitted.
[0335] For another example, the communication device 1800 receives a first status report from a second communication device, wherein the first status report includes NACK information of a second data packet; and, when a first condition is met, sends a second indication information to the first protocol layer of the second communication device, wherein the second indication information is used to indicate that the second data packet is no longer transmitted; or, when the first condition is not met, sends the second data packet to the second communication device; wherein the first condition is one or more of the following: the discard timer corresponding to the second data packet has timed out or the discard timer corresponding to the second data packet is not running; the sequence number of the second data packet is less than the first variable of the sending window; or, the number of retransmissions of the second data packet reaches the maximum number of retransmissions; wherein the first variable is the lower boundary of the sending window.
[0336] Optionally, the communication device 1800 can update the first variable of the sending window, wherein the first variable is the lower boundary of the sending window; wherein the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the minimum sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose maximum number of retransmissions has not been reached.
[0337] Optionally, the communication device 1800 may further send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that data packets with sequence numbers smaller than the updated first variable are no longer transmitted.
[0338] Optionally, the communication device 1800 may also update the number of retransmissions of the second data packet when the first condition is not met.
[0339] Since the communication device 1800 provided in this embodiment can be a first communication device and implement the method performed by the first communication device, the technical effects that can be obtained can refer to the above method embodiments and will not be described in detail here.
[0340] In a second implementation, the communication device 1800 may be a second communication device, configured to execute the steps executed by the second communication device in each of the aforementioned method embodiments, such as the method executed by the second communication device in any of the aforementioned embodiments shown in FIG. 4 , FIG. 9 or FIG. 10 .
[0341] For example, the communication device 1800 receives first indication information of the first protocol layer from the first communication device, and the first indication information is used to indicate that the first data packet is no longer transmitted; the second variable of the receiving window is updated according to the first indication information, wherein the updated second variable is greater than or equal to the sequence number of the data packet in the receiving window that has not been completely received and has not been indicated by the first communication device to no longer be transmitted, and the second variable is the lower boundary of the receiving window.
[0342] Optionally, the communication device 1800 may also send a second status report to the first communication device when the reassembly timer of the receiving window times out, where the second status report includes NACK information of the first data packet or ACK information of the first data packet.
[0343] Optionally, when the communication device 1800 sends a second status report to the first communication device when the reassembly timer of the receiving window times out, it may send the second status report to the first communication device when the prohibition timer has timed out or the prohibition timer is not running and the reassembly timer of the receiving window times out.
[0344] Optionally, the communication device 1800 can also update the third variable when the serial number of the first data packet is greater than or equal to the third variable, and the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0345] For another example, the communication device 1800 can receive a first data packet from a first communication device; and when the first data packet is completely received and the serial number of the first data packet is the second variable of the receiving window, update the second variable, wherein the updated second variable is greater than or equal to the serial number of the data packet in the receiving window that has not been completely received and has not been instructed by the first communication device to no longer transmit, and the second variable is the lower boundary of the receiving window.
[0346] Optionally, the communication device 1800 can also update the third variable when the serial number of the first data packet is equal to the third variable, and the updated third variable is the serial number of the first data packet or the serial number of the first data packet plus 1, and the third variable is associated with the maximum value of the serial numbers of the data packets received by the receiving side.
[0347] Since the communication device 1800 provided in this embodiment can be a second communication device, and can perform the method performed by the second communication device, the technical effects that can be obtained can be referred to the above method embodiment, and will not be described in detail here.
[0348] The present application also provides a communication system, which may include one or more of the following: a first communication device or a second communication device. The first communication device or the second communication device may refer to the descriptions in the aforementioned method embodiments and will not be described in detail.
[0349] A computer-readable storage medium is also provided in an embodiment of the present application, including program instructions, which, when executed on a computer, enables the computer to execute the methods or steps of the first communication device or the second communication device in each of the above embodiments.
[0350] A computer program product is also provided in an embodiment of the present application, including program instructions, which, when executed on a computer, enables the computer to execute the methods or steps of the first communication device or the second communication device in each of the above embodiments.
[0351] An embodiment of the present application provides a chip system, which includes a processor for implementing the functions of the first communication device or the second communication device in the aforementioned method (for example, executing the corresponding method or step). The chip system can be composed of a chip, or can include a chip and other discrete devices.
[0352] Optionally, the chip system further includes a memory for storing program instructions so that the above-mentioned processor reads and executes them to implement the corresponding method.
[0353] It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0354] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0355] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0356] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0357] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0358] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0359] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the part that essentially contributes to the technical solution of the present application or the part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0360] The above description is merely a specific embodiment of the present application, but the scope of protection of the embodiments of the present application is not limited thereto. Any person skilled in the art can easily conceive of changes or substitutions within the technical scope disclosed in the embodiments of the present application, and such changes or substitutions should be included in the scope of protection of the embodiments of the present application. Therefore, the scope of protection of the embodiments of the present application should be based on the scope of protection of the claims.
Claims
1. A communication method, applied to a first protocol layer of a first communication device, characterized in that: The method comprises: When the discard timer corresponding to the first data packet times out, first indication information is sent to the first protocol layer of the second communication device, where the first indication information is used to indicate that the first data packet is no longer transmitted.
2. The method according to claim 1, characterized in that The method further comprises: Updating a first variable of a sending window, wherein the first variable is a lower boundary of the sending window; Among them, the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose maximum number of retransmissions has not been reached.
3. The method according to claim 2, characterized in that The first indication information is also used to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted.
4. A communication method, applied to a first protocol layer of a first communication device, characterized in that: The method comprises: receiving a first status report from a second communication device, wherein the first status report includes NACK information of a second data packet; If the first condition is met, sending second indication information to the first protocol layer of the second communication device, wherein the second indication information is used to indicate that the second data packet is no longer transmitted; or, if the first condition is not met, sending the second data packet to the second communication device; The first condition is one or more of the following: the discard timer corresponding to the second data packet has timed out or the discard timer corresponding to the second data packet is not running; the sequence number of the second data packet is less than the first variable of the sending window; or the number of retransmissions of the second data packet reaches the maximum number of retransmissions; the first variable is the lower boundary of the sending window.
5. The method according to claim 4, characterized in that The method further comprises: Update the first variable, wherein the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose discard timer has not timed out; or, the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions; or, the updated first variable is the smallest sequence number among the sequence numbers of the data packets in the sending window that have not been confirmed as successfully received by the second communication device, whose discard timer has not timed out, and whose number of retransmissions has not reached the maximum number of retransmissions.
6. The method according to claim 5, characterized in that The method further comprises: Send third indication information to the first protocol layer of the second communication device, where the third indication information is used to indicate that data packets with sequence numbers less than the updated first variable are no longer transmitted.
7. The method according to any one of claims 4 to 6, characterized in that When the first condition is not met, the method further includes: Update the number of retransmissions of the second data packet.
8. A communication method, applied to a first protocol layer of a second communication device, characterized in that: The method comprises: receiving first indication information of the first protocol layer from a first communication device, where the first indication information is used to indicate that the first data packet is no longer transmitted; Update a second variable of the receiving window according to the first indication signal, wherein the updated second variable is greater than or equal to the sequence number of the data packet in the receiving window that has not been completely received and has not been instructed by the first communication device not to be transmitted, and the second variable is the lower boundary of the receiving window.
9. The method according to claim 8, characterized in that The method further comprises: When the reassembly timer of the receiving window times out, a second status report is sent to the first communication device, where the second status report includes NACK information of the first data packet or includes ACK information of the first data packet.
10. The method according to claim 9, characterized in that When the reassembly timer of the receiving window times out, sending a second status report to the first communication device includes: When the prohibit timer has timed out or the prohibit timer is not running and the reassembly timer of the receiving window has timed out, the second status report is sent to the first communication device.
11. The method according to any one of claims 8 to 10, characterized in that The method further comprises: When the sequence number of the first data packet is greater than or equal to the third variable, the third variable is updated. The updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1. The third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
12. A communication method, applied to a first protocol layer of a second communication device, characterized in that: The method comprises: receiving a first data packet from a first communication device; When the first data packet is completely received and the sequence number of the first data packet is the second variable of the receiving window, the second variable is updated, wherein the updated second variable is greater than or equal to the sequence number of the data packet in the receiving window that has not been completely received and has not been indicated by the first communication device to no longer be transmitted, and the second variable is the lower boundary of the receiving window.
13. The method according to claim 12, characterized in that The method further comprises: When the sequence number of the first data packet is equal to the third variable, the third variable is updated, and the updated third variable is the sequence number of the first data packet or the sequence number of the first data packet plus 1. The third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
14. A communication device, characterized in that: The method comprises a module for executing the method according to any one of claims 1 to 7, or a module for executing the method according to any one of claims 8 to 13.
15. A communication device, characterized in that: including a processor and a memory; The memory is used to store one or more computer programs or instructions, and the processor is used to execute the one or more computer programs or instructions stored in the memory, so that the communication device performs the method as described in any one of claims 1 to 7, or performs the method as described in any one of claims 8 to 13.
16. A communication system, characterized in that: It comprises a first communication device and / or a second communication device, wherein the first protocol layer of the first communication device is used to execute the method according to any one of claims 1 to 7, and the first protocol layer of the second communication device is used to execute the method according to any one of claims 8 to 13.
17. A computer-readable storage medium, characterized in that: A computer program or instruction is stored, wherein the computer program or instruction is used to implement the method according to any one of claims 1 to 7, or to implement the method according to any one of claims 8 to 13.
18. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is run on a computer, the computer is caused to execute the method according to any one of claims 1 to 7 or the method according to any one of claims 8 to 13.
Citation Information
Patent Citations
Method for processing data packet and communication device
CN114451007A
Data transmission method and device
CN115334588A
Data processing method, device and equipment
CN115811716A
Data transmission method and device
CN116548012A
Wireless transmitter / receiver unit
CN201444641U
Cited By
Communication method and device, storage medium, chip system and program product
CN120342553A
Wireless communication method and related device
CN121586038A