Communication method and communication device

By setting a threshold in the communication device, when the number of discarded PDUs reaches the threshold, the PDU is submitted to the upper layer application in advance, solving the problem of interruption caused by air port instability in communication between the base station and the terminal, and improving the reliability of the communication.

CN119854857APending Publication Date: 2025-04-18HUAWEI TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311350942.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-17
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

During the communication between the base station and the terminal, due to the instability of the air port, the order of the PDUs received by the receiving end may be inconsistent with the order of the sending end, resulting in a flow interruption problem.

Method used

When waiting for the first PDU, if the number of discarded second PDUs reaches the first threshold, the communication device submits a PDU between the first COUNT value and the second COUNT value of the first PDU to the upper layer application.

Benefits of technology

By submitting PDUs in advance, the probability of a risk of flow interruption when waiting for the expected first PDUs is reduced, and the possibility of a large number of PDUs being lost is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119854857A_ABST
    Figure CN119854857A_ABST
Patent Text Reader

Abstract

The invention provides a communication method and a communication device. The communication method comprises the following steps: when waiting for a first PDU, if the number of discarded second PDUs reaches a first threshold value, submitting a PDU of which the COUNT value is between a first COUNT value and a second COUNT value of the first PDU to an upper layer application; the first PDU is a PDU with the minimum COUNT value in PDUs which are not submitted by the communication equipment to the upper layer application, the PDCP serial number of the second PDU is located in a first area, the first area comprises N continuous PDCP serial numbers, the interval between the initial PDCP serial number of the first area and the PDCP serial number of the PDU expected to be received is M PDCP serial numbers, and the initial PDCP serial number of the first area is larger than the PDCP serial number of the PDU expected to be received. According to the technical scheme, the COUNT value of the PDU expected to be submitted to the upper-layer application can be updated without the need of timeout of the reordering timer, so that the risk of flow cutoff can be avoided and reduced, and packet loss is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and more particularly to a communication method and a communication device. Background Technology

[0002] When base stations and terminals communicate, they need to use the Packet Data Convergence Protocol (PDCP). At the PDCP layer, each PDU transmitted between the base station and the terminal corresponds to a unique COUNT value. For the sending end, PDUs are sent to the receiving end in ascending order of COUNT value. For the receiving end, the received PDUs are delivered to the upper-layer application in ascending order of COUNT value to ensure that the order in which the receiving end delivers PDUs to the upper-layer application is consistent with the order in which the sending end sends PDUs.

[0003] However, due to the unstable transmission environment of the air interface, the order of PDUs received by the receiver may differ from the order of PDUs sent by the transmitter. To achieve in-order delivery, current receivers typically maintain a reordering timer. During the process of submitting PDUs to the upper-layer application, the receiver compares RX_DELIV and RX_NEXT. RX_DELIV represents the PDU with the smallest COUNT value among those not yet submitted to the upper-layer application, and RX_NEXT represents the COUNT value of the expected PDU. If RX_NEXT is greater than RX_DELIV, it indicates that an out-of-order PDU has been received. At this point, the submission of PDUs to the upper-layer application is stopped, and the reordering timer is started to wait for the missing PDU. The duration of the reordering timer can be understood as the maximum waiting time for the missing PDU.

[0004] However, analysis revealed that the above-mentioned method for delivering PDUs in sequence at the receiving end may result in a large number of PDUs being lost, leading to a flow interruption problem. Summary of the Invention

[0005] This application provides a communication method to reduce the interruption problem that occurs during the delivery of PDUs to upper-layer applications.

[0006] In a first aspect, this application provides a communication method applied to a communication device, comprising: while waiting for a first PDU, if the number of discarded second PDUs reaches a first threshold, submitting a PDU with a COUNT value between the first COUNT value and the second COUNT value of the first PDU to an upper-layer application; wherein, the first PDU is the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper-layer application, the Packet Data Convergence Protocol (PDCP) sequence number of the second PDU is located in a first region, the first region includes N consecutive PDCP sequence numbers, the starting PDCP sequence number of the first region is spaced M PDCP sequence numbers apart from the PDCP sequence number of the expected PDU to be received, and the starting PDCP sequence number of the first region is greater than the PDCP sequence number of the expected PDU to be received, the second COUNT value is greater than the COUNT value of the first PDU, and N is a positive integer.

[0007] In this embodiment, the first PDU with the smallest corresponding COUNT value among the PDUs that the communication device has not yet submitted to the upper-layer application is also called the first PDU that is expected to be submitted to the upper-layer application.

[0008] For example, the COUNT value of the first PDU that the communication device expects to submit to the upper-layer application is RX_DELIV, and the COUNT value of the PDU that the communication device expects to receive is RX_NEXT.

[0009] In this embodiment, while the communication device is waiting for the first PDU to be delivered to the upper layer application, the communication device compares the number of discarded second PDUs with a first threshold.

[0010] Specifically, in this embodiment, the PDCP sequence number of the second PDU is located in the first region, which includes N consecutive PDCP sequence numbers. In other words, in this embodiment, when the communication device is waiting for the first PDU to be delivered to the upper-layer application, if the PDU whose PDCP sequence number falls in the first region and is discarded, it can be considered as the second PDU described in this application. More specifically, the interval between the starting PDCP sequence number of the first region and the PDCP sequence number of the expected PDU is M times the interval of the first PDCP sequence number, and the starting PDCP sequence number of the first region is greater than the PDCP sequence number of the expected PDU (when the PDCP sequence numbers are arranged in ascending order, the starting PDCP sequence number of the first region is located after the PDCP sequence number of the expected PDU).

[0011] In other words, in this embodiment, a first region is set after the SN corresponding to the expected PDU, using the expected PDU as a reference. It should be understood that when the expected PDU changes, the PDCP sequence number included in this first region will also change.

