WO2019095975A1 - 数据包处理的方法和设备 - Google Patents
数据包处理的方法和设备 Download PDFInfo
- Publication number
- WO2019095975A1 WO2019095975A1 PCT/CN2018/112278 CN2018112278W WO2019095975A1 WO 2019095975 A1 WO2019095975 A1 WO 2019095975A1 CN 2018112278 W CN2018112278 W CN 2018112278W WO 2019095975 A1 WO2019095975 A1 WO 2019095975A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- variable
- value
- timer
- data packet
- receiving device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Definitions
- the present application relates to the field of communications, and more specifically, to a method and device for processing a data packet.
- the order received at the receiving end is likely to be disordered.
- the Radio Link Control (RLC) in the Layer 2 protocol stack is responsible for reordering the received out-of-order packets and submitting the packet data to the upper layer.
- the Packet Data Convergence Protocol (PDCP) layer In the 5th Generation (5G) New Radio (NR), the RLC layer in the Layer 2 protocol stack no longer has the reordering function, but is responsible for the PDCP layer in the Layer 2 protocol stack. The received out-of-order packets are reordered.
- 5G 5th Generation
- NR New Radio
- the Data Radio Bearer (DRB) in the Acknowledge Mode (AM) needs to ensure that no packet loss occurs during PDCP reconstruction or data recovery. Due to the need to ensure in-order delivery, the current data will be retained during reconstruction. The out-of-order packet and the number of the packet. When the NR PDCP is rebuilt, the packet loss problem may occur, which seriously affects the accuracy of data transmission, reduces the efficiency of data transmission, and has a poor user experience.
- the present invention provides a method and a device for processing a data packet, which can solve the problem of packet loss caused by the re-sequencing timer being opened too early after PDCP reconstruction or data recovery, thereby improving the accuracy of data transmission and The efficiency of data transmission improves the user experience.
- a method for processing a data packet includes: receiving, stopping, or resetting a first timer, or stopping only a first timer, when a packet data convergence protocol PDCP entity is reconstructed or data is restored,
- the first timer is configured to detect the loss of the received data packet, or to detect whether the received data packet is out of order; the receiving device sets the value of the first variable to a value of the second variable, the first variable indication The count value of the next received data packet desired by the receiving device, the second variable indicating the count value of the first data packet that is still being submitted to the upper layer that is still waiting.
- the method for processing a data packet provided by the first aspect, when the PDCP entity is reconstructed or during data recovery, if the first timing is at runtime, the first timer is stopped and reset (or reset to zero), or only the first The timer stops and the value of the first variable is set to the value of the second variable.
- the first timer is stopped and reset, or only the first timer is stopped, and when the PDCP entity is rebuilt or data is restored, The value of the first variable is set to the value of the second variable.
- the method further includes: the receiving device receives the data packet; and if the value of the third variable is greater than or equal to the value of the first variable, the receiving device The value of a variable is updated to the value of the fourth variable, wherein the third variable indicates a count value of the data packet received by the receiving device, the fourth variable indicating a value greater than the third variable and being the first unreceived The count value of the received data packet, or the fourth variable indicates the count value of the data packet that the PDCP entity has received, starting from the value of the third variable, consecutively and increasing the maximum count value by one.
- the value of the first variable may be updated according to the situation of the data packet actually received by the receiving device, so that the first variable is more in line with its physical definition, that is, the next data packet that the receiving device expects to receive. At the same time, it improves the accuracy and efficiency of packet transmission and delivery, and improves the user experience.
- the method further includes: when the PDCP entity is reconstructed or data is restored, the receiving device sets the value of the fifth variable to the stop and resets the first timer.
- the value of the second variable, or the value of the fifth variable is set to the value of the second variable when the first timer is stopped, or the value of the first variable when the stop is reset and the first timer is reset, or The value of the first variable when the first timer is stopped, or is set to the initial value of the fifth variable, or remains unchanged, wherein the fifth variable indicates that the data packet when the first timer is started is triggered.
- Count value when the PDCP entity is reconstructed or data is restored, the receiving device sets the value of the fifth variable to the stop and resets the first timer.
- the method further includes: if the receiving device is configured to send a PDCP status report by an upper layer configuration, before the receiving device sets the value of the first variable to a value of the second variable Generating the PDCP status report; or, if the receiving device is configured to send a PDCP status report by the upper layer configuration, generating the PDCP status according to the value of the first variable and the value of the second variable before the PDCP entity is reconstructed or before data recovery report.
- the method further includes: if the receiving device is configured to send a PDCP status report by an upper layer configuration, before the receiving device sets the value of the first variable to a value of the second variable Generating a bit map in the PDCP status report; or, if the receiving device is configured to send a PDCP status report by an upper layer configuration, according to the value of the first variable and the value of the second variable before the PDCP entity is reconstructed or before data recovery, Generate a bitmap of the bits in the PDCP status report.
- the method further includes: when the first timer is not running, and the value of the second variable is less than a value of the first variable, the receiving device turns on the The first timer.
- the method further includes: when the first timer is not running, and the value of the second variable is less than a value of the first variable, the receiving device The value of the five variables is updated to the value of the first variable, wherein the fifth variable indicates the count value of the data packet when the first timer is started.
- the first timer is a reordering timer.
- the method further includes: when the first timer expires, the receiving device delivers the data packet.
- the method further includes: when the value of the third variable is equal to the value of the second variable, the receiving device submits the data packet.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first variable is RX_NEXT
- the second variable is RX_DELIV
- the third variable is RCVD_COUNT
- the fifth variable is RX_REORD
- the first timer is t-Reordering.
- a second aspect provides a data packet processing method, including: receiving, by a receiving device, a data packet; and in a case where a value of the third variable is greater than or equal to a value of the first variable, the receiving device uses the value of the first variable Updating to a value of a fourth variable, wherein the first variable indicates a count value of a next received data packet desired by the receiving device, and the third variable indicates a count value of the data packet received by the receiving device, the first The fourth variable indicates a value greater than the third variable and is the count value of the first unreceived data packet, or the fourth variable indicates the count value of the data packet received by the receiving device, from the third variable The value starts, continues, and increments by one for the largest count value.
- the method for processing a data packet provided by the second aspect may update the value of the first variable according to the situation that the receiving device actually receives the data packet, so that the first variable is more in line with the physical definition thereof, that is, the first variable is updated to receive.
- the count value of the next packet that the device expects to receive At the same time, it improves the accuracy and efficiency of packet transmission and delivery, and improves the user experience.
- the method further includes: when the packet data convergence protocol PDCP entity is re-established or data is restored, if the first timer is running, stopping and resetting the first The timer, or only the first timer, is used to detect the loss of the received data packet, or to detect whether the received data packet is out of order.
- the method further includes: when the packet data convergence protocol PDCP entity is reconstructed or data is restored, the receiving device sets the value of the first variable to the second variable.
- the value, the second variable indicates the count value of the first packet that is still waiting to be submitted to the upper layer.
- the method further includes: if the receiving device is configured to send a PDCP status report by an upper layer configuration, before the receiving device sets the value of the first variable to a value of the second variable Generating the PDCP status report; or, if the receiving device is configured to send a PDCP status report by the upper layer configuration, generating the PDCP status according to the value of the first variable and the value of the second variable before the PDCP entity is reconstructed or before data recovery report.
- the method further includes: if the receiving device is configured to send a PDCP status report by an upper layer configuration, before the receiving device sets the value of the first variable to a value of the second variable Generating a bit map in the PDCP status report; or, if the receiving device is configured to send a PDCP status report by an upper layer configuration, according to the value of the first variable and the value of the second variable before the PDCP entity is reconstructed or before data recovery, Generate a bitmap of the bits in the PDCP status report.
- the method further includes: when the first timer is not running, and the value of the second variable is less than the value of the first variable, the receiving device sets the fifth variable The value is updated to the value of the first variable, wherein the first timer is used to detect the loss of the received data packet, or is used to detect whether the received data packet is out of order, and the second variable indicates that the data is still waiting.
- the first value of the data packet that is not delivered to the upper layer, and the fifth variable indicates the count value of the data packet when the first timer is started.
- the method further includes: if the first timer is not running, and the value of the second variable is less than a value of the first variable, The receiving device turns on the first timer, wherein the second variable indicates a count value of the first data packet that is still waiting to be submitted to the upper layer.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first timer is a reordering timer.
- the method further includes: when the first timer expires, the receiving device delivers the data packet.
- the method further includes: when the value of the third variable is equal to the value of the second variable, the receiving device submits the data packet.
- the first variable is RX_NEXT
- the second variable is RX_DELIV
- the third variable is RCVD_COUNT
- the fifth variable is RX_REORD
- the first timer is t-Reordering.
- a third aspect provides a method for processing a data packet, comprising: receiving, by a receiving device, a data packet; the first timer caused by the PDCP entity reconstruction or data recovery due to the packet data convergence protocol is not running, and the value of the second variable is less than In the case of the value of the first variable, the receiving device turns on the first timer; or, in the case that the first timer is not running due to the packet data aggregation protocol PDCP entity reconstruction or data recovery, and the value of the second variable is less than the first In the case of a variable value, the receiving device starts the first timer; wherein the first timer is used to detect the loss of the received data packet, or is used to detect whether the received data packet is out of order, the first A variable indicates the count value of the next data packet that the receiving device desires to receive, and the second variable indicates the count value of the first data packet that is still being handed over to the upper layer.
- the packet processing method provided by the third aspect delays the opening time of the first timer by changing the opening condition of the first timer, and avoids the packet loss problem caused by the premature opening of the first timer. At the same time, the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the method further includes: when the PDCP entity is reconstructed or during data recovery, if the first timer is running, stopping and resetting the first timer, or only A timer stops.
- the method further includes: the receiving device updating a value of the fifth variable to a value of the first variable, wherein the fifth variable indicates that the first timer is triggered to be started The count value of the packet when it is.
- the method further includes: when the value of the third variable is greater than or equal to the value of the first variable, the receiving device updates the value of the first variable to the fourth a value of the variable, wherein the third variable indicates a count value of the data packet received by the receiving device, the fourth variable indicating a value greater than the third variable and is a count value of the first unreceived data packet, Or the fourth variable indicates that the count value of the data packet received by the PDCP entity is incremented by one from the value of the third variable, consecutively and the largest count value.
- the method further includes: when the PDCP entity is reconstructed or data is restored, the receiving device updates the value of the fifth variable to the stop and resets the first timer.
- the first timer is a reordering timer.
- the method further includes: when the first timer expires, the receiving device delivers the data packet.
- the method further includes: when the value of the third variable is equal to the value of the second variable, the receiving device submits the data packet.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first variable is RX_NEXT
- the second variable is RX_DELIV
- the third variable is RCVD_COUNT
- the fifth variable is RX_REORD
- the first timer is t-Reordering.
- a fourth aspect provides a method for processing a data packet, comprising: receiving, by a receiving device, a data packet; wherein the first timer is not running, the value of the second variable is less than a value of the first variable, and the value of the first variable is equal to In the case where the value of the third variable is incremented by one, the receiving device turns on the first timer, wherein the first variable indicates a count value of a next received data packet desired by the receiving device, and the second variable indicates that The count value of the first data packet that is not submitted to the upper layer, the third variable indicates the count value of the data packet received by the receiving device, and the first timer is used to detect the loss of the received data packet. Or it is used to detect whether the received data packet is out of order.
- the method for processing a data packet provided by the fourth aspect, after the receiving device receives the data packet, delays the opening time of the first timer by changing the opening condition of the first timer, and avoids that the first timer is turned on.
- the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided.
- the method further includes: when the PDCP entity is rebuilt or during data recovery, if the first timer is running, stopping and resetting the first timer, or only A timer stops.
- the receiving device updates the value of the fifth variable to the value of the first variable, which indicates the count value of the data packet when the first timer is started.
- the method further includes: when the first timer expires, the receiving device delivers the data packet.
- the method further includes: when the value of the third variable is equal to the value of the second variable, the receiving device submits the data packet.
- the first timer is a reordering timer.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first variable is RX_NEXT
- the second variable is RX_DELIV
- the third variable is RCVD_COUNT
- the fifth variable is RX_REORD
- the first timer is t-Reordering.
- a fifth aspect provides a method for processing a data packet, comprising: stopping, resetting, or resetting a first timer, or stopping only a first timer, when a packet data convergence protocol PDCP entity is reconstructed or data is restored;
- the first timer is configured to detect the loss of the received data packet, or to detect whether the received data packet is out of order; the receiving device sets the value of the sixth variable to the value of the second variable, where the The six variables are used to indicate that the receiving device receives the maximum count value in the data packet after the PDCP entity is reconstructed or after data recovery, or the sixth variable is used to indicate that the receiving device is larger than the receiving device.
- the maximum count value in the data packet received after the PDCP entity is reconstructed or after data recovery, and is the count value of the first data packet that is not delivered to the upper layer, the second variable indicating the first one still waiting, The count value of the packet that was not delivered to the upper layer.
- the method for packet processing stops or resets (zeros) the first timer when the PDCP entity is reconstructed or data is restored, or stops only the first timer, and introduces a new variable.
- (Sixth variable) the value of the sixth variable is set to the value of the second variable.
- the sixth variable is used instead of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the first timer is prevented from being opened due to the occurrence of the out-of-order packet, and the packet loss problem caused by the premature opening of the first timer is avoided.
- the method further includes: when the PDCP entity is reconstructed or data is restored, if the first timer is running, stopping and resetting the first timer, or only A timer stops.
- the method further includes: setting the value of the sixth variable to a value of the second variable when the PDCP entity is reconstructed or data is restored.
- the method further includes: the receiving device receives the data packet; the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or In a case where the value of the first variable is added to the offset value, and in the case where the value of the third variable is greater than or equal to the value of the sixth variable, the receiving device updates the value of the sixth variable to the fourth variable.
- the first variable indicates a count value of a next data packet that the receiving device desires to receive
- the third variable indicates a count value of the data packet received by the receiving device
- the fourth variable indicates the third value
- the value of the variable is incremented by one, or the fourth variable indicates a value greater than the third variable and is the count value of the first unreceived data packet, or the fourth variable indicates the data packet that the PDCP entity has received.
- the count values one is incremented from the value of the third variable, and the maximum count value is incremented by one.
- the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or equal to the value of the first variable plus the offset.
- the sixth variable is used instead of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the first timer is not opened when the unscheduled packet is not received, and the packet loss caused by the first timer timeout is saved after the PDCP entity is rebuilt or the data is restored, thereby improving the user experience.
- the method further includes: the receiving device receives the data packet; the value of the sixth variable is greater than a value of the first variable, or the value of the sixth variable is greater than the first variable In the case where the value is added to the offset value, and in the case where the value of the third variable is greater than or equal to the value of the first variable, the receiving device updates the value of the first variable to the value of the fourth variable, wherein The first variable indicates a count value of a next data packet that the receiving device desires to receive, the third variable indicates a count value of the data packet received by the receiving device, and the fourth variable indicates a value of the third variable plus First, or the fourth variable indicates a value greater than the third variable and is a count value of the first unreceived data packet, or the fourth variable indicates a count value of the data packet that the PDCP entity has received, Starting from the value of the third variable, consecutively and increasing the maximum count value by one.
- the method further includes: when the PDCP entity is reconstructed or during data recovery, the receiving device sets the value of the fifth variable to the stop and resets the first timer.
- the value of the second variable, or the value of the fifth variable is set to the value of the second variable when the first timer is stopped, or the value of the first variable when the stop is reset and the first timer is reset, or Set to the value of the first variable when the first timer is stopped, or to set the value of the sixth variable when the stop and reset the first timer, or to set the sixth variable when the first timer is stopped and reset
- the value is either set to the initial value of the fifth variable or remains unchanged, wherein the fifth variable indicates the count value of the data packet when the first timer is started.
- the method further includes: the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or equal to the first variable In the case where the value is added to the offset value, and the first timer is not running and the value of the second variable is less than the value of the sixth variable, the receiving device turns on the first timer.
- the method further includes: the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or equal to the first variable
- the receiving device updates the value of the fifth variable to the first A value of a six variable, wherein the fifth variable indicates a count value of a packet when the first timer is started to be triggered.
- the method further includes: when the first timer expires, the receiving device delivers the data packet.
- the method further includes: when the value of the third variable is equal to the value of the second variable, the receiving device submits the data packet.
- the first timer is a reordering timer.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first variable is RX_NEXT
- the second variable is RX_DELIV
- the third variable is RCVD_COUNT
- the fifth variable is RX_REORD
- the first timer is t-Reordering.
- the offset value is zero or a positive value.
- a sixth aspect provides a method for processing a data packet, including: when a packet data convergence protocol PDCP entity is rebuilt or data is restored, if the first timer is running, stopping and resetting the first timer Or only stop the first timer, the first timer is used to detect the loss of the received data packet, or to detect whether the received data packet is out of order.
- the method for processing a data packet provided by the sixth aspect, when the PDCP entity is reconstructed or during data recovery, if the first timer is running, the first timer is stopped and reset (or reset to zero), or only the first The timer is stopped to avoid packet loss due to timer timeout during PDCP reestablishment. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the method further includes: the receiving device setting a value of the first variable to a value of the second variable, the first variable indicating a next data that the receiving device expects to receive a count value or a serial number of the packet indicating the count value or serial number of the first data packet that is not yet being submitted to the upper layer, or the second variable indicating the most recent data packet submitted to the upper layer Count value or serial number plus one.
- the PDCP entity uses a reordering function before the PDCP entity is re-established or before the data is restored, and after the PDCP entity is re-established or after the data is restored, the PDCP connects the two acknowledged modes AM.
- the terminal device stops and resets the first timer or only stops the first timer.
- the first timer is a reordering timer.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the first aspect and various implementation manners thereof The method of packet processing.
- the eighth aspect provides a receiving device, including a processing module, a storage module, and a transceiver module, configured to support the receiving device to perform the functions of the receiving device in any of the foregoing first aspect or the first aspect of the first aspect, where the function may be
- the hardware implementation may also be implemented by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the second aspect and various implementations thereof The method of packet processing.
- a receiving device including a processing module, a storage module, and a transceiver module, is configured to support the receiving device to perform the functions of the receiving device in any of the foregoing second aspect or the second aspect, the function may be
- the hardware implementation may also be implemented by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the third aspect and various implementation manners thereof The method of packet processing.
- a receiving device including a processing module, a storage module, and a transceiver module, is configured to support the receiving device to perform the functions, functions, and functions of the receiving device in any of the foregoing third aspect or the third aspect.
- the software implementation may be implemented by hardware or by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the fourth aspect and various implementation manners thereof.
- the method of packet processing including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the fourth aspect and various implementation manners thereof.
- the fourteenth aspect provides a receiving device, including a processing module, a storage module, and a transceiver module, configured to support the receiving device to perform the functions, functions, and functions of the receiving device in any of the foregoing fourth or fourth possible implementation manners.
- the software implementation may be implemented by hardware or by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory, and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the fifth aspect and various implementation manners thereof.
- the method of packet processing including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory, and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the fifth aspect and various implementation manners thereof.
- a receiving device including a processing module, a storage module, and a transceiver module, is configured to support the receiving device to perform the functions, functions, and functions of the receiving device in any of the foregoing fifth or fifth aspects.
- the software implementation may be implemented by hardware or by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a receiving device including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory, and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the sixth aspect and various implementation manners thereof.
- the method of packet processing including a processor, a memory, and a transceiver for supporting the receiving device to perform a corresponding function in the above method.
- the processor, the memory, and the transceiver are connected by communication, the memory stores instructions, and the transceiver is configured to perform specific signal transceiving under the driving of the processor, the processor is configured to invoke the instruction to implement the sixth aspect and various implementation manners thereof.
- the eighteenth aspect provides a receiving device, including a processing module, a storage module, and a transceiver module, configured to support the receiving device to perform the functions, functions, and functions of the receiving device in any of the foregoing sixth or sixth possible implementation manners.
- the software implementation may be implemented by hardware or by hardware, and the hardware or software includes one or more modules corresponding to the above functions.
- a nineteenth aspect a computer readable storage medium for storing a computer program, the computer program comprising the first aspect to the sixth aspect, or any one of the first aspect to the sixth aspect Instructions for possible implementation methods.
- a system chip comprising: a processing unit and a communication unit, the processing unit, the processing unit executable to execute computer instructions to enable the chip in the terminal to perform the first to sixth aspects, or A method of any of the possible implementations of the first aspect to the sixth aspect.
- FIG. 1 is a schematic diagram of a communication system suitable for the method of packet processing of the present application.
- Fig. 2 is a schematic structural diagram showing the structure of a count value (COUNT) of a packet.
- FIG. 3 is a schematic diagram of FIG. 3, which is a delivery of a data packet and a process of updating each variable.
- FIG. 4 is a schematic diagram of a data packet received before PDCP reconstruction in an embodiment of the present application.
- FIG. 5 is a schematic flowchart of a method for data packet processing according to an embodiment of the present application.
- FIG. 6 is a schematic flowchart of a method for packet processing according to another embodiment of the present application.
- FIG. 7 is a schematic flowchart of a method for data packet processing according to an embodiment of the present application.
- FIG. 8 is a schematic flowchart of a method for packet processing according to another embodiment of the present application.
- FIG. 9 is a schematic flowchart of a method for data packet processing according to an embodiment of the present application.
- FIG. 10 is a schematic flowchart of a method for packet processing according to another embodiment of the present application.
- FIG. 11 is a schematic flowchart of a method for data packet processing according to an embodiment of the present application.
- FIG. 12 is a schematic flowchart of a method for packet processing according to another embodiment of the present application.
- FIG. 13 is a schematic flowchart of a method for packet processing according to still another embodiment of the present application.
- FIG. 14 is a schematic flowchart of a method for packet processing according to still another embodiment of the present application.
- FIG. 15 is a schematic block diagram of a receiving device of another embodiment of the present application.
- FIG. 16 is a schematic block diagram of a receiving device according to an embodiment of the present application.
- 17 is a schematic block diagram of a receiving device of another embodiment of the present application.
- FIG. 18 is a schematic block diagram of a receiving device according to an embodiment of the present application.
- 19 is a schematic block diagram of a receiving device of another embodiment of the present application.
- FIG. 20 is a schematic block diagram of a receiving device according to an embodiment of the present application.
- 21 is a schematic block diagram of a receiving device of another embodiment of the present application.
- FIG. 22 is a schematic block diagram of a receiving device according to an embodiment of the present application.
- FIG. 23 is a schematic block diagram of a receiving device of another embodiment of the present application.
- FIG. 24 is a schematic block diagram of a receiving device according to an embodiment of the present application.
- FIG. 25 is a schematic block diagram of a receiving device of another embodiment of the present application.
- 26 is a schematic block diagram of a receiving device of another embodiment of the present application.
- GSM Global System of Mobile communication
- CDMA Code Division Multiple Access
- WCDMA Wideband Code Division Multiple Access
- GPRS General Packet Radio Service
- LTE Long Term Evolution
- FDD Frequency Division Duplex
- TDD Time Division Duplex
- UMTS Universal Mobile Telecommunication System
- WiMAX Worldwide Interoperability for Microwave Access
- the receiving device in the embodiment of the present application may be a terminal device, where the terminal device may refer to a user equipment, an access terminal, a subscriber unit, a subscriber station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, and a terminal. , a wireless communication device, a user agent, or a user device.
- the terminal device may also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), with wireless communication.
- SIP Session Initiation Protocol
- WLL Wireless Local Loop
- PDA Personal Digital Assistant
- the receiving device in the embodiment of the present application may also be a network device, where the network device may be a device for communicating with the terminal device, where the network device may be a Global System of Mobile communication (GSM) system or code division multiple access.
- GSM Global System of Mobile communication
- a Base Transceiver Station (BTS) in a Code Division Multiple Access (CDMA) system which may be a base station (NodeB, NB) in a Wideband Code Division Multiple Access (WCDMA) system, or may be an LTE.
- CDMA Code Division Multiple Access
- NodeB, NB base station
- WCDMA Wideband Code Division Multiple Access
- the evolved base station (Evolutional NodeB, eNB or eNodeB) in the system may also be a wireless controller in a cloud radio access network (CRAN) scenario, or the network device may be a relay station, an access point,
- CRAN cloud radio access network
- the embodiment of the present application is not limited to an in-vehicle device, a wearable device, a network device in a future 5G network, or a network device in a future evolved PLMN network.
- the communication system 100 includes a network device 102 that can include multiple antennas, such as antennas 104, 106, 108, 110, 112, and 114. Additionally, network device 102 may additionally include a transmitter chain and a receiver chain, as will be understood by those of ordinary skill in the art, which may include multiple components related to signal transmission and reception (eg, processor, modulator, multiplexer) , encoder, demultiplexer or antenna, etc.).
- a network device 102 can include multiple antennas, such as antennas 104, 106, 108, 110, 112, and 114.
- network device 102 may additionally include a transmitter chain and a receiver chain, as will be understood by those of ordinary skill in the art, which may include multiple components related to signal transmission and reception (eg, processor, modulator, multiplexer) , encoder, demultiplexer or antenna, etc.).
- Network device 102 can communicate with a plurality of terminal devices, such as terminal device 116 and terminal device 122. However, it will be appreciated that network device 102 can communicate with any number of terminal devices similar to terminal device 116 or 122.
- Terminal devices 116 and 122 can be, for example, cellular telephones, smart phones, portable computers, handheld communication devices, handheld computing devices, satellite radios, global positioning systems, PDAs, and/or any other for communicating over wireless communication system 100. Suitable for equipment.
- terminal device 116 is in communication with antennas 112 and 114, wherein antennas 112 and 114 transmit information to terminal device 116 over forward link 118 and receive information from terminal device 116 over reverse link 120.
- terminal device 122 is in communication with antennas 104 and 106, wherein antennas 104 and 106 transmit information to terminal device 122 over forward link 124 and receive information from terminal device 122 over reverse link 126.
- the forward link 118 can utilize a different frequency band than that used by the reverse link 120, and the forward link 124 can utilize a different frequency band than that used by the reverse link 126.
- the forward link 118 and the reverse link 120 can use a common frequency band
- the forward link 124 and the reverse link 126 can use a common frequency band
- Each antenna (or set of antennas consisting of multiple antennas) and/or regions designed for communication is referred to as a sector of network device 102.
- the antenna group can be designed to communicate with terminal devices in sectors of the network device 102 coverage area.
- the transmit antenna of network device 102 may utilize beamforming to improve the signal to noise ratio of forward links 118 and 124.
- the network device 102 uses beamforming to transmit signals to the randomly dispersed terminal devices 116 and 122 in the relevant coverage area, the network device 102 uses a single antenna to transmit signals to all of its terminal devices. Mobile devices are subject to less interference.
- network device 102, terminal device 116, or terminal device 122 may be a wireless communication transmitting device and/or a wireless communication receiving device.
- the wireless communication transmitting device can encode the data for transmission.
- the wireless communication transmitting device may acquire (eg, generate, receive from other communication devices, or store in memory, etc.) a certain number of data bits to be transmitted over the channel to the wireless communication receiving device.
- Such data bits may be included in a transport block (or multiple transport blocks) of data that may be segmented to produce multiple code blocks.
- the communication system 100 may be a PLMN network or a device-to-device (D2D) network or a machine to machine (M2M) network or other network.
- D2D device-to-device
- M2M machine to machine
- FIG. 1 is only a simplified schematic diagram of an example in the network. Other network devices may also be included, which are not shown in FIG.
- the data packets service data units
- the data packet is added to the PDCP layer of the transmitting end by the sequence number (SN).
- the receiving entity of the PDCP uses the SN for reordering and repeated detection to ensure sequential submission and detection of duplicate packets.
- the transmitting end and the receiving end also need to maintain the same Hyper Frame Number (HFN).
- HFN Hyper Frame Number
- the purpose of using the HFN is to limit the number of bits of the serial number transmitted on the air interface.
- the SN and HFN are combined to form a count (COUNT) value of the packet.
- Each packet has a COUNT value
- the transmitter (sending device) air interface is sent in the order of the COUNT value of the packet from small to large.
- the transmitting end needs to maintain that the transmitted SN does not exceed half of the total SN number, so as to avoid confusion of the frame number.
- the receiving end will also use the length of half of the SN number as the receiving window.
- the received data packets may also be out of order, but when the received data packets are delivered to the upper layer, they are delivered in order according to the COUNT value.
- COUNT count value
- the COUNT value of the data packet is composed of the SN field and the HFN field, wherein the sum of the bit number (bit) of the HFN field portion and the bit number (bit) of the SN field portion is 32 bits, that is, data.
- the COUNT field in the packet is 32 bits.
- the PDCP entity of the receiving device reorders the received data packets according to the COUNT value of the data packet (service data unit).
- the sorting and delivery process is as follows:
- the currently received COUNT value (received count, RCVD_COUNT) is inferred.
- COUNT value of the received data packet is within a valid receiving window: that is, whether it is greater than or equal to the next COUNT value to be delivered (received deliver, RX_DELIV), and less than the total number of RX_DELIV+SN/2. If it is not in the valid receiving window, the received data packet will be discarded. If it is within the valid receiving window, the valid data packets will be stored in the PDCP layer and then delivered in order.
- RCVD_COUNT The COUNT value of the currently received Service Data Unit (SDU) or Protocol Data Unit (PDU).
- RX_DELIV The COUNT value of the first SDU or PDU that is still waiting to be submitted to the upper layer.
- RX_NEXT(receive next, RX_NEXT) The COUNT value of the next received PDCP SDU or PDU that is currently expected (the maximum COUNT value currently received is incremented by one).
- RX_REORD receive reorder, RX_REORD: The RX_NEXT value when the reordering timer (t-reordering) is turned on.
- the reordering timer is used when the RLC entity checks whether the RLC protocol data unit (PDU) or the data packet transmitted by the lower layer is lost under the AM on the receiving side.
- RCVD_COUNT ⁇ RX_NEXT of the currently received SDU
- the value of RX_NEXT is updated to RCVD_COUNT+1.
- the SDU that has been stored in the PDCP layer is submitted to the upper layer.
- RCVD_COUNT RX_DELIV of the currently received SDU
- the relevant data packets are delivered in ascending order. That is, the COUNT value of all stored SDUs starts from the RX_DELIV, and successive SDUs are delivered to the upper layer. And update RX_DELIV to the COUNT of the first undelivered SDU, and the COUNT ⁇ RX_DELIV.
- FIG. 3 is a schematic diagram of a data packet (eg, PDU or SDU) receiving process, a delivery of a data packet, and a process of updating each variable.
- each small rectangle represents a data packet
- the above data represents the count value of the data packet
- the first row to the eighth behavior are in the order of time (the order in which the data packets are received), and the reception shown in FIG.
- the order of the arriving packets is: 0, 3, 5, 6, 1, 2.
- the COUNT value of the data packet (service data unit) is 0 to 7, assuming that the COUNT value is from 0 to 7 as a valid reception window.
- the receiving device has not received the data packet. Therefore, RCVD_COUNT is 0, RX_DELIV is 0, RX_REORD is 0, and RX_NEXT is also 0. The reordering timer is stopped because there is no out of order.
- the receiving device receives packet No. 0, that is, RCVD_COUNT is 0, RX_REORD is 0, and since the need to ensure delivery in order, and packet 0 is just the first packet, therefore, packet 0 is delivered.
- RX_DELIV is updated to 1
- RX_NEXT is also updated to 1.
- RX_DELIV when the receiving device receives the packet No. 5, RX_DELIV is also 1, the value of RX_REORD is also 4, RCVD_COUNT is updated to 5, and RX_NEXT is also updated to 6. RX_DELIV ⁇ RX_REORD is not satisfied, so the reordering timer continues to be running (assuming the reordering timer has not timed out).
- RX_DELIV when the receiving device receives the packet No. 6, RX_DELIV is also 1, the value of RX_REORD is also 4, RCVD_COUNT is updated to 6, and RX_NEXT is also updated to 7. RX_DELIV ⁇ RX_REORD is also not satisfied, so the reordering timer continues to be running (assuming the reordering timer has not timed out).
- RCVD_COUNT is updated to 1, since the packet No. 0 has been delivered, and the packet No. 1 is delivered in the second order, therefore, The number 1 packet is submitted.
- RX_DELIV is updated to 2
- the value of RX_REORD is also 4
- RX_NEXT is also 7.
- RX_DELIV ⁇ RX_REORD is also not satisfied, so the reordering timer continues to be running (assuming the reordering timer has not timed out).
- the receiving device receives the packet No. 2, that is, the RCVD_COUNT is updated to 2, since the packets of 0 and 1 have been delivered, and the packets of the 2nd and the 3rd are delivered in order. Three and fourth, therefore, the 2nd and 3rd packets will be delivered. Since the reordering timer is turned on when the first out-of-order packet (No. 3 packet) is received, when the packet before the first out-of-order packet is received, the proof can be the first All packets before the out-of-order packet are delivered in order. Therefore, the reordering timer will be turned off. After that, RX_DELIV is updated to 4.
- RX_DELIV is updated to 4, and RX_NEXT is also 7.
- RX_DELIV ⁇ RX_NEXT is satisfied, so the reordering timer is turned on.
- the value of RX_REORD is 7. The essence is that the current 4th to 6th data packets are not delivered, but the 6th and 5th data packets are received earlier than the 4th data packet, which is equivalent to receiving the out-of-order data packets. Therefore, the reordering timer will be started again.
- the re-sequencing timer For the re-sequencing timer to be turned on, it will be turned on when the first out-of-order packet arrives, and will be turned off when the packets in front of the out-of-order packet are all received (when submitted to the upper layer).
- the reordering timer does not time out during this time period). For example, in the flow shown in FIG. 3, after the data packet No. 0, the data packet of the third packet is opened, and the reordering timer is stopped when the data packets of the first and second packets arrive.
- the reordering timer is set to wait for packets that have already been sent.
- the receiving device After the data packet has been sent for a period of time, the receiving device still does not receive (ie, the reordering timer expires), and the PDCP entity that receives the data packet will hand over the data packet received before the reordering timer is turned on and all previous data packets. Even if there are still packets that were not received before. For example, as shown in FIG. 3, in the fifth row, when the receiving device receives the packet No. 6, the reordering timer expires, and the receiving device will use the packet before the packet No. 3 (including the packet No. 3). Submitted to the upper layer, even if packets 1 and 2 have not been received yet. This means that packets 1 and 2 will be dropped.
- the DRB in the AM mode needs to ensure that the PDCP does not lose packets when it is reconstructed. Because it needs to ensure that it is delivered in order, the out-of-order data packets that have been received and their numbers (count values) will be retained during the reconstruction.
- the NR PDCP re-establishment process for example, for a terminal device, switching from the source base station to the target base station, if the reordering timer is not stopped, a timeout may occur before the PDCP re-establishment ends, and the packet loss is directly caused after the re-establishment ends. . Even if the PDCP is re-established, the reordering timer is stopped and reset.
- the reordering timer is in the running state before the PDCP is re-established, after the PDCP is re-established, according to the re-sorting timer, the first data may be received. Open when the package is available. Data recovery is mainly a process in which the PDCP of the transmitting end retransmits a packet that has been sent but not received. For the receiving end PDCP, when data recovery occurs on the transmitting end, the receiving end will receive the data packet that has not been received before. If the reordering timer is enabled and times out, the packet loss will cause the following problems:
- the re-sorting timer will cause the subsequent untransmitted (transmitted) data packet to be transmitted before the timer expires, otherwise it will cause packet loss.
- the reordering timer will be turned on, and the untransmitted (transmitted) data packet must be in the timed after the out-of-order packet. The transfer is completed before the timer expires, otherwise it will cause packet loss.
- 4 is taken as an example for explanation.
- 4 is a schematic diagram of a data packet received before PDCP reconstruction in an embodiment of the present application.
- RX_DELIV is 1, RX_NEXT is 7, and RX_REORD is 7.
- the reordering timer is stopped and reset.
- the reordering timer will be turned on due to the target base station. Packets 2, 3, and 5 have not yet been sent, but the transmission is required to complete before the reordering timer expires (received packets 2, 3, and 5), thus causing packets 2, 3, and 5 Lose the package.
- the present application provides a data packet processing method, which can solve the problem of packet loss caused by the re-sequencing timer being opened too early after PDCP reconstruction or data recovery, and improve data transmission. Accuracy and efficiency of data transfer to enhance the user experience.
- FIG. 5 is a schematic flowchart of a method 200 for processing a data packet according to an embodiment of the present application.
- the method 200 can be applied to the scenario shown in FIG. It can be applied to other communication scenarios, and the embodiments of the present application are not limited herein.
- the method 200 includes:
- the receiving device stops and resets the first timer, or only stops the first timer, when the first timer is running, when the packet data convergence protocol PDCP entity is rebuilt or data is restored.
- the first timer is used to detect the loss of the received data packet or to detect whether the received data packet is out of order.
- the receiving device sets a value of the first variable to a value of a second variable, where the first variable indicates a count value of a next data packet that the receiving device desires to receive, and the second variable indicates that the second variable is still waiting.
- the method for processing a data packet since the DRB in the AM mode needs to ensure that no packet is lost when the PDCP is reconstructed, if the first timer is running during the PDCP entity reconstruction or data recovery, The first timer is stopped and reset, or only the first timer is stopped, and the value of the first variable is set to the value of the second variable.
- the first timer is stopped and reset, or only the first timer is stopped, and when the PDCP entity is rebuilt or data is restored, Set the value of the first variable to the value of the second variable.
- the first variable indicates a count value of the next data packet that the receiving device desires to receive
- the second variable indicates a count value of the first data packet that is still being submitted to the upper layer that is still waiting.
- the first timer is in an operating state.
- the first timer (illustrated by taking a reordering timer as an example) is used to detect the loss of the received data packet or to detect whether the received data packet is out of order.
- the first timer is stopped and reset, that is, the first timer is stopped, and the value of the timer is reset to zero. Or just stop the first timer.
- the first variable hereinafter, RX_NEXT is taken as an example
- RX_DELIV is taken as an example
- the value of the first variable is set to the value of the second variable even if the first timer is not running.
- the first timer After the PDCP entity is reconstructed or after data recovery, if the first packet received is the No. 1 packet (not out of order), at this time, RX_NEXT is updated to 2, and RX_DELIV is updated to 2.
- the condition that the first timer is turned on is: RX_DELIV ⁇ RX_NEXT, therefore, the first timer will not be turned on. That is, the receiving device will continue to receive packets 2, 3 and 5. Packets 2, 3, and 5 are not delivered with packets 1 and 2, that is, they are not required to be the same as the prior art (the prior art will cause the first timer to be turned on), and the transmission is completed before the first timer expires ( The first timer is not turned on). Significantly reduce the possibility of packet loss in packets 2, 3 and 5.
- the second variable (RX_DELIV) is also 1, and then RX_NEXT will be updated to 5, in accordance with the first timer.
- the condition is turned on, so the first timer will be turned on. Since the received packet number 3, it is proved that packets 1 and 2 have been sent (sequentially sent), but the receiving device has not received it. Therefore, before the first timer expires, if packets 1 and 2 are received, packets 1 to 3 will be delivered, and no packet loss will occur. Instead of the prior art, although packet number 5 has not yet been sent, it requires that the transmission be completed before the first timer expires.
- the method 200 further includes:
- the receiving device receives the data packet.
- the receiving device updates the value of the first variable to a value of the fourth variable, where the third variable indicates that the receiving device receives a count value of the received data packet, the fourth variable indicating a value greater than the third variable and being the count value of the first unreceived data packet, or the fourth variable indicating the data packet received by the PDCP entity Among the count values, one is incremented from the value of the third variable, and the maximum count value is incremented by one.
- the receiving device may receive the data packet before the packet data convergence protocol PDCP entity is reconstructed or before the data recovery, or after the packet data convergence protocol PDCP entity is reconstructed or after the data is restored.
- the receiving device receives the data packet after the PDCP entity is reconstructed or after data recovery, in combination with the example shown in FIG. 4, it is assumed that the count value (COUNT) of the received first data packet is 2, that is, the third variable ( The value of RCVD_COUNT is exemplified below) is 2.
- the value of the first variable (RX_NEXT) is 1, so the value of the third variable is greater than the value of the first variable.
- the value of the first variable is updated to 3, that is, the value of the third variable is updated.
- the example shown in FIG. 4 is combined. If the PDCP entity is reconstructed before the data is restored or before the data is restored, it is assumed that the count value (COUNT) of the first packet received is 3, that is, the value of the third variable (corresponding to RCVD_COUNT) is 3. At this time, the value of the first variable (RX_NEXT) is 1, so the value of the third variable is greater than the value of the first variable, and the value of the first variable is updated to 5.
- the received data packet is the 0, 3, 4, and 6 data packets, that is, the value larger than the third variable and is the count value of the first unreceived data packet. It is 5, that is, the value of the fourth variable is 5, so the value of the first variable is updated from 1 to the value 5 of the fourth variable.
- the fourth variable indicates that the count value of the data packet that has been received by the PDCP entity is incremented by one from the value of the third variable, consecutively and the largest count value.
- the example shown in FIG. 4 is combined.
- the count value (COUNT) of the first packet received is 2, that is, the value of the third variable (corresponding to RCVD_COUNT) is 2.
- the value of the first variable (RX_NEXT) is 1. Therefore, the value of the third variable is greater than the value of the first variable.
- the count value of the data packet that the PDCP entity has received is 0, 2, 4, and 6. In the count value of the received data packet, starting from 2, and continuing with 2, then 2 is the largest one. By adding one to the base of 2, 3 is obtained, that is, the value of the first variable is updated from 1 to the value 3 of the fourth variable.
- the example shown in FIG. 4 is combined.
- the count value (COUNT) of the first packet received is 3, that is, the value of the third variable (corresponding to RCVD_COUNT) is 3.
- the value of the first variable (RX_NEXT) is 1. Therefore, the value of the third variable is greater than the value of the first variable.
- the count value of the data packets received by the PDCP entity is 0, 3, 4, and 6.
- the method for processing a data packet may update the value of the first variable (RX_NEXT) according to the situation of the data packet actually received by the receiving device, so that the first variable is more in line with its physical definition, that is, the receiving device. Expect the next packet received. At the same time, it improves the accuracy and efficiency of packet transmission and delivery, and improves the user experience.
- the method 200 further includes:
- the receiving device is configured to send a PDCP status report by an upper layer configuration, generate a bit map in the PDCP status report before the receiving device sets the value of the first variable to the value of the second variable;
- the bit map in the PDCP status report is generated according to the value of the first variable before the reconstruction of the PDCP entity or before the data recovery and the value of the second variable.
- a PDCP status report may need to be sent during PDCP entity re-establishment or data recovery.
- the PDCP status report includes two parts. The first part is the first missed count of the first lost packet. If the receiving device is configured to send a PDCP status report by the upper layer configuration, the PDCP status report always includes the first part. content.
- the second part is a bit map. Each bit in the bit map represents the status of a packet. For example, 0 means no reception and 1 means reception.
- the PDCP status report includes the second condition that the judgment condition of the second part is: the value of the first variable (RX_NEXT) > the value of the second variable (RX_DELIV)
- the PDCP status report includes the second part. If this condition is met, a PDCP status report (including the first part and the second part) is generated and sent to the upper layer for the PDCP status report. Since the value of RX_NEXT is changed during PDCP reconstruction or data recovery, it is necessary to compare the RX_NEXT and RX_DELIV values before the PDCP entity reconstruction or before data recovery, or to set the value of the first variable to the value of the second variable. prior to. The judgment is made by using the value of the first variable before the setting and the value of the second variable to determine whether the generated PDCP status report includes the content of the second part.
- the receiving device Before the PDCP entity is reconstructed or before data is restored, the receiving device has received the data packets 0, 6, and 4. At this time, RX_DELIV is 1, and RX_NEXT is 7.
- the receiving device is configured to send a PDCP status report by an upper layer configuration.
- the receiving device it is necessary to use the receiving device to set the value of the first variable to the value of the second variable, or before the PDCP entity is reconstructed or before the data is restored, the values of the first variable and the second variable are determined. Whether the PDCP status report includes the content of the second part (bit map). Before the receiving device sets the value of the first variable to the value of the second variable, or before the PDCP entity is reconstructed or before data recovery, the value of the first variable (RX_DELIV) is 1, and the value of the second variable (RX_NEXT) Is 7.
- the condition is met, that is, the generated PDCP status report includes the content of the second part (bit map), and the bit map may be: 10001010, where 1 is received and 0 is not received. It also includes the content of the first part, that is, the count value of the first lost packet is 1.
- the method 200 further includes:
- the receiving device sets the value of the fifth variable to the value of the second variable when the stop and resets the first timer, or when the first timer is stopped.
- the value of the second variable is either set to the value of the first variable when the stop and reset the first timer, or set to the value of the first variable when the first timer is stopped, or set to the fifth variable The initial value, or remains unchanged, wherein the fifth variable indicates the count value of the data packet when the first timer is started.
- the value of the fifth variable (hereinafter, RX_REORD is taken as an example) is set to the value of the second variable (RX_DELIV) when the stop is stopped and the first timer is reset, or is set to stop the first
- RX_REORD the value of the fifth variable
- RX_NEXT the value of the first variable
- FIG. 4 The following will be described by taking FIG. 4 as an example.
- the data packets received by the receiving device are data packets 0, 6, and 4, and the first timer is in an operating state.
- RX_DELIV 1.
- the value of the first variable RX_NEXT is 1, therefore, the first The value of the fifth variable RX_REORD is set to the value of the second variable RX_DELIV when the stop is reset and the first timer is reset (or only when the first timer is stopped), or is set to 1, or the value of the fifth variable RX_REORD is set.
- the value of the first variable RX_NEXT is 7 when the first timer is stopped and reset (or only when the first timer is stopped), or is set to the initial value 0 of the fifth variable, or remains unchanged. Change, that is, keep the original 7.
- the receiving device sets the value of the fifth variable RX_REORD, which is equivalent to zeroing the value of the fifth variable RX_REORD before the timer is turned on when the next timer is turned on again, that is, equivalent to no chaos
- the received data packet is received.
- the value of RX_REORD can be flexibly set.
- the receiving device may also set the value of the fifth variable to other values when the PDCP entity is re-established or the data is restored, which is not limited herein.
- the method 200 further includes:
- the receiving device turns on the first timer if the first timer is not running, and the value of the second variable is less than the value of the first variable.
- the method 200 further includes:
- the receiving device updates the value of the fifth variable to the value of the first variable, where The fifth variable indicates the count value of the data packet when the first timer is started.
- the second variable RX_DELIV is also 1, and the value of the second variable is less than the value of the first variable, that is, the packet No. 1 and the packet No. 2 that should have been received first, but now the packet No. 3 is received first. Therefore, there is an out-of-order.
- the first timer will be turned on, and the first timer is turned on to wait for the packets 1 and 2 to be received.
- the value of RX_REORD is updated to the value of RX_NEXT, that is, the value of RX_REORD is updated to 4.
- the receiving device delivers the packets (packets 1 to 3) before the packet 4 to the upper layer.
- the 1st and/or 2th data packets have not been received, then, when the first timer expires, the receiving device submits the data packet (No. 3 data packet) before the 4th data packet, At this point, it means that packets 1 and 2 are dropped.
- the first timer is a reordering timer, or the first timer may be implemented to detect a loss of the received data packet, or to detect whether the received data packet is out of order.
- the embodiment of the present application is not limited herein.
- the method 200 further includes:
- the receiving device delivers the data packet.
- the first timer is used to detect the loss of the received data packet, or is used to detect whether the received data packet is out of order.
- the first timer is turned on when the first out-of-order packet arrives, and is closed when all packets in front of the out-of-order packet are received (when submitted to the upper layer) (assuming reordering during this time period) The timer has not timed out).
- the PDCP entity that receives the data packet will hand over the data packet received when the reordering timer is turned on and all previous data packets, even if the data packet is not received before. For example, as shown in FIG. 3, in the fifth row, when the receiving device receives the packet No.
- the receiving device will use the packet before the packet No. 3 (including the packet No. 3). Submitted to the upper layer, even if packets 1 and 2 have not been received yet. This means that packets 1 and 2 will be dropped.
- the received data packet is the No. 0 data packet
- the first timer is started, and the first timer is turned on to wait for 1 and 2.
- the number packet was received.
- the receiving device delivers the packets (packets 1 to 3) before the packet 3 to the upper layer.
- the receiving device will forward the data packet before the 3rd data packet (the 3rd data packet) Submit, at this point, means that packets 1 and 2 are dropped.
- the method 200 further includes:
- the method 200 further includes:
- the receiving device delivers the data packet.
- RX_DELIV is 4 and RX_NEXT is 7.
- RX_DELIV ⁇ RX_NEXT is satisfied, so the reordering timer is turned on.
- the value of RX_REORD is 7.
- the current 4th to 6th data packets are not delivered, but the 6th and 5th data packets are received earlier than the 4th data packet, which is equivalent to receiving the out-of-order data packet. Therefore, the first timer will be started again.
- the method for processing a data packet stops or resets the first timer or only stops the first timer when the packet data convergence protocol PDCP entity is reconstructed or data is restored, and the first variable is The value is set to the value of the second variable, so that after the reconstruction or data recovery, the time when the first timer is turned on is delayed, and the packet loss problem caused by the premature opening of the first timer is avoided. At the same time, it is possible to avoid the packet loss problem of data packets that are not sent after re-establishment.
- the data packet may be delivered according to the first timer, the third variable, and the second variable. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the receiving device receiving the data packet may include: the packet data convergence protocol of the receiving device, the PDCP entity receiving the data packet, or other entities or units of the receiving device receiving the data packet, which are implemented by the present application.
- the example is not limited here.
- first variable, the second variable, the third variable, the fourth variable, and the fifth variable are only intended to distinguish between different types of variables.
- the name may also be other names and should not impose any limitation on the embodiments of the present application.
- the embodiment of the present application further provides a method for processing a data packet. As shown in FIG. 7, the method 300 includes:
- the receiving device receives the data packet.
- the receiving device updates the value of the first variable to a value of the fourth variable, where the first variable indicates that the receiving device desires to receive
- the count value of the next data packet to which the third variable indicates the count value of the data packet received by the receiving device the fourth variable indicating a value greater than the third variable and the first unreceived data packet
- the count value, or the fourth variable indicates the count value of the data packet received by the receiving device, starting from the value of the third variable, continuously and increasing the maximum count value by one.
- the receiving device normally receives the data packet, including before the packet data convergence protocol PDCP entity reconstruction or before data recovery, after the packet data convergence protocol PDCP entity is reconstructed, or after the data recovery, the data packet is received, Although the data packets are sent out at the transmitting end (transmitting device) in order (in descending order of COUNT values), the order of reception at the receiving device is likely to be out of order due to the parallel operation of multiple HARQ processes. After the receiving device receives the data packet. Referring to the example shown in FIG.
- the count value (COUNT) of the received first packet is 2, that is, the value of the third variable (corresponding to RCVD_COUNT) is 2. .
- the value of the first variable is set to the value of the first variable, that is, the value of the first variable (RX_NEXT) is 1, the value of the third variable is greater than the value of the first variable, and Updating the value of the first variable to 3, ie updating the value of the third variable to the value of the fourth variable, the fourth variable indicating a value greater than the third variable and being the count value of the first unreceived packet
- the fourth variable indicates that the count value of the data packet that has been received by the PDCP entity is incremented by one from the value of the third variable, consecutively and the largest count value.
- the data packet that has been received is the data packets of 0, 2, 4, and 6, and the value of the third variable is 2, then greater than the value of the third variable and is the first
- the count value of the unreceived data packet is 3, that is, the value of the fourth variable is 3, so the value of the first variable is updated from 1 to the value 3 of the fourth variable.
- the received data packet is the 0 and 3 data packets.
- RX_NEXT is updated to 4
- the value of RX_DELIV is 1, assuming that the packet No. 5 is received at this time, that is, the third variable (equivalent to RCVD_COUNT) The value of ) is 5. Since the value of the first variable (RX_NEXT) before receiving the data packet is 4, the value of the third variable is greater than the value of the first variable, and the value of the first variable is updated to 6. That is, after receiving the data packet No.
- the data packet that has been received is 0, 3
- 5 data packets, that is, the value larger than the third variable and the count value of the first unreceived data packet is 6 That is, the value of the fourth variable is 6, so the value of the first variable is updated from 4 to the value 6 of the fourth variable.
- the fourth variable indicates that the count value of the data packet that has been received by the PDCP entity is incremented by one from the value of the third variable, consecutively and the largest count value.
- the example shown in FIG. 4 is combined.
- the count value (COUNT) of the first packet received is 2, that is, the value of the third variable (corresponding to RCVD_COUNT) is 2.
- the value of the first variable (RX_NEXT) is 1. Therefore, the value of the third variable is greater than the value of the first variable.
- the count value of the data packet that the PDCP entity has received is 0, 2, 4, and 6. In the count value of the received data packet, starting from 2, and continuing with 2, then 2 is the largest one. By adding one to the base of 2, 3 is obtained, that is, the value of the first variable is updated from 1 to the value 3 of the fourth variable.
- the received data packet is the 0 and 3 data packets.
- the RX_NEXT is 4
- the RX_DELIV value is 1, and the first timer is in the running state, and it is assumed that the data packet No. 5 is received at this time, that is, The value of the third variable (equivalent to RCVD_COUNT) is 5.
- the value of the first variable (RX_NEXT) is 4, so the value of the third variable is greater than the value of the first variable, and the value of the first variable is updated to 6. That is, after receiving the data packet No.
- the count value of the data packet (the data packet already stored in the PDCP entity) that the terminal device has received is 0, 3, and 5, and is in the count value of the received data packet. Starting from 5, there is no continuous with 5, then 5 is the largest. Adding one to 6 gives 6, that is, the value of the first variable is updated from 4 to the value 6 of the fourth variable.
- the method for processing a data packet may update the value of the first variable (RX_NEXT) according to the situation that the receiving device actually receives the data packet, so that the first variable is more in line with its physical definition, that is, the first
- the variable is updated to the count value of the next packet that the receiving device expects to receive. At the same time, it improves the accuracy and efficiency of packet transmission and delivery, and improves the user experience.
- the method 300 further includes:
- the receiving device updates the value of the fifth variable to the value of the first variable, where the first The timer is used to detect the loss of the received data packet, or to detect whether the received data packet is out of order, and the second variable indicates the count value of the first data packet that is still waiting to be submitted to the upper layer.
- the fifth variable indicates a count value of a data packet when the first timer is started to be triggered.
- the first packet is received after the first packet.
- the first variable RX_NEXT is updated to 4
- the second variable RX_DELIV is also 1, and the value of the second variable is less than the value of the first variable, which should be received first.
- the first packet is No. 1 and No. 2, but now the packet No. 3 is received first, so there is out of order.
- the first timer will be turned on, and the first timer is turned on to wait for 1 and 2. The number packet was received.
- the value of RX_REORD is updated to the value of RX_NEXT, that is, the value of RX_REORD is updated to 4.
- the receiving device delivers the packets (packets 1 to 3) before the packet 4 to the upper layer.
- the 1st and/or 2th data packets have not been received, then, when the first timer expires, the receiving device submits the data packet (No. 3 data packet) before the 4th data packet, At this point, it means that packets 1 and 2 are dropped.
- the first timer is a reordering timer, or the first timer may be implemented to detect a loss of the received data packet, or to detect whether the received data packet is out of order.
- the embodiment of the present application is not limited herein.
- the method 300 further includes:
- the receiving device stops and resets the first timer or stops the first timer when the packet data convergence protocol PDCP entity is rebuilt or data is restored, and the first timer is used to detect the received data packet. Lost, or used to detect the presence of out-of-order packets.
- the receiving device sets a value of the first variable to a value of the second variable, and the second variable indicates a count value of the first data packet that is not yet submitted to the upper layer.
- the DRB in the AM mode needs to ensure that no packet is lost when the PDCP is reconstructed
- the first timer is running, the first timer is stopped and heavy.
- Set or stop the first timer and set the value of the first variable to the value of the second variable.
- the first timer is stopped and reset, or the first timer is stopped, and when the PDCP entity is rebuilt or data is restored, The value of the first variable is set to the value of the second variable.
- the first variable indicates a count value of the next data packet that the receiving device desires to receive
- the second variable indicates a count value of the first data packet that is still being submitted to the upper layer that is still waiting.
- the method 300 further includes:
- the bit map in the PDCP status report is generated according to the value of the first variable before the reconstruction of the PDCP entity or before the data recovery and the value of the second variable.
- the method 300 further includes:
- the receiving device turns on the first timer if the first timer is not running, and the value of the second variable is less than a value of the first variable.
- RX_DELIV the value of the second variable
- RX_NEXT the value of the first variable
- the first variable is updated to 5
- the second variable is also 1, and the value of the second variable is less than the value of the first variable. That is, the packet that should be received first is the No. 1 packet and the No. 2 packet, but now the No. 3 packet is received first, so there is an out-of-order sequence.
- the first timer will be turned on, and the first timer is turned on. In order to wait for packets 1 and 2 to be received.
- the value of RX_REORD is updated to the value of RX_NEXT, which is to update the value of RX_REORD to 5. Assume that before the first timer expires, packets 1 and 2 have been received, then the packets before the packet No.
- the method 300 further includes:
- the receiving device delivers the data packet.
- the method 300 further includes:
- the receiving device delivers the data packet.
- steps S350 to S390 are similar to the corresponding steps in the method 200, and are not described herein.
- the method for processing a data packet is based on the count value of the data packet after receiving the data packet.
- the value of the first variable (RX_NEXT) may be updated according to the situation of the data packet actually received by the receiving device, that is, if the value of the third variable (RCVD_COUNT) is greater than or equal to the value of the first variable (RX_NEXT), Receiving, by the receiving device, the value of the first variable is greater than the value of the third variable and is the count value of the first unreceived data packet, or the value of the first variable is updated to be received by the receiving device Among the count values of the data packet, the count value from the value of the third variable is continuous and the maximum count value is incremented by one.
- the first variable can be made more in line with its physical definition, ie the first variable is updated to the count value of the next packet that the receiving device expects to receive.
- the data packet may be delivered according to the first timer, the third variable, and the first variable. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the receiving device receiving the data packet may include: the packet data convergence protocol of the receiving device, the PDCP entity receiving the data packet, or other entities or units of the receiving device receiving the data packet, which are implemented by the present application.
- the example is not limited here.
- the embodiment of the present application further provides a method for processing a data packet. As shown in FIG. 9, the method 400 includes:
- the receiving device receives the data packet.
- the first timer is not running due to the packet data convergence protocol PDCP entity reconstruction or data recovery, the value of the second variable is smaller than the value of the first variable, and the value of the first variable is before the PDCP entity is reconstructed or the data is reconstructed.
- the receiving device starts the first timer when the value of the first variable is different before the recovery;
- the receiving device starts the first timer;
- the first timer is used to detect the loss of the received data packet, or is used to detect whether the received data packet is out of order.
- the first variable indicates the count value of the next data packet that the receiving device expects to receive.
- the second variable indicates the count value of the first packet that is still waiting to be submitted to the upper layer.
- the packet processing method provided by the embodiment of the present application delays the opening time of the first timer by changing the opening condition of the first timer, and avoids the packet loss problem caused by the premature opening of the first timer. At the same time, the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the receiving device receives the data packet, and the receiving device may receive the data packet before the packet data convergence protocol PDCP entity is reconstructed or before the data recovery, or after the packet data convergence protocol PDCP entity is reconstructed or after the data recovery.
- the data packets received by the receiving device are data packets 0, 6, and 4, and the first timer is in an operating state.
- the first timer (equivalent to a reordering timer) is used to detect the loss of the received data packet or to detect whether the received data packet is out of order.
- the packet data convergence protocol PDCP entity is rebuilt or the data is recovered. Therefore, if the first timer is stopped and reset, the first timer is stopped, and the value of the timer is reset to zero. Or just stop the first timer.
- the first variable (corresponding to RX_NEXT) is 7, and the second variable (corresponding to RX_DELIV) is 1.
- the first data packet received is packet number 1 (not out of order), RX_NEXT is also 7, and RX_DELIV is updated to 2, or if received.
- the first packet is packet number 3.
- RX_NEXT is also 7, and RX_DELIV is also 1.
- the first timer is turned on: the first timer is stopped due to the PDCP entity reconstruction or data recovery, the value of the second variable is smaller than the value of the first variable, and the value of the first variable is related to the PDCP entity. The value of the first variable is different before reconstruction or before data recovery.
- the first timer is not running due to the PDCP entity reconstruction or data recovery, and the first condition is satisfied.
- the value of the second variable (RX_DELIV) is smaller than the value of the first variable (RX_NEXT), the second condition is satisfied, and finally, the value of the first variable (RX_NEXT) is the first before the PDCP entity is reconstructed or before the data is recovered.
- the value of the variable is the same, both are 7, so the third condition is not met, so the first timer will not be turned on, that is, the count value (COUNT) of the first incoming packet will be greater than or The first timer will be turned on when it is equal to 7. The essence is that the first timer will not be turned on before the packet is received.
- the first timer will not be turned on until all out-of-order packets before the maximum count value packet received before the reconstruction are completed. Instead of the prior art, the first timer is turned on after receiving the No. 3 data packet, thereby causing the problem of packet loss of the No. 5 data packet to avoid the packet loss problem caused by the data packet that has not been sent yet.
- the receiving device receives the data packet, and assumes that the data packet that the receiving device has received is 0 and 1 data packets.
- the first timer (equivalent to the reordering timer) is off.
- the first variable (corresponding to RX_NEXT) is 2
- the second variable (corresponding to RX_DELIV) is 2. If the first packet received is packet number 4, RX_NEXT is updated to 5 and RX_DELIV is 2.
- the first timer is not running due to the PDCP entity reconstruction or data recovery, and the value of the second variable (RX_DELIV) is smaller than the value of the first variable (RX_NEXT), the first timing is met.
- the method 400 further includes:
- the receiving device updates a value of the fifth variable to a value of the first variable, where the fifth variable indicates a count value of a data packet when the first timer is started.
- the fifth variable (equivalent to RX_REORD) is updated to the value of the first variable (RX_NEXT), wherein the fifth variable indicates the count value of the data packet when the first timer is started.
- the value of RX_REORD is updated to the value of RX_NEXT, that is, the value of RX_REORD is updated to 8.
- the receiving device delivers all the data packets before the 8th data packet to the upper layer.
- the receiving device submits the data packet before the 8th data packet, at this time, meaning Packets that are not received will be dropped.
- the first timer is a reordering timer, or the first timer may be implemented to detect a loss of the received data packet, or to detect whether the received data packet is out of order.
- the embodiment of the present application is not limited herein.
- the method 400 further includes:
- the receiving device updates the value of the first variable to a value of the fourth variable, where the third variable indicates that the receiving device receives a count value of the data packet, the fourth variable indicating a value greater than the third variable and being the count value of the first unreceived data packet, or the fourth variable indicating the data packet that the PDCP entity has received Among the count values, one is incremented from the value of the third variable, and the maximum count value is incremented by one.
- the method 400 further includes:
- the receiving device updates the value of the fifth variable to the value of the second variable when the stop and resets the first timer, or is updated to stop the first timer.
- the value of the second variable is either updated to the value of the first variable when the stop and reset the first timer, or updated to the value of the first variable when the first timer is stopped, or updated to the fifth variable.
- the initial value, or remains unchanged, the fifth variable indicates the count value of the data packet when the first timer is started.
- the method 400 further includes:
- the receiving device stops and resets the first timer, or only stops the first timer.
- the method 400 further includes:
- the receiving device delivers the data packet.
- the method 400 further includes:
- the receiving device delivers the data packet.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the receiving device receiving the data packet may include: the packet data convergence protocol PDCP entity of the receiving device receives the data packet, or other entities or units of the receiving device receive the data packet, the application The embodiment is not limited herein.
- the method for processing a data packet since the DRB in the AM mode needs to ensure that the PDCP does not lose packets when the PDCP is reconstructed, the first timer is stopped and reset when the PDCP entity is reconstructed or the data is restored. Or only stop the first timer, and change the opening condition of the first timer to delay the opening time of the first timer after the reconstruction or data recovery, thereby avoiding the packet loss caused by the premature opening of the first timer. problem. At the same time, the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided.
- the data packet may be delivered according to the first timer, the third variable, and the first variable. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the embodiment of the present application further provides a method for processing a data packet.
- the method 500 includes:
- the receiving device receives the data packet.
- the receiving device turns on the first timer if the first timer is not running, the value of the second variable is less than the value of the first variable, and the value of the first variable is equal to the value of the third variable plus one.
- the first variable indicates a count value of a next data packet that the receiving device desires to receive
- the second variable indicates a count value of the first data packet that is still being submitted to the upper layer that is still waiting
- the third variable indicates the count value of the data packet received by the receiving device, and the first timer is used to detect the loss of the received data packet or to detect whether the received data packet is out of order.
- the data packet processing method provided by the embodiment of the present application delays the opening time of the first timer by changing the opening condition of the first timer after receiving the data packet, and avoids the opening of the first timer.
- the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the first timer is a stop due to the PDCP entity reconstruction or data recovery.
- the first variable (equivalent to RX_NEXT) is 7, and the second variable (equivalent to RX_DELIV) is 1.
- COUNT count value of the first packet received
- the value of the third variable (corresponding to RCVD_COUNT) is 3.
- the condition that the first timer is turned on is that the first timer is not running, the value of the second variable is smaller than the value of the first variable, and the value of the first variable is equal to the value of the third variable plus one.
- the first timer is not running and the first condition is met.
- the value of the second variable (RX_DELIV) is smaller than the value of the first variable (RX_NEXT), the second condition is satisfied, and finally, the value 7 of the first variable (RX_NEXT) is not equal to the value 3 of the third variable plus one.
- the third condition is not satisfied, so the first timer will not be turned on, that is, the first timer will be turned on when the count value (COUNT) of the first incoming packet is greater than or equal to 7.
- COUNT count value
- the essence is that the first timer will not be turned on before the packet is received. That is, the first timer will not be turned on until all the out-of-order packets before the maximum count value packet received before the reconstruction are completed. Instead of the prior art, the first timer is turned on after receiving the data packet No. 3, thereby causing the problem of packet loss of the fifth packet.
- the data packet that the receiving device has received is the 0 and 1 data packets, and the first timer (equivalent to the reordering timer) is in the off state.
- the first variable (equivalent to RX_NEXT) is 2
- the second variable (equivalent to RX_DELIV) is 2
- the third variable (equivalent to RCVD_COUNT)
- the value of 4 is RX_NEXT updated to 5 and RX_DELIV is 2.
- the value of the second variable (RX_DELIV) is smaller than the value of the first variable (RX_NEXT), and the value 5 of the first variable is equal to the value 4 of the third variable plus one.
- the condition that the first timer is turned on is met. Therefore, the first timer is turned on. It is possible to avoid the problem of packet loss due to the out-of-order receiving of the data packet. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the method 500 further includes:
- the receiving device sets the value of the fifth variable. Updated to the value of the first variable indicating the count value of the data packet when the first timer is started.
- the fifth variable indicates a count value of a data packet when the first timer is started to be triggered.
- the method 500 further includes:
- the receiving device delivers the data packet.
- the method 500 further includes:
- the receiving device delivers the data packet if the value of the third variable is equal to the value of the second variable.
- the method 500 further includes:
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first timer is a reordering timer, or the first timer may be implemented to detect a loss of the received data packet, or to detect whether the received data packet is out of order.
- the embodiment of the present application is not limited herein.
- the receiving device receiving the data packet may include: the packet data convergence protocol PDCP entity of the receiving device receives the data packet, or other entities or units of the receiving device receive the data packet, the application The embodiment is not limited herein.
- the data packet processing method provided by the embodiment of the present application delays the opening time of the first timer by changing the opening condition of the first timer after receiving the data packet, and avoids the opening of the first timer.
- the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the embodiment of the present application further provides a method for processing a data packet. As shown in FIG. 11, the method 600 includes:
- the receiving device stops and resets the first timer when the packet data convergence protocol PDCP entity is re-established or data recovery, or stops only the first timer, where the first timer is used to detect the loss of the received data packet. Or to detect whether the received packet is out of order.
- the receiving device sets a value of the sixth variable to a value of the second variable, where the sixth variable is used to indicate that the receiving device receives the maximum count value in the data packet after the PDCP entity reconstruction or data recovery is added. Or the sixth variable is used to indicate a maximum count value of the data packet that is received by the receiving device after the PDCP entity is reconstructed or after data recovery, and is the first count value of the data packet that is not delivered to the upper layer.
- the second variable indicates the count value of the first packet that is still waiting to be submitted to the upper layer.
- the data packet that the receiving device has received is 0, 6, and 4 data packets, and the first timer is in an operating state.
- the first timer (equivalent to a reordering timer) is used to detect the loss of the received data packet or to detect whether the received data packet is out of order.
- the first timer is stopped and reset, that is, the first timer is stopped, and the value of the timer is reset to zero. Or just stop the first timer.
- the first variable (corresponding to RX_NEXT) is 7, and the second variable (corresponding to RX_DELIV) is 1.
- the value of the sixth variable of the receiving device is set to a value of a second variable, which is used to indicate that the receiving device receives the maximum count value in the data packet after the PDCP entity reconstruction or data recovery is added.
- the maximum value of the received packet has a count value of 6, that is, the value of the sixth variable is 7.
- the sixth variable is used to indicate that the maximum count value of the data packet received by the receiving device after the PDCP entity is reconstructed or after data recovery is the first count value of the data packet that is not delivered to the upper layer.
- the maximum count value of the data packet received after the PDCP entity is reconstructed or after data recovery is 6, greater than 6 and the count value of the first undelivered data packet is 7, that is, the value of the sixth variable is 7.
- Set the value of the sixth variable to the value of the second variable, and set the value of the sixth variable to 1.
- the method for processing a data packet provided by the embodiment of the present application, since the DRB in the AM mode needs to ensure that no packet is lost when the PDCP is reconstructed, the first timer is stopped and heavy when the PDCP entity is reconstructed or data is restored. Set (zero), or just stop the first timer. A new variable (sixth variable) is introduced, and the value of the sixth variable is set to the value of the second variable. After the PDCP entity is reconstructed or after the data is restored, the sixth variable is used instead of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the first timer After the reconstruction or data recovery, the first timer is prevented from being turned on when the out-of-order packet is not received, thus avoiding the packet loss problem caused by the premature opening of the first timer. At the same time, packet loss during the reconstruction of the PDCP entity or data recovery is avoided, so that the packet loss problem of the data packet that is not sent after the re-establishment can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the method 600 further includes:
- the receiving device receives the data packet.
- the receiving device updates the value of the sixth variable to a value of the fourth variable, wherein the first variable indicates a count of the next data packet that the receiving device desires to receive.
- the fourth variable indicating that the value of the third variable is incremented by one, or the fourth variable indicating a value greater than the third variable and being the first value
- the offset value is zero or positive.
- the receiving device receives the data packet, and assumes that the received first packet has a count value (COUNT) of 2, that is, a third variable (corresponding to RCVD_COUNT).
- COUNT count value
- RX_NEXT first variable
- the value satisfying the sixth variable is smaller than the value of the first variable.
- the value of the third variable is greater than the value of the sixth variable.
- the value of the sixth variable is updated to 3, that is, the value of the third variable is updated to the value of the fourth variable, and the fourth variable indicates the first variable.
- the value of the three variables is incremented by one, or the fourth variable indicates a value greater than the third variable and is the count value of the first unreceived data packet, or the fourth variable indicates the data that the PDCP entity has received.
- the count values of the packet one is incremented from the value of the third variable, and the maximum count value is incremented by one. For example, after receiving the data packet No. 2, the data packet that has been received is the data packets of 0, 2, 4, and 6, and the value of the third variable is 2, then greater than the value of the third variable and is the first
- the count value of the unreceived data packet is 3, that is, the value of the fourth variable is 3, so the value of the first variable is updated from 1 to the value 3 of the fourth variable.
- the count value of the data packet that the PDCP entity has received is 0, 2, 4, and 6.
- 2 is the maximum. Adding one to the base of 2 gives 3, that is, the value of the sixth variable is updated from 1 to the value 3 of the fourth variable.
- the offset value is zero or positive.
- the offset value may be 0, that is, the value of the sixth variable is less than or equal to the value 7 of the first variable.
- the offset value may be a positive number greater than 0, for example, assuming 2, in combination with the example shown in FIG. 4, in the case where the sixth variable is less than or equal to 9, the sixth variable, the second variable, and the first Three variables to control the switch of the first timer.
- the data packet is delivered in conjunction with the first timer.
- the value of the sixth variable is greater than the value of the first variable, or the value of the sixth variable is greater than the value of the first variable plus the offset value
- the first variable, the second variable, and the third variable are used to control the A timer switch.
- the data packet is delivered in conjunction with the first timer.
- the method for processing a data packet stops or resets (zeros) the first timer when the PDCP entity is reconstructed or data is restored, or stops only the first timer, and introduces a new one.
- a variable (sixth variable) that sets the value of the sixth variable to the value of the second variable. After the PDCP entity is reconstructed or after data recovery, if the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or equal to the value of the first variable plus the offset value, The sixth variable replaces the role of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the value of the sixth variable is greater than the value of the first variable, or the value of the sixth variable is greater than the value of the first variable plus the offset value, continuing to use the first variable, the second variable, and the first timer pair data
- the package is submitted.
- the time when the first timer is turned on is delayed, and the packet loss during the PDCP entity reconstruction or data recovery is avoided, so that the packet loss problem of the unsent packet after the re-establishment can be avoided.
- the method 600 further includes:
- the receiving device updates the value of the first variable to the value of the fourth variable, wherein the first variable indicates a count value of the next data packet that the receiving device desires to receive, the first The three variables indicate a count value of the data packet received by the receiving device, the fourth variable indicates that the value of the third variable is incremented by one, or the fourth variable indicates a value greater than the third variable and is not received for the first one
- the count value of the data packet, or the fourth variable indicates the count value of the data packet that the PDCP entity has received, starting from the value of the third variable, consecutively and increasing the maximum count value by one.
- the value of the sixth variable is less than or equal to the value of the first variable, or the value of the sixth variable is less than or equal to the first
- the sixth variable is used instead of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the first timer is not opened when the unscheduled packet is not received, and the packet loss caused by the first timer timeout is saved after the PDCP entity is rebuilt or the data is restored, thereby improving the user experience.
- the method 600 further includes:
- the receiving device sets the value of the fifth variable to the value of the second variable when the stop and resets the first timer, or is set to stop the first timer.
- the value of the second variable is either set to the value of the first variable when the first timer is stopped and reset, or set to the value of the first variable when the first timer is stopped, or set to stop and heavy Setting the value of the sixth variable when the first timer is set, or setting the value of the sixth variable when the first timer is stopped, or setting the initial value of the fifth variable, or remaining unchanged, wherein the fifth The variable indicates the count value of the packet when the first timer is started.
- the method 600 further includes:
- the method 600 further includes:
- the receiving device updates the value of the fifth variable to the value of the sixth variable, wherein the fifth variable indicates that the trigger is initiated.
- the count value of the packet at the time of a timer.
- the method 600 further includes:
- the method 600 further includes:
- the receiving device delivers the data packet.
- the receiving device receives the data packet, including: the packet data convergence protocol PDCP entity of the receiving device receives the data packet.
- the first timer is a reordering timer, or the first timer may be implemented to detect a loss of the received data packet, or to detect whether the received data packet is out of order.
- the embodiment of the present application is not limited herein.
- the receiving device receiving the data packet may include: the packet data convergence protocol of the receiving device, the PDCP entity receiving the data packet, or other entities or units of the receiving device receiving the data packet, which are implemented by the present application.
- the example is not limited here.
- the present application also provides a method for processing a data packet. As shown in FIG. 14, the method 700 includes:
- the receiving device stops and resets the first timer or stops only the first timer when the first timer is running, or the first timer is used when the first timer is running. Detects the loss of received packets or detects the presence of out-of-order packets.
- the method for processing a data packet provided by the present application, when the PDCP entity is reconstructed or during data recovery, if the first timer is running, the first timer is stopped and reset (or reset to zero), or only the first timing is
- the device stops to avoid packet loss due to timer timeout during PDCP rebuild. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the method further includes: the receiving device setting a value of the first variable to a value of the second variable, the first variable indicating a count value of the next data packet that the receiving device expects to receive Or a serial number indicating the count value or sequence number of the first packet that is not yet being submitted to the upper layer, or the second variable indicating the count value or sequence of the most recent data packet submitted to the upper layer Plus one.
- the PDCP entity uses a reordering function before the PDCP entity is re-established or before data recovery, and after the PDCP entity is re-established or after data recovery, the PDCP connects the two acknowledgment mode AM radio links.
- the terminal device stops and resets the first timer or only stops the first timer.
- the first timer is a reordering timer.
- RX_NEXT > RX_DELIV may be replaced with conditions of "at least one stored PDCP SDU.” That is, when there is at least one stored PDCP SDU, the condition of RX_NEXT>RX_DELIV is satisfied.
- the first variable, the second variable, the third variable, the fourth variable, the fifth variable, and the sixth variable may all be represented by a count value (COUNT) of the data packet, also It can be represented by the sequence number of the packet.
- COUNT count value
- the first variable may be the serial number of the next data packet that the receiving device expects to receive (may be represented by Next_PDCP_RX_SN);
- the second variable may be the serial number of the most recent data packet submitted to the upper layer (which may be represented by Last_Submitted_PDCP_RX_SN) plus one
- the third variable may be the serial number of the received data packet, and the like. For example, after the PDCP is reconstructed, the first timer is stopped and reset, and setting the value of the first variable to the value of the second variable may be: setting Next_PDCP_RX_SN to Last_Submitted_PDCP_RX_SN.
- the terminal device stops and resets the first timer, Set Next_PDCP_RX_SN to Last_Submitted_PDCP_RX_SN.
- FIG. 15 is a schematic block diagram of a receiving device according to an embodiment of the present application. It should be understood that the receiving device may refer to the above-mentioned receiving device, and the receiving device embodiment and the method embodiment correspond to each other. A similar description may refer to the method embodiment, and the receiving device 800 shown in FIG. 15 may be used to perform corresponding to FIG. 6 and The steps performed by the first receiving device in FIG.
- the receiving device 800 includes a processor 810, a memory 820 and a transceiver 830.
- the processor 810, the memory 820 and the transceiver 830 are connected by communication, the memory 820 stores instructions, and the processor 810 is used to execute instructions stored by the memory 820. 830 is for performing specific signal transceiving under the driving of the processor 810.
- the processor 810 is configured to stop and reset the first timer or only stop the first timer when the packet data convergence protocol PDCP entity is reconstructed or the data is restored, where the first timer is used to detect the received The loss of the data packet, or used to detect whether the received data packet is out of order;
- the processor 810 is further configured to: set a value of the first variable to a value of a second variable, the first variable indicating a count value of a next data packet that the receiving device desires to receive, the second variable Indicates the count value of the first packet that was still waiting to be submitted to the upper layer.
- the receiving device stops and resets (or resets) the first timer or stops only the first timer when the first timing is running, when the PDCP entity is rebuilt or during data recovery.
- the first timer is stopped and reset, or only the first timer is stopped, and when the PDCP entity is rebuilt or data is restored, The value of the first variable is set to the value of the second variable. In this way, after the reconstruction or data recovery, the time when the first timer is turned on is delayed, and the packet loss problem caused by the premature opening of the first timer is avoided.
- the various components in the receiving device 800 communicate with one another via a communication connection, i.e., the processor 810, the memory 820, and the transceiver 830 communicate with each other through an internal connection path to communicate control and/or data signals.
- a communication connection i.e., the processor 810, the memory 820, and the transceiver 830 communicate with each other through an internal connection path to communicate control and/or data signals.
- the foregoing method embodiments of the present application may be applied to a processor, or the processor may implement the steps of the foregoing method embodiments.
- the processor may be an integrated circuit chip with signal processing capabilities.
- each step of the foregoing method embodiment may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
- the above processor may be a central processing unit (CPU), a network processor (NP) or a combination of a CPU and an NP, a digital signal processor (DSP), an application specific integrated circuit (application). Specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component.
- CPU central processing unit
- NP network processor
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the steps of the method disclosed in connection with the present application may be directly embodied by the execution of the hardware decoding processor or by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
- the transceiver 830 is configured to receive a data packet; the processor 810 is further configured to: when the value of the third variable is greater than or equal to the value of the first variable And updating the value of the first variable to a value of the fourth variable, wherein the third variable indicates a count value of the data packet received by the receiving device, the fourth variable indicating a value greater than the third variable and The count value of the first unreceived data packet, or the fourth variable indicating the count value of the data packet that the PDCP entity has received, starting from the value of the third variable, continuous and the largest count value plus One.
- the processor 810 is further configured to: if the receiving device is configured to send a PDCP status report by an upper layer configuration, setting, by the processor, the value of the first variable to the second Before generating the bit map in the PDCP status report; or if the receiving device is configured to send the PDCP status report by the upper layer configuration, according to the value of the first variable and the second variable before the PDCP entity is reconstructed or before data recovery The value of the bitmap is generated in the PDCP status report.
- the processor 810 is further configured to: when the PDCP entity is rebuilt or during data recovery, set a value of the fifth variable to the stop and reset the first timer.
- the value of the second variable, or the value of the fifth variable is set to the value of the second variable when the first timer is stopped, or the value of the first variable when the stop is reset and the first timer is reset, Or set to stop the first timer, the value of the first variable, or set to the initial value of the fifth variable, or remain unchanged, wherein the fifth variable indicates the data packet when the first timer is triggered to be triggered.
- Count value when the PDCP entity is rebuilt or during data recovery, set a value of the fifth variable to the stop and reset the first timer.
- the first timer is a reordering timer.
- the processor 810 may be implemented by a processing module
- the memory 820 may be implemented by a storage module
- the transceiver 830 may be implemented by a transceiver module.
- the receiving device 900 may include a processing module 910.
- the receiving device 800 shown in FIG. 15 or the receiving device 900 shown in FIG. 16 can implement the steps performed by the receiving device in FIG. 5 and FIG. 6 described above. To avoid repetition, details are not described herein again.
- FIG. 17 shows a schematic block diagram of a receiving device 1000 of one embodiment of the present application. It should be understood that the receiving device embodiment and the method embodiment correspond to each other. For a similar description, refer to the method embodiment.
- the receiving device 1000 includes: a processor 1010, a memory 1020, and a transceiver 1030.
- the processor 1010, The memory 1020 and the transceiver 1030 are connected by communication, the memory 1020 stores instructions, the processor 1010 is used to execute instructions stored by the memory 1020, and the transceiver 1030 is configured to perform specific signal transceiving under the driving of the processor 1010.
- the transceiver 1030 is configured to receive a data packet.
- the processor 1010 is configured to: when the value of the third variable is greater than or equal to the value of the first variable, update the value of the first variable to a value of the fourth variable, where the first variable indicates the receiving a count value of the next data packet that the device expects to receive, the third variable indicating a count value of the data packet received by the receiving device, the fourth variable indicating a value greater than the third variable and being the first one not received.
- the count value of the data packet, or the fourth variable indicates the count value of the data packet received by the receiving device, starting from the value of the third variable, consecutively and increasing the maximum count value by one.
- the receiving device provided by the present application may update the value of the first variable according to the situation that the receiving device actually receives the data packet, so that the first variable is more in line with its physical definition, that is, the first variable is updated to be received by the receiving device.
- the count value of the next packet At the same time, it improves the accuracy and efficiency of packet transmission and delivery, and improves the user experience.
- the various components in the receiving device 1000 communicate with each other via a communication connection, i.e., the processor 1010, the memory 1020, and the transceiver 1030 communicate with each other through an internal connection path to communicate control and/or data signals.
- the foregoing method embodiments of the present application may be applied to a processor, or the processor may implement the steps of the foregoing method embodiments.
- the processor may be an integrated circuit chip with signal processing capabilities.
- each step of the foregoing method embodiment may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
- the above processor may be a CPU, a network processor NP or a combination of a CPU and an NP, a DSP, an ASIC, an FPGA or other programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component.
- the methods, steps, and logical block diagrams disclosed in this application can be implemented or executed.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the steps of the method disclosed in connection with the present application may be directly embodied by the execution of the hardware decoding processor or by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
- processor 1010 is further configured to:
- the value of the fifth variable is used to detect the receiving The arrival of the received data packet, or for detecting whether the received data packet is out of order, the second variable indicating the count value of the first data packet that is still being submitted to the upper layer, which is still waiting, the fifth variable indication Trigger the count value of the packet when the first timer is started.
- the processor 1010 is further configured to: if the receiving device is configured to send a PDCP status report by an upper layer configuration, setting, by the processor, the value of the first variable to the second Before generating the bit map in the PDCP status report; or if the receiving device is configured to send the PDCP status report by the upper layer configuration, according to the value of the first variable and the second variable before the PDCP entity is reconstructed or before data recovery The value of the bitmap is generated in the PDCP status report.
- processor 1010 is further configured to:
- the first timer is a reordering timer.
- the processor 1010 may be implemented by a processing module
- the memory 1020 may be implemented by a storage module
- the transceiver 1030 may be implemented by a transceiver module.
- the receiving device 1100 may include a processing module 1110. The storage module 1120 and the transceiver module 1130.
- the receiving device 1000 shown in FIG. 17 or the receiving device 1100 shown in FIG. 18 can implement the steps performed by the receiving device in FIG. 7 and FIG. 8 described above. To avoid repetition, details are not described herein again.
- FIG. 19 shows a schematic block diagram of a receiving device 1200 of one embodiment of the present application. It should be understood that the receiving device embodiment and the method embodiment correspond to each other. For a similar description, refer to the method embodiment.
- the receiving device 1200 includes: a processor 1210, a memory 1220, and a transceiver 1230.
- the processor 1210, The memory 1220 and the transceiver 1230 are connected by communication, the memory 1220 stores instructions, the processor 1210 is used to execute instructions stored by the memory 1220, and the transceiver 1230 is configured to perform specific signal transceiving under the driving of the processor 1210.
- the transceiver 1230 is configured to receive a data packet.
- the processor 1210 is configured to: when the first timer is not running due to the packet data convergence protocol PDCP entity reconstruction or data recovery, the value of the second variable is smaller than the value of the first variable, and the value of the first variable is related to the PDCP The receiving device starts the first timer before the entity is reconstructed or the value of the first variable is different before the data is restored.
- the receiving device turns on the first timer if the first timer is not running due to the packet data convergence protocol PDCP entity reconstruction or data recovery, and the value of the second variable is smaller than the value of the first variable;
- the first timer is configured to detect the loss of the received data packet, or to detect whether the received data packet is out of order, and the first variable indicates a count value of the next data packet that the receiving device expects to receive,
- the second variable indicates the count value of the first packet that is still waiting to be submitted to the upper layer.
- the receiving device provided by the present application delays the opening time of the first timer by changing the opening condition of the first timer, and avoids the packet loss problem caused by the premature opening of the first timer. At the same time, the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- receiving device 1200 communicates with one another via a communication connection, i.e., processor 1210, memory 1220, and transceiver 1230 communicate with each other via internal connection paths to communicate control and/or data signals.
- processor 1210, memory 1220, and transceiver 1230 communicate with each other via internal connection paths to communicate control and/or data signals.
- the foregoing method embodiments of the present application may be applied to a processor, or the processor may implement the steps of the foregoing method embodiments.
- the processor may be an integrated circuit chip with signal processing capabilities.
- the steps of the foregoing method embodiments may be completed by an integrated logic circuit of hardware in the processor or an instruction in the form of software.
- the above processor may be a CPU, a network processor NP or a combination of a CPU and an NP, a DSP, an ASIC, an FPGA or other programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component.
- the methods, steps, and logical block diagrams disclosed in this application can be implemented or executed.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the steps of the method disclosed in connection with the present application may be directly embodied by the execution of the hardware decoding processor or by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
- the processor 1210 is further configured to stop and reset the first timing if the first timer is running when the PDCP entity is rebuilt or data is restored. Or just stop the first timer.
- the first timer is a reordering timer.
- the processor 1210 may be implemented by a processing module
- the memory 1220 may be implemented by a storage module
- the transceiver 1230 may be implemented by a transceiver module.
- the receiving device 1300 may include a processing module 1310.
- the receiving device 1200 shown in FIG. 19 or the receiving device 1300 shown in FIG. 20 can implement the steps performed by the receiving device in FIG. 9 described above. To avoid repetition, details are not described herein again.
- FIG. 21 shows a schematic block diagram of a receiving device 1400 of one embodiment of the present application. It should be understood that the receiving device embodiment and the method embodiment correspond to each other, and a similar description may refer to the method embodiment.
- the receiving device 1400 includes: a processor 1410, a memory 1420, and a transceiver 1430, and a processor 1410.
- the memory 1420 and the transceiver 1430 are connected by communication, the memory 1420 stores instructions, the processor 1410 is used to execute instructions stored by the memory 1420, and the transceiver 1430 is configured to perform specific signal transceiving under the driving of the processor 1410.
- the transceiver 1430 is configured to receive a data packet
- the processor 1410 is configured to: when the first timer is not running, the value of the second variable is less than the value of the first variable, and the value of the first variable is equal to the value of the third variable plus one, a timer, wherein the first variable indicates a count value of a next data packet that the receiving device desires to receive, and the second variable indicates a count value of a first data packet that is still being submitted to the upper layer that is still waiting,
- the third variable indicates a count value of the data packet received by the receiving device, the first timer is used to detect the loss of the received data packet, or is used to detect whether the received data packet is out of order.
- the receiving device delays the opening time of the first timer by changing the opening condition of the first timer after receiving the data packet, thereby avoiding the loss caused by the premature opening of the first timer.
- Package problem At the same time, the packet loss problem of the data packet due to reconstruction of the PDCP entity or data recovery can be avoided. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- receiving device 1400 communicates with each other via a communication connection, i.e., processor 1410, memory 1420, and transceiver 1430, communicating control and/or data signals through internal connection paths.
- a communication connection i.e., processor 1410, memory 1420, and transceiver 1430, communicating control and/or data signals through internal connection paths.
- the foregoing method embodiments of the present application may be applied to a processor, or the processor may implement the steps of the foregoing method embodiments.
- the processor may be an integrated circuit chip with signal processing capabilities.
- each step of the foregoing method embodiment may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
- the above processor may be a CPU, a network processor NP or a combination of a CPU and an NP, a DSP, an ASIC, an FPGA or other programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component.
- the methods, steps, and logical block diagrams disclosed in this application can be implemented or carried out.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the steps of the method disclosed in connection with the present application may be directly embodied by the execution of the hardware decoding processor or by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
- the processor 1410 is further configured to: when the first timer is not running, the value of the second variable is less than a value of the first variable, and the value of the first variable When the value of the third variable is equal to one, the value of the fifth variable is updated to the value of the first variable, and the fifth variable indicates the count value of the data packet when the first timer is started.
- the processor 1410 is further configured to: when the packet data convergence protocol PDCP entity is rebuilt or during data recovery, if the first timer is running, stop and reset the The first timer, or only the first timer is stopped.
- the first timer is a reordering timer.
- the processor 1410 may be implemented by a processing module
- the memory 1420 may be implemented by a storage module
- the transceiver 1430 may be implemented by a transceiver module.
- the receiving device 1500 may include a processing module 1510.
- the receiving device 1400 shown in FIG. 21 or the receiving device 1500 shown in FIG. 22 can implement the steps performed by the receiving device in FIG. 10 described above. To avoid repetition, details are not described herein again.
- FIG. 23 shows a schematic block diagram of a receiving device 1600 of one embodiment of the present application. It should be understood that the receiving device embodiment and the method embodiment correspond to each other, and a similar description may refer to the method embodiment.
- the receiving device 1600 includes: a processor 1610, a memory 1620, and a transceiver 1630, and the processor 1610.
- the memory 1620 and the transceiver 1630 are connected by communication, the memory 1620 stores instructions, the processor 1610 is used to execute instructions stored by the memory 1620, and the transceiver 1630 is configured to perform specific signal transceiving under the driving of the processor 1610.
- the processor 1610 is configured to stop and reset the first timer when the packet data convergence protocol PDCP entity is re-established or data recovery, or stop only the first timer, where the first timer is used to detect the received data. The loss of the packet, or used to detect whether the received packet is out of order;
- the processor 1610 is further configured to: set a value of the sixth variable to a value of the second variable, where the sixth variable is used to indicate that the receiving device is the largest one of the data packets received after the PDCP entity is reconstructed or after data recovery
- the count value is incremented by one, or the sixth variable is used to indicate that the maximum count value in the data packet received by the receiving device after the PDCP entity is reconstructed or after data recovery is the first data that is not submitted to the upper layer.
- the count value of the packet indicating the count value of the first packet that is still waiting to be submitted to the upper layer.
- the receiving device stops and resets (zeros) the first timer when the PDCP entity is reconstructed or data is restored, or stops only the first timer, and introduces a new variable (sixth variable) ), setting the value of the sixth variable to the value of the second variable.
- the sixth variable is used instead of the first variable, that is, the data packet is delivered according to the sixth variable, the second variable, and the first timer.
- the first timer is prevented from being opened due to the occurrence of the out-of-order packet, and the packet loss problem caused by the premature opening of the first timer is avoided.
- the various components in receiving device 1600 communicate with each other via a communication connection, i.e., processor 1610, memory 1620, and transceiver 1630, communicating control and/or data signals through internal connection paths.
- a communication connection i.e., processor 1610, memory 1620, and transceiver 1630, communicating control and/or data signals through internal connection paths.
- the foregoing method embodiments of the present application may be applied to a processor, or the processor may implement the steps of the foregoing method embodiments.
- the processor may be an integrated circuit chip with signal processing capabilities.
- each step of the foregoing method embodiment may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
- the above processor may be a CPU, a network processor NP or a combination of a CPU and an NP, a DSP, an ASIC, an FPGA or other programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component.
- the methods, steps, and logical block diagrams disclosed in this application can be implemented or executed.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the steps of the method disclosed in connection with the present application may be directly embodied by the execution of the hardware decoding processor or by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method.
- the transceiver 1630 is configured to receive, by the receiving device, a data packet; the processor 1610 is further configured to: when the value of the sixth variable is less than or equal to the first variable a value, or a value of the sixth variable is less than or equal to a value of the first variable plus an offset value, and, in a case where the value of the third variable is greater than or equal to the value of the sixth variable, the sixth The value of the variable is updated to a value of the fourth variable, wherein the first variable indicates a count value of a next data packet that the receiving device desires to receive, and the third variable indicates a count value of the data packet received by the receiving device, The fourth variable indicates that the value of the third variable is incremented by one, or the fourth variable indicates a value greater than the third variable and is the count value of the first unreceived data packet, or the fourth variable indicates the PDCP Among the count values of the data packets that have been received by the entity, one is incremented from
- the processor 1610 Further, if the value of the sixth variable is greater than the value of the first variable, or the value of the sixth variable is greater than the value of the first variable plus the offset value, and the value of the third variable is greater than or equal to In the case of the value of the first variable, the value of the first variable is updated to the value of the fourth variable, wherein the first variable indicates a count value of the next data packet that the receiving device desires to receive, the third The variable indicates a count value of the data packet received by the receiving device, the fourth variable indicates that the value of the third variable is incremented by one, or the fourth variable indicates a value greater than the third variable and is the first unreceived The count value of the data packet, or the fourth variable indicating the count value of the data packet that the PDCP entity has received, is incremented by one from the value of the third variable, consecutively and the largest count value.
- the first timer is a reordering timer.
- the offset value is zero or positive.
- the processor 1610 may be implemented by a processing module
- the memory 1620 may be implemented by a storage module
- the transceiver 1630 may be implemented by a transceiver module.
- the receiving device 1700 may include a processing module 1710. The storage module 1720 and the transceiver module 1730.
- the receiving device 1600 shown in FIG. 23 or the receiving device 1700 shown in FIG. 24 can implement the steps performed by the receiving device in the foregoing FIGS. 11 to 13. To avoid repetition, details are not described herein again.
- FIG. 25 is a schematic block diagram of a receiving device according to an embodiment of the present application. It should be understood that the receiving device embodiment and the method embodiment correspond to each other, and a similar description may refer to the method embodiment, and the receiving device 1800 shown in FIG. 25 may be used to perform the steps corresponding to the receiving device in FIG.
- the receiving device 1800 includes a processor 1810, a memory 1820 and a transceiver 1830.
- the processor 1810, the memory 1820 and the transceiver 1830 are connected by communication, the memory 1820 stores instructions, and the processor 1810 is configured to execute instructions stored by the memory 1820, the transceiver
- the 1830 is configured to perform specific signal transceiving under the driving of the processor 1810.
- the processor 1810 is configured to stop and reset the first timer or only stop the first timer when the first timing is running, when the packet data convergence protocol PDCP entity is rebuilt or during data recovery, the first timing It is used to detect the loss of received data packets or to detect the presence or absence of out of order of received data packets.
- the receiving device stops and resets (or resets) the first timer when the first timing is running, or stops only the first timer when the PDCP entity is rebuilt or data is restored. Packet loss due to timer timeout during PDCP reestablishment. Improve the accuracy of data transmission and the efficiency of data transmission, and improve the user experience.
- the processor 1810 is further configured to set a value of the first variable to a value of the second variable, where the first variable indicates the next data that the receiving device expects to receive. a count value or a serial number of the packet indicating the count value or serial number of the first data packet that is not yet being submitted to the upper layer, or the second variable indicating the most recent data packet submitted to the upper layer Count value or serial number plus one.
- the processor 1810 is further configured to: before the PDCP entity is re-established or before data recovery, the PDCP entity uses a reordering function, after the PDCP entity is re-established or after data recovery, The PDCP connects the two radio link control RLC entities of the acknowledge mode AM.
- the processor 1810 may be implemented by a processing module
- the memory 1820 may be implemented by a storage module
- the transceiver 1830 may be implemented by a transceiver module.
- the receiving device 1900 may include a processing module 1910.
- the receiving device 1800 shown in FIG. 25 or the receiving device 1900 shown in FIG. 26 can implement the steps performed by the receiving device in FIG. 14 described above. To avoid repetition, details are not described herein again.
- the embodiment of the present application further provides a computer readable medium for storing computer program code, the computer program comprising instructions for executing the method of data packet processing of the embodiment of the present application in FIG. 5 to FIG.
- the readable medium may be a read-only memory (ROM) or a random access memory (RAM), which is not limited in this embodiment of the present application.
- the embodiment of the present application further provides a system chip, which includes a processing unit and a communication unit.
- the processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pin or a circuit.
- the processing unit may execute computer instructions to cause the chip within the terminal to perform the method of packet processing of any of the above aspects.
- the computer instructions are stored in a storage unit.
- the storage unit is a storage unit in the chip, such as a register, a cache, etc.
- the storage unit may also be a storage unit located outside the chip in the terminal, such as a ROM or other device that can store static information and instructions.
- ROM read-only memory
- the processor mentioned in any of the above may be a CPU, a microprocessor, an ASIC, or an integrated circuit of one or more programs for controlling the method of data transmission of the first direct link described above.
- the disclosed systems, devices, and methods may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the unit is only a logical function division.
- there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- 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.
- the functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product.
- the technical solution of the present application which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
- the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present application.
- the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种数据包处理的方法和设备,该方法包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时器在运行,停止并重置第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;该接收设备将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望的下一个接收到的数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。本申请提供的数据包处理的方法,可以解决在PDCP重建或者数据恢复后,由于重排序定时器开启的太早而可能导致的产生丢包的问题,提高了数据传输的准确性和数据传输的效率,提高用户体验。
Description
本申请涉及通信领域,更为具体的,涉及一种数据包处理的方法和设备。
在空口传输中,虽然数据包在发射端空口是按序发出,但由于多个混合自动重传请求(Hybrid Automatic Repeat request,HARQ)进程的并行运行,在接收端接收的顺序很有可能是乱序的。在长期演进系统(Long Term Evolution,LTE)中层2协议栈中的无线链路控制(Radio Link Control,RLC)负责进行将接收到的乱序的数据包进行重排序,递交给其上层的分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层。在第5代移动通信(the 5th Generation,5G)新空口(New Radio,NR)中,层2协议栈中的RLC层不再具有重排序功能,而由层2协议栈中的PDCP层负责对接收到的乱序的数据包进行重排序。
在确认模式(Acknowledge Mode,AM)下的数据无线承载(Data Radio Bearer,DRB)需要保证在PDCP重建时或者数据恢复时不丢包,由于需要保证按序递交,在重建时将保留当前已经收到的乱序的数据包以及数据包的编号。在NR PDCP发生重建时,可能会产生丢包的问题,严重影响了数据传输的准确性,降低了数据传输的效率,用户体验差。
发明内容
本申请提供一种数据包处理的方法和设备,可以解决在PDCP重建或者数据恢复后,由于重排序定时器开启的太早而可能导致的产生丢包的问题,提高了数据传输的准确性和数据传输的效率,提高用户体验。
第一方面,提供了一种数据包处理的方法,包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只停止第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;该接收设备将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望的下一个接收到的数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
第一方面提供的数据包处理的方法,在PDCP实体重建时或数据恢复时,如果第一定时在在运行时,将第一定时器停止并重置(或归零),或者只将第一定时器停止,并将第一变量的值设置为第二变量的值。或者,在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只第一定时器停止,并在PDCP实体重建时或数据恢复时,将第一变量的值设置为第二变量的值。这样,在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
在第一方面的一种可能的实现方式中,该方法还包括:该接收设备接收数据包;在第三变量的值大于或者等于该第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。在该实现方式中,可以根据接收设备实际接收到的数据包的情况,来更新第一变量的值,可以使得第一变量更符合其物理定义,即接收设备期待接收到的下一个数据包。同时,提高了数据包传输和递交的准确性和效率,提高用户体验。
在第一方面的一种可能的实现方式中,该方法还包括:在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值设置为该停止并重置第一定时器时该第二变量的值,或者将第五变量的值设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一定时器时该第一变量的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该第五变量的初始值,或者保持不变,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第一方面的一种可能的实现方式中,该方法还包括:如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成该PDCP状态报告;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成该PDCP状态报告。
在第一方面的一种可能的实现方式中,该方法还包括:如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成该PDCP状态报告中的比特地图;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成该PDCP状态报告中的比特地图。
在第一方面的一种可能的实现方式中,该方法还包括:在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备开启该第一定时器。
在第一方面的一种可能的实现方式中,该方法还包括:在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备将第五变量的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第一方面的一种可能的实现方式中,该第一定时器为重排序定时器。
在第一方面的一种可能的实现方式中,该方法还包括:在该第一定时器超时的情况下,该接收设备对数据包进行递交。
在第一方面的一种可能的实现方式中,该方法还包括:在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
在第一方面的一种可能的实现方式中,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
在第一方面的一种可能实现的方式中,该第一变量为RX_NEXT,该第二变量为RX_DELIV,该第三变量为RCVD_COUNT,该第五变量为RX_REORD,该第一定时器为t-Reordering。
第二方面,提供了一种数据包处理的方法,包括:接收设备接收数据包;在第三变量的值大于或者等于第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量 的值,其中,该第一变量指示该接收设备期望的下一个接收到的数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该接收设备接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
第二方面提供的数据包处理的方法,可以根据接收设备实际接收到的数据包的情况,来更新第一变量的值,可以使得第一变量更符合其物理定义,即将第一变量更新为接收设备期待接收到的下一个数据包的计数值。同时,提高了数据包传输和递交的准确性和效率,提高用户体验。
在第二方面的一种可能的实现方式中,该方法还包括:该接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时器正在运行,停止并重置该第一定时器,或者只停止该第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
在第二方面的一种可能的实现方式中,该方法还包括:该接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,该接收设备将第一变量的值设置为第二变量的值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
在第二方面的一种可能的实现方式中,该方法还包括:如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成该PDCP状态报告;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成该PDCP状态报告。
在第二方面的一种可能的实现方式中,该方法还包括:如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成该PDCP状态报告中的比特地图;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成该PDCP状态报告中的比特地图。
在第二方面的一种可能的实现方式中,该方法还包括:在第一定时器不在运行、并且第二变量的值小于该第一变量的值的情况下,该接收设备将第五变量的值更新为该第一变量的值,其中,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第二方面的一种可能的实现方式中,该方法还包括:该方法还包括:在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备开启该第一定时器,其中,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
在第二方面的一种可能的实现方式中,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
在第二方面的一种可能的实现方式中,该第一定时器为重排序定时器。
在第二方面的一种可能的实现方式中,该方法还包括:在该第一定时器超时的情况下,该接收设备对数据包进行递交。
在第二方面的一种可能的实现方式中,该方法还包括:在该第三变量的值等于该第二变量的值情况下,该接收设备对数据包进行递交。
在第二方面的一种可能实现的方式中,第一变量为RX_NEXT,第二变量为 RX_DELIV,第三变量为RCVD_COUNT,第五变量为RX_REORD表示,该第一定时器为t-Reordering。
第三方面,提供了一种数据包处理的方法,包括:接收设备接收数据包;在由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,该接收设备开启第一定时器;或者,在不是由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,该接收设备开启第一定时器;其中,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
第三方面提供的数据包处理的方法,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
在第三方面的一种可能的实现方式中,该方法还包括:在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只将第一定时器停止。
在第三方面的一种可能的实现方式中,该方法还包括:该接收设备将第五变量的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第三方面的一种可能的实现方式中,该方法还包括:在第三变量的值大于或者等于第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
在第三方面的一种可能的实现方式中,该方法还包括:在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值更新为该停止并重置第一定时器时该第二变量的值,或者将第五变量的值更新为停止第一定时器时该第二变量的值,或者更新为该停止并重置第一定时器时该第一变量的值,或者更新为停止第一定时器时该第一变量的值,或者更新为该第五变量的初始值,或者保持不变,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第三方面的一种可能的实现方式中,该第一定时器为重排序定时器。
在第三方面的一种可能的实现方式中,该方法还包括:在该第一定时器超时的情况下,该接收设备对数据包进行递交。
在第三方面的一种可能的实现方式中,该方法还包括:在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
在第三方面的一种可能的实现方式中,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
在第三方面的一种可能实现的方式中,第一变量为RX_NEXT,第二变量为RX_DELIV,第三变量为RCVD_COUNT,第五变量为RX_REORD,该第一定时器为t-Reordering。
第四方面,提供了一种数据包处理的方法,包括:接收设备接收数据包;在第一定时 器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,该接收设备开启该第一定时器,其中,该第一变量指示该接收设备期望的下一个接收到的数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
第四方面提供的数据包处理的方法,在接收设备接收到数据包后,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
在第四面的一种可能的实现方式中,该方法还包括:在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只将第一定时器停止。
在第四面的一种可能的实现方式中,在该第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,该接收设备将第五变量的值更新为第一变量的值,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第四面的一种可能的实现方式中,该方法还包括:在该第一定时器超时的情况下,该接收设备对数据包进行递交。
在第四面的一种可能的实现方式中,该方法还包括:在该第三变量的值等于该第二变量的值情况下,该接收设备对数据包进行递交。
在第四面的一种可能的实现方式中,该第一定时器为重排序定时器。
在第四面的一种可能的实现方式中,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
在第四方面的一种可能实现的方式中,第一变量为RX_NEXT,第二变量为RX_DELIV,第三变量为RCVD_COUNT,第五变量为RX_REORD,该第一定时器为t-Reordering。
第五方面,提供一种数据包处理的方法,包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只将第一定时器停止,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;所述接收设备将第六变量的值设置为第二变量的值,所述第六变量用于指示所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中最大的计数值加一,或者所述第六变量用于指示大于所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中的最大的计数值、并且为第一个未递交给上层的数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
第五方面提供的数据包处理的方法,在PDCP实体重建时或数据恢复时,将第一定时器停止并重置(归零),或者只将第一定时器停止,并引入了新的变量(第六变量),将该第六变量的值设置为第二变量的值。在PDCP实体重建后或数据恢复后,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,避免了第一定时器在未出现收到乱序包造成的开启,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效 率,提高用户体验。
在第五方面的一种可能的实现方式中,该方法还包括:在该PDCP实体重建或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只将第一定时器停止。
在第五方面的一种可能的实现方式中,该方法还包括:在该PDCP实体重建或数据恢复时,将该第六变量的值设置为该第二变量的值。
在第五方面的一种可能的实现方式中,该方法还包括:该接收设备接收数据包;在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第六变量的值的情况下,该接收设备将该第六变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。在该实现方式中,在PDCP实体重建后或数据恢复后,在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在该第六变量的值大于第一变量的值,或者该第六变量的大于第一变量的值加偏置值的情况下,继续利用第一变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,保证了第一定时器不在未接到乱序包的情况下开启,避免了PDCP实体重建或数据恢复后由于该第一定时器超时造成的丢包,提高用户体验。
在第五方面的一种可能的实现方式中,该方法还包括:该接收设备接收数据包;在该第六变量的值大于第一变量的值,或者该第六变量的值大于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
在第五方面的一种可能的实现方式中,该方法还包括:在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值设置为该停止并重置第一定时器时该第二变量的值,或者将第五变量的值设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一定时器时该第一变量的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该停止并重置第一定时器时该第六变量的值,或者设置为停止并重第一定时器时该第六变量的值,或者设置为该第五变量的初始值,或者保持不变,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第五方面的一种可能的实现方式中,该方法还包括:在该第六变量的值小于或者等于该第一变量的值,或者该第六变量的值小于或者等于该第一变量的值加该偏置值的情况下,并且,在该第一定时器不在运行、该第二变量的值小于该第六变量的值的情况下,该接收设备开启该第一定时器。
在第五方面的一种可能的实现方式中,该方法还包括:在该第六变量的值小于或者等 于该第一变量的值,或者该第六变量的值小于或者等于该第一变量的值加偏置值的情况下,并且,在该第一定时器不在运行、该第二变量的值小于该第六变量的值的情况下,该接收设备将第五变量的值更新为该第六变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
在第五方面的一种可能的实现方式中,该方法还包括:在该第一定时器超时的情况下,该接收设备对数据包进行递交。
在第五方面的一种可能的实现方式中,该方法还包括:在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
在第五方面的一种可能的实现方式中,该第一定时器为重排序定时器。
在第五方面的一种可能的实现方式中,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
在第五方面的一种可能实现的方式中,第一变量为RX_NEXT,第二变量为RX_DELIV,第三变量为RCVD_COUNT,第五变量为RX_REORD,该第一定时器为t-Reordering。
在第五方面的一种可能的实现方式中,该偏置值为零或正值。
第六方面,提供了一种数据包处理的方法,包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时器在在运行时,停止并重置第一定时器或只停止第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
第六方面提供的数据包处理的方法,在PDCP实体重建时或数据恢复时,如果第一定时器在运行时,将第一定时器停止并重置(或归零),或者只将第一定时器停止,避免由于PDCP重建期间定时器超时,造成丢包。提高了数据传输的准确性和数据传输的效率,提高用户体验。
在第六方面的一种可能的实现方式中,该方法还包括:该接收设备将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望接收到的下一个数据包的计数值或序列号,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值或者序列号,或该第二变量指示最近一个递交给上层的数据包的计数值或者序列号加一。
在第六方面的一种可能的实现方式中,在PDCP实体重建前或数据恢复前,该PDCP实体使用重排序功能,并且在PDCP实体重建后或数据恢复后,该PDCP连接两个确认模式AM的无线链路控制RLC实体的情况下,该终端设备停止并重置第一定时器或只停止第一定时器。
在第六方面的一种可能的实现方式中,该第一定时器为重排序定时器。
第七方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第一方面及其各种实现方式中的数据包处理的方法。
第八方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第一方面或第一方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第九方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第二方面及其各种实现方式中的数据包处理的方法。
第十方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第二方面或第二方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第十一方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第三方面及其各种实现方式中的数据包处理的方法。
第十二方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第三方面或第三方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第十三方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第四方面及其各种实现方式中的数据包处理的方法。
第十四方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第四方面或第四方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第十五方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第五方面及其各种实现方式中的数据包处理的方法。
第十六方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第五方面或第五方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第十七方面,提供了一种接收设备,包括处理器、存储器和收发器,用于支持该接收设备执行上述方法中相应的功能。处理器、存储器和收发器通过通信连接,存储器存储指令,收发器用于在处理器的驱动下执行具体的信号收发,该处理器用于调用该指令实现上述第六方面及其各种实现方式中的数据包处理的方法。
第十八方面,提供了一种接收设备,包括处理模块、存储模块和收发模块,用于支持接收设备执行上述第六方面或第六方面的任意可能的实现方式中的接收设备的功能,功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,硬件或软件包括一个或者多个与上述功能相对应的模块。
第十九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面至第六方面,或第一方面至第六方面中的任一种可能的实现方式的方法的指令。
第二十方面,提供了一种系统芯片,包括:处理单元和通信单元,该处理单元,该处理单元可执行计算机指令,以使该终端内的芯片执行上述第一方面至第六方面,或第一方面至第六方面中的任一种可能的实现方式的方法。
图1是适用于本申请的数据包处理的方法的通信系统的示意图。
图2是图2是数据包的计数值(COUNT)结构的示意性结构图。
图3是图3是数据包的递交以及各个变量更新过程的示意图。
图4是本申请一个实施例PDCP重建前接收到的数据包的示意图。
图5是本申请一个实施例的数据包处理的方法的示意性流程图。
图6是本申请另一个实施例的数据包处理的方法的示意性流程图。
图7是本申请一个实施例的数据包处理的方法的示意性流程图。
图8是本申请另一个实施例的数据包处理的方法的示意性流程图。
图9是本申请一个实施例的数据包处理的方法的示意性流程图。
图10是本申请另一个实施例的数据包处理的方法的示意性流程图。
图11是本申请一个实施例的数据包处理的方法的示意性流程图。
图12是本申请另一个实施例的数据包处理的方法的示意性流程图。
图13是本申请又一个实施例的数据包处理的方法的示意性流程图。
图14是本申请又一个实施例的数据包处理的方法的示意性流程图。
图15是本申请另一个实施例的接收设备的示意性框图。
图16是本申请一个实施例的接收设备的示意性框图。
图17是本申请另一个实施例的接收设备的示意性框图。
图18是本申请一个实施例的接收设备的示意性框图。
图19是本申请另一个实施例的接收设备的示意性框图。
图20是本申请一个实施例的接收设备的示意性框图。
图21是本申请另一个实施例的接收设备的示意性框图。
图22是本申请一个实施例的接收设备的示意性框图。
图23是本申请另一个实施例的接收设备的示意性框图。
图24是本申请一个实施例的接收设备的示意性框图。
图25是本申请另一个实施例的接收设备的示意性框图。
图26是本申请另一个实施例的接收设备的示意性框图。
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,GSM)系统、码分多址(Code Division Multiple Access, CDMA)系统、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)系统、通用分组无线业务(General Packet Radio Service,GPRS)、长期演进(Long Term Evolution,LTE)系统、LTE频分双工(Frequency Division Duplex,FDD)系统、LTE时分双工(Time Division Duplex,TDD)、通用移动通信系统(Universal Mobile Telecommunication System,UMTS)、全球互联微波接入(Worldwide Interoperability for Microwave Access,WiMAX)通信系统、未来的第五代(5th Generation,5G)系统或新无线(New Radio,NR)等。
本申请实施例中的接收设备可以是终端设备,该终端设备可以指用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。终端设备还可以是蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,未来5G网络中的终端设备或者未来演进的公用陆地移动通信网络(Public Land Mobile Network,PLMN)中的终端设备等,本申请实施例对此并不限定。
本申请实施例中的接收设备还可以是网络设备,网络设备可以是用于与终端设备通信的设备,该网络设备可以是全球移动通讯(Global System of Mobile communication,GSM)系统或码分多址(Code Division Multiple Access,CDMA)中的基站(Base Transceiver Station,BTS),也可以是宽带码分多址(Wideband Code Division Multiple Access,WCDMA)系统中的基站(NodeB,NB),还可以是LTE系统中的演进型基站(Evolutional NodeB,eNB或eNodeB),还可以是云无线接入网络(Cloud Radio Access Network,CRAN)场景下的无线控制器,或者该网络设备可以为中继站、接入点、车载设备、可穿戴设备以及未来5G网络中的网络设备或者未来演进的PLMN网络中的网络设备等,本申请实施例并不限定。
图1是适用于本申请的数据包递交的方法的通信系统的示意图。如图1所示,该通信系统100包括网络设备102,网络设备102可包括多个天线例如,天线104、106、108、110、112和114。另外,网络设备102可附加地包括发射机链和接收机链,本领域普通技术人员可以理解,它们均可包括与信号发送和接收相关的多个部件(例如处理器、调制器、复用器、编码器、解复用器或天线等)。
网络设备102可以与多个终端设备(例如终端设备116和终端设备122)通信。然而,可以理解,网络设备102可以与类似于终端设备116或122的任意数目的终端设备通信。终端设备116和122可以是,例如蜂窝电话、智能电话、便携式电脑、手持通信设备、手持计算设备、卫星无线电装置、全球定位系统、PDA和/或用于在无线通信系统100上通信的任意其它适合设备。
如图1所示,终端设备116与天线112和114通信,其中天线112和114通过前向链路118向终端设备116发送信息,并通过反向链路120从终端设备116接收信息。此外,终端设备122与天线104和106通信,其中天线104和106通过前向链路124向终端设备122发送信息,并通过反向链路126从终端设备122接收信息。
例如,在FDD系统中,例如,前向链路118可利用与反向链路120所使用的不同频带,前向链路124可利用与反向链路126所使用的不同频带。
再例如,在TDD系统和全双工(full duplex)系统中,前向链路118和反向链路120 可使用共同频带,前向链路124和反向链路126可使用共同频带。
被设计用于通信的每个天线(或者由多个天线组成的天线组)和/或区域称为网络设备102的扇区。例如,可将天线组设计为与网络设备102覆盖区域的扇区中的终端设备通信。在网络设备102通过前向链路118和124分别与终端设备116和122进行通信的过程中,网络设备102的发射天线可利用波束成形来改善前向链路118和124的信噪比。此外,与网络设备通过单个天线向它所有的终端设备发送信号的方式相比,在网络设备102利用波束成形向相关覆盖区域中随机分散的终端设备116和122发送信号时,相邻小区中的移动设备会受到较少的干扰。
在给定时间,网络设备102、终端设备116或终端设备122可以是无线通信发送装置和/或无线通信接收装置。当发送数据时,无线通信发送装置可对数据进行编码以用于传输。具体地,无线通信发送装置可获取(例如生成、从其它通信装置接收、或在存储器中保存等)要通过信道发送至无线通信接收装置的一定数目的数据比特。这种数据比特可包含在数据的传输块(或多个传输块)中,传输块可被分段以产生多个码块。
此外,该通信系统100可以是PLMN网络或者设备与设备(device-to-device,D2D)网络或者机器与机器(machine to machine,M2M)网络或者其他网络,图1只是举例的简化示意图,网络中还可以包括其他网络设备,图1中未予以画出。
在空口传输中,虽然数据包(服务数据单元)在发射端(发送设备)空口是按序发出,但由于多个HARQ进程的并行运行,在接收端(接收设备)接收的顺序很有可能是乱序的。数据包在发射端的PDCP层加上序列号(Sequence Number,SN),PDCP的接收实体会利用SN进行重排序和重复检测,保证顺序提交以及检测重复的包。发射端与接收端同时还需要维护着相同的超帧号(Hyper Frame Number,HFN),使用HFN目的是为了限制空口上传输序列号的比特数。SN和HFN和起来组成了数据包的计数(COUNT)值。每一个数据包都有一个COUNT值,发射端(发送设备)空口就是按照数据包的COUNT值从小到大的顺序进行发送的。发出发射端需要维护发送的SN不超过总SN数的一半,以免造成帧号混乱。同样的,接收端也将以SN数一半的长度为接收窗。在接收端,收到的数据包也可能是乱序的,但是,将接收到的数据包向上层递交时,是按照COUNT值的顺序按序递交的。
图2是数据包的计数值(COUNT)结构的示意性结构图。从图2中可以看出,数据包的COUNT值由SN字段和HFN字段组成,其中,HFN字段部分的比特数(bit)和SN字段部分的比特数(bit)之和为32比特,即数据包中COUNT字段为32比特。
在5G NR中,接收设备的PDCP实体依据数据包(服务数据单元)的COUNT值对接收到的数据包进行重排序。其排序及递交过程如下:
接收到一个数据包后,首先根据其SN号及当前的HFN,推断出当前接收到的COUNT值(received count,RCVD_COUNT)。
判断接收到的数据包的COUNT值是否在有效的接收窗内:即是否大于等于下一个将要递交的COUNT值(received deliver,RX_DELIV),并且小于RX_DELIV+SN总数/2。若不在有效的接收窗内,就会丢掉接收到的数据包。若在有效的接收窗内,会将将有效的数据包存在PDCP层,然后按序递交。
其中,涉及排序的变量有四个:
RCVD_COUNT:当前接收到的服务数据单元(Service Data Unit,SDU)或协议数 据单元(Protocol Data Unit,PDU)的COUNT值。
RX_DELIV:仍在等待的、第一个未递交给上层的SDU或PDU的COUNT值。
RX_NEXT(receive next,RX_NEXT):当前期待的下一个接收到的PDCP SDU或PDU的COUNT值(当前接收到的最大的COUNT值加一)。
RX_REORD(receive reorder,RX_REORD):开启重排序定时器(t-reordering)时的RX_NEXT值。重排序定时器在接收侧的AM下、RLC实体检查下层传送的RLC协议数据单元(Protocol Data Unit,PDU)或者数据包是否丢失时使用。
具体的递交过程以及变量的更新过程如下:
如果当前接收的SDU的RCVD_COUNT≥RX_NEXT,则更新RX_NEXT的取值到RCVD_COUNT+1。
如果配置为乱序递交(out of order delivery),则递交该PDCP层已经存储的SDU给上层。
如果当前接收的SDU的RCVD_COUNT=RX_DELIV,则将相关数据包按升序向上递交。即将所有存储的SDU的COUNT值从该RX_DELIV开始、并且连续的SDU都递交给上层。并更新RX_DELIV到第一个未递交的SDU的COUNT,且该COUNT≥RX_DELIV。
如果t-Reordering正在运行,并且RX_DELIV≥RX_REORD,则停止并重置t-Reordering。
如果t-Reordering不在运行(包括由于以上情况导致的停止),并且RX_DELIV<RX_NEXT,则更新RX_REORD到RX_NEXT,并开启t-Reordering。
下面将以图3为例进行说明。图3是数据包(例如,PDU或者SDU)接收过程中,数据包的递交以及各个变量更新过程的示意图。图中3每个小长方形代表一个数据包,上面的数据代表数据包的计数值,从第一行至第八行为按照时间的顺序(接收到数据包的先后顺序),图3所示的接收到的数据包的顺序为:0,3,5,6,1,2。
在图3中,数据包(服务数据单元)的COUNT值为0至7,假设COUNT值从0至7为一个有效的接收窗口。首先,第一行中,接收设备还没有接收到数据包,因此,RCVD_COUNT为0,RX_DELIV为0,RX_REORD为0,RX_NEXT也为0。由于没有乱序,重排序定时器处于停止状态。
在第二行中,接收设备接收到0号数据包,即RCVD_COUNT为0,RX_REORD为0,由于需要保证按序递交,而0号包刚好是第一个数据包,因此,将0号包递交给上层,此时,RX_DELIV更新为1,RX_NEXT也更新1。
在第三行中,当接收设备接收到3号数据包时,RCVD_COUNT更新为3,由于数据包发送时是按照数据包计数值从小到大的顺序发送的,因此,证明1号数据包和2号数据包已经发送出去了,只是目前接收设备还没有接收到。此时,由于3号数据包之前的1号数据包和2号数据包还没有收到,证明出现了乱序,此时,RX_DELIV还为1,而RX_NEXT也更新为4,符合重排序定时器开启的条件(RX_DELIV<RX_NEXT),因此,重排序定时器启动。RX_REORD的值为4。
在第四行中,当接收设备接收到5号数据包时,RX_DELIV还为1,RX_REORD的值还为4,RCVD_COUNT更新为5,而RX_NEXT也更新为6。不满足RX_DELIV≥RX_REORD,因此,重排序定时器继续处于运行状态(假设重排序定时器没有超时)。
在第五行中,当接收设备接收到6号数据包时,RX_DELIV还为1,RX_REORD的值还为4,RCVD_COUNT更新为6,而RX_NEXT也更新为7。也不满足RX_DELIV≥RX_REORD,因此,重排序定时器继续处于运行状态(假设重排序定时器没有超时)。
在第六行中,当接收设备接收到1号数据包时,即RCVD_COUNT更新为1,由于0号数据包已经递交,而1号数据包正是按序递交的第二个,因此,会将1号数据包递交。此时,RX_DELIV更新为2,RX_REORD的值还为4,而RX_NEXT还为7。也不满足RX_DELIV≥RX_REORD,因此,重排序定时器继续处于运行状态(假设重排序定时器没有超时)。
在第七行中,当接收设备接收到2号数据包时,即RCVD_COUNT更新为2,由于0和1号数据包已经递交,而2号数据包和3号数据包正是按序递交的第三个和第四个,因此,会将2号数据包和3号数据包递交。由于重排序定时器是在接收到第一个乱序的数据包(3号数据包)时开启的,当第一个乱序的数据包之前的数据包都接收到后,证明可以将第一个乱序的数据包之前的所有数据包按序递交。因此,重排序定时器将关闭。之后,RX_DELIV更新为4。
此时,如第八行中所示,RX_DELIV更新为4,而RX_NEXT还为7。满足RX_DELIV<RX_NEXT,因此,将重排序定时器开启。RX_REORD的值为7。实质为目前4至6号数据包没有递交,但是6和5号数据包早于4号数据包先收到了,相当于又收到了乱序的数据包,因此,重排序定时器又会启动。
针对重排序定时器的开启,其将会在第一个乱序到达的数据包到达时开启,并且在开启时乱序数据包前面的数据包全部接收到(递交给上层时)时关闭(假设这个时间段内重排序定时器没有超时)。例如,如图3所示的流程中,如0号数据包后,3号数据包到达时开启,当1和2号数据包到达后重排序定时器会停止。该重排序定时器是用于等待那些已经发出的包而设置的。在数据包已经发出一段时间后,接收设备仍没收到(即重排序定时器超时),接收数据包的PDCP实体将把重排序定时器开启时接收的数据包及之前的所有数据包均上交,即使之前仍有数据包未接收到。例如,如图3所示,第五行中,当接收设备接收到6号数据包时,重排序定时器超时,那么接收设备会将3号数据包之前的数据包(包括3号数据包)都递交给上层,即使此时1和2号数据包还没有收到。意味着1和2号数据包将会丢包。
在AM模式下的DRB需要保证在PDCP在重建时不丢包,由于需要保证按序递交,在重建时将保留当前已经收到的乱序数据包以及其编号(计数值)。在NR PDCP发生重建过程中,例如,对于一个终端设备而言,从源基站切换到目标基站,重排序定时器若不停止,将可能在PDCP重建结束前发生超时,重建结束后直接导致丢包。即使PDCP重建时,重排序定时器停止并且重置,如果PDCP重建前该重排序定时器处于运行状态,在PDCP重建后,根据重排序定时器的开启方式,可能会在接收到第一个数据包时开启。数据恢复过主要是发送端的PDCP对已经发出但未收到的数据包进行的重传的过程。针对接收端PDCP来说,当发送端发生数据恢复时,接收端会再次收到之前没收到的数据包,如果重排序定时器开启并超时,将导致丢包将会产生以下问题:
如果接收到的数据包不是乱序,则重排序定时器的开启将导致后续未传输(发送)的数据包必须在定时器超时前传输完成,否则造成丢包。
如果接收到的数据包是乱序,但到达数据包不在停止重排序定时器时RX_NEXT之 后,则重排序定时器的开启将导致乱序的数据包之后未传输(发送)的数据包必须在定时器超时前传输完成,否则造成丢包。
以图4为例进行说明。图4是本申请一个实施例PDCP重建前接收到的数据包的示意图。如图4所示,在PDCP重建前,如果接收设备已经接收到的数据包为0,6,4。RX_DELIV为1,RX_NEXT为7,RX_REORD为7,PDCP重建时,停止并重置重排序定时器。在PDCP重建后,如果收到的第一个数据包为1号数据包(不乱序),RX_DELIV更新为2,由于当前RX_DELIV=2<RX_NEXT=7,重排序定时器将开启,由于目标基站还未将2、3、5号数据包发出,但却要求在重排序定时器超时前传输完成(接收到2、3、5号数据包),因此,将造成2、3、5号数据包丢包。
在PDCP重建或者数据恢复后,如果收到的第一个包为3号数据包(乱序),RX_DELIV的值还为1,RX_NEXT的值还为7。由于RX_DELIV=1<RX_NEXT=7,重排序定时器将开启,并且5号数据包虽然还未发出,但却要求在定时器超时前传输完成,因此,如果不能在定时器超时前传输完成,将造成5号数据包丢包。
基于上述问题,本申请提供了一种数据包处理的方法,可以解决在PDCP重建或者数据恢复后,由于重排序定时器开启的太早而可能导致的产生丢包的问题,提高了数据传输的准确性和数据传输的效率,提高用户体验。
下面结合图5详细说明本申请提供的数据包处理的方法,图5是本申请一个实施例的数据包处理的方法200的示意性流程图,该方法200可以应用在图1所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。
如图5所示,该方法200包括:
S210,接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时器在运行,停止并重置第一定时器,或者只将第一定时器停止。该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
S220,该接收设备将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
本申请实施例提供的数据包处理的方法,由于在AM模式下的DRB需要保证在PDCP在重建时不丢包,因此,在PDCP实体重建时或数据恢复时,如果第一定时器在运行,将第一定时器停止并重置,或者只第一定时器停止,并将第一变量的值设置为第二变量的值。或者,在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只将第一定时器停止,并在PDCP实体重建时或数据恢复时,将第一变量的值设置为第二变量的值。该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。这样,在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
下面将结合图4所示的例子来说明本申请实施例的方法200。
在S210中,假设在分组数据汇聚协议PDCP实体重建前或数据恢复前,接收设备已经接收到的数据包为0、6、4号数据包,此时,第一定时器处于运行状态。该第一定时器(以重排序定时器为例进行说明)用于检测接收到的数据包的丢失,或者用于检测接收到 的数据包是否存在乱序。此时,分组数据汇聚协议PDCP实体发生重建时或数据恢复,因此,停止并重置第一定时器,即将该第一定时器停止,并将定时器的数值归零。或者只将第一定时器停止。此时,第一变量(下文以RX_NEXT为例进行说明)为7,第二变量(下文以RX_DELIV为例进行说明)为1。
应理解,在分组数据汇聚协议PDCP实体发生重建时或数据恢复时,即使第一定时器不在运行,也会将第一变量的值设置为第二变量的值。
在S220中,接收设备将第一变量的值设置为第二变量的值,即将RX_NEXT的值设置为1。即经过变量值的设置后,第一变量和第二变量都为1,即RX_NEXT=1,RX_DELIV=1。
在PDCP实体重建后或数据恢复后,如果收到的第一个数据包为1号数据包(不乱序),此时,将RX_NEXT更新为2,将RX_DELIV更新为2。第一定时器开启的条件为:RX_DELIV<RX_NEXT,因此,第一定时器不会开启。即接收设备会继续接收2、3和5号数据包。2、3和5号数据包不用和1和2号数据包一起递交,即不用和现有技术一样(现有技术会导致第一定时器的开启),等到第一定时器超时前传输完成(第一定时器未开启)。明显的降低了2、3和5号数据包丢包的可能性。
在PDCP重建或者数据恢复后,如果收到的第一个包为3号数据包(乱序),第二变量(RX_DELIV)还为1,此时,RX_NEXT将更新为5,符合第一定时器开启的条件,因此,第一定时器将开启。由于接收到的是3号数据包,证明1和2号数据包已经发出了(按序发送),只是接收设备没有接收到。因此,在第一定时器超时前,如果收到了1和2号数据包,会将1至3号数据包递交,那么就不会产生丢包。而不用和现有技术一样,5号数据包虽然还未发出,但却要求在第一定时器超时前传输完成。不用等还没有发出的5号数据包的到来。即第一定时器超时前只需要递交已经发送出的数据包,不用递交还没有发送出的数据包。避免了还没有发送出的数据包产生的丢包问题。
可选的,作为一个实施例,如图6所示,该方法200还包括:
S230,该接收设备接收数据包。
S240,在第三变量的值大于或者等于该第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
具体而言,接收设备接收数据包可以在分组数据汇聚协议PDCP实体重建前或数据恢复前,也可以在分组数据汇聚协议PDCP实体重建后或数据恢复后。
假如在该PDCP实体重建后或数据恢复后,该接收设备接收数据包,结合图4所示的例子,假设接收到的第一个数据包的计数值(COUNT)为2,即第三变量(下文以RCVD_COUNT为例进行说明)的值为2。此时,第一变量(RX_NEXT)的值为1,因此,第三变量的值大于该第一变量的值,此时,会将第一变量的值更新为3,即将第三变量的值更新为第四变量的值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。例如,当接收到2号数据包后,已经接收到的数据包为0、2、4和6号数据包,第三变量的值为2,那么,大于该第三变量的值 并且为第一个未接收到的数据包的计数值就为3,即第四变量的值为3,因此,会将该第一变量的值由1更新为第四变量的值3。
又例如,结合图4所示的例子。假如在该PDCP实体重建前或数据恢复前,假设接收到的第一个数据包的计数值(COUNT)为3,即第三变量(相当于RCVD_COUNT)的值为3。此时,第一变量(RX_NEXT)的值为1,因此,第三变量的值大于该第一变量的值,此时,会将第一变量的值更新为5。当接收到3号数据包后,已经接收到的数据包为0、3、4和6号数据包,即大于该第三变量的值并且为第一个未接收到的数据包的计数值就为5,即第四变量的值为5,因此,会将将该第一变量的值由1更新为第四变量的值5。
或者,该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。具体的,结合图4所示的例子。例如,在该PDCP实体重建后或数据恢复后,假设接收到的第一个数据包的计数值(COUNT)为2,即第三变量(相当于RCVD_COUNT)的值为2。此时,第一变量(RX_NEXT)的值为1。因此,第三变量的值大于该第一变量的值。该PDCP实体已接收到的数据包的计数值为0、2、4和6,在已经收到的数据包的计数值中,从2开始,与2连续的没有,那么2就是那个最大的,在2的基础上加一,便得到3,即该第一变量的值由1更新为第四变量的值3。
又例如,结合图4所示的例子。在该PDCP实体重建后或数据恢复后,假设接收到第一个的数据包的计数值(COUNT)为3,即第三变量(相当于RCVD_COUNT)的值为3。此时,第一变量(RX_NEXT)的值为1。因此,第三变量的值大于该第一变量的值。该PDCP实体已接收到的数据包的计数值为0、3、4和6,在已经收到的数据包的计数值中,从3开始,与3连续为4,并且4是与3连续并且最大的那个计数值,因此,在4的基础上加一,便得到5,即该第一变量的值由1更新为第四变量的值5。
本申请实施例提供的数据包处理的方法,可以根据接收设备实际接收到的数据包的情况,来更新第一变量(RX_NEXT)的值,可以使得第一变量更符合其物理定义,即接收设备期待接收到的下一个数据包。同时,提高了数据包传输和递交的准确性和效率,提高用户体验。
可选的,作为一个实施例,该方法200还包括:
S250,如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成PDCP状态报告中的比特地图;或者,
如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成PDCP状态报告中的比特地图。
具体而言,对于在AM模式下的DRB,在PDCP实体重建或数据恢复时可能需要发送PDCP状态报告。PDCP状态报告包括两部分内容,第一部分为第一个丢失的数据包的计数值(first missed count),如果该接收设备被上层配置发送PDCP状态报告,那么该PDCP状态报告始终包括该第一部分的内容。第二部分为比特地图(bit map),bit map中每一比特代表一个数据包的状态,例如,0代表没有收到,1代表收到。该PDCP状态报告是否包括该第二部分的判断条件为:第一变量(RX_NEXT)的值>第二变量(RX_DELIV)的值的情况下,该PDCP状态报告包括该第二部分。如果满足这个条件,生成PDCP状态报告(包括第一部分和第二部分)并向上层发送该PDCP状态报告。由于PDCP重建时或数据恢复时改变了RX_NEXT的值,因此,需要利用PDCP实体重建前或数据恢复前RX_NEXT和RX_DELIV值进行比较,或者在将该第一变量的值设置为该第 二变量的值之前。利用设置之前的第一变量的值和该第二变量的值进行判断,确定生成的PDCP状态报告是否包括该第二部分的内容。
以图4所示的例子说明。在PDCP实体重建前或者数据恢复前,接收设备已经接收到的数据包为0,6,4。此时,RX_DELIV为1,RX_NEXT为7。该接收设备被上层配置发送PDCP状态报告。接收设备停止并重置第一定时器,或者只将第一定时器停止。并将第一变量的值设置为第二变量的值,即将RX_NEXT的值设置为1。经过变量值的设置后,第一变量和第二变量都为1,即RX_NEXT=1,RX_DELIV=1。在这种情况下,需要利用该接收设备将该第一变量的值设置为该第二变量的值之前,或者该PDCP实体重建前或数据恢复前,第一变量和第二变量的值,确定是否该PDCP状态报告是否包括该第二部分的内容(bit map)。该接收设备将该第一变量的值设置为该第二变量的值之前,或者该PDCP实体重建前或数据恢复前,第一变量(RX_DELIV)的值为1,第二变量(RX_NEXT)的值为7。RX_NEXT>RX_DELIV,满足条件,即生成的PDCP状态报告包括该第二部分的内容(bit map),该bit map可以为:10001010,1代表接收到,0代表没有接收到。也包括该第一部分的内容,即第一个丢失的数据包的计数值为1。
可选的,作为一个实施例,该方法200还包括:
S260,在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值设置为该停止并重置第一定时器时该第二变量的值,或者设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一定时器时该第一变量的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该第五变量的初始值,或者保持不变,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
具体而言,在该PDCP实体重建时或数据恢复时,由于要停止并重置第一定时器,或者只停止第一定时器,因此,在停止并重置第一定时器后,或者在停止第一定时器后,会将第五变量(下文以RX_REORD为例进行说明)的值设置为该停止并重置第一定时器时该第二变量(RX_DELIV)的值,或者设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一定时器时该第一变量(RX_NEXT)的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该第五变量的初始值0,或者保持不变。
下面将以图4所示为例进行说明。
假设在分组数据汇聚协议PDCP实体重建前或数据恢复前,接收设备已经接收到的数据包为0、6、4号数据包,第一定时器处于运行状态。此时,RX_REORD=RX_NEXT=7,RX_DELIV=1。将第一定时器停止并重置,或者只将第一定时器停止,并将第一变量的值设置为第二变量的值后,该第一变量RX_NEXT的值为1,因此,会将第五变量RX_REORD的值设置为该停止并重置第一定时器时(或者只停止该第一定时器时)该第二变量RX_DELIV的值,即为1,或者,将第五变量RX_REORD的值设置为该停止并重置第一定时器时(或者只停止该第一定时器时)该第一变量RX_NEXT的值,即为7,或者,设置为该第五变量的初始值0,或者保持不变,即保持原来的7。通过在PDCP实体重建时或数据恢复时,该接收设备设置第五变量RX_REORD的值,相当于在下一次定时器再开启时将定时器开启前第五变量RX_REORD的值归零,即相当于没有乱序的数据包接收到。可以灵活的设置RX_REORD的值。
应理解,在本申请实施例中,在该PDCP实体重建时或数据恢复时,该接收设备还可以将第五变量的值设置为其他值,本申请实施例在此不作限制。
可选的,作为一个实施例,该方法200还包括:
S270,在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备开启该第一定时器。
具体而言,在第一定时器不在运行,并且第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,证明有乱序的包接收到,例如,以图4所示的为例进行说明,即重建前或者数据恢复前已经接收到的数据包为0、6、4号数据包,假设该第一定时器是由于在PDCP重建或者数据恢复停止的,即RX_NEXT=1,RX_DELIV=1,假设重建后接收到3号数据包,此时,第一变量更新为5,第二变量还为1,满足第二变量的值小于该第一变量的值,即本应该先收到的为1号数据包和2号数据包,但是现在3号数据包先收到了,因此存在乱序,此时,第一定时器将开启,第一定时器的开启是为了等待1和2号数据包接收到。并会将RX_REORD的值更新为RX_NEXT的值,即将RX_REORD的值更新为5。假设在第一定时器超时前,1和2号数据包已经接收到了,那么,将5号数据包之前的数据包(1至4号数据包)递交给上层。假设在第一定时器超时前,1和/或2号数据包还没有接收到,那么,在第一定时器超时情况下,会将5号数据包之前的数据包(3号数据包)递交,此时,意味着1和/或2号数据包丢包。
可选的,作为一个实施例,该方法200还包括:
S280,在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备将第五变量的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
具体而言,在第一定时器不在运行,并且第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,证明有乱序的数据包接收到,此时,会开启第一定时器,并且,会将第五变量(相当于RX_REORD)的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
例如,假设已经接收到的数据包为0号数据包,即RX_NEXT=1,RX_DELIV=1,RX_REORD为0,假设之后第一个接收到3号数据包,此时,第一变量RX_NEXT更新为4,第二变量RX_DELIV还为1,满足第二变量的值小于该第一变量的值,即本应该先收到的为1号数据包和2号数据包,但是现在3号数据包先收到了,因此存在乱序,此时,第一定时器将开启,第一定时器的开启是为了等待1和2号数据包接收到。此时将RX_REORD的值更新为RX_NEXT的值,即将RX_REORD的值更新为4。假设在第一定时器超时前,1和2号数据包已经接收到了,那么,接收设备将4号数据包之前的数据包(1至3号数据包)递交给上层。假设在第一定时器超时前,1和/或2号数据包还没有接收到,那么,在第一定时器超时,接收设备将4号数据包之前的数据包(3号数据包)递交,此时,意味着1和2号数据包丢包。
可选的,该第一定时器为重排序定时器,或者该第一定时器可以是实现用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序的其他定时器,本申请实施例在此不作限制。
可选的,作为一个实施例,该方法200还包括:
S290,在该第一定时器超时的情况下,该接收设备对数据包进行递交。
具体而言,由于第一定时器是用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。第一定时器会在第一个乱序到达的数据包到达时开启,并且在开 启时乱序数据包前面的数据包全部接收到(递交给上层时)时关闭(假设这个时间段内重排序定时器没有超时)。在该第一定时器超时的情况下,接收数据包的PDCP实体将把重排序定时器开启时接收的数据包及之前的所有数据包均上交,即使之前仍有数据包未接收到。例如,如图3所示,第五行中,当接收设备接收到6号数据包时,第一定时器超时,那么接收设备会将3号数据包之前的数据包(包括3号数据包)都递交给上层,即使此时1和2号数据包还没有收到。意味着1和2号数据包将会丢包。
又例如,假设已经接收到的数据包为0号数据包,假设之后第一个接收到3号数据包,此时,第一定时器将开启,第一定时器的开启是为了等待1和2号数据包接收到。假设在第一定时器超时前,1和2号数据包已经接收到了,那么,接收设备将3号数据包之前的数据包(1至3号数据包)递交给上层。假设在第一定时器超时前,1和/或2号数据包还没有接收到,那么,在第一定时器超时的情况下,接收设备将3号数据包之前的数据包(3号数据包)递交,此时,意味着1和2号数据包丢包。可选的,作为一个实施例,该方法200还包括:
可选的,作为一个实施例,该方法200还包括:
在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
具体而言,第三变量(RCVD_COUNT)的值等于该第二变量(RX_DELIV)的值的情况下,证明当前接收到的这个数据包不是乱序,则可以将该数据包递交给上层。
例如,假设已经接收到的数据包为0号数据包,即RX_NEXT=1,RX_DELIV=1,假设之后第一个接收到1号数据包,即RCVD_COUNT=RX_DELIV=1,此时,就可以将该1号数据包进行递交。
又例如,图3所示的第八行中,RX_DELIV为4,而RX_NEXT为7。满足RX_DELIV<RX_NEXT,因此,将重排序定时器开启。RX_REORD的值为7。实质为目前4至6号数据包没有递交,但是6和5号数据包早于4号数据包先收到了,相当于又收到了乱序的数据包,因此,第一定时器又会启动,假设之后收到4号数据包,即RCVD_COUNT=RX_DELIV=4,由于5和6号数据包已经接收到了,因此,就可以将4至6号数据包递交给上层。
本申请实施例提供的数据包处理的方法,在分组数据汇聚协议PDCP实体重建时或数据恢复时,将第一定时器停止并重置,或者只停止该第一定时器,并将第一变量的值设置为第二变量的值,这样,在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免重建后未发出的数据包的丢包问题。在后续的接收到数据包后,可以根据该第一定时器、第三变量和第二变量对数据包进行递交。提高了数据传输的准确性和数据传输的效率,提高用户体验。
应理解,在本申请各个实施例中,该接收设备接收数据包可以包括:接收设备的分组数据汇聚协议PDCP实体接收数据包,或者是该接收设备的其他实体或者单元接收数据包,本申请实施例在此不作限制。
还应理解,在本申请各个实施例中,第一变量、第二变量、第三变量、第四变量和第五变量只是为了区分不同类型的变量。其名称还可以为其他名称,而不应对本申请实施例造成任何限制。
本申请实施例还提供一种数据包处理的方法,如图7所示,该方法300包括:
S310,接收设备接收数据包。
S320,在第三变量的值大于或者等于第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该接收设备接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
具体而言,在接收设备正常接收数据包的过程中,包括在分组数据汇聚协议PDCP实体重建前或数据恢复前、在分组数据汇聚协议PDCP实体重建后或数据恢复后接收数据包的过程中,虽然数据包在发射端(发送设备)空口是按序(按照COUNT值从小到大的顺序)发出,但由于多个HARQ进程的并行运行,在接收设备接收的顺序很有可能是乱序的。在接收设备接收到数据包后。结合图4所示的例子,在该PDCP实体重建后或数据恢复后,假设接收到的第一个数据包的计数值(COUNT)为2,即第三变量(相当于RCVD_COUNT)的值为2。此时,由于将第一变量的值设置为第一而变量的值,即第一变量(RX_NEXT)的值为1,因此,第三变量的值大于该第一变量的值,此时,会将第一变量的值更新为3,即将第三变量的值更新为第四变量的值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。例如,当接收到2号数据包后,已经接收到的数据包为0、2、4和6号数据包,第三变量的值为2,那么,大于该第三变量的值并且为第一个未接收到的数据包的计数值就为3,即第四变量的值为3,因此,会将将该第一变量的值由1更新为第四变量的值3。
又例如,假设已经接收到的数据包为0、3号数据包,此时,RX_NEXT更新为4,RX_DELIV的值为1,假设此时接收到5号数据包,即第三变量(相当于RCVD_COUNT)的值为5。由于接收数据包之前第一变量(RX_NEXT)的值为4,因此,第三变量的值大于该第一变量的值,此时,会将第一变量的值更新为6。即当接收到5号数据包后,已经接收到的数据包为0、3、5数据包,即大于该第三变量的值并且为第一个未接收到的数据包的计数值就为6,即第四变量的值为6,因此,会将该第一变量的值由4更新为第四变量的值6。
或者,该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。具体的,结合图4所示的例子。例如,在该PDCP实体重建后或数据恢复后,假设接收到的第一个数据包的计数值(COUNT)为2,即第三变量(相当于RCVD_COUNT)的值为2。此时,第一变量(RX_NEXT)的值为1。因此,第三变量的值大于该第一变量的值。该PDCP实体已接收到的数据包的计数值为0、2、4和6,在已经收到的数据包的计数值中,从2开始,与2连续的没有,那么2就是那个最大的,在2的基础上加一,便得到3,即该第一变量的值由1更新为第四变量的值3。
又例如,假设已经接收到的数据包为0、3号数据包,此时,RX_NEXT为4,RX_DELIV的值为1,第一定时器处于运行状态,假设此时接收到5号数据包,即第三变量(相当于RCVD_COUNT)的值为5。此时,第一变量(RX_NEXT)的值为4,因此,第三变量的值大于该第一变量的值,此时,会将第一变量的值更新为6。即当接收到5号数据包后,该终端设备已经接收到的数据包(PDCP实体中已经存储的数据包)的计数值为0、3、5,在已经收到的数据包的计数值中,从5开始,与5连续的没有,那么5就是那个最大的,在6的基础上加一,便得到6,即该第一变量的值由4更新为第四变量的值6。
本申请实施例提供的数据包处理的方法,可以根据接收设备实际接收到的数据包的情况,来更新第一变量(RX_NEXT)的值,可以使得第一变量更符合其物理定义,即将第一变量更新为接收设备期待接收到的下一个数据包的计数值。同时,提高了数据包传输和递交的准确性和效率,提高用户体验。
可选的,作为一个实施例,如图8所示,该方法300还包括:
S330,在第一定时器不在运行、并且第二变量的值小于该第一变量的值的情况下,该接收设备将第五变量的值更新为该第一变量的值,其中,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第五变量指示触发启动该第一定时器时的数据包的计数值。
具体而言,在该第一定时器不在运行的时候,并且第二变量(RX_DELIV)的值小于该第一变量(RX_NEXT)的值的情况下,证明此时有乱序的数据包接收到。此时,会开启第一定时器,并且,会将第五变量(相当于RX_REORD)的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
例如,假设已经接收到的数据包为0号数据包,即RX_NEXT=1,RX_DELIV=1,RX_REORD为0,第一定时器处于停止状态。假设之后第一个接收到3号数据包,此时,第一变量RX_NEXT更新为4,第二变量RX_DELIV还为1,满足第二变量的值小于该第一变量的值,即本应该先收到的为1号数据包和2号数据包,但是现在3号数据包先收到了,因此存在乱序,此时,第一定时器将开启,第一定时器的开启是为了等待1和2号数据包接收到。此时将RX_REORD的值更新为RX_NEXT的值,即将RX_REORD的值更新为4。假设在第一定时器超时前,1和2号数据包已经接收到了,那么,接收设备将4号数据包之前的数据包(1至3号数据包)递交给上层。假设在第一定时器超时前,1和/或2号数据包还没有接收到,那么,在第一定时器超时,接收设备将4号数据包之前的数据包(3号数据包)递交,此时,意味着1和2号数据包丢包。
可选的,该第一定时器为重排序定时器,或者该第一定时器可以是实现用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序的其他定时器,本申请实施例在此不作限制。
可选的,作为一个实施例,该方法300还包括:
S340,该接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置该第一定时器,或者停止该第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
S350,该接收设备将第一变量的值设置为第二变量的值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
具体而言,由于在AM模式下的DRB需要保证在PDCP在重建时不丢包,因此,在PDCP实体重建时或数据恢复时,如果第一定时器在运行,将第一定时器停止并重置,或者停止该第一定时器,并将第一变量的值设置为第二变量的值。或者,在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者停止该第一定时器,并在PDCP实体重建时或数据恢复时,将第一变量的值设置为第二变量的值。该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。这样,在重建或者数据恢复后,延缓了第一 定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,作为一个实施例,该方法300还包括:
S360,如果该接收设备被上层配置发送PDCP状态报告,在该接收设备将该第一变量的值设置为该第二变量的值之前,生成PDCP状态报告中的比特地图;或者,
如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成PDCP状态报告中的比特地图。
可选的,作为一个实施例,该方法300还包括:
S370,在该第一定时器不在运行、并且该第二变量的值小于该第一变量的值的情况下,该接收设备开启该第一定时器。
具体而言,在第一定时器不在运行,并且第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,证明有乱序的包接收到,例如,以图4所示的为例进行说明,即重建前或者数据恢复前已经接收到的数据包为0、6、4号数据包,假设该第一定时器是由于在PDCP重建或者数据恢复停止的,并且,在重建的过程中将RX_NEXT设置为RX_DELIV的值。即RX_NEXT=1,RX_DELIV=1,假设重建后接收到3号数据包,此时,第一变量更新为5,第二变量还为1,满足第二变量的值小于该第一变量的值,即本应该先收到的为1号数据包和2号数据包,但是现在3号数据包先收到了,因此存在乱序,此时,第一定时器将开启,第一定时器的开启是为了等待1和2号数据包接收到。并会将RX_REORD的值更新为RX_NEXT的值,即将RX_REORD的值更新为5。假设在第一定时器超时前,1和2号数据包已经接收到了,那么,将5号数据包之前的数据包(1至4号数据包)递交给上层。假设在第一定时器超时前,1和/或2号数据包还没有接收到,那么,在第一定时器超时情况下,会将5号数据包之前的数据包(3号数据包)递交,此时,意味着1和/或2号数据包丢包。
可选的,作为一个实施例,该方法300还包括:
S380,在该第一定时器超时的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该方法300还包括:
S390,在该第三变量的值等于该第二变量的值情况下,该接收设备对数据包进行递交。
应理解,步骤S350至S390,与方法200中对应的步骤类似,在此不在赘述。
本申请实施例提供的数据包处理的方法,在接收到数据包后,根据数据包的计数值。可以根据接收设备实际接收到的数据包的情况,来更新第一变量(RX_NEXT)的值,即在第三变量(RCVD_COUNT)的值大于或者等于第一变量(RX_NEXT)的值的情况下,该接收设备将该第一变量的值更新为大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该将该第一变量的值更新为该接收设备接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。可以使得第一变量更符合其物理定义,即将第一变量更新为接收设备期待接收到的下一个数据包的计数值。在后续的接收到数据包后,可以根据该第一定时器、第三变量和第一变量对数据包进行递交。提高了数据传输的准确性和数据传输的效率,提高用户体验。
应理解,在本申请各个实施例中,该接收设备接收数据包可以包括:接收设备的分组数据汇聚协议PDCP实体接收数据包,或者是该接收设备的其他实体或者单元接收数据 包,本申请实施例在此不作限制。
本申请实施例还提供一种数据包处理的方法,如图9所示,该方法400包括:
S410,接收设备接收数据包。
S420,在由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值与该PDCP实体重建前或数据恢复前该第一变量的值不同的情况下,该接收设备开启第一定时器;
或者,在不是由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,该接收设备开启第一定时器;
其中,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
本申请实施例提供的数据包处理的方法,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
下面将结合图4所示的例子来说明本申请实施例的方法400。
在S410中,接收设备接收数据包,接收设备接收数据包可以在分组数据汇聚协议PDCP实体重建前或数据恢复前,也可以在分组数据汇聚协议PDCP实体重建后或数据恢复后。
假设在分组数据汇聚协议PDCP实体重建前或数据恢复前,接收设备已经接收到的数据包为0、6、4号数据包,第一定时器处于运行状态。该第一定时器(相当于重排序定时器)用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。此时,分组数据汇聚协议PDCP实体发生重建时或数据恢复,因此,如果停止并重置第一定时器,即将该第一定时器停止,并将定时器的数值归零。或者只停止该第一定时器。此时,第一变量(相当于RX_NEXT)为7,第二变量(相当于RX_DELIV)为1。
在S420中,假设在PDCP实体重建后或数据恢复后,收到的第一个数据包为1号数据包(不乱序),RX_NEXT还为7,将RX_DELIV更新为2,或者如果收到的第一个数据包为3号数据包,此时,RX_NEXT还为7,将RX_DELIV还为1。第一定时器开启的条件为:在该第一定时器由于该PDCP实体重建或数据恢复导致的停止、第二变量的值小于第一变量的值、并且该第一变量的值与该PDCP实体重建前或数据恢复前该第一变量的值不同。首先,是由于该PDCP实体重建或数据恢复导致的该第一定时器不在运行,第一个条件满足。其次,第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,第二个条件满足,最后,该第一变量(RX_NEXT)的值与该PDCP实体重建前或数据恢复前该第一变量的值是相同的,都为7,因此,第三个条件不满足,因此,第一定时器将不会开启,即会等到第一个来到的数据包的计数值(COUNT)大于或者等于7时第一定时器才会开启。实质为在接收到7号数据包之前的数据包,第一定时器都不会开启。即在将重建前接收到的最大计数值包之前的所有乱序的数据包补全之前,第一定时器都不会开启。而不用和现有技术一样,在接收到3号数据包之后第一定时器就开启,从而导致5号数据包丢包的问题避免了还没有发送出的数据包产生的丢包问题。
又例如,在S420中,在PDCP实体重建后或数据恢复后或者PDCP实体重建后或数 据恢复前,接收设备接收数据包,假设已经接收设备已经接收到的数据包为0和1号数据包,第一定时器(相当于重排序定时器)处于关闭状态。此时,第一变量(相当于RX_NEXT)为2,第二变量(相当于RX_DELIV)为2。如果收到的第一个数据包为4号数据包,则RX_NEXT更新为5,将RX_DELIV为2。这种情况下,不是由于该PDCP实体重建或数据恢复导致的该第一定时器不在运行,并且第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值的情况下,符合第一定时器开启的条件。因此开启第一定时器。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,作为一个实施例,该方法400还包括:
S430,该接收设备将第五变量的值更新为该第一变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
具体而言,在该第一定时器开启的时候,证明有乱序的数据包接收到。会将第五变量(相当于RX_REORD)的值更新为该第一变量(RX_NEXT)的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
结合图4的例子说明,假设重建后或者数据恢复后第一个接收到的数据包为7号数据包,即RX_NEXT=8,RX_DELIV=1,符合第一定时器开启的条件,第一定时器开启。此时将RX_REORD的值更新为RX_NEXT的值,即将RX_REORD的值更新为8。假设在第一定时器超时前,8数据包之前的所有数据包已经接收到了,那么,接收设备将8号数据包之前的所有数据包递交给上层。假设在第一定时器超时前,8号数据包之前还有部分收据包还没有接收到,那么,在第一定时器超时,接收设备将8号数据包之前的数据包递交,此时,意味着没有接收到的数据包会丢包。
可选的,该第一定时器为重排序定时器,或者该第一定时器可以是实现用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序的其他定时器,本申请实施例在此不作限制。
可选的,作为一个实施例,该方法400还包括:
S440,在第三变量的值大于或者等于第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
可选的,作为一个实施例,该方法400还包括:
S450,在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值更新为该停止并重置第一定时器时该第二变量的值,或者更新为停止第一定时器时该第二变量的值,或者更新为该停止并重置第一定时器时该第一变量的值,或者更新为停止第一定时器时该第一变量的值,或者更新为该第五变量的初始值,或者保持不变,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,作为一个实施例,该方法400还包括:
在该PDCP实体重建时或数据恢复时,如果该第一定时器正在运行,该接收设备停止并重置该第一定时器,或者只停止该第一定时器时。
可选的,作为一个实施例,该方法400还包括:
S460,在该第一定时器超时的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该方法400还包括:
S470,在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
应理解,上述步骤S440至S470,与方法300或者方法200中对应的步骤类似,对应描述可参考上述的描述。在此不在赘述。
还应理解,在本申请各个实施例中,该接收设备接收数据包可以包括:接收设备的分组数据汇聚协议PDCP实体接收数据包,或者是该接收设备的其他实体或者单元接收数据包,本申请实施例在此不作限制。
本申请实施例提供的数据包处理的方法,由于在AM模式下的DRB需要保证在PDCP在重建时不丢包,因此在PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只停止第一定时器,通过改变第一定时器的开启条件,在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。在后续的接收到数据包后,可以根据该第一定时器、第三变量和第一变量对数据包进行递交。提高了数据传输的准确性和数据传输的效率,提高用户体验。
本申请实施例还提供一种数据包处理的方法,如图10所示,该方法500包括:
S510,接收设备接收数据包。
S520,在第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,该接收设备开启该第一定时器,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
本申请实施例提供的数据包处理的方法,在接收设备接收到数据包后,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
具体而言,在接收设备正常接收数据包的过程中,结合图4所示的例子,假设该第一定时器是由于该PDCP实体重建或数据恢复导致的停止。第一变量(相当于RX_NEXT)为7,第二变量(相当于RX_DELIV)为1。在该PDCP实体重建后或数据恢复后,假设接收到的第一个数据包的计数值(COUNT)为3,即第三变量(相当于RCVD_COUNT)的值为3。第一定时器开启的条件为:第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一。首先,该第一定时器是不在运行的,第一个条件满足。其次,第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,第二个条件满足,最后,该第一变量(RX_NEXT)的值7不等于第三变量的值3加一。因此,第三个条件不满足,因此,第一定时器将不会开启,即会等到第一个来到的数据包的计数值(COUNT)大于或者等于7时第一定时器才会开启。实质为在接收到6号数据包之前的数据包,第一定时器都不会开启。即在将重建前接收到的最大计数值包之前的所 有乱序的数据包补全之前,第一定时器都不会开启。而不用和现有技术一样,在接收到3号数据包之后第一定时器就开启,从而导致5号数据包丢包的问题。
又例如,接收设备已经接收到的数据包为0和1号数据包,第一定时器(相当于重排序定时器)处于关闭状态。此时,第一变量(相当于RX_NEXT)为2,第二变量(相当于RX_DELIV)为2,如果之后收到的第一个数据包为4号数据包,即第三变量(相当于RCVD_COUNT)的值为4,则RX_NEXT更新为5,将RX_DELIV为2。这种情况下,由于该第一定时器处于停止状态,第二变量(RX_DELIV)的值小于第一变量(RX_NEXT)的值,并且该第一变量的值5等于第三变量的值4加一的情况下,符合第一定时器开启的条件。因此开启第一定时器。可以避免因为乱序接收数据包的而造成的递交丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,作为一个实施例,该方法500还包括:
S530,该第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,该接收设备将第五变量的值更新为第一变量的值,该第五变量指示触发启动该第一定时器时的数据包的计数值。该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,作为一个实施例,该方法500还包括:
S540,在该第一定时器超时的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该方法500还包括:
S550,在该第三变量的值等于该第二变量的值情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该方法500还包括:
S560,在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只停止该第一定时器。
可选的,作为一个实施例,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
可选的,该第一定时器为重排序定时器,或者该第一定时器可以是实现用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序的其他定时器,本申请实施例在此不作限制。
应理解,上述步骤S530至S560,与方法400或者方法300或者方法200中对应的步骤类似,对应描述可参考上述的描述。在此不在赘述。
还应理解,在本申请各个实施例中,该接收设备接收数据包可以包括:接收设备的分组数据汇聚协议PDCP实体接收数据包,或者是该接收设备的其他实体或者单元接收数据包,本申请实施例在此不作限制。
本申请实施例提供的数据包处理的方法,在接收设备接收到数据包后,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
本申请实施例还提供一种数据包处理的方法,如图11所示,该方法600包括:
S610,接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只停止该第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
S620,该接收设备将第六变量的值设置为第二变量的值,该第六变量用于指示该接收设备在该PDCP实体重建或数据恢复后接收到的数据包中最大的计数值加一,或者该第六变量用于指示大于该接收设备在该PDCP实体重建后或数据恢复后接收到的数据包的最大的计数值、并且为第一个未递交给上层的数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
下面将结合图4所示的例子来说明本申请实施例的方法600。
在S610中,假设在分组数据汇聚协议PDCP实体重建前或数据恢复前,接收设备已经接收到的数据包为0、6、4号数据包,第一定时器处于运行状态。该第一定时器(相当于重排序定时器)用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。此时,分组数据汇聚协议PDCP实体发生重建时或数据恢复,因此,停止并重置第一定时器,即将该第一定时器停止,并将定时器的数值归零。或者只停止该第一定时器。此时,第一变量(相当于RX_NEXT)为7,第二变量(相当于RX_DELIV)为1。
在S620中,接收设备第六变量的值设置为第二变量的值,该第六变量用于指示该接收设备在该PDCP实体重建或数据恢复后接收到的数据包中最大的计数值加一,已接收到的最大的数据包的计数值为6,即第六变量的值为7。或者,该第六变量用于指示大于该接收设备在该PDCP实体重建后或数据恢复后接收到的数据包的最大的计数值、并且为第一个未递交给上层的数据包的计数值,该PDCP实体重建后或数据恢复后接收到的数据包的最大的计数值为6,大于6并且为第一个未递交的数据包的计数值为7,即第六变量的值为7。将第六变量的值设置为第二变量的值,第六变量的值设置为1。
本申请实施例提供的数据包处理的方法,由于在AM模式下的DRB需要保证在PDCP在重建时不丢包,因此,在PDCP实体重建时或数据恢复时,将第一定时器停止并重置(归零),或者只停止该第一定时器。并引入了新的变量(第六变量),将该第六变量的值设置为第二变量的值。在PDCP实体重建后或数据恢复后,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,避免了第一定时器在未收到乱序数据包时开启,因此避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,作为一个实施例,如图12所示,该方法600还包括:
S630,在该PDCP实体重建后或数据恢复后,该接收设备接收数据包。
S640,在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第六变量的值的情况下,该接收设备将该第六变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一,该偏置值为零或正值。
具体而言,在该PDCP实体重建后或数据恢复后,该接收设备接收数据包,假设接收到的第一个数据包的计数值(COUNT)为2,即第三变量(相当于RCVD_COUNT)的值 为2。此时,第六变量的值为1,第一变量(RX_NEXT)为7。满足第六变量的值小于第一变量的值。并且,第三变量的值大于该第六变量的值,此时,会将第六变量的值更新为3,即将第三变量的值更新为第四变量的值,该第四变量指示该第三变量的值加一,或者,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。例如,当接收到2号数据包后,已经接收到的数据包为0、2、4和6号数据包,第三变量的值为2,那么,大于该第三变量的值并且为第一个未接收到的数据包的计数值就为3,即第四变量的值为3,因此,会将该第一变量的值由1更新为第四变量的值3。或者,该PDCP实体已接收到的数据包的计数值为0、2、4和6,在已经收到的数据包的计数值中,从2开始,与2连续的没有,那么2就是那个最大的,在2的基础上加一,便得到3,即该第六变量的值由1更新为第四变量的值3。
应理解,偏置值为零或正值。具体而言,该偏置值可以为0,即该第六变量的值小于或者等于第一变量的值7。或者,该偏置值可以为大于0的正数,例如,假设为2,结合图4所示的例子,在第六变量小于或者等于9的情况下,利用第六变量、第二变量和第三变量来控制第一定时器的开关。并对结合第一定时器对数据包进行递交。在该第六变量的大于第一变量的值,或者该第六变量的值大于第一变量的值加偏置值的情况下,利用利用第一变量、第二变量和第三变量来控制第一定时器的开关。并对结合第一定时器对数据包进行递交。
本申请实施例提供的数据包处理的方法,在PDCP实体重建时或数据恢复时,将第一定时器停止并重置(归零),或者只停止该第一定时器,并引入了新的变量(第六变量),将该第六变量的值设置为第二变量的值。在PDCP实体重建后或数据恢复后,在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在该第六变量的值大于第一变量的值,或者该第六变量的大于第一变量的值加偏置值的情况下,继续利用第一变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,作为一个实施例,如图13所示,该方法600还包括:
S650,在该第六变量的值大于第一变量的值,或者该第六变量的值大于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第一变量的值的情况下,该接收设备将该第一变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
本申请实施例提供的数据包处理的方法,在PDCP实体重建后或数据恢复后,在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在该第六变量的值大于第一变量的值,或者该第六变量的 大于第一变量的值加偏置值的情况下,继续利用第一变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,保证了第一定时器不在未接到乱序包的情况下开启,避免了PDCP实体重建或数据恢复后由于该第一定时器超时造成的丢包,提高用户体验。
可选的,作为一个实施例,该方法600还包括:
S660,在该PDCP实体重建时或数据恢复时,该接收设备将第五变量的值设置为该停止并重置第一定时器时该第二变量的值,或者设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一定时器时该第一变量的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该停止并重置第一定时器时该第六变量的值,或者设置为停止第一定时器时该第六变量的值,或者设置为该第五变量的初始值,或者保持不变,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,作为一个实施例,该方法600还包括:
S670,在该第六变量的值小于或者等于该第一变量的值,或者第六变量的值小于或者等于第一变量的值加该偏置的情况下,并且,在该第一定时器不在运行、该第二变量的值小于该第六变量的值的情况下,该接收设备开启该第一定时器。
可选的,作为一个实施例,该方法600还包括:
S680在该第六变量的值小于或者等于该第一变量的值,或者该第六变量的值小于或者等于该第一变量的值该加偏置值的情况下,并且,在该第一定时器不在运行、该第二变量的值小于该第六变量的值的情况下,该接收设备将第五变量的值更新为该第六变量的值,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,作为一个实施例,该方法600还包括:
S690,在该第一定时器超时的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该方法600还包括:
在该第三变量的值等于该第二变量的值的情况下,该接收设备对数据包进行递交。
可选的,作为一个实施例,该接收设备接收数据包,包括:该接收设备的分组数据汇聚协议PDCP实体接收数据包。
可选的,该第一定时器为重排序定时器,或者该第一定时器可以是实现用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序的其他定时器,本申请实施例在此不作限制。
应理解,在本申请各个实施例中,该接收设备接收数据包可以包括:接收设备的分组数据汇聚协议PDCP实体接收数据包,或者是该接收设备的其他实体或者单元接收数据包,本申请实施例在此不作限制。
还应理解,上述步骤650至S690,与方法500,或者方法400,或者方法300,或者方法200中对应的步骤类似,对应描述可参考上述的描述。在此不在赘述。
本申请还提供了一种数据包处理的方法,如图14所示,该方法700包括:
S710,接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时器在运行时,停止并重置第一定时器或只停止第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
本申请提供的数据包处理的方法,在PDCP实体重建时或数据恢复时,如果第一定时器在运行时,将第一定时器停止并重置(或归零),或者只将第一定时器停止,避免由于PDCP重建期间定时器超时,造成丢包。提高了数据传输的准确性和数据传输的效率,提高 用户体验。
可选的,作为一个实施例,该方法还包括:该接收设备将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望接收到的下一个数据包的计数值或序列号,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值或者序列号,或该第二变量指示最近一个递交给上层的数据包的计数值或者序列号加一。
可选的,作为一个实施例:在PDCP实体重建前或数据恢复前,该PDCP实体使用重排序功能,并且在PDCP实体重建后或数据恢复后,该PDCP连接两个确认模式AM的无线链路控制RLC实体的情况下,该终端设备停止并重置第一定时器或只停止第一定时器。
可选的,作为一个实施例,该第一定时器为重排序定时器。
应理解,该方法中相应的步骤和上述方法200至方法600中相应的步骤类似,为了简洁,这里不再赘述。
还应理解,在本申请的各个实施例中,所有关于RX_NEXT>RX_DELIV的条件可以用“至少有一个存储的PDCP SDU”的条件代替。即当至少有一个存储的PDCP SDU时,满足RX_NEXT>RX_DELIV的条件。
还应理解,在本申请的各个实施例中,第一变量、第二变量、第三变量、第四变量、第五变量、第六变量都可以用数据包的计数值(COUNT)表示,也可以用数据包的序列号(sequence number)表示。如第一变量可以是接收设备期望接收到的下一个数据包的序列号(可以用Next_PDCP_RX_SN表示);第二变量可以是最近一个递交给上层的数据包的序列号(可以用Last_Submitted_PDCP_RX_SN表示)加一;第三变量可以是接收到的数据包的序列号等。例如,在PDCP重建后,停止并重置第一定时器,将第一变量的值设置为第二变量的值可以为:将Next_PDCP_RX_SN设置为Last_Submitted_PDCP_RX_SN。
还应理解,在本申请的各个实施例中,当PDCP使用重排序功能时发生重建,并且PDCP实体在重建后连接两个RLC AM实体的情况下,终端设备停止并重置第一定时器,并将Next_PDCP_RX_SN设置为Last_Submitted_PDCP_RX_SN。
还应理解,上述是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
还应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图14,详细描述了本申请实施例的数据包处理的方法,下面将结合图15至图26,详细描述本申请实施例的接收设备。
图15是本申请一个实施例的接收设备的示意性框图。应理解,该接收设备可以指上述的接收设备,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,图15所示的接收设备800可以用于执行对应于图6和图8中第一接收设备执行的步骤。该接收设备800包括:处理器810、存储器820和收发器830,处理器810、存储器820和收发器830通过通信连接,存储器820存储指令,处理器810用于执行存储器820存储的指令,收发器830用于在处理器810的驱动下执行具体的信号收发。
所述处理器810,用于在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只停止第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;
所述处理器810还用于:将第一变量的值设置为第二变量的值,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
本申请提供的接收设备,在PDCP实体重建时或数据恢复时,如果第一定时在在运行时,将第一定时器停止并重置(或归零),或者只停止第一定时器,并将第一变量的值设置为第二变量的值。或者,在PDCP实体重建时或数据恢复时,如果第一定时器正在运行,将第一定时器停止并重置,或者只停止第一定时器,并在PDCP实体重建时或数据恢复时,将第一变量的值设置为第二变量的值。这样,在重建或者数据恢复后,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
接收设备800中的各个组件通过通信连接,即处理器810、存储器820和收发器830之间通过内部连接通路互相通信,传递控制和/或数据信号。本申请上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可选的,在本申请的另一个实施例中,该收发器830,用于接收数据包;该处理器810还用于:在第三变量的值大于或者等于该第一变量的值的情况下,将该第一变量的值更新为第四变量的值,其中,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
可选的,在本申请的另一个实施例中,该处理器810还用于:如果该接收设备被上层配置发送PDCP状态报告,在该处理器将该第一变量的值设置为该第二变量的值之前,生成PDCP状态报告中的比特地图;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成PDCP状态报告中的比特地图。
可选的,在本申请的另一个实施例中,该处理器810还用于:在该PDCP实体重建时或数据恢复时,将第五变量的值设置为该停止并重置第一定时器时该第二变量的值,或者将第五变量的值设置为停止第一定时器时该第二变量的值,或者设置为该停止并重置第一 定时器时该第一变量的值,或者设置为停止第一定时器时该第一变量的值,或者设置为该第五变量的初始值,或者保持不变,其中,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,在本申请的另一个实施例中,该第一定时器为重排序定时器。
应注意,本申请实施例中,处理器810可以由处理模块实现,存储器820可以由存储模块实现,收发器830可以由收发模块实现,如图16所示,接收设备900可以包括处理模块910、存储模块920和收发模块930。
图15所示的接收设备800或图16所示的接收设备900能够实现前述图5和图6中接收设备执行的步骤,为避免重复,这里不再赘述。
图17示出了本申请一个实施例的接收设备1000的示意性框图。应理解,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,如图17所示,该接收设备1000包括:处理器1010、存储器1020和收发器1030,处理器1010、存储器1020和收发器1030通过通信连接,存储器1020存储指令,处理器1010用于执行存储器1020存储的指令,收发器1030用于在处理器1010的驱动下执行具体的信号收发。
该收发器1030,用于接收数据包;
该处理器1010,用于在第三变量的值大于或者等于第一变量的值的情况下,所将该第一变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该接收设备接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
本申请提供的接收设备,可以根据接收设备实际接收到的数据包的情况,来更新第一变量的值,可以使得第一变量更符合其物理定义,即将第一变量更新为接收设备期待接收到的下一个数据包的计数值。同时,提高了数据包传输和递交的准确性和效率,提高用户体验。
接收设备1000中的各个组件通过通信连接,即处理器1010、存储器1020和收发器1030之间通过内部连接通路互相通信,传递控制和/或数据信号。本申请上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是CPU,网络处理器NP或者CPU和NP的组合、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可选的,在本申请的另一个实施例中,该处理器1010还用于:
在第一定时器不在运行、并且第二变量的值小于该第一变量的值的情况下,将第五变量的值更新为该第一变量的值,其中,该第一定时器用于检测接收到的数据包的丢失,或 者用于检测接收到的数据包是否存在乱序,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,在本申请的另一个实施例中,该处理器1010还用于:如果该接收设备被上层配置发送PDCP状态报告,在该处理器将该第一变量的值设置为该第二变量的值之前,生成PDCP状态报告中的比特地图;或者,如果该接收设备被上层配置发送PDCP状态报告,根据该PDCP实体重建前或数据恢复前的该第一变量的值及该第二变量的值,生成PDCP状态报告中的比特地图。
可选的,在本申请的另一个实施例中,该处理器1010还用于:
在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置所述第一定时器,或者只停止该第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;将第一变量的值设置为第二变量的值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
可选的,在本申请的另一个实施例中,该第一定时器为重排序定时器。
应注意,本申请实施例中,处理器1010可以由处理模块实现,存储器1020可以由存储模块实现,收发器1030可以由收发模块实现,如图18所示,接收设备1100可以包括处理模块1110、存储模块1120和收发模块1130。
图17所示的接收设备1000或图18所示的接收设备1100能够实现前述图7和图8中接收设备执行的步骤,为避免重复,这里不再赘述。
图19示出了本申请一个实施例的接收设备1200的示意性框图。应理解,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,如图19所示,该接收设备1200包括:处理器1210、存储器1220和收发器1230,处理器1210、存储器1220和收发器1230通过通信连接,存储器1220存储指令,处理器1210用于执行存储器1220存储的指令,收发器1230用于在处理器1210的驱动下执行具体的信号收发。
该收发器1230,用于接收数据包;
该处理器1210,用于在由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值与该PDCP实体重建前或数据恢复前该第一变量的值不同的情况下,该接收设备开启第一定时器;
或者,在不是由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,该接收设备开启第一定时器;其中,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
本申请提供的接收设备,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
接收设备1200中的各个组件通过通信连接,即处理器1210、存储器1220和收发器1230之间通过内部连接通路互相通信,传递控制和/或数据信号。本申请上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理 器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是CPU,网络处理器NP或者CPU和NP的组合、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可选的,在本申请的另一个实施例中,该处理器1210还用于:在该PDCP实体重建时或数据恢复时,如果该第一定时器正在运行,停止并重置该第一定时器,或者只停止该第一定时器。
可选的,在本申请的另一个实施例中,该第一定时器为重排序定时器。
应注意,本申请实施例中,处理器1210可以由处理模块实现,存储器1220可以由存储模块实现,收发器1230可以由收发模块实现,如图20所示,接收设备1300可以包括处理模块1310、存储模块1320和收发模块1330。
图19所示的接收设备1200或图20所示的接收设备1300能够实现前述图9中接收设备执行的步骤,为避免重复,这里不再赘述。
图21示出了本申请一个实施例的接收设备1400的示意性框图。应理解,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,如图21所示,该接收设备1400包括:处理器1410、存储器1420和收发器1430,处理器1410、存储器1420和收发器1430通过通信连接,存储器1420存储指令,处理器1410用于执行存储器1420存储的指令,收发器1430用于在处理器1410的驱动下执行具体的信号收发。
该收发器1430,用于接收数据包;
该处理器1410,用于在第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,开启该第一定时器,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
本申请提供的接收设备,在接收设备接收到数据包后,通过改变第一定时器的开启条件,延缓了第一定时器开启的时间,避免了因为第一定时器开启的过早造成的丢包问题。同时,可以避免因为重建PDCP实体重建或数据恢复导致的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
接收设备1400中的各个组件通过通信连接,即处理器1410、存储器1420和收发器1430之间通过内部连接通路互相通信,传递控制和/或数据信号。本申请上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是CPU,网络处理器NP或者CPU和NP的组合、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤 及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可选的,在本申请的另一个实施例中,该处理器1410还用于:在该第一定时器不在运行、第二变量的值小于第一变量的值、并且该第一变量的值等于第三变量的值加一的情况下,将第五变量的值更新为第一变量的值,该第五变量指示触发启动该第一定时器时的数据包的计数值。
可选的,在本申请的另一个实施例中,该处理器1410还用于:在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果该第一定时器正在运行,停止并重置该第一定时器,或者只停止该第一定时器。
可选的,在本申请的另一个实施例中,该第一定时器为重排序定时器。
应注意,本申请实施例中,处理器1410可以由处理模块实现,存储器1420可以由存储模块实现,收发器1430可以由收发模块实现,如图22所示,接收设备1500可以包括处理模块1510、存储模块1520和收发模块1530。
图21所示的接收设备1400或图22所示的接收设备1500能够实现前述图10中接收设备执行的步骤,为避免重复,这里不再赘述。
图23示出了本申请一个实施例的接收设备1600的示意性框图。应理解,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,如图23所示,该接收设备1600包括:处理器1610、存储器1620和收发器1630,处理器1610、存储器1620和收发器1630通过通信连接,存储器1620存储指令,处理器1610用于执行存储器1620存储的指令,收发器1630用于在处理器1610的驱动下执行具体的信号收发。
该处理器1610,用于在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,或者只停止该第一定时器,该第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;
该处理器1610还用于:将第六变量的值设置为第二变量的值,该第六变量用于指示该接收设备在该PDCP实体重建后或数据恢复后接收到的数据包中最大的计数值加一,或者该第六变量用于指示大于该接收设备在该PDCP实体重建后或数据恢复后接收到的数据包中的最大的计数值、并且为第一个未递交给上层的数据包的计数值,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
本申请提供的接收设备,在PDCP实体重建时或数据恢复时,将第一定时器停止并重置(归零),或者只停止该第一定时器,并引入了新的变量(第六变量),将该第六变量的值设置为第二变量的值。在PDCP实体重建后或数据恢复后,利用该第六变量代替第一变量的作用,即根据第六变量、第二变量和第一定时器对数据包进行递交。在重建或者数据恢复后,避免了第一定时器在未出现收到乱序包造成的开启,避免了因为第一定时器开启的过早造成的丢包问题。同时,避免了PDCP实体重建时或数据恢复时的丢包,即可以避免重建后未发出的数据包的丢包问题。提高了数据传输的准确性和数据传输的效率,提高用户体验。
接收设备1600中的各个组件通过通信连接,即处理器1610、存储器1620和收发器 1630之间通过内部连接通路互相通信,传递控制和/或数据信号。本申请上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是CPU,网络处理器NP或者CPU和NP的组合、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可选的,在本申请的另一个实施例中,该收发器1630,用于该接收设备接收数据包;该处理器1610还用于:在该第六变量的值小于或者等于第一变量的值,或者该第六变量的值小于或者等于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第六变量的值的情况下,将该第六变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
可选的,在本申请的另一个实施例中,该处理器1610。还用于:在该第六变量的值大于第一变量的值,或者该第六变量的值大于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于该第一变量的值的情况下,将该第一变量的值更新为第四变量的值,其中,该第一变量指示该接收设备期望接收到的下一个数据包的计数值,该第三变量指示该接收设备接收到的数据包的计数值,该第四变量指示该第三变量的值加一,或者该第四变量指示大于该第三变量的值并且为第一个未接收到的数据包的计数值,或者该第四变量指示该PDCP实体已接收到的数据包的计数值中,从该第三变量的值开始、连续并且为最大的计数值加一。
可选的,在本申请的另一个实施例中,该第一定时器为重排序定时器。
可选的,在本申请的另一个实施例中,该偏置值为零或正值
应注意,本申请实施例中,处理器1610可以由处理模块实现,存储器1620可以由存储模块实现,收发器1630可以由收发模块实现,如图23所示,接收设备1700可以包括处理模块1710、存储模块1720和收发模块1730。
图23所示的接收设备1600或图24所示的接收设备1700能够实现前述图11至13中接收设备执行的步骤,为避免重复,这里不再赘述。
图25是本申请一个实施例的接收设备的示意性框图。应理解,接收设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,图25所示的接收设备1800可以用于执行对应于图14中接收设备执行的步骤。该接收设备1800包括:处理器1810、存储器1820和收发器1830,处理器1810、存储器1820和收发器1830通过通信连接,存储器1820存储指令,处理器1810用于执行存储器1820存储的指令,收发器1830用于在处理器1810的驱动下执行具体的信号收发。
处理器1810,用于在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果第一定时在在运行时,停止并重置第一定时器或只停止第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
本申请提供的接收设备,在PDCP实体重建时或数据恢复时,如果第一定时在运行时,将第一定时器停止并重置(或归零),或者只将第一定时器停止,避免由于PDCP重建期间定时器超时,造成丢包。提高了数据传输的准确性和数据传输的效率,提高用户体验。
可选的,在本申请的另一个实施例中,处理器1810,还用于将第一变量的值设置为第二变量的值,该第一变量指示该接收设备期望接收到的下一个数据包的计数值或序列号,该第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值或者序列号,或该第二变量指示最近一个递交给上层的数据包的计数值或者序列号加一。
可选的,在本申请的另一个实施例中,处理器1810,还用于:在PDCP实体重建前或数据恢复前,该PDCP实体使用重排序功能,在PDCP实体重建后或数据恢复后,该PDCP连接两个确认模式AM的无线链路控制RLC实体。
应注意,本申请实施例中,处理器1810可以由处理模块实现,存储器1820可以由存储模块实现,收发器1830可以由收发模块实现,如图26所示,接收设备1900可以包括处理模块1910、存储模块1920和收发模块1930。
图25所示的接收设备1800或图26所示的接收设备1900能够实现前述图14中接收设备执行的步骤,为避免重复,这里不再赘述。
本申请实施例还提供了一种计算机可读介质,用于存储计算机程序代码,该计算机程序包括用于执行上述图5至图14中本申请实施例的数据包处理的方法的指令。该可读介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM),本申请实施例对此不做限制。
本申请实施例还提供了一种系统芯片,该系统芯片包括:处理单元和通信单元,该处理单元,例如可以是处理器,该通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行计算机指令,以使该终端内的芯片执行上述第一方面任意一项的数据包处理的方法。
可选地,该计算机指令被存储在存储单元中。
可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该终端内的位于该芯片外部的存储单元,如ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM等。其中,上述任一处提到的处理器,可以是一个CPU,微处理器,ASIC,或一个或多个用于控制上述第一种直连链路数据传输的方法的程序执行的集成电路。
应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
还应理解,本文中术语“和/或”以及“A或B中的至少一种”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以 硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read_Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (44)
- 一种数据包处理的方法,其特征在于,包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;所述接收设备将第一变量的值设置为第二变量的值,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:如果所述接收设备被上层配置发送PDCP状态报告,在所述接收设备将所述第一变量的值设置为所述第二变量的值之前,生成所述PDCP状态报告;或者,如果所述接收设备被上层配置发送PDCP状态报告,根据所述PDCP实体重建前或数据恢复前的所述第一变量的值及所述第二变量的值,生成所述PDCP状态报告。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述接收设备接收数据包;在第三变量的值大于或者等于所述第一变量的值的情况下,所述接收设备将所述第一变量的值更新为第四变量的值,其中,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在所述PDCP实体重建时或数据恢复时,所述接收设备将第五变量的值设置为所述停止并重置第一定时器时所述第二变量的值,或者设置为所述停止并重置第一定时器时所述第一变量的值,或者设置为所述第五变量的初始值,或者保持不变,其中,所述第五变量指示触发启动所述第一定时器时的数据包的计数值。
- 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种数据包处理的方法,其特征在于,包括:接收设备接收数据包;在第三变量的值大于或者等于第一变量的值的情况下,所述接收设备将所述第一变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述接收设备接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求6所述的方法,其特征在于,所述方法还包括:所述接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置所述第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数 据包是否存在乱序;所述接收设备将第一变量的值设置为第二变量的值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求7所述的方法,其特征在于,所述方法还包括:如果所述接收设备被上层配置发送PDCP状态报告,在所述接收设备将所述第一变量的值设置为所述第二变量的值之前,生成所述PDCP状态报告;或者,如果所述接收设备被上层配置发送PDCP状态报告,根据所述PDCP实体重建前或数据恢复前的所述第一变量的值及所述第二变量的值,生成所述PDCP状态报告。
- 根据权利要求6至8中任一项所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种数据包处理的方法,其特征在于,包括:接收设备接收数据包;在由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值与所述PDCP实体重建前或数据恢复前所述第一变量的值不同的情况下,所述接收设备开启第一定时器;或者,在不是由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,所述接收设备开启第一定时器;其中,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求10所述的方法,其特征在于,所述方法还包括:在所述PDCP实体重建时或数据恢复时,如果所述第一定时器正在运行,所述接收设备停止并重置所述第一定时器。
- 根据权利要求10或11所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种数据包处理的方法,其特征在于,包括:接收设备接收数据包;在第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值等于第三变量的值加一的情况下,所述接收设备开启所述第一定时器,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
- 根据权利要求13所述的方法,其特征在于,所述方法还包括:在所述第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值等于第三变量的值加一的情况下,所述接收设备将第五变量的值更新为第一变量的值,所述第五变量指示触发启动所述第一定时器时的数据包的计数值。
- 根据权利要求13或14所述方法,其特征在于,所述方法还包括:在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果所述第一定时器正在运行,所述接收设备停止并重置所述第一定时器。
- 根据权利要求13至15中任一项所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种数据包处理的方法,其特征在于,包括:接收设备在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;所述接收设备将第六变量的值设置为第二变量的值,所述第六变量用于指示所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中最大的计数值加一,或者所述第六变量用于指示大于所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中的最大的计数值、并且为第一个未递交给上层的数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求17所述的方法,其特征在于,所述方法还包括:所述接收设备接收数据包;在所述第六变量的值小于或者等于第一变量的值,或者所述第六变量的值小于或者等于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于所述第六变量的值的情况下,所述接收设备将所述第六变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示所述第三变量的值加一,或者所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求17所述的方法,其特征在于,所述方法还包括:所述接收设备接收数据包;在所述第六变量的值大于第一变量的值,或者所述第六变量的值大于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于所述第一变量的值的情况下,所述接收设备将所述第一变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示所述第三变量的值加一,或者所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求18或19所述的方法,其特征在于,所述偏置值为零或正值。
- 根据权利要求17至20中任一项所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种接收设备,其特征在于,包括:其特征在于,包括处理器、收发器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制所述收发器接收或发送信号;所述处理器,用于在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数 据包是否存在乱序;所述处理器还用于:将第一变量的值设置为第二变量的值,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求22所述的接收设备,其特征在于,所述处理器还用于:如果所述接收设备被上层配置发送PDCP状态报告,在所述处理器将所述第一变量的值设置为所述第二变量的值之前,生成所述PDCP状态报告;或者,如果所述接收设备被上层配置发送PDCP状态报告,根据所述PDCP实体重建前或数据恢复前的所述第一变量的值及所述第二变量的值,生成所述PDCP状态报告。
- 根据权利要求22或23所述的接收设备,其特征在于,所述收发器,用于接收数据包;所述处理器还用于:在第三变量的值大于或者等于所述第一变量的值的情况下,将所述第一变量的值更新为第四变量的值,其中,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求22至24中任一项所述的接收设备,其特征在于,所述处理器还用于:在所述PDCP实体重建时或数据恢复时,将第五变量的值设置为所述停止并重置第一定时器时所述第二变量的值,或者设置为所述停止并重置第一定时器时所述第一变量的值,或者设置为所述第五变量的初始值,或者保持不变,其中,所述第五变量指示触发启动所述第一定时器时的数据包的计数值。
- 根据权利要求22至25中任一项所述的方法,其特征在于,所述第一定时器为重排序定时器。
- 一种接收设备,其特征在于,包括:其特征在于,包括处理器、收发器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制所述收发器接收或发送信号;所述收发器,用于接收数据包;所述处理器,用于在第三变量的值大于或者等于第一变量的值的情况下,所将所述第一变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述接收设备接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求27所述的接收设备,其特征在于,所述处理器还用于:在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置所述第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;将第一变量的值设置为第二变量的值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求28所述的接收设备,其特征在于,所述处理器还用于:如果所述接收设备被上层配置发送PDCP状态报告,在所述处理器将所述第一变量的值设置为所述第二变量的值之前,生成所述PDCP状态报告;或者,如果所述接收设备被上层配置发送PDCP状态报告,根据所述PDCP实体重建前或数据恢复前的所述第一变量的值及所述第二变量的值,生成所述PDCP状态报告。
- 根据权利要求27至29中任一项所述的接收设备,其特征在于,所述第一定时器为重排序定时器。
- 一种接收设备,其特征在于,包括:其特征在于,包括处理器、收发器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制所述收发器接收或发送信号;所述收发器,用于接收数据包;所述处理器,用于在由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值与所述PDCP实体重建前或数据恢复前所述第一变量的值不同的情况下,所述接收设备开启第一定时器;或者,在不是由于分组数据汇聚协议PDCP实体重建或数据恢复导致的第一定时器不在运行,并且第二变量的值小于第一变量的值的情况下,所述接收设备开启第一定时器;其中,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求31所述的接收设备,其特征在于,所述处理器还用于:在所述PDCP实体重建时或数据恢复时,如果所述第一定时器正在运行,停止并重置所述第一定时器。
- 根据权利要求31或32所述的接收设备,其特征在于,所述第一定时器为重排序定时器。
- 一种接收设备,其特征在于,包括:其特征在于,包括处理器、收发器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制所述收发器接收或发送信号;所述收发器,用于接收数据包;所述处理器,用于在第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值等于第三变量的值加一的情况下,开启所述第一定时器,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序。
- 根据权利要求34所述的接收设备,其特征在于,所述处理器还用于:在所述第一定时器不在运行、第二变量的值小于第一变量的值、并且所述第一变量的值等于第三变量的值加一的情况下,将第五变量的值更新为第一变量的值,所述第五变量指示触发启动所述第一定时器时的数据包的计数值。
- 根据权利要求34或35所述的接收设备,其特征在于,所述处理器还用于:在分组数据汇聚协议PDCP实体重建时或数据恢复时,如果所述第一定时器正在运行,停止并重置所述第一定时器。
- 根据权利要求34至36中任一项所述的接收设备,其特征在于,所述第一定时器 为重排序定时器。
- 一种接收设备,其特征在于,包括:其特征在于,包括处理器、收发器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制所述收发器接收或发送信号;所述处理器,用于在分组数据汇聚协议PDCP实体重建时或数据恢复时,停止并重置第一定时器,所述第一定时器用于检测接收到的数据包的丢失,或者用于检测接收到的数据包是否存在乱序;所述处理器还用于:将第六变量的值设置为第二变量的值,所述第六变量用于指示所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中最大的计数值加一,或者所述第六变量用于指示大于所述接收设备在所述PDCP实体重建后或数据恢复后接收到的数据包中的最大的计数值、并且为第一个未递交给上层的数据包的计数值,所述第二变量指示仍在等待的、第一个未递交给上层的数据包的计数值。
- 根据权利要求38所述的接收设备,其特征在于,所述收发器,用于所述接收设备接收数据包;所述处理器还用于:在所述第六变量的值小于或者等于第一变量的值,或者所述第六变量的值小于或者等于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于所述第六变量的值的情况下,将所述第六变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示所述第三变量的值加一,或者所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求38所述的接收设备,其特征在于,所述处理器还用于:在所述第六变量的值大于第一变量的值,或者所述第六变量的值大于第一变量的值加偏置值的情况下,并且,在第三变量的值大于或者等于所述第一变量的值的情况下,将所述第一变量的值更新为第四变量的值,其中,所述第一变量指示所述接收设备期望接收到的下一个数据包的计数值,所述第三变量指示所述接收设备接收到的数据包的计数值,所述第四变量指示所述第三变量的值加一,或者所述第四变量指示大于所述第三变量的值并且为第一个未接收到的数据包的计数值,或者所述第四变量指示所述PDCP实体已接收到的数据包的计数值中,从所述第三变量的值开始、连续并且为最大的计数值加一。
- 根据权利要求39或40所述的接收设备,其特征在于,所述偏置值为零或正值。
- 根据权利要求38至41中任一项所述的接收设备,其特征在于,所述第一定时器为重排序定时器。
- 一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序用于执行根据权利要求1至21中任一项所述的数据包处理的方法的指令。
- 一种系统芯片,包括处理单元和通信单元,该处理单元可执行计算机指令,以使该系统芯片执行根据权利要求1至21中任一项所述的数据包处理的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18879057.0A EP3720070A4 (en) | 2017-11-16 | 2018-10-28 | DATA PACKAGE PROCESSING PROCESS AND DEVICE |
CN201880085767.5A CN111567000A (zh) | 2017-11-16 | 2018-10-28 | 数据包处理的方法和设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711136518.8A CN109803277B (zh) | 2017-11-16 | 2017-11-16 | 数据包处理的方法和设备 |
CN201711136518.8 | 2017-11-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019095975A1 true WO2019095975A1 (zh) | 2019-05-23 |
Family
ID=66540013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/112278 WO2019095975A1 (zh) | 2017-11-16 | 2018-10-28 | 数据包处理的方法和设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3720070A4 (zh) |
CN (2) | CN109803277B (zh) |
WO (1) | WO2019095975A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114501537A (zh) * | 2022-01-26 | 2022-05-13 | Oppo广东移动通信有限公司 | 一种调整方法、电子设备及计算机存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818630B (zh) * | 2019-07-12 | 2024-06-25 | 维沃移动通信有限公司 | 状态变量维护方法、装置及用户设备 |
EP4284059A4 (en) * | 2021-03-31 | 2024-01-24 | Huawei Technologies Co., Ltd. | DATA PROCESSING APPARATUS AND METHOD |
CN117641444A (zh) * | 2022-08-09 | 2024-03-01 | 华为技术有限公司 | 数据处理方法及装置 |
CN117812259A (zh) * | 2022-09-30 | 2024-04-02 | 华为技术有限公司 | 数据传输方法及装置 |
CN118784165A (zh) * | 2023-04-07 | 2024-10-15 | 华为技术有限公司 | 通信方法和通信装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686494A (zh) * | 2008-09-22 | 2010-03-31 | 大唐移动通信设备有限公司 | 一种分组数据汇聚协议层处理数据包的方法和装置 |
CN104519524A (zh) * | 2013-09-26 | 2015-04-15 | 中兴通讯股份有限公司 | 一种基于多流传输的数据排序方法及接收装置 |
CN105101293A (zh) * | 2014-04-30 | 2015-11-25 | 夏普株式会社 | Pdcp发送实体、辅基站、用户设备及其方法 |
US20160044639A1 (en) * | 2014-08-08 | 2016-02-11 | Lg Electronics Inc. | Method for processing a packet data convergence protocol reordering function at a user equipment in a dual connectivity system and device therefor |
US20170064707A1 (en) * | 2015-08-31 | 2017-03-02 | Qualcomm Incorporated | Avoiding unnecessary protocol data unit (pdu) transmissions |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130093774A (ko) * | 2011-12-29 | 2013-08-23 | 엘지전자 주식회사 | Pdcp 패킷 전송 방법 |
WO2015113497A1 (en) * | 2014-01-28 | 2015-08-06 | Mediatek Singapore Pte. Ltd. | Methods for re-order pdcp packets |
CN104935413B (zh) * | 2014-03-19 | 2019-12-27 | 夏普株式会社 | 分组数据汇聚协议pdcp实体及其执行的方法 |
KR102410216B1 (ko) * | 2014-12-18 | 2022-06-17 | 엘지전자 주식회사 | 무선 통신 시스템에서 pdcp 리오더링 타이머를 재설정하는 방법 및 그 장치 |
CN106357548B (zh) * | 2016-09-18 | 2019-06-11 | 京信通信系统(中国)有限公司 | Pdcp数据包的接收方法和系统 |
-
2017
- 2017-11-16 CN CN201711136518.8A patent/CN109803277B/zh active Active
-
2018
- 2018-10-28 CN CN201880085767.5A patent/CN111567000A/zh active Pending
- 2018-10-28 WO PCT/CN2018/112278 patent/WO2019095975A1/zh unknown
- 2018-10-28 EP EP18879057.0A patent/EP3720070A4/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686494A (zh) * | 2008-09-22 | 2010-03-31 | 大唐移动通信设备有限公司 | 一种分组数据汇聚协议层处理数据包的方法和装置 |
CN104519524A (zh) * | 2013-09-26 | 2015-04-15 | 中兴通讯股份有限公司 | 一种基于多流传输的数据排序方法及接收装置 |
CN105101293A (zh) * | 2014-04-30 | 2015-11-25 | 夏普株式会社 | Pdcp发送实体、辅基站、用户设备及其方法 |
US20160044639A1 (en) * | 2014-08-08 | 2016-02-11 | Lg Electronics Inc. | Method for processing a packet data convergence protocol reordering function at a user equipment in a dual connectivity system and device therefor |
US20170064707A1 (en) * | 2015-08-31 | 2017-03-02 | Qualcomm Incorporated | Avoiding unnecessary protocol data unit (pdu) transmissions |
Non-Patent Citations (2)
Title |
---|
"3rd Generation Partnership Project; Technical Specification Group Radio Access Network; NR; Packet Data Convergence Protocol (PDCP) specification (Release 15", 3GPP TS 38. 323, 2 October 2017 (2017-10-02), XP051450248 * |
See also references of EP3720070A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114501537A (zh) * | 2022-01-26 | 2022-05-13 | Oppo广东移动通信有限公司 | 一种调整方法、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3720070A1 (en) | 2020-10-07 |
EP3720070A4 (en) | 2020-12-30 |
CN109803277B (zh) | 2020-12-22 |
CN109803277A (zh) | 2019-05-24 |
CN111567000A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019095975A1 (zh) | 数据包处理的方法和设备 | |
US11159981B2 (en) | Congestion processing method and apparatus | |
KR101113125B1 (ko) | 윈도우 제어 및 재송제어방법, 및, 송신측장치 | |
JP2020520567A (ja) | パケットデータコンバージェンスプロトコル(pdcp)の再順序付けのためのネットワークノードとその方法 | |
WO2018227501A1 (zh) | 传输数据的方法和设备 | |
KR20170021383A (ko) | 프로토콜 데이터 유닛들의 전달 | |
WO2007130325A2 (en) | Method and apparatus for facilitating lossless handover in 3gpp long term evolution systems | |
WO2020192668A1 (zh) | 一种控制定时器、数据包处理方法及设备 | |
US8295839B2 (en) | Wireless communication method and apparatus for recovering data following a serving cell change based on a radio link control intelligence mode in effect | |
WO2019029584A1 (zh) | 状态报告的发送方法、设备及系统 | |
US20070183328A1 (en) | Method of resetting radio link control entity in a mobile communications system and related apparatus | |
US20120201151A1 (en) | Layer 2 ACK And NACK Status Reporting | |
WO2012083762A1 (zh) | 数据传输方法、设备及系统 | |
WO2019101122A1 (zh) | 传输数据的方法和装置 | |
WO2019134168A1 (en) | Radio link control (rlc) acknowledged mode (am) data reception | |
WO2022047670A1 (zh) | 处理数据包的方法和通信装置 | |
US11563524B2 (en) | Wireless communication method and device | |
US20130114748A1 (en) | Method, Apparatus and Device for Transmitting Data Blocks | |
WO2021208863A1 (zh) | 数据传输方法及通信装置 | |
WO2021004207A1 (zh) | 数据处理的方法和设备 | |
WO2018126450A1 (zh) | 无线通信的方法和设备 | |
JP6389126B2 (ja) | 無線通信装置及び送信フレーム制御方法 | |
US9794930B1 (en) | Method and apparatus for packet data unit processing for retransmission | |
WO2012174811A1 (zh) | 切换过程中消息的处理方法及演进型基站 | |
WO2019014918A1 (zh) | 传输数据的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18879057 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018879057 Country of ref document: EP Effective date: 20200616 |