Window synchronization method and device, chip system, storage medium and program product

By updating the data receiving window when the timer in the RLC layer timeout and synchronizing the data processing window of the PDCP layer, the packet loss problem caused by the out-of-synchronization of the RLC layer and the PDCP layer window is solved, and the stability of XR data transmission is improved.

CN120379020AActive Publication Date: 2025-07-25HONOR DEVICE CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202510749615.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-06
Publication Date
2025-07-25
Estimated Expiration
2045-06-06

AI Technical Summary

Technical Problem

During XR data transmission, the windows of the RLC layer and the PDCP layer are not synchronized, resulting in packet loss in the PDCP layer, affecting the stability of the XR data transmission.

Method used

In the case where the first timer of the RLC layer timed out, the data reception window is updated, and the first information is sent to the PDCP layer through the RLC layer to synchronize the window difference, and the PDCP layer updates the data processing window according to the information.

Benefits of technology

It reduces abnormal packet loss in the PDCP layer and improves the stability of XR data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120379020A_ABST
    Figure CN120379020A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a window synchronization method and device, a chip system, a storage medium and a program product, and relates to the technical field of communication. The method comprises the steps that under the condition that a first timer of an RLC layer is overtime, a data receiving window of the RLC layer is updated, and the first timer is used for limiting the waiting duration of data receiving of the data receiving window. And sending first information to a packet data convergence protocol (PDCP) layer through the RLC layer, the first information being used for synchronizing a window difference, the window difference being a difference between a data processing window and the data receiving window of the PDCP layer. And updating the data processing window according to the first information, thereby improving the stability of XR data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technologies, and in particular, to a window synchronization method, apparatus, chip system, storage medium, and program product. Background Art

[0002] Extended Reality (XR) creates a virtual environment that enables users to interact with it through specific devices, thereby providing a rich user experience. XR can include, for example, Virtual Reality (VR), Augmented Reality (AR), etc. Currently, XR data is mainly transmitted through a Protocol Data Unit set (PDU set). However, during the transmission of XR data, there is a problem of window desynchronization between the Radio Link Control (RLC) layer and the Packet Data Convergence Protocol (PDCP) layer, resulting in packet loss in the PDCP layer and low stability of XR data transmission.

[0003] Therefore, how to improve the stability of XR data transmission is an urgent problem to be solved. Summary of the Invention

[0004] Embodiments of this application provide a window synchronization method, apparatus, chip system, storage medium, and program product, which are applied to the field of communication technologies and can improve the stability of XR data transmission.

[0005] In a first aspect, embodiments of this application propose a window synchronization method, including:

[0006] When a first timer of the RLC layer times out, update the data reception window of the RLC layer, where the first timer is used to limit the waiting duration for the data reception window to receive data;

[0007] Send first information from the RLC layer to the Packet Data Convergence Protocol PDCP layer, where the first information is used to synchronize the window difference, and the window difference is the difference between the data processing window of the PDCP layer and the data reception window;

[0008] Update the data processing window according to the first information.

[0009] Optionally, the first information is used to indicate the lower boundary of the data reception window after update.

[0010] Optionally, the step of updating the data processing window according to the first information includes:

[0011] Update the lower boundary of the data processing window according to the updated lower boundary of the data reception window;

[0012] Update the data processing window based on the updated lower boundary of the data processing window.

[0013] 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 reception window.

[0014] Optionally, the first identifier is a first sequence number.

[0015] Optionally, the updating the data processing window according to the first information includes:

[0016] Convert the first sequence number into a third sequence number according to 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, and the counting method of the third sequence number is the same as that of the second sequence number;

[0017] Update the second sequence number according to the third sequence number;

[0018] Obtain the updated data processing window based on the updated second sequence number.

[0019] Optionally, it further includes:

[0020] Submit first data to the application layer through the PDCP layer, and the first data is the data corresponding to the sequence numbers between the second sequence number and the third sequence number.

[0021] Optionally, it further includes:

[0022] Stop and reset a second timer of the PDCP layer, and the second timer is used to limit the data processing duration of the data processing window.

[0023] Optionally, it further includes:

[0024] Update the status variable of the second timer.

[0025] Optionally, the first information is used to indicate timeout reset of the second timer of the data processing window.

[0026] Optionally, the first information includes a second field, and the second field is used to indicate timeout reset of the second timer of the data processing window.

[0027] Optionally, the updating the data processing window according to the first information includes:

[0028] Control the timeout of the second timer of the PDCP layer according to the first information;

[0029] Submit second data to the application layer through the PDCP layer, where the second data is the data between the lower boundary of the data processing window and the first position, and the first position is the position where the state variable of the second timer is located;

[0030] Update the lower boundary of the data processing window according to the next data to be submitted from the PDCP layer to the application layer.

[0031] Optionally, the updating the lower boundary of the data processing window according to the next data to be submitted from the PDCP layer to the application layer includes:

[0032] Update the lower boundary of the data processing window according to the second position corresponding to the next data to be submitted from the PDCP layer to the application layer.

[0033] Optionally, the updating the lower boundary of the data processing window according to the second position corresponding to the next data to be submitted from the PDCP layer to the application layer includes:

[0034] Update the sequence number of the lower boundary of the data processing window according to the sequence number of the second position.

[0035] Optionally, the data reception window is a reordering window.

[0036] Optionally, the data processing window is a reordering window.

[0037] Optionally, the first timer is a reordering 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, including a processor and a memory. The memory stores computer execution instructions, and the processor executes the computer execution instructions stored in the memory to execute the method described in the first aspect or any possible implementation manner of the first aspect.

[0040] In a third aspect, an embodiment of the present application provides a computer-readable storage medium. A computer program or instruction is stored in the computer-readable storage medium. When the computer program or instruction runs on a computer, the computer is caused to execute the method described in the first aspect or any possible implementation manner of the first aspect.

[0041] Fourthly, an embodiment of the present application provides a computer program product including a computer program. When the computer program runs on a computer, the computer is enabled to execute the method described in the first aspect or any possible implementation manner of the first aspect.

[0042] Fifthly, the present application provides a chip or a chip system. The chip or the chip system includes at least one processor and a communication interface. The communication interface and the at least one processor are interconnected by a line. The at least one processor is configured to run a computer program or instruction to execute the method described in the first aspect or any possible implementation manner of the first aspect. Among them, the communication interface in the chip can be an input / output interface, a pin, a circuit, etc.

[0043] In a possible implementation, the chip or the chip system described above in the present application further includes at least one memory, and instructions are stored in the at least one memory. The memory can be a storage unit inside the chip, such as a register, a cache, etc., or a storage unit of the chip (such as a read-only memory, a random access memory, etc.).

[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 obtained by each aspect and the corresponding feasible implementation manners are similar and will not be elaborated herein.

[0045] The window synchronization method, device, chip system, storage medium and program product provided by the embodiments of the present application update the data reception 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 according to the received first information, so that the updated data processing window is synchronized with the data reception window of the RLC layer, reducing the abnormal packet loss of the PDCP layer caused by window desynchronization, thereby improving the stability of XR data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] Figure 1 It is a schematic diagram of the architecture of a communication system provided by an embodiment of the present application;

[0047] Figure 2 It is a schematic diagram of the structure of a reception window of the RLC layer provided by an embodiment of the present application;