[0012] Because the COUNT value of the PDU that the communication device can cache needs to be located in [RX_DELIV, N_size indicates the bit length of SN, that is, the maximum value of RX_NEXT is... Therefore, as RX_NEXT changes and becomes larger, the number of second PDUs falling into the first region and being dropped will increase, potentially causing significant packet loss and leading to a risk of data interruption. In other words, the more second PDUs falling into the first region and being dropped, the larger RX_NEXT becomes, and the greater the probability of data interruption.

[0013] Therefore, in this embodiment, while waiting for the first PDU, if it is determined that the number of discarded second PDUs reaches a first threshold, the communication device submits a PDU with a COUNT value between the first and second COUNT values ​​of the first PDU to the upper-layer application, wherein the second COUNT value is greater than the COUNT value of the first PDU. In other words, in this embodiment, when it is determined that the PDCP sequence number falls into the first region and the number of discarded PDUs reaches the first threshold, it is determined that there is a possibility of a connection interruption. At this time, it no longer waits for the first PDU, but directly submits a PDU with a COUNT value between the first and second COUNT values ​​to the upper-layer application.

[0014] It should be understood that after the communication device submits a PDU with a COUNT value between the first and second COUNT values ​​to the upper-layer application, the COUNT value of the PDU expected to be submitted to the upper-layer application is updated (the updated COUNT value of the PDU expected to be submitted to the upper-layer application is greater than the original COUNT value). Accordingly, PDUs that might have been discarded before the RX_DELIV update may not be discarded after the RX_DELIV update. Therefore, this method can reduce the probability of interruption while waiting for the first expected PDU, thereby reducing the probability of a large number of PDUs being lost.

[0015] In conjunction with the first aspect, in one possible implementation, the method further includes: obtaining the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU; if the number of discarded second PDUs reaches a first threshold, submitting PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper layer application, including: if the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU is greater than a third threshold, and if the number of discarded second PDUs reaches the first threshold, submitting PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper layer application.

[0016] In this implementation, the communication device considers not only the number of discarded second PDUs, but also the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU. Based on the number of discarded second PDUs and the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU, it can jointly determine whether there is a risk of disconnection, thereby improving the accuracy of determining the risk of disconnection.

[0017] In conjunction with the first aspect, in one possible implementation, the method further includes: while waiting for a first PDU to be submitted to an upper-layer application, obtaining the waiting time of the first PDU that has been waited for; if the number of discarded second PDUs reaches a first threshold, submitting PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper-layer application, including: if the waiting time of the first PDU that has been waited for is greater than a fourth threshold, and if the number of discarded second PDUs reaches the first threshold, submitting PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper-layer application.

[0018] In the method provided by this implementation, the communication device considers not only the number of discarded second PDUs, but also the waiting time of the first PDUs that have been waited for. Based on the number of discarded second PDUs, the COUNT value of the expected PDUs, and the waiting time of the first PDUs that have been waited for, it jointly determines whether there is a risk of disconnection, thereby improving the accuracy of determining the risk of disconnection.

[0019] In conjunction with the first aspect, in one possible implementation, the method further includes: if the COUNT value of the expected received PDU increases, updating the number of discarded second PDUs to 0.

[0020] In conjunction with the first aspect, in one possible implementation, when the COUNT value of the expected received PDU remains unchanged for a certain period of time, the PDCP sequence number of the expected received PDU is spaced apart by K adjacent PDCP sequence numbers from the upper boundary PDCP sequence number, where K is a positive integer; wherein, the difference between the upper boundary PDCP sequence number and the PDCP sequence number of the first PDU is... N_size indicates the bit length of SN.

[0021] Secondly, this application provides a communication device, comprising: a processing module, configured to, while waiting for a first protocol data unit (PDU), if the number of discarded second PDUs reaches a first threshold, submit a PDU with a COUNT value between the first COUNT value and the second COUNT value of the first PDU to an upper-layer application; wherein, the first PDU is the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper-layer application, the Packet Data Convergence Protocol (PDCP) sequence number of the second PDU is located in a first region, the first region includes N consecutive PDCP sequence numbers, the starting PDCP sequence number of the first region is spaced M PDCP sequence numbers apart from the PDCP sequence number of the expected PDU to be received, and the starting PDCP sequence number of the first region is greater than the PDCP sequence number of the expected PDU to be received, the second COUNT value is greater than the COUNT value of the first PDU, and M and N are positive integers.

[0022] In conjunction with the second aspect, in one possible implementation, the apparatus further includes an acquisition module; the acquisition module is configured to acquire the difference between the COUNT value of the expected PDU and the COUNT value of the first PDU; the processing module is further configured to: if the difference between the COUNT value of the expected PDU and the COUNT value of the first PDU is greater than a third threshold, and if the number of discarded second PDUs reaches a first threshold, submit PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper layer application.

[0023] In conjunction with the second aspect, in one possible implementation, the apparatus further includes an acquisition module; the acquisition module is configured to acquire the waiting time of the first PDU that has been waited for while waiting for the first PDU to be submitted to the upper-layer application; the processing module is further configured to: if the waiting time of the first PDU that has been waited for is greater than a fourth threshold, and if the number of discarded second PDUs reaches a first threshold, submit a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU to the upper-layer application.

[0024] In conjunction with the second aspect, in one possible implementation, the processing module is further configured to: if the COUNT value of the expected received PDU increases, update the number of discarded second PDUs to 0.

[0025] In conjunction with the second aspect, in one possible implementation, when the COUNT value of the expected received PDU remains unchanged for a certain period of time, the PDCP sequence number of the expected received PDU is spaced apart from the upper boundary PDCP sequence number by K adjacent PDCP sequence numbers, where K is a positive integer; wherein, the difference between the upper boundary PDCP sequence number and the PDCP sequence number of the first PDU is... N_size indicates the bit length of SN.

[0026] Thirdly, this application provides a communication method applied to a communication device, comprising: while waiting for a first protocol data unit (PDU), if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number that the communication device expects to receive, submitting the second PDU and the received third PDU to an upper-layer application;

[0027] The first PDU is the PDU with the smallest COUNT value in the PDCP layer among the PDUs that the communication device has not yet submitted to the upper layer application, and the third PDU has a COUNT value in the PDCP layer that is smaller than the COUNT value of the second PDU.

[0028] In conjunction with the third aspect, in one possible implementation, if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number that the communication device expects to receive, the second PDU and the received third PDU are submitted to the upper-layer application, including:

[0029] If the difference between the COUNT value of the PDU expected to be received by the PDCP layer and the COUNT value of the first PDU is greater than the first threshold, and if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number expected to be received by the communication device, the second PDU and the received third PDU are submitted to the upper layer application.

[0030] Fourthly, this application provides a communication device, including a processing module, which, while waiting for a first protocol data unit (PDU), if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number that the communication device expects to receive, submits the second PDU and the received third PDU to an upper-layer application.

[0031] The first PDU is the PDU with the smallest COUNT value in the PDCP layer among the PDUs that the communication device has not yet submitted to the upper layer application, and the third PDU has a COUNT value in the PDCP layer that is smaller than the COUNT value of the second PDU.

[0032] In conjunction with the fourth aspect, in one possible implementation, the processing module is further configured to: if the difference between the COUNT value of the PDU expected to be received by the PDCP layer and the COUNT value of the first PDU is greater than a first threshold, and if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number expected to be received by the communication device, submit the second PDU and the received third PDU to the upper layer application.

[0033] Fifthly, this application provides a communication device, comprising: a processor, the processor being configured to, by executing a computer program and / or by logic circuitry, cause the communication device to implement the method described in the first aspect or the third aspect or any possible implementation thereof.

[0034] In a sixth aspect, this application provides a communication system, including the communication apparatus as described in the second or fourth aspect.

[0035] In a seventh aspect, this application provides a chip including at least one processor and a communication interface, the communication interface and at least one processor being interconnected via a line, the at least one processor being used to run computer programs or instructions to perform the communication method as described in the first aspect or the fourth aspect or any of the possible implementations thereof.

[0036] Eighthly, this application provides a computer-readable medium storing program code for computer execution, the program code including instructions for performing the methods described in the first aspect or the fourth aspect or any of the possible implementations thereof.

[0037] Ninthly, this application provides a computer program product including computer program code that, when executed on a computer, causes the computer to implement the communication method as described in the first aspect or the fourth aspect or any of the possible implementations thereof. Attached Figure Description

[0038] Figure 1 This is a structural schematic diagram of the communication system applicable to this application;

[0039] Figure 2 This is a schematic diagram of a user plane protocol stack used for communication between a sender and a receiver.

[0040] Figure 3 This diagram illustrates the processing of IP packets by the sending end when communicating based on the user plane protocol stack.

[0041] Figure 4 A schematic diagram of a COUNT;

[0042] Figure 5A schematic diagram illustrating the process of sending a PDU to the sending end;

[0043] Figure 6 This is a schematic diagram of the process when the receiving end delivers data in sequence based on the reordering timer.

[0044] Figure 7 A schematic diagram of the discarded PDUs determined by the calculation formula based on HFN;

[0045] Figure 8 This is a flowchart illustrating a communication method proposed in one embodiment of this application;

[0046] Figure 9 This is an example of determining the risk of flow interruption based on a first region, as proposed in this application.

[0047] Figure 10 This is another example of determining the risk of flow interruption based on the first region proposed in this application;

[0048] Figure 11 This is another example of determining the risk of flow interruption based on the first region proposed in this application;

[0049] Figure 12 A schematic diagram showing that multiple PDUs with SN located in the first region and following the SN corresponding to RX_DELIV+window_size were received in advance;

[0050] Figure 13 This is a structural schematic diagram of a communication device provided in one embodiment of this application;

[0051] Figure 14 This is a structural schematic diagram of a communication device provided for another embodiment of this application. Detailed Implementation

[0052] To facilitate a clear description of the technical solutions in the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with essentially the same function and effect. For example, "first information" and "second information" are used to distinguish different information and do not limit their order. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different.

[0053] It should be noted that, in this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of words such as "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0054] This application provides a communication method and apparatus. The method and apparatus are based on the same technical concept. Since the methods and apparatus solve problems in similar ways, the implementation of the apparatus and method can refer to each other, and repeated parts will not be described again.

[0055] The embodiments of this application will now be described in detail with reference to the accompanying drawings.

[0056] First, combined Figure 1 This describes a communication system applicable to embodiments of this application. Figure 1 A schematic diagram of a suitable communication system applicable to embodiments of this application is shown, such as... Figure 1 As shown, the communication system includes network device 101 and terminal device 102.

[0057] Among them, network device 101 can be any device with wireless transceiver function. This equipment includes, but is not limited to: evolved NodeB (eNB or eNodeB), radio network controller (RNC), Node B (NB), base station controller (BSC), base transceiver station (BTS), home base station (e.g., homeevolved NodeB, or homeNode B, HNB), base band unit (BBU), access point (AP), wireless relay node, wireless backhaul node, transmission point (TP), or transmission and reception point (TRP) in a wireless fidelity (WIFI) system. It can also be a gNB in ​​a 5G system, such as NR, or a transmission point (TRP or TP), one or a group of antenna panels (including multiple antenna panels) of a base station in a 5G system, or a network node constituting a gNB or transmission point, such as a base band unit (BBU) or a distributed unit (DU).

[0058] In some deployments, a gNB may include a centralized unit (CU) and a distribution unit (DU). A gNB may also include a radio unit (RU). The CU implements some of the gNB's functions, and the DU implements others. For example, the CU implements radio resource control (RRC) and packet data convergence protocol (PDCP) layer functions, while the DU implements radio link control (RLC), media access control (MAC), and physical (PHY) layer functions. Since RRC layer information ultimately becomes physical layer information, or is derived from physical layer information, in this architecture, higher-layer signaling, such as RRC layer signaling, can be considered to be sent by the DU, or by the DU+CU. It is understood that network devices can be CU nodes, DU nodes, or devices including both CU and DU nodes. Furthermore, the CU can be classified as a network device in the radio access network (RAN) or as a network device in the core network (CN), and this application does not limit this.

[0059] Terminal equipment 102 can be a device that provides voice and / or data connectivity to a user, such as a handheld device or vehicle-mounted device with wireless connectivity. Terminal equipment can also be referred to as user equipment (UE), access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile equipment, user terminal, wireless telecom equipment, user agent, user equipment, or user device. The terminal device can be a station (STA) in a wireless local area network (WLAN), a cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA) device, handheld device with wireless communication capabilities, computing device or other processing device connected to a wireless modem, in-vehicle device, wearable device, and a terminal in a next-generation communication system (e.g., fifth-generation (5G) communication network) or a terminal device in a future evolved public land mobile network (PLMN) network. 5G can also be referred to as New Radio (NR). In one possible application scenario of this application, the terminal device can also be a terminal device that frequently operates on the ground, such as an in-vehicle device. In this application, for ease of description, the chip deployed in the above-mentioned device, or the chip itself, can also be referred to as the terminal device.

