Improved 5g pdcp data receiving processing method

CN117596591BActive Publication Date: 2026-10-27THE 54TH RESEARCH INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY GROUP CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311540535.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-17
Publication Date
2026-10-27
Estimated Expiration
2043-11-17

AI Technical Summary

Technical Problem

[0004]针对现有5G PDCP数据接收处理操作在推算HFN时可能出错,导致接收到的PDCPPDU被错误丢弃并造成数据传输延迟的问题,本发明提供一种改进的5GPDCP数据接收处理方法,该方法可以发现HFN推算错误并正确处理此类PDU,从而避免数据丢失,减少数据处理延迟

Benefits of technology

[0032]1、本发明中,当接收端PDCP实体收到一个PDCP数据PDU时,先通过推算该PDU的HFN得到COUNT,再用这个COUNT解密该PDU并验证其完整性。在推算HFN时,根据现有协议,如果RCVD_SN>=SN(RX_DELIV)+Window_Size,则RCVD_HFN=HFN(RX_DELIV)–1,但实际上此时该PDU的HFN有可能等于HFN(RX_DELIV)。另外,如果SN(RX_DELIV)–Window_Size<=RCVD_SN<SN(RX_DELIV),则RCVD_HFN=HFN(RX_DELIV),但实际上此时该PDU的HFN有可能等于HFN(RX_DELIV)+1。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117596591B_ABST
    Figure CN117596591B_ABST
Patent Text Reader

Abstract

The application provides an improved 5G PDCP data receiving processing method, and belongs to the technical field of 5G communication. In the application, when a receiving end PDCP entity receives a PDCP data PDU, the COUNT of the PDU is obtained by calculating the HFN of the PDU, the PDU is decrypted by using the COUNT, and the integrity of the PDU is verified. In order to ensure that the correct HFN is obtained, when the PDU is decrypted and the integrity of the PDU is verified, if the verification fails, the calculated HFN is changed into the possible actual value, the PDU is re-decrypted by using the new COUNT, and the integrity of the PDU is verified again. The application can find the HFN calculation error and correctly process the PDU, so that data loss is avoided, and data processing delay is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of 5G communication technology, and in particular to an improved 5G PDCP data reception and processing method. Background Technology

[0002] In 5G systems, the PDCP (Packet Data Convergence Protocol) is responsible for reordering received data and transmitting it to the upper layers in sequence. To this end, the receiving PDCP entity maintains a reordering window to process the received data. The receiving PDCP entity first calculates the HFN (Hyper Frame Number) of the received PDCP data PDU (Protocol Data Unit) based on its SN and the size of the reordering window, thus obtaining a count (COUNT). This count indicates whether the PDU is within or behind the reordering window. Next, the PDU is decrypted and its integrity is verified. If the integrity verification fails, or if the integrity verification succeeds but the PDU is behind the reordering window or is a duplicate PDU, it is discarded.

[0003] If the reordering timer of the receiving PDCP entity is long, and the sending PDCP entity transmits data quickly, the receiving PDCP entity may receive PDCP data PDUs that are ahead of the reordering window. However, according to the HFN calculation rules specified in the current protocol, the receiving PDCP entity will calculate an incorrect HFN, causing failure in subsequent decryption and integrity verification of the PDU using the corresponding COUNT, ultimately discarding the PDU. Subsequently, when the reordering window moves forward, it will assume that the PDU has not yet been received, thus starting a reordering timer until the timer expires, causing data transmission delays and potentially triggering the aforementioned problem of receiving PDCP PDUs ahead of the reordering window again. Summary of the Invention

[0004] To address the issue that existing 5G PDCP data reception and processing operations may encounter errors in HFN calculation, leading to the incorrect discarding of received PDCPPDUs and causing data transmission delays, this invention provides an improved 5G PDCP data reception and processing method. This method can detect HFN calculation errors and correctly process such PDUs, thereby avoiding data loss and reducing data processing delays.

[0005] The technical solution adopted in this invention is as follows:

[0006] An improved 5G PDCP data receiving and processing method, wherein when a PDCP data PDU is received from a lower layer, the PDCP entity at the receiving end first calculates the COUNT corresponding to the PDU according to the existing protocol, and then uses this COUNT to perform decryption and integrity verification on the PDU; if the integrity verification fails, the following steps are executed:

