State report processing method and apparatus, and storage medium
By sending the first round of polling information to inquire about the reception status of critical delayed data packets, the receiving end promptly triggers a status report, which solves the problem of high retransmission latency at the RLC layer and achieves timely retransmission and integrity assurance of data.
Patent Information
- Application Number
- PCT/CN2025/096605
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-02
- Filing Date
- 2025-05-22
- Publication Date
- 2026-02-05
AI Technical Summary
In the retransmission mechanism of the wireless link control layer, the receiving end needs to wait for a period of time after receiving the polling instruction before it can determine the reception status of the data packet, which increases the retransmission latency and cannot meet the service requirements of high latency.
The sending end sends the first polling information only to inquire about the reception status of critical delayed data packets. The receiving end triggers a status report in a timely manner based on this information, thereby reducing the retransmission latency of the RLC layer.
By triggering status reports in a timely manner, the retransmission latency of the RLC layer is reduced, ensuring the integrity and accuracy of data and meeting the business requirements with high latency requirements.
Smart Images

Figure CN2025096605_05022026_PF_FP_ABST
Abstract
Description
Methods, apparatus and storage media for processing status reports
[0001] This application claims priority to Chinese Patent Application No. 202411064924.8, filed with the State Intellectual Property Office of China on August 2, 2024, entitled "Processing Method, Apparatus and Storage Medium for Status Reports", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communications, and more particularly to a method, apparatus, and storage medium for processing status reports. Background Technology
[0003] In the retransmission mechanism of the radio link control (RLC) layer, the transmitting end sends data packets to the receiving end. After the data packets are sent, if the received data packets contain errors or are lost, the transmitting end can trigger a retransmission of the data packets to ensure data integrity and accuracy.
[0004] In traditional technology, the sending end sends a poll instruction to the receiving end to inquire about the reception status of data packets. Upon receiving the poll instruction, the receiving end sends a status report to the sending end based on the reception status. The sending end uses the status report to identify incompletely received data packets. Therefore, the sending end can trigger retransmission of the data packets.
[0005] However, after receiving the poll instruction, the receiving end may need to wait for a period of time to determine the reception status of the data packet, which may prevent the receiving end from triggering the status report in a timely manner, increasing the retransmission latency of the RLC layer and failing to meet the high latency requirements of the service. Summary of the Invention
[0006] This application provides a method, apparatus, and storage medium for processing status reports, which enables the receiving end to trigger status reports in a timely manner, reduces the retransmission latency of the RLC layer, and meets the high latency requirements of services.
[0007] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:
[0008] Firstly, a method for processing status reports is provided, applied to the sending end. This method includes:
[0009] Send the first polling information to the receiving end. The first polling information is used to inquire about the reception status of the delayed key data packet corresponding to the first sequence number. If the remaining time of the delayed key data packet is less than the transmission threshold, the first polling information is used by the receiving end to trigger the first status report.
[0010] Based on the method provided in this application, the sending end sends a first polling message to the receiving end to inquire only about the reception status of the delayed critical data packet corresponding to the first sequence number, rather than inquiring about the reception status of all types of data packets corresponding to the first sequence number. The receiving end can quickly determine the reception status of the delayed critical data packet corresponding to the first sequence number based on the first polling message. Therefore, the receiving end can trigger a first status report, enabling the sending end to promptly determine whether to retransmit the delayed critical data packet, and to send the necessary retransmitted delayed critical data packet as soon as possible when retransmission is required. This reduces the retransmission latency at the RLC layer and ensures data integrity and accuracy.
[0011] In one possible design of the first aspect, sending the first polling information to the receiving end includes:
[0012] If the number of bytes in the newly generated delayed key data packet is greater than the first threshold, or the number of data packets in the newly generated delayed key data packet is greater than the second threshold, the first polling information is sent to the receiving end. The newly generated delayed key data packet is the delayed key data packet generated after the previous polling information is sent. The first threshold is the number of bytes in the delayed key data packet that triggers polling, and the second threshold is the number of data packets in the delayed key data packet that triggers polling.
[0013] Alternatively, after transmitting the data packet, and if the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to send, the first polling information is sent to the receiver.
[0014] Alternatively, if the transmitted data packet is a delayed critical data packet, and the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to be sent, the first polling information is sent to the receiver.
[0015] Alternatively, if the transmitted data packet is a delay-critical data packet, and the data packets in the sender's transmission buffer and retransmission buffer do not include delay-critical data packets or the new data packet is not a delay-critical data packet, a first polling message is sent to the receiver.
[0016] Alternatively, if the newly generated data packet is a delayed critical data packet, send the first polling information to the receiving end.
[0017] In one possible design of the first aspect, the method specifically includes:
[0018] After sending the first polling information, if no first status report is received after the first time period corresponding to the first polling information, the first data packet is submitted to the underlying layer of the sending end, and / or the first polling information is sent to the receiving end. The first data packet includes at least one of the data packet corresponding to the first sequence number, the data packet for which no acknowledgment has been received before the first sequence number, or all delay critical data packets submitted to the underlying layer of the sending end.
[0019] In one possible design of the first aspect, the method further includes:
[0020] Send a second polling message to the receiving end. The second polling message is used to inquire about the reception status of the data packet corresponding to the second sequence number. The data packet corresponding to the second sequence number has not been sent with the corresponding first polling message. The second sequence number is the highest sequence number of the data packet submitted to the underlying layer of the sending end, or the second sequence number includes the sequence numbers of all data packets submitted to the underlying layer of the sending end.
[0021] In one possible design of the first aspect, a second polling message is sent to the receiving end, including:
[0022] If the number of bytes in a newly sent data packet is greater than or equal to the third threshold, or the number of data packets in a newly sent data packet is greater than or equal to the fourth threshold, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sending end has not sent the corresponding first polling information, then a second polling information is sent to the receiving end. The third threshold is the number of bytes in a data packet that triggers polling, and the fourth threshold is the number of data packets in a data packet that triggers polling.
[0023] Alternatively, after transmitting the data packet, if the sender's transmission buffer and retransmission buffer are both empty, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sender has not sent the corresponding first polling information, then send the second polling information to the receiver.
[0024] Alternatively, after transmitting the data packet, and if there are no new data packets to send, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sending end has not sent the corresponding first polling information, a second polling information is sent to the receiving end.
[0025] In one possible design of the first aspect, when the first serial number matches the second serial number, the method further includes:
[0026] Send the first polling information for the data packet corresponding to the first sequence number.
[0027] In one possible design of the first aspect, the method further includes:
[0028] Receive the first status report sent by the receiving end;
[0029] When the first status report indicates that the data packet reception status is incomplete and the data packet is a delay-critical data packet, a data packet is sent to the receiving end;
[0030] Alternatively, if the first status report indicates that the data packet reception status is incomplete and the data packet is not a delay-critical data packet, the operation of sending the data packet is not performed.
[0031] Secondly, a status report processing method is provided for the receiving end, the method including:
[0032] The first round of polling information sent by the receiving end is used to inquire about the reception status of the delayed key data packet corresponding to the first sequence number. The remaining time of the delayed key data packet is less than the transmission threshold.
[0033] Based on the information from the first round of queries, the first status report is triggered.
[0034] In one possible design of the second aspect, a first status report is triggered based on the first polling information, including:
[0035] If the first sequence number is greater than the first state variable, the first state variable is updated to the second sequence number based on the first sequence number. The first state variable is the highest sequence number that the first state report needs to be constructed. The second sequence number is the sequence number corresponding to the incompletely received data packet after the first sequence number, or the next sequence number of the sum of the first sequence number and the sequence number of the first incompletely received data packet before the first sequence number.
[0036] In one possible design of the second aspect, the method further includes:
[0037] When the updated first state variable is greater than the second state variable, the second state variable is updated to the third state variable, and / or, the receiver's reassembly timer is started. The second state variable is the sequence number after the sequence number of the data packet that triggered the receiver's reassembly timer, and the third state variable is the sequence number after the highest sequence number in the received data packet.
[0038] In one possible design of the second aspect, where the first sequence number is greater than the first state variable, and the first state variable is the highest sequence number that the first state report needs to be constructed...
[0039] The first state report includes a traditional state report and an enhanced state report. The traditional state report includes the reception status of data packets from the fourth state variable to the first state variable, and the enhanced state report includes the reception status of data packets from the first state variable to the first sequence number. The fourth state variable is the sequence number after the sequence number of the latest in-order and fully received data packet.
[0040] Alternatively, the first status report may include the reception status of all data packets prior to the first sequence number.
[0041] In one possible design of the second aspect, where the first sequence number is greater than the first state variable, and the first state variable is the highest sequence number that the first state report needs to be constructed...
[0042] The first status report includes the reception status of the delayed critical data packet corresponding to the first sequence number.
[0043] In one possible design of the second aspect, the first status report includes a third sequence number and a fourth sequence number. The third sequence number is the highest sequence number in the first sequence number where the delayed critical data packet was fully received. The fourth sequence number includes all sequence numbers in the first sequence number where the delayed critical data packets were not fully received or were discarded. The reception status of all delayed critical data packets before the third sequence number and excluding the fourth sequence number is a state of complete reception.
[0044] In one possible design of the second aspect, the method further includes:
[0045] If the first sequence number is less than or equal to the first state variable, and the first state variable is the highest sequence number that the first state report needs to be constructed, the first state report is triggered according to the first polling information. The first state report includes the reception status of all data packets from the fourth state variable to the first state variable. The fourth state variable is the sequence number after the sequence number of the latest fully received data packet in order.
[0046] The beneficial effects of the status report processing methods provided in the second aspect and various possible designs of the second aspect can be found in the beneficial effects of the first aspect and various possible implementations of the first aspect, and will not be repeated here.
[0047] In any of the first to second aspects mentioned above and in any possible design of such aspect, the first polling information includes at least: a first field and a second field;
[0048] The first field indicates the information for the first poll, and the second field indicates the first sequence number.
[0049] In any of the first to second aspects and any possible design of such aspect, the first polling information further includes at least one of the third field, the fourth field, or the fifth field;
[0050] The third field indicates that the data packet corresponding to the first sequence number is a segmented data packet, the fourth field indicates the byte position at the beginning of the segment, and the fifth field indicates the byte position at the end of the segment.
[0051] In any of the first to second aspects and any possible design of such aspect, the first field is also used to indicate that the data packet corresponding to the first sequence number is a segmented data packet, and the first polling information also includes: a third field and / or a fourth field;
[0052] The third field indicates the byte position at the beginning of the segment, and the fourth field indicates the byte position at the end of the segment.
[0053] In any of the first to second aspects and any possible design of such aspect, the first polling information is used to explore the reception status of the delayed critical data packet corresponding to the first sequence number, and the first sequence number is used to indicate the sequence number of all delayed critical data packets submitted to the underlying layer of the sending end.
[0054] In any of the first to second aspects mentioned above, and in any possible design of that aspect,
[0055] The first sequence number includes all sequence numbers of the delayed critical data packets;
[0056] Alternatively, when the delayed critical data packet includes consecutive data packets, the first sequence number includes the sequence number of the first data packet in the consecutive data packets.
[0057] In any of the first to second aspects mentioned above and in any possible design of such aspect, the first polling information includes at least: a first field and a second field;
[0058] The first field indicates the information for the first poll, and the second field indicates the first sequence number.
[0059] In any of the first to second aspects and any possible design of such aspect, the first polling information further includes at least one of the third field, the fifth field, the sixth field, or the seventh field;
[0060] The third field indicates whether the data packets are consecutive; the fifth field indicates that the data packet corresponding to the first sequence number is a segmented data packet; the sixth field indicates the byte position at the beginning of the segment; and the seventh field indicates the byte position at the end of the segment.
[0061] In any of the first to second aspects mentioned above, and in any possible design of that aspect,
[0062] The first polling information also includes: a fourth field; the fourth field is used to indicate the number of consecutive data packets.
[0063] In any of the first to second aspects and in any possible design of such aspect, the first polling information further includes: an eighth field, which is used to indicate whether the first polling information uses a control data packet or a data data packet.
[0064] In any of the first to second aspects and any possible design of such aspect, the eighth field is used to indicate that the first polling information uses a data packet, and the first polling information also includes: a ninth field, used to indicate that the second polling information is to be performed.
[0065] Thirdly, a communication device is provided for use at a transmitting end, the device comprising: a module for performing the methods described in the first aspect and any possible design of the first aspect.
[0066] Fourthly, a communication device is provided for use at a receiving end, the device comprising: a module for performing the methods described in the second aspect and any possible design of the second aspect.
[0067] Fifthly, a communication system is provided, comprising: a transmitting end for performing the methods described in the first aspect and any possible design of the first aspect, and a receiving end for performing the methods described in the second aspect and any possible design of the second aspect.
[0068] Sixthly, a communication device is provided, comprising: a transceiver, a processor, and a memory. The memory stores computer programs or instructions, and the processor controls the transceiver to transmit and receive signals. The processor also calls and executes the computer programs or instructions stored in the memory, causing the processor to implement any of the above aspects and any possible design methods of that aspect.
[0069] In a seventh aspect, a communication device is provided, comprising: a processor; the processor being configured to invoke a computer program or instructions in a memory, causing the communication device to perform any of the above aspects and any possible design of such aspect.
[0070] Optionally, the communication device further includes a memory for storing program instructions. The processor is coupled to the memory via an interface.
[0071] Eighthly, a chip device is provided, including a processor for invoking a computer program or instructions in the memory to cause the processor to perform any of the above aspects and any possible design of the above aspects.
[0072] Alternatively, the processor may be coupled to the memory via an interface.
[0073] Ninthly, a chip is provided, comprising: an interface circuit and a logic circuit, wherein the interface circuit is used to receive signals from other chips outside the chip and transmit them to the logic circuit, or to send signals from the logic circuit to other chips outside the chip, and the logic circuit is used to implement any of the above aspects and any possible design method of the above aspects.
[0074] In a tenth aspect, a computer-readable storage medium is provided, which stores a computer program or instructions configured to perform any of the above aspects and any possible design of such aspect.
[0075] Eleventhly, a computer program product is provided that, when run on a computer, causes the computer to perform any of the above aspects and any possible design of that aspect. Attached Figure Description
[0076] Figure 1 is a schematic diagram of the state variables of a transmitter provided in an embodiment of this application;
[0077] Figure 2 is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application;
[0078] Figure 3 is a schematic diagram of a 12-bit status report provided in an embodiment of this application;
[0079] Figure 4 is a schematic diagram of an 18-bit status report provided in an embodiment of this application;
[0080] Figure 5 is a schematic diagram of the architecture of a communication system provided in an embodiment of this application;
[0081] Figures 6-9 are schematic diagrams of a poll indicator in a conventional technique;
[0082] Figures 10 and 11 are schematic diagrams of the state variables of a receiver in a conventional technology;
[0083] Figure 12 is a signaling interaction diagram of a status report processing method provided in an embodiment of this application;
[0084] Figures 13-17 are schematic diagrams of the state variables of a receiving end provided in an embodiment of this application;
[0085] Figure 18 is a schematic diagram of the SN number arrangement of a data packet according to an embodiment of this application;
[0086] Figures 19-30 are schematic diagrams of a data packet format for a first polling information provided in an embodiment of this application;
[0087] Figures 31-32 are schematic flowcharts of a status report processing method provided in an embodiment of this application;
[0088] Figure 33 is a schematic diagram of a communication device provided in an embodiment of this application;
[0089] Figure 34 is a schematic diagram of the structure of a communication device provided in an embodiment of this application;
[0090] Figure 35 is a schematic diagram of the structure of a communication device provided in an embodiment of this application;
[0091] Figure 36 is a schematic diagram of the hardware structure of a communication device provided in an embodiment of this application. Detailed Implementation
[0092] The technical solutions of the embodiments of this application will be described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined with "first," "second," etc., may explicitly or implicitly include one or more of that feature.
[0093] In embodiments of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0094] In the embodiments of this application, "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. Additionally, the character " / " in this document generally indicates that the preceding and following related objects have an "or" relationship.
[0095] In the description of this application, it should be noted that, unless otherwise expressly specified and limited, the terms "set", "connected", and "linked" should be interpreted broadly, for example, as a fixed connection, a detachable connection, or an integral connection; those skilled in the art can understand the specific meaning of the above terms in this application according to the specific circumstances.
[0096] First, some of the terms used in this application will be explained below to facilitate understanding by those skilled in the art.
[0097] 1. RLC layer
[0098] In the communication protocol stack, the RLC layer sits between the Medium Access Control (MAC) layer and the Packet Data Convergence Protocol (PDCP) layer. The PDCP layer can be considered the upper layer of the RLC layer, and the MAC layer the lower layer. The PDCP layer is primarily responsible for encryption, header compression, and other functions, while the RLC layer provides reliable data transmission services. The MAC layer is mainly responsible for resource allocation and scheduling, providing underlying transmission support for the RLC layer.
[0099] 2. Status variables of the sending end
[0100] Please refer to Figure 1, which is a schematic diagram of the state variables of a transmitter according to an embodiment of this application. As shown in Figure 1, the transmitter includes multiple state variables, namely:
[0101] 1) The TX_Next_Ack status variable is the serial number (SN) of the next data packet after the ACK message is received in sequence, and it represents the lower boundary of the sending window. That is, when the SN of a received data packet is TX_Next_Ack, TX_Next_Ack needs to be updated. The AM_Window_Size status variable represents the size of the sending window.
[0102] 2) The TX_Next state variable is the serial number (SN) of the next most recently generated acknowledged mode-protocol data unit (AMD PDU / AM Data PDU). It is updated when an RLC entity constructs an AMD PDU with the SN TX_Next. An AMD PDU can include a segment of an RLC service data unit (SDU) or an RLC SDU.
[0103] 2. Receiver's state variables
[0104] Please refer to Figure 2, which is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application. As shown in Figure 2, the receiving end includes multiple state variables, namely:
[0105] 1) The RX_Next state variable is the SN number following the SN number of the most recently received, fully ordered RLC SDU, and represents the lower boundary of the receive window. In other words, when the RLC entity receives a data packet with the SN number RX_Next, it needs to be updated. The AM_Window_Size state variable represents the size of the receive window.
[0106] 2) The RX_Next_Status_Trigger status variable is the SN number following the SN number of the RLC SDU that triggered the reassembly timer at the receiver.
[0107] 3) The RX_Highest_Status status variable is the highest SN number that the status PDU needs to be constructed. The highest SN number can be indicated as ACK_SN.
[0108] 4) The RX_Next_Highest status variable is the SN number following the highest SN number in the received RLC SDU.
[0109] The SN number following the above can be the next SN number.
[0110] 3. Status Report
[0111] The status report includes a status report payload and an RLC control PDU header. The RLC control PDU header includes a D / C field (Data / Control field) and a CPT field (Control PDU Type field).
[0112] Please refer to Figures 3 and 4. Figure 3 is a schematic diagram of a 12-bit status report provided in an embodiment of this application, and Figure 4 is a schematic diagram of an 18-bit status report provided in an embodiment of this application. In Figure 3, the length of the PDU's SN number is 12 bits. In Figure 4, the length of the PDU's SN number is 18 bits.
[0113] As shown in Figures 3 and 4, the status report includes multiple fields, namely:
[0114] 1) ACK_SN field
[0115] The ACK_SN field is 12 bits or 18 bits long.
[0116] The ACK_SN field is used to indicate the next SN number after the SN number of an RLC SDU that has not been received. The status report does not indicate that the RLC SDU is lost.
[0117] After the sending end receives the status report sent by the receiving end, in addition to the following: (1) RLC SDUs indicating NACK_SN; (2) RLC SDUs indicating NACK_SN and SOstart and SOend; (3) RLC SDUs indicating NACK_SN and NACK_range; (4) RLC SDUs of the NACK_SN, NACK range, SOstart and SOend fields in the status report.
[0118] The above four types of RLC SDUs (1), (2), (3) and (4) do not include all RLC SDUs with ACK_SN that have been received. That is, other RLC SDUs with ACK_SN less than these four types of RLC SDUs have been correctly received.
[0119] 2) Introduction to E1 field
[0120] The length of the E1 field is 1 bit.
[0121] The E1 field is used to indicate whether the NACK_SN, E1, E2, and E3 fields will follow. When the E1 field is set to 0, it indicates that the NACK_SN, E1, E2, and E3 fields do not exist. When the E1 field is set to 1, it indicates that the NACK_SN, E1, E2, and E3 fields will follow.
[0122] 3) NACK_SN field
[0123] The length of the NACK_SN field is 12 bits or 18 bits.
[0124] NACK_SN is used to indicate that the RLC SDU (or RLC SDU segment) of this SN is detected and discarded on the receiving side.
[0125] 4) E2 field (1 bit)
[0126] The length of the E2 field is 1 bit.
[0127] The E2 field indicates whether there are subsequent SO start and SO end segments, i.e., whether it is an RLC SDU segment. Specifically, when the E2 field is 0, it indicates that there are no subsequent SO start and SO end segments. When the E2 field is 1, it indicates that there are subsequent SO start and SO end segments.
[0128] 5) SO start field
[0129] The SO start field is 16 bits long. Typically, the SO start field is used in conjunction with the SO end field.
[0130] The SO start field is used to indicate that the RLC SDU segment (i.e., the segment with SN number NACK_SN) has been detected and discarded. The SO start field indicates the position of the first byte of the RLC SDU segment in the original RLC SDU. That is, the first byte of the original RLC SDU is 0000000000000000, i.e., it starts with 0.
[0131] 6) SO end field
[0132] The SO end field is 16 bits long. Typically, the SO end field is used in conjunction with the SO start field.
[0133] The SO end field is used to indicate that the RLC SDU portion (i.e., segment) with SN number NACK_SN has been detected as discarded. The SO end field indicates the position of the last byte of the RLC SDU portion in the original RLC SDU.
[0134] 7) E3 field
[0135] The length of the E3 field is 1 bit.
[0136] The E3 field is used to indicate whether there are consecutive RLC SDUs that have not been received. When the E3 field is set to 0, it indicates that there are no consecutive RLC SDUs that have not been received. When the E3 field is set to 1, it indicates that there are consecutive RLC SDUs that have not been received.
[0137] 8) NACK range field
[0138] The NACK range field is 8 bits long.
[0139] The NACK range field is used to indicate the number of consecutively lost RLC SDUs starting from NACK_SN.
[0140] 9) CPT field:
[0141] The CPT field is 3 bits long.
[0142] The CPT field is used to indicate the control PDU type. When the CPT field is set to 000, it indicates a status PDU. When the CPT field is set to 001, it indicates a reserved value.
[0143] 10) R field
[0144] The R field is a reserved field, set to 0 by default, and the receiving end can ignore this field.
[0145] 11) D / C field
[0146] The D / C field, Data / Control, is used to indicate whether this PDU is a data PDU or a control PDU.
[0147] This application provides a method for processing status reports. This method can be applied to communication systems, which may include, but are not limited to, wireless communication systems, such as narrowband Internet of Things (NB-IoT), Global System for Mobile Communications (GSM), Enhanced Data Rate for GSM Evolution (EDGE), Wideband Code Division Multiple Access (WCDMA), Code Division Multiple Access 2000 (CDMA2000), Time Division-Synchronization Code Division Multiple Access (TD-SCDMA), LTE systems, 5G systems, 6G systems, and future systems.
[0148] Please refer to Figure 5, which is a schematic diagram of the architecture of a communication system provided in an embodiment of this application. As shown in Figure 5, the communication system provided in this application may include: a terminal device 10 and a network device 20, and the terminal device 10 and the network device 20 can communicate.
[0149] The terminal device 10 can be a wireless terminal or a wired terminal. A wireless terminal can be a device that provides voice and / or other service data connectivity to a user, such as a handheld device with wireless connectivity, or other processing devices connected to a wireless modem. The wireless terminal can communicate with one or more core networks via a radio access network (RAN). The wireless terminal can be a mobile terminal, such as a mobile phone (or "cellular" phone) or a computer with a mobile terminal, for example, a portable, pocket-sized, handheld, computer-embedded, or vehicle-mounted mobile device. These exchange voice and / or data with the radio access network. Examples include personal communication service (PCS) phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), drones, wearable devices, and terminals in vehicle-to-everything (V2X) networks. A wireless terminal can also be referred to as a system, subscriber unit, subscriber station, mobile station, mobile station, remote station, remote terminal, access terminal, user terminal, user agent, user device or user equipment, user equipment (UE), terminal unit, terminal station, remote station, mobile device, terminal, wireless communication equipment, terminal agent, or terminal device, etc., without limitation.
[0150] Access terminals can be cellular phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wireless communication capabilities, computing devices or other processing devices connected to a wireless modem, in-vehicle devices, wearable devices, terminal devices in 5G networks or future 6G networks, or terminal devices in future evolved public land mobile networks (PLMNs), etc.
[0151] In addition, the terminal device 10 may use mobile operating systems such as Android, Linux, Windows, and iOS, and this application does not limit it in this regard.
[0152] Network device 20 can be a base station, an access point, or an access network device, or it can refer to a device in the access network that communicates with a wireless terminal via one or more sectors on the air interface. Network device 20 can be used to convert received air frames to and from Internet Protocol (IP) packets, and acts as a router between the wireless terminal and the rest of the access network, which may include an IP network. Network device 20 can also coordinate the attribute management of the air interface. For example, network device 20 can be a base station (BTS) in satellite, drone, Global System for Mobile Communication (GSM) or Code Division Multiple Access (CDMA), or a base station (NodeB, NB) in Wideband Code Division Multiple Access (WCDMA), or an evolved Node B (eNB or eNodeB) in LTE, or a radio controller in a cloud radio access network (CRAN) scenario, or a terminal, relay station or access point that performs base station functions in wearable devices or vehicle-mounted devices, vehicular to everything (V2X), device-to-device (D2D) communication, and machine-to-machine (M2M) communication, or a base station in a 5G network, such as a gNB, or a base station in a future 6G network, or a network device in a future evolved public land mobile network (PLMN) network, and is not limited here.
[0153] In wireless communication, data packets may be transmitted incorrectly or lost due to factors such as signal interference and fading. Therefore, a retransmission mechanism is introduced at the RLC layer to ensure reliable data transmission.
[0154] When the receiving end detects a lost or erroneous data packet, its RLC layer sends a feedback to the sending end's RLC layer, triggering the sending end's RLC layer to retransmit the lost or erroneous data packet. This helps improve the accuracy and integrity of data transmission.
[0155] For example, taking video data packets as an example, if a video data packet is lost during transmission, the RLC layer will trigger a retransmission to ensure that the video can be played smoothly and avoid stuttering or screen tearing.
[0156] In this scenario, the sending end can be the terminal device shown in Figure 5, and the receiving end can be the network device shown in Figure 5. Alternatively, the receiving end can be the terminal device shown in Figure 5, and the sending end can be the network device shown in Figure 5.
[0157] In the retransmission mechanism of the RLC layer, the specific process of traditional technology may include the following steps:
[0158] Step 11: The sending end sends a poll instruction to the receiving end.
[0159] The poll indicator is used to inquire about the reception status of data packets, and it is also used to indicate the serial number (SN) of the data packets to trigger the receiving end to send a status report.
[0160] Please refer to Figures 6 and 7. Figure 6 is a schematic diagram of a poll indicator in the conventional art, and Figure 7 is a schematic diagram of a poll indicator in the conventional art.
[0161] As shown in Figures 6 and 7, the data packet format of the poll instruction uses a non-fragmented data packet. In Figure 6, the serial number (SN) in the poll instruction is 12 bits long. In Figure 7, the serial number (SN) in the poll instruction is 18 bits long.
[0162] Please refer to Figures 8 and 9. Figure 8 is a schematic diagram of a poll indicator in the conventional art, and Figure 9 is a schematic diagram of a poll indicator in the conventional art.
[0163] As shown in Figures 8 and 9, the data packet format of the poll instruction uses segmented data packets. In Figure 8, the serial number (SN) in the poll instruction is 12 bits long. In Figure 9, the serial number (SN) in the poll instruction is 18 bits long.
[0164] In Figures 6-9, the poll instruction includes multiple fields, namely:
[0165] 1) The D / C field indicates whether the poll packet format is a control PDU or a data PDU.
[0166] 2) The P field indicates whether to perform a poll. The P field is 1 bit long. When the P field is set to 0, it indicates that no poll will be performed, meaning that no status report will be triggered. When the P field is set to 1, it indicates that a poll will be performed, and a status report will be triggered.
[0167] 3) The SI field is used to indicate segments. The SI field is 2 bits long. When the SI field is set to 00, it indicates that a data packet includes all bytes of an RLC SDU. When the SI field is set to 01, it indicates that a data packet includes the first segment of an RLC SDU. When the SI field is set to 10, it indicates that a data packet includes the last segment of an RLC SDU. When the SI field is set to 11, it indicates that a data packet does not include the first or last segment of an RLC SDU.
[0168] 4) The SO field indicates the offset position of the SDU segment within the original SDU. The SO field is 16 bits long.
[0169] Step 12: After the poll instruction is sent, the sending end starts the retransmission timer.
[0170] After the retransmission timer is enabled at the sending end, the sending end executes step 13 or step 14.
[0171] Step 13: If the retransmission timer of the sending end has not expired, and a status report is received from the receiving end, and the status report includes an acknowledgment (ACK) message or a non-acknowledgment (NACK) message for the data packet corresponding to the SN number indicated by poll, the sending end stops the retransmission timer.
[0172] Correspondingly, the receiving end sends a status report to the sending end.
[0173] For ease of description, the serial number (SN) of the poll indicator mentioned in conventional techniques can be simplified using the symbol 'x'.
[0174] In some instances, the status report may include an ACK or NACK message for the packet, as well as x.
[0175] The ACK message for a data packet indicates that the data packet has been received completely. In other words, the receiving end has received the complete data packet.
[0176] The NACK message for a data packet indicates that the data packet reception status is incomplete acknowledgment. That is, the receiving end did not receive the data packet. Alternatively, the receiving end received a portion of the data packet.
[0177] Step 14: If the retransmission timer of the sending end times out, the sending end retransmits the data packet corresponding to the highest SN number of the underlying layer handed over to the receiving end and the data packet for which no ACK message has been received, and the sending end sends a poll indication to the receiving end.
[0178] The conditions for sending poll include any one of the following:
[0179] (1) The number of bytes in the newly sent data packet is greater than threshold 1, or the number of data packets in the newly sent data packet is greater than threshold 2. Among them, pollbyte is used to indicate the threshold 2 of the number of bytes in the data packet that triggers poll, and pollPDU is used to indicate the threshold 2 of the number of data packets in the data packet that triggers poll.
[0180] (2) The sender's transmission buffer and retransmission buffer are both empty, or there are no new data packets to send. Here, "no new data packets to send" can be understood as no data packets need to be sent and no data packets need to be retransmitted.
[0181] Step 15: After receiving the poll instruction, the receiving end determines whether x meets the triggering conditions for a status report.
[0182] When x satisfies trigger condition 1, the receiver executes step 16. When x satisfies trigger condition 2, the receiver executes step 17.
[0183] Please refer to Figures 10 and 11. Figure 10 is a schematic diagram of the state variables of a receiver in a conventional technology, and Figure 11 is a schematic diagram of the state variables of a receiver in a conventional technology.
[0184] Step 16: As shown in Figure 10, when x is less than the RX_Highest_Status status variable, or x is greater than or equal to RX_Next+AM_Window_Size, that is, the receiver window has overflowed, or the poll PDU has been received, the receiver sends a status report to the sender.
[0185] Step 17: As shown in Figure 11, when x is greater than the RX_Highest_Status status variable, the receiver needs to wait for its reassembly timer to time out or determine that the continuous reception of data packets is complete. After the receiver's reassembly timer times out, the receiver determines the reception status of the data packets. Based on the reception status of the data packets, the receiver triggers a status report.
[0186] After receiving the status report, the sending end executes step 18.
[0187] Step 18: The sending end learns about incompletely received data packets based on the NACK message or missing SN number in the status report. The sending end can then trigger retransmission of the corresponding data packets. This ensures the integrity and accuracy of the data.
[0188] Based on the description of the above steps, when x is greater than the RX_Highest_Status status variable, the receiver will not immediately trigger a status report. Instead, there is a delay before the receiver can determine the reception status of the data packet, which delays the triggering of the status report and causes high retransmission latency at the RLC layer.
[0189] Furthermore, even if the sender frequently triggers poll instructions or the receiver promptly triggers status reports, the reception status of data packets cannot be determined, and the problem of high retransmission latency at the RLC layer will still occur.
[0190] One reason for introducing retransmission mechanisms at the RLC layer is to suit services with high latency requirements, such as extended reality (XR) services. However, in traditional technologies, the retransmission latency of the RLC layer is high, which cannot meet the high latency requirements of these services.
[0191] In view of the above problems, this application provides a status report processing method, which can send an enhanced poll instruction by the sending end for data packets with long transmission time, so that the receiving end can trigger the enhanced status report in a timely manner, enabling the sending end to quickly retransmit the data packet and reduce the retransmission latency of the RLC layer.
[0192] In this context, "enhanced poll" is understood as enhanced polling for data packets with longer transmission times. The term "polling" in this application can also be understood as querying or probing, in addition to round-robin polling. Enhanced polling indicates probing the reception status of data packets with longer transmission times.
[0193] Below, the following embodiments of this application will take the transmitting end and receiving end with the structure shown in FIG5 as examples, and in conjunction with the accompanying drawings and application scenarios, elaborate on the status report processing method provided by this application.
[0194] Please refer to Figure 12, which is a signaling interaction diagram of a status report processing method provided in an embodiment of this application. As shown in Figure 12, the status report processing method provided in this application may include:
[0195] S101, The sending end sends the first polling information to the receiving end.
[0196] The first round of polling information is used to inquire about the reception status of the delay-critical data packet corresponding to the first sequence number, where the remaining time of the delay-critical data packet is less than the transmission threshold.
[0197] In one possible implementation, when the sending end includes a delayed key data packet, it is not necessary to determine the reception status of the delayed key data packet. The delayed key data packet can be transmitted or retransmitted directly. After transmitting or retransmitting the delayed key data packet, a first polling message can be sent to obtain the reception status of the transmitted or retransmitted delayed key data packet.
[0198] The remaining time of a data packet is related to the efficiency and reliability of data transmission. The remaining time of a data packet typically refers to the remaining duration within a specific time limit during which the data packet can be successfully transmitted and processed.
[0199] For example, in the event of network congestion, if the remaining time of a data packet is too short, the packet may be dropped and fail to be transmitted successfully, thus affecting the integrity and accuracy of the data.
[0200] Generally, the sender identifies the delayed critical data packet as a PDCP entity. The PDCP entity determines whether a data packet is delayed critical based on the duration of its corresponding discard timer. For example, if the discard timer has a duration of 10ms and has run for 5ms, then 5ms remain. If the transmission threshold is 5ms, then the data packet is a delayed critical data packet.
[0201] Alternatively, the delay-critical packet may include a PDU-set discard configuration, which indicates PDU-set-based discarding, meaning that discarding one packet in a PDU-set will result in the discarding of all other packets in that PDU-set. If the aforementioned configuration is present, the delay-critical packet belongs to a PDU-set and at least one packet within that PDU-set has a remaining time less than a transmission threshold.
[0202] The sending end can use various methods to determine whether a data packet is a delay-critical data packet.
[0203] In one scenario, the PDCP layer at the sending end can indicate the remaining time of a data packet to the RLC layer at the sending end, or directly indicate that the data packet is a delay-critical data packet, which facilitates the RLC layer in planning and managing the data packet transmission strategy.
[0204] In another scenario, the RLC layer introduces a timer. When a data packet is received, the timer is started. If the timer expires or the remaining runtime is less than the transmission threshold, the data packet is determined to be a delay critical data packet or a delay critical data packet belonging to a PDU set and at least one data packet in that PDU set has a remaining time less than the threshold value.
[0205] Based on the above description, data packets can be divided into two types according to the remaining time: delayed critical data packets and non-delayed critical data packets. Delayed critical data packets refer to data packets with remaining time less than the transmission threshold, while non-delayed critical data packets refer to data packets with remaining time greater than or equal to the transmission threshold.
[0206] The transmission threshold can be set by considering factors such as the network performance of the sending and receiving ends and the actual network conditions. This application does not limit the value of the transmission threshold.
[0207] Compared to non-delayed critical packets, delayed critical packets have shorter remaining time, more urgent transmission needs, and a higher probability of being dropped. In other words, the transmission and processing of delayed critical packets typically need to be faster, and the number of retransmissions needs to be increased.
[0208] The RLC layer can determine whether a data packet is a delay-critical packet or a non-delay-critical packet. Therefore, for delay-critical packets, the RLC layer's retransmission mechanism can be adjusted or optimized to ensure that delay-critical packets are transmitted as quickly as possible.
[0209] Therefore, the RLC layer at the sending end can perform enhanced polling of delayed critical data packets, which can only probe the reception status of delayed critical data packets instead of probing the reception status of all types of data packets. This can effectively and timely trigger the status report at the receiving end, and can also quickly determine whether delayed critical data packets need to be retransmitted, and can retransmit delayed critical data packets in a timely manner when retransmission is required.
[0210] Therefore, the sending end can send the first polling information to the RLC layer of the receiving end, and use the first polling information to inquire about the reception status of the delayed key data packet corresponding to the first sequence number. This can effectively and timely trigger the receiving end to report the status of the delayed key data packet corresponding to the first sequence number.
[0211] Here, the delayed key data packet corresponding to the first sequence number refers to the delayed key data packet associated with the first sequence number. The number of first sequence numbers can be one or more serial numbers (SNs). In some examples, the first sequence number may be carried in the first polling information.
[0212] S102. The receiving end triggers the first status report based on the first polling information.
[0213] Upon receiving the first polling information, the receiving end can ascertain that the sending end is only inquiring about the reception status of the delayed critical data packet corresponding to the first sequence number. Since the remaining time for the delayed critical data packet is short, it needs to be transmitted and processed as quickly as possible. Therefore, the receiving end can quickly determine the reception status of the delayed critical data packet corresponding to the first sequence number. Consequently, the receiving end can promptly trigger the first status report, enabling the sending end to quickly determine whether to retransmit the delayed critical data packet, and to retransmit it promptly if necessary.
[0214] The first status report is used to indicate the reception status of the delayed critical data packet corresponding to the first sequence number. This application does not limit the specific implementation of the first status report.
[0215] The status report processing method provided in this application involves the sender sending a first polling message to the receiver to inquire only about the reception status of the delayed critical data packet corresponding to the first sequence number, rather than inquiring about the reception status of all types of data packets corresponding to the first sequence number. Based on the first polling message, the receiver can quickly determine the reception status of the delayed critical data packet corresponding to the first sequence number. Therefore, the receiver can trigger a first status report, enabling the sender to promptly determine whether to retransmit the delayed critical data packet and, if retransmission is necessary, to send the required retransmission data packet as quickly as possible. This reduces retransmission latency at the RLC layer and ensures data integrity and accuracy.
[0216] Based on the description of the above embodiments, after executing S102, the receiving end can determine the reception status of the delayed key data packet corresponding to the first sequence number. If it is necessary to retransmit the delayed key data packet, or if the reception status of the delayed key data packet corresponding to the first sequence number has been confirmed, the receiving end can send a first status report to the sending end. Therefore, the sending end can determine whether it is necessary to retransmit the delayed key data packet based on the first status report and the actual transmission status of the data packet.
[0217] In the first status report, the NACK message for a data packet can be used to indicate that the data packet was not fully received or was dropped. The ACK message for a data packet in the first status report can be used to indicate that the data packet was fully received.
[0218] In one implementation, the NACK message of the data packet in the first status report does not indicate that the data packet needs to be retransmitted. Whether the data packet needs to be retransmitted can be determined based on the sender's decision.
[0219] In some instances, if the first status report indicates that the reception status of the data packet is NACK and the data packet is a delay-critical data packet, the sender can send the data packet to the receiver.
[0220] If the first status report indicates that the data packet's reception status is NACK, and the data packet is not a delay-critical data packet, then the sender does not need to perform the operation of sending the data packet, that is, it does not need to retransmit the data packet.
[0221] In one implementation, the NACK message of the data packet in the first status report indicates that the data packet needs to be retransmitted. After the sending end determines that the status of the data packet is NACK, it needs to retransmit the data packet.
[0222] Based on the description of the above embodiments, in S101, for delayed critical data packets, the sending end can send first polling information to the receiving end according to the network configuration or the rules predefined by the protocol, which can realize enhanced polling of delayed critical data packets.
[0223] When the first polling message's data packet format is a control data packet, the sending end can trigger enhanced poll first, and then send the first polling message to the receiving end. When the first polling message's data packet format is a data data packet, the sending end does not need to trigger enhanced poll and can directly send the first polling message to the receiving end.
[0224] In this context, network configuration refers to the ability of network devices to pre-configure the conditions for enhanced poll. Protocol predefined rules refer to the conditions for enhanced poll that can be pre-defined within the protocol.
[0225] This application does not limit the specific implementation method of the enhanced poll conditions.
[0226] As a feasible implementation, the conditions for enhancing poll are: the number of bytes of newly generated delayed critical data packets is greater than the first threshold, or the number of newly generated delayed critical data packets is greater than the second threshold.
[0227] The first threshold is the number of bytes required to trigger polling after delaying critical data packets. The second threshold is the number of data packets required to trigger polling after delaying critical data packets. Both thresholds can be determined based on network configuration or predefined rules in the protocol.
[0228] In some examples, network configurations or protocol-predefined rules can configure enhanced pollbytes or enhanced pollPDUs to indicate the conditions for enhanced polling described above. Specifically, enhanced pollbytes indicate a first threshold of the number of bytes required to trigger enhanced polling for delayed critical packets. Enhanced pollPDUs indicate a second threshold of the number of packets required to trigger enhanced polling for delayed critical packets.
[0229] The newly generated delayed critical data packets are those generated after the previous polling information was sent following the first polling information. The previous polling information refers to the polling information preceding the first polling information. The previous polling information can be the polling information triggered when the sender triggers enhanced polling, or it can be the polling information triggered when the sender triggers traditional (Legacy) polling. Enhanced polling can be understood as the sender probing the reception status of delayed critical data packets. Triggering Legacy polling can be understood as the sender probing the reception status of all types of data packets.
[0230] For example, assuming that the delayed critical data packets with SN numbers 1, 2, and 3 have already sent the first round of polling information, and the second threshold is configured as 4, then when all data packets with SN numbers 4, 6, 7, and 9 become delayed critical data, the sender can send the first round of polling information to the receiver.
[0231] As another feasible implementation, the condition for enhancing poll is: after the sender has transmitted the data packet, the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to send.
[0232] As another feasible implementation, the conditions for enhancing poll are: the data packets transmitted by the sender are delay-critical data packets, and both the sender's transmission buffer and retransmission buffer are empty or there are no new data packets to be sent. Here, "no new data packets to be sent" mentioned in this application can be understood as no data packets needing to be newly sent and no data packets needing to be retransmitted. Similar interpretations of the same content will not be repeated below.
[0233] As another feasible implementation, the conditions for enhancing poll are: after the sender has transmitted the data packet, the data packet transmitted by the sender is a delayed critical data packet, and the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to be sent.
[0234] As another feasible implementation, the conditions for enhancing poll are: the data packets transmitted by the sender are delay-critical data packets, and the data packets in the sender's transmission buffer and retransmission buffer do not include delay-critical data packets or the new data packets are not delay-critical data packets.
[0235] As another feasible implementation, enhanced poll is achieved when a new delayed critical data packet is generated. When the second threshold is set to 1, both feasible implementations are the same; both can be understood as achieving enhanced poll for delayed critical data packets as soon as they are generated. For example, if a data packet with SN number 1 is a delayed critical data packet and has been sent in the first poll, and after a period of time, a data packet with SN number 5 becomes a delayed critical data packet, then this data packet is a newly generated delayed critical data packet after the data packet with SN number 1.
[0236] The aforementioned delayed critical data packets are all data packets that have already been delivered to the bottom layer.
[0237] In summary, if any of the above conditions for enhanced poll are met, the sender can send the first polling information to the receiver.
[0238] In this context, the first sequence number corresponding to the first poll message must be up-to-date. When the data packet format of the first poll message is a data packet, since the data packet is sent directly, the first sequence number is the latest sequence number. When the data packet format of the first poll message is a control packet, due to a certain delay before sending the first poll message, the sending end needs to determine that the first sequence number is the latest sequence number. For example, in the case of triggering a control poll, if the SN number of the delayed critical data packet is 5, and a new delayed critical data packet with SN number 7 is generated when the transmission opportunity is received, then the first poll message needs to include the relevant information of the delayed critical data packets with SN number 7 and earlier.
[0239] Based on the description of the above embodiments, after sending the first polling information, the sending end may not receive the status report from the receiving end. In this case, the sending end can resend the first polling information, which can quickly probe the reception status of only the delayed critical data packets again, enabling the receiving end to trigger the status report in a timely manner.
[0240] As one possible implementation, after sending the first polling message, the sending end can start its own retransmission timer. This retransmission timer can be a reused version of the retransmission timer used for Legacy poll. That is, the retransmission timer can be used for both Legacy poll and enhanced poll. Alternatively, the sending end's retransmission timer can be a newly added retransmission timer used only for enhanced poll.
[0241] Furthermore, the retransmission timer at the sending end is set to the first duration corresponding to the first polling information. This first duration can be set based on factors such as the network performance of the sending and receiving ends and the actual network conditions; this application does not impose a limit on the value of the first duration.
[0242] If the retransmission timer of the sending end does not time out within the first time period corresponding to the first round of query information, and the first status report includes the reception status of the delayed key data packet corresponding to the first sequence number, then the sending end can stop the retransmission timer of the sending end.
[0243] Therefore, the sending end can accurately and quickly determine whether to trigger the retransmission of the delayed critical data packet based on the first status report, and can promptly retransmit the delayed critical data packet to the receiving end when retransmission is required.
[0244] If the first duration corresponding to the first polling information, i.e., the retransmission timer of the sending end, expires, and the following conditions are met: no first status report is received, or the sending end's transmission buffer and retransmission buffer are both empty or there are no new data packets to be sent, or the sending end's transmission buffer and retransmission buffer include at least one of the delayed key data packets, then the sending end may send the delayed key data packet or all data packets before the SN number of the latest delayed key data packet to the receiving end, and / or the sending end may retransmit the first polling information to the receiving end.
[0245] When the first poll message's data packet format is a control data packet, the sending end can trigger enhanced poll and then resend the first poll message to the receiving end. When the first poll message's data packet format is a data data packet, the sending end does not need to trigger enhanced poll and can directly resend the first poll message to the receiving end.
[0246] Specifically, the first sequence number corresponding to the retransmitted first round of polling information must also be up-to-date. When the data packet format of the first round of polling information is a data packet, since the data packet is sent directly, the first sequence number is the latest sequence number. When the data packet format of the first round of polling information is a control packet, due to a certain delay before sending the first round of polling information, the sending end needs to determine that the first sequence number is the latest sequence number.
[0247] During this process, new delayed critical data packets may be generated, and / or the reception status of delayed critical data packets may change, causing the first sequence number to change.
[0248] Based on this, in one feasible implementation, the sender can determine the first data packet and submit it to the underlying layer of the sender to update the sender's state variables. Thus, by using the updated sender state variables, it ensures that the first sequence number is updated to the latest sequence number, which helps to accurately determine whether the conditions for enhanced poll are met and to send the first delay information in a timely manner. It also allows for querying only the reception status of the latest serial number's delay-critical data packet, enabling the receiver to trigger a status report promptly.
[0249] The first data packet may include at least one of the following: the data packet corresponding to the first sequence number, the data packet for which no acknowledgment has been received before the first sequence number, or all delay-critical data packets submitted to the underlying layer of the sending end.
[0250] Based on this, in another feasible implementation, the sending end can update the first sequence number and send a first polling message to the receiving end. The aforementioned first polling message is used to inquire about the reception status of the delayed critical data packet corresponding to the updated first sequence number. Thus, it is possible to inquire only about the reception status of the delayed critical data packet with the latest SN number, enabling the receiving end to trigger a status report in a timely manner.
[0251] In addition to implementing the two feasible methods mentioned above separately, the sending end can also implement both feasible methods simultaneously.
[0252] In summary, by using the first sequence number for timely updates, the sending end can query the reception status of delayed critical data packets with the latest SN number, enabling the receiving end to trigger a status report in a timely manner.
[0253] Based on the description of the above embodiments, in addition to implementing enhanced polling of critical data packets with delay, the sending end can also implement legacy polling of data packets.
[0254] As one possible implementation, before executing S101 and / or after executing S102, the sending end may send a second polling message to the receiving end.
[0255] The second polling information is used to inquire about the reception status of the data packet corresponding to the second sequence number. The data packet corresponding to the second sequence number has not been sent with the corresponding first polling information. In other words, the sender has not sent the first polling information for the data packet corresponding to the second sequence number, meaning the sender has not implemented enhanced polling for the data packet corresponding to the second sequence number.
[0256] The second sequence number is either the highest sequence number of the data packet submitted to the underlying layer of the sending end, or the second sequence number includes the sequence numbers of all data packets submitted to the underlying layer of the sending end.
[0257] In some instances, the data packet format for the second polling message is typically a data packet; therefore, the sender can directly resend the second polling message to the receiver.
[0258] In summary, by utilizing the information from the second round of polling, the sender can inquire about the reception status of the data packet corresponding to the second sequence number. Therefore, the sender can either inquire about the reception status of only delayed critical data packets, or it can inquire about the reception status of all types of data packets, thus combining the advantages of legacy polling and enhanced polling.
[0259] Based on the above description, for data packets, the sending end can send a second round of polling information to the receiving end according to the conditions of Legacy polling, which can realize Legacy polling of data packets.
[0260] This application does not limit the specific implementation of the conditions for Legacy poll.
[0261] As a feasible implementation method, the conditions for Legacy poll are: the number of bytes of the newly sent data packet is greater than or equal to the third threshold, or the number of data packets of the newly sent data packet is greater than or equal to the fourth threshold, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sending end has not sent the corresponding first polling information.
[0262] The third threshold is the number of bytes required for a data packet to trigger polling. The fourth threshold is the number of data packets required for a data packet to trigger polling.
[0263] In some examples, network configurations or protocol predefined rules can be configured with Legacy pollbyte or Legacy pollPDU to indicate the conditions for Legacy polling mentioned above. Legacy pollbyte indicates the third threshold of the number of bytes a packet must trigger Legacy polling. Legacy pollPDU indicates the fourth threshold of the number of packets a packet must trigger Legacy polling.
[0264] As another feasible implementation, the conditions for Legacy poll are: after the sender has transmitted the data packet, both the sender's transmission buffer and retransmission buffer are empty, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sender has not sent the corresponding first polling information.
[0265] As another feasible implementation, the conditions for Legacy poll are: after the sender has transmitted the data packet, there are no new data packets to send, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sender has not sent the corresponding first polling information.
[0266] In summary, if any of the conditions for Legacy polling mentioned above are met, the sender can send a second polling message to the receiver.
[0267] When the first sequence number matches the second sequence number, the data packets for Legacy poll and enhanced poll are identical. Therefore, the sender can send the first polling information to the receiver.
[0268] In some examples, the sender can perform an enhanced poll on the data packet corresponding to the first sequence number, that is, modify the sender's state variables involved in the enhanced poll to update the first sequence number. Since the data packet probed by the second poll is the same as the data packet probed by the first poll, the sender can send the first poll to the receiver without needing to send the second poll.
[0269] In other examples, the sender can perform enhanced poll and legacy poll on the data packets corresponding to the first sequence number. This involves modifying the sender's state variables related to enhanced poll to update the first sequence number, and modifying the sender's state variables related to legacy poll to update the second sequence number. This avoids the frequent sending of second-round polling information caused by the accumulation of data packets consistently meeting the legacy polling conditions. Since the data packets probed by the second-round polling information are the same as those probed by the first-round polling information, the sender can send the first-round polling information to the receiver without needing to send the second-round polling information.
[0270] In summary, by leveraging the higher priority of enhanced poll compared to legacy poll, the sender can quickly probe the reception status of delayed critical data packets, enabling the receiver to trigger a status report in a timely manner.
[0271] Based on the description of the above embodiments, the first state variable is the highest sequence number that the first state report needs to be constructed. In some examples, the first state variable can be regarded as the RX_Highest_Status state variable.
[0272] Based on this, in S102, the receiving end can compare the first sequence number with the first state variable.
[0273] If the first sequence number is less than or equal to the first state variable, the receiving end can trigger a first state report based on the first polling information. The first sequence number is either the highest sequence number corresponding to the sender's delayed critical data packet, or a sequence number following the highest sequence number corresponding to the sender's delayed critical data packet, such as the next sequence number or a subsequent sequence number.
[0274] The first status report includes the reception status of all data packets between the fourth status variable and the first status variable. The fourth status variable is the sequence number after the sequence number of the latest fully received data packet in sequence, such as the next sequence number or a subsequent sequence number.
[0275] Please refer to Figure 13, which is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application. In Figure 13, the first sequence number is illustrated using poll SN.
[0276] As shown in Figure 13, the fourth state variable is the RX_Next state variable, and the first state variable is the RX_Highest_Status state variable. The first state report includes the reception status of all data packets between the RX_Next state variable and the poll SN.
[0277] If the first sequence number is greater than the first state variable, the receiving end can trigger the first state report based on the first polling information.
[0278] The receiving end can use a variety of feasible implementation methods to trigger the first status report.
[0279] As a feasible implementation, if the first sequence number is greater than the first state variable, the receiver can modify the state variable. Furthermore, if the receiver determines that the probe packet has not been received repeatedly, and the sequence number of the probe packet is greater than or equal to the first state variable, and the sequence number of the probe packet is less than the Xth state variable, the receiver can modify the state variable, where the Xth state variable indicates the upper limit of the receiver's receiving window.
[0280] Therefore, the receiving end can update the first state variable to the second sequence number based on the first sequence number.
[0281] The second sequence number is the sequence number corresponding to the incompletely received data packet after the first sequence number. For example, it can be the SN number corresponding to the first incompletely received data packet after the first sequence number.
[0282] Alternatively, the second sequence number is the next sequence number after the sum of the first sequence number and the sequence number of the first data packet that was not fully received before the first sequence number.
[0283] For example, the first sequence number is represented by poll SN. The sequence number of the first data packet that is not completely received after the first sequence number is i, where i can be an integer greater than or equal to 0. Then, the second sequence number is poll SN+i+1, and the first state variable is the RX_Highest_Status state variable, which is then updated to poll SN+i+1.
[0284] Please refer to Figures 14 and 15-16. Figure 14 is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application; Figure 15 is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application; and Figure 16 is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application. In Figures 14, 15, and 16, the first sequence number is illustrated using poll SN.
[0285] As shown in Figure 14, the RX_Highest_Status status variable is the first status variable before the update.
[0286] As shown in Figures 15 and 16, the RX_Highest_Status status variable is the updated first status variable, i.e., the second sequence number.
[0287] In some instances, the updated first state variable may be greater than, or less than, the second state variable. The second state variable is the sequence number following the sequence number of the data packet that triggered the receiver's reassembly timer, such as the next sequence number or some subsequent sequence number. That is, when RX_Next_Highest is greater than RX_Next, the reassembly timer is started and RX_Next_Status_Trigger is updated to RX_Next_Highest.
[0288] Therefore, the receiving end can compare the updated first state variable with the second state variable.
[0289] If the updated first state variable is less than or equal to the second state variable, the receiver may not perform any operation.
[0290] As shown in Figure 15, the second state variable is the RX_Next_Status_Trigger state variable.
[0291] If the updated first state variable is greater than the second state variable, the receiving end can update the second state variable to the third state variable.
[0292] If the updated first state variable is greater than the second state variable, the receiver can start its reassembly timer to monitor the third state variable.
[0293] The third state variable is the next sequence number after the highest sequence number in the received data packet.
[0294] In addition to updating the second state variable and starting the reassembly timer at the receiving end, the receiving end can both update the second state variable and start the reassembly timer at the receiving end.
[0295] As shown in Figure 16, the second state variable is the RX_Next_Status_Trigger state variable. The third state variable is the RX_Next_Highest state variable.
[0296] Furthermore, the receiving end can send a first status report to the sending end.
[0297] In some instances, the first state report may include the reception status of all data packets from the fourth state variable to the updated first state variable.
[0298] As shown in Figures 15 and 16, the fourth state variable is the RX_Next state variable, and the RX_Highest_Status state variable is the updated first state variable. The first state report includes the reception status of all data packets between the RX_Next state variable and the RX_Highest_Status state variable.
[0299] Among them, the reception status of all data packets between the first state variable before the update and the first state variable after the update can be regarded as an incomplete reception status.
[0300] As another feasible implementation, if the first sequence number is greater than the first state variable, the receiving end can directly send back the first state report without modifying the state variable.
[0301] The first status report can include various representation methods.
[0302] In some examples, the first status report may include a traditional status report and an enhanced status report. The traditional status report includes the reception status of packets from the fourth status variable to the first status variable, while the enhanced status report includes the reception status of packets from the first status variable to the first sequence number. The fourth status variable is the sequence number following the sequence number of the most recently received, fully ordered packet. In this example, the receiver does not update the first status variable based on the first probing information.
[0303] Please refer to Figure 17, which is a schematic diagram of the state variables of a receiving end provided in an embodiment of this application.
[0304] As shown in Figure 17, the fourth state variable is the RX_Next state variable, and the first state variable is the RX_Highest_Status state variable. The traditional state report includes the reception status of data packets between the RX_Next and RX_Highest_Status state variables, illustrated by R1 in Figure 17. The enhanced state report includes the reception status of data packets between the RX_Highest_Status state variable and the poll SN, illustrated by R2 in Figure 17.
[0305] In other examples, the first status report may include the reception status of all data packets prior to the first sequence number.
[0306] As shown in Figure 17, the first status report can include the reception status of all data packets before poll SN, that is, the reception status of data packets between the RX_NEXT status variable and the first sequence number. R3 is used for illustration in Figure 17.
[0307] In summary, when the first sequence number is greater than the first state variable, the receiver can promptly trigger the first state report, enabling the sender to determine whether a new data packet is needed based on the first state report, effectively reducing the retransmission latency of the RLC layer.
[0308] Wherein, if the first sequence number is greater than the first state variable, the first state report may include: the reception status of the delayed key data packet corresponding to the first sequence number.
[0309] When the first polling information uses control packets, the first sequence number can be the highest sequence number of the underlying delayed critical data packet submitted to the sender. The first polling information is used to explore the reception status of all data packets before the first sequence number.
[0310] In some examples, the first status report may include a third sequence number and a fourth sequence number.
[0311] Among them, the third sequence number is the highest sequence number in the first sequence number that the delayed key data packet was completely received, the fourth sequence number includes all sequence numbers in the first sequence number that the delayed key data packets were not completely received or were discarded, and the reception status of all delayed key data packets before the third sequence number and except for the fourth sequence number is a complete reception status.
[0312] Please refer to Figure 18, which is a schematic diagram of the SN number arrangement of a data packet provided in an embodiment of this application.
[0313] As shown in Figure 18, assuming that data packets with SN numbers 1-4 and data packet with SN number 7 belong to the same PDU set, and this PDU set is dropped, there are intermittent delayed critical data packets among these critical data packets, specifically including: data packet with SN number 1, data packet with SN number 2, data packet with SN number 3, data packet with SN number 4, and data packet with SN number 7.
[0314] For these five delayed critical data packets, the first status report indicates that the SN number is 1 and the range of SN numbers after 1 is 3, and indicates that the SN number is 7.
[0315] Regarding these five critical delay data packets, if the receiving end determines that the completely received critical delay data packets include: the data packet with SN number 1, the data packet with SN number 3, and the data packet with SN number 4, then in the first status report, the third sequence number is 4, and the fourth sequence number includes 2 and 7.
[0316] Specifically, if the sequence numbers included in the fourth sequence number are consecutive, then the data packets that are not fully received or lost can be indicated by the SN number indicating whether they are consecutive data packets and the number of consecutive data packets.
[0317] Based on the description of the above embodiments, the meaning of the first sequence number is different, and the delayed key data packets explored by the first polling information are different.
[0318] In some instances, the first polling information can be used to probe the reception status of all data packets up to the first sequence number, which is the highest sequence number of the underlying delayed critical data packets submitted to the sender.
[0319] The data packet format for the first round of polling information can include a variety of possible implementations.
[0320] As one possible implementation, the first polling information may include at least: a first field and a second field.
[0321] The first field indicates the information for the first poll, and the second field indicates the first sequence number.
[0322] Since the data packet corresponding to the first sequence number can be segmented, the first polling information, in addition to including the first and second fields, can also be represented in the following way.
[0323] In some examples, the first polling information may also include at least one of the third, fourth, or fifth fields.
[0324] The third field indicates that the data packet corresponding to the first sequence number is a segmented data packet, the fourth field indicates the byte position at the beginning of the segment, and the fifth field indicates the byte position at the end of the segment.
[0325] In other words, in addition to the first and second fields, the first polling information may also include a third, fourth, and fifth field, which can indicate that the data packet corresponding to the first sequence number being probed is a segmented data packet, and that the segmented data packet needs to be probed from the byte position indicated by the fourth byte to the byte position indicated by the fifth field.
[0326] Alternatively, in addition to the first and second fields, the first polling information may also include a third and a fourth field, which can indicate that the data packet corresponding to the first sequence number being explored is a segmented data packet, and that the segmented data packet and the data packets preceding the segmented data packet need to be explored.
[0327] Alternatively, in addition to including the first and second fields, the first polling information may also include only the fifth field, namely the position of the last byte. This fifth field can indicate that all bytes before the last byte have been sent, thus indicating that the polling of the delayed key data packet corresponding to the first sequence number has reached the position of that byte.
[0328] Alternatively, in addition to including the first and second fields, the first polling information may also include only the fourth field, which indicates the byte position of the segmented data packet in the original data packet. This fourth field represents the start byte of the probed original data packet segment and can indicate: to probe the segmented data packet and the data packets preceding the segmented data packet. Since the segmented data packet received by the receiving end is included in the byte position of the original data packet, the receiving end can compare the byte position of the received data packet segment with the byte position of this field to determine the reception status of the segmented data packet and the data packet segments preceding the segmented data packet.
[0329] Based on this, the function of the first polling information may include, for example, instructing the receiver to return the reception status of all data packets prior to that sequence number by indicating the highest sequence number of the underlying delayed critical data packet submitted to the sender, so that the sender can determine whether to retransmit the data packet and retransmit the data packet when transmission is required.
[0330] In other examples, the first field is also used to indicate that the delayed critical data packet corresponding to the first sequence number is a segmented data packet, and the first polling information may also include: a third field and / or a fourth field.
[0331] The third field indicates the byte position at the beginning of the segment, and the fourth field indicates the byte position at the end of the segment.
[0332] In other words, in addition to including the first field and the second field, the first field is also used to indicate that the delayed key data packet corresponding to the first sequence number is a segmented data packet. The first polling information may also include: a third field, which can indicate that the data packet corresponding to the first sequence number being explored is a segmented data packet, and that the segmented data packet and the data packets preceding the segmented data packet need to be explored.
[0333] Alternatively, the first polling information may also include a fourth field that indicates that the delayed critical data packet corresponding to the first sequence number being probed is a segmented data packet, and that the probe of the data packet corresponding to the first sequence number has reached the byte position.
[0334] Alternatively, the first polling information may also include: a third field and a fourth field that indicate: the delayed critical data packet corresponding to the first sequence number being probed is a segmented data packet, and that the segmented data packet needs to be probed from the byte position indicated by the third byte to the byte position indicated by the fourth field.
[0335] Based on this, the function of the first polling information may include, for example, instructing the receiver to return the reception status of all data packets prior to that sequence number by indicating the highest sequence number of the underlying delayed critical data packet submitted to the sender, so that the sender can determine whether to retransmit the data packet and retransmit the data packet when transmission is required.
[0336] In other instances, the first polling information can be used to inquire about the reception status of the delayed critical data packet corresponding to the first sequence number, which indicates the sequence number of all delayed critical data packets submitted to the underlying layer of the sender.
[0337] The data packet format for the first round of query information can include a variety of feasible implementation methods.
[0338] As one possible implementation, the first polling information may include at least: a first field and a second field.
[0339] The first field indicates the first polling information, and the second field indicates the first sequence number. Since the data packet corresponding to the first sequence number may contain consecutive data packets, the first polling information, based on the first and second fields, can be represented as follows.
[0340] In some examples, the first polling information may also include at least one of the third, fifth, sixth, or seventh fields.
[0341] The third field indicates whether the data packets are continuous, the fifth field indicates that the first polling information is a segmented data packet, the sixth field indicates the byte position at the beginning of the segment, and the seventh field indicates the byte position at the end of the segment.
[0342] Additionally, in some examples, the first polling information may also include a fourth field.
[0343] The fourth field is used to indicate the number of consecutive data packets.
[0344] In other words, in addition to including the first and second fields, the first polling information may also include only one of the third, fifth, sixth, or seventh fields.
[0345] Alternatively, the first round of query information may also include some or all of the third, fifth, sixth, or seventh fields.
[0346] Alternatively, the first polling information may also include a fourth field. Thus, the first polling information can be used to indicate whether there are consecutive data packets in the data packet corresponding to the first sequence number, and which data packets need to be polled.
[0347] Based on this, the function of the first polling information may include, for example, instructing the receiver to return the reception status of all delayed critical data packets submitted to the underlying layer of the sender, so that the sender can determine whether to retransmit the data packets and retransmit the data packets when transmission is required.
[0348] Of the two possible implementation methods mentioned above, the first method mainly considers segmenting the data packet corresponding to the first sequence number, while the second method mainly considers that the data packet corresponding to the first sequence number may contain consecutive data packets.
[0349] In addition to the two possible implementations mentioned above, the first polling information can also be represented in other ways. In some instances, in addition to including the first and second fields, the first polling information can also include a tenth field, which is used to indicate the complete sequence numbers of the delayed critical data packets corresponding to the first sequence number.
[0350] For example, the complete sequence numbers of the delayed critical data packets corresponding to the first sequence number include: 1-4 and 7. Using the second method, the fields in the first polling information can indicate SN number 1 and the range of SN numbers following 1 up to 3, as well as specifically indicate SN number 7. Using another method, the fields in the first polling information can indicate SN numbers 1-4 and 7.
[0351] In summary, the data packet formats of the first round of queries are rich and diverse, which can meet various data packet transmission requirements.
[0352] Based on the description of the above embodiments, when the first polling information is used to inquire about the reception status of all data packets before the first sequence number, or the reception status of the delayed key data packet corresponding to the first sequence number, the first polling information can be a control data packet or a data data packet.
[0353] In some examples, the first polling information may also include an eighth field, which indicates whether the first polling information uses a control packet or a data packet.
[0354] The eighth field can be indicated using 1 bit or more bits.
[0355] In some examples, the eighth field is used to indicate that the first round of polling information uses a data packet. The first round of polling information may also include a ninth field, which is used to indicate that a second round of polling information is to be performed.
[0356] The receiving end can combine at least one of the following factors: field priority, field type in the first round of polling information, and field length in the first round of polling information, to determine whether to perform enhanced poll, legacy poll, or both enhanced poll and legacy poll.
[0357] If the priority of the first field is higher than that of the ninth field, the receiving end can determine whether to perform enhanced poll, legacy poll, or both based on the first field, without needing to consider the specific settings of the ninth field.
[0358] For example, if the length of the first field is 1 bit, setting the first field to 1 will result in an enhanced poll. If the first field is 0, a legacy poll will be performed. Similarly, if the length of the first field is 2 bits, setting the first field to 01 will result in an enhanced poll. If the first field is 00, a legacy poll will be performed.
[0359] If the priority of the ninth field is higher than that of the first field, the receiving end can determine whether to perform enhanced poll or legacy poll based on the first or ninth field.
[0360] For example, if the first field is set to 1 and the ninth field is set to 1, the receiving end can determine to perform a legacy poll based on the ninth field. If the first field is set to 1 and the ninth field is set to 0, the receiving end can determine to perform an enhanced poll based on the first field.
[0361] The data packet format of the first round of polling information will be described in detail below with reference to Figures 19-30.
[0362] Please refer to Figures 19-30, which are schematic diagrams illustrating a data packet format for first polling information provided in an embodiment of this application. In Figures 19, 21, 23, 25, 27, and 29, the first polling information is 12 bits. In Figures 20, 22, 24, 26, 28, and 30, the first polling information is 18 bits. Additionally, the R field is a reserved field. The Data field is used to store data.
[0363] When the data packet format of the first round of query information can be a control data packet, and the first round of query information is used to query the reception status of all data packets before the highest SN number of the delay critical data packet, the data packet format of the first round of query information is illustrated with reference to Figures 19-24.
[0364] As shown in Figures 19 and 20, the first round of query information is not segmented. The first round of query information includes: the first field, the second field, and the eighth field.
[0365] The first field is the CPT field, which indicates an enhanced poll. In some instances, the CPT field may use a reserved value. The second field is the SN field, which indicates the first sequence number. The eighth field is the D / C field, which indicates that the first polling information uses a control packet.
[0366] As shown in Figures 21 and 22, the first round of query information is segmented. The first round of query information includes: the first field, the second field, the third field, the fourth field, the fifth field, and the eighth field.
[0367] The poll consists of eight fields: First, the CPT field, indicating an enhanced poll. In some instances, the CPT field may use a reserved value. Second, the SN field, indicating the first sequence number. Third, the S field, indicating that the first poll message is a segmented packet. Fourth, the SO start field, indicating the starting byte position of the first poll message segment. Fifth, the SO end field, indicating the ending byte position of the first poll message segment. If there is no SO end field after the SO start field, the segment is considered the last segment. Eighth, the D / C field, indicating that the first poll message uses a control packet.
[0368] As shown in Figures 23 and 24, the first round of query information is segmented. The first round of query information includes: the first field, the second field, the third field, the fourth field, and the eighth field.
[0369] The first field is the CPT field, which indicates an enhanced poll and also indicates that the first polling message is a segmented data packet. In some instances, the CPT field can use a reserved value. The second field is the SN field, which indicates the first sequence number. The third field is the SO start field, which indicates the byte position at which the first polling message segment begins. The fourth field is the SO end field, which indicates the byte position at which the first polling message segment ends. If there is no SO end field after the SO start field, the segment is considered the last segment. The eighth field is the D / C field, which indicates that the first polling message uses a control data packet.
[0370] When the data packet format of the first round of query information can be a control data packet, and the first round of query information is used to explore the reception status of all delayed critical data packets, the data packet format of the first round of query information is illustrated with reference to Figures 25 and 26.
[0371] As shown in Figures 25 and 26, the first round of query information includes: the first field, the second field, the third field, the fourth field, the fifth field, the sixth field, the seventh field, and the eighth field.
[0372] The poll consists of eight fields: First, the CPT field, indicating an enhanced poll. In some instances, the CPT field may use a reserved value. Second, the SN field, indicating the first sequence number. Third, the S1 field, indicating whether the packets following the first sequence number are consecutive. When the S1 field is set to 1, a fourth field exists: the SN range field, indicating the sequence number range of consecutive packets. Fifth, the S2 field, indicating that the first poll message is a segmented packet. Sixth, the SO start field, indicating the starting byte position of the first poll message segment. Seventh, the SO end field, indicating the ending byte position of the first poll message segment. If there is no SO end field after the SO start field, the segment is considered the last segment. Eighth, the D / C field, indicating that the first poll message uses control packets.
[0373] When the data packet format for the first round of query information can be a data packet, the data packet format for the first round of query information is illustrated with reference to Figures 27-30.
[0374] As shown in Figures 27 and 28, the first round of query information includes: the first field, the second field, and the eighth field.
[0375] The first field is the E field, which indicates enhanced poll. In some instances, when the E field is set to 1, enhanced poll is indicated. The second field is the SN field, which indicates the first sequence number. The eighth field is the D / C field, which indicates that the first polling information uses a control packet.
[0376] As shown in Figures 29 and 30, the first round of information includes: the first field, the second field, and the eighth field.
[0377] The first field is the EP field, which indicates enhanced poll and / or legacy poll. The EP field can be 00, 01, 10, or 11. In some instances, when the EP field is set to 00, it indicates legacy poll; when EP is set to 01, it indicates enhanced poll; and when EP is set to 11, it indicates both legacy poll and enhanced poll. The second field is the SN field, which indicates the first sequence number. The eighth field is the D / C field, which indicates that the first polling information uses a control packet.
[0378] Specifically, when the data packet format for the first round of query information can be a data packet, and the first round of query information is a segmented data packet, the corresponding modifications can be made according to the aforementioned content; no examples are provided here. Generally, the data packet header is not easily modified, so it is better to use a control data packet for the first round of query information.
[0379] The following, with reference to Figures 31 and 32, illustrates the specific implementation of the status report processing method of this application.
[0380] Please refer to Figures 31 and 32, which are schematic flowcharts illustrating a status report processing method provided in an embodiment of this application. In Figure 31, the sending end is a terminal device, and the receiving end is a network device. In Figure 32, the receiving end is a terminal device, and the sending end is a network device.
[0381] As shown in Figure 31, the status report processing method provided in this application may include:
[0382] S200 and terminal devices can obtain one of enhanced pollbyte, enhanced pollPDU, Legacy pollbyte, or Legacy pollPDU based on network configuration or protocol predefined rules.
[0383] When the conditions for Legacy poll are met, the terminal device may execute S201. When the conditions for enhanced poll are met, or when the first serial number matches the second serial number, the terminal device may execute S202.
[0384] S201. The terminal device performs Legacy poll on the data packet corresponding to the second sequence number based on Legacy pollbyte or Legacy pollPDU, and sends the second polling information to the network device.
[0385] S202. The terminal device performs enhanced polling on the delayed key data packet corresponding to the first sequence number based on enhanced pollbyte and enhanced pollPDU, and sends the first polling information to the network device.
[0386] In summary, the sending end can implement legacy polling of data packets and / or enhanced polling of delayed critical data packets based on network configuration or predefined rules of the protocol.
[0387] As shown in Figure 32, the status report processing method provided in this application may include:
[0388] S301. The network device sends the first polling information to the terminal device.
[0389] Correspondingly, the terminal device receives the first polling information sent by the network device.
[0390] When the first sequence number is less than or equal to the first state variable, the terminal device may execute S302. When the first sequence number is greater than the first state variable, the terminal device may execute one of S303, S304, or S305.
[0391] S302. The terminal device sends a first status report, namely Legacy status report 1, to the network device based on the first polling information. The first status report includes the reception status of all data packets between the fourth status variable and the first status variable.
[0392] S303. The terminal device updates the first state variable to the second sequence number according to the first sequence number, and sends a first state report, namely Legacy state report 2, to the network device. The first state report includes the reception status of all data packets between the fourth state variable and the updated first state variable.
[0393] S304. Based on the first polling information, the terminal device sends a first status report to the network device, namely Legacy status report 3 and enhanced status report 1. The first status report includes both the traditional status report and the enhanced status report.
[0394] Among them, Legacy status report 1 in S302, Legacy status report 2 in S303, and Legacy status report 3 in S304 are not the same.
[0395] S305. The terminal device sends a first status report, namely enhanced status report 2, to the network device based on the first polling information. The first status report includes the reception status of all data packets prior to the first sequence number.
[0396] The enhanced status report 1 in S304 and the enhanced status report 2 in S305 are not the same.
[0397] In summary, upon receiving an enhanced poll instruction, if the reception status of the data packet is known, the receiving end can directly trigger a Legacy status report, such as S302. If the reception status of the data packet is not known, the receiving end can immediately trigger an enhanced status report, such as any one of S303, S304, or S305.
[0398] By way of example, this application also provides a communication device.
[0399] Please refer to Figure 33, which is a schematic diagram of the structure of a communication device provided in an embodiment of this application.
[0400] As shown in Figure 33, the communication device 100 can exist independently or be integrated into other devices. It can communicate with the receiving end mentioned above to implement the operation corresponding to the sending end in any of the above method embodiments.
[0401] The communication device 100 may include a transceiver unit 101. The communication device 100 may also include a processing unit. The transceiver unit 101 can implement corresponding communication functions, and the processing unit is used for data processing. The transceiver unit 101 may also be referred to as a communication interface or a communication unit.
[0402] Optionally, the communication device 100 may further include a storage unit, which can be used to store instructions and / or data, and the processing unit can read the instructions and / or data in the storage unit so that the communication device 100 implements the aforementioned method embodiments.
[0403] The communication device 100 can be used to perform the actions performed by the transmitting end in the aforementioned method embodiments. The communication device 100 can be the transmitting end or a component configurable on the transmitting end. The transceiver unit 101 is used to perform the receiving-related operations of the transmitting end in the aforementioned method embodiments, and the processing unit is used to perform the processing-related operations of the transmitting end in the aforementioned method embodiments.
[0404] Optionally, the transceiver unit 101 may include a sending unit and a receiving unit. The sending unit is used to perform the sending operation in the above method embodiments. The receiving unit is used to perform the receiving operation in the above method embodiments.
[0405] It should be noted that the communication device 100 may include a transmitting unit but not a receiving unit. Alternatively, the communication device 100 may include a receiving unit but not a transmitting unit. Specifically, it depends on whether the above-described scheme executed by the communication device 100 includes both transmitting and receiving actions.
[0406] As an example, the communication device 100 is used to perform the actions performed by the transmitting end in the embodiment shown in Figure 12 above.
[0407] The communication device 100 may include a transceiver unit 101.
[0408] The transceiver unit 101 is used to send a first polling information to the receiving end. The first polling information is used to inquire about the reception status of the delayed key data packet corresponding to the first sequence number. The remaining time of the delayed key data packet is less than the transmission threshold. The first polling information is used by the receiving end to trigger a first status report.
[0409] In some embodiments, the transceiver unit is specifically configured to send first polling information to the receiving end when the number of bytes of the newly generated delayed key data packet is greater than a first threshold, or the number of data packets of the newly generated delayed key data packet is greater than a second threshold. The newly generated delayed key data packet is the delayed key data packet generated after the previous polling information of the first polling information is sent. The first threshold is the number of bytes of the delayed key data packet that triggers polling, and the second threshold is the number of data packets of the delayed key data packet that triggers polling.
[0410] Alternatively, after transmitting the data packet, and if the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to send, the first polling information is sent to the receiver.
[0411] Alternatively, if the transmitted data packet is a delayed critical data packet, and the sender's transmission buffer and retransmission buffer are both empty or there are no new data packets to be sent, the first polling information is sent to the receiver.
[0412] Alternatively, if the transmitted data packet is a delay-critical data packet, and the data packets in the sender's transmission buffer and retransmission buffer do not include delay-critical data packets or the new data packet is not a delay-critical data packet, a first polling message is sent to the receiver.
[0413] Alternatively, if the newly generated data packet is a delayed critical data packet, send the first polling information to the receiving end.
[0414] In some embodiments, the transceiver unit is specifically configured to, after sending the first polling information, if no first status report is received after a first time period corresponding to the first polling information, submit a first data packet to the underlying layer of the sending end, and / or send the first polling information to the receiving end. The first data packet includes at least one of the following: a data packet corresponding to the first sequence number, a data packet for which no acknowledgment has been received before the first sequence number, or all delay-critical data packets submitted to the underlying layer of the sending end.
[0415] In some embodiments, the transceiver unit is further configured to send a second polling information to the receiving end. The second polling information is used to inquire about the reception status of the data packet corresponding to the second sequence number. The data packet corresponding to the second sequence number has not been sent with the corresponding first polling information. The second sequence number is the highest sequence number of the data packet submitted to the underlying layer of the sending end, or the second sequence number includes the sequence numbers of all data packets submitted to the underlying layer of the sending end.
[0416] In some embodiments, the transceiver unit is specifically used to send second polling information to the receiver when the number of bytes in the newly sent data packet is greater than or equal to a third threshold, or the number of data packets in the newly sent data packet is greater than or equal to a fourth threshold, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sender has not sent the corresponding first polling information. The third threshold is the number of bytes in the data packet that triggers polling, and the fourth threshold is the number of data packets in the data packet that triggers polling.
[0417] Alternatively, after transmitting the data packet, if the sender's transmission buffer and retransmission buffer are both empty, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sender has not sent the corresponding first polling information, then send the second polling information to the receiver.
[0418] Alternatively, after transmitting the data packet, and if there are no new data packets to send, and the data packet corresponding to the highest sequence number in the underlying data packet submitted to the sending end has not sent the corresponding first polling information, a second polling information is sent to the receiving end.
[0419] In some embodiments, the communication device 100 further includes:
[0420] The processing unit is used to perform enhanced polling on the data packet corresponding to the first sequence number when the first sequence number and the second sequence number are the same;
[0421] The transceiver unit is specifically used to send the first polling information to the receiving end.
[0422] In some embodiments, the transceiver unit is further configured to receive a first status report sent by the receiving end;
[0423] When the first status report indicates that the data packet reception status is incomplete and the data packet is a delay-critical data packet, a data packet is sent to the receiving end;
[0424] Alternatively, if the first status report indicates that the data packet reception status is incomplete and the data packet is not a delay-critical data packet, the operation of sending the data packet is not performed.
[0425] It should be understood that the corresponding processes performed by each unit have been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.
[0426] The processing unit in the preceding embodiments can be implemented by at least one processor or processor-related circuitry. The transceiver unit 101 can be implemented by a transceiver or transceiver-related circuitry. The transceiver unit can also be referred to as a communication unit or communication interface. The storage unit can be implemented by at least one memory.
[0427] By way of example, this application also provides a communication device.
[0428] Please refer to Figure 34, which is a schematic diagram of the structure of a communication device provided in an embodiment of this application.
[0429] As shown in Figure 34, the communication device 200 can exist independently or be integrated into other devices. It can communicate with the receiving end mentioned above to implement the operation corresponding to the sending end in any of the above method embodiments.
[0430] The communication device 200 may include a transceiver unit 201 and a processing unit 202. The transceiver unit 201 can implement corresponding communication functions, and the processing unit 202 is used for data processing. The transceiver unit 201 may also be referred to as a communication interface or a communication unit.
[0431] Optionally, the communication device 200 may further include a storage unit, which can be used to store instructions and / or data. The processing unit 202 can read the instructions and / or data in the storage unit so that the communication device 200 can implement the aforementioned method embodiments.
[0432] The communication device 200 can be used to perform the actions performed by the receiving end in the aforementioned method embodiments. The communication device 200 can be a receiving end or a component configurable on the receiving end. The transceiver unit 201 is used to perform reception-related operations of the receiving end in the aforementioned method embodiments, and the processing unit 202 is used to perform processing-related operations of the receiving end in the aforementioned method embodiments.
[0433] Optionally, the transceiver unit 201 may include a sending unit and a receiving unit. The sending unit is used to perform the sending operation in the foregoing method embodiments. The receiving unit is used to perform the receiving operation in the foregoing method embodiments.
[0434] It should be noted that the communication device 200 may include a transmitting unit but not a receiving unit. Alternatively, the communication device 200 may include a receiving unit but not a transmitting unit. Specifically, it depends on whether the above-described scheme executed by the communication device 200 includes both transmitting and receiving actions.
[0435] As an example, the communication device 200 is used to perform the actions performed by the receiving end in the embodiment shown in FIG12 above.
[0436] The communication device 200 may include a transceiver unit 201 and a processing unit 202.
[0437] The transceiver unit 201 is used to receive the first polling information sent by the sender. The first polling information is used to inquire about the reception status of the delayed key data packet corresponding to the first sequence number. The remaining time of the delayed key data packet is less than the transmission threshold.
[0438] Processing unit 202 is used to trigger a first status report based on the first polling information.
[0439] In some instances, the processing unit is specifically used to update the first state variable to a second sequence number based on the first sequence number when the first sequence number is greater than the first state variable. The first state variable is the highest sequence number that the first state report needs to be constructed, and the second sequence number is the sequence number corresponding to the incompletely received data packet after the first sequence number, or the next sequence number of the sum of the first sequence number and the sequence number of the first incompletely received data packet before the first sequence number.
[0440] In some instances, the processing unit is also configured to update the second state variable to a third state variable when the updated first state variable is greater than the second state variable, and / or to start the reassembly timer at the receiving end, wherein the second state variable is the sequence number after the sequence number of the data packet that triggered the reassembly timer at the receiving end, and the third state variable is the sequence number after the highest sequence number in the received data packet.
[0441] In some instances, where the first sequence number is greater than the first state variable, and the first state variable is the highest sequence number that the first state report needs to be constructed,
[0442] The first state report includes a traditional state report and an enhanced state report. The traditional state report includes the reception status of data packets from the fourth state variable to the first state variable, and the enhanced state report includes the reception status of data packets from the first state variable to the first sequence number. The fourth state variable is the sequence number after the sequence number of the latest in-order and fully received data packet.
[0443] Alternatively, the first status report may include the reception status of all data packets prior to the first sequence number.
[0444] In some instances, where the first sequence number is greater than the first state variable, and the first state variable is the highest sequence number that the first state report needs to be constructed,
[0445] The first status report includes the reception status of the delayed critical data packet corresponding to the first sequence number.
[0446] In some instances, the first status report includes a third sequence number and a fourth sequence number. The third sequence number is the highest sequence number in the first sequence number where the delayed critical data packet was fully received. The fourth sequence number includes all sequence numbers in the first sequence number where the delayed critical data packets were not fully received or were dropped. The reception status of all delayed critical data packets before the third sequence number and excluding the fourth sequence number is a fully received status.
[0447] In some instances, the processing unit is also configured to trigger a first state report based on the first polling information if the first sequence number is less than or equal to a first state variable, which is the highest sequence number to be constructed in the first state report. The first state report includes the reception status of all data packets from the fourth state variable to the first state variable, where the fourth state variable is the sequence number after the sequence number of the latest fully received data packet in sequence.
[0448] It should be understood that the corresponding processes performed by each unit have been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.
[0449] The processing unit 202 in the preceding embodiments can be implemented by at least one processor or processor-related circuitry. The transceiver unit 201 can be implemented by a transceiver or transceiver-related circuitry. The transceiver unit 201 can also be referred to as a communication unit or communication interface. The storage unit can be implemented by at least one memory.
[0450] In some instances of Figure 33 or Figure 34, the first polling information is used to inquire about the reception status of all data packets up to the first sequence number, which is the highest sequence number of the underlying delayed critical data packet submitted to the sender.
[0451] In some instances of Figure 33 or Figure 34, the first polling information includes at least: a first field and a second field;
[0452] The first field indicates the information for the first poll, and the second field indicates the first sequence number.
[0453] In some instances of Figure 33 or Figure 34, the first polling information also includes at least one of the third, fourth, or fifth fields;
[0454] The third field indicates that the data packet corresponding to the first sequence number is a segmented data packet, the fourth field indicates the byte position at the beginning of the segment, and the fifth field indicates the byte position at the end of the segment.
[0455] In some instances of Figure 33 or Figure 34, the first field is also used to indicate that the data packet corresponding to the first sequence number is a segmented data packet, and the first polling information also includes: the third field and / or the fourth field;
[0456] The third field indicates the byte position at the beginning of the segment, and the fourth field indicates the byte position at the end of the segment.
[0457] In some instances of Figure 33 or Figure 34, the first polling information is used to inquire about the reception status of the delayed critical data packet corresponding to the first sequence number, which is used to indicate the sequence number of all delayed critical data packets submitted to the underlying layer of the sending end.
[0458] In some instances of Figure 33 or Figure 34, the first sequence number includes all the sequence numbers of the delayed critical data packets;
[0459] Alternatively, when the delayed critical data packet includes consecutive data packets, the first sequence number includes the sequence number of the first data packet in the consecutive data packets.
[0460] In some instances of Figure 33 or Figure 34, the first polling information includes at least: a first field and a second field;
[0461] The first field indicates the information for the first poll, and the second field indicates the first sequence number.
[0462] In some instances of Figure 33 or Figure 34, the first polling information also includes at least one of the third, fifth, sixth, or seventh fields;
[0463] The third field indicates whether the data packets are continuous, the fifth field indicates that the first polling information is a segmented data packet, the sixth field indicates the byte position at the beginning of the segment, and the seventh field indicates the byte position at the end of the segment.
[0464] In some instances of Figure 33 or Figure 34, the first polling information also includes a fourth field; the fourth field is used to indicate the number of consecutive data packets.
[0465] In some instances of Figure 33 or Figure 34, the first polling information also includes an eighth field, which indicates whether the first polling information uses a control packet or a data packet.
[0466] In some instances of Figure 33 or Figure 34, the eighth field is used to indicate that the first round of polling information uses a data packet. The first round of polling information also includes a ninth field, which is used to indicate that a second round of polling information is to be performed.
[0467] This application can divide the communication device into functional modules based on the above method examples. For example, each function can be divided into its own functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in the embodiments of this application is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0468] By way of example, this application also provides a communication device.
[0469] Please refer to Figure 35, which is a schematic diagram of the hardware structure of a communication device provided in an embodiment of this application.
[0470] The communication device 300 includes a processor 301 coupled to a memory 302. The memory 302 is used to store computer programs or instructions and / or data. The processor 301 is used to execute the computer programs or instructions and / or data stored in the memory 302, so that the methods in the preceding method embodiments are executed.
[0471] Optionally, the communication device 300 may include one or more processors 301.
[0472] Optionally, as shown in FIG35, the communication device 300 may further include a memory 302.
[0473] Optionally, the communication device 300 may include one or more memory 302s.
[0474] Alternatively, the memory 302 may be integrated with the processor 301 or set separately.
[0475] As shown in Figure 35, the communication device 300 may further include a transceiver 303, which is used for receiving and / or transmitting signals. For example, the processor 301 is used to control the transceiver 303 to receive and / or transmit signals.
[0476] As one approach, the communication device 300 is used to implement the operations performed by the sending end or the receiving end in the aforementioned method embodiments.
[0477] For example, processor 301 is used to implement processing-related operations performed by the sending end or the receiving end in the above method embodiments, and transceiver 303 is used to implement transmission-reception-related operations performed by the sending end or the receiving end in the above method embodiments.
[0478] As an alternative, the communication device 300 is used to implement the operations performed by the sending end or the receiving end in the method embodiments described above.
[0479] For example, processor 301 is used to implement processing-related operations performed by the sending end or the receiving end in the above method embodiments, and transceiver 303 is used to implement transmission-reception-related operations performed by the sending end or the receiving end in the above method embodiments.
[0480] In the communication device shown in Figure 35 above, the device in transceiver 303 used for receiving power can be regarded as a receiving unit, and the device in transceiver 303 used for transmitting functions can be regarded as a transmitting unit. That is, transceiver 303 can include a receiver and a transmitter. Transceiver 303 can also be called a transceiver unit, transceiver circuit, etc. Receiver can also be called a receiver unit, receiver, receiver, or receiver circuit, etc. Transmitter can also be called a transmitter, transmitter, transmitting unit, or transmitting circuit, etc. Processor 301 has processing functions and can be called a processing unit. Memory 302 is used to store computer program code and data and can also be called a storage unit.
[0481] By way of example, this application also provides a communication device.
[0482] The communication device 400 can be a transmitter or a receiver, or it can be a chip of the transmitter or receiver. The communication device 400 can be used to perform the operations performed by the transmitter or receiver in the above method embodiments.
[0483] Please refer to Figure 36, which shows a schematic diagram of the hardware structure of a communication device provided in an embodiment of this application.
[0484] The communication device 400 includes parts 410, 420, and 430. Part 410 is mainly used for baseband processing and controlling the base station; part 410 is usually the control center of the base station, and can generally be called a processor or processing unit, used to control the transmitting or receiving end to perform the processing operations of the transmitting or receiving end in the above method embodiments. Part 420 is mainly used for storing computer program code and data, and can generally be called a memory or storage unit. Part 430 is mainly used for transmitting and receiving radio frequency signals and converting radio frequency signals to baseband signals; part 430 can generally be called a transceiver unit, transceiver, transceiver circuit, or transceiver. The transceiver unit of part 430, which can also be called a transceiver or transceiver, includes an antenna 433 and a radio frequency circuit (not shown in the figure), wherein the radio frequency circuit is mainly used for radio frequency processing. Optionally, the device in part 430 used to implement the receiving function can be regarded as a receiver, and the device used to implement the transmitting function can be regarded as a transmitter, that is, part 430 includes a receiver 432 and a transmitter 431. A receiver can also be called a receiving unit, receiver circuit, or receiving circuit, while a transmitter can be called a transmitting unit, transmitting unit, transmitter, or transmitting circuit.
[0485] Sections 410 and 420 may include one or more circuit boards, each of which may include one or more processors and one or more memories. The processors are used to read and execute programs from the memories to implement baseband processing functions and control the base station. If multiple circuit boards exist, they can be interconnected to enhance processing capabilities. As an alternative implementation, multiple circuit boards may share one or more processors, multiple circuit boards may share one or more memories, or multiple circuit boards may simultaneously share one or more processors.
[0486] In one implementation, the transceiver unit of section 430 is used to execute the transceiver-related processes performed by the sending end or the receiving end in the embodiment shown in FIG12. The processor of section 410 is used to execute the processing-related processes performed by the sending end or the receiving end in the embodiment shown in FIG12.
[0487] It should be understood that Figure 36 is merely an example and not a limitation, and the above-described transmitter or receiver, including the processor, memory, and transceiver, may not depend on the structure shown in Figure 36.
[0488] When the communication device 400 is a chip, the chip includes a transceiver, a memory, and a processor. The transceiver can be an input / output circuit or a communication interface; the processor is a processor, microprocessor, or integrated circuit integrated on the chip. In the above method embodiments, the transmitting or receiving operation of the transmitting or receiving end can be understood as the chip's output, and the receiving operation of the transmitting or receiving end can be understood as the chip's input.
[0489] For example, this application also provides a computer-readable storage medium having computer instructions stored thereon for implementing the methods executed by the sending end or the receiving end in the above method embodiments.
[0490] For example, when the computer program is executed by a computer, it enables the computer to implement the method executed by the sending end or the method executed by the receiving end in the above method embodiments.
[0491] For example, this application also provides a computer program product containing instructions that, when executed by a computer, cause the computer to implement the method executed by the sending end or the method executed by the receiving end in the above method embodiments.
[0492] By way of example, this application also provides a communication system, which includes a transmitting end and a receiving end. The transmitting end is used to perform the processes executed by the transmitting end in the preceding embodiments. The receiving end is used to perform the processes executed by the receiving end in the preceding embodiments.
[0493] For example, this application also provides a chip device including a processor for calling computer programs or computer instructions stored in the memory to cause the processor to perform the methods of the above embodiments.
[0494] In one possible implementation, the input of the chip device corresponds to the receiving operation in the embodiment shown in FIG12 above, and the output of the chip device corresponds to the sending operation in the embodiment shown in FIG12 above.
[0495] Optionally, the processor is coupled to the memory via an interface.
[0496] Optionally, the chip device may also include a memory that stores computer programs or computer instructions.
[0497] The processor mentioned above can be a general-purpose central processing unit, a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of a program that controls the reference signal processing method of the preceding embodiments. The memory mentioned above can be read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions, such as random access memory (RAM).
[0498] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the explanations and beneficial effects of the relevant content in any of the communication devices provided above can be referred to the corresponding method embodiments provided above, and will not be repeated here.
[0499] In this application, the sending or receiving end may include a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on top of the operating system layer. The hardware layer may include hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also called main memory). The operating system layer may be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer may include applications such as browsers, address books, word processing software, and instant messaging software.
[0500] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0501] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.
[0502] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0503] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0504] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the essential contribution of the technical solution of this application, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the processes of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory, random access memory, magnetic disks, or optical disks.
[0505] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method of handling status reports, characterized by, The method is applied to a sending end, and comprises the following steps: sending first polling information to a receiving end, wherein the first polling information is used to inquire about a receiving state of a delay critical data packet corresponding to a first sequence number, a remaining time of the delay critical data packet is less than a transmission threshold, and the first polling information is used for the receiving end to trigger a first status report.
2. The method of claim 1, wherein, The step of sending the first polling information to the receiving end comprises the following steps: sending the first polling information to the receiving end in a case that a byte number of a newly generated delay critical data packet is greater than a first threshold or a data packet number of the newly generated delay critical data packet is greater than a second threshold, wherein the newly generated delay critical data packet is a delay critical data packet newly generated after a previous polling information transmission of the first polling information, the first threshold is a byte number threshold for the delay critical data packet to trigger polling, and the second threshold is a data packet number threshold for the delay critical data packet to trigger polling; or, sending the first polling information to the receiving end in a case that data packets are completely transmitted and transmission buffer and retransmission buffer of the sending end are empty or no new data packet needs to be sent; or, sending the first polling information to the receiving end in a case that the completely transmitted data packets are delay critical data packets and the transmission buffer and the retransmission buffer of the sending end are empty or no new data packet needs to be sent; or, sending the first polling information to the receiving end in a case that the completely transmitted data packets are delay critical data packets and data packets in the transmission buffer and the retransmission buffer of the sending end do not include delay critical data packets or new data packets are not delay critical data packets; or, sending the first polling information to the receiving end in a case that a newly generated delay critical data packet is generated; or, sending the first polling information to the receiving end in a case that a delay critical data packet is retransmitted.
3. The method according to claim 1 or 2, characterized in that, The method specifically comprises the following steps: in a case that the first status report is not received after the first polling information is sent, submitting a first data packet to a bottom layer of the sending end and / or sending the first polling information to the receiving end, wherein the first data packet comprises at least one of data packets corresponding to the first sequence number, data packets for which no acknowledgement is received before the first sequence number, or all delay critical data packets submitted to the bottom layer of the sending end.
4. The method according to any one of claims 1 to 3, characterized in that, The method further comprises the following steps: sending second polling information to the receiving end, wherein the second polling information is used to inquire about a receiving state of data packets corresponding to a second sequence number, the data packets corresponding to the second sequence number have not been sent corresponding first polling information, and the second sequence number is a highest sequence number of data packets submitted to the bottom layer of the sending end or comprises sequence numbers of all data packets submitted to the bottom layer of the sending end.
5. The method of claim 4, wherein, The step of sending the second polling information to the receiving end comprises the following steps: In a case that a byte number of the newly sent data packet is greater than or equal to a third threshold, or a data packet number of the newly sent data packet is greater than or equal to a fourth threshold, and a data packet corresponding to a highest sequence number in the data packet submitted to a bottom layer of the sending end has not sent corresponding first polling information, the second polling information is sent to the receiving end, the third threshold is a byte number threshold of a data packet triggering polling, and the fourth threshold is a data packet number threshold of a data packet triggering polling. Or, in a case that the transmission buffer and the retransmission buffer of the sending end are empty after the data packet is transmitted, and the data packet corresponding to the highest sequence number in the data packet submitted to the bottom layer of the sending end has not sent the corresponding first polling information, the second polling information is sent to the receiving end. Or, in a case that the transmission buffer and the retransmission buffer of the sending end are empty after the data packet is transmitted, and no new data packet needs to be sent, and the data packet corresponding to the highest sequence number in the data packet submitted to the bottom layer of the sending end has not sent the corresponding first polling information, the second polling information is sent to the receiving end.
6. The method according to claim 4 or 5, characterized in that, In a case that the first sequence number is consistent with the second sequence number, the method further comprises: The first polling information is sent to the data packet corresponding to the first sequence number.
7. The method according to any one of claims 1 to 6, characterized in that, The method further comprises: The first status report sent by the receiving end is received. In a case that the receiving state of the data packet indicated by the first status report is an incomplete receiving state, and the data packet is a delay critical data packet, the data packet is sent to the receiving end. Or, in a case that the receiving state of the data packet indicated by the first status report is an incomplete receiving state, and the data packet is not a delay critical data packet, the operation of sending the data packet is not performed.
8. A method of handling status reports, characterized by, Applied to the receiving end, the method comprises: The first polling information sent by the sending end is received, the first polling information is used to inquire a receiving state of a delay critical data packet corresponding to a first sequence number, and a remaining time of the delay critical data packet is less than a transmission threshold. The first status report is triggered according to the first polling information.
9. The method of claim 8, wherein, The first status report triggered according to the first polling information comprises: In a case that the first sequence number is greater than a first state variable, the first state variable is updated to a second sequence number according to the first sequence number, the first state variable is a highest sequence number that the first status report needs to be constructed, the second sequence number is a sequence number corresponding to an incomplete receiving data packet after the first sequence number, or a next sequence number of a sum of the first sequence number and a sequence number of a first incomplete receiving data packet before the first sequence number.
10. The method of claim 9, wherein, The method further comprises: In a case that the updated first state variable is greater than a second state variable, the second state variable is updated to a third state variable, and / or, a recombination timer of the receiving end is started, the second state variable is a sequence number after a sequence number of a data packet triggering the recombination timer of the receiving end, and the third state variable is a next sequence number of a highest sequence number in a received data packet.
11. The method of claim 8, wherein, in a case that the first sequence number is greater than a first status variable, the first status variable being a highest sequence number for which the first status report needs to be constructed, the first status report comprises a conventional status report and an enhanced status report, the conventional status report comprising reception statuses of data packets between a fourth status variable and the first status variable, the enhanced status report comprising reception statuses of data packets between the first status variable and the first sequence number, the fourth status variable being a sequence number following a sequence number of a latest in-sequence completely received data packet; or, the first status report comprises reception statuses of all data packets before the first sequence number.
12. The method of claim 8, wherein, in a case that the first sequence number is greater than a first status variable, the first status variable being a highest sequence number for which the first status report needs to be constructed, the first status report comprises a reception status of a delay-critical data packet corresponding to the first sequence number.
13. The method of claim 12, wherein, the first status report comprises a third sequence number and a fourth sequence number, the third sequence number being a highest sequence number of a delay-critical data packet completely received in the first sequence number, the fourth sequence number comprising all sequence numbers of a delay-critical data packet incompletely received or discarded in the first sequence number, a reception status of all delay-critical data packets before the third sequence number and except the fourth sequence number being a completely received status.
14. The method of any one of claims 1-13, wherein, The method further comprises: in a case that the first sequence number is less than or equal to the first status variable, the first status variable being a highest sequence number for which the first status report needs to be constructed, triggering the first status report according to the first polling information, the first status report comprising reception statuses of all data packets between a fourth status variable and the first status variable, the fourth status variable being a sequence number following a sequence number of a latest in-sequence completely received data packet.
15. The method of any of claims 1-11, 14, wherein the first polling information is used to poll for reception statuses of all data packets before the first sequence number, the first sequence number being a highest sequence number of a delay-critical data packet submitted to an underlying layer of the sending end.
16. The method of claim 15, wherein, the first polling information comprises at least a first field and a second field; the first field is used to indicate the first polling information, and the second field is used to indicate the first sequence number.
17. The method of claim 16, wherein, the first polling information further comprises at least one of a third field, a fourth field, or a fifth field; the third field is used to indicate that a data packet corresponding to the first sequence number is a segmented data packet, the fourth field is used to indicate a byte position at which segmentation starts, and the fifth field is used to indicate a byte position at which segmentation ends.
18. The method of claim 16, wherein, the first field is further used to indicate that a data packet corresponding to the first sequence number is a segmented data packet, and the first polling information further comprises a third field and / or a fourth field; the third field is used to indicate a byte position at which segmentation starts, and the fourth field is used to indicate a byte position at which segmentation ends.
19. The method of any of claims 1-10, 12-14, wherein The first polling information is used to inquire the receiving status of the delay critical data packet corresponding to the first sequence number, and the first sequence number is used to indicate the sequence number of the delay critical data packet submitted to the bottom layer of the sending end.
20. The method of claim 19, wherein, The first sequence number comprises all sequence numbers of delay critical data packets. Or, when the delay critical data packet comprises continuous data packets, the first sequence number comprises the sequence number of the first data packet in the continuous data packets.
21. The method of claim 19 or 20, wherein, The first polling information at least comprises a first field and a second field. The first field is used to indicate the first polling information, and the second field is used to indicate the first sequence number.
22. The method of claim 21, wherein, The first polling information further comprises at least one of a third field, a fifth field, a sixth field or a seventh field. The third field is used to indicate whether the data packets are continuous, the fifth field is used to indicate that the data packet corresponding to the first sequence number is a segmented data packet, the sixth field is used to indicate the byte position of the start of segmentation, and the seventh field is used to indicate the byte position of the end of segmentation.
23. The method of claim 22, wherein, The first polling information further comprises a fourth field, and the fourth field is used to indicate the number of the continuous data packets.
24. The method of any one of claims 15-23, wherein, The first polling information further comprises an eighth field, and the eighth field is used to indicate that the first polling information adopts a control data packet or a data data packet.
25. The method of claim 24, wherein, When the eighth field is used to indicate that the first polling information adopts a data data packet, the first polling information further comprises a ninth field, and the ninth field is used to indicate the second polling information.
26. A communications device, characterized by comprising: at least one processor and interface circuitry for receiving signals from other communication devices outside the communication device and transmitting signals to the processor or sending signals from the processor to other communication devices outside the communication device, the processor being configured to implement the method of any one of claims 1-7, 15-25 by logic circuitry or executing code instructions; and / or, the processor being configured to implement the method of any one of claims 8-14, 15-25 by logic circuitry or executing code instructions.
27. A computer readable storage medium, characterized in that, comprising a computer program or instructions which, when executed on a computer, cause the computer to perform the method of any one of claims 1-7, 15-25; and / or, cause the computer to perform the method of any one of claims 8-14, 15-25.
28. A chip, characterized by comprising: interface circuitry for receiving signals from other chips outside the chip and transmitting signals to the logic circuitry, or sending signals from the logic circuitry to other chips outside the chip, and logic circuitry configured to implement the method of any one of claims 1-7, 15-25; and / or, the logic circuitry being configured to implement the method of any one of claims 8-14, 15-25.
29. A computer program product, characterised in that, The computer program product comprises: a computer program or instructions which, when run on a computer, cause the computer to perform the method of any one of claims 1-7, 15-25; and / or cause the computer to perform the method of any one of claims 8-14, 15-25.
Citation Information
Patent Citations
Apparatus and method for optimizing status report time in mobile communication system
EP2073425A2
Communication device
WO2019193734A1