[0060] In this application, network devices and terminal devices can communicate using licensed spectrum, unlicensed spectrum, or both simultaneously. They can communicate using spectrum below 6 GHz, spectrum above 6 GHz, or both simultaneously. This application does not limit the spectrum resources used between network devices and terminal devices.

[0061] Understandable, Figure 1 The number of terminal devices shown is merely an example, and the specific number of terminal devices does not constitute a limitation of this application.

[0062] It should be noted that in this embodiment, the terminal device or network device includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on top of the operating system layer. The hardware layer includes hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also called main memory). The operating system can be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer includes applications such as browsers, address books, word processing software, and instant messaging software. Furthermore, this embodiment does not specifically limit the structure of the execution entity of the method provided in this embodiment, as long as it can communicate according to the method provided in this embodiment by running a program that records the code of the method provided in this embodiment. For example, the execution entity of the method provided in this embodiment can be a terminal device or a network device, or a functional module in the terminal device or network device capable of calling and executing a program.

[0063] Furthermore, the methods of various aspects of this application can be implemented programmatically and form a computer program accessible to a computer-readable device, carrier, or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, or magnetic tapes), optical discs (e.g., compact discs (CDs), digital versatile discs (DVDs), etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memory (EPROMs), cards, sticks, or key drives, etc.). Additionally, the various storage media described herein may represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing, and / or carrying instructions and / or data.

[0064] exist Figure 1 In the communication system shown, communication between network devices and terminal devices is based on the user plane protocol stack of the communication system. For example, a user plane protocol stack is as follows: Figure 2 As shown, from top to bottom, they include the Service Data Adaptation Protocol (SDAP), Packet Data Convergence Protocol (PDCP), Radio Link Control (RLC), Medium Access Control (MAC), and Physical Layer (PHY).

[0065] Specifically, when network devices are based on Figure 2 When the user plane protocol stack shown communicates, for the sending end, when it wants to send a packet of an internet protocol (IP) that interconnects networks to the receiving end, such as... Figure 3 As shown, the sending end adds SDAP header data to the IP packet to be sent through the SDAP layer, PDCP header data through the PDCP layer, and RLC header data through the RLC layer, generating a MAC layer SDU (also known as a MAC SDU). Then, the MAC layer further encapsulates multiple MAC SDUs and assembles them into a transport block (TB) for transmission over the air interface. Figure 3In this context, H represents the header of each protocol layer (the header data used during encapsulation by each protocol layer). Accordingly, for the receiving end, it is necessary to first parse the MAC SDU from the TB block, and then sequentially parse it through the MAC layer, RLC layer, PDCP layer, and SDAP layer to obtain the IP packet sent by the sending end.

[0066] In the above process, the data obtained after adding header data at each protocol layer is also called a protocol data unit (PDU).

[0067] In some embodiments, the transmitting end is a base station and the receiving end is a terminal device.

[0068] In other embodiments, the transmitting end is a terminal device and the receiving end is a base station.

[0069] Currently, when base stations and terminal devices communicate at the PDCP layer based on the PDCP protocol, each PDU in the PDCP layer corresponds to a unique COUNT value. For example, Figure 4 As shown, the COUNT value consists of the hyperframe number (HFN) and the serial number (SN) of the PDCP layer. In some embodiments, the COUNT value is 32 bits.

[0070] Specifically, each HFN can include 2SN_size SNs, and the SNs in an HFN start from 0 and increment until they reach the maximum value of 2SN_size-1. Here, SN_size represents the bit length (or number of bits) of the SN, which is configurable.

[0071] It should be noted that this embodiment does not limit the specific value of SN_size, for example, it can be configured as 6bit / 12bit / 18bit. It should be understood that when SN is 6bit, one HFN can include 63 SNs, and the value of SN ranges from 0 to 63. When SN is 12bit, one HFN can include 4095 SNs, and the value of SN ranges from 0 to 4095.