[0048] Figure 3 It is another schematic diagram of the structure of a reception window of the RLC layer provided by an embodiment of the present application;

[0049] Figure 4 It is a schematic diagram of the structure of a reordering window of the PDCP layer provided by an embodiment of the present application;

[0050] Figure 5 Schematic flowchart of a window synchronization method provided by an embodiment of the present application;

[0051] Figure 6 Schematic flowchart of another window synchronization method provided by an embodiment of the present application;

[0052] Figure 7 Schematic flowchart of yet another window synchronization method provided by an embodiment of the present application;

[0053] Figure 8 Schematic flowchart of still another window synchronization method provided by an embodiment of the present application;

[0054] Figure 9 Schematic structural diagram of a window synchronization device provided by an embodiment of the present application;

[0055] Figure 10 Schematic structural diagram of another window synchronization device provided by an embodiment of the present application. Detailed implementation manners

[0056] In the embodiments of the present application, terms such as "first" and "second" are used to distinguish identical or similar items with basically the same functions and effects. For example, the first chip and the second chip are only used to distinguish different chips, and do not limit their sequence. Those skilled in the art can understand that terms such as "first" and "second" do not limit the quantity and execution order, and "first", "second", etc. do not necessarily mean different.

[0057] It should be noted that in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design solution described as "exemplary" or "for example" in the present application should not be construed as being more preferred or having more advantages than other embodiments or design solutions. Rather, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific manner.

[0058] In the embodiments of the present application, "at least one" means one or more, and "a plurality" means two or more. "And / or" describes the association relationship of associated objects and indicates that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone, where A and B may be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after. "At least one (item)" or a similar expression refers to any combination of these items, including any combination of a single item or multiple items. For example, at least one (item) of a, b, or c may represent: a, b, c, a - b, a - c, b - c, or a - b - c, where a, b, and c may be single or multiple.

[0059] Figure 1 It is a schematic diagram of the architecture of a communication system provided by the embodiments of the present application. As Figure 1 shown, the communication system 100 may include at least one network device (such as Figure 1 110a, 110b, 110c in Figure 1 ), and may also include at least one terminal (such as

[0060] 120a - 120g in Figure 1 ). Figure 1 It is not drawn in

[0061]

[0060] Among them, the network device and the terminal device can communicate through a wireless link. When the network device is a communication sending end, the terminal device can be a communication receiving end; when the network device is a communication receiving end, the terminal device can be a communication sending end. The embodiments of the present application do not limit the number of network devices and terminal devices included in the communication system. In addition, it should be understood that Figure 1 it is only a schematic diagram, and other network devices may also be included in the communication system, such as wireless relay devices and wireless backhaul devices, etc. The present application does not limit this and Figure 1 it is not drawn in

[0061] The network device provided by the embodiments of the present application can be a device that communicates with a terminal device. This network device can also be referred to as an access network device or a radio access network device. For example, it can be a base station, Node B, evolved Node B (eNodeB or eNB), transmission reception point (TRP), next generation Node B (gNB) in a 5th 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 can be a satellite base station in non-terrestrial networks (NTN), or a base station in a future mobile communication system, or an access node in a wireless fidelity (WiFi) system, etc. Alternatively, the network device can be a module or unit that completes some functions of the base station. For example, it can be a central unit (CU), a distributed unit (DU), a central unit control plane (CU-CP) module, or a central unit user plane (CU-UP) module, etc. The access network device can be a satellite base station (such as 110a in Figure 1 ), or a macro base station (such as 110b in Figure 1 ), the access network device can also be a micro base station or an indoor station (such as 110c in Figure 1 ), or a relay node or a donor node, etc. In the present application, no specific technologies and specific device forms adopted by the access network device are limited. Among them, the 5G system can also be referred to as a new radio (NR) system.

[0062] The network where the network device is located has strong computing capabilities, which can be provided by computing nodes included in the network or can be possessed by the network device itself. When the computing capabilities can be provided by computing nodes included in the network, the network device can be connected to one or more computing nodes in the network, and distribute the task data received from the terminal device to the computing nodes so that the computing nodes can process the task data. Among them, the computing nodes can be, for example, Multi-access Edge Computing (MEC) servers, distributed cloud nodes, quantum computing nodes, computing hosts, etc. Inside the computing nodes, one or more computing units can be included to achieve concurrent processing of task data. Among them, the computing units can be, for example, Central Processing Unit (CPU), Graphics Processing Unit (GPU), etc.

[0063] In a network structure, the network device can include a centralized unit (CU) node, or a distributed unit (DU) node, or a Radio Access Network (RAN) device including a CU node and a DU node, or a RAN device including a control plane CU node (CU-CP node) and a user plane CU node (CU-UP node) and a DU node.

[0064] The network device serves a cell, and the terminal device communicates with the cell through the transmission resources allocated by the network device (for example, frequency domain resources, or in other words, spectrum resources). The cell can belong to a macro base station (such as a macro eNB or a macro gNB, etc.) or a base station corresponding to a small cell. Here, the small cells can include: metro cells, micro cells, pico cells, femto cells, etc. These small cells have the characteristics of small coverage range and low transmission power and are suitable for providing high-rate data transmission services.

[0065] Or, the device communicating with the terminal device and the computing nodes described above can be regarded as a whole and used as the network device involved in this application.

[0066] The terminal device in the embodiments 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 platform, 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. Such scenarios include, for example, but are 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, remote medical treatment, smart grid, smart home, smart office, smart wearables, smart transportation, or smart city, etc. The terminal can be a mobile phone (such as the mobile phones 120a, 120d, 120f in Figure 1 ), tablet computer, computer with wireless transceiver function (such as the computer 120g in Figure 1 ), wearable device, vehicle (such as the 120b shown in Figure 1 ), drone, helicopter, airplane (such as the 120c in Figure 1 ), ship, robot, robotic arm, or smart home device (such as the printer 120e in Figure 1 ), etc. The present application does not limit the specific technologies and specific device forms adopted by the terminal.

[0067] By way of example and not limitation, in the present application, the terminal device may be a terminal device in an XR system. As a key area for future human-computer interaction and digital content presentation, XR technology integrates cutting-edge technologies such as VR, AR, and Mixed Reality (MR). Its main technical feature is to seamlessly connect the digital world and the physical world through a highly immersive experience, enabling users to deeply interact with virtual environments and real scenes. Exemplarily, the terminal device in the embodiments of the present application may be an XR device. An XR device is a type of intelligent terminal designed for immersive experiences. By integrating display, sensing, computing, and communication technologies, it superimposes virtual content or enhanced information onto the user's field of view, or constructs a completely virtual interaction space. XR devices include, but are not limited to, head-mounted displays, smart glasses, handheld interaction devices, and holographic projection devices. XR devices widely support cloud interaction, and can obtain high-precision models, dynamic scene data, or Artificial Intelligence (AI) inference services in real time through the network, thereby breaking through the local computing power limit and promoting the implementation of complex applications such as the metaverse and remote collaboration.

[0068] Currently, in the XR scenario, there is a need for the transmission of XR data between the terminal and the network device. Both the terminal and the network device can act as the sender and receiver 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 the XR data to the network device through 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 the XR data to the terminal through downlink transmission.

