Window synchronization method and apparatus, chip system, storage medium and program product
By updating the data receiving window and synchronizing the data processing window of the PDCP layer when the RLC layer timer times out, the packet loss problem caused by the lack of synchronization between the RLC layer and the PDCP layer windows is solved, and the stability of XR data transmission is improved.
Patent Information
- Application Number
- CN202510749615.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-06
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2045-06-06
AI Technical Summary
During XR data transmission, the windows of the RLC layer and the PDCP layer are out of synchronization, resulting in packet loss at the PDCP layer, affecting the stability of data transmission.
When the first timer of the RLC layer times out, the data receiving window is updated, and first information is sent to the PDCP layer through the RLC layer to synchronize the window difference. The PDCP layer updates the data processing window according to the information.
It reduces abnormal packet loss at the PDCP layer and improves the stability of XR data transmission.
Smart Images

Figure CN120379020B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a window synchronization method, device, chip system, storage medium and program product. Background Art
[0002] Extended Reality (XR) creates a virtual environment that users can interact with through specialized devices, providing a rich user experience. Examples of XR include Virtual Reality (VR) and Augmented Reality (AR). Currently, XR data is primarily transmitted via Protocol Data Unit sets (PDU sets). However, during XR data transmission, there is a problem of window asynchrony between the Radio Link Control (RLC) layer and the Packet Data Convergence Protocol (PDCP) layer. This can cause packet loss at the PDCP layer, resulting in low XR data transmission stability.
[0003] Therefore, how to improve the stability of XR data transmission is an urgent problem that needs to be solved. Summary of the Invention
[0004] The embodiments of the present application provide a window synchronization method, device, chip system, storage medium and program product, which are applied in the field of communication technology and can improve the stability of XR data transmission.
[0005] In a first aspect, an embodiment of the present application provides a window synchronization method, including:
[0006] When a first timer of the RLC layer times out, updating a data receiving window of the RLC layer, wherein the first timer is used to limit a waiting time for the data receiving window to receive data;
[0007] Sending first information to a Packet Data Convergence Protocol (PDCP) layer through the RLC layer, where the first information is used to synchronize a window difference, where the window difference is a difference between a data processing window of the PDCP layer and a data receiving window;
[0008] The data processing window is updated according to the first information.
[0009] Optionally, the first information is used to indicate the updated lower boundary of the data receiving window.
[0010] Optionally, updating the data processing window according to the first information includes:
[0011] updating the lower boundary of the data processing window according to the updated lower boundary of the data receiving window;
[0012] The data processing window is updated based on the updated lower boundary of the data processing window.
[0013] Optionally, the first information includes a first field, where the first field is used to indicate a first identifier, and the first identifier is used to indicate the updated lower boundary of the data receiving window.
[0014] Optionally, the first identifier is a first serial number.
[0015] Optionally, updating the data processing window according to the first information includes:
[0016] Converting the first sequence number to a third sequence number based on the first sequence number, a second sequence number corresponding to the lower boundary of the data processing window, and the window length of the data processing window, where the third sequence number is counted in the same manner as the second sequence number;
[0017] Updating the second sequence number according to the third sequence number;
[0018] An updated data processing window is obtained based on the updated second sequence number.
[0019] Optionally, also include:
[0020] Submitting first data to the application layer through the PDCP layer, where the first data is data corresponding to a sequence number between the second sequence number and the third sequence number.
[0021] Optionally, also include:
[0022] Stop and reset a second timer of the PDCP layer, where the second timer is used to limit the data processing duration of the data processing window.
[0023] Optionally, also include:
[0024] Update the state variable of the second timer.
[0025] Optionally, the first information is used to indicate that the second timer of the data processing window times out and is reset.
[0026] Optionally, the first information includes a second field, and the second field is used to indicate that the second timer of the data processing window times out and is reset.
[0027] Optionally, updating the data processing window according to the first information includes:
[0028] controlling, according to the first information, the second timer of the PDCP layer to time out;
[0029] submitting second data to the application layer through the PDCP layer, where the second data is data between a lower boundary of the data processing window and a first position, where the first position is a position where a state variable of the second timer is located;
[0030] The lower boundary of the data processing window is updated according to next data to be submitted by the PDCP layer to the application layer.
[0031] Optionally, updating the lower boundary of the data processing window according to next data to be submitted by the PDCP layer to the application layer includes:
[0032] The lower boundary of the data processing window is updated according to a second position corresponding to the next data to be submitted by the PDCP layer to the application layer.
[0033] Optionally, updating the lower boundary of the data processing window according to a second position corresponding to next data to be submitted by the PDCP layer to the application layer includes:
[0034] The sequence number of the lower boundary of the data processing window is updated according to the sequence number of the second position.
[0035] Optionally, the data receiving window is a reassembly window.
[0036] Optionally, the data processing window is a reordering window.
[0037] Optionally, the first timer is a reassembly timer.
[0038] Optionally, the second timer is a reordering timer.
[0039] In a second aspect, an embodiment of the present application provides a window synchronization device, comprising a processor and a memory, wherein the memory stores computer-executable instructions, and the processor executes the computer-executable instructions stored in the memory to execute the method described in the first aspect or any possible implementation of the first aspect.
[0040] In a third aspect, an embodiment of the present application provides a computer-readable storage medium, in which a computer program or instruction is stored. When the computer program or instruction is run on a computer, the computer executes the method described in the first aspect or any possible implementation of the first aspect.
[0041] In a fourth aspect, an embodiment of the present application provides a computer program product comprising a computer program, which, when the computer program runs on a computer, enables the computer to execute the method described in the first aspect or any possible implementation of the first aspect.
[0042] In a fifth aspect, the present application provides a chip or chip system, comprising at least one processor and a communication interface, wherein the communication interface and the at least one processor are interconnected via a line, and the at least one processor is configured to execute a computer program or instruction to perform the method described in the first aspect or any possible implementation of the first aspect. The communication interface in the chip may be an input / output interface, a pin, or a circuit.
[0043] In one possible implementation, the chip or chip system described above in this application further includes at least one memory, wherein instructions are stored in the at least one memory. The memory may be a storage unit within the chip, such as a register or cache, or a storage unit of the chip (such as a read-only memory or random access memory).
[0044] It should be understood that the second to fifth aspects of the present application correspond to the technical solutions of the first aspect of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here.
[0045] The window synchronization method, device, chip system, storage medium and program product provided in the embodiments of the present application update the data receiving window of the RLC layer when the first timer of the RLC layer times out, and then send the first information to the PDCP layer through the RLC layer. The PDCP layer updates the data processing window based on the received first information to synchronize the updated data processing window with the data receiving window of the RLC layer, thereby reducing abnormal packet loss at the PDCP layer caused by window asynchrony, thereby improving the stability of XR data transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] Figure 1 A schematic diagram of the architecture of a communication system provided in an embodiment of the present application;
[0047] Figure 2 A schematic diagram of the structure of a receiving window of an RLC layer provided in an embodiment of the present application;
[0048] Figure 3 A schematic diagram of the structure of another RLC layer receiving window provided in an embodiment of the present application;
[0049] Figure 4 A schematic diagram of the structure of a reordering window of the PDCP layer provided in an embodiment of the present application;
[0050] Figure 5 A flowchart of a window synchronization method provided in an embodiment of the present application;
[0051] Figure 6 A flowchart of another window synchronization method provided in an embodiment of the present application;
[0052] Figure 7 A flowchart of another window synchronization method provided in an embodiment of the present application;
[0053] Figure 8 A flowchart of another window synchronization method provided in an embodiment of the present application;
[0054] Figure 9 A schematic structural diagram of a window synchronization device provided in an embodiment of the present application;
[0055] Figure 10 A schematic structural diagram of another window synchronization device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0056] In the embodiments of this application, terms such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. For example, the terms "first chip" and "second chip" are used solely to distinguish between different chips and do not define their order. Those skilled in the art will understand that terms such as "first" and "second" do not define the quantity or execution order, and do not necessarily define differences.
[0057] It should be noted that in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described in this application as "exemplary" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0058] In the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can mean: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, a--c, bc, or abc, where a, b, c can be single or plural.
[0059] Figure 1 This is a schematic diagram of the architecture of a communication system provided in an embodiment of the present application. Figure 1 As shown, the communication system 100 may include at least one network device (such as Figure 1 110a, 110b, 110c in FIG), and may further include at least one terminal (such as Figure 1 120a-120g in the table).
[0060] The network device and the terminal device can communicate via a wireless link. When the network device acts as a communication transmitter, the terminal device can act as a communication receiver; when the network device acts as a communication receiver, the terminal device can act as a communication transmitter. The embodiment of the present application does not limit the number of network devices and terminal devices included in the communication system. In addition, it should be understood that Figure 1 This is just a schematic diagram. The communication system may also include other network devices, such as wireless relay devices and wireless backhaul devices, etc. This application does not limit this. Figure 1 Not drawn in the middle.
[0061] The network device provided in the embodiments of the present application may be a device that communicates with a terminal device. The network device may also be referred to as an access network device or a wireless access network device, and may be, for example, a base station, a Node B, an evolved Node B (eNodeB or eNB), a transmission reception point (TRP), a next generation Node B (gNB) in a fifth generation (5G) mobile communication system, an access network device in an open radio access network (O-RAN or open RAN), a base station in a future mobile communication system, and the network device may be a satellite base station in a non-terrestrial network (NTN), a base station in a future mobile communication system, or an access node in a wireless fidelity (WiFi) system. Alternatively, the network device may be a module or unit that performs part of the functions of a base station, for example, a centralized unit (CU), a distributed unit (DU), a centralized unit control plane (CU-CP) module, or a centralized unit user plane (CU-UP) module. The access network equipment can be a satellite base station (such as Figure 1 110a in ), or a macro base station (such as Figure 1 110b in the figure), the access network device can also be a micro base station or an indoor station (such as Figure 1 110c in the figure), or a relay node or a donor node. This application does not limit the specific technology and device form used by the access network equipment. The 5G system can also be referred to as the new radio (NR) system.
[0062] The network in which the network device resides has strong computing capabilities. This computing capability can be provided by computing nodes included in the network or possessed by the network device itself. When this computing capability can be provided by computing nodes included in the network, the network device can connect to one or more computing nodes in the network and distribute task data received from terminal devices to the computing nodes so that the computing nodes process the task data. Examples of such computing nodes include edge computing servers (MECs), distributed cloud nodes, quantum computing nodes, and computing hosts. Within a computing node, one or more computing units can be included to enable concurrent processing of task data. Examples of such computing units include central processing units (CPUs) and graphics processing units (GPUs).
[0063] In one network structure, the network device may include a centralized unit (CU) node, a distributed unit (DU) node, a RAN device including a CU node and a DU node, or a RAN device including a control plane CU node (CU-CP node), a user plane CU node (CU-UP node), and a DU node.
[0064] Network equipment provides services for cells, and terminal devices communicate with the cells through transmission resources (for example, frequency domain resources, or spectrum resources) allocated by the network equipment. The cell can belong to a macro base station (for example, macro eNB or macro gNB) or a base station corresponding to a small cell. Small cells here can include: metrocells, microcells, picocells, femtocells, etc. These small cells have the characteristics of small coverage and low transmission power, and are suitable for providing high-speed data transmission services.
[0065] Alternatively, the aforementioned device and computing node that communicate with the terminal device can be regarded as a whole as the network device involved in this application.
[0066] The terminal device in the embodiment of the present application may also be referred to as: user equipment (UE), mobile station (MS), mobile terminal (MT), access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent or user device, etc. The terminal can be widely used in various scenarios for communication. The scenario includes, but is not limited to, at least one of the following scenarios: enhanced mobile broadband (eMBB), ultra-reliable low-latency communication (URLLC), massive machine-type communications (mMTC), device-to-device (D2D), vehicle to everything (V2X), machine-type communication (MTC), Internet of Things (IOT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grid, smart furniture, smart office, smart wear, smart transportation, or smart city, etc. The terminal may be a mobile phone (such as Figure 1 Mobile phones 120a, 120d, 120f), tablet computers, computers with wireless transceiver functions (such as Figure 1 Computers (120g), wearable devices, vehicles (such as Figure 1 120b shown), drones, helicopters, airplanes (such as Figure 1 120c in ), ships, robots, robotic arms, or smart home devices (such as Figure 1 The present application does not limit the specific technology and specific device form adopted by the terminal.
[0067] By way of example and not limitation, in this application, a terminal device may be a terminal device in an XR system. XR technology, a key area for future human-computer interaction and digital content presentation, integrates cutting-edge technologies such as VR, AR, and Mixed Reality (MR). Its primary technical feature is seamlessly connecting the digital and physical worlds through a highly immersive experience, enabling deep user interaction with virtual environments and real-world scenes. For example, the terminal device in the embodiments of this application may be an XR device. XR devices are a type of intelligent terminal designed specifically for immersive experiences. By integrating display, sensing, computing, and communication technologies, they overlay virtual content or augmented information onto the user's field of view or construct a completely virtual interactive space. XR devices include, but are not limited to, head-mounted displays, smart glasses, handheld interactive devices, and holographic projection devices. XR devices widely support cloud-based interaction, accessing high-precision models, dynamic scene data, or artificial intelligence (AI) inference services in real time over the network, thereby overcoming local computing power limitations and promoting the implementation of complex applications such as the metaverse and remote collaboration.
[0068] Currently, in XR scenarios, there is a need to transmit XR data between terminals and network devices. Both terminals and network devices can serve as both senders and receivers of XR data. When the terminal acts as the sender of XR data, the network device acts as the receiver of XR data, and the terminal sends XR data to the network device via uplink transmission. When the network device acts as the sender of XR data, the terminal acts as the receiver of XR data, and the network device sends XR data to the terminal via downlink transmission.
[0069] Because XR services typically involve the transmission of large amounts of data, such as high-definition video and 3D models, these data are often organized in the form of PDU sets during encoding and transmission. Specifically, when the XR application on the sending end generates a high-definition video stream, real-time model data, or other related content, this XR data is first encapsulated by the application layer and then passed to the PDCP layer on the sending end. The PDCP layer on the sending end encapsulates the XR data into a Service Data Unit (SDU), or PDCP SDU, through encapsulation, encryption, and header compression, and then sends the PDCP PDU down to the RLC layer on the sending end.
[0070] After receiving the PDCP SDU, the transmitting RLC layer further processes the data according to the preconfigured transmission mode, which can include Acknowledged Mode (AM), Unacknowledged Mode (UM), or Transparent Mode (TM). In Acknowledged Mode, for example, when the data length exceeds the RLC layer's processing capacity, the RLC layer segments the PDCP SDU. Segmentation ensures that the data can adapt to the transmission characteristics of the wireless link. Sequence numbers and control information are added to each segmented data block to form an RLC PDU, allowing for accurate reassembly and verification at the receiving end. Ultimately, these RLC PDUs are sent to the physical layer in an orderly manner through the scheduling mechanism of the media access control layer, and then transmitted to the receiving end via the wireless channel.
[0071] After the receiving end receives the RLC PDU sent by the sending end, the RLC layer of the receiving end will perform a reassembly operation on the received RLC PDU. By checking the sequence number, the RLC layer can ensure that the received data blocks are complete and in order. For the confirmation mode AM, the RLC layer will also generate a status report based on the reception situation and feedback it to the sending end to trigger the necessary retransmission mechanism to ensure data reliability. The reassembled RLC SDU will be submitted to the PDCP layer of the receiving end. The PDCP layer of the receiving end will decapsulate, decrypt, and decompress the headers of these data packets to restore the original XR data. These data will eventually be submitted to the upper-layer application for rendering or interactive processing, thereby presenting a realistic XR scene to the user.
[0072] For ease of understanding, the following first describes the process of PDU reception by the receiving RLC layer and the receiving PDCP layer in the current RLC AM mode. For ease of description and understanding, the subsequent embodiments assume that the transmitting RLC layer does not need to segment PDCP SDUs. That is, each PDCP SDU received by the transmitting RLC layer from the transmitting PDCP layer is an RLC PDU in the transmitting RLC layer.
[0073] Figure 2 This is a schematic diagram of the structure of a receiving window of the RLC layer provided in an embodiment of the present application. Figure 2 As shown, the RLC receiving end maintains a receiving window (also called a reassembly window), and the window length of the receiving window is half of the sequence number (SN) space, for example Figure 2If the sequence number space (SN_Space) in is 16, the window length of the receive window (AM_Window_Size) is 8. Correspondingly, the RLC transmitter maintains a send window corresponding to the receive window, and its window length is the same as the receive window.
[0074] The lower boundary of the receiving window is the minimum SN of the unacknowledged PDU (e.g. Figure 2 SN before the state vector is updated is 8), and its upper boundary is the lower boundary + window length (i.e. Figure 2 SN=15 before the state vector is updated. After the receive window confirms the receipt of a PDU, its lower boundary is updated (for example, if the PDU corresponding to SN=8 is subsequently confirmed, and the PDU with SN=9 is not confirmed, the lower boundary is updated to SN=9).
[0075] Correspondingly, the receive window indicates the SN corresponding to its lower boundary through RX_Next, which refers to the SN corresponding to the next PDU that the RLC receiver expects to receive. If the SN of the PDU received by the RLC receiver is the same as RX_Next, it indicates that the PDU has been received correctly, and RX_Next is updated to the SN of the next PDU expected to be received; if the SN of the received PDU is greater than RX_Next, these PDUs will be temporarily stored in the receive window, waiting for the missing PDU to arrive; if the SN of the received PDU is less than RX_Next, these PDUs are considered to be duplicate PDUs and will be discarded.
[0076] Currently, in RLC AM mode, the RLC receiver maintains a reassembly timer. When the RLC receiver receives a PDU with an SN greater than the current RX_Next, it indicates that there is a gap between the SNs of the PDUs received by the RLC receiver, that is, there are missing PDUs that have not yet been received. At this time, the RLC receiver will start or reset the reassembly timer to wait for the missing PDU to arrive, thereby completing the reassembly of the PDU. The state variable of the reassembly timer is RX_T, and the value of RX_T is set to RX_Next_Highest at this time to determine the outdated PDU. The value of RX_Next_Highest is the SN value after the highest received PDU SN in the receive window.
[0077] If all missing PDUs have arrived before the reassembly timer expires, the RLC receiving end can successfully reassemble these PDUs into SDUs; if the RLC receiving end has not received all missing PDUs when the reassembly timer expires, the RLC receiving end will discard the PDUs received in the receiving window and send a status report to the RLC sending end, and feedback the discarded PDUs (including the missing PDUs that were not received) in the form of ACK (i.e., correctly received) in the status report, so that the RLC sending end can continue to send subsequent PDUs, avoid waiting for a long time to transmit the missing PDUs, and release transmission resources in time.
[0078] like Figure 2 As shown before the status vector is updated, the receive window is SN = 8 to 15, of which PDUs with SN = 10 and 11 have been successfully received, and PDUs with SN = 8 and 9 have not been received. Therefore, the lower boundary of the receive window is RX_Next = 8, RX_Next_Highest = 12, and RX_T = 12. After the reassembly timer expires, if the RLC receiver still has not received PDUs with SN = 8 or 9, it discards the PDUs between RX_Next and RX_T (i.e., PDUs with SN = 8 to 11) and sends a status report to the RLC transmitter. The RLC receiver confirms that the discarded PDUs with SN = 8 and 9 are fed back to the RLC transmitter in the form of ACK (i.e., correct receipt) in the status report, allowing the transmitter to continue sending subsequent PDUs.
[0079] Afterwards, if Figure 2 As shown in the figure, after the state vector is updated, the RLC receiving end updates RX_Next to 12. Since the PDU with SN=12 is not received, and the PDU with SN=13 is received, that is, RX_Next_Highest (SN=14)>RX_Next (SN=12)+1, it indicates that there is a gap between the SNs of the PDUs received by the RLC receiving end, that is, there are missing PDUs that have not been received. Therefore, the reassembly timer is reset and RX_T=RX_Next_Highest is updated.
[0080] Figure 3 This is a structural diagram of another receiving window of the RLC layer provided in an embodiment of the present application. Figure 3 As shown in the figure, the sending window of the RLC transmitter is SN=12~SN=3. This is because the sequence number space is reused in the RLC layer. That is, when the SN of the sent PDU exceeds the upper boundary of the sequence number space, the SN of the PDU needs to be wrapped around and renumbered from the lower boundary of the sequence number space. For example, Figure 3The SNs corresponding to the last four PDUs sent by the RLC transmitter in the send window should be SNs 16 to 19. However, due to the reasons mentioned above, a modulo operation is performed on the sequence number space 16 using SNs 16 to 19 to obtain the corresponding SNs, i.e., SNs 0 to 3, where SN 0 corresponds to 16, SN 1 corresponds to 17, SN 2 corresponds to 18, and SN 3 corresponds to 19. Accordingly, the receive window of the RLC receiver is SNs 12 to SN 3. At this point, assuming the RLC receiver receives PDUs with SNs 0 to 3, if the reassembly timer has not expired, the RX_Next_Highest value should be updated from 14 to 4. Since the reassembly timer has not expired, the SN corresponding to RX_T remains 14.
[0081] The following describes the corresponding reordering window in the PDCP layer at the receiving end. In 5G NR, the PDU reordering function is transferred to the PDCP layer. The values of the state variables and PDU numbers in the PDCP layer are represented by COUNT. COUNT consists of two parts: the Hyperframe Number (HFN) and the sequence number (SN): COUNT = (HFN, SN). The HFN represents the number of times the SN wraps around in the PDCP layer. Each time the SN wraps around, the HFN value increments by 1. The HFN value is determined by the PDCP layer based on the number of wraps in its own sequence number space. The PDCP layer maintains a reordering window, the length of which is the same as the receive window length of the RLC layer at the receiving end. The PDCP layer uses a lower-edge driven (PUSH window) and a reordering timer (t-reordering timer) to receive PDUs (i.e., RLC SDUs, which are also RLC PDUs, as this application assumes no SDU segmentation) delivered by the RLC receiving end.
[0082] For example, Figure 4 This is a schematic diagram of the structure of a reordering window of the PDCP layer provided in an embodiment of the present application. Figure 4 As shown, it is the same as the above Figure 3 The RLC layer receive window shown corresponds to the reordering window's lower boundary, corresponding to SN = 12, and its upper boundary, corresponding to SN = 19 (i.e., SN = 3 after wrapping around in the RLC layer receive window). The reordering window includes state variables RX_DELIV, RX_REORD, and RX_NEXT. RX_DELIV identifies the lower boundary of the reordering window (i.e., the lower edge corresponding to the lower edge driver), which drives the reordering window. RX_NEXT identifies the COUNT value corresponding to the next PDU expected to be received by the PDCP layer. RX_REORD is the state variable of the reordering timer.
[0083] In RX_DELIV <RX_NEXT时,表征重排序窗口中存在缺失的PDU,需要启动重排序定时器。若重排序定时器超时,PDCP层仍未接收到所有缺失的PDU,则PDCP层会更新RX_DELIV(例如 Figure 4 RX_DELIV is updated to 17 in , thereby moving the reordering window to receive subsequent PDUs.
[0084] However, the duration of the reassembly timer of the receiving window of the RLC receiving end is different from the duration of the reordering timer of the PDCP layer. Therefore, if the reassembly timer of the RLC receiving end times out, the receiving window will be updated (that is, the RX_Next in the receiving window will be updated), for example, the receiving window will be increased from the above Figure 2 The SN in the RLC layer is updated from 8 to 15 to 12 to 3. If the reordering timer of the PDCP layer has not timed out at this time, the PDCP layer will not update the state variable RX_DELIV (i.e., it will not push the reordering window to move). At this time, the receiving window of the RLC layer is not synchronized with the reordering window of the PDCP layer (i.e., the corresponding window ranges are different). In this case, since the receiving window of the RLC receiving end has been updated, the RLC receiving end will receive subsequent PDUs sent by the RLC transmitting end (e.g., Figure 3 The PDCP layer then forwards the subsequent PDUs to the PDCP layer after receiving them. However, the PDCP layer's reordering window remains between 8 and 15. For PDUs with SNs 0 to 3 received from the RLC receiver (for the PDCP layer, these correspond to PDUs 16 to 19), which fall outside the PDCP layer's reordering window, the PDCP layer does not temporarily store these PDUs but instead discards them, resulting in abnormal packet loss (i.e., discarding PDUs 16 to 19 that should not have been discarded). Because individual packets in a PDU set are closely interdependent, for example, in certain video coding technologies, packets in a PDU set collectively constitute the coding unit of a complete video frame or keyframe. Therefore, if any packet in a PDU set is discarded during transmission, the entire PDU set cannot be correctly decoded, severely impacting the user experience. Therefore, if these discarded PDUs are packets that need to be reassembled into a PDU set, the entire corresponding PDU set will be lost, leading to poor XR data transmission stability.
[0085] In view of this, the present application provides a window synchronization method, which sends first information for synchronizing window differences to the PDCP layer after updating the data receiving window when the first timer of the RLC receiving end times out, so that the PDCP layer can update the data processing window synchronously with the data receiving window according to the first information, so as to avoid the problem of window asynchrony between the RLC layer and the PDCP layer, reduce abnormal packet loss at the PDCP layer, and thus improve the stability of XR data transmission.
[0086] The following is a detailed description of the task processing method of the present application in conjunction with the accompanying drawings. The execution subject of the embodiments shown in the present application is a receiving end device, for example, it can be a network device as a receiving end, or it can be a terminal as a receiving end. The specific form and quantity of each device shown are only examples and should not constitute any limitation on the implementation of the method provided in the present application.
[0087] The terminal device in the embodiments of the present application can be the terminal device itself, or a chip, chip system or processor that supports the terminal device to implement the task processing method, or a logic module or software that can implement all or part of the terminal device functions. The network device in the embodiments of the present application can be the network device itself, or a chip, chip system or processor that supports the network device to implement the task processing method, or a logic module or software that can implement all or part of the network device functions. This application does not impose specific restrictions on this.
[0088] Figure 5 A flowchart of a window synchronization method provided in an embodiment of the present application is shown in FIG. Figure 5 As shown, the method may include:
[0089] S501: When a first timer of the RLC layer times out, update the data receiving window of the RLC layer.
[0090] The first timer is used to limit the waiting time for the data receiving window to receive data. The first timer may be, for example, a reassembly timer of the RLC layer, or other timers used to limit the waiting time for the data receiving window to receive data.
[0091] The RLC layer in this step is the RLC layer of the receiving end, for example, the RLC layer of the terminal or network device serving as the receiving end. The data receiving window of the RLC layer is used to receive data sent by the RLC transmitting end. This data may be, for example, a PDU, i.e., XR data encapsulated and stored in a PDU, or a data packet storing XR data in any other form.
[0092] When the first timer expires, the RLC layer needs to update the data receive window, for example, by updating the position of the lower boundary of the data receive window. The updated data receive window is then determined based on the updated position of the lower boundary of the data receive window. For example, if the lower boundary of the data receive window is at position 8 and the window length of the data receive window is 8, the upper boundary of the data receive window is 15 (i.e., 8+8-1). If the updated lower boundary of the data receive window is at position 12, the updated upper boundary of the data receive window is 19. Optionally, if the updated upper boundary of the data receive window is larger than the sequence number space in which the data receive window resides, the updated upper boundary of the data receive window needs to be determined by wrapping around (for example, if the sequence number space is 16, i.e., 0-15, the updated upper boundary of the data receive window is 3).
[0093] S502. Send first information to the PDCP layer through the RLC layer.
[0094] The first information is used to synchronize the window difference, which is the difference between the data processing window and the data receiving window of the PDCP layer. The PDCP layer is the PDCP layer at the receiving end and belongs to the same terminal or the same network device as the RLC layer. The data processing window can be, for example, the reordering window mentioned above, or it can be another data processing window for processing PDUs transmitted from the RLC layer or data packets storing XR data.
[0095] The difference between the data processing window of the PDCP layer and the data receiving window of the RLC layer is caused by the different durations of the second timer of the PDCP layer and the first timer of the RLC layer. When there is a missing SDU, the PDCP layer needs to wait until the second timer times out before it can push the data processing window (i.e., update the data processing window). The second timer is used to limit the data processing duration of the data processing window. For example, it can be the reordering timer mentioned above, or other timers with the same function as the reordering timer. When the first timer of the RLC layer times out, if the second timer of the PDCP layer has not timed out, the RLC layer will push the data receiving window (i.e., update the data receiving window). However, because the second timer of the PDCP layer has not timed out, the PDCP layer will not push the data processing window, resulting in the data processing window of the PDCP layer and the data receiving window of the RLC layer being out of sync and having differences.
[0096] In one possible implementation method, the first information is used to indicate the updated lower boundary of the data receiving window. The PDCP layer can synchronously update the lower boundary of the data processing window based on the first information, so that the lower boundary of the updated data processing window is the same as the updated lower boundary of the data receiving window indicated by the first information, thereby realizing the synchronous update of the data processing window of the PDCP layer and the data receiving window of the RLC layer.
[0097] In another possible implementation, the first information is used to indicate a timeout reset of a second timer of the data processing window. Based on the first information, the PDCP layer may cause its corresponding second timer to time out in advance, thereby triggering an update of the data processing window of the PDCP layer in advance, thereby achieving synchronous update of the data processing window of the PDCP layer and the data reception window of the RLC layer.
[0098] In this step, for example, a new control PDU may be configured, and the first information may be stored in the new control PDU and sent to the PDCP layer; or the first information may be sent via an interlayer interface between the RLC layer and the PDCP layer, where the interlayer interface may be, for example, a Service Access Point (SAP); or the first information may be written into a shared memory area accessible to both the RLC layer and the PDCP layer, and the PDCP layer periodically checks the shared memory area to obtain the first information; or the first information may be transmitted by configuring a dedicated message queue or a dedicated signaling channel between the RLC layer and the PDCP layer. This application does not limit the specific method for sending the first information from the RLC layer to the PDCP layer.
[0099] S503: Update the data processing window according to the first information.
[0100] The first information obtained through the PDCP layer can trigger a window pushing action of the data processing window of the PDCP layer according to the first information, so as to update the data processing window of the PDCP layer to a data processing window corresponding to the data receiving window of the RLC layer.
[0101] In one possible implementation, the PDCP layer may update the data processing window to be synchronized with the updated data receiving window of the RLC layer through a single update based on the first information. For example, the position of the data processing window may be directly updated to a position corresponding to the position of the updated data receiving window.
[0102] In another possible implementation, the PDCP layer can update the data processing window to synchronize with the updated data receiving window at the RLC layer through multiple, gradual updates based on the first information. For example, each update can advance the data processing window according to a preset step size, and after multiple updates, the data processing window is advanced to a position corresponding to the updated data receiving window. For example, if the data processing window needs to be advanced by three frames per second, the window can be advanced by one frame per update, and the data processing window can be updated completely through three updates.
[0103] The method provided in the embodiment of the present application updates the data receiving window of the RLC layer when the first timer of the RLC layer times out, and then sends the first information to the PDCP layer through the RLC layer. The PDCP layer updates the data processing window based on the received first information to synchronize the updated data processing window with the data receiving window of the RLC layer, thereby reducing abnormal packet loss at the PDCP layer caused by window asynchrony, thereby improving the stability of XR data transmission.
[0104] Hereinafter, first, taking the first information used to indicate the updated lower boundary of the data receiving window as an example, how the PDCP layer updates the data processing window according to the first information in the aforementioned step S503 is described in detail. Figure 6 This is a flow chart of another window synchronization method provided by an embodiment of the present application. Figure 6 As shown, the aforementioned step S503 may specifically include:
[0105] S601: Update the lower boundary of the data processing window according to the updated lower boundary of the data receiving window.
[0106] The lower boundaries of the data receiving window and the data processing window may be indicated, for example, by a sequence number SN, or by a timing identifier (such as a timestamp identifier, a frame number, a time slot number, etc.), or by a block number (BlockNumber), etc. The lower boundaries of the data receiving window and the data processing window may be indicated in the same manner (such as both indicated by the sequence number SN) or in different manners.
[0107] When the lower boundary of the data receiving window and the lower boundary of the data processing window are indicated by different means, a mapping relationship should exist between the two indication means so that the PDCP layer can determine the position to which the lower boundary of the data processing window needs to be updated based on the updated lower boundary of the data receiving window. For example, assuming that the lower boundary of the data receiving window is indicated by an SN and the lower boundary of the data processing window of the PDCP layer is indicated by a block number, the PDCP layer can determine the block number corresponding to the SN based on the mapping relationship between the SN and the block number and the SN corresponding to the lower boundary of the data receiving window, so that the PDCP layer can update the data processing window to be synchronized with the data receiving window based on the block number corresponding to the SN. For another example, assuming that the lower boundary of the data receiving window is indicated by an SN and the lower boundary of the data processing window of the PDCP layer is indicated by a timestamp identifier, the PDCP layer can determine the timestamp identifier corresponding to the SN based on the mapping relationship between the SN and the timestamp identifier and the SN corresponding to the lower boundary of the data receiving window, so that the PDCP layer can update the data processing window to be synchronized with the data receiving window based on the timestamp identifier corresponding to the SN, etc.
[0108] Specifically, the first information may include a first field, and the first field is used to indicate the updated lower boundary of the data receiving window. For example, the first field is used to indicate the first identifier, or the value of the first field is the first identifier, and the first identifier is used to indicate the updated lower boundary of the data receiving window. For example, assuming that the lower boundaries of the data receiving window and the data processing window are both indicated by the first sequence number, the first identifier may be the value of the first sequence number corresponding to the lower boundary of the updated data receiving window. After receiving the first information, the PDCP layer may parse the first information to obtain the first identifier, that is, obtain the value of the first sequence number corresponding to the lower boundary of the updated data receiving window, and then update the lower boundary of the data processing window based on the value of the first sequence number. For example, the PDCP layer may update the value of the SN corresponding to the lower boundary of the data processing window to the value of the first sequence number corresponding to the lower boundary of the updated data receiving window.
[0109] In this case, for example, if the data receiving window is the reassembly window and the data processing window is the reordering window, the lower boundary of the data receiving window is indicated by the state variable RX_Next, and the lower boundary of the data processing window is indicated by the state variable RX_DELIV. Therefore, the updated lower boundary of the data receiving window indicated by the first information can be the updated value of RX_Next (i.e., after the reassembly window is pushed), and the value of the SN corresponding to the updated RX_Next. The PDCP layer obtains the value of the SN corresponding to the updated RX_Next based on the first information and updates the value of RX_DELIV to the value of the SN corresponding to the updated RX_Next, thereby completing the update of the lower boundary of the data processing window.
[0110] S602: Update the data processing window based on the updated lower boundary of the data processing window.
[0111] After updating the lower bound of the data processing window, the PDCP layer determines the updated upper bound of the data processing window based on the updated lower bound and the window length of the data processing window. The updated window range of the data processing window is then determined based on the updated lower and upper bounds of the data processing window.
[0112] For example, assume that the window range of the data processing window before the update is represented by COUNT, with a lower bound of (0, 8), where 0 is the value of HFN and 8 is the value of SN, and an upper bound of (0, 15). The sequence number space corresponding to the data processing window is 16, and the lower bound of the data processing window after the update is 12. Then, the lower bound of the updated data processing window is represented by COUNT as (0, 12). Since the window length of the data processing window is half of the sequence number space, that is, 8, the upper bound of the updated data processing window is represented by COUNT as (1, 3).
[0113] The method provided in the embodiment of the present application updates the data receiving window of the RLC layer when the first timer of the RLC layer times out, and then sends first information indicating the lower boundary of the updated data receiving window to the PDCP layer through the RLC layer. The PDCP layer updates the lower boundary of the data processing window according to the received first information to be synchronized with the lower boundary of the updated data receiving window, and then updates the data processing window based on the updated lower boundary of the data processing window to synchronize the updated data processing window with the data receiving window of the RLC layer, thereby reducing abnormal packet loss of the PDCP layer caused by window asynchrony, thereby improving the stability of XR data transmission.
[0114] Furthermore, taking the data receiving window as the reassembly window and the data processing window as the reordering window as an example, since the RLC layer identifies the window range of the reassembly window through SN and the PDCP layer identifies the window range of the reordering window through COUNT value, in this case, after receiving the first information, the PDCP layer also needs to convert the value of the lower boundary of the reassembly window indicated by the first information into the corresponding COUNT value, so that it can correctly update the lower boundary of the data processing window according to the updated lower boundary of the data receiving window. Figure 7 A flowchart of another window synchronization method provided in an embodiment of the present application is shown below. Figure 7 As shown, the aforementioned step S601 may specifically include:
[0115] S701: Convert a first sequence number into a third sequence number according to the first sequence number, a second sequence number corresponding to the lower boundary of the data processing window, and a window length of the data processing window.
[0116] The third serial number is counted in the same manner as the second serial number. For example, if the second serial number is counted as COUNT value (HFN, SN), the third serial number is also counted as COUNT value (HFN, SN).
[0117] For ease of explanation, this embodiment uses state variables set in the prior art to explain how to convert a first sequence number to a third sequence number. The first sequence number is the SN corresponding to the reassembly window's state variable RX_Next, the second sequence number is the SN in the COUNT value corresponding to the reordering window's state variable RX_DELIV, and the third sequence number is the conversion of the SN corresponding to RX_Next to the corresponding COUNT value. In this embodiment, the third sequence number is denoted as RCVD_COUNT, and the window length of the data processing window is denoted as Window_Size.
[0118] Window asynchrony occurs when the data receiving window's first timer expires and the window is pushed (i.e., updated) but the data processing window's second timer hasn't yet expired, resulting in the data processing window not being pushed (i.e., the data processing window isn't updated synchronously with the data receiving window in a timely manner). Therefore, the lower boundary of the updated data receiving window is located after the lower boundary of the data processing window. Furthermore, due to wraparound in the data receiving window, after the SN of the updated lower boundary of the data receiving window is converted into a COUNT value, the HFN in its COUNT value is greater than or equal to the HFN in the COUNT value of the lower boundary of the data processing window. Therefore, in this application, the following two situations may occur:
[0119] Case 1: If the first sequence number is less than the second sequence number minus the window length, that is:
[0120] SN (RX_Next) <SN(RX_DELIV)–Window_Size (1)
[0121] In case 1, the first sequence number wraps around. That is, after the reassembly window is updated, the first sequence number corresponding to its lower boundary is greater than the maximum value of the sequence number space. The wraparound operation re-determines the SN value from the beginning of the sequence number space. For example, if the sequence number space is 16 (i.e., SN = 0 to 15), the SN (RX_Next) before the update is 12, and the RX_Next after the update is shifted backward by 4 (i.e., 16). Since 16 is greater than the maximum value of the sequence number space, 15, the wraparound operation results in the updated SN (RX_Next) being (16 mod 15) - 1 = 0. In this case, the above formula (1) is 0 < 12 - 8, and formula (1) holds.
[0122] Therefore, in this case, under the counting method of the PDCP layer, since the first sequence number wraps around once, the HFN in the third sequence number (RCVD_COUNT) corresponding to the first sequence number needs to be increased by 1 compared to the HFN corresponding to the second sequence number, that is, RCVD_HFN=HFN(RX_DELIV)+1, where RCVD_HFN is the HFN value of the third sequence number, and HFN(RX_DELIV) is the HFN value of the second sequence number.
[0123] After determining RCVD_HFN, the SN value in the third sequence number can be determined based on the value of the first sequence number. The two are the same SN value. Based on this, RCVD_COUNT can be determined as (RCVD_HFN, RCVD_SN), where RCVD_SN is the same as the value of the first sequence number.
[0124] Case 2: If the first sequence number is greater than or equal to the second sequence number minus the window length, and less than the second sequence number plus the window length, that is, SN(RX_DELIV)–Window_Size ≤ SN(RX_Next), and SN(RX_Next) <SN(RX_DELIV)+Window_Size。
[0125] In case 2, it indicates that the first serial number and the second serial number belong to the same HFN, and the HFN of the second serial number can be directly used as the HFN of the third serial number corresponding to the first serial number, that is, RCVD_HFN=HFN(RX_DELIV).
[0126] After determining RCVD_HFN, the SN value in the third sequence number can be determined based on the value of the first sequence number. The two are the same SN value. Based on this, RCVD_COUNT can be determined as (RCVD_HFN, RCVD_SN), where RCVD_SN is the same as the value of the first sequence number.
[0127] S702: Update the second sequence number according to the third sequence number.
[0128] After determining the third sequence number RCVD_COUNT corresponding to the first sequence number, the second sequence number can be updated to RCVD_COUNT, so that the second sequence number and the first sequence number correspond to the same SN under the same HFN, that is, the lower boundary of the data receiving window of the RLC layer is the same as the lower boundary of the data processing window of the PDCP layer.
[0129] S703: Obtain an updated data processing window based on the updated second sequence number.
[0130] After updating the lower bound of the data processing window (the second sequence number), the PDCP layer determines the updated upper bound of the data processing window based on the updated lower bound of the data processing window (the second sequence number) and the window length of the data processing window. The updated window range of the data processing window is then determined based on the updated lower bound of the data processing window (the second sequence number) and the updated upper bound of the data processing window.
[0131] In one possible implementation, the method of the embodiment of the present application may further include: submitting first data to the application layer through the PDCP layer. The first data is the data corresponding to the sequence number between the second sequence number and the third sequence number. The second sequence number mentioned here is the sequence number corresponding to the lower boundary of the data processing window before the update, for example, it can be recorded as OLD_DELIV. Since the sequence number corresponding to the lower boundary of the data processing window after the update has been updated to the third sequence number, the first data corresponding to the sequence number between the second sequence number and the third sequence number is expired data, and the first data needs to be submitted to the application layer through the PDCP layer so that the PDCP layer can process the SDU in the updated data processing window and submit it to the application layer. In this implementation, it is necessary to submit the first data cached in the data processing window to the application layer through the PDCP layer, that is, the first data is OLD_DELIV <RCVD_COUNT<RE_DELIV的SDU。其中,第一数据中包括的SDU可以是连续的,也可以是不连续的。
[0132] In this way, the synchronous pushing of the data processing window is completed, so that the data processing window can be updated in time to be consistent with the data receiving window, reducing the abnormal packet loss at the PDCP layer, thereby improving the stability of XR data transmission.
[0133] After completing the update of the synchronous data processing window, if there are continuous SDUs starting from the updated RX_DELIV in the PDCP layer, these continuous SDUs can be submitted to the application layer on demand through the PDCP layer, and the value of RX_DELIV can be updated again to point to the first SDU that has not yet been submitted to the application layer.
[0134] After completing the update of the synchronized data processing window, if there is no continuous SDU starting from the updated RX_DELIV in the PDCP layer, and RX_DELIV is greater than or equal to the state vector of the second timer, and the second timer is running, it indicates that the PDCP layer has completed the update of the data processing window of the PDCP layer due to the window pushing action through the first information, but the second timer of the PDCP layer has not timed out at this time. In order to avoid the subsequent second timer timeout causing the data processing window of the PDCP layer to be pushed again, after synchronizing the data processing window and the data receiving window, the second timer of the PDCP layer can also be stopped and reset to avoid the data processing window of the PDCP layer being pushed in advance after the second timer that is being started reaches timeout, thereby further improving the synchronization between the data processing window of the PDCP layer and the data receiving window of the RLC layer, and thereby improving the stability of XR data transmission between the RLC layer and the PDCP layer.
[0135] Optionally, after stopping and resetting the second timer of the PDCP layer, a state variable of the second timer may be updated according to the updated data processing window, so that the state variable of the second timer matches the updated data processing window, thereby implementing the function of the second timer limiting the data processing duration of the updated data processing window. This part of the content can be referred to the existing technology, and this application does not elaborate on it.
[0136] Hereinafter, taking the case where the first information is used to indicate the timeout reset of the second timer of the data processing window as an example, how the PDCP layer updates the data processing window according to the first information in the aforementioned step S503 will be described in detail. Figure 8 A flowchart of another window synchronization method provided in an embodiment of the present application is shown below. Figure 8 As shown, the aforementioned step S503 may specifically include:
[0137] S801. Control a second timer of the PDCP layer to time out according to the first information.
[0138] In this step, since the first information is used to indicate the timeout reset of the second timer of the data processing window, after the PDCP layer receives the first information, the PDCP layer can immediately cause the running second timer to enter a timeout state. When the second timer enters a timeout state, it indicates that the waiting processing of the SDU between the lower boundary of the data processing window and the state variable of the second timer in the data processing window of the PDCP layer has timed out (i.e., the SDU between the lower boundary of the data processing window and the state variable of the second timer has not been uploaded to the application layer during the running of the second timer). For example, the RLC SDU corresponding to the SDU may not have been received from the receiving end RLC layer, or at least one of these SDUs may not have been uploaded to the application layer.
[0139] Optionally, the first information may be dedicated information directly used to indicate the timeout reset of the second timer of the data processing window. For example, the first information may be a specially designed "PDCP_TIMER_RESET_INDICATION" message, which is clearly defined in the communication protocol as being used to trigger the timeout reset operation of the second timer of the data processing window at the PDCP layer. When the PDCP layer receives this specific message, it immediately executes the second timer timeout processing logic.
[0140] Alternatively, the first information may include a field for indicating the timeout reset of the second timer of the data processing window. For example, the first information includes a second field for indicating the timeout reset of the second timer of the data processing window. The second field may be, for example, a specific command field (for example, "TIMER_RESET_CMD", etc.), or a specific identifier (for example, "001", or other custom identifiers, etc.). The command field or the specific identifier is used to indicate the timeout reset of the second timer of the data processing window.
[0141] S802. Submit second data to the application layer through the PDCP layer.
[0142] The second data is data between the lower boundary of the data processing window and the first position, and the first position is the location of the state variable of the second timer. Taking the data processing window as the reordering window as an example, the second timer is the reordering timer corresponding to the PDCP layer, and the location of the state variable of the reordering timer refers to the SN pointed to by the state variable of the reordering timer, that is, the SN of the next SDU expected to be uploaded to the application layer within the reordering window of the PDCP layer.
[0143] In this step, according to the current processing rules of the reordering window of the PDCP layer at the receiving end (i.e., the data processing window in this application), when the reordering timer (i.e., the second timer in this application) times out, the PDCP layer needs to upload the timed-out SDU (i.e., all SDUs in the reordering window between the lower boundary and the position of the state variable of the reordering timer) to the application layer (regardless of whether there are missing SDUs) so that the reordering window of the PDCP layer can be updated through push-window processing to process subsequent SDUs received from the RLC layer at the receiving end.
[0144] Therefore, the data (e.g., PDCP SDU) between the lower boundary of the data processing window (e.g., the COUNT value corresponding to RX_DELIV) and the first position (e.g., the COUNT value corresponding to the state variable RX_REORD of the reordering timer) can be submitted to the application layer through the PDCP layer.
[0145] S803: Update the lower boundary of the data processing window according to the next data to be submitted by the PDCP layer to the application layer.
[0146] After submitting all SDUs corresponding to the second data to the application layer, the PDCP layer can determine the next data (i.e., SDU) to be submitted to the application layer based on the SDUs already submitted in the PDCP layer. The next data to be submitted to the application layer by the PDCP layer is the data following the last data in the second data. For example, assuming the COUNT value for the SDUs corresponding to the second data ranges from (0, 8) to (0, 12), the COUNT value for the next SDU to be submitted to the application layer by the PDCP layer is (0, 13).
[0147] After determining the next data to be submitted by the PDCP layer to the application layer, the lower boundary of the data processing window of the PDCP layer may be updated to a position corresponding to the next data.
[0148] Specifically, the lower boundary of the data processing window can be updated based on the second position corresponding to the next data to be submitted by the PDCP layer to the application layer. For example, after submitting all SDUs corresponding to the second data to the application layer, the position of the next SDU after the SDU can be determined based on the position corresponding to the last SDU among the SDUs submitted by the PDCP layer, that is, based on the second position corresponding to the next data to be submitted by the PDCP layer to the application layer. After determining the second position, the value of the state variable RX_DELIV used to indicate the lower boundary of the data processing window of the PDCP layer can be updated to the value indicating the second position.
[0149] For example, taking the case where the value of the state variable RX_DELIV used to indicate the lower boundary of the data processing window of the PDCP layer is the sequence number SN (the SN here refers to the SN included in the COUNT value corresponding to RX_DELIV), after submitting all SDUs corresponding to the second data to the application layer, the SN of the next SDU after the SDU can be determined based on the SN corresponding to the last SDU among these SDUs submitted by the PDCP layer, that is, based on the SN corresponding to the next data to be submitted to the application layer by the PDCP layer. After determining the SN corresponding to the next data to be submitted to the application layer by the PDCP layer, the value of the state variable RX_DELIV used to indicate the lower boundary of the data processing window of the PDCP layer can be updated to the SN corresponding to the next data to be submitted to the application layer by the PDCP layer, thereby completing the update of the lower boundary of the data processing window.
[0150] Furthermore, since the data processing window has a fixed length—that is, it's the same as the data receive window length of the receiving RLC layer, and is half the length of the sequence number space within the data receive window—after updating the lower bound of the data processing window, the updated upper bound of the data processing window can be determined based on the updated lower bound and the window length. Subsequently, the position corresponding to the updated data processing window (i.e., the corresponding COUNT value range) can be determined based on the updated lower and upper bounds.
[0151] The method provided by the embodiment of the present application is to send a first message for indicating the timeout reset of the second timer of the data processing window to the PDCP layer of the receiving end through the RLC layer of the receiving end when the data receiving window of the RLC layer of the receiving end is updated based on the timeout of the first timer, so that the second timer of the data processing window controlled by the PDCP layer is also timed out synchronously, and the second data that has timed out is submitted to the application layer. After the PDCP layer completes the submission of the second data to the application layer, the lower boundary of the data processing window is updated according to the next data to be submitted to the application layer by the PDCP layer, and then the data processing window is updated synchronously with the data receiving window, thereby reducing the problem of asynchronous update of the data processing window and the data receiving window, reducing the situation of packet loss of XR data during transmission between the RLC layer of the receiving end and the PDCP layer of the receiving end, thereby improving the stability of XR data transmission.
[0152] Figure 9 A structural diagram of a window synchronization device provided in an embodiment of the present application. It is understandable that the window synchronization device can correspond to the operations or steps of the terminal or network device corresponding to the above-mentioned various method embodiments. The window synchronization device can be a terminal or a component that can be configured in a terminal, such as a chip, a chip module, etc.; or the window synchronization device can be a network device or a component that can be configured in a network device, such as a chip, a chip module, etc. Figure 9 As shown, the window synchronization device may include: a first processing module 11, a sending module 12, and a second processing module 13.
[0153] The first processing module 11 is configured to update a data receiving window of the RLC layer when a first timer of the RLC layer times out. The first timer is configured to limit a waiting time for the data receiving window to receive data.
[0154] The sending module 12 is configured to send first information to the Packet Data Convergence Protocol (PDCP) layer through the RLC layer, where the first information is used to synchronize the window difference, which is the difference between the data processing window and the data receiving window of the PDCP layer.
[0155] The second processing module 13 is configured to update the data processing window according to the first information.
[0156] Optionally, the first information is used to indicate the updated lower boundary of the data receiving window.
[0157] Optionally, the second processing module 13 is specifically configured to update the lower boundary of the data processing window according to the updated lower boundary of the data receiving window. The data processing window is updated based on the updated lower boundary of the data processing window.
[0158] Optionally, the first information includes a first field, the first field is used to indicate a first identifier, and the first identifier is used to indicate the updated lower boundary of the data receiving window.
[0159] Optionally, the first identifier is a first serial number.
[0160] Optionally, the second processing module 13 is specifically configured to convert the first sequence number into a third sequence number based on the first sequence number, the second sequence number corresponding to the lower boundary of the data processing window, and the window length of the data processing window. The third sequence number is counted in the same manner as the second sequence number. The second sequence number is updated based on the third sequence number. An updated data processing window is obtained based on the updated second sequence number.
[0161] Optionally, the sending module 12 is further configured to submit first data to the application layer through the PDCP layer, where the first data is data corresponding to a sequence number between the second sequence number and the third sequence number.
[0162] Optionally, the second processing module 13 is further configured to stop and reset a second timer of the PDCP layer, where the second timer is configured to limit the data processing duration of the data processing window.
[0163] Optionally, the second processing module 13 is further configured to update a state variable of the second timer.
[0164] Optionally, the first information is used to indicate that a second timer of the data processing window has timed out and reset.
[0165] Optionally, the first information includes a second field, and the second field is used to indicate that a second timer of the data processing window times out and is reset.
[0166] Optionally, the second processing module 13 is specifically configured to control the expiration of a second timer at the PDCP layer based on the first information, submit second data to the application layer via the PDCP layer, and update the lower boundary of the data processing window based on the next data to be submitted by the PDCP layer to the application layer. The second data is data between the lower boundary of the data processing window and the first position, and the first position is the location of the state variable of the second timer.
[0167] Optionally, the second processing module 13 is specifically configured to update the lower boundary of the data processing window according to a second position corresponding to the next data to be submitted by the PDCP layer to the application layer.
[0168] Optionally, the second processing module 13 is specifically configured to update the sequence number of the lower boundary of the data processing window according to the sequence number at the second position.
[0169] Optionally, the data receiving window is a reassembly window.
[0170] Optionally, the data processing window is a reordering window.
[0171] Optionally, the first timer is a reassembly timer.
[0172] Optionally, the second timer is a reordering timer.
[0173] The window synchronization device provided in this embodiment can execute the actions of the terminal or network device in the aforementioned method embodiment. Its implementation principle and technical effects are similar and will not be described in detail here.
[0174] Optionally, the above-mentioned window synchronization device may also include at least one storage module, which may include data and / or instructions. Other modules in the window synchronization device (such as a receiving module, a sending module, a processing module, etc.) can read the data and / or instructions in the storage module to implement the corresponding method.
[0175] It should be noted that it should be understood that in each of the above embodiments, the sending module can be a transmitter when actually implemented, and the receiving module can be a receiver when actually implemented, or the sending module and the receiving module can be implemented through a transceiver, or the sending module and the receiving module can be implemented through a communication port. The processing module can be implemented in the form of software called by a processing element; it can also be implemented in the form of hardware. For example, the processing module can be at least one separately established processing element, or it can be integrated into a chip of the above-mentioned device for implementation. In addition, it can also be stored in the memory of the above-mentioned device in the form of program code, and called by a processing element of the above-mentioned device to perform the functions of the above-mentioned processing module. In addition, all or part of these modules can be integrated together, or they can be implemented independently. The processing element mentioned here can be an integrated circuit with signal processing capabilities. During implementation, each step of the above method or each of the above modules can be completed by an integrated logic circuit of hardware in the processor element or instructions in the form of software.
[0176] For example, the above modules may be one or more integrated circuits configured to implement the above methods, such as one or more application-specific integrated circuits (ASICs), one or more digital signal processors (DSPs), or one or more field programmable gate arrays (FPGAs). For another example, when a module is implemented by a processing element invoking program code, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of invoking program code. For another example, the modules may be integrated together and implemented in the form of a system-on-a-chip (SOC).
[0177] Figure 10 This is a structural diagram of another window synchronization device provided in an embodiment of the present application. Figure 10 As shown, the window synchronization device 1000 may include: at least one processor 1001, a memory 1002, and a transceiver 1003. The processor 1001, the transceiver 1003, and the memory 1002 communicate with each other via an internal connection path. The memory 1002 is used to store instructions, and the processor 1001 is used to execute the instructions stored in the memory 1002 to control the transceiver 1003 to send and / or receive information.
[0178] The window synchronization device may be, for example, the aforementioned network device or the aforementioned terminal.
[0179] It should be understood that the window synchronization device can correspond to the terminal in the above-mentioned method embodiment or the network device in the above-mentioned method embodiment. And it can be used to execute the various steps and / or processes performed by the terminal or network device in the above-mentioned method embodiment. Optionally, the memory 1002 may include a read-only memory and a random access memory, and provide instructions and data to the processor 1001. A portion of the memory 1002 may also include a non-volatile random access memory. The memory 1002 may be a separate device or integrated into the processor 1001. The processor 1001 may be used to execute the instructions stored in the memory 1002, and when the processor 1001 executes the instructions stored in the memory, the processor 1001 is used to execute the various steps and / or processes of the above-mentioned method embodiment.
[0180] The transceiver 1003 may include a transmitter and a receiver. The transceiver 1003 may further include an antenna, which may be one or more. The processor 1001, memory 1002, and transceiver 1003 may be integrated on different chips. For example, the processor 1001 and memory 1002 may be integrated in a baseband chip, and the transceiver 1003 may be integrated in a radio frequency chip. The processor 1001, memory 1002, and transceiver 1003 may also be integrated on the same chip. This application does not limit this.
[0181] Optionally, the window synchronization device is a component configured in a terminal or a network device, such as a chip, a chip system, etc.
[0182] The transceiver 1003 may also be a communication interface, such as an input interface and / or output interface, circuit, etc. The transceiver 1003, the processor 1001 and the memory 1002 may be integrated into the same chip, such as a baseband chip.
[0183] During implementation, each step of the above method can be completed by an integrated logic circuit of the hardware in the processor or by instructions in the form of software. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a storage medium mature in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it will not be described in detail here.
[0184] It should be noted that the processor in the embodiments of the present application can be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above-described method embodiments can be completed by hardware integrated logic circuits in the processor or by software instructions. The above-described processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware components. The methods, steps, and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of the present application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software modules can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above-described method.
[0185] It is understood that the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DR RAM). It should be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0186] The present application also provides a chip system, including at least one processor and a communication interface, wherein the communication interface and the at least one processor are interconnected via a line, and the at least one processor is used to run a computer program or instruction to implement the method in the above embodiment.
[0187] The present application also provides a computer-readable storage medium, which may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, and other media that can store program codes. Specifically, the computer-readable storage medium stores program instructions, and when the program instructions are executed, the method in the above embodiment is implemented.
[0188] The present application also provides a computer program product, the program product including execution instructions stored in a readable storage medium. At least one processor of a terminal or network device can read the execution instructions from the readable storage medium, and at least one processor executes the execution instructions so that the terminal or network device implements the window synchronization method provided by the various embodiments described above.
[0189] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some or all of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A window synchronization method, characterized in that: include: updating a data receiving window of a radio link control (RLC) layer when a first timer of the RLC layer times out, wherein the first timer is used to limit a waiting time for the data receiving window to receive data; sending, through the RLC layer, first information to a Packet Data Convergence Protocol (PDCP) layer, the first information being used to synchronize a window difference, where the window difference is a difference between a data processing window of the PDCP layer and the data receiving window; the first information including a first sequence number (SN) indicating an updated lower boundary of the data receiving window; and updating the data processing window according to the first information; The sequence number of the lower boundary of the data processing window is identified by the hyperframe number HFN and SN; Wherein, updating the data processing window according to the first information includes: When the first sequence number is less than the second sequence number minus the window length of the data processing window, the HFN value corresponding to the second sequence number is incremented by 1 to obtain the HFN value corresponding to the third sequence number; the second sequence number is the sequence number of the lower boundary of the data processing window before the update; When the first sequence number is greater than or equal to the second sequence number minus the window length of the data processing window, and the first sequence number is less than the second sequence number plus the window length of the data processing window, the HFN value corresponding to the second sequence number is determined as the HFN value corresponding to the third sequence number; Determine the SN value corresponding to the first sequence number as the SN value corresponding to the third sequence number; Updating the HFN value and SN value corresponding to the second sequence number according to the HFN value and SN value corresponding to the third sequence number; An updated data processing window is obtained based on the updated second sequence number.
2. The method according to claim 1, characterized in that Also includes: Submitting first data to the application layer through the PDCP layer, where the first data is data corresponding to a sequence number between the second sequence number and the third sequence number.
3. The method according to claim 1, characterized in that Also includes: Stop and reset a second timer of the PDCP layer, where the second timer is used to limit the data processing duration of the data processing window.
4. The method according to claim 3, characterized in that Also includes: Update the state variable of the second timer.
5. The method according to claim 1, wherein The first information is used to indicate that a second timer of the data processing window times out and is reset.
6. The method according to claim 5, characterized in that The first information includes a second field, and the second field is used to indicate that the second timer of the data processing window times out and is reset.
7. The method according to claim 6, characterized in that The updating of the data processing window according to the first information includes: controlling, according to the first information, the second timer of the PDCP layer to time out; submitting second data to the application layer through the PDCP layer, where the second data is data between a lower boundary of the data processing window and a first position, where the first position is a position where a state variable of the second timer is located; The lower boundary of the data processing window is updated according to next data to be submitted by the PDCP layer to the application layer.
8. The method according to claim 7, characterized in that The updating the lower boundary of the data processing window according to the next data to be submitted by the PDCP layer to the application layer includes: The lower boundary of the data processing window is updated according to a second position corresponding to the next data to be submitted by the PDCP layer to the application layer.
9. The method according to claim 8, characterized in that The updating the lower boundary of the data processing window according to a second position corresponding to next data to be submitted by the PDCP layer to the application layer includes: The sequence number of the lower boundary of the data processing window is updated according to the sequence number of the second position.
10. The method according to claim 1, characterized in that The data receiving window is a reassembly window.
11. The method according to claim 1, characterized in that The data processing window is a reordering window.
12. The method according to claim 1, characterized in that The first timer is a reassembly timer.
13. The method according to claim 3, characterized in that The second timer is a reordering timer.
14. A window synchronization device, characterized in that: include: processor and memory; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to perform the method according to any one of claims 1 to 13.
15. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 13 is implemented.
16. A chip system, characterized in that: The system comprises at least one processor and a communication interface, wherein the communication interface and the at least one processor are interconnected via a line, and the at least one processor is configured to run a computer program or instruction to execute the method according to any one of claims 1 to 13.
17. A computer program product, characterized in that The method comprises a computer program which, when being executed, causes a computer to execute the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Data transmission method and receiving equipment
CN112399468A