[0072] For the sending end, PDUs will be sent in ascending order of COUNT value.

[0073] For example, when the bit length of SN is 3, the value range of SN is 0 to 7. Assuming the COUNT value of the PDU is represented as COUNT = [HFN, SN], then... Figure 5As shown, when the sending end transmits data, it will transmit data in the following order according to COUNT: COUNT=[0,0], COUNT=[0,1], COUNT=[0,2], COUNT=[0,3], COUNT=[0,4], COUNT=[0,5], COUNT=[0,6], COUNT=[0,7], COUNT=[1,0], COUNT=[1,1], COUNT=[1,2], COUNT=[1,3], COUNT=[1,4], COUNT=[1,5], COUNT=[1,6], COUNT=[1,7], and so on.

[0074] It should be understood that although the SN will flip, the COUNT value will not flip due to the existence of HFN. Therefore, a COUNT value can be used to uniquely correspond to / identify a PDU. For example, Figure 5 As shown, for a PDU with both SN and SN being 6, if HFN = 0, then COUNT = [0, 6], if HFN = 1, then COUNT = [1, 6], and if HFN = 2, then COUNT = [2, 6].

[0075] It should be understood that when base stations and terminal devices communicate at the PDCP layer based on the PDCP protocol, if the sending end sends PDUs in ascending order of COUNT value, the receiving end should also deliver the received PDUs to the upper-layer application in ascending order of COUNT value to ensure that the order in which the receiving end delivers PDUs to the upper-layer application is consistent with the order in which the sending end sends PDUs.

[0076] For example, when the sending end follows Figure 5When sending PDUs, the following sequences are shown: COUNT=[0,0], COUNT=[0,1], COUNT=[0,2], COUNT=[0,3], COUNT=[0,4], COUNT=[0,5], COUNT=[0,6], COUNT=[0,7], COUNT=[1,0], COUNT=[1,1], COUNT=[1,2], COUNT=[1,3], COUNT=[1,4], COUNT=[1,5], COUNT=[1,6], COUNT=[1,7], and so on. For the receiving end, to ensure that the order in which PDUs are submitted to the upper-layer application is consistent with the order in which the sending end sends PDUs, the COUNT values ​​of the PDUs submitted to the upper-layer application should be as follows: COUNT=[0,0], COUNT=[0,1], COUNT=[0,2], COUNT=[0,3], COUNT=[0,4], COUNT=[0,5], COUNT=[0,6], COUNT=[0,7], COUNT=[1,0], COUNT=[1,1], COUNT=[1,2], COUNT=[1,3], COUNT=[1,4], COUNT=[1,5], COUNT=[1,6], COUNT=[1,7], and so on.

[0077] However, due to the unstable transmission environment of the air interface, the order of PDUs received by the receiver may differ from the order of PDUs sent by the sender. Considering this, one current approach is to maintain a reordering timer at the receiver to achieve in-order delivery. The following section will discuss this further. Figure 6 This diagram illustrates the process by which the receiving end uses a reordering timer to deliver data in sequence.

[0078] Before introducing sequential delivery via reordering timers, let's first introduce a few concepts in this field.

[0079] RCVD_COUNT: Represents the COUNT value of the currently received PDU.

[0080] RX_DELIV: Represents the COUNT value of the PDU expected to be delivered (or to be delivered) to the upper-layer application. The PDU expected to be delivered to the upper-layer application refers to the PDU with the smallest corresponding COUNT value that has not yet been delivered to the upper-layer application and is still waiting to be received. The initial value of RX_DELIV is 0.

[0081] RX_NEXT: Represents the expected COUNT value of the PDU to be received, with an initial value of 0. After the receiving end receives a PDU, if the COUNT of the received PDU is greater than or equal to RX_NEXT, that is, if RCVD_COUNT is greater than or equal to RX_NEXT, then RX_NEXT is updated to RCVD_COUNT + 1.

[0082] RX_REORD: Represents the COUNT value of the PDU that triggered the reordering timer.

[0083] Specifically, the receiving end performs the in-order delivery process based on the reordering timer as follows: Figure 6 As shown below: The receiving end compares the COUNT value of the PDU currently expected to be received with the COUNT value of the PDU expected to be delivered to the upper-layer application, that is, comparing RX_NEXT with RX_DELIV. If RX_NEXT equals RX_DELIV, it means that the receiving end received the PDU in order, and in this case, the reordering timer is not started, and the PDUs are delivered to the upper-layer application in the order they were received. However, if RX_NEXT is greater than RX_DELIV, it means that the receiving end received the PDUs out of order (the PDUs with larger COUNT values ​​have arrived, but the PDUs with smaller COUNT values ​​have not yet arrived). In this case, the delivery of PDUs to the upper-layer application is paused, the reordering timer is started, and RX_REORD = RX_NEXT is set to wait for the missing PDU. The duration of the reordering timer can be understood as the maximum duration for waiting for the missing PDU. In this scenario, if all missing PDUs arrive before the reordering timer expires, the entire set of arriving PDUs is delivered to the upper-layer application, RX_DELIV is updated, and the reordering timer is stopped. However, if the reordering timer has expired, regardless of whether all missing PDUs have arrived, the received missing PDUs are delivered to the upper-layer application, and RX_DELIV is updated to RX_REORD or the COUNT value of the first unreceived PDU thereafter.

[0084] However, analysis revealed that the above-mentioned method for delivering PDUs in order at the receiving end may result in a large number of PDUs being lost.

[0085] Specifically, the reasons for the large number of PDUs being lost are as follows:

[0086] The sending end does not directly transmit the COUNT value in the PDU it sends; instead, it only carries the assigned SN. Therefore, the receiving end needs to first calculate the HFN based on predefined rules, and then combine the calculated HFN with the SN included in the PDU to obtain the COUNT value of the received PDU.

[0087] Currently, one method for determining the HFN is as follows: if the SN of the received PDU is greater than or equal to the sum of the SN of the PDU expected to be delivered to the upper-layer application and the window_size, the HFN of the received PDU is determined to be the HFN of the PDU expected to be delivered to the upper-layer application minus 1, where the size of window_size is... That is, half of the range of SN values, also known as half window; if the SN of the received PDU is less than the difference between the SN of the PDU expected to be submitted to the upper layer and window_size, the HFN of the received PDU is determined to be the HFN+1 of the PDU expected to be submitted to the upper layer application; if neither of the above two cases applies, the HFN of the received PDU is determined to be the same as the HFN of the PDU expected to be submitted to the upper layer.

[0088] In this application, the SN of the PDU expected to be submitted to the upper layer application is represented as SN(RX_DELIV).

[0089] It should be understood that when determining the HFN of the received PDU in the above manner, assuming that the HFN of the PDU expected to be delivered to the upper-layer application is equal to x, and that:

[0090] When SN(RX_DELIV) is located Previously, such as Figure 7 As shown in (a), for a PDU whose received SN is located within 0 to SN(RX_DELIV)-1, the HFN determined by the receiver is x; for a PDU whose received SN is located within... The PDU inside the receiver has an HFN determined by the receiver as x-1;

[0091] When SN(RX_DELIV) is located Afterwards, such as Figure 7 As shown in (b), for a PDU whose SN is located within 0 to SN(RX_DELIV)-window_size-1, the HFN determined by the receiver is x+1; for a PDU whose SN is located within SN(RX_DELIV)-window_size to SN(RX_DELIV)-1, the HFN determined by the receiver is x.