[0069] Since XR services usually involve the transmission of large amounts of data such as high-definition videos and 3D models, these data are often organized in the form of a PDU set during encoding and transmission. Specifically, when the XR application at the sender generates a high-definition video stream, real-time model data, or other relevant content, these XR data are first encapsulated by the application layer and then transferred to the PDCP layer at the sender. The PDCP layer at the sender encapsulates the XR data into a Service Data Unit (SDU), that is, a PDCP SDU, through encapsulation, encryption, and header compression processing, and sends the PDCP PDU to the RLC layer at the sender.

[0070] After the RLC layer at the sending end receives the PDCP SDU, it further processes the data according to the pre-configured transmission mode, which can include, for example, the Acknowledged Mode (AM), the Unacknowledged Mode (UM), or the Transparent Mode (TM), etc. In the acknowledged mode, for example, when the data length exceeds the processing capacity of the RLC layer, the RLC layer performs a segmentation operation on the PDCP SDU. The segmentation operation can ensure that the data can adapt to the transmission characteristics of the wireless link. Each segmented data block is added with a sequence number and control information to form an RLC PDU for accurate recombination and verification at the receiving end. Finally, 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 through the wireless channel.

[0071] After the receiving end receives the RLC PDU sent by the sending end, the RLC layer at the receiving end performs a recombination operation on the received RLC PDU. Through the verification of the sequence number, the RLC layer can ensure that the received data blocks are complete and in order. For the acknowledged mode AM, the RLC layer also generates a status report according to the reception situation and feeds it back to the sending end to trigger the necessary retransmission mechanism to ensure the reliability of the data. The RLC SDU generated after recombination is submitted to the PDCP layer at the receiving end, and the PDCP layer at the receiving end then performs decapsulation, decryption, and header decompression on these data packets to restore the original XR data. These data will ultimately be delivered 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 process of the RLC layer and the PDCP layer at the receiving end receiving PDUs in the current RLC AM mode is first introduced below. For ease of introduction and understanding, in the subsequent embodiments, it is assumed that there is no need to perform a segmentation operation on the PDCP SDU in the RLC layer at the sending end, that is, each PDCP SDU received by the RLC layer at the sending end from the PDCP layer at the sending end is an RLC PDU in the RLC layer at the sending end.

[0073] Figure 2 The structural schematic diagram of a receiving window of the RLC layer provided by the embodiment of the present application. As Figure 2 shown, the RLC receiving end maintains a receiving window (which can also be called a recombination window). 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 receiving window (AM_Window_Size) is 8. Correspondingly, the RLC transmitter maintains a transmission window corresponding to the receiving window, and its window length is the same as that of the receiving window.

[0074] The lower boundary of the receiving window is the minimum SN in the PDUs received without acknowledgment (e.g., Figure 2 the SN before the state vector update in [[]] is 8), and its upper boundary is the lower boundary + window length (i.e., Figure 2 the SN before the state vector update in [[]] is 15). After the receiving window acknowledges the received PDU, its lower boundary will be updated (e.g., if the PDU corresponding to SN = 8 is subsequently acknowledged and the PDU with SN = 9 is received without acknowledgment, the lower boundary is updated to SN = 9).

[0075] Correspondingly, the receiving window indicates the SN corresponding to its lower boundary through RX_Next. RX_Next refers to the SN of the next PDU expected to be received by the RLC receiver. If the SN of the PDU received by the RLC receiver is the same as RX_Next, it indicates that the PDU is correctly received, and RX_Next is updated to the SN of the next expected PDU; if the SN of the received PDU is greater than RX_Next, these PDUs will be temporarily stored in the receiving window waiting for the missing PDUs to arrive; if the SN of the received PDU is less than RX_Next, these PDUs are considered duplicate received PDUs and will be discarded.

[0076] Currently, in the RLC AM mode, a reordering timer is maintained in the RLC receiver. When the RLC receiver receives a PDU with an SN greater than the current RX_Next, it indicates that there is an interval between the SNs of the PDUs received by the RLC receiver, that is, there are missing PDUs that have not been received. At this time, the RLC receiver will start or reset the reordering timer to wait for the missing PDUs to arrive to complete the reordering of the PDUs. Among them, the state variable of the reordering timer is RX_T, and the value of RX_T is set to RX_Next_Highest at this time to be used to determine the obsolete PDUs. Among them, the value of RX_Next_Highest is the value of the SN after the SN of the highest received PDU in the receiving window.

[0077] If all the missing PDUs have arrived before the re - assembly timer expires, the RLC receiver can successfully re - assemble these PDUs into SDUs; if the RLC receiver still has not received all the missing PDUs when the re - assembly timer expires, the RLC receiver will discard the PDUs that have been received in the receive window and send a status report to the RLC sender, and in the status report, feedback the discarded PDUs (including the missing PDUs that have not been received) in the form of ACK (i.e., correctly received) to enable the RLC sender to continue sending subsequent PDUs, avoid waiting for a long time to transmit the missing PDUs, and release the transmission resources in a timely manner.

[0078] As Figure 2 shown before the status vector update in the figure, the receive window is SN = 8 - 15. Among them, the PDUs with SN = 10 and 11 have been successfully received, and the PDUs with SN = 8 and 9 have not been received. Therefore, the lower boundary of the receive window RX_Next = 8, RX_Next_Highest = 12, RX_T = 12. After the re - assembly timer expires, if the RLC receiver still has not received the PDUs with SN = 8 and 9, it will discard the PDUs between RX_Next and RX_T (i.e., the PDUs with SN = 8 - 11), and send a status report to the RLC sender. The RLC receiver determines that the discarded PDUs with SN = 8 and 9 are fed back to the RLC sender in the form of ACK (i.e., correctly received) in the status report to enable the sender to continue sending subsequent PDUs.

[0079] After that, as Figure 2 shown in the figure after the status vector update, the RLC receiver updates RX_Next to 12. Since the PDU with SN = 12 has not been received and the PDU with SN = 13 has been received, that is, RX_Next_Highest (SN = 14)>RX_Next (SN = 12)+1, which indicates that there is an interval between the SNs of the PDUs received by the RLC receiver, that is, there are missing PDUs that have not been received. Therefore, the re - assembly timer is reset, and RX_T = RX_Next_Highest is updated.

[0080] Figure 3 This is another structural schematic diagram of the receive window of the RLC layer provided by the embodiment of the present application. As Figure 3 shown, the sending window of the RLC sender is SN = 12 - SN = 3. This is because in the RLC layer, the sequence number space is reused, 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 numbered in order again from the lower boundary of the sequence number space. For example, Figure 3The SN corresponding to the last four PDUs sent by the sending window of the RLC transmitter should be SN=16~19. However, due to the above reasons, it is necessary to use SN=16~19 to perform a modulo operation on the sequence number space 16 to obtain the actual corresponding SN, that is, SN=0~3, where SN=0 corresponds to 16, SN=1 corresponds to 17, SN=2 corresponds to 18, and SN=3 corresponds to 19. Correspondingly, the receiving window of the RLC receiver is SN=12~SN=3. At this time, assuming that the RLC receiver receives the PDU of SN=0~3, if the reassembly timer has not timed out, RX_Next_Highest=14 should be updated to RX_Next_Highest=4 accordingly. Since the reassembly timer has not timed out, the SN corresponding to RX_T is still 14.