[0007] (1) If RCVD_SN >= SN(RX_DELIV) + reordering window size, set RCVD_HFN = HFN(RX_DELIV); otherwise, if SN(RX_DELIV) – reordering window size <= RCVD_SN < SN(RX_DELIV), set RCVD_HFN = HFN(RX_DELIV) + 1;

[0008] (2) If neither of the two conditions in step (1) is satisfied, proceed to step (3), otherwise proceed to step (4);

[0009] (3) Indicate the integrity verification failure to the upper layer, then discard the PDU and consider it as not received;

[0010] (4) Set RCVD_COUNT = [RCVD_HFN, RCVD_SN];

[0011] (5) Use RCVD_COUNT to decrypt the PDU and verify its integrity;

[0012] (6) If the integrity verification fails, proceed to step (7), otherwise proceed to step (8)

[0013] (7) Indicate the integrity verification failure to the upper layer, and discard the PDU and consider it as not received;

[0014] (8) If the COUNT of a PDCP SDU in the receiving buffer satisfies: RX_DELIV < COUNT <= RCVD_COUNT – reordering window size, transmit such PDCP SDU to the upper layer in sequence after header decompression;

[0015] (9) Set RX_DELIV = RCVD_COUNT – reordering window size + 1;

[0016] (10) Store the resulting PDCP SDU obtained after decryption and integrity verification processing into the receiving buffer;

[0017] (11) Set RX_NEXT = RCVD_COUNT + 1;

[0018] (12) If outOfOrderDelivery is configured, transmit the resulting PDCP SDU to the upper layer;

[0019] (13) If the COUNT of a PDCP SDU in the reception buffer satisfies: COUNT = RX_DELIV, perform header decompression on the SDUs with consecutive COUNTs starting from this SDU in the buffer, then deliver them to upper layers in order, and set RX_DELIV to the COUNT corresponding to the first PDCP SDU waiting to be received;

[0020] (14) If the reordering timer is running and RX_DELIV >= RX_REORD, stop and reset the reordering timer;

[0021] (15) If the reordering timer is not running and RX_DELIV < RX_NEXT, set RX_REORD = RX_NEXT, then start the reordering timer;

[0022] Herein, the meanings of each symbol are as follows:

[0023] RX_NEXT: the COUNT of the next PDCP SDU expected to be received;

[0024] RX_DELIV: the COUNT of the first PDCP SDU that is pending and has not been delivered to the upper layer;

[0025] RX_REORD: the next COUNT after the COUNT of the PDCP data PDU that triggers the reordering timer;

[0026] HFN (state variable): the HFN part of the state variable;

[0027] SN (state variable): the SN part of the state variable;

[0028] RCVD_SN: the SN of the received PDCP data PDU;

[0029] RCVD_HFN: the HFN of the received PDCP data PDU;

[0030] RCVD_COUNT: the COUNT of the received PDCP data PDU.

[0031] Compared with the prior art, the present invention has the following beneficial effects:

[0032] 1. In the present invention, when the PDCP entity at the receiving end receives a PDCP data PDU, it first derives the HFN of the PDU to obtain a COUNT, and then uses this COUNT to decrypt the PDU and verify its integrity. When deriving the HFN, according to the existing protocol, if RCVD_SN >= SN(RX_DELIV) + Window_Size, then RCVD_HFN = HFN(RX_DELIV) - 1, but in practice, the HFN of this PDU at this time may be equal to HFN(RX_DELIV). In addition, if SN(RX_DELIV) - Window_Size <= RCVD_SN < SN(RX_DELIV), then RCVD_HFN = HFN(RX_DELIV), but in practice, the HFN of this PDU at this time may be equal to HFN(RX_DELIV) + 1.

[0033] 2. In the present invention, to ensure that the correct HFN is obtained, when decrypting the PDU and verifying its integrity, if the verification fails, the derived HFN is changed to the aforementioned possible actual value, and the new COUNT is used to re-decrypt the PDU and verify its integrity again. If the integrity verification succeeds at this time, it indicates that the correct COUNT is obtained, and thus the obtained SDU should be saved.

[0034] 3. In the present invention, to save this SDU, the PDCP entity at the receiving end moves the reordering window forward until the right side of the window reaches the position corresponding to this SDU. After the window is moved, if any SDU that has been received but not yet delivered to the upper layer is moved out of the window, such SDU is delivered to the upper layer. Next, the left edge of the window is checked. If one or more consecutive SDUs that have been received but not yet delivered to the upper layer start from the left edge of the window, such SDUs are delivered to the upper layer, and the window continues to move until the left side of the window reaches the position corresponding to the first SDU waiting to be received. If the SDU that triggered the reordering timer has been delivered to the upper layer, the reordering timer is stopped and reset. After stopping the timer, if there are still SDUs that have been received but not yet delivered to the upper layer in the window, the reordering timer is started.