[0092] Because the protocol stipulates that PDUs with a received COUNT value less than RX_DELIV should be discarded, therefore:

[0093] When SN(RX_DELIV) is located Previously, for SN located between 0 and SN(RX_DELIV)-1, and SN The PDU inside will be discarded by the receiving end.

[0094] Additionally, it is understandable that if the COUNT value of the PDU expected to be delivered to the upper-layer application remains unchanged, and the sending end continues to send PDUs, it will cause the SN to flip.

[0095] If the flipped SN falls between SN(RX_DELIV) and SN(RX_DELIV) + window_size, the sender calculates HFN = x + 1, while the receiver thinks HFN = x. This will also cause decryption failure and ultimately lead to packet loss.

[0096] When SN(RX_DELIV) is located at Subsequently, PDUs within the range of SN(RX_DELIV)-window_size to SN(RX_DELIV)-1 will be discarded by the receiving end.

[0097] In other words, the receiving end can buffer at most... A maximum of half a window's worth of PDUs can be cached, and the COUNT value of the cacheable PDUs must be within the range of RX_DELIV to RX_DELIV + window_size; otherwise, they will be discarded.

[0098] For example, assuming the bit length of SN is 3, the value range of SN is 0 to 7. If the HFN of the PDU to be delivered to the upper layer application is 1 and the SN is 1, then the receiving end can buffer the PDUs with SNs of 1, 2, 3, and 4, while the receiving end will discard the PDUs with SNs of 0, 5, 6, and 7.

[0099] As mentioned earlier, when delivery is based on a reordering timer, if the receiving end receives PDUs out of order, it will start a reordering timer to wait for the missing PDUs. It should be understood that in this situation, if the missing PDUs do not arrive, the receiving end will only stop waiting after the reordering timer expires. At this point, there is a possibility of a large influx of PDUs (e.g., the sending end is sending PDUs at a slightly higher rate). However, since the receiving end can only buffer half a window of PDUs, many of the subsequently arriving PDUs will be discarded, leading to a risk of service interruption.

[0100] For example, in one scenario where the sending end experiences a missing SN (also known as an SN GAP scenario), for instance, if the sending end also has a timer configured, and a PDU fails to be scheduled for a long time within the set timer duration (e.g., during network congestion), the sending end may discard the PDU that has been assigned a PDCP SN. In this case, for the receiving end, if the PDU that is expected to be delivered is the PDU discarded by the sending end, the receiving end can only wait until the reordering timer expires before it stops waiting for the PDU discarded by the sending end, which may lead to a risk of network outage.

[0101] For example, in a scenario where there is a SN gap at the sending end, such as a reordering timer configured for 200 milliseconds (ms), if the receiver expects a PDU with a SN corresponding to a missing SN, the receiver will wait for 200ms. When the SN is configured to 12 bits, the reordering window can buffer a maximum of 2048 PDUs, and even a slightly higher sending rate can lead to a risk of data loss. It should be understood that the more SN gaps there are, the more frequently the reordering timer will be restarted, and the greater the probability of data loss.

[0102] To address the potential risk of data interruption, one solution is to increase the bit length of SN_size. The principle is that a larger SN_size provides stronger resistance to PDCP SN gaps, thus reducing the probability of data interruption. Another solution is to shorten the duration of the reordering timer.

[0103] However, for the first scheme, for low-cost receivers, in order to save costs, it may not support the configuration of a larger SN_size bit length.

[0104] The second approach, however, shortening the reordering timer duration, can lead to the dropping of packets that could otherwise be received. For example, in one instance, when T is short (e.g., T = 10 milliseconds), the receiver, upon encountering an out-of-order PDU, only has 10ms to wait for the missing PDU. Therefore, the receiver might stop waiting before all the missing PDUs arrive. Subsequently, when the missing PDUs do arrive, they will be dropped by the terminal at the PDCP layer, resulting in a high packet loss rate.

[0105] In view of this, this application proposes a communication method to reduce the problem of a large number of PDUs being lost during the process of delivering PDUs to upper-layer applications.

[0106] Figure 8 This is a flowchart illustrating a communication method provided in one embodiment of this application. The method can be executed by a communication device.

[0107] Specifically, the communication device refers to the receiving end that sends PDUs to the sending end of the two communicating parties based on the PDCP protocol and needs to deliver the PDUs to the upper layer application in sequence.

[0108] like Figure 8 As shown, the communication method includes:

[0109] S801, while waiting for the first PDU, determines whether the number of discarded second PDUs has reached the first threshold.

[0110] In this embodiment, the first PDU refers to the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper-layer application and is waiting to be received. It should be understood that the COUNT value of the first PDU is RX_DELIV.

[0111] In this embodiment, the second PDU refers to a PDU whose PDCP sequence number is located in the first region and has been discarded. In other words, in this embodiment, when the communication device is waiting for the first PDU to be delivered to the upper-layer application, if it receives a PDU whose PDCP sequence number falls in the first region and has been discarded, it can be considered as the second PDU described in this application.

[0112] Specifically, in this embodiment, the first region satisfies:

[0113] 1) Includes N consecutive PDCP sequence numbers;

[0114] 2) The starting PDCP sequence number of the first region is M PDCP sequence numbers apart from the PDCP sequence number of the expected PDU, and the starting PDCP sequence number of the first region is greater than the PDCP sequence number of the expected PDU. The COUNT value of the expected PDU is RX_NEXT.

[0115] In some embodiments, M is 0, meaning that the starting PDCP sequence number of the first region is consecutive to the PDCP sequence number of the PDU to be received. Or, in other words, the starting PDCP sequence number of the first region is the next PDCP sequence number after the PDCP sequence number of the PDU to be received.

[0116] In other words, when the PDCP serial numbers are arranged in ascending order, the starting PDCP serial number of the first region in this embodiment is located after the PDCP serial number corresponding to RX_NEXT. Or, in other words, in this embodiment, the first region is formed by the N consecutive PDCP serial numbers located after the SN corresponding to RX_NEXT.

[0117] As mentioned earlier, when receiving a PDU, the communication device can only buffer it at most. There are one PDU, and the COUNT value of the PDUs that can be cached must be within the range of RX_DELIV to RX_DELIV + window_size. That is, while the communication device is waiting for the first PDU, the maximum value of RX_NEXT corresponding to the PDU that the communication device expects to receive is RX_DELIV + window_size. PDUs whose COUNT value is not within the range of RX_DELIV to RX_DELIV + window_size will be discarded.

[0118] It should be understood that as RX_NEXT changes and becomes larger, the difference between RX_NEXT and RX_DELIV becomes larger and larger. This results in an increasing number of second PDUs falling into the first region and being dropped, which may cause a large number of packet losses and lead to the risk of data interruption.

[0119] For example, taking the case where the PDCP sequence number corresponding to RX_DELIV is located on the left half of an HFN, and the HFN corresponding to RX_DELIV is x, as an example... Figure 9 As shown, when the SN corresponding to RX_NEXT is Figure 9 When the location shown in (a) is reached, if the communication device receives a PDU with the SN located in the first area, the received PDU will not be discarded. However, if the SN corresponding to RX_NEXT is... Figure 9 When the position shown in (b) is reached, a portion will be discarded. Furthermore, when the SN corresponding to RX_NEXT is... Figure 9 In the position shown in (c), if the SN received by the communication device is located in the first region, it will be discarded. That is, as RX_NEXT increases, the probability of the PDU with the SN falling into the first region being discarded also increases.