[0081] Next, the corresponding reordering window in the PDCP layer of the receiving end is introduced. Under 5G NR, the reordering function of PDU is transferred to the PDCP layer. The values of the state variables included in the PDCP layer and the number of PDUs are COUNT, where COUNT consists of two parts: Hyper Frame Number (HFN) and sequence number SN, that is, COUNT = (HFN, SN). Among them, HFN represents the number of times the SN in the PDCP layer wraps around. When the SN wraps around once, the value of HFN is increased by 1. The value of HFN is determined by the PDCP layer according to the number of wraps in its own sequence number space. In the PDCP layer, a reordering window is maintained, and the window length of the reordering window is the same as the window length of the receiving window of the RLC layer of the receiving end. The PDCP layer receives the PDU submitted by the RLC receiving end (i.e., RLC SDU, because it is assumed that the SDU segmentation operation is not performed in this application, it is also RLC PDU) in the form of lower edge drive (PUSH window) and reordering timer (t-reordering timer).

[0082] For example, Figure 4 A schematic diagram of the structure of a reordering window of a PDCP layer provided in an embodiment of the present application. Figure 4 As shown, it is the same as the above Figure 3 The receiving window of the RLC layer shown in the figure corresponds to SN=12 for the lower boundary of the reordering window and SN=19 for the upper boundary (i.e., SN=3 after wrapping around in the receiving window of the RLC layer). The reordering window includes state variables RX_DELIV, RX_REORD, and RX_NEXT. Among them, RX_DELIV is used to identify the lower boundary of the reordering window (i.e., the lower edge corresponding to the lower edge drive), which can promote the movement of the reordering window; RX_NEXT is used to identify 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] When RX_DELIV < RX_NEXT, it indicates that there are missing PDUs in the reordering window and the reordering timer needs to be started. If the reordering timer expires and the PDCP layer still has not received all the missing PDUs, the PDCP layer will update RX_DELIV (for example Figure 4 updating RX_DELIV to 17 in the example), thereby promoting the movement of the reordering window to receive subsequent PDUs.

[0084] However, currently, the duration of the reassembly timer of the receiving window at the RLC receiver is different from the duration of the reordering timer at the PDCP layer. Therefore, if the reassembly timer at the RLC receiver expires, the receiving window will be updated (i.e., RX_Next in the receiving window is updated), for example, updating the receiving window from SN = 8 to 15 as mentioned above Figure 2 to SN = 12 to 3. If the reordering timer at the PDCP layer has not expired at this time, the PDCP layer will not update the state variable RX_DELIV (i.e., does not promote the movement of the reordering window), and at this time, the receiving window at the RLC layer is out of sync with the reordering window at the PDCP layer (i.e., the corresponding window ranges are different). In this case, since the receiving window at the RLC receiver has been updated, the RLC receiver will receive subsequent PDUs sent by the RLC sender (for example Figure 3 the PDUs with SN = 0 to 3 in the example), and after receiving the subsequent PDUs, pass the subsequent PDUs to the PDCP layer. However, at this time, the reordering window at the PDCP layer is still 8 to 15. For the PDUs with SN = 0 to 3 received from the RLC receiver (for the PDCP layer, they are the PDUs corresponding to 16 to 19), they fall outside the reordering window at the PDCP layer, and the PDCP layer will not buffer these PDUs but will discard them, resulting in abnormal packet loss (i.e., discarding the PDUs corresponding to 16 to 19 that should not be discarded). Since there are close dependencies between the packets in the PDU set, for example, when using certain video coding technologies, the packets in a PDU set together form a complete video frame or a coding unit of a key frame. Therefore, if any packet in the PDU set is discarded during transmission, it usually causes the entire PDU set to be unable to be decoded correctly, thereby seriously affecting the quality of user experience. Therefore, if these discarded PDUs are the packets that need to be reassembled into a PDU set, it will cause the entire loss of the corresponding PDU set, resulting in a problem of poor stability in XR data transmission.

[0085] In view of this, the present application provides a window synchronization method. When a first timer at the RLC receiver times out, after updating the data reception window, a first piece of information for synchronizing the window difference is sent to the PDCP layer, enabling the PDCP layer to synchronously update the data processing window with the data reception window according to the first piece of information, so as to avoid the problem of window asynchronization 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 task processing method of the present application will be introduced in detail below with reference to the accompanying drawings. The execution entity of the embodiments shown in the present application is a receiving end device. For example, it can be a network device acting as a receiving end, or a terminal acting as a receiving end. The specific forms and quantities of the devices shown are only examples and should not constitute any limitation to the implementation of the method provided by 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 functions of the terminal device. 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 functions of the network device. The present application does not make specific limitations in this regard.

[0088] Figure 5 It is a schematic flowchart of a window synchronization method provided by an embodiment of the present application. As Figure 5 shown, the method may include:

[0089] S501. When a first timer at the RLC layer times out, update the data reception window of the RLC layer.

[0090] Among them, the first timer is used to limit the waiting duration for the data reception window to receive data. The first timer can be, for example, a reassembly timer of the RLC layer, or it can also be other timers used to limit the waiting duration for the data reception window to receive data.

[0091] The RLC layer in this step is the RLC layer of the receiving end. For example, it can be the RLC layer of the terminal or network device acting as the receiving end mentioned above. The data reception window of the RLC layer is used to receive data sent by the RLC sender. The data can be, for example, a PDU, that is, XR data encapsulated and stored in the PDU, or it can also be other data packets storing XR data in any other form.

[0092] In the case where the first timer expires, the RLC layer needs to update the data reception window. For example, the position of the lower boundary of the data reception window can be updated, so as to determine the updated data reception window according to the position of the lower boundary of the updated data reception window. For example, the position of the lower boundary of the data reception window is 8, and the window length of the data reception window is 8, that is, the upper boundary of the data reception window is 15 (i.e., 8 + 8 - 1). If the position of the lower boundary of the updated data reception window is 12, then the upper boundary of the updated data reception window is 19. Optionally, if the upper boundary of the updated data reception window is greater than the sequence number space where the data reception window is located, the upper boundary of the updated data reception window needs to be determined by wrapping around (for example, the sequence number space is 16, that is, 0 to 15, then the upper boundary of the updated data reception window is 3).

[0093] S502. Send the first information from the RLC layer to the PDCP layer.

[0094] Among them, the first information is used to synchronize the window difference, and the window difference is the difference between the data processing window of the PDCP layer and the data reception window. Among them, the PDCP layer is the PDCP layer of 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 also be other data processing windows for processing PDUs transferred 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 reception 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 are missing SDUs in the PDCP layer, the PDCP layer needs to perform the window pushing action (i.e., update the data processing window) after the second timer expires. The second timer is used to limit the data processing duration of the data processing window and can be, for example, the reordering timer mentioned above, or other timers with the same function as the reordering timer. When the first timer of the RLC layer expires, if the second timer of the PDCP layer has not expired, it will cause the RLC layer to perform the window pushing action of the data reception window (i.e., update the data reception window), but since the second timer of the PDCP layer has not expired, the PDCP layer will not perform the window pushing action of the data processing window, resulting in the out-of-synchronization and difference between the data processing window of the PDCP layer and the data reception window of the RLC layer.

[0096] In a possible implementation manner, the first piece of information is used to indicate the lower boundary of the data reception window after update. The PDCP layer can synchronously update the lower boundary of the data processing window according to the first piece of information, so that the lower boundary of the updated data processing window is the same as the lower boundary of the data reception window indicated by the first piece of information, realizing the synchronous update of the data processing window of the PDCP layer and the data reception window of the RLC layer.