[0035] In conclusion, compared with the existing data receiving and processing operations at the PDCP layer, the present invention improves the receiving and processing operations, avoids data loss, and reduces data processing delay. Brief Description of the Drawings

[0036] Figure 1 is a schematic diagram of waiting for the PDU with SN=2.

[0037] Figure 2 is a schematic diagram of receiving the PDU with SN=11.

[0038] Figure 3is a schematic diagram of waiting for PDUs with SN=6 and 10. Detailed Description of the Embodiments

[0039] The present invention will be described in further detail below with reference to the accompanying drawings.

[0040] An improved 5G PDCP data reception processing method, when a PDCP data PDU is received from a lower layer, the receiving end PDCP entity first calculates the COUNT corresponding to the PDU according to the existing protocol, and then uses this COUNT to perform decryption and integrity verification on the PDU; if the integrity verification fails, the following steps are executed:

[0041] (101) If RCVD_SN >= SN(RX_DELIV) + the size of the reordering window, set RCVD_HFN = HFN(RX_DELIV); otherwise, if SN(RX_DELIV) - the size of the reordering window <= RCVD_SN < SN(RX_DELIV), set RCVD_HFN = HFN(RX_DELIV) + 1;

[0042] (102) If neither of the two conditions in step (101) is satisfied, proceed to step (103), otherwise proceed to step (104);

[0043] (103) Indicate the integrity verification failure to the upper layer, then discard this PDCP data PDU and treat it as not received;

[0044] (104) Set RCVD_COUNT = [RCVD_HFN, RCVD_SN];

[0045] (105) Use RCVD_COUNT to decrypt the PDU and verify its integrity;

[0046] (106) If the integrity verification fails, proceed to step (107), otherwise proceed to step (108)

[0047] (107) Indicate the integrity verification failure to the upper layer, discard this PDCP data PDU and treat it as not received;

[0048] (108) If the COUNT of a PDCP SDU in the reception buffer satisfies RX_DELIV < COUNT <= RCVD_COUNT - the size of the reordering window, after header decompression, transmit such PDCP SDUs to the upper layer in order;

[0049] (109) Set RX_DELIV = RCVD_COUNT - the size of the reordering window + 1;

[0050] (110) storing the resulting PDCP SDU obtained after decryption and integrity verification processing in the receiving buffer;

[0051] (111) setting RX_NEXT = RCVD_COUNT + 1;

[0052] (112) if outOfOrderDelivery is configured, delivering the resulting PDCP SDU to upper layers;

[0053] (113) if the COUNT of a PDCP SDU in the receiving buffer satisfies COUNT = RX_DELIV, performing header decompression on SDUs with consecutive COUNTs starting from this SDU in the buffer, delivering them to upper layers in order, and then setting RX_DELIV to the COUNT corresponding to the first PDCP SDU waiting to be received;

[0054] (114) if the reordering timer is running and RX_DELIV >= RX_REORD, stopping and resetting the reordering timer;

[0055] (115) if the reordering timer is not running (including the aforementioned stopped scenario) and RX_DELIV < RX_NEXT, setting RX_REORD = RX_NEXT, and then starting the reordering timer;

[0056] where the meaning of each symbol is as follows:

[0057] RX_NEXT: the COUNT of the next PDCP SDU expected to be received;

[0058] RX_DELIV: the COUNT of the first PDCP SDU that is pending and has not been delivered to upper layers;

[0059] RX_REORD: the COUNT next to the COUNT of the PDCP data PDU that triggers the reordering timer;

[0060] HFN (state variable): the HFN part of the state variable;

[0061] SN (state variable): the SN part of the state variable;

[0062] RCVD_SN: the SN of the received PDCP data PDU;

[0063] RCVD_HFN: the HFN of the received PDCP data PDU;

[0064] RCVD_COUNT: the COUNT of the received PDCP data PDU.

[0065] Unexplained names and symbols are standard names used in 5G-related protocols.

[0066] Here are more specific examples:

[0067] In this example, the value range of SN is [0, 15], and the window size is 8.

