Communication method and device
In the first protocol layer of the first communication device of the wireless communication system, when the discarding timer of the data packet is timed out, the problem of invalid transmission and retransmission of data packets in the wireless communication system is solved, and the resource utilization rate is improved.
Patent Information
- Application Number
- CN202311469916.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-03
- Publication Date
- 2025-05-06
AI Technical Summary
In wireless communication systems, after the discard timer of the PDCP layer timeout, the packets are invalid and retransmitted, resulting in waste of air interface resources.
In the first protocol layer of the first communication device, when the discard timer corresponding to the data packet expires, indication information is sent to the first protocol layer of the second communication device, indicating that the data packet is no longer transmitted, thereby optimizing the user-plane protocol stack and reducing interaction between protocol layers.
The interaction between protocol layers in the same communication device is reduced, invalid transmission and retransmission after the RLC layer receives the discarding indication, and the resource utilization rate is improved.
Smart Images

Figure CN119946695A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a communication method and device. Background Art
[0002] A layered protocol stack design is adopted in wireless communication systems. The user plane protocol stack on the sending and receiving sides includes the service data adaptation protocol (SDAP) layer, the packet data convergence protocol (PDCP) layer, the radio link control (RLC) layer, the media access control (MAC) layer, and the physical (PHY) layer. Figure 1 shown.
[0003] At present, when the PDCP entity on the sending side receives a PDCP service data unit (SDU) from the upper layer, a discard timer (discardTimer) associated with the PDCP SDU can be started. If the discardTimer times out, the PDCP entity on the sending side discards the PDCP SDU and the corresponding PDCP protocol data unit (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 indication information to the RLC entity to indicate the discard of the corresponding data packet. Accordingly, if the corresponding RLC SDU (or RLC SDU segment) has not 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 information. 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. Summary of the invention
[0004] The embodiments of the present application provide a communication method and device for optimizing a user plane protocol stack, which is beneficial to improving resource utilization.
[0005] In a first aspect, the present application provides a communication method, which 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 times out, the first protocol layer of the first communication device sends first indication information to the first protocol layer of a second communication device, wherein the first indication information is used to indicate that the first data packet is no longer transmitted.
[0006] The first communication device and the second communication device may be a terminal device or a network device. When the first communication device is a terminal device, the second communication device may be a network device or another terminal device. When the first communication device is a network device, the second communication device may be a terminal device. In the embodiment of the present application, the function performed by the terminal device may be performed by a device in the terminal device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device may be performed by a device in the network device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the network device.
[0007] In the above embodiment, the first protocol layer of the first communication device discards the first data packet in response to the discard timing timeout corresponding to the first data packet, and sends a first indication message to the first protocol layer of the second communication device to indicate that the first data packet is no longer transmitted. Compared with the scheme in which the PDCP layer sends indication information to the RLC layer, it can reduce the interaction between protocol layers in the same communication device, optimize the user plane protocol stack, and reduce the waste of resources caused by the RLC layer having delivered the data packet that is no longer transmitted to the lower layer for transmission or retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0008] In one possible implementation, the first protocol layer of the first communication device may also 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 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.
[0009] Exemplarily, the first indication information is also used to indicate that a data packet whose sequence number is less than the first variable after update is no longer transmitted. Alternatively, 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, and the third indication information is used to indicate that a data packet whose sequence number is less than the first variable after update is no longer transmitted.
[0010] 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.
[0011] In a possible implementation, the first protocol layer of the first communication device may also 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.
[0012] 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 according to 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.
[0013] 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 data packets, and is conducive to improving the service quality of low-latency services.
[0014] In a 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, and send a third data packet to the third communication device, and the cell set where the second communication device is located is different from the cell set where 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 the first cache area, and caches the other first PDU in the second cache area; further, after determining the transmission resource of the first PDU, the second protocol layer of the second communication device obtains the first data packet from the first PDU group TB from the first cache area, and sends the first data packet to the second communication device, and obtains the third data packet from the first PDU group TB from the second cache area, and sends the third data packet to the third communication device.
[0015] In the above implementation, the first protocol layer is enabled to have the function of data replication, which is conducive to meeting the service quality requirements of extremely low latency and extremely high reliability services.
[0016] In a 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 a second communication device and a 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. 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 sends the first data packet to the second communication device, and the remaining state variable is used to indicate whether the first communication device sends the first data packet to the third communication device.
[0017] 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.
[0018] 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 the first condition is met, send 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.
[0019] The first communication device and the second communication device may be a terminal device or a network device. When the first communication device is a terminal device, the second communication device may be a network device or another terminal device. When the first communication device is a network device, the second communication device may be a terminal device. In the embodiment of the present application, the function performed by the terminal device may be performed by a device in the terminal device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device may be performed by a device in the network device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the network device.
[0020] In the above embodiment, the first protocol layer of the first communication device responds to the NACK information of the second data packet, and sends the second indication information to the first protocol layer of the second communication device when determining that the first condition is met, so as to indicate that the second data packet is no longer transmitted. Compared with the scheme in which the PDCP layer sends the indication information to the RLC layer, it is possible to reduce the interaction between the protocol layers in the same communication device, optimize the user plane protocol stack, and reduce the waste of resources caused by the RLC layer having delivered the data packet that is no longer transmitted to the lower layer for retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0021] 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 it is determined that the first condition is not met, thereby ensuring the reliability of data transmission.
[0022] In a possible implementation, the first protocol layer of the first communication device may also 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 maximum number of retransmissions has not been reached.
[0023] Exemplarily, 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, wherein the third indication information is used to indicate that a data packet having a sequence number less than the updated first variable is no longer transmitted. Alternatively, the second indication information is also used to indicate that a data packet having a sequence number less than the updated first variable is no longer transmitted.
[0024] 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.
[0025] 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.
[0026] 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 is used to indicate that the first data packet is no longer transmitted; according to the first indication information, the second variable of the receiving window is updated, wherein the updated second variable is greater than or equal to the sequence number of the data packet that has not been completely received in the receiving window and has not been indicated by the first communication device as no longer transmitted, and the second variable is the lower boundary of the receiving window.
[0027] The first communication device and the second communication device may be a terminal device or a network device. When the first communication device is a terminal device, the second communication device may be a network device or another terminal device. When the first communication device is a network device, the second communication device may be a terminal device. In the embodiment of the present application, the function performed by the terminal device may be performed by a device in the terminal device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device may be performed by a device in the network device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the network device.
[0028] 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.
[0029] In a 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.
[0030] In a possible implementation, when the reassembly timer of the receiving window times out, the first protocol layer of the second communication device sends the second status report to the first communication device. Specifically, it can be as follows: when the prohibition timer has timed out or the prohibition timer is not running, and the reassembly timer of the receiving window times out, the first protocol layer of the second communication device sends the second status report to the first communication device.
[0031] Through the above implementation, the receiving side uses the prohibition timer to reduce the number of times the receiving side sends status reports 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.
[0032] 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, 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, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side to achieve maintenance of the third variable.
[0033] In a fourth aspect, the present application provides a communication method, which can be applied to a 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 receiving window, the second variable is updated, wherein the updated second variable is greater than or equal to the sequence number of a data packet that has not been completely received within the receiving window and has not been indicated by the first communication device not to be transmitted, and the second variable is the lower boundary of the receiving window.
[0034] The first communication device and the second communication device may be a terminal device or a network device. When the first communication device is a terminal device, the second communication device may be a network device or another terminal device. When the first communication device is a network device, the second communication device may be a terminal device. In the embodiment of the present application, the function performed by the terminal device may be performed by a device in the terminal device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the terminal device. In the embodiment of the present application, the function performed by the network device may be performed by a device in the network device (e.g., a chip, or a chip system, or a circuit), or a device that can be used with the network device.
[0035] In the above embodiment, when a data packet is completely received and the sequence 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.
[0036] 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 numbers of the data packets received by the receiving side to achieve maintenance of the third variable.
[0037] In a fifth aspect, the present application provides a communication device. The communication device is used 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.
[0038] In one possible design, the communication device includes a baseband device and a radio frequency device.
[0039] 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 a sending function and a receiving function. When the transceiver module implements the sending function, it can be called a sending module (sometimes also referred to as a sending unit), and when the transceiver module implements the receiving function, it can be called 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 called a transceiver module, and the functional module can implement a sending function and a receiving function; or, the sending module and the receiving module can be different functional modules, and the transceiver module is a general term for these functional modules.
[0040] In a sixth aspect, the present application provides a communication device. The communication device is used to execute 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.
[0041] In a 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 a sending function and a receiving function. When the transceiver module implements the sending function, it can be called a sending module (sometimes also referred to as a sending unit), and when the transceiver module implements the receiving function, it can be called 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 called a transceiver module, and the functional module can implement a sending function and a receiving function; or, the sending module and the receiving module can be different functional modules, and the transceiver module is a general term for these functional modules.
[0043] 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 also 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 and any possible design thereof, or performs the method described in the third aspect or the fourth aspect and any possible design thereof.
[0044] In an eighth aspect, an embodiment of the present application further provides a communication system, wherein the communication system comprises one or more of the following: the communication device described in the fifth aspect, or the communication device described in the sixth aspect.
[0045] 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.
[0046] In the tenth aspect, an embodiment of the present application also provides a computer program product comprising instructions, which, when executed 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.
[0047] 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.
[0048] The technical effects that can be achieved from the fifth to the eleventh aspects mentioned above can be referred to the technical effects that can be achieved from the first to the fourth aspects mentioned above and any possible design thereof, and no further repetition will be given. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 is a schematic diagram of a user plane protocol stack;
[0050] Figure 2 A schematic diagram of the architecture of a communication system;
[0051] Figure 3 A schematic diagram of a user plane protocol stack provided in an embodiment of the present application;
[0052] Figure 4 A schematic diagram of a flow chart of a first communication method provided in an embodiment of the present application;
[0053] Figure 5 A schematic diagram of first indication information provided in an embodiment of the present application;
[0054] Figure 6 A schematic diagram of an updated receiving window provided in an embodiment of the present application;
[0055] Figure 7 A schematic diagram of another updated receiving window provided in an embodiment of the present application;
[0056] Figure 8 A schematic diagram of an updated receiving window provided in an embodiment of the present application;
[0057] Fig. 9 A schematic diagram of a flow chart of a second communication method provided in an embodiment of the present application;
[0058] Fig.10 A schematic diagram of a flow chart of a third communication method provided in an embodiment of the present application;
[0059] Fig.11 A schematic diagram of a CU-DU separation architecture provided in an embodiment of the present application;
[0060] Fig.12 A schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0061] Fig.13 A schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0062] Fig.14 A schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0063] Fig.15 A schematic diagram of another CU-DU separation architecture provided in an embodiment of the present application;
[0064] Fig.16 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0065] Fig.17 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;
[0066] Fig.18 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0067] 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.
[0068] 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. A person of ordinary skill in the art can appreciate that with the evolution of the 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.
[0069] In the embodiments of the present application, "multiple" may refer to two or more than two. 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 A, B, C, A and B, A and C, B and C, or A, B and C may be included. "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 previously associated objects are in an "or" relationship.
[0070] 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.
[0071] The ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are generally used to distinguish different objects, and are not used to limit the order, timing, priority or importance of multiple objects. For example, the first communication device and the second communication device in the embodiments of the present application are used to distinguish two communication devices, and do not limit the priority or importance of the two communication devices.
[0072] 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.
[0073] The following first introduces a communication system to which the embodiments of the present application are applicable.
[0074] The technical solutions of the embodiments of the present application can be applied to various communication systems, for example, 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 and other systems), 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 (4th generation) The present invention relates to a fifth generation (4G) mobile communication system (such as a long term evolution (LTE) system), a LTE frequency division duplex (FDD) system, a LTE time division duplex (TDD) system, a world wide interoperability for microwave access (WiMAX) communication system, a fifth generation (5G) mobile communication system (such as a new radio (NR) system), a future communication system (such as a sixth generation (6G) mobile communication system), or other similar communication systems, etc., without limitation. The embodiments of the present application are based on Figure 2The communication system shown is described 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, modules in other communication systems without limitation.
[0075] Figure 2 Schematic diagram of the architecture of the communication system used in the embodiment of the present application. Figure 2 As shown, 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 Figure 2 110a and 110b in the embodiment may further include at least one terminal device, such as Figure 2 120a-120j in the figure. 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 station, 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, Figure 2 The mobile phones in the figure are 120a, 120e, 120f and 120j. The mobile phone 120a can access the base station 110a, connect to the car 120b, communicate directly with the mobile phone 120e and access the HAP. The car 120b can access the HAP and communicate directly with the mobile phone 120a. The mobile phone 120f can be connected to the micro station 110b, connect to the laptop computer 120g, connect to the printer 120h, and the mobile phone 120j can control the drone 120i.
[0076] A network device is a network-side device with wireless transceiver functions. A network device may be a device in a radio access network (RAN) that provides wireless communication functions for terminal devices, and is called a RAN device. RAN may be an access network in the 3rd Generation Partnership Project (3GPP), such as 4G, 5G, or future-oriented 6G networks. RAN may also be an open access network (open RAN, O-RAN or ORAN), a cloud radio access network (cloud radio access network, CRAN), or a communication network of two or more of the above networks.
[0077] The RAN device 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, etc.
[0078] The RAN device can also be a module or unit that completes some 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, a CU can be connected to a DU, or a CU can be connected to multiple DUs, which can save costs and facilitate network expansion. In other words, the access network equipment can be composed of a CU and one or more DUs. The CU and DU are connected through the F1 interface, and the CU and the core network are connected through the next generation (NG) interface. Optionally, the CU can also be divided into a CU-control plane (CP) and a CU-user plane (UP).
[0079] In a possible implementation, the CU can complete the functions of the radio resource control protocol (RRC) layer and the PDCP layer of the base station, and can also complete the functions of the SDAP layer; the DU can complete the functions of the RLC layer and the MAC layer of the base station, and can also complete the functions of part of the PHY layer or all of the PHY layer. For the specific description of the above-mentioned various protocol layers, reference can be made to the relevant technical specifications of the third generation partnership project (3GPP). The CU and DU can be set separately, or can also be included in the same network element, such as a baseband unit (BBU). The RU can be included in a radio frequency device or a radio frequency unit, such as a remote radio unit (RRU), an active antenna unit (AAU) or a remote radio head (RRH). In different systems, CU, DU or RU may also have different names, but those skilled in the art can understand their meanings. For example, in an ORAN system, CU may also be called O-CU (open CU), DU may also be called O-DU (open DU), and RU may also be called O-RU (open RU). Any unit in 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.
[0080] The network device may be a macro base station (such as Figure 2 110a), or a micro base station or an indoor station (such as Figure 2 110b), may also be a relay node or a donor node, etc. The embodiments of the present application do not limit the specific technology and specific device form adopted by the network device.
[0081] In the embodiments of the present application, the functions of the network device may also be performed by a module (such as a chip) in the network device, or by a control subsystem including the network device functions. The control subsystem including the network device functions here may be a control center in the above application scenarios such as smart grid, industrial control, smart transportation, and smart city.
[0082] The terminal device is a user-side device with wireless transceiver function. The terminal device can also be called a terminal, user equipment (UE), mobile station, mobile terminal, etc. The terminal device can be widely used in various scenarios, for example, device-to-device (D2D), vehicle to everything (V2X) communication, machine-type communication (MTC), Internet of Things (IOT), virtual reality, augmented reality, industrial control, automatic driving, telemedicine, smart grid, smart furniture, smart office, smart wear, smart transportation, smart city, etc. The terminal device can be a mobile phone, a tablet computer, a computer with wireless transceiver function, a wearable device, a vehicle, a drone, a helicopter, an airplane, a ship, a robot, a mechanical arm, a smart home device, etc. In the embodiment of the present application, the device for realizing the function of the terminal device can be a terminal device, or a device that can support the terminal device to realize the function, such as a chip system or a combination device or component that can realize the function of the terminal device, and the device can be installed in the terminal device. The embodiment of the present application does not limit the specific technology and specific device form adopted by the terminal device.
[0083] 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.
[0084] The network equipment and terminal equipment can be fixed or movable. The network equipment and terminal equipment can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on the water surface; they can also be deployed on aircraft, balloons and artificial satellites in the air. The embodiments of the present application do not limit the application scenarios of the network equipment and terminal equipment.
[0085] The roles of network devices and terminal devices can be relative, for example, Figure 2 The helicopter or drone 120i in the figure can be configured as a mobile network device. For the terminal devices 120j that access the wireless access network 100 through 120i, the terminal device 120i is a network device; but for the network device 110a, 120i is a terminal device, that is, 110a and 120i communicate through the wireless air interface protocol. Of course, 110a and 120i can also communicate through the interface protocol between network devices. In this case, relative to 110a, 120i is also a network device. Therefore, network devices and terminal devices can be collectively referred to as communication devices. Figure 2110a and 110b in the figure may be referred to as communication devices having network device functions. Figure 2 120a-120j in the figure can be called communication devices with terminal equipment functions.
[0086] 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 spectrum and unlicensed spectrum at the same time, without limitation.
[0087] 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.
[0088] Next, the technical features involved in the embodiments of the present application are introduced.
[0089] (1) User plane protocol stack between the sender and receiver
[0090] like Figure 1 As shown, the user plane protocol stack between the sending side and the receiving side may include an SDAP layer, a PDCP layer, an RLC layer, a MAC layer, and a PHY layer. Among them, the main function of the SDAP layer is to mark the quality of service (QoS) flow identifier in the uplink and downlink data packets, and to map the QoS flow to the data radio bearer (DRB). The transmission of data packets on the user plane is mainly completed through DRB. Depending on the QoS flow, the data between the sending side and the receiving side can be carried on multiple DRBs.
[0091] The PDCP layer is located between the SDAP layer and the RLC layer, and provides functions such as user plane / control plane message forwarding, security functions (encryption / integrity protection), header compression / data compression, timed discard, adding sequence number (SN), reordering, and in-order delivery.
[0092] 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, segmentation and reassembly of RLC SDU, ARQ error correction, and duplicate detection. The RLC layer supports three modes: transparent mode (TM), unacknowledged mode (UM), and acknowledged mode (AM). Among them:
[0093] The TM mode is used to transmit signaling radio bearer 0 (SRB0) data, paging data, and broadcast system messages. Such messages cannot be segmented, and the data is transparently transmitted through the RLC layer.
[0094] The UM mode is suitable for real-time services with high latency requirements and error tolerance. Once a data packet is transmitted through the UM RLC entity, the transmission is considered complete. Even if the data packet is lost during air interface transmission, the RLC layer will not retransmit it.
[0095] The AM mode is suitable for non-real-time services that require high reliability, such as web browsing, file transfer protocol (FTP) file downloads, signaling transmission, etc. Such services need to avoid data transmission loss as much as possible. The AM RLC entity uses the ARQ mechanism to ensure lossless transmission of data. The basic idea is that the RLC entity on the receiving side can send an RLC status report to the sending side (for example, through the RLC control PDU bearer) to indicate which data is successfully received and which data is failed to be received; the RLC entity on the sending side receives the RLC status report and retransmits the data packets that failed to be transmitted based on the RLC status report.
[0096] 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.
[0097] 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.
[0098] (2) Timing discard function on the sending side
[0099] 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 indicate 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).
[0100] (3) Reordering function on the receiving side
[0101] The PDCP entity on the receiving side maintains a receiving window. If the sequence numbers of the data packets received in the receiving window are not continuous (ie, there is a sequence number hole), a reordering timer needs to be started to wait for the hole in the receiving window to be filled.
[0102] If the t-reordering timer times out, the PDCP entity on the receiving side pushes the receiving window to slide and no longer waits for the set of air interfaces that it was waiting for before. In other words, the PDCP entity on the receiving side no longer waits for data packets that fall outside the receiving window. Even if these data packets are subsequently received, the PDCP entity on the receiving side will discard them.
[0103] (4) ARQ Function of AM RLC
[0104] For highly reliable but latency-insensitive services, the base station can configure the use of AM RLC for data transmission and configure the maximum number of retransmissions for AM ARQ. 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) will be triggered, which will further trigger the RRC connection reestablishment process.
[0105] 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, but the air interface transmission of the data packet cannot be terminated because the lower layer data packet has been sent out. The data packet may continue to be transmitted via RLC ARQ (and HARQ) 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.
[0106] In view of this, the embodiments of the present application provide a communication method and device for optimizing the user plane protocol stack, which is conducive to improving resource utilization. Among them, the method and device described in the present application are based on the same technical concept. Since the principles of solving problems by the method and device are similar, the implementation of the device and the method can refer to each other, and the repeated parts will not be repeated.
[0107] The following is an introduction to the technical terms involved in the embodiments of the present application.
[0108] (1) First communication device and second communication device
[0109] 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, 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 Figure 2 The relevant instructions in will not be repeated here.
[0110] 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 Figure 2 The relevant instructions in will not be repeated here.
[0111] 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.
[0112] (2) Data Packet
[0113] The data packet may be an SDU or a PDU, without limitation. The data packet in the embodiment of the present application may be a complete data packet or a segment of a data packet. The following text uses a data packet as an example for brevity. It should be understood that the data packet in the following text may also be replaced by a data packet segment. The embodiment of the present application does not limit the data type included in the data packet.
[0114] (3) First protocol layer
[0115] 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 combination layer, or a first protocol entity. In a 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, such as Figure 3 As shown in (1) in . In another possible implementation, the first protocol layer may be an enhancement of the PDCP layer and have the functions of the PDCP layer. In another possible implementation, the first protocol layer may be an enhancement of the RLC layer and have the functions of the RLC layer. In another possible implementation, the first protocol layer may also be deployed independently and may be located between the PDCP layer and the RLC layer, such as Figure 3 As shown in (2) in . It can be understood that Figure 3 The position of the first protocol layer shown in (2) is taken as an example, and the embodiments of the present application are not limited thereto. For example, the first protocol layer may be located between the RLC layer and the MAC layer, or the first protocol layer may replace part or all of the functions of the PDCP layer, the RLC layer, and the SDAP layer.
[0116] (4) Send Window
[0117] The sending window can also be called the sending side queue, etc., without limitation. The sending window can be understood as a continuous sequence number or sequence number range on the sending side; or it can also be understood as a queue of data packets on the sending side. For simplicity, the following text takes the sending window as a continuous sequence number as an example. The sending side only sends data packets whose sequence numbers fall within the sending window to the receiving side.
[0118] 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, the 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, the Tx_high can be the sum of Tx_lower and the length of the sending window (such as denoted 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}.
[0119] (5) Receive Window
[0120] The receiving window may also be referred to as a receiving side queue, etc., without limitation. The receiving window may be understood as a continuous sequence number or sequence number range on the receiving side; or it may also be understood as a queue of data packets received by the receiving side. For simplicity, the following text takes the receiving window as a continuous sequence number as an example. The receiving side only receives or processes data packets whose sequence numbers fall within the receiving window. For details, please refer to the related description of the reordering function of the receiving side mentioned above, which will not be repeated here.
[0121] 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 low variable on the receiving side, is used to identify the lower boundary of the receiving window. During initialization, the Rx_lower can be 0, or it can also be 1, without restriction. Rx_high, which can also be called the high sequence number on the receiving side, 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 that 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, the 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 the Rx_highest may be 4.
[0122] In addition, the term "first protocol layer" in the following text can be replaced by "first protocol entity" or "first protocol layer entity", etc.
[0123] Next, the communication method provided by the embodiment of the present application is introduced.
[0124] Figure 4 The flowchart of the first communication method provided by the embodiment of the present application is exemplarily shown. In this embodiment, in response to the timeout of the discard timer corresponding to the first data packet, the sending side indicates to the receiving side that the data packet is no longer to be transmitted. Specifically, Figure 4 As shown, the method may include the following contents.
[0125] S401: A first protocol layer of a first communication device starts a discard timer corresponding to a first data packet.
[0126] S401 is an optional step. Figure 4Indicated by dotted lines. Exemplarily, the first protocol layer of the first communication device can 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 can be one or more, without limitation. One or more data packets can be associated with the same discard timer. In other words, a discard timer can manage whether one or more data packets need to be discarded. For the first protocol layer, please refer to Figure 3 The relevant instructions will not be repeated here.
[0127] 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 processes the first data packet accordingly, it may be submitted to a lower layer (e.g., a MAC layer, or an RLC layer, etc.) 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.
[0128] 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 also be executed by one or more other protocol layers of the first communication device, or can also be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0129] In this embodiment, the first protocol layer of the first communication device may maintain a discard timer corresponding to the first data packet. If the discard timer corresponding to the first data packet has not timed out, the first protocol layer of the first communication device may perform transmission or retransmission of the first data packet. For example, the first communication device sends the first data packet to the second communication device ( Figure 4 (not shown); the second communication device attempts to receive the first data packet. The first data packet may be received successfully, or the first data packet may fail to be received, without limitation. Further, if the second communication device fails to receive the first data packet, the first communication device may retransmit the first data packet. It should be noted that the maximum number of retransmissions of a data packet in the embodiment of the present application may be predefined or preconfigured, without limitation.
[0130] 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 the content of S402.
[0131] 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.
[0132] 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.
[0133] The first indication information may be used to indicate that the first data packet is no longer transmitted; or it may be expressed as: the first indication information may be used to indicate that the first communication device no longer sends the first data packet; or it may be expressed as: the first indication information may be used to indicate that the first data packet has been discarded. Exemplarily, the content format of the first indication information may be implemented in the following ways, but is not limited thereto. These ways are described below.
[0134] 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 after 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 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 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.
[0135] For example, assuming that the sequence number of the first data packet is x, denoted as SN x, the first field may include the SN x, which is used to indicate that the data packet of SN x is no longer transmitted, such as Figure 5 As shown in (1) in . 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 sequence 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 sequence 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 sequence 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 sequence number (x+2) is no longer transmitted. The same goes for the remaining data packets and they are not listed one by one. Figure 5 In (1), N is taken as 8 as an example.
[0136] In one implementation, 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: the discard timer corresponding to the data packet has not timed out, the number of retransmissions of the data packet has not reached the maximum number of retransmissions, or the sequence number of the data packet is within the sending window. In one implementation, 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: the 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 the maximum number of retransmissions, or the sequence number of the data packet is outside the sending window.
[0137] 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, such as Figure 5 As shown in (2) in . Figure 5 In (2), the number of first data packets is 2, the sequence numbers of the two data packets are x (denoted as SN x) and y (denoted as SN y), and the first indication information includes SN x and SN y, which are used to indicate that the data packet of SN x and the data packet of SN y are no longer transmitted.
[0138] Implementation method 3: The first indication information may include one or more groups of fields, one of which 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. For the data packets that the first protocol layer of the first communication device determines are no longer transmitted, please refer to the aforementioned content and will not be repeated.
[0139] 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 a 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 a 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, and the fourth field in the second group includes n2, which is used to indicate that the data packet of SN y is no longer transmitted. 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 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), such as Figure 5 As shown in (3) in the figure, where n1 and n2 are both positive integers.
[0140] 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.
[0141] In S402, the first protocol layer of the first communication device discards the first data packet in response to the discard timing timeout corresponding to the first data packet, and sends a first indication message to the first protocol layer of the second communication device to indicate that the first data packet is no longer transmitted. Compared with the scheme in which the PDCP layer sends indication information to the RLC layer, it can reduce the interaction between protocol layers in the same communication device, optimize the user plane protocol stack, and reduce the waste of resources caused by the RLC layer having delivered the data packet that is no longer transmitted to the lower layer for transmission or retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0142] In a 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. Figure 4 Not shown in the figure. Among them, the first variable of the updated sending window may also be referred to as the updated sending window. The Tx_high of the updated sending window may remain unchanged, or may also 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. Exemplarily, the updated Tx_lower may include the following implementations. These implementations are described below.
[0143] Implementation method 1: The updated Tx_lower may be the minimum sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be successfully received by the second communication device and whose discard timer has not timed out; or the updated Tx_lower may be the first sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be 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 the sequence number from small to large. The first sequence number may also be expressed as the last sequence number in the sequence number from large to small. For ease of understanding, the following text takes the first sequence number in the sequence number from small to large as an example for explanation.
[0144] 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 sequence 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 sequence number among the sequence numbers of these multiple data packets.
[0145] Among them, the data packet confirmed to be successfully received by the second communication device can be understood as: the first communication device receives the confirmation (acknowledgment, ACK) information of the data packet from the second communication device. The data packet not confirmed to be successfully received by the second communication device can be understood as: the first communication device has not received the ACK information of the data packet from the second communication device. Optionally, the first communication device can receive negative acknowledgment (NACK) information of the data packet from the second communication device. In this case, the data packet can also be called a data packet that has not been confirmed to be successfully received by the second communication device.
[0146] As an 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 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}.
[0147] 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 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}.
[0148] 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}.
[0149] 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 by the second communication device as being successfully received and the corresponding discard timer has not timed out, 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 by the second communication device as being successfully received 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.
[0150] Figure 6 The schematic diagram of the updated sending window is shown as an example. Figure 6In the example, the updated Tx_lower is the first sequence number of the sequence numbers of the data packets in the sending window that have not been confirmed to be successfully received by the second communication device and whose discard timer has not timed out. And the data packets with sequence numbers less than the updated Tx_lower may include one or more of the following: a data packet whose discard timer has timed out (or a data packet whose discard timer has not run), or a data packet whose receipt has been confirmed to be successfully received by the second communication device.
[0151] Implementation method 2: The updated Tx_lower may be the smallest sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be 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 be the first sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions. Please refer to the above content for the description of the first sequence number, which will not be repeated here.
[0152] 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 sequence 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 smallest sequence number among the sequence numbers of these multiple data packets.
[0153] As an 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 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}.
[0154] 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}.
[0155] 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}.
[0156] 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 by the second communication device as being successfully received 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 by the second communication device as being successfully received 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.
[0157] Figure 7 The schematic diagram of the updated sending window is shown as an example. Figure 7In the example, the updated Tx_lower is the first sequence number of the sequence numbers of the data packets in the sending window that have not been confirmed to be successfully received by the second communication device and whose number of retransmissions has not reached the maximum number of retransmissions. And the data packets with sequence numbers less than the updated Tx_lower may include one or more of the following: data packets whose number of retransmissions has reached the maximum number of retransmissions, or data packets that have been confirmed to be successfully received by the second communication device.
[0158] Implementation method 3: The updated Tx_lower may be the smallest sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be successfully received by the second communication device, the discard timer has not timed out, and the maximum number of retransmissions has not been reached; or the updated Tx_lower may be the first sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be successfully received by the second communication device, the discard timer has not timed out, and the maximum number of retransmissions has not been reached. Please refer to the above content for the description of the first sequence number, which will not be repeated here.
[0159] 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, 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 sequence 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, 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 smallest sequence number among the sequence numbers of these multiple data packets.
[0160] As an example, assuming that 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 not running), the data packets of SN2 and SN3 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 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 timer has 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}.
[0161] As another example, assume that 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 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 timer has 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}.
[0162] As another example, assume that 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 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 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 to be successfully received by the second communication device, the corresponding discard timer has 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. Correspondingly, the updated sending window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}.
[0163] 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 not update Tx_lower, without restriction.
[0164] In this embodiment 3, the updated Tx_lower is the first sequence number among the sequence numbers of the data packets within the sending window that have not been confirmed to be successfully received by the second communication device, the discard timer has not timed out, and the number of retransmissions has not reached the maximum number of retransmissions. And the data packets with sequence numbers less than the updated Tx_lower may include one or more of the following: the discard timer has timed out (or not running), the number of retransmissions has reached the maximum number of retransmissions, or the data packets that have been confirmed to be successfully received by the second communication device.
[0165] In one embodiment, the first indication information may also be used to indicate that a data packet with a sequence number less than the updated Tx_lower is no longer transmitted. Optionally, the first indication information may include the updated Tx_lower, which is used to indicate that a 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, which is used to indicate that the first data packet is no longer transmitted and that a 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 may also include the updated Tx_lower, excluding the sequence number of the first data packet, which is used to indicate that a data packet with a sequence number less than the updated Tx_lower is no longer transmitted. That is, the first indication information may be used to indicate that a data packet with a sequence number less than the updated Tx_lower is no longer transmitted.
[0166] 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, and the third indication information is used to indicate that the data packet with a sequence number less than the updated Tx_lower is 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, which is used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted.
[0167] 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.
[0168] 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 transmitted. Further, the first protocol layer of the second communication device can update the second variable of the receiving window according to the first indication information, that is, execute the content of S403.
[0169] S403: The first protocol layer of the second communication device updates the second variable of the receiving window according to the first indication information.
[0170] S403 is an optional step. Figure 4 Indicated by dotted lines. The first protocol layer of the second communication device can update the second variable of the receiving window according to the first indication information, that is, update Rx_lower. Among them, updating the second variable of the receiving window can also be called updating the receiving window. The Rx_high of the updated receiving window can remain unchanged, or it can also be the sum of the updated Rx_lower and window size2, without restriction. Afterwards, the second communication device receives the data packet from the first communication device according to the updated receiving window. Exemplarily, the second communication device can update the 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 can update Rx_lower or not, without restriction.
[0171] 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 in the receiving window and has not been indicated by the first communication device to no longer be transmitted. For example, the updated Rx_lower may be the first sequence number in the sequence number of the data packet that has not been completely received (or has not been completely received) in the receiving window and has not been indicated 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) in the sequence number of the data packet that has not been completely received in the receiving window and has not been indicated 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. 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).
[0172] The completely received data packet may be understood as: the entire data packet has been received by the second communication device. The incompletely received data packet may be understood as: part or all of the data packet has not been received by the second communication device.
[0173] Figure 8 FIG. 1 is a schematic diagram showing an updated receiving window. Figure 8 In the above, the updated Rx_lower is the first sequence number of the sequence numbers of the data packets that have not been completely received and have not been instructed by the first communication device not to be transmitted plus 1. And the data packets with sequence numbers less than the updated Rx_lower include one or more of the following: data packets that have been submitted to the upper layer (or data packets that have been completely received), or data packets that are instructed by the first communication device not to be transmitted. In addition, Figure 8 In the example, Rx_highest is the maximum sequence number among the sequence numbers of the data packets received by the second communication device plus 1.
[0174] As an example, assuming that the receiving 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN2, SN5, SN6, SN7, and SN8. Further, the updated Rx_lower can be 2, and accordingly, the updated receiving window can be {SN2, SN3, SN4, SN5, SN6, SN7, SN8, SN9, SN10}; or, the updated Rx_lower can also be greater than 2.
[0175] Alternatively, if the data packets of 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN0, SN2, SN5, SN6, SN7, and SN8. Further, the updated Rx_lower can still be 0, and accordingly, the updated receiving window can still be {SN0, SN1, SN2, SN3, SN4, SN5, SN6, SN7, SN8}; or, the updated Rx_lower can also be greater than 0.
[0176] Alternatively, if the data packets of SN1 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 the data packets with sequence numbers less than the updated Tx_lower are no longer transmitted, and the updated Tx_lower is 4, then the sequence numbers of the data packets that have not been completely received in the receiving window and have not been instructed by the first communication device to no longer be transmitted include: SN5, SN6, SN7, and SN8. Further, the updated Rx_lower can be 5, and accordingly, the updated receiving window can be {SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12, SN13}; or, the updated Rx_lower can also be greater than 5.
[0177] As another example, assume that the receiving 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN4, SN5, SN6, SN7, and SN8. Further, the updated Rx_lower can be 4, and accordingly, the updated receiving window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10, SN11, SN12}; or, the updated Rx_lower can also be greater than 4.
[0178] Alternatively, 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 is used to indicate that the 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN7 and SN8. Further, the updated Rx_lower can be 7, and accordingly, the updated receiving window can be {SN7, SN8, SN9, SN10, SN11, SN12, SN13, SN14, SN15}; or, the updated Rx_lower can also be greater than 7.
[0179] As another example, assume that the receiving 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN4, SN5, SN6, SN7 and SN8. Further, the updated Rx_lower can be 4, and accordingly, the updated receiving window can be {SN4, SN5, SN6, SN7, SN8, SN9, SN10}; or, the updated Rx_lower can also be greater than 4.
[0180] Alternatively, if all the data packets in the receiving window are not 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 receiving window that are not completely received and are not indicated by the first communication device to be no longer transmitted include: SN2, SN3, SN4, SN5, SN6, SN7 and SN8. Further, the updated Rx_lower can still be 2, and accordingly, the updated receiving window can still be {SN2, SN3, SN4, SN5, SN6, SN7, SN8}; or, the updated Rx_lower can also be greater than 2.
[0181] Alternatively, 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 is used to indicate that the 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 that have not been completely received in the receiving window and have not been indicated by the first communication device to no longer be transmitted include: SN7 and SN8. Further, the updated Rx_lower can be 7, and accordingly, the updated receiving window can be {SN7, SN8, SN9, SN10, SN11, SN12, SN13}; or, the updated Rx_lower can also be greater than 7.
[0182] In a possible implementation, the second communication device may start the reassembly timer of the receiving window. For example, the second communication device may start the reassembly timer before S403. For example, when there is a hole in the receiving window, or the sequence number of the data packet received in the receiving window is discontinuous, or 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 is not limited to the first protocol layer. When the reassembly timer of the receiving window times out, the second communication device may send a second status report to the first communication device; accordingly, the first communication device receives 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; accordingly, the first protocol layer of the first communication device may receive the second status report. The second status report may be used to indicate the data packets that failed to be received and / or the data packets that were successfully received in the receiving window. For example, the second status report includes ACK information of data packet 1, which is used to indicate that data packet 1 was received successfully. For another example, the second status report includes NACK information of data packet 2, indicating that data packet 2 fails to be received. In this embodiment, the second status report may include NACK information of the first data packet, indicating that the first data packet fails to be received; or may include ACK information of the first data packet, indicating that the first data packet is successfully received. The second status report may be, for example, an RLC status report, without limitation.
[0183] Optionally, the second communication device may be configured with a prohibition timer, and the prohibition timer is started when sending a status report. For example, the first protocol layer of the second communication device is configured with the prohibition timer, and the first protocol layer of the second communication device starts the prohibition timer when sending a status report. When the prohibition timer is running or has not timed out, the second communication device does not send a status report to the first communication device; or, when the prohibition timer has timed out or the prohibition timer is not running, the second communication device may send a status report to the first communication device. Exemplarily, when the prohibition timer has timed out (or the prohibition timer has not run), and the reassembly timer of the receiving window has timed out, the second communication device may send a second status report to the first communication device. In other words, when the prohibition timer has timed out (or the prohibition timer has not run), and the reassembly timer of the receiving window has timed out, the first protocol layer of the second communication device may send a second status report to the first communication device. Through the prohibition timer, the number of times the receiving side sends a status report to the sending side can be reduced, and the waste of resources caused by the high frequency of feedback of status reports from the receiving side making some status reports useless can be reduced.
[0184] In a possible implementation, when 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 also 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.
[0185] 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 determined by the first communication device no longer to be transmitted, thereby reducing resource consumption and reducing the impact on the timely transmission of subsequent data packets.
[0186] Fig. 9 The flowchart of the second communication method provided by the embodiment of the present application is exemplarily shown. In this embodiment, in response to the failure to receive the second data packet, the sending side indicates to the receiving side that the data packet is no longer to be transmitted. Specifically, Fig. 9 As shown, the method may include the following contents.
[0187] S901: The first communication device sends a second data packet to the second communication device.
[0188] In this embodiment, the second communication device fails to receive the second data packet.
[0189] 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, and then the lower layer sends the second data packet to the second communication device. Figure 3 The relevant instructions will not be repeated here.
[0190] 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 can 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.
[0191] It can be understood that the relevant content of S901 can be executed by the first protocol layer of the first communication device, or can also be executed by one or more other protocol layers of the first communication device, or can also be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0192] In a possible implementation, when the sequence number of the second data packet is greater than or equal to the third variable (i.e., greater than Rx_highest), the second communication device may also 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; accordingly, the second communication device attempts to receive the second data packet; regardless of whether the second data packet is received successfully or failed, when the sequence number of the second data packet is greater than or equal to the third variable, the second communication device may update the third variable.
[0193] In this embodiment, the second communication device fails to successfully receive the second data packet.
[0194] S902: The second communication device sends a first status report to the first communication device.
[0195] Accordingly, the first communication device receives the first status report from the second communication device.
[0196] 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 receiving window. For example, the first status report includes ACK information for data packet 1, indicating that data packet 1 was received successfully. 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.
[0197] Optionally, the first protocol layer of the second communication device may start a reassembly timer. For example, when there is a hole in the receiving window, or the sequence numbers of the data packets received in the receiving 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. When the reassembly timer times out, 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. Please refer to the relevant content of S403 for the reassembly timer, which will not be described in detail.
[0198] Optionally, the first protocol layer of the second communication device may start a prohibition timer. When the prohibition timer times out (or the prohibition timer is not running) and the reassembly timer times out, 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. Please refer to the relevant content of S403 for the prohibition timer, which will not be repeated here.
[0199] 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.
[0200] The first protocol layer of the first communication device can determine whether the first condition is met in response to the NACK information of the second data packet. If the first condition is met, the contents of S903 and S904 are executed; or if it is determined that the first condition is not met, the contents of S905 and S906 are executed.
[0201] 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 discard timer corresponding to the second data packet has timed out (or the discard 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 reaches the maximum number of retransmissions; or, the first condition may be that the discard timer corresponding to the second data packet has timed out (or the discard 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 discard timer corresponding to the second data packet has timed out (or the discard timer corresponding to the second data packet has not run), and the number of retransmissions of the second data packet reaches 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 reaches the maximum number of retransmissions; or, the first condition may be that the discard timer corresponding to the second data packet has timed out (or the discard 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 reaches the maximum number of retransmissions.
[0202] 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.
[0203] 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.
[0204] The second indication information can be used to indicate that the second data packet is no longer transmitted; or it can be expressed as: the second indication information can be used to indicate that the first communication device no longer sends the second data packet. Please refer to the description of the first indication information for the content format of the second indication information, and no further description is given. For example, the first protocol layer of the first communication device responds to the NACK information of the second data packet, and when it is determined that the first condition is met, sends the second indication information to the first protocol layer of the second communication device.
[0205] Exemplarily, if the reception of the second data packet fails, 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), 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 reception of the second data packet fails, and the serial 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 reception of the second data packet fails, 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 reception of the second data packet fails, 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 serial 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 can 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 can 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 can 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.
[0206] In S903, the first protocol layer of the first communication device responds to the NACK information of the second data packet, and sends the second indication information to the first protocol layer of the second communication device when determining that the first condition is met, so as to indicate that the second data packet is no longer transmitted. Compared with the scheme in which the PDCP layer sends the indication information to the RLC layer, it is possible to reduce the interaction between the protocol layers in the same communication device, optimize the user plane protocol stack, and reduce the waste of resources caused by the RLC layer having delivered the data packet no longer transmitted to the lower layer for retransmission when the RLC layer receives the indication information, thereby improving resource utilization.
[0207] In a possible implementation, when the first condition is 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. Fig. 9 The first variable of the updated sending window may also be referred to as the updated 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.
[0208] 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.
[0209] 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.
[0210] 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, and the third indication information is used to indicate that the data packet with a sequence number less than the updated Tx_lower is 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, which is used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted.
[0211] 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.
[0212] S904: The first protocol layer of the second communication device updates the second variable of the receiving window according to the second indication information.
[0213] S904 is an optional step. Fig. 9Indicated by dotted lines. The first protocol layer of the second communication device can update the second variable of the receiving window according to the first indication information, that is, update Rx_lower. Among them, updating the second variable of the receiving window can also be called updating the receiving window. The Rx_high of the updated receiving window can remain unchanged, or it can also be the sum of the updated Rx_lower and window size2, without limitation. Afterwards, the second communication device receives the data packet from the first communication device according to the updated receiving window.
[0214] 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 in the receiving window and has not been indicated 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 has not been fully received) in the receiving window and has not been indicated 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 in the receiving window and has not been indicated by the first communication device to no longer be transmitted. For the specific implementation process, please refer to the relevant content of S403, which will not be repeated here.
[0215] 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 determined by the first communication device no longer to be transmitted, thereby reducing resource consumption and reducing the impact on the timely transmission of subsequent data packets.
[0216] S905: When the first condition is not met, the first communication device sends a second data packet to the second communication device.
[0217] Fig. 9 S905 in the example is taken as an example that the second communication device successfully receives the second data packet. It should be understood that if the second communication device fails to continue to receive the second data packet, the content of S902 can be executed.
[0218] 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, and then the lower layer sends the second data packet to the second communication device. Figure 3 The relevant instructions will not be repeated here.
[0219] 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 does not reach 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 does not reach the maximum number of retransmissions, the first communication device sends the second data packet to the second communication device.
[0220] 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 also be executed by one or more other protocol layers of the first communication device, or can also be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0221] In S905, if the first condition is not met, the first communication device may retransmit the second data packet to ensure the reliability of data transmission.
[0222] In a 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. Fig. 9Not shown. Among them, the first variable of the updated sending window can also be called the updated sending window. The Tx_high of the updated sending window can remain unchanged, or it can also be the sum of the updated Tx_lower and window size1, without restriction. After that, the first communication device only sends data packets with sequence numbers 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 can also include ACK information of the data packet of Tx_lower, then the first protocol layer of the first communication device can also update Tx_lower. It can be understood that in the case where the first status report does not include the 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.
[0223] 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.
[0224] In one implementation, after updating Tx_lower, the first protocol layer of the first communication device may further send third indication information ( Fig. 9 (not shown in the figure), the third indication information is used to indicate that the data packet with a sequence number less than the updated Tx_lower is no longer transmitted, and the details can refer to the above description. That is, when the first condition is not met, the first protocol layer of the first communication device can update Tx_lower and send the third indication information to the first protocol layer of the second communication device.
[0225] Optionally, after receiving the third indication information, the first protocol layer of the second communication device may update the second variable of the receiving window according to the third indication information, and the updated Rx_lower may be 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. For details, please refer to the relevant content of S904, which will not be repeated here. That is, when 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 according to the third indication information.
[0226] It 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). Further, the first status report includes NACK information of the second data packet, and when 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, the first status report includes NACK information of the second data packet, and when 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.
[0227] S906: The first protocol layer of the first communication device updates (or modifies) the number of retransmissions of the second data packet.
[0228] For example, if the first communication device receives 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 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.
[0229] It can be understood that the relevant content of S906 can be executed by the first protocol layer of the first communication device, or can also be executed by one or more other protocol layers of the first communication device, or can also be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0230] It should be noted that the execution order of S905 and S906 is an example and is not limited thereto. For example, the first communication device may also update the number of retransmissions of the second data packet while sending the second data packet to the second communication device. For another example, the first communication device may first update the number of retransmissions of the second data packet and then send the second data packet to the second communication device.
[0231] Fig.10 The flowchart of the third communication method provided by the embodiment of the present application is exemplarily shown. In this embodiment, the receiving side updates the second variable of the receiving window in response to the successful reception of the first data packet and the sequence number of the first data packet being the second variable of the receiving window. Specifically, Fig.10 As shown, the method may include the following contents.
[0232] S1001: A first communication device sends a first data packet to a second communication device.
[0233] In this embodiment, the second communication device successfully receives the first data packet.
[0234] For example, the first protocol layer of the first communication device sends a first data packet to the second communication device. Specifically, the first protocol layer of the first communication device can deliver the first data packet to the lower layer, and then the lower layer sends the first data packet to the second communication device. Figure 3 The relevant instructions will not be repeated here.
[0235] Optionally, the first protocol layer of the first communication device receives the first data packet from the upper layer and starts a discard timer corresponding to the first data packet. Optionally, the first protocol layer of the first communication device can 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.
[0236] 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 also be executed by one or more other protocol layers of the first communication device, or can also be executed by the first protocol layer and one or more other protocol layers of the first communication device, without limitation.
[0237] The first communication device sends a first data packet, and correspondingly, the second communication device attempts to receive the first data packet. In this embodiment, the second communication device successfully receives the first data packet.
[0238] 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.
[0239] The first data packet is received successfully, that is, the first data packet is completely received, 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 (that is, 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.
[0240] Exemplarily, the updated Rx_lower is greater than or equal to the sequence number of the data packet that has not been completely received in the receiving window and has not been instructed by the first communication device not to 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 has not been fully received) in the receiving window and has not been instructed by the first communication device not to 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 in the receiving window and has not been instructed by the first communication device not to be transmitted. For the specific implementation method, please refer to the content of S403, which will not be repeated here.
[0241] In a possible implementation, the first protocol layer of the second communication device can start a reassembly timer. For example, when there is a hole in the receiving window, or the sequence numbers of the data packets received in the receiving 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 can start a reassembly timer. When the reassembly timer times out, the first protocol layer of the second communication device can 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 of 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.
[0242] Optionally, the first protocol layer of the second communication device may start a prohibition timer. When the prohibition timer times out (or the prohibition timer is not running) and 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. Please refer to the relevant content of S403 for the prohibition timer, which will not be described in detail.
[0243] In a possible implementation, when the sequence number of the first data packet is equal to the third variable (i.e., greater than Rx_highest), that is, when Rx_highest is equal to the second variable, the second communication device may also 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 is still the second variable, or the second variable plus 1.
[0244] In a possible implementation, the first protocol layer of the first communication device may update the first variable of the sending window, that is, update Tx_lower. For example, the first communication device may update Tx_lower in response to the timeout of the discard timer corresponding to the first data packet. For details, please refer to Figure 4 For another example, the first communication device may also update Tx_lower in response to the second status report of the second communication device. Fig. 9 The relevant contents in the embodiment shown are not repeated here. Figure 4 or Fig. 9 The relevant descriptions in the illustrated embodiment will not be repeated any more.
[0245] In S1002, when a data packet is completely received and the sequence 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.
[0246] It should be pointed out that the aforementioned first communication method, second communication method and third communication method can be used independently or in combination without limitation.
[0247] It is understandable 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 the status report of the second communication device; or may directly update Tx_lower. For example, the first communication device may update Tx_lower periodically or non-periodically. The embodiment of the present application does not limit the triggering conditions for the transmitting side to update Tx_lower.
[0248] It is understandable that the second communication device may update Rx_lower in response to the first indication information (or the second indication information, or the third indication information) of the first communication device; or may update Rx_lower in response to the data packet of Rx_lower being completely received; or may directly update Rx_lower. For example, the second communication device may update Rx_lower periodically or non-periodically. The embodiment of the present application does not limit the triggering conditions for the receiving side to update Rx_lower.
[0249] The communication method provided in the embodiment of the present application can be applied to the scenario where the terminal device communicates with the terminal device, or it can also be applied to the scenario where the terminal device communicates with the network device. When the communication method provided in the embodiment of the present application is applied to the scenario where the terminal device communicates with the network device, the network device may not adopt the CU-DU separation architecture, or it may also adopt the CU-DU separation architecture.
[0250] In a possible implementation, if the network device adopts a CU-DU separation architecture, the first protocol layer can be deployed in the CU, such as Fig.11 As shown. 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. Among them, the MAC layer can also be called a MAC entity, or a MAC layer entity, etc., without limitation. In addition, the DU can be connected to the RU, Fig.11 The description of CU, DU, and RU can be found in the above content, which will not be repeated here.
[0251] 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.
[0252] In a possible implementation, a CU can be connected to at least one DU. Fig.12 In the example, a CU is connected to two DUs (respectively denoted as DU1 and DU2). Fig.12As shown, the MAC layer deployed by DU 1 is recorded as MAC 1, and the MAC layer deployed by DU 2 is recorded as MAC 2. The MAC layer may include a cache module (or cache area, or cache, etc.) for caching data and performing data segmentation and other functions, such as for caching PDUs from the first protocol layer. Among them, the cache module in MAC 1 is recorded as cache module 1, and the cache module in MAC 2 is recorded 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 the 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 transport block (TB) of the data packet group, 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 indicated with the packet when the CU transmits the PDU to the DU, without limitation. 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.
[0253] 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 sending the first data packet to the second communication device can be specifically 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.
[0254] 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.
[0255] In a possible implementation, the first protocol layer is deployed in the CU, the MAC layer is deployed in the DU, N logical channels (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 the N cell sets, such as Fig.13 As shown. For example, one LCH is associated with a 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 a 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. Fig.13 In the figure, N is 3 as an example. The three cache modules are respectively recorded as cache module 1, cache module 2 and cache module 3, the three LCHs are respectively recorded as LCH1, LCH2 and LCH3, and the three cell sets are respectively recorded 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.
[0256] Exemplarily, the first protocol layer processes the SDU received from the upper layer to generate at least one PDU (PDU1 is used as an example for explanation), and before receiving the transmission request indicated by the MAC layer, copies PDU1 to N copies to obtain N PDU1s, and delivers PDU1 to the associated cache module in the MAC layer through N LCHs for caching, such as delivering PDU1 to cache module 1 in the MAC layer through LCH1 for caching, delivering PDU1 to cache module 2 in the MAC layer through LCH2 for caching, and delivering PDU1 to cache module 3 in the MAC layer through LCH2 for caching. Afterwards, the MAC layer receives scheduling resources on a specific cell set, and then takes a data packet group TB from the cache module associated with the cell set. For example, the MAC layer takes PDU group TB from cache module 1 and sends it to cell set 1. For example, the MAC layer takes PDU group TB from cache module 2 and sends it to cell set 2. For example, the MAC layer takes PDU group TB from cache module 3 and sends it to cell set 3.
[0257] Taking the first data packet and the third data packet having the same payload (i.e., the PDU generating the first data packet and the PDU generating the third data packet are the same) as an example, 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. 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 in detail 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 the first cache area, and caches the other first PDU in the second cache area; further, after determining the transmission resource of the first PDU, the MAC layer obtains the first PDU group TB from the first cache 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 cache area to obtain the third data packet, and sends the third data packet to the third communication device.
[0258] The third communication device may be a terminal device or a component in the terminal device (eg, a chip, or a chip system, or a circuit), without limitation. Figure 2 The relevant instructions in will not be repeated here.
[0259] This implementation enables the first protocol layer to have the function of data replication, which is conducive to meeting the QoS requirements of extremely low-latency and extremely high-reliability services. In addition, the first protocol layer can cache the PDU in the cache module of the MAC layer in advance, which 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 data packets, and help improve the QoS of low-latency services.
[0260] In a possible implementation, the first protocol layer is deployed in the CU, the MAC layer is deployed in the DU, one LCH is established between the first protocol layer and the MAC layer, the MAC layer can maintain a cache module for one first protocol layer, and one cache module can be associated with N cell sets for transmitting N identical data, such as Fig.14 A cell set may include one or more cells without limitation. N is an integer greater than 1. Fig.14 In the figure, N is 3 as an example.
[0261] In this implementation, each data packet (or PDU) in the cache module has N state variables, and the N state variables can be used to indicate the transmission status of the data packet in the N cell sets, such as indicating that it has not been transmitted, or indicating that it has been transmitted. One state variable corresponds to one cell set, and one cell set corresponds to one state variable. In one implementation, 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 the 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 the corresponding cell set. Optionally, a state variable can occupy 1 bit, 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 the data packet can be initialized to the fourth value, and the MAC layer sends the data packet to a certain cell set, and the state variable corresponding to the cell set maintained by the data packet can be updated (or modified) to the third value. The first protocol layer sends a data packet to the MAC layer, and the MAC layer caches the data packet and the subsequent TB grouping process can refer to the above content and will not be described in detail.
[0262] For example, assuming that the third value is 1 and the fourth value is 0, each of data packets 1, 2 and 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, such as Fig.15 As shown in (1) in . If the MAC layer sends data packets 1 and 2 to cell set 1, and sends data packets 1, 2, and 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 Fig.15 As shown in (2) in FIG. 1 , it can be understood that the state variable can be stored in the same cache module as the data packet, or in different cache modules, without limitation.
[0263] Optionally, the MAC layer can segment the data packet and maintain the segmentation in each cell set, that is, maintain state variables at the granularity of segmentation. For details, please refer to the aforementioned implementation process of maintaining state variables at the granularity of data packet, which will not be repeated here.
[0264] Optionally, when the data packet has been transmitted on the corresponding cell set, the data packet is deleted from the cache module of the MAC layer, so that the cache space can be released in time.
[0265] Taking the example of a first communication device sending a first data packet to a second communication device and a third communication device, the first communication device is a network device, and the first protocol layer of the first communication device can also send the first 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. 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 sends the first data packet to the second communication device, and the remaining state variable is used to indicate whether the first communication device sends the first data packet to the third communication device.
[0266] This implementation enables the MAC layer to maintain the state variable corresponding to the data packet, and the state variable is associated with multiple cell sets, which is convenient for determining the transmission status of the data packet in these multiple cell sets, and is conducive to meeting the QoS requirements of extremely low-latency and extremely high-reliability services. In addition, the first protocol layer can cache the PDU in the cache module of the MAC layer in advance, which 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.
[0267] In the embodiments provided in the present application, the methods provided in the embodiments of the present application are 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 device, 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 device. 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 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 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.
[0268] The following describes the communication device used to implement the above method in the embodiment of the present application in conjunction with the accompanying drawings. Therefore, the above contents can be used in subsequent embodiments, and repeated contents will not be repeated.
[0269] Fig.16 The schematic diagram of the structure of a communication device 1600 is exemplarily shown. 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.
[0270] 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.
[0271] In one implementation, 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 above-mentioned various method embodiments. The processing module 1601 may also be referred to as a processing unit, etc. 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, or a communication module, or a transceiver unit, etc.
[0272] It should be noted that the communication device 1600 may include a processing module 1601 but not a transceiver module 1602. Alternatively, the communication device 1600 may include a transceiver module 1602 but not a processing module 1601. Specifically, it may depend on whether the above solution executed by the communication device 1600 includes a processing action and a transceiver action.
[0273] Optionally, the communication device 1600 may further include a storage module. Fig.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 so that the communication device 1600 implements the aforementioned method embodiment.
[0274] 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.
[0275] 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. Specifically, it may depend on whether the above solution executed by the communication device 1600 includes a sending action and a receiving action.
[0276] Optionally, the communication device 1600 is a chip system, the transceiver unit may be an input / output interface of a chip (eg, a baseband chip), and the processing unit may be a processor of the chip system.
[0277] 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.
[0278] As an 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.
[0279] Optionally, the processing module 1601 can be used to update a first variable of a 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.
[0280] Optionally, the transceiver module 1602 may also be 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 a data packet having a sequence number less than the updated first variable is no longer transmitted.
[0281] Optionally, the transceiver module 1602 may also be 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.
[0282] As 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.
[0283] Optionally, the processing module 1601 can be used to update a first variable of a 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.
[0284] Optionally, the transceiver module 1602 may also be 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 a data packet having a sequence number less than the updated first variable is no longer transmitted.
[0285] 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.
[0286] 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.
[0287] As an example, the communication device 1600 can execute the following contents: 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 to no longer be transmitted, and the second variable is the lower boundary of the receiving window.
[0288] Optionally, the transceiver module 1602 may also be configured to send a second status report to the first communication device when the reassembly timer of the receiving window times out, the second status report including NACK information of the first data packet, or including ACK information of the first data packet.
[0289] 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 1601 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.
[0290] Optionally, processing module 1601 can also be used to update the third variable when the sequence number of the first data packet is greater than or equal to the third variable, 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, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
[0291] As 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 sequence 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 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.
[0292] Optionally, 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.
[0293] It should be understood that a more detailed description of each module executing the corresponding process can be directly obtained by referring to the relevant description in the aforementioned method embodiments, and for the sake of brevity, it is not repeated here.
[0294] The processing module 1601 in the above embodiment may be implemented by at least one processor or processor-related circuits. The transceiver module 1602 may be implemented by a transceiver or a transceiver-related circuit. The storage module may be implemented by at least one memory.
[0295] like Fig.17 As shown, an embodiment of the present application provides a schematic diagram of the structure of a communication device 1700. The communication device 1700 may include a processor 1720, which is used to implement or support the communication device 1700 to implement 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 in the aforementioned method embodiment, which will not be 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.
[0296] It should be noted that the functional modules mentioned above can be implemented by hardware or by a combination of hardware and software without limitation. And when the communication device 1700 only includes the processor 1720, the communication device 1700 can be a chip or a chip system.
[0297] 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 devices, without limitation.
[0298] Optionally, the communication device 1700 may further include a memory 1730 for storing program instructions and / or data. The memory 1730 is coupled to the processor 1720. The coupling may be understood as an indirect coupling or communication connection between devices, units or modules, which may be electrical, mechanical or other forms, for information exchange between devices, units or modules. The processor 1720 may operate in coordination with the memory 1730. The processor 1720 and the memory 1730 may be integrated together or separately arranged.
[0299] Furthermore, the processor 1720 is used to execute program instructions stored in the memory 1730 so that the communication device 1700 implements the corresponding method.
[0300] Among them, one or more memories in the memory 1730 may be included in the processor, and the memory 1730 may also exist independently, such as an off-chip memory, through a communication bus ( Fig.17 The memory 1730 and the processor 1720 may also be integrated together.
[0301] Optionally, the communication device 1700 further includes a communication interface 1710 ( Fig.17 The processor 1720 may be used to transmit and receive data using the communication interface 1710. For example, the processor 1720 may be used to control the communication interface 1710 to receive and / or transmit signals.
[0302] 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 , and the transceiver is integrated in the communication device 1700 to form the communication interface 1710 .
[0303] It should be pointed out that the communication interface 1710 may have a sending function and a receiving function, and may realize the reception and sending of signals; or it may have a sending function but not a receiving function, and is used to realize the sending of signals; or it may have a receiving function but not a sending function, and is used to realize the reception of signals.
[0304] It should be noted that the specific connection medium between the communication interface 1710, the processor 1720 and the memory 1730 is not limited in the embodiments of the present application. Fig.17 In the figure, the memory 1730, the processor 1720 and the communication interface 1710 are connected via the communication bus 1740. The connection between other components is only for schematic illustration and is not intended to be limiting. The communication bus 1740 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.17 Only one thick line is used in the figure, but it does not mean that there is only one communication bus or one type of communication bus.
[0305] In the embodiment of the present application, the 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. The general-purpose processor may be a microprocessor or any conventional processor, etc. The method disclosed in the embodiment of the present application may be executed by hardware in the processor, or by a combination of hardware and software in the processor.
[0306] 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), etc., or a volatile memory (volatile memory), such as a random-access memory (RAM). The memory may also be any other medium for carrying or storing program codes in the form of instructions or data structures and accessible by a computer; or, a circuit or any other device capable of realizing a storage function, for storing program instructions and / or data.
[0307] Specifically, the communication device 1700 can be a network device or a component in a network device (such as DU, etc.), or a terminal device or a component in a terminal device. For example, the communication device 1700, as the sending 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 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.
[0308] In a first possible implementation manner, the communication device 1700 may be a CU in a first network device, used to implement relevant methods corresponding to the first communication device in the above embodiments. For specific functions, please refer to the descriptions in the above embodiments.
[0309] Exemplarily, the related methods corresponding to the first communication device in each of the above embodiments include: when the discard timer corresponding to the first data packet times out, sending first indication information, wherein the first indication information is used to indicate that the first data packet is no longer transmitted. For example, the CU sends the first indication information to the DU in the first network device, the DU sends it to the RU in the first network device, and the RU then sends the first indication information to the second communication device.
[0310] Optionally, the relevant method corresponding to the first communication device in the above-mentioned embodiments includes: updating a first variable of a 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 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 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 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.
[0311] Optionally, the related 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 the data packet with a sequence number less than the updated first variable is no longer transmitted. For example, the CU sends the third indication information to the DU in the first network device, the DU sends it to the RU in the first network device, and the RU then sends the third indication information to the second communication device.
[0312] 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.
[0313] Exemplarily, the relevant method corresponding to the first communication device in each of the above embodiments includes: receiving a first status report, wherein the first status report includes NACK information of the second data packet; and, when the first condition is met, sending a second indication information, 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, 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 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. 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 the second data packet) to the DU in the first network device, and the DU sends it to the RU in the first network device, and then the RU sends the second indication information (or the second data packet) to the second communication device.
[0314] Optionally, the relevant method corresponding to the first communication device in the above-mentioned embodiments includes: updating a first variable of a 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 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 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 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.
[0315] Optionally, the related 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 the data packet with a sequence number less than the updated first variable is no longer transmitted. For example, the CU sends the third indication information to the DU in the first network device, the DU sends it to the RU in the first network device, and the RU then sends the third indication information to the second communication device.
[0316] Optionally, the relevant method corresponding to the first communication device in each of the above embodiments includes: when the first condition is not met, updating the number of retransmissions of the second data packet.
[0317] 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.
[0318] 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 is used to indicate that the first data packet is no longer transmitted; updating a 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 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.
[0319] Optionally, the relevant 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 receiving window times out, the second status report including NACK information of the first data packet or including ACK information of the first data packet. Alternatively, sending the second status report when the prohibition timer has timed out or the prohibition timer is not running and the reassembly timer of the receiving window times out. For example, the CU sends the second status report to the DU in the second network device, the DU sends it to the RU in the second network device, and the RU then sends the second status report to the first communication device.
[0320] Optionally, the relevant methods corresponding to the second communication device in the above-mentioned embodiments include: when the sequence 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 sequence number of the first data packet or the sequence number of the first data packet plus 1, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
[0321] 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.
[0322] Exemplarily, the related methods corresponding to the second communication device in each of the above embodiments include: receiving a first data packet; 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, updating the second variable, wherein the updated second variable is greater than or equal to the sequence number of the data packet that has not been completely received in the receiving window 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. For example, the RU in the second network device receives the 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.
[0323] Optionally, the relevant methods corresponding to the second communication device in the above-mentioned embodiments include: when the sequence number of the first data packet is equal to a third variable, updating 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, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
[0324] 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 in the above-mentioned embodiments, which will not be repeated. 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 in the above-mentioned embodiments, which will not be repeated.
[0325] Based on the same idea, see Fig.18 The 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 the code instructions to execute the method executed by the first communication device or the second communication device in any of the above embodiments.
[0326] Exemplarily, the communication device 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.
[0327] The operations performed by the communication device 1800, the first communication device or the second communication device, are described in detail below.
[0328] 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, specifically, the aforementioned Figure 4 , Fig. 9 or Fig.10 A method performed by a first communication device in any of the embodiments shown.
[0329] For example, when the discard timer corresponding to the first data packet of the communication device 1800 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, where the first indication information is used to indicate that the first data packet is no longer transmitted.
[0330] Optionally, the communication device 1800 may update a first variable of a 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.
[0331] Optionally, the communication device 1800 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 data packets with sequence numbers less than the updated first variable are no longer transmitted.
[0332] 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 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.
[0333] Optionally, the communication device 1800 may update a first variable of a 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 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 data packets with sequence numbers less than the updated first variable are no longer transmitted.
[0335] Optionally, the communication device 1800 may also update the number of retransmissions of the second data packet when the first condition is not met.
[0336] Since the communication device 1800 provided in this embodiment can be a first communication device, and completes the method performed by the first communication device, the technical effects that can be obtained can refer to the above method embodiment, and will not be repeated here.
[0337] 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 aforementioned Figure 4 , Fig. 9 or Fig.10 A method executed by a second communication device in any of the embodiments shown.
[0338] 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; and updates a 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.
[0339] 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 includes ACK information of the first data packet.
[0340] Optionally, when the communication device 1800 sends the second status report to the first communication device when the reassembly timer of the receiving window times out, the communication device 1800 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 has timed out.
[0341] Optionally, the communication device 1800 can also update the third variable when the sequence number of the first data packet is greater than or equal to the third variable, 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, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
[0342] 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 sequence 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 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.
[0343] Optionally, the communication device 1800 can also update the third variable when the sequence number of the first data packet is equal to the third variable, 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, and the third variable is associated with the maximum value of the sequence numbers of the data packets received by the receiving side.
[0344] Since the communication device 1800 provided in this embodiment can be a second communication device, and completes the method performed by the second communication device, the technical effects that can be obtained can refer to the above method embodiment, and will not be repeated here.
[0345] The embodiment of the present application further 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 description in the above-mentioned method embodiments, and will not be described in detail.
[0346] 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 method or steps of the first communication device or the second communication device in each of the above embodiments.
[0347] A computer program product is also provided in an embodiment of the present application, including program instructions, which, when executed on a computer, enable the computer to execute the methods or steps of the first communication device or the second communication device in each of the above embodiments.
[0348] The 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.
[0349] Optionally, the chip system also includes a memory, which is used to store program instructions so that the above-mentioned processor can read and execute them to implement the corresponding method.
[0350] 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.
[0351] Those of ordinary skill 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 to be beyond the scope of this application.
[0352] Those skilled in the art can 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.
[0353] In the several embodiments provided in the present 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 only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, 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.
[0354] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0355] 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.
[0356] 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 of the technical solution of the present application that contributes essentially 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 several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, and other media that can store program codes.
[0357] The above is only a specific implementation of the present application, but the protection scope of the embodiments of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the embodiments of the present application, which should be included in the protection scope of the embodiments of the present application. Therefore, the protection scope of the embodiments of the present application should be based on the protection scope 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
Cited By
Communication method and communication device
CN121486888A
Communication method and apparatus
EP4797782A1