[0097] In another possible implementation manner, the first piece of information is used to indicate the timeout reset of the second timer of the data processing window. The PDCP layer can cause the corresponding second timer to timeout and reset in advance according to the first piece of information, so as to trigger the update of the data processing window of the PDCP layer in advance, realizing the 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 can be configured to store the first piece of information in the new control PDU and send it to the PDCP layer; or the first piece of information can also be sent through the inter-layer interface between the RLC layer and the PDCP layer, and this inter-layer interface can be, for example, a Service Access Point (SAP); or the first piece of information can be written in a shared memory area accessible to both the RLC layer and the PDCP layer, and the PDCP layer obtains the first piece of information by periodically checking this shared memory area; or the first piece of information can also be transmitted by configuring a dedicated message queue, a dedicated signaling channel, etc. between the RLC layer and the PDCP layer. This application does not limit the specific manner of how to send the first piece of information from the RLC layer to the PDCP layer.

[0099] S503. Update the data processing window according to the first piece of information.

[0100] Through the first piece of information obtained by the PDCP layer, the push-window action of the data processing window of the PDCP layer can be triggered according to the first piece of information, so as to update the data processing window of the PDCP layer to the data processing window corresponding to the data reception window of the RLC layer.

[0101] In a possible implementation manner, the PDCP layer can update the data processing window to be synchronized with the updated data reception window of the RLC layer through one update according to the first piece of information. For example, the position where the data processing window is located can be directly updated to the position corresponding to the position of the updated data reception window at one time.

[0102] In another possible implementation manner, the PDCP layer can update the data processing window to be synchronized with the updated data reception window of the RLC layer through multiple step-by-step updates according to the first information. For example, each update can push the data processing window according to a preset step size. After multiple updates, the data processing window is pushed until it reaches a position corresponding to the position of the updated data reception window. For example, assuming that the data processing window needs to be pushed backward by 3 SNs, it can be pushed backward by 1 SN each time. After 3 updates, the update of the data processing window is completed.

[0103] In the method provided by the embodiments of the present application, when the first timer of the RLC layer times out, the data reception window of the RLC layer is updated, and then the first information is sent from the RLC layer to the PDCP layer. The PDCP layer updates the data processing window according to the received first information, so that the updated data processing window is synchronized with the data reception window of the RLC layer, reducing the abnormal packet loss of the PDCP layer caused by window asynchronization, thereby improving the stability of XR data transmission.

[0104] Next, taking the first information being used to indicate the lower boundary after the update of the data reception window as an example, a detailed introduction will be given to how the PDCP layer specifically updates the data processing window according to the first information in the foregoing step S503. Figure 6 It is a schematic flowchart of another window synchronization method provided by the embodiments of the present application. As Figure 6 shown, the foregoing step S503 may specifically include:

[0105] S601. Update the lower boundary of the data processing window according to the lower boundary after the update of the data reception window.

[0106] Among them, the lower boundaries of the data reception window and the data processing window can be indicated by, for example, a sequence number SN, or can be indicated by a timing identifier (such as a timestamp identifier, a frame number, a time slot number, etc.), or can be indicated by a block number (BlockNumber), etc. For the lower boundaries of the data reception window and the data processing window, they can be indicated in the same way (for example, both are indicated by the sequence number SN), or can be indicated in different ways.

[0107] When the lower boundaries of the data reception window and the data processing window are indicated in different ways, there should be a mapping relationship between these two indication methods so that the PDCP layer can determine to which position the lower boundary of the data processing window needs to be updated according to the updated lower boundary of the data reception window. For example, assume that the lower boundary of the data reception window is indicated by SN, and the lower boundary of the data processing window of the PDCP layer is indicated by block number. Then, the PDCP layer can determine the block number corresponding to this SN according to the mapping relationship between SN and the block number, and the SN corresponding to the lower boundary of the data reception window, so that the PDCP layer can update the data processing window to be synchronized with the data reception window according to the block number corresponding to this SN. Another example, assume that the lower boundary of the data reception window is indicated by SN, and the lower boundary of the data processing window of the PDCP layer is indicated by timestamp identification. Then, the PDCP layer can determine the timestamp identification corresponding to this SN according to the mapping relationship between SN and the timestamp identification, and the SN corresponding to the lower boundary of the data reception window, so that the PDCP layer can update the data processing window to be synchronized with the data reception window according to the timestamp identification corresponding to this SN, etc.

[0108] Specifically, the first information may include a first field, and this first field is used to indicate the updated lower boundary of the data reception window. For example, the first field is used to indicate a 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 reception window. For example, assume that the lower boundaries of both the data reception window and the data processing window are indicated by a first sequence number. Then, this first identifier may be the value of the first sequence number corresponding to the updated lower boundary of the data reception window. After receiving the first information, the PDCP layer can parse the first information to obtain this first identifier, that is, obtain the value of the first sequence number corresponding to the updated lower boundary of the data reception window, and then update the lower boundary of the data processing window based on the value of this first sequence number. For example, the PDCP layer can 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 updated lower boundary of the data reception window.

[0109] In this case, taking the data reception window as the reassembly window and the data processing window as the reordering window as an example, the lower boundary of the data reception window is indicated by the status variable RX_Next, and the lower boundary of the data processing window is indicated by the status variable RX_DELIV. Therefore, the updated lower boundary of the data reception window indicated by the first information can be the value of RX_Next after update (i.e., after the reassembly window slides), 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 according to 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 the PDCP layer updates the lower boundary of the data processing window, it can determine the updated upper boundary of the data processing window based on the updated lower boundary of the data processing window and the window length of the data processing window. Then, based on the updated lower boundary and the updated upper boundary of the data processing window, the window range of the updated data processing window can be determined.

[0112] Exemplarily, assume that the window range of the data processing window before update is represented by COUNT, the lower boundary is (0, 8), where 0 is the value of HFN and 8 is the value of SN, the upper boundary is (0, 15), the sequence number space corresponding to the data processing window is 16, and the updated lower boundary of the data processing window is 12. Then, the updated lower boundary of the 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, i.e., 8, the updated upper boundary of the data processing window is represented by COUNT as (1, 3).

[0113] The method provided in the embodiments of the present application updates the data reception window of the RLC layer when the first timer of the RLC layer times out, and then sends the first information indicating the updated lower boundary of the data reception window to the PDCP layer through the RLC layer. The PDCP layer updates the lower boundary of the data processing window to be synchronized with the updated lower boundary of the data reception window according to the received first information, and then updates the data processing window based on the updated lower boundary of the data processing window, so that the updated data processing window is synchronized with the data reception window of the RLC layer, reducing the abnormal packet loss of the PDCP layer caused by window desynchronization, thereby improving the stability of XR data transmission.

[0114] Further, taking the data reception window as the reordering window and the data processing window as the resequencing window as an example, since the RLC layer identifies the window range of the reordering window through SN and the PDCP layer identifies the window range of the resequencing window through the 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 reordering window indicated by the first information into the corresponding COUNT value in order to correctly update the lower boundary of the data processing window according to the updated lower boundary of the data reception window. Figure 7 It is a schematic flowchart of another window synchronization method provided in the embodiments of the present application. As Figure 7 shown, the foregoing step S601 may specifically include:

[0115] S701. Convert the first serial number into a third serial number according to the first serial number, the second serial number corresponding to the lower boundary of the data processing window, and the window length of the data processing window.

[0116] Among them, the counting method of the third serial number is the same as that of the second serial number. For example, if the counting method of the second serial number is COUNT value (HFN, SN), then the counting method of the third serial number is also COUNT value (HFN, SN).

[0117] For the convenience of introduction, in this embodiment, how to convert the first serial number into the third serial number is introduced through the state variables set in the prior art. Among them, the first serial number is the SN corresponding to the state variable RX_Next of the recombination window, the second serial number is the SN in the COUNT value corresponding to the state variable RX_DELIV of the reordering window, and the third serial number is to convert the SN corresponding to RX_Next into the corresponding COUNT value. In this embodiment, the third serial number is denoted as RCVD_COUNT, and the window length of the data processing window is denoted as Window_Size.

[0118] Among them, the window out-of-sync is caused by the fact that after the first timer of the data reception window times out, the window is pushed (i.e., the data reception window is updated), but the second timer of the data processing window has not timed out, resulting in the data processing window not being pushed (i.e., the data processing window is not updated in time to synchronize with the data reception window). Therefore, at this time, the lower boundary of the updated data reception window is located behind the lower boundary of the data processing window. In addition, due to the wrap-around situation of the data reception window, after the SN of the lower boundary of the updated data reception 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, there will be the following two situations in this application:

[0119] Case 1: If the first serial number is less than the second serial number minus the window length, that is:

[0120] SN(RX_Next) < SN(RX_DELIV) – Window_Size (1)

[0121] In Case 1, the representation of the first sequence number wraps around, that is, after the reordering window is updated, the value of the first sequence number corresponding to its lower boundary is greater than the maximum value of the sequence number space. The SN value is determined again from the starting part of the sequence number space through wrapping. For example, the sequence number space is 16 (i.e., SN = 0 to 15), the SN (RX_Next) before the update is 12, and RX_Next after the update is shifted backward by 4 (i.e., 16), and 16 is greater than the maximum value 15 of the sequence number space. Therefore, through the wrapping operation, the updated SN (RX_Next) is (16 mod 15) - 1 = 0. At this time, the above formula (1) is 0 < 12 - 8, and formula (1) holds.

[0122] Therefore, in this case, in 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 incremented 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 according to the value of the first sequence number, and the two are the same SN value. Accordingly, 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 sequence number and the second sequence number are within the same HFN. The HFN of the second sequence number can be directly used as the HFN of the third sequence number corresponding to the first sequence number, that is, RCVD_HFN = HFN(RX_DELIV).

[0126] After determining RCVD_HFN, the SN value in the third sequence number can be determined according to the value of the first sequence number, and the two are the same SN value. Accordingly, 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 corresponds to the same SN under the same HFN as the first sequence number, that is, the lower boundary of the data reception window in the RLC layer is the same as the lower boundary of the data processing window in the PDCP layer.

[0129] S703. Obtain an updated data processing window based on the updated second sequence number.

[0130] After the PDCP layer updates the lower boundary (the second sequence number) of the data processing window, it can determine the upper boundary of the updated data processing window according to the updated lower boundary (the second sequence number) of the data processing window and the window length of the data processing window. Then, based on the updated lower boundary (the second sequence number) of the data processing window and the updated upper boundary of the data processing window, the window range of the updated data processing window can be determined.

[0131] In a possible implementation manner, 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 data corresponding to the sequence numbers between the second sequence number and the third sequence number. The second sequence number here is the sequence number corresponding to the lower boundary before the data processing window is updated, which can be recorded as OLD_DELIV for example. Since the sequence number corresponding to the lower boundary after the data processing window is updated has been updated to the third sequence number, the first data corresponding to the sequence numbers between the second sequence number and the third sequence number is expired data, and it is necessary to submit the first data to the application layer through the PDCP layer so that the PDCP layer can process the SDUs in the updated data processing window and perform the operation of submitting to the application layer. In this implementation manner, 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 the SDU of OLD_DELIV < RCVD_COUNT < RE_DELIV. The SDUs included in the first data may be continuous or discontinuous.

[0132] Thus, the synchronous window 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 reception window, reducing the abnormal packet loss situation of 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 is updated again to make it point to the first SDU that has not been delivered to the application layer.

[0134] After the update of the synchronization data processing window is completed, 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 due to the window pushing action of the PDCP layer through the first information, the data processing window of the PDCP layer has been updated. However, at this time, the second timer of the PDCP layer has not timed out yet. To avoid the subsequent window pushing of the data processing window of the PDCP layer caused by the timeout of the second timer, after the synchronization data processing window and the data reception window, the second timer of the PDCP layer can also be stopped and reset, so as to avoid the window pushing of the data processing window of the PDCP layer in advance after the second timer in the starting process reaches the timeout, thereby further improving the synchronization between the data processing window of the PDCP layer and the data reception window of the RLC layer, and further enhancing 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, the state variable of the second timer can also be updated according to the updated data processing window, so that the state variable of the second timer matches the updated data processing window, and the function of restricting the data processing duration of the updated data processing window by the second timer is realized. This part of the content can refer to the prior art, and the present application will not elaborate on it.

[0136] Next, taking the first information for indicating the timeout reset of the second timer of the data processing window as an example, a detailed introduction will be given to how the PDCP layer specifically updates the data processing window according to the first information in the foregoing step S503. Figure 8 It is a schematic flowchart of another window synchronization method provided by an embodiment of the present application. As Figure 8 shown, the foregoing step S503 may specifically include:

[0137] S801. Control the 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 second timer that is running can be immediately made to enter the timeout state through the PDCP layer. When the second timer enters the timeout state, it indicates that the SDUs 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 wait for processing to time out (that is, during the operation of the second timer, the SDUs between the lower boundary of the data processing window and the state variable of the second timer have not been uploaded to the application layer yet). For example, it may be that the RLC SDU corresponding to this SDU has not been received from the receiving-end RLC layer yet, or it may be that at least one of these SDUs has not been uploaded to the application layer yet.

[0139] Optionally, the first piece of information may be a dedicated piece of information directly used to indicate the timeout reset of the second timer for the data processing window. For example, it may be a specially designed "PDCP_TIMER_RESET_INDICATION" message, which is clearly defined in the communication protocol to trigger the timeout reset operation of the second timer for the PDCP layer data processing window. When the PDCP layer receives this specific message, it immediately executes the second timer timeout processing logic.

[0140] Alternatively, the first piece of information may include a field for indicating the timeout reset of the second timer for the data processing window. For example, the first piece of information includes a second field for indicating the timeout reset of the second timer for the data processing window. The second field may be a specific command field (such as "TIMER_RESET_CMD", etc.) or a specific identifier (such as "001", or other custom identifiers, etc.). The command field or the specific identifier is used to indicate the timeout reset of the second timer for the data processing window.

[0141] S802. Submit the second piece of data from the PDCP layer to the application layer.

[0142] Among them, the second piece of data is the data between the lower boundary of the data processing window and the first position. The first position is the position where the state variable of the second timer is located. Taking the data processing window as the reordering window as an example, the second timer is the reordering timer corresponding to the PDCP layer. The position where the state variable of the reordering timer is located 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 in the PDCP layer's reordering window.