[0120] For example, consider a scenario where the PDCP sequence number corresponding to RX_DELIV is located on the right half of an HFN, and the HFN corresponding to RX_DELIV is x. Figure 10 As shown, when the SN corresponding to RX_NEXT is Figure 10 When the location shown in (a) is reached, if the communication device receives a PDU with the SN located in the first area, the received PDU will not be discarded. However, if the SN corresponding to RX_NEXT is... Figure 10 When the position shown in (b) is reached, a portion will be discarded. Furthermore, when the SN corresponding to RX_NEXT is... Figure 10 In the position shown in (c), if the SN received by the communication device is located in the danger zone, all of them will be discarded. Similarly, as RX_NEXT increases, the probability of the PDU with the SN falling into the first zone being discarded also increases.

[0121] Therefore, it's understandable that the more PDUs the SN falls into in the first region and are dropped, the larger the difference between RX_NEXT and RX_DELIV becomes, and the greater the probability of a flow interruption. For example, if none of the PDUs the SN falls into in the first region are dropped, it means the difference between RX_NEXT and RX_DELIV is still small, and the probability of a flow interruption is low. However, if only a small portion of the PDUs the SN falls into in the first region are dropped, it means the difference between RX_NEXT and RX_DELIV may be relatively large, and the probability of a flow interruption is relatively high. If all the PDUs the SN falls into in the first region are dropped, it means the difference between RX_NEXT and RX_DELIV is approaching or exceeding window_size, and RX_NEXT may no longer be able to change, making the probability of a flow interruption even greater.

[0122] Therefore, in this embodiment, the number of PDUs (i.e., second PDUs) that fall into the first area and are discarded by the communication device will be counted, and a first threshold will be set. The number of discarded second PDUs will be compared with the first threshold to determine whether there is a risk of disconnection.

[0123] It should be noted that this embodiment does not impose restrictions on how the communication device is triggered to start counting the number of second PDUs. For example, in one implementation, packet loss counting is initiated as soon as the SN of a PDU falls into the first area and is dropped.

[0124] S902, if the number of discarded second PDUs reaches the first threshold, submit PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDUs to the upper layer application.

[0125] The second COUNT value is greater than the first COUNT value.

[0126] In other words, in this embodiment, when it is determined that the PDCP sequence number falls into the first region and the number of discarded PDUs reaches the first threshold, it is determined that there is a possibility of a flow interruption. At this time, it no longer waits for the first PDU, but directly submits the PDU with the COUNT value between the first COUNT value and the second COUNT value to the upper layer application.

[0127] It should be understood that after a communication device submits a PDU with a COUNT value between the first and second COUNT values ​​to an upper-layer application, the COUNT value of the PDU submitted to the upper-layer application is expected to be updated, for example, as follows. Figure 9 (d) and Figure 10(d) In this method, the COUNT value of the PDU expected to be submitted to the upper-layer application after the update is greater than the COUNT value of the PDU expected to be submitted to the upper-layer application before the update. Accordingly, PDUs that might have been discarded before the RX_DELIV update may not be discarded after the RX_DELIV update. Therefore, this method can reduce the probability of flow interruption when waiting for the first expected PDU, thereby reducing the probability of a large number of PDUs being lost.

[0128] It should be noted that this embodiment does not impose any restrictions on the specific value of RX_DELIV after the update. For example, the difference between the updated RX_DELIV and the original RX_DELIV can be set to... or wait.

[0129] Furthermore, in Figure 9 Based on the illustrated embodiment, after submitting a PDU with a COUNT value between the first COUNT value and the second COUNT value of the first PDU to the upper layer application, if the COUNT value of the expected received PDU increases, that is, RX_NEXT starts to move again, it indicates that the risk of disconnection has been mitigated. At this time, the number of discarded second PDUs is updated to 0.

[0130] Optional, due to Figure 9 When the communication device shown receives a PDU sent by the transmitting end, a SN gap scenario may occur for the transmitting end, meaning the transmitting end discards a PDU with a certain SN. In this case, if the SN of the discarded PDU is very close to the SN corresponding to RX_DELIV + window_size, then it is possible that RX_NEXT does not change for a period of time, but RX_NEXT is not equal to RX_DELIV + window_size, instead having a gap between it and RX_DELIV + window_size. Alternatively, from the perspective of the SN: RX_NEXT does not change for a period of time, but the SN corresponding to RX_NEXT is not equal to the SN corresponding to RX_DELIV + window_size.

[0131] In this application, the SN corresponding to RX_DELIV+window_size is also referred to as the upper boundary PDCP sequence number. For example, when RX_NEXT does not change within a certain period of time, the SN corresponding to RX_NEXT is spaced apart by K adjacent PDCP sequence numbers with respect to the upper boundary PDCP sequence number. That is, the PDCP sequence number of the expected received PDU is spaced apart by K adjacent PDCP sequence numbers with respect to the upper boundary PDCP sequence number, where K is a positive integer.

[0132] As an optional embodiment, the difference between RX_NEXT and RX_DELIV can also be obtained. Then, if the difference between the COUNT value of the expected PDU and the COUNT value of the first PDU is greater than the third threshold, and the number of discarded second PDUs has reached the first threshold, then PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU are submitted to the upper layer application.

[0133] In this embodiment, when submitting PDUs with COUNT values ​​between the first and second COUNT values ​​of the first PDU to the upper-layer application, in addition to satisfying that the number of discarded second PDUs has reached a first threshold, it is also necessary to satisfy that the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU is greater than a third threshold. It should be understood that this implementation method can improve the accuracy of judging the risk of network outage. For example, as... Figure 11 As shown, if the first region is set relatively large, i.e., N is set relatively large, then if the difference between RX_DELIV+window_size and RX_NEXT is still relatively large, but multiple PDUs with the SN located in the first region and following the SN corresponding to RX_DELIV+window_size are received in advance, and these multiple PDUs are greater than the first threshold, then if the difference between the COUNT value of the expected received PDU and the COUNT value of the first PDU is not considered, the receiver will judge that there is a risk of disconnection. However, in reality, the receiver can still buffer many PDUs. Therefore, by combining the difference between RX_NEXT and RX_DELIV, the accuracy of judging the risk of disconnection can be improved.

[0134] As another optional embodiment, the method proposed in this application can also be combined with a reordering timer in the receiving end. Specifically, when the communication device is waiting for the expected delivery of the first PDU, it obtains the waiting time for the first PDU. Then, when the second PDU is received and discarded, if the waiting time for the first PDU is greater than a fourth threshold, the count of discarded third PDUs is then started. That is, in this implementation, the communication device also considers the waiting time for the first PDU when determining whether there is a risk of outage due to window overflow, thereby improving the accuracy of the communication device's judgment.

[0135] The above describes the method proposed in this application to reduce the probability of network outages based on the number of PDUs that are dropped and whose SN is located in the first region. Below, we introduce another method provided by this application to reduce the probability of network outages.

[0136] Specifically, the concept of this embodiment is as follows: when communication occurs between the base station and the terminal, each PDU transmitted between the base station and the terminal corresponds to both a PDCP sequence number and an RLC sequence number. Furthermore, the receiving end maintains a variable (referred to as the first variable in this embodiment) at the RLC layer. This first variable indicates the minimum RLC sequence number that the communication device expects to receive. PDUs preceding this minimum RLC sequence number indicate that the communication device has successfully received all of them.

[0137] Therefore, the method proposed in this embodiment includes: while waiting for the first protocol data unit (PDU), if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number that the communication device expects to receive, the second PDU and the received third PDU are submitted to the upper-layer application; wherein, the first PDU is the PDU with the smallest COUNT value at the PDCP layer among the PDUs that the communication device has not yet submitted to the upper-layer application, and the COUNT value of the third PDU at the PDCP layer is less than the COUNT value of the second PDU.