[0068] exist Figure 1 In the process, the receiving PDCP entity has received PDUs with SNs of 3, 4, 5, 7, 8, and 9 and has placed the processed SDUs into a buffer, waiting to be transmitted to the upper layer. PDUs with SNs of 2 and 6 have not yet been received, and the reordering timer is running to wait for the PDU with SN of 2. Assuming HFN = 2, then RX_DELIV = [2,2], RX_REORD = [2,4], and RX_NEXT = [2,10].

[0069] exist Figure 2 In the process, the receiving PDCP entity receives a PDU with SN=11 and derives a COUNT of [1,11]. Decryption and integrity verification of the PDU using this COUNT fails. Therefore, a new COUNT of [2,11] is derived, and the PDU is decrypted and its integrity verified again using this new COUNT. Since the verification is successful, the SDU with SN=3 is transmitted to the upper layer, the SDU with SN=11 is placed in the buffer, RX_DELIV=[2,4] is updated, and RX_NEXT=[2,12] is updated.

[0070] exist Figure 3 In the process, since the SDU with the corresponding COUNT for RX_DELIV is already in the cache, SDUs with consecutive COUNTs starting from this SDU, i.e., SDUs with SN=4 and 5, are all transmitted to the upper layer. Since the PDU with SN=6 has not yet been received, RX_DELIV is updated to [2,6]. Because RX_DELIV >= RX_REORD, the running reordering timer is stopped and reset. Then, because RX_DELIV...

Claims

1. An improved 5G PDCP data reception and processing method, characterized in that, When receiving a data PDU of PDCP from a lower layer, the receiving end PDCP entity first calculates the COUNT corresponding to the PDU according to the existing protocol, and then uses this COUNT to perform decryption and integrity verification on the PDU; if the integrity verification fails, the following steps are executed: (1) If RCVD_SN>=SN(RX_DELIV)+reordering window size, set RCVD_HFN=HFN(RX_DELIV); otherwise, if SN(RX_DELIV)–reordering window size<=RCVD_SN<SN(RX_DELIV), set RCVD_HFN=HFN(RX_DELIV)+1; (2) If neither of the two conditions in step (1) is satisfied, proceed to step (3), otherwise proceed to step (4); (3) Indicate the integrity verification failure to the upper layer, then discard the PDU and consider it not received; (4) Set RCVD_COUNT=[RCVD_HFN, RCVD_SN]; (5) Use RCVD_COUNT to decrypt the PDU and verify the integrity; (6) If the integrity verification fails, proceed to step (7), otherwise proceed to step (8) (7) Indicate the integrity verification failure to the upper layer, and discard the PDU and consider it not received; (8) If the COUNT of a PDCP SDU in the receiving buffer satisfies: RX_DELIV<COUNT<=RCVD_COUNT–reordering window size, after header decompression, deliver such PDCP SDUs to the upper layer in sequence; (9) Set RX_DELIV=RCVD_COUNT–reordering window size+1; (10) Store the resulting PDCP SDU obtained after decryption and integrity verification processing into the receiving buffer; (11) Set RX_NEXT=RCVD_COUNT+1; (12) If outOfOrderDelivery is configured, deliver the resulting PDCP SDU to the upper layer; (13) If the COUNT of a PDCP SDU in the receiving buffer satisfies: COUNT=RX_DELIV, perform header decompression on the SDUs with consecutive COUNTs starting from this SDU in the buffer, then deliver them to the upper layer in sequence, and set RX_DELIV to the COUNT corresponding to the first PDCP SDU waiting to be received; (14) If the reordering timer is running and RX_DELIV>=RX_REORD, stop and reset the reordering timer; (15) If the reordering timer is not running and RX_DELIV<RX_NEXT, set RX_REORD=RX_NEXT, then start the reordering timer; The meanings of each symbol are as follows: RX_NEXT: the COUNT of the next PDCP SDU expected to be received; RX_DELIV: the COUNT of the first PDCP SDU that is pending and has not been delivered to the upper layer; RX_REORD: The next COUNT of the PDCP data PDU that triggered the reordering timer; HFN (State Variable): The HFN part of the state variable; SN (State Variable): The SN part of the state variable; RCVD_SN: The SN of the received PDCP data PDU; RCVD_HFN: The HFN of the received PDCP data PDU; RCVD_COUNT: The COUNT of the received PDCP data PDU.

Citation Information

Patent Citations

  • Methods and devices for sending data packet, hyper frame number update and maintenance, and data processing

    CN102857356A

  • Data transmission method and device

    CN108347727A