[0143] In this step, according to the processing rules of the current reordering window of the receiving-end PDCP layer (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 SDUs (i.e., all SDUs between the lower boundary and the position where the state variable of the reordering timer is located in the reordering window) to the application layer (regardless of whether there are missing SDUs) so that the reordering window of the PDCP layer can perform window push update to process subsequent SDUs received from the RLC layer of the receiving end.

[0144] Therefore, the data (such as PDCP SDU) between the lower boundary of the data processing window (such as the COUNT value corresponding to RX_DELIV) and the first position (such as 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 from the PDCP layer to the application layer.

[0146] After submitting all the SDUs corresponding to the second data to the application layer, the next data (i.e., SDU) to be submitted from the PDCP layer to the application layer can be determined according to the SDUs that have been submitted in the PDCP layer. Among them, the next data to be submitted from the PDCP layer to the application layer is the data after the last data in the second data. For example, assuming that the COUNT values of the SDUs corresponding to the second data are from (0, 8) to (0, 12), then the COUNT value of the next SDU to be submitted from the PDCP layer to the application layer is (0, 13).

[0147] After determining the next data to be submitted from the PDCP layer to the application layer, the lower boundary of the data processing window of the PDCP layer can be updated to the position corresponding to this next data.

[0148] Specifically, the lower boundary of the data processing window can be updated according to the second position corresponding to the next data to be submitted from the PDCP layer to the application layer. For example, after submitting all the SDUs corresponding to the second data to the application layer, the position of the next SDU after the last SDU among these SDUs submitted by the PDCP layer can be determined, that is, according to the second position corresponding to the next data to be submitted from the PDCP layer to the application layer. After determining this second position, the value of the status variable RX_DELIV, which is used to indicate the lower boundary of the data processing window of the PDCP layer, can be updated to the value indicating this second position.

[0149] Exemplarily, taking the value of the status variable RX_DELIV, which is used to indicate the lower boundary of the data processing window of the PDCP layer, as the sequence number SN (here SN refers to the SN included in the COUNT value corresponding to RX_DELIV), after submitting all the SDUs corresponding to the second data to the application layer, the SN of the next SDU after the last SDU among these SDUs submitted by the PDCP layer can be determined, that is, according to the SN corresponding to the next data to be submitted from the PDCP layer to the application layer. After determining the SN corresponding to the next data to be submitted from the PDCP layer to the application layer, the value of the status variable RX_DELIV, which is 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 from the PDCP layer to the application layer, thereby completing the update of the lower boundary of the data processing window.

[0150] Further, since the window length of the data processing window is a fixed length, that is, the window length of the data processing window is the same as the window length of the data reception window of the receiving end RLC layer, which is half of the length of the sequence number space where the data reception window is located. Therefore, after updating the lower boundary of the data processing window, the upper boundary of the updated data processing window can be determined according to the updated lower boundary of the data processing window and the window length of the data processing window. Then, according to the updated lower boundary of the data processing window and the updated upper boundary of the data processing window, the position corresponding to the updated data processing window (i.e., the range of COUNT values included) can be determined.

[0151] In the method provided by the embodiments of the present application, when the window of the data reception window of the receiving end RLC layer is updated based on the timeout of the first timer, the receiving end RLC layer sends the first information for indicating the timeout reset of the second timer of the data processing window to the receiving end PDCP layer, so that the PDCP layer controls the second timer of the data processing window to also time out synchronously, and submits the second data that has timed out to the application layer. After the PDCP layer completes submitting 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 by the PDCP layer to the application layer, and then the data processing window is updated synchronously with the data reception window, reducing the problem of asynchronous update between the data processing window and the data reception window, reducing the packet loss situation of XR data transmission between the receiving end RLC layer and the receiving end PDCP layer, thereby improving the stability of XR data transmission.

[0152] Figure 9 It is a schematic structural diagram of a window synchronization device provided by an embodiment of the present application. It can be understood that the window synchronization device can correspondingly implement the operations or steps of the corresponding terminal or network device in the foregoing various method embodiments. The window synchronization device can be a terminal or a component configurable in a terminal, such as a chip, a chip module, etc.; or the window synchronization device can be a network device or a component configurable in a network device, such as a chip, a chip module, etc. As Figure 9 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 the data reception window of the RLC layer when the first timer of the RLC layer times out. The first timer is used to limit the waiting duration for the data reception window to receive data.

[0154] The sending module 12 is configured to send the first information to the Packet Data Convergence Protocol (PDCP) layer through the RLC layer. The first information is used to synchronize the window difference, and the window difference is the difference between the data processing window and the data reception window of the PDCP layer.

[0155] The second processing module 13 is used to update the data processing window according to the first information.

[0156] Optionally, the first information is used to indicate the lower boundary of the data reception window after the update.

[0157] Optionally, the second processing module 13 is specifically configured to update the lower boundary of the data processing window according to the lower boundary of the data reception window after the update. Based on the lower boundary of the data processing window after the update, update the data processing window.

[0158] Optionally, the first information includes a first field, and the first field is used to indicate a first identifier, and the first identifier is used to indicate the lower boundary of the data reception window after the update.

[0159] Optionally, the first identifier is a first sequence number.

[0160] Optionally, the second processing module 13 is specifically configured to convert the first sequence number into a third sequence number according to 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, and the third sequence number has the same counting method as the second sequence number. Update the second sequence number according to the third sequence number. Based on the updated second sequence number, obtain the updated data processing window.

[0161] Optionally, the sending module 12 is further used to submit first data to the application layer through the PDCP layer, and the first data is the data corresponding to the sequence numbers between the second sequence number and the third sequence number.

[0162] Optionally, the second processing module 13 is further used to stop and reset the second timer of the PDCP layer, and the second timer is used to limit the data processing duration of the data processing window.

[0163] Optionally, the second processing module 13 is further used to update the status variable of the second timer.

[0164] Optionally, the first information is used to indicate the timeout reset of the second timer of the data processing window.

[0165] Optionally, the first information includes a second field, and the second field is used to indicate the timeout reset of the second timer of the data processing window.

[0166] Optionally, the second processing module 13 is specifically configured to control the timeout of the second timer of the PDCP layer according to the first information. Submit second data to the application layer through the PDCP layer. Update the lower boundary of the data processing window according to the next data to be submitted to the application layer by the PDCP layer. Among them, the second data is the data between the lower boundary of the data processing window and the first position, and the first position is the position where the status variable of the second timer is located.

[0167] Optionally, the second processing module 13 is specifically configured to update the lower boundary of the data processing window according to the second position corresponding to the next data to be submitted from 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 of the second position.

[0169] Optionally, the data reception 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 perform the actions of the terminal or the network device in the foregoing method embodiment, and its implementation principle and technical effects are similar, which will not be elaborated here.

[0174] Optionally, the above window synchronization device may further include at least one storage module, which may include data and / or instructions. Other modules in the window synchronization device (such as the receiving module, the sending module, the 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 the actual implementation of the sending module in each of the above embodiments, it can be a transmitter, and in the actual implementation of the receiving module, it can be a receiver. Or, the sending module and the receiving module are implemented through a transceiver, or the sending module and the receiving module are implemented through a communication port. And 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 can be integrated in a certain chip of the above device. In addition, it can also be stored in the memory of the above device in the form of program code, and called and executed by a certain processing element of the above device to perform the functions of the above processing module. In addition, all or part of these modules can be integrated together or can be independently implemented. The processing element mentioned here can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above modules can be completed by the integrated logic circuit in the processor element or the instructions in software form.

[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), or one or more digital signal processors (DSPs), or one or more field programmable gate arrays (FPGAs), etc. Again, when a certain above module is implemented in the form of a processing element calling program code, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processors that can call program code. Again, these modules may be integrated together and implemented in the form of a system-on-a-chip (SOC).

[0177] Figure 10 Schematic diagram of the structure of another window synchronization device provided by an embodiment of the present application. As Figure 10 shown, the window synchronization device 1000 may include: at least one processor 1001, a memory 1002, and a transceiver 1003. Among them, the processor 1001, the transceiver 1003, and the memory 1002 communicate with each other through 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 information and / or receive information.

[0178] Among them, 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 may correspond to the terminal in the above method embodiment or the network device in the above method embodiment. And it can be used to execute each step and / or process executed by the terminal or the network device in the above 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 part of the memory 1002 may also include a non-volatile random access memory. The memory 1002 may be a separate device or integrated in 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 each step and / or process of the above method embodiment.

[0180] Among them, the transceiver 1003 may include a transmitter and a receiver. The transceiver 1003 may further include an antenna, and the number of antennas may be one or more. The processor 1001 and the memory 1002 and the transceiver 1003 may be devices integrated on different chips. For example, the processor 1001 and the memory 1002 may be integrated in a baseband chip, and the transceiver 1003 may be integrated in a radio frequency chip. The processor 1001 and the memory 1002 and the transceiver 1003 may also be devices 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] Among them, the transceiver 1003 may also be a communication interface, such as an input interface and / or an output interface, a circuit, etc. The transceiver 1003 and the processor 1001 and the memory 1002 may all be integrated in the same chip, such as integrated in a baseband chip.

[0183] In the implementation process, each step of the above method may be completed by an integrated logic circuit in hardware in the processor or an instruction in software form. The steps of the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed and completed by a hardware processor, or executed and completed by a combination of hardware and software modules in the processor. The software module may be located in a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, and other mature storage media in the art. This storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps of the above method. 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 may be an integrated circuit chip with signal processing capabilities. In the implementation process, the steps of the above method embodiments can be completed by the integrated logic circuit in the hardware of the processor or instructions in the form of software. The above-mentioned processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as being executed by a hardware decoding processor, or completed by a combination of hardware and software modules in the decoding processor. The software module may be located in a mature storage medium 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. This storage medium is located in the memory, and the processor reads the information in the memory and combines its hardware to complete the steps of the above method.

[0185] It can be 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. Among them, 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 but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchlink dynamic random access memory (SLDRAM), and direct rambus random access memory (DR RAM). It should be noted that the memory described herein is intended to include but not be 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. The communication interface and the at least one processor are interconnected by a line, and the at least one processor is configured to run a computer program or instruction to implement the method in the above embodiments.

[0187] The present application also provides a computer-readable storage medium, which may include various media capable of storing program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc. Specifically, the computer-readable storage medium stores program instructions, and when the program instructions are executed, the method in the above embodiments is implemented.

[0188] The present application also provides a computer program product, which includes execution instructions stored in a readable storage medium. At least one processor of a terminal or a network device can read the execution instructions from the readable storage medium, and the at least one processor executes the execution instructions to enable the terminal or the network device to implement the window synchronization method provided by the above various embodiments.

[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 foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some or all of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the various embodiments of the present application.

Claims

1. A window synchronization method, characterized in that, Including: When a first timer at the radio link control (RLC) layer times out, updating a data reception window of the RLC layer, where the first timer is used to limit a waiting duration for the data reception window to receive data; 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, and the window difference is a difference between a data processing window of the PDCP layer and the data reception window; Updating the data processing window according to the first information.

2. The method according to claim 1, characterized in that The first information is used to indicate a lower boundary after the data reception window is updated.

3. The method according to claim 2, wherein The updating the data processing window according to the first information includes: Updating a lower boundary of the data processing window according to the lower boundary after the data reception window is updated; Updating the data processing window based on the lower boundary after the data processing window is updated.

4. The method according to claim 2, characterized in that, The first information includes a first field, and the first field is used to indicate a first identifier, and the first identifier is used to indicate the lower boundary after the data reception window is updated.

5. The method according to claim 4, characterized in that, The first identifier is a first sequence number.

6. The method according to claim 5, characterized in that The updating the data processing window according to the first information includes: Converting the first sequence number into a third sequence number according to the first sequence number, a second sequence number corresponding to a lower boundary of the data processing window, and a window length of the data processing window, where the third sequence number has the same counting method as the second sequence number; Updating the second sequence number according to the third sequence number; Obtaining an updated data processing window based on the updated second sequence number.

7. The method according to claim 6, wherein Further including: Submitting first data to an application layer through the PDCP layer, where the first data is data corresponding to sequence numbers between the second sequence number and the third sequence number.

8. The method according to claim 6, wherein Further including: Stopping and resetting a second timer of the PDCP layer, where the second timer is used to limit a data processing duration of the data processing window.

9. The method according to claim 8, characterized in that Further including: Updating a status variable of the second timer.

10. The method according to claim 1, wherein The first information is used to indicate timeout reset of the second timer of the data processing window.

11. The method according to claim 10, wherein A second field is included in the first information, and the second field is used to indicate timeout reset of the second timer of the data processing window.

12. The method according to claim 11, wherein The updating the data processing window according to the first information includes: Controlling the second timer of the PDCP layer to time out according to the first information; 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, and the first position is a position where the status variable of the second timer is located; Updating the lower boundary of the data processing window according to a next data to be submitted from the PDCP layer to the application layer.

13. The method according to claim 12, wherein The updating the lower boundary of the data processing window according to the next data to be submitted from the PDCP layer to the application layer includes: Updating the lower boundary of the data processing window according to a second position corresponding to the next data to be submitted from the PDCP layer to the application layer.

14. The method according to claim 13, wherein Updating a lower boundary of the data processing window according to a second position corresponding to a next piece of data to be submitted by the PDCP layer to the application layer includes: Updating a sequence number of the lower boundary of the data processing window according to a sequence number of the second position.

15. The method according to claim 1, characterized in that The data reception window is a reassembly window.

16. The method according to claim 1, wherein The data processing window is a reordering window.

17. The method according to claim 1, wherein The first timer is a reassembly timer.

18. The method according to claim 8, characterized in that The second timer is a reordering timer.

19. A window synchronization device, characterized in that, Including: A processor and a memory; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to execute the method according to any one of claims 1-18.

20. 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-18 is implemented.

21. A chip system, characterized in that, Including at least one processor and a communication interface, the communication interface and the at least one processor are interconnected by a line, and the at least one processor is configured to run a computer program or instructions to execute the method according to any one of claims 1-18.

22. A computer program product, characterized in that, Including a computer program, when the computer program is run, the computer is caused to execute the method according to any one of claims 1-18.

Citation Information

Patent Citations

  • Data transmission method and receiving equipment

    CN112399468A

  • Method for configuring receive window of PDCP entity, and apparatus therefor

    WO2022205191A1

  • Data receiving method and apparatus, and a network-side device and terminal device

    WO2024114536A1