[0138] It should be understood that the COUNT value of the first PDU in this embodiment is the same as RX_DELIV mentioned in the previous embodiment.

[0139] It should be noted that in this embodiment, after receiving the second PDU including the minimum RLC sequence number to be received, only the second PDU and PDUs with a COUNT value at the PDCP layer that is less than the COUNT value of the second PDU are submitted to the upper layer application. PDUs with a COUNT value greater than the COUNT value of the second PDU are not directly submitted to the upper layer application. The reason is that for PDUs with an RLC sequence number greater than the minimum RLC sequence number, the communication device cannot determine whether the loss is due to packet loss at the sending end or packet loss at the RLC layer. If it is due to the RLC layer, there will be retransmissions later, and the communication device can receive the PDUs again.

[0140] To facilitate understanding, the following will be combined with Figure 12 Please provide an explanation.

[0141] For example, such as Figure 12As shown in (a), for a communication device, the PDU expected to be delivered to the upper-layer application is the PDU with PDCP sequence number 0. While waiting for the PDU with PDCP sequence number 0, the communication device currently expects to receive a minimum RLC sequence number of 4, indicating that the communication device has successfully received PDUs with RLC sequence numbers 0, 1, 2, and 3, and will not perform RLC retransmission. If a PDCP SN GAP occurs at this time, it indicates that it is due to packet loss at the sending end, and no further retransmission will be performed. At this time, if the communication device receives the PDU with RLC sequence number 4 (corresponding to PDCP sequence number 7), it can deliver the PDU with PDCP sequence number 7 and all PDUs received before the PDU with PDCP sequence number 7 to the upper-layer application, that is, deliver the PDUs with RLC sequence numbers 0, 1, 2, and 3 and the PDU with RLC sequence number 4 to the upper-layer application, and update the COUNT value of the expected PDUs, for example, as shown in the image. Figure 12 As shown in (b), the COUNT value of the PDU to be submitted is updated to the COUNT value of the PDU with PDCP sequence number 8.

[0142] That is, in this embodiment, the communication device uses the minimum RLC sequence number to be received as the dividing point. When it receives the second PDU including the minimum RLC sequence number to be received, it delivers the second PDU and the third PDU that has been received before the second PDU to the upper layer application, instead of waiting for the missing first PDU. Therefore, it can skip the missing first PDU instead of only when the reordering timer times out, thus reducing the risk of disconnection.

[0143] It should be noted that this embodiment does not restrict the specific timing of when the communication device delivers the second PDU to the upper-layer application and the manner in which the third PDU is received.

[0144] For example, in one implementation, as soon as a PDU containing the minimum RLC sequence number is received, the received PDU and any PDUs whose COUNT value is less than the CUNT value of the PDU containing the minimum RLC sequence number are delivered to the upper-layer application.

[0145] For example, in another implementation, after receiving the second DPU including the minimum RLC sequence number to be received, it is also determined whether the difference between the COUNT value of the PDU to be received by the communication device at the PDCP layer and the COUNT value of the first PDU is greater than the fifth threshold. Only if it is greater than the fifth threshold is the second PDU and the received third PDU submitted to the upper layer application.

[0146] Furthermore, this concept can also be applied to scenarios where one PDCP entity corresponds to multiple RLC entities. In this case, it is necessary to find the smallest PDCP sequence number among the lower boundaries of multiple RLC entities as the dividing point.

[0147] The above text combines Figures 8 to 12 The communication method of the embodiments of this application is described in detail below. Figure 13 and Figure 14 The communication device provided in this application is described in detail.

[0148] Figure 13 This is a structural schematic diagram of a communication device provided in one embodiment of this application. Specifically, as shown... Figure 13 As shown, the device 1300 includes an acquisition module 1301 and a processing module 1302.

[0149] In the first embodiment, the communication device is applied to a first terminal that sends the first SCI.

[0150] Specifically, in the first embodiment, the processing module 1302 is configured to, while waiting for the first protocol data unit (PDU), if the number of discarded second PDUs reaches a first threshold, submit a PDU with a COUNT value between the first and second COUNT values ​​of the first PDU to the upper-layer application; wherein, the first PDU is the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper-layer application, the Packet Data Convergence Protocol (PDCP) sequence number of the second PDU is located in a first region, the first region includes N consecutive PDCP sequence numbers, the starting PDCP sequence number of the first region is spaced M PDCP sequence numbers apart from the PDCP sequence number of the expected PDU, and the starting PDCP sequence number of the first region is greater than the PDCP sequence number of the expected PDU, the second COUNT value is greater than the COUNT value of the first PDU, and N is a positive integer.

[0151] In one possible implementation, the device further includes an acquisition module 1301; the acquisition module 1301 is configured to acquire the difference between the COUNT value of the expected PDU and the COUNT value of the first PDU; the processing module 1302 is further configured to: if the difference between the COUNT value of the expected PDU and the COUNT value of the first PDU is greater than a third threshold, and if the number of discarded second PDUs reaches a first threshold, submit PDUs with COUNT values ​​between the first COUNT value and the second COUNT value of the first PDU to the upper layer application.

[0152] In one possible implementation, the apparatus further includes an acquisition module 1301; the acquisition module 1301 is configured to acquire the waiting time of the first PDU that has been waited for while waiting for the first PDU to be submitted to the upper layer application; the processing module 1302 is further configured to: if the waiting time of the first PDU that has been waited for is greater than a fourth threshold, and if the number of discarded second PDUs reaches a first threshold, submit a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU to the upper layer application.

[0153] In one possible implementation, the processing module 1302 is further configured to: if the COUNT value of the expected received PDU increases, update the number of discarded second PDUs to 0.

[0154] In one possible implementation, when the COUNT value of the expected received PDU remains unchanged for a certain period of time, the PDCP sequence number of the expected received PDU is spaced apart from the upper boundary PDCP sequence number by K adjacent PDCP sequence numbers, where K is a positive integer; wherein, the difference between the upper boundary PDCP sequence number and the PDCP sequence number of the first PDU is... N_size indicates the bit length of SN.

[0155] In the second embodiment, the processing module 1302 is configured to, while waiting for the first protocol data unit (PDU), if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number that the communication device expects to receive, submit the second PDU and the received third PDU to the upper-layer application; wherein, the first PDU is the PDU with the smallest COUNT value at the PDCP layer among the PDUs that the communication device has not yet submitted to the upper-layer application, and the COUNT value of the third PDU at the PDCP layer is less than the COUNT value of the second PDU.

[0156] In one possible implementation, the processing module 1302 is further configured to: if the difference between the COUNT value of the PDU expected to be received by the PDCP layer and the COUNT value of the first PDU is greater than a first threshold, and if a second PDU is received and the RLC sequence number of the second PDU is the smallest RLC sequence number expected to be received by the communication device, submit the second PDU and the received third PDU to the upper layer application.

[0157] Figure 14 This is a structural schematic diagram of a communication device provided for another embodiment of this application. Figure 14 The apparatus shown can be used to perform the method described in any of the foregoing embodiments.

[0158] like Figure 14As shown, the device 1400 of this embodiment includes a memory 1401 and a processor 1402. Optionally, the device 1400 further includes a communication interface 1403 and a bus 1404. The memory 1401, the processor 1402, and the communication interface 1403 are interconnected via the bus 1404.

