Data processing method and apparatus, and storage medium
By parsing the CID and MSN values of PDU data packets in the 5G network, grouping them, and determining their sequence numbers, the decompression delay and equipment load issues caused by out-of-order PDUs are resolved, achieving efficient data packet decompression processing.
Patent Information
- Application Number
- CN202110915613.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-10
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2041-08-10
AI Technical Summary
In 5G networks, out-of-order Protocol Data Units (PDUs) received by the PDCP layer cause data packets to fail to be decompressed in a timely manner, and reordering and decompression increases the equipment load.
If the count value of the PDU data packet is not equal to the received delivery value, the CID and MSN values are obtained, the packets are grouped, and the sequence number is checked for disorder. PDU data packets that are not disordered are directly sent to the robust header compression module for decompression, while disordered data packets are stored and reordered.
It reduces packet processing and transmission latency, and lowers the short-term processing load of decompression equipment.
Smart Images

Figure CN115707134B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of communication technology, and in particular to a data processing method, apparatus and storage medium. Background Technology
[0002] Currently, in 5G networks, for frequently occurring short transmission control protocol / Internet protocol (TCP / IP) data or uplink feedback data corresponding to TCP / IP download services, the acknowledged mode (AM) radio bearer (RB) is generally used. Furthermore, TCP / IP header compression is enabled at the Packet Data Convergence Protocol (PDCP) layer to improve air interface transmission efficiency. When the PDCP layer receives discontinuously received Protocol Data Units (PDUs), if the PDUs need to be decompressed, they must be sequentially delivered to the Robust Header Compression (ROHC) module of the PDCP layer.
[0003] In related technologies, when the PDCP protocol layer receives compressed PDUs, if the PDCP is out of order, existing solutions directly place the current PDU into the receive buffer to wait for reordering, reorder the compressed data packets, and then decompress them. However, this approach can easily lead to the receiver not receiving and decompressing data packets in a timely manner, and decompressing multiple sequentially delivered PDUs at once after reordering can easily cause a short-term surge in equipment load. Summary of the Invention
[0004] This disclosure provides a data processing method, apparatus, and storage medium.
[0005] According to one aspect of this disclosure, a data processing method is provided, the method comprising: acquiring multiple currently received Protocol Data Unit (PDU) data packets; for each PDU data packet, if the count value of the PDU data packet is not equal to the Received Delivery (RX DELIV) value, parsing the PDU data packet to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet, wherein the RX DELIV value represents the count value of the first PDU data packet not previously sent to the Robust Head Compression (RoHC) module by the Packet Data Convergence Protocol (PDCP) layer; grouping PDU data packets with the same CID into multiple groups based on the CID of each PDU data packet; for the current group of PDU data packets in the multiple groups of PDU data packets, determining that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order based on the MSN value of the PDU data packets in the current group of PDU data packets; and sending the PDU data packet to the Robust Head Compression (RoHC) module to obtain data after the RoHC module decompresses the PDU data packet.
[0006] In one possible implementation, determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order based on the MSN values of the PDU packets in the current group of PDU packets includes: obtaining the target CID corresponding to the current group of PDU packets; obtaining the MSN value range corresponding to the target CID and the window length of the least significant bit (WLSB) based on the window; determining the maximum count value based on the count value corresponding to each PDU packet in the current group of PDU packets; determining the number of packet losses in the current group of PDU packets based on the number of PDU packets in the current group and the maximum count value; if the number of packet losses is less than the window length of the WLSB, then determining whether the MSN values of the PDU packets in the current group of PDU packets are continuous within the MSN value range; if the MSN values are continuous within the specified MSN value range, then determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order.
[0007] In one possible implementation, the method further includes: if the sequence numbers of the PDU data packets in the current group of PDU data packets are out of order, then storing the PDU data packets in the current group of PDU data packets in the receive buffer.
[0008] In one possible implementation, before storing the PDU data packets in the current group of PDU data packets into the receive buffer, the method further includes: determining whether there is a PDU data packet corresponding to the target CID in the receive buffer; if not, storing the PDU data packets in the current group of PDU data packets into the receive buffer.
[0009] In one possible implementation, the method further includes: if present, determining that the MSN value of the PDU data packet in the receive buffer is continuous with the MSN value of the PDU data packet in the current group of PDU data packets; obtaining the PDU data packet corresponding to the target CID from the receive buffer; adding the obtained PDU data packet to the current group of PDU data packets; reordering each PDU data packet in the added current group of PDU data packets according to the MSN value of each PDU data packet in the added current group of PDU data packets, and sending the reordered PDU data packets to the RoHC module.
[0010] According to another aspect of this disclosure, a data processing apparatus is provided, including a memory, a transceiver, and a processor: the memory for storing a computer program; the transceiver for transmitting and receiving data under the control of the processor; and the processor for reading the computer program in the memory and performing the following operations: acquiring a plurality of currently received Protocol Data Unit (PDU) data packets; and for each PDU data packet, if the count value of the PDU data packet is not equal to the Received Delivery (RX) Deliverable (DELIV) value, parsing the PDU data packet to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet, wherein the RX... DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Header Compression (RoHC) module before the Packet Data Convergence Protocol (PDCP) layer. Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets. For the current group of PDU data packets in the multiple groups of PDU data packets, the MSN value of the PDU data packets in the current group of PDU data packets is used to determine that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order. The PDU data packets are then sent to the Robust Header Compression (RoHC) module to obtain the data after the RoHC module decompresses the PDU data packets.
[0011] In one possible implementation, determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order based on the MSN values of the PDU packets in the current group of PDU packets includes: obtaining the target CID corresponding to the current group of PDU packets; obtaining the MSN value range corresponding to the target CID and the window length of the least significant bit (WLSB) based on the window; determining the maximum count value based on the count value corresponding to each PDU packet in the current group of PDU packets; determining the number of packet losses in the current group of PDU packets based on the number of PDU packets in the current group and the maximum count value; if the number of packet losses is less than the window length of the WLSB, then determining whether the MSN values of the PDU packets in the current group of PDU packets are continuous within the MSN value range; if the MSN values are continuous within the specified MSN value range, then determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order.
[0012] In one possible implementation, the processor is further configured to perform the following operation: if the sequence numbers of the PDU packets in the current group of PDU packets are out of order, then store the PDU packets in the current group of PDU packets into the receive buffer.
[0013] In one possible implementation, the processor is further configured to perform the following operations: determine whether there is a PDU data packet corresponding to the target CID in the receive buffer; if not, store the PDU data packet in the current group of PDU data packets into the receive buffer.
[0014] In one possible implementation, the processor is further configured to perform the following operations: if present, determine the MSN value of the PDU data packet in the receive buffer, which is continuous with the MSN value of the PDU data packet in the current group of PDU data packets; obtain the PDU data packet corresponding to the target CID from the receive buffer; add the obtained PDU data packet to the current group of PDU data packets; reorder each PDU data packet in the added current group of PDU data packets according to the MSN value of each PDU data packet in the added current group of PDU data packets, and send the reordered PDU data packets to the RoHC module.
[0015] According to another aspect of this disclosure, a data processing apparatus is provided, comprising: an acquisition unit for acquiring a plurality of currently received Protocol Data Unit (PDU) data packets; a parsing unit for parsing each PDU data packet, wherein if the count value of the PDU data packet is not equal to the Received Delivery (RX DELIV) value, parsing the PDU data packet to obtain a Context Identifier (CID) and Information Sequence Number (MSN) value corresponding to the PDU data packet, wherein the RX DELIV value represents the count value of the first PDU data packet not previously sent to a Robust Head Compression (RoHC) unit before the Packet Data Convergence Protocol (PDCP) layer; a grouping unit for grouping PDU data packets with the same CID according to the CID of each PDU data packet to obtain multiple groups of PDU data packets; a determining unit for determining, based on the MSN value of the PDU data packets in the current group of PDU data packets, whether the sequence number of the PDU data packets in the current group of PDU data packets is not out of order; and a sending unit for sending the PDU data packets to the Robust Head Compression (RoHC) unit to obtain data after the RoHC unit decompresses the PDU data packets.
[0016] According to another aspect of this disclosure, a processor-readable storage medium is provided storing a computer program for causing the processor to perform a data processing apparatus method.
[0017] According to another aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements a data processing method.
[0018] This disclosure has the following technical effects:
[0019] This disclosure provides a data processing method. During the processing of multiple received Protocol Data Units (PDUs), for each PDU, if the count value of the PDU data packet is not equal to the RX DELIV, the PDU data packet is parsed to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet. Based on the MSN value of each PDU data packet, PDU data packets with the same CID are grouped. Based on the MSN value of the PDU data packets in the current group, it is determined that the sequence numbers of the PDU data packets in the current group are not out of order. The PDU data packets are then sent to the Robust Head Compression (RoHC) module to obtain decompressed data. Therefore, during the decompression of PDU data packets, even if PDU data packets are out of order but PDU data packets with the same CID are not out of order, decompression of PDU data packets corresponding to the same CID can be performed without waiting for reordering, thereby reducing data packet processing and transmission latency and effectively reducing the short-term processing load of the decompression device.
[0020] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0021] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:
[0022] Figure 1 This is a schematic flowchart of a data processing method provided according to an embodiment of the present disclosure;
[0023] Figure 2 This is a flowchart illustrating another data processing method provided according to an embodiment of the present disclosure;
[0024] Figure 3 This is a diagram showing the compressed PDU delivery and decompression sequence according to embodiments of this disclosure;
[0025] Figure 4 This is a flowchart illustrating another data processing method provided according to an embodiment of the present disclosure;
[0026] Figure 5 This is a schematic diagram of the structure of a data processing apparatus provided according to an embodiment of the present disclosure;
[0027] Figure 6 This is a schematic diagram of another data processing apparatus provided according to an embodiment of the present disclosure. Detailed Implementation
[0028] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this disclosure.
[0029] In this embodiment of the invention, the term "and / or" describes the relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. The character " / " generally indicates that the preceding and following associated objects have an "or" relationship.
[0030] The data processing method, apparatus, and storage medium of this embodiment are described below with reference to the accompanying drawings.
[0031] It should be noted that the technical solutions provided in this disclosure are applicable to a variety of systems, especially 5G systems. For example, applicable systems may include Global System for Mobile Communications (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), Long Term Evolution Advanced (LTE-A), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), and 5G New Radio (NR). All of these systems include terminal equipment and network equipment. The systems may also include a core network component, such as Evolved Packet System (EPS) and 5G system (5GS).
[0032] Figure 1This is a flowchart illustrating a data processing method provided according to an embodiment of the present disclosure, which is applied in a data processing device.
[0033] like Figure 1 As shown, the method includes:
[0034] Step 101: Obtain the currently received Protocol Data Unit (PDU) data packets.
[0035] In some embodiments of this disclosure, PDU data includes information from the upper layer and additional information from the current layer. After the current layer receives multiple Protocol Data Unit (PDU) data packets, it transmits the PDU data packets to the next layer to complete the transmission at each layer of the transmission system.
[0036] Step 102: For each PDU data packet, if the count value of the PDU data packet is not equal to the Receiver-delivery (RX DELIV) value, the PDU data packet is parsed to obtain the context identifier CID and message sequence number (MSN) value corresponding to the PDU data packet. RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression (RoHC) module before the Packet Data Convergence Protocol (PDCP) layer.
[0037] In some embodiments of this disclosure, after receiving multiple Protocol Data Unit (PDU) data packets, each PDU data packet is counted, and the count value of the PDU data packet is compared with the RX DELIV value. If the two are not equal, it indicates that the PDU data packets are out of order. The PDU data packets are then parsed to obtain the CID and MSN value of each PDU data packet.
[0038] Step 103: Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets.
[0039] Step 104: For the current group of PDU data packets in multiple groups of PDU data packets, determine whether the sequence number of the PDU data packets in the current group of PDU data packets is out of order based on the MSN value of the PDU data packets in the current group of PDU data packets.
[0040] In some embodiments of this disclosure, MSN is the Master Sequence Number of the current group of PDU data packets, with a size of 16 bits, used to synchronize data packets between the compressor and decompressor. This value exists in the data packets sent from the compressor to the decompressor. In the initial update data packet, the sender randomly initializes the 16-bit MSN value, and in other data packets, it is encoded using a window-based least significant bits (wlsb) encoding method.
[0041] In some embodiments, one encoding method based on the least significant bit (wlsb) of the window can be:
[0042]
[0043] Where p represents the maximum negative offset, (2^k-1)-p represents the maximum positive offset. For data packets whose expected sequence number always increases, p is generally set to -1. The value of k depends on the data packet type selected by the compression method. v_ref is a reference value.
[0044] Step 105: Send the PDU data packet to the Robust Header Compression (RoHC) module to obtain the data after the RoHC module decompresses the PDU data packet.
[0045] In some embodiments of this disclosure, if the sequence number of the PDU data packets in the current group of PDU data packets is not out of order, the PDU data packets are sent to the Robust Header Compression (RoHC) module to obtain the data after the RoHC module decompresses the PDU data packets.
[0046] In other embodiments, if the sequence number of the PDU data packets in the current group of PDU data packets is determined to be out of order based on the MSN value, the data packets of the current group of PDUs can be placed into the receive buffer for reordering.
[0047] This disclosure provides a data processing method. During the processing of multiple received Protocol Data Units (PDUs), for each PDU, if the count value of the PDU data packet is not equal to the RX DELIV, the PDU data packet is parsed to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet. Based on the MSN value of each PDU data packet, PDU data packets with the same CID are grouped. Based on the MSN value of the PDU data packets in the current group, it is determined that the sequence number of the PDU data packets in the current group is not out of order. This PDU data packet is then sent to the Robust Head Compression (RoHC) module to obtain decompressed data. Therefore, during the decompression of PDU data packets, even if PDU data packets are out of order but PDU data packets with the same CID are not out of order, decompression of PDU data packets corresponding to the same CID can be performed without waiting for reordering, thereby reducing data packet processing and transmission latency and effectively reducing the short-term processing load of the decompression device.
[0048] Figure 2 This is a flowchart illustrating another data processing method provided according to an embodiment of the present disclosure.
[0049] Step 201: Obtain the currently received Protocol Data Unit (PDU) data packets.
[0050] It should be noted that the specific implementation of step 201 can be found in the relevant description in the above embodiments.
[0051] Step 202: For each PDU data packet, if the count value of the PDU data packet is not equal to the received delivery RX DELIV, the PDU data packet is parsed to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. Here, RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC module before the Packet Data Convergence Protocol (PDCP) layer.
[0052] In some embodiments of this disclosure, the MSN value of another data packet can be generated based on the MSN value corresponding to the parsed PDU data packet using the WLSB encoding method. One exemplary implementation is as follows: assuming the reference value of the MSN of the current data packet is 0x1000, and the other data packet increments sequentially with a reference value of 0x2000, incrementing by 0x200 bytes each time. In this case, the other data packet may not appear during compression. After receiving the data packet, the decompression party can deduce the value of the other data packet based on the least significant bit (LSB) value of the MSN in the data packet. For example, assuming the LSB value of the MSN of the current data packet is 2, then the MSN value of the other data packet is 0x2000 + 2 * 0x200.
[0053] Step 203: Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets.
[0054] Step 204: Obtain the target CID corresponding to the current group PDU data packet.
[0055] In some embodiments of this disclosure, after grouping PDU data packets to obtain multiple groups of PDU data packets, the multiple groups of PDU data packets can be traversed, and the currently traversed group of PDU data packets can be taken as the current group of PDU data packets, and the target CID corresponding to the current group of PDU data packets can be obtained.
[0056] Step 205: Obtain the MSN value range corresponding to the target CID and the window length based on the least significant bit (WLSB) of the window.
[0057] Step 206: Determine the maximum count value based on the count value corresponding to each PDU data packet in the current group of PDU data packets.
[0058] Step 207: Determine the number of lost PDU packets in the current group based on the number of PDU packets in the current group and the maximum count value.
[0059] In one embodiment of this disclosure, the number of lost PDU data packets in the current group can be the difference between the maximum count value and the number of PDU data packets in the current group.
[0060] Step 208: If the number of lost packets is less than the window length of the WLSB, then determine whether the MSN values of the PDU packets in the current group of PDU packets are continuous within the MSN value range.
[0061] In some embodiments of this disclosure, if the number of lost packets is greater than the window length of the WLSB, the PDU data packets in that group may not be in the current group of PDU data packets. It is not possible to determine whether the MSN values of the PDU data packets in the current group of PDU data packets are continuous within the MSN value range. It is necessary to redetermine the PDU data packets in the current group until the number of lost packets is less than the window length of the WLSB, so as to determine whether the MSN values of the PDU data packets in the current group of PDU data packets are continuous within the MSN value range.
[0062] Step 209: If the MSN value is consecutive within the specified MSN value range, then it is determined that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order.
[0063] In some embodiments of this disclosure, after grouping PDU data packets, for a group of PDU data packets with the same CID, the current MSN value range is obtained, and the 16-bit MSN value is restored according to the above-mentioned WLSB algorithm. Combined with the above-mentioned MSN value range, it is determined that the MSN value is continuous within the current group's MSN value range, thereby determining that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order.
[0064] For example, suppose we have received 9 PDUs. The delivery compression order diagram for these 9 PDUs is as follows: Figure 3 As shown.
[0065] The horizontal axis represents the count value of the received PDCP PDUs, and the vertical axis represents the CID value corresponding to the received PDCP PDUs. At this time, among the 9 received PDU data packets, assuming that the 4th PDU data packet with a CID value of 4 is not received (as shown in black in the figure), at this time: RX_REORD = 4, and RX_REORD is the count value corresponding to the missing PDU data packet that starts the reordering timer.
[0066] Based on the above example, if PDU 5 (CID 3) and the MSN value corresponding to PDU 3 are determined to be consecutive, PDU 5 can be submitted to the ROHC module of PDCP for decompression if PDU 4 is not received. Similarly, if the MSN values of PDU 6, PDU 7, and PDU 8 (CID 5) are determined to be consecutive, PDU 6, PDU 7, and PDU 8 can be submitted to the ROHC module of PDCP for decompression. PDU 9 (CID 7) can be submitted to the ROHC module of PDCP for decompression without waiting for the arrival of the missing PDU 4, thereby significantly reducing the processing and transmission latency of data packets.
[0067] In some other embodiments of this disclosure, when it is determined that the MSN value is discontinuous within the MSN value range of the current group of PDU data packets, it can be determined that the sequence number of the PDU data packets in the current group of PDU data packets is out of order.
[0068] If the sequence number of the PDU data packets in the current group is determined to be out of order, and if there is no PDU data packet corresponding to the target CID in the receive buffer, the PDU data packets in the current group are stored in the receive buffer. If there is a PDU data packet corresponding to the target CID in the receive buffer, the MSN value of the PDU data packets in the receive buffer is determined to be continuous with the MSN value of the PDU data packets in the current group. The PDU data packet corresponding to the target CID is then obtained from the receive buffer and added to the current group. Finally, based on the MSN value of each PDU data packet in the current group after the addition, the PDU data packets in the current group are reordered and sent to the RoHC module.
[0069] Step 210: Send the PDU data packet to the Robust Header Compression (RoHC) module to obtain the data after the RoHC module decompresses the PDU data packet.
[0070] This disclosure provides a data processing method. In processing multiple received Protocol Data Units (PDUs), for each PDU, if the count value of the PDU data packet is not equal to the RX DELIV, the PDU data packet is parsed to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet. Based on the MSN value of each PDU data packet, PDU data packets with the same CID are grouped. By obtaining the target CID and the MSN value range corresponding to the target CID of the current group of PDU data packets, and the window length of the least significant bit (WLSB) based on the window, and combining this with the number of PDU data packets in the current group and the maximum count value, the number of lost packets in the current group of PDU data packets is determined. If the number of lost packets is less than the WLSB window length, the MSN is determined. The values are continuous within the specified MSN value range, thus determining that the sequence number of the PDU data packets in the current group is not out of order. This PDU data packet is then sent to the Robust Header Compression (RoHC) module to obtain the decompressed data. Therefore, during the decompression of PDU data packets, if the PDU data packets are out of order but the PDU data packets with the same CID are not out of order, the PDU data packets corresponding to the same CID can be decompressed without waiting for reordering. Thus, PDUs with out-of-order PDU data packets but not out-of-order CIDs can be decompressed in advance, and the receiver can selectively decompress the data stream without waiting for reordering.
[0071] Based on the above embodiments, after the receiver receives the compressed PDU data packets, if the PDU data packets are not out of order, it directly performs ROHC decompression on the compressed PDU data packets. If the PDU data packets are out of order, by parsing the CID and MSN values of the compressed PDU data packets, it further determines whether the same CID in the out-of-order PDU data packets is out of order. If the CID is out of order, it is placed in the receive buffer for reordering. If the CID is the same and the PDU data packets are not out of order, it is not necessary to wait for reordering; the PDU data packets corresponding to the same CID can be decompressed directly. In summary... Figure 4 This application presents a flowchart illustrating how, in the case of out-of-order PDU data packets but not out-of-order PDU data packets with the same CID, PDU data packets corresponding to the same CID can be decompressed without waiting for reordering. Figure 4 As shown.
[0072] The method for determining out-of-order packets when the CID is the same is as follows: if the number of lost PDCP packets is less than the MSN value range of the CID, and the MSN value is continuous within the MSN value range.
[0073] Figure 5 This is a schematic diagram of the structure of a data processing apparatus provided according to an embodiment of the present disclosure.
[0074] like Figure 5 As shown, the data processing device may include a transceiver 500, a processor 510, and a memory 520, wherein:
[0075] Transceiver 500 is used to receive and send data under the control of processor 510.
[0076] Among them, Figure 5 In this context, the bus architecture can include any number of interconnected buses and bridges, specifically linking various circuits of one or more processors represented by processor 510 and memory represented by memory 520 together. The bus architecture can also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 500 can be multiple elements, including transmitters and receivers, providing units for communicating with various other devices over a transmission medium, including wireless channels, wired channels, optical fibers, and other transmission media.
[0077] like Figure 5 As shown, the data processing device may also include a user interface 530. For different user devices, the user interface 530 may also be an interface that can connect to external or internal devices, including but not limited to keypad, display, speaker, microphone, joystick, etc.
[0078] The processor 510 is responsible for managing the bus architecture and general processing, while the memory 520 can store the data used by the processor 510 when performing operations.
[0079] Optionally, the processor 510 can be a CPU (Central Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or CPLD (Complex Programmable Logic Device), and the processor 510 can also adopt a multi-core architecture.
[0080] The processor 510 calls the computer program stored in the memory 520 and performs the following operations:
[0081] Retrieve multiple Protocol Data Unit (PDU) data packets currently received.
[0082] For each PDU data packet, if the count value of the PDU data packet is not equal to the received delivery RX DELIV, the PDU data packet is parsed to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. Here, RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC module before the Packet Data Convergence Protocol (PDCP) layer.
[0083] Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets.
[0084] For the current group of PDU data packets among multiple groups of PDU data packets, the sequence number of the PDU data packets in the current group of PDU data packets is determined to be not out of order based on the MSN value of the PDU data packets in the current group of PDU data packets.
[0085] The PDU data packet is sent to the Robust Header Compression (RoHC) module, and the data obtained after the RoHC module decompresses the PDU data packet is obtained.
[0086] In one embodiment of this disclosure, determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order based on the MSN value of the PDU packets in the current group of PDU packets includes:
[0087] Obtain the target CID corresponding to the current group of PDU data packets.
[0088] Get the MSN value range corresponding to the target CID and the window length based on the least significant bit (WLSB) of the window.
[0089] The maximum count value is determined based on the count value corresponding to each PDU data packet in the current group of PDU data packets.
[0090] The number of lost PDU packets in the current group is determined based on the number of PDU packets in the current group and the maximum count value.
[0091] If the number of lost packets is less than the window length of the WLSB, then determine whether the MSN values of the PDU packets in the current group are continuous within the MSN value range.
[0092] If the MSN values are consecutive within the specified MSN value range, it is determined that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order.
[0093] In one embodiment of this disclosure, the processor 510 is further configured to perform the following operations:
[0094] If the sequence numbers of the PDU packets in the current group are out of order, then the PDU packets in the current group will be stored in the receive buffer.
[0095] In one embodiment of this disclosure, the processor 510 is further configured to perform the following operations:
[0096] Determine whether a PDU data packet corresponding to the target CID exists in the receive buffer.
[0097] If it does not exist, the PDU packets in the current group of PDU packets will be stored in the receive buffer.
[0098] In one embodiment of this disclosure, the processor 510 is further configured to perform the following operations:
[0099] If it exists, determine the MSN value of the PDU data packet in the receive buffer, which is continuous with the MSN value of the PDU data packet in the current group of PDU data packets.
[0100] Retrieve the PDU data packet corresponding to the target CID from the receive buffer.
[0101] Add the acquired PDU data packets to the current group of PDU data packets.
[0102] Based on the MSN value of each PDU packet in the current group of PDU packets after the addition, the PDU packets in the current group of PDU packets are reordered, and the reordered PDU packets are sent to the RoHC module.
[0103] It should be noted that the data processing apparatus provided in this embodiment of the invention can implement all the method steps implemented in the above method embodiments and can achieve the same technical effect. Therefore, the parts and beneficial effects that are the same as those in the method embodiments will not be described in detail here.
[0104] Figure 6 This is a schematic diagram of another data processing apparatus provided according to an embodiment of the present disclosure.
[0105] like Figure 6 As shown, the data processing device 60 may include:
[0106] The acquisition unit 601 is used to acquire multiple Protocol Data Unit (PDU) data packets that are currently received.
[0107] The parsing unit 602 is used to parse each PDU data packet when the count value of the PDU data packet is not equal to the received delivery RXDELIV, so as to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. RXDELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC unit before the Packet Data Convergence Protocol (PDCP) layer.
[0108] Grouping unit 603 is used to group PDU data packets with the same CID according to the CID of each PDU data packet, so as to obtain multiple groups of PDU data packets.
[0109] The determining unit 604 is used to determine, based on the MSN value of the PDU data packets in the current group of PDU data packets, whether the sequence number of the PDU data packets in the current group of PDU data packets is out of order.
[0110] The sending unit 605 is used to send the PDU data packet to the Robust Header Compression (RoHC) unit to obtain the data after the RoHC unit decompresses the PDU data packet.
[0111] In one embodiment of this disclosure, the determining unit 604 is specifically configured to: obtain the target CID corresponding to the current group of PDU data packets; obtain the MSN value range corresponding to the target CID and the window length of the least significant bit (WLSB) based on the window; determine the maximum count value based on the count value corresponding to each PDU data packet in the current group of PDU data packets; determine the number of packet losses in the current group of PDU data packets based on the number of PDU data packets in the current group and the maximum count value; if the number of packet losses is less than the window length of the WLSB, determine whether the MSN values of the PDU data packets in the current group of PDU data packets are continuous within the MSN value range; if the MSN values are continuous within the specified MSN value range, determine that the sequence numbers of the PDU data packets in the current group of PDU data packets are not out of order.
[0112] In one embodiment of this disclosure, the determining unit 604 is specifically used to: if the sequence number of the PDU data packets in the current group of PDU data packets is out of order, then store the PDU data packets in the current group of PDU data packets into the receive buffer.
[0113] In one embodiment of this disclosure, the determining unit 604 is specifically used to: determine whether there is a PDU data packet corresponding to the target CID in the receive buffer; if not, store the PDU data packet in the current group of PDU data packets into the receive buffer.
[0114] In one embodiment of this disclosure, the determining unit 604 is specifically configured to: if present, determine the MSN value of the PDU data packet in the receive buffer, which is continuous with the MSN value of the PDU data packet in the current group of PDU data packets; obtain the PDU data packet corresponding to the target CID from the receive buffer; add the obtained PDU data packet to the current group of PDU data packets; reorder the PDU data packets in the current group of PDU data packets according to the MSN value of each PDU data packet in the added current group of PDU data packets; and send the reordered PDU data packets to the RoHC module.
[0115] This disclosure provides a data processing apparatus that, during the processing of multiple received Protocol Data Units (PDUs), for each PDU, if the count value of the PDU data packet is not equal to the RX DELIV, parses the PDU data packet to obtain the context identifier (CID) and information sequence number (MSN) value corresponding to the PDU data packet. Based on the MSN value of each PDU data packet, PDU data packets with the same CID are grouped. Based on the MSN value of the PDU data packets in the current group, it is determined that the sequence numbers of the PDU data packets in the current group are not out of order. The PDU data packets are then sent to the Robust Head Compression (RoHC) module to obtain decompressed data. Therefore, during the decompression of PDU data packets, even if PDU data packets are out of order but PDU data packets with the same CID are not out of order, decompression of PDU data packets corresponding to the same CID can be performed without waiting for reordering, thereby reducing data packet processing and transmission latency and effectively reducing the short-term processing load of the decompression equipment.
[0116] The method and apparatus are based on the same concept of the application. Since the methods and apparatus solve problems in similar ways, the implementation of the apparatus and methods can refer to each other, and the repeated parts will not be described again.
[0117] It should be noted that the division of units in the embodiments of this disclosure is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this disclosure can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated units described above can be implemented in hardware or as software functional units.
[0118] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a processor-readable storage medium. Based on this understanding, the technical solution of this disclosure, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network-side device, etc.) or processor to execute all or part of the steps of the methods of the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, read-only memory (ROM), random access memory (RAM), a magnetic disk, or an optical disk.
[0119] On the other hand, embodiments of the present invention also provide a processor-readable storage medium storing a computer program for causing a processor to execute the present disclosure. Figures 1 to 3 The data processing method shown.
[0120] The processor-readable storage medium can be any available medium or data storage device that the processor can access, including but not limited to magnetic storage (e.g., floppy disk, hard disk, magnetic tape, magneto-optical disk (MO)), optical storage (e.g., CD, DVD, BD, HVD), and semiconductor storage (e.g., ROM, EPROM, EEPROM, non-volatile memory (NAND FLASH), solid-state drive (SSD)).
[0121] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0122] This disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-executable instructions. These computer-executable instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0123] These processor-executable instructions may also be stored in a processor-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the processor-readable memory produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0124] These processors can execute instructions that can also be loaded onto a computer or other programmable data processing device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0125] Obviously, those skilled in the art can make various modifications and variations to this disclosure without departing from its spirit and scope. Therefore, if such modifications and variations fall within the scope of the claims of this disclosure and their equivalents, this disclosure is also intended to include such modifications and variations.
Claims
1. A data processing method, characterized in that, The method includes: Retrieve multiple Protocol Data Unit (PDU) data packets currently received; For each PDU data packet, if the count value of the PDU data packet is not equal to the received delivery RX DELIV, the PDU data packet is parsed to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. The RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC module before the Packet Data Convergence Protocol (PDCP) layer. Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets; For the current group of PDU data packets among the multiple groups of PDU data packets, the sequence number of the PDU data packets in the current group of PDU data packets is determined to be not out of order based on the MSN value of the PDU data packets in the current group of PDU data packets; The PDU data packet is sent to the Robust Head Compression (RoHC) module to obtain the decompressed data packet from the RoHC module.
2. The method according to claim 1, characterized in that, The step of determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order based on the MSN value of the PDU packets in the current group of PDU packets includes: Obtain the target CID corresponding to the current group of PDU data packets; Obtain the MSN value range corresponding to the target CID and the window length based on the least significant bit (WLSB) of the window; The maximum count value is determined based on the count value corresponding to each PDU data packet in the current group of PDU data packets; The number of lost PDU packets in the current group is determined based on the number of PDU packets in the current group and the maximum count value. If the number of lost packets is less than the window length of the WLSB, then determine whether the MSN values of the PDU packets in the current group of PDU packets are continuous within the MSN value range; If the MSN value is consecutive within the specified MSN value range, then it is determined that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order.
3. The method according to claim 2, characterized in that, The method further includes: If the sequence numbers of the PDU data packets in the current group of PDU data packets are out of order, then the PDU data packets in the current group of PDU data packets will be stored in the receive buffer.
4. The method according to claim 3, characterized in that, Before storing the PDU packets in the current group of PDU packets into the receive buffer, the method further includes: Determine whether a PDU data packet corresponding to the target CID exists in the receive buffer; If it does not exist, the PDU data packets in the current group of PDU data packets are stored in the receive buffer.
5. The method according to claim 4, characterized in that, The method further includes: If it exists, then determine that the MSN value of the PDU data packet in the receive buffer is continuous with the MSN value of the PDU data packet in the current group of PDU data packets; Retrieve the PDU data packet corresponding to the target CID from the receive buffer; Add the acquired PDU data packets to the current group of PDU data packets; Based on the MSN value of each PDU data packet in the added current group PDU data packet, the PDU data packets in the added current group PDU data packet are reordered, and the reordered PDU data packets are sent to the RoHC module.
6. A data processing apparatus, characterized in that, Includes memory, transceiver, and processor: A memory for storing computer programs; a transceiver for sending and receiving data under the control of the processor; and a processor for reading the computer programs from the memory and performing the following operations: Retrieve multiple Protocol Data Unit (PDU) data packets currently received; For each PDU data packet, if the count value of the PDU data packet is not equal to the received delivery RX DELIV, the PDU data packet is parsed to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. The RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC module before the Packet Data Convergence Protocol (PDCP) layer. Based on the CID of each PDU data packet, PDU data packets with the same CID are grouped together to obtain multiple groups of PDU data packets; For the current group of PDU data packets among the multiple groups of PDU data packets, the sequence number of the PDU data packets in the current group of PDU data packets is determined to be not out of order based on the MSN value of the PDU data packets in the current group of PDU data packets; The PDU data packet is sent to the Robust Head Compression (RoHC) module to obtain the decompressed data packet from the RoHC module.
7. The apparatus according to claim 6, characterized in that, The step of determining that the sequence numbers of the PDU packets in the current group of PDU packets are not out of order based on the MSN value of the PDU packets in the current group of PDU packets includes: Obtain the target CID corresponding to the current group of PDU data packets; Obtain the MSN value range corresponding to the target CID and the window length based on the least significant bit (WLSB) of the window; The maximum count value is determined based on the count value corresponding to each PDU data packet in the current group of PDU data packets; The number of lost PDU packets in the current group is determined based on the number of PDU packets in the current group and the maximum count value. If the number of lost packets is less than the window length of the WLSB, then determine whether the MSN values of the PDU packets in the current group of PDU packets are continuous within the MSN value range; If the MSN value is consecutive within the specified MSN value range, then it is determined that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order.
8. The apparatus according to claim 7, characterized in that, The processor is also used to perform the following operations: If the sequence numbers of the PDU data packets in the current group of PDU data packets are out of order, then the PDU data packets in the current group of PDU data packets will be stored in the receive buffer.
9. The apparatus according to claim 8, characterized in that, The processor is also used to perform the following operations: Determine whether a PDU data packet corresponding to the target CID exists in the receive buffer; If it does not exist, the PDU data packets in the current group of PDU data packets are stored in the receive buffer.
10. The apparatus according to claim 9, characterized in that, The processor is also used to perform the following operations: If it exists, then determine that the MSN value of the PDU data packet in the receive buffer is continuous with the MSN value of the PDU data packet in the current group of PDU data packets; Retrieve the PDU data packet corresponding to the target CID from the receive buffer; Add the acquired PDU data packets to the current group of PDU data packets; Based on the MSN value of each PDU data packet in the added current group PDU data packet, the PDU data packets in the added current group PDU data packet are reordered, and the reordered PDU data packets are sent to the RoHC module.
11. A data processing apparatus, characterized in that, include: The acquisition unit is used to acquire multiple Protocol Data Unit (PDU) data packets that have been received currently. The parsing unit is configured to parse each PDU data packet when the count value of the PDU data packet is not equal to the received delivery RXDELIV, so as to obtain the context identifier CID and information sequence number MSN value corresponding to the PDU data packet. The RX DELIV is used to represent the count value of the first PDU data packet that has not been sent to the Robust Head Compression RoHC unit before the Packet Data Convergence Protocol (PDCP) layer. A grouping unit is used to group PDU data packets with the same CID according to the CID of each PDU data packet, so as to obtain multiple groups of PDU data packets; The determining unit is configured to determine, based on the MSN value of the PDU data packets in the current group of PDU data packets among the multiple groups of PDU data packets, that the sequence number of the PDU data packets in the current group of PDU data packets is not out of order; The sending unit is used to send the PDU data packet to the Robust Header Compression (RoHC) unit to obtain the data after the RoHC unit decompresses the PDU data packet.
12. A processor-readable storage medium, characterized in that, The processor-readable storage medium stores a computer program for causing the processor to perform the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
PDCP SDU reordering method and device
CN110858828A