[0159] The memory 1401 can be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 1401 can store programs, and when the program stored in the memory 1401 is executed by the processor 1402, the processor 1402 performs the execution. Figures 8 to 12 The steps of the method shown.

[0160] The processor 1402 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, used to execute relevant programs to implement this application. Figures 8 to 12 The method shown.

[0161] The processor 1402 can also be an integrated circuit chip with signal processing capabilities. In the implementation process, the embodiments of this application... Figures 8 to 12 Each step of the method can be accomplished by integrated logic circuitry in the hardware of the processor 1402 or by instructions in software form.

[0162] The processor 1402 described above can also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor, etc.

[0163] The steps of the method disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory 1401. Processor 1402 reads information from memory 1401 and, in conjunction with its hardware, completes the functions required by the units included in the device of this application. For example, it can execute... Figures 8 to 12 The various steps / functions of the illustrated embodiment.

[0164] The communication interface 1403 can use, but is not limited to, transceivers to enable communication between the device 1400 and other devices or communication networks.

[0165] Bus 1404 may include a pathway for transmitting information between various components of device 1400 (e.g., memory 1401, processor 1402, communication interface 1403).

[0166] It should be understood that the device 1400 shown in the embodiments of this application can be an electronic device, or it can be a chip configured in an electronic device. The device 1400 can be deployed in a terminal device, or it can be deployed in a network device.

[0167] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.

[0168] It should be understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. A and B can be singular or plural. Additionally, the character " / " in this article generally indicates an "or" relationship between the preceding and following related objects, but it can also represent an "and / or" relationship. Please refer to the context for a more accurate understanding.

[0169] In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0170] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0171] Those skilled in the art will recognize that the units and algorithm steps of the various examples 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 implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0172] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0173] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0174] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0175] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0176] If the aforementioned functions are implemented as 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 technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory, random access memory, magnetic disks, or optical disks.

[0177] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A communication method, characterized in that: Applied to communication equipment, including: While waiting for the first protocol data unit PDU, if the number of discarded second PDUs reaches a first threshold, submitting to an upper layer application a PDU whose COUNT value is between a first COUNT value and a second COUNT value of the first PDU; The first PDU is the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper layer application, the Packet Data Convergence Protocol PDCP sequence number of the second PDU is located in the first area, the first area includes N consecutive PDCP sequence numbers, the starting PDCP sequence number of the first area is separated from the PDCP sequence number of the PDU expected to be received by M PDCP sequence numbers and the starting PDCP sequence number of the first area is greater than the PDCP sequence number of the PDU expected to be received, the second COUNT value is greater than the COUNT value of the first PDU, and M and N are positive integers.

2. The method according to claim 1, characterized in that The method further comprises: Obtaining a difference between a COUNT value of the PDU expected to be received and a COUNT value of the first PDU; If the number of discarded second PDUs reaches a first threshold, submitting to an upper layer application a PDU whose COUNT value is between a first COUNT value and a second COUNT value of the first PDU, comprises: When the difference between the COUNT value of the PDU expected to be received and the COUNT value of the first PDU is greater than the third threshold, if the number of discarded second PDUs reaches the first threshold, a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU is submitted to the upper layer application.

3. The method according to claim 1, characterized in that The method further comprises: When waiting for a first PDU expected to be delivered to an upper layer application, obtaining a waiting time for waiting for the first PDU; If the number of discarded second PDUs reaches a first threshold, submitting to an upper layer application a PDU whose COUNT value is between a first COUNT value and a second COUNT value of the first PDU, comprises: When the waiting time for the first PDU is greater than the fourth threshold, if the number of discarded second PDUs reaches the first threshold, a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU is delivered to the upper layer application.

4. The method according to any one of claims 1 to 3, characterized in that After delivering to the upper layer application the PDU having a COUNT value between the first COUNT value and the second COUNT value of the first PDU, the method further comprises: If the COUNT value of the PDU expected to be received increases, the number of discarded second PDUs is updated to 0.

5. The method according to any one of claims 1 to 4, characterized in that When the COUNT value of the PDU expected to be received does not change within a period of time, the PDCP sequence number of the PDU expected to be received and the upper boundary PDCP sequence number are separated by K adjacent PDCP sequence numbers, where K is a positive integer; The difference between the upper boundary PDCP sequence number and the PDCP sequence number of the first PDU is 2SN size -1, N_size indicates the bit length of SN.

6. A communication device, characterized in that: include: A processing module, configured to deliver to an upper layer application a PDU whose COUNT value is between a first COUNT value and a second COUNT value of the first PDU if the number of discarded second PDUs reaches a first threshold value while waiting for the first protocol data unit PDU; The first PDU is the PDU with the smallest COUNT value among the PDUs that the communication device has not yet submitted to the upper layer application, the Packet Data Convergence Protocol PDCP sequence number of the second PDU is located in the first area, the first area includes N consecutive PDCP sequence numbers, the starting PDCP sequence number of the first area is separated from the PDCP sequence number of the PDU expected to be received by M PDCP sequence numbers and the starting PDCP sequence number of the first area is greater than the PDCP sequence number of the PDU expected to be received, the second COUNT value is greater than the COUNT value of the first PDU, and M and N are positive integers.

7. The device according to claim 6, characterized in that The device also includes an acquisition module; The acquisition module is used to acquire the difference between the COUNT value of the PDU expected to be received and the COUNT value of the first PDU; The processing module is also used for: When the difference between the COUNT value of the PDU expected to be received and the COUNT value of the first PDU is greater than the third threshold, if the number of discarded second PDUs reaches the first threshold, a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU is submitted to the upper layer application.

8. The device according to claim 6, characterized in that The device also includes an acquisition module; The acquisition module is used to acquire the waiting time for waiting for the first PDU expected to be delivered to the upper layer application while waiting for the first PDU; The processing module is also used for: When the waiting time for the first PDU is greater than the fourth threshold, if the number of discarded second PDUs reaches the first threshold, a PDU whose COUNT value is between the first COUNT value and the second COUNT value of the first PDU is delivered to the upper layer application.

9. The device according to any one of claims 6 to 8, characterized in that The processing module is also used for: If the COUNT value of the PDU expected to be received increases, the number of discarded second PDUs is updated to 0.

10. The device according to any one of claims 6 to 9, characterized in that When the COUNT value of the PDU expected to be received does not change within a period of time, the PDCP sequence number of the PDU expected to be received and the upper boundary PDCP sequence number are separated by K adjacent PDCP sequence numbers, where K is a positive integer; The difference between the upper boundary PDCP sequence number and the PDCP sequence number of the first PDU is 2SN size -1, N_size indicates the bit length of SN.

11. A communication device, characterized in that: include: processor, The processor is configured to enable the communication device to implement the method according to any one of claims 1 to 5 by executing a computer program and / or a logic circuit.

12. A communication system, characterized in that: The method comprises the communication device according to any one of claims 6 to 10 or the communication device according to claim 11.

13. A chip, characterized in that: The system comprises at least one processor and a communication interface, wherein the communication interface and the at least one processor are interconnected via a line, and the at least one processor is used to run a computer program or instruction to perform the communication method as claimed in any one of claims 1 to 5.

14. A computer readable medium, characterized in that The computer-readable medium stores a program code for computer execution, the program code including instructions for executing the method according to any one of claims 1 to 5.

15. A computer program product, characterized in that The computer program product includes computer program codes, and when the computer program codes are executed on a computer, the computer is enabled to implement the method according to any one of claims 1 to 5.

Citation Information

Cited By

  • Packet assembling control method of data packet, storage medium and electronic equipment

    CN122027576A