Data transmission method and device, terminal, network side equipment and medium
By sending indication information at the RLC layer and using timers and status reports, the problem of unnecessary retransmission in RLC acknowledgment mode is solved, enabling on-demand transmission of data packets, saving resources, and meeting latency requirements.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- VIVO MOBILE COMM CO LTD
- Filing Date
- 2024-10-17
- Publication Date
- 2026-04-17
AI Technical Summary
The fixed number of retransmissions in RLC acknowledgment mode causes service data packets with latency requirements to be retransmitted even if they exceed the latency requirements, resulting in wasted resources.
By sending indication information to update the sequence number or sequence number range of data packets, combined with timers and RLC status reports, the retransmission process of the RLC layer is controlled to avoid unnecessary retransmissions.
It effectively avoids unnecessary retransmissions at the RLC layer, saves transmission resources, ensures that data packets are transmitted on demand, and meets latency requirements.
Smart Images

Figure CN121887358A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of communication technology, specifically relating to a data transmission method, apparatus, terminal, network-side equipment, and medium. Background Technology
[0002] Currently, data packets for services can be transmitted using Radio Link Control (RLC) Acknowledged Mode (AM).
[0003] However, for services with latency requirements, only data packets that meet the latency requirements are valuable when transmitted to the other end. For each logical channel, the number of retransmissions in RLC AM is fixed. Even if the transmission delay of a data packet exceeds the latency requirement, the sender will still retransmit the data packet until an acknowledgment is received or the maximum number of retransmissions is reached. This leads to unnecessary retransmissions at the RLC layer, resulting in wasted resources. Summary of the Invention
[0004] This application provides a data transmission method, apparatus, terminal, network-side device, and medium that can avoid unnecessary retransmissions at the RLC layer and save transmission resources.
[0005] In a first aspect, a data transmission method is provided, executed by a first device, the method comprising: after the first device sends first indication information to a second device, the first device sends second indication information to the second device under the condition that a first condition is met; wherein the first indication information includes a sequence number or a sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission; the second indication information is the same as the first indication information, or includes an updated sequence number or a sequence number range of the first data packet; the first condition includes at least one of the following: a first timer started by the first device after sending the first indication information times out; the first device receives an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication of at least one data packet in the first data packet.
[0006] Secondly, a data transmission method is provided, executed by a second device, the method comprising: upon satisfying a second condition, the second device starting a second timer; upon the second timer expiring, the second device performing a first operation; wherein the first operation includes at least one of the following: discarding received segments of at least one data unit, stopping receiving at least one data unit, and updating the RLC AM receiving window and RLC variable of the second device; the second condition includes any one of the following: the second device receiving a segment of the first data unit; the second device not receiving the first data unit, but receiving a second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is the value of the second RLC variable, except for the last segment; wherein the value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
[0007] Thirdly, a data transmission apparatus is provided, comprising a sending module; the sending module is configured to send a first indication information to a second device, and then, upon satisfying a first condition, send a second indication information to the second device; wherein the first indication information includes a sequence number or a sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, or a data packet that was stopped from retransmission; the second indication information is the same as the first indication information, or includes an updated sequence number or a sequence number range of the first data packet; the first condition includes at least one of the following: a first timer started after sending the first indication information times out; receiving an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication of at least one data packet in the first data packet.
[0008] Fourthly, a data transmission apparatus is provided, the apparatus including a second processing module; the second processing module is configured to start a second timer when a second condition is met; and to perform a first operation when the second timer times out; wherein the first operation includes at least one of the following: discarding received segments of at least one data unit, stopping receiving at least one data unit, and updating the RLC AM receiving window and RLC variable of the second device; the second condition includes any one of the following: receiving a segment of the first data unit; not receiving the first data unit, but receiving a second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is the value of the second RLC variable, except for the last segment; wherein the value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1.
[0009] Fifthly, a data transmission apparatus is provided, the apparatus being configured to perform the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
[0010] In a sixth aspect, a terminal is provided, the terminal including a processor and a memory, the memory storing a program or instructions executable on the processor, the program or instructions, when executed by the processor, implementing the steps of the method as described in the first aspect, or implementing the steps of the method as described in the second aspect.
[0011] A seventh aspect provides a terminal, including a processor and a communication interface, wherein the communication interface is used to send a first indication information to a second device, and then, upon satisfying a first condition, send a second indication information to the second device; wherein the first indication information includes a sequence number or a sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmitting; the second indication information is the same as the first indication information, or includes an updated sequence number or sequence number range of the first data packet; the first condition includes at least one of the following: a first timer started after sending the first indication information times out; receiving an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication of at least one data packet in the first data packet.
[0012] Alternatively, the processor is configured to start a second timer when the second condition is met; and to perform a first operation when the second timer times out; wherein the first operation includes at least one of the following: discarding a received segment of at least one data unit, stopping the reception of at least one data unit, and updating the RLC AM receive window and RLC variable of the second device; the second condition includes any one of the following: a segment of the first data unit is received; the first data unit is not received, but a second data unit or a segment of the second data unit is received, and the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is the value of the second RLC variable, except for the last segment; wherein the value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
[0013] Eighthly, a network-side device is provided, the network-side device including a processor and a memory, the memory storing a program or instructions executable on the processor, the program or instructions, when executed by the processor, implementing the steps of the method as described in the first aspect, or implementing the steps of the method as described in the second aspect.
[0014] A ninth aspect provides a network-side device, including a processor and a communication interface, wherein the communication interface is used to send a first indication information to a second device, and then, upon satisfying a first condition, send a second indication information to the second device; wherein the first indication information includes a sequence number or a sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmitting; the second indication information is the same as the first indication information, or includes an updated sequence number or sequence number range of the first data packet; the first condition includes at least one of the following: a first timer started after sending the first indication information times out; receiving an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication of at least one data packet in the first data packet.
[0015] Alternatively, the processor is configured to start a second timer when the second condition is met; and to perform a first operation when the second timer times out; wherein the first operation includes at least one of the following: discarding a received segment of at least one data unit, stopping the reception of at least one data unit, and updating the RLC AM receive window and RLC variable of the second device; the second condition includes any one of the following: a segment of the first data unit is received; the first data unit is not received, but a second data unit or a segment of the second data unit is received, and the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is the value of the second RLC variable, except for the last segment; wherein the value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
[0016] In a tenth aspect, a readable storage medium is provided, on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method described in the first aspect, or implement the steps of the method described in the second aspect.
[0017] Eleventhly, a wireless communication system is provided, comprising: a terminal and a network-side device, wherein the terminal can be used to perform the steps of the method described in the first aspect, and the network-side device can be used to perform the steps of the method described in the second aspect; or, the terminal can be used to perform the steps of the method described in the second aspect, and the network-side device can be used to perform the steps of the method described in the first aspect.
[0018] In a twelfth aspect, a chip is provided, the chip including a processor and a communication interface coupled to the processor, the processor being configured to run programs or instructions to implement the method as described in the first aspect, or to implement the method as described in the second aspect.
[0019] In a thirteenth aspect, a computer program / program product is provided, which is stored in a storage medium and is executed by at least one processor to implement the steps of the method as described in the first aspect, or to implement the steps of the method as described in the second aspect.
[0020] In this embodiment, after the first device sends a first indication message to the second device, the first device may send a second indication message to the second device if a first condition is met. The first indication message includes the sequence number or sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmitting. The second indication message is the same as the first indication message, or includes the updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: a first timer started by the first device after sending the first indication message times out; the first device receives an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet. With this scheme, after the first device sends a packet loss indication message to the second device, it can send the packet loss indication message to the second device again if the first condition is met. This allows the second device to correctly receive the sequence number or sequence number range of at least one of the following: dropped data packets, data packets that timed out, data packets that stopped transmitting, and data packets that stopped retransmission. This allows for updating the RLC AM receive window and RLC variables, thus avoiding unnecessary retransmissions at the RLC layer and saving transmission resources. Attached Figure Description
[0021] Figure 1 This is a block diagram of a wireless communication system applicable to embodiments of this application;
[0022] Figure 2 This is a flowchart of a data transmission method provided in some embodiments of this application;
[0023] Figure 3 This is a flowchart of a data transmission method provided in some embodiments of this application;
[0024] Figure 4 These are schematic diagrams of the data transmission apparatus provided in some embodiments of this application;
[0025] Figure 5 These are schematic diagrams of the data transmission apparatus provided in some embodiments of this application;
[0026] Figure 6 This is a schematic diagram of the communication device provided in an embodiment of this application;
[0027] Figure 7 This is a schematic diagram of the hardware structure of the terminal provided in the embodiments of this application;
[0028] Figure 8 This is a schematic diagram of the hardware structure of the network-side device provided in the embodiments of this application. Detailed Implementation
[0029] The technical solutions of the embodiments of this application will be clearly described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are within the scope of protection of this application.
[0030] The terms "first," "second," etc., used in this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same class, not limited in number; for example, the first object can be one or more. Furthermore, "or" in this application indicates at least one of the connected objects. For example, the scope of protection for "A or B" covers at least three scenarios: Scenario 1: including A but not B; Scenario 2: including B but not A; Scenario 3: including both A and B. In addition, the terms "A and / or B," "at least one of A and B," and "at least one of A or B" also cover at least the above three scenarios. The character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0031] The term "instruction" in this application can be either a direct instruction (or explicit instruction) or an indirect instruction (or implicit instruction). A direct instruction can be understood as one in which the sender explicitly informs the receiver of specific information, the operation to be performed, or the requested result, etc., in the instruction sent. An indirect instruction can be understood as one in which the receiver determines the corresponding information based on the instruction sent by the sender, or makes a judgment and determines the operation to be performed or the requested result, etc., based on the judgment result.
[0032] It is worth noting that the technologies described in this application are not limited to Long Term Evolution (LTE) / LTE-Advanced (LTE-A) systems, but can also be used in other wireless communication systems, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single-carrier Frequency-Division Multiple Access (SC-FDMA), or other systems. The terms "system" and "network" in this application are often used interchangeably, and the described technologies can be used with the systems and radio technologies mentioned above, as well as with other systems and radio technologies. The following description describes New Radio (NR) systems for illustrative purposes, and the term NR is used in most of the following description; however, these technologies can also be applied to systems other than NR systems, such as 6th generation (6G) radio systems. th Generation 6G communication system.
[0033] Figure 1This diagram illustrates a block diagram of a wireless communication system applicable to embodiments of this application. The wireless communication system includes a terminal 11 and a network-side device 12. The terminal 11 can be a mobile phone, tablet computer, laptop computer, notebook computer, personal digital assistant (PDA), handheld computer, netbook, ultra-mobile personal computer (UMPC), mobile internet device (MID), augmented reality (AR), virtual reality (VR) device, robot, wearable device, flight vehicle, vehicle user equipment (VUE), shipboard equipment, pedestrian user equipment (PUE), smart home devices (home appliances with wireless communication capabilities, such as refrigerators, televisions, washing machines, or furniture), game consoles, personal computers (PCs), ATMs, or self-service machines, etc. Wearable devices include: smartwatches, smart bracelets, smart headphones, smart glasses, smart jewelry (smart bracelets, smart chains, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc. Among these, in-vehicle devices can also be referred to as in-vehicle terminals, in-vehicle controllers, in-vehicle modules, in-vehicle components, in-vehicle chips, or in-vehicle units, etc. It should be noted that the specific type of terminal 11 is not limited in this application embodiment. Network-side equipment 12 may include access network equipment or core network equipment, wherein access network equipment may also be referred to as Radio Access Network (RAN) equipment, radio access network function, or radio access network unit. Access network equipment may include base stations, Wireless Local Area Network (WLAN) access points (AS), or Wireless Fidelity (WiFi) nodes, etc.In this context, a base station may be referred to as a Node B (NB), Evolved Node B (eNB), Next Generation Node B (gNB), New Radio Node B (NR Node B), Access Point, Relay Base Station (RBS), Serving Base Station (SBS), Base Transceiver Station (BTS), Radio Base Station, Radio Transceiver, Basic Service Set (BSS), Extended Service Set (ESS), Home Node B (HNB), Home Evolved Node B, Transmit / Receive Point (TRP), or any other suitable term in the relevant field, as long as the same technical effect is achieved. The base station is not limited to any specific technical terminology. It should be noted that in this application embodiment, only a base station in an NR system is used as an example for introduction, and the specific type of base station is not limited.
[0034] Core network equipment, also known as core network nodes, core network functions, or core network elements, includes, but is not limited to, at least one of the following: Mobility Management Entity (MME), Access and Mobility Management Function (AMF), Session Management Function (SMF), User Plane Function (UPF), Policy Control Function (PCF), Policy and Charging Rules Function (PCRF), Edge Application Server Discovery Function (EASDF), Unified Data Management (UDM), Unified Data Repository (UDR), Home Subscriber Server (HSS), Centralized network configuration (CNC), Network Repository Function (NRF), Network Exposure Function (NEF), Local NEF (or L-NEF), and Binding Support Function. Support Functions (BSF), Application Functions (AF), Location Management Functions (LMF), Gateway Mobile Location Centres (GMLC), and Network Data Analytics Functions (NWDAF), etc. It should be noted that this application embodiment only uses core network equipment in the NR system as an example and does not limit the specific type of core network equipment. If the name of the core network equipment mentioned in this application embodiment changes in subsequent protocol versions (e.g., 6G), it will still be within the scope of protection of this application.
[0035] Optionally, the core network equipment can be implemented by one or more functional modules in a single device, or by multiple devices working together; this application does not specifically limit this. It is understood that the aforementioned functional modules can be network elements in hardware devices, software functional modules running on dedicated hardware, or virtualized functional modules instantiated on a platform (e.g., a cloud platform).
[0036] The data transmission method, apparatus, terminal, network-side device, and medium provided in this application will be described in detail below with reference to the accompanying drawings and through some embodiments and application scenarios.
[0037] Terminal or network-side equipment can use the RLC (Acknowledge Mode, AM) to transmit service data packets.
[0038] In RLC AM, the state variables that the AM RLC entity at the transmitting end needs to maintain include:
[0039] TX_Next_Ack: This variable indicates the sequence number (SN) of the first AM mode data (AMD) Protocol Data Unit (PDU) waiting for a positive acknowledgment (ACK). It is updated when a positive ACK indication corresponding to the SN is received, and represents the lower boundary of the sending window.
[0040] TX_Next: This variable indicates the SN assigned to the next newly generated AMD PDU. It is updated when AM RLC constructs an AMD PDU with SN=TX_Next and that AMD PDU contains an RLC SDU or a segment of an RLC SDU.
[0041] POLL_SN: This variable indicates the SN of the AMD PDU with the highest SN among the AMD PDUs delivered by the sender to the lower-level AMD PDUs.
[0042] Among them, when the SN of RLC satisfies TX_Next_Ack <= SN < TX_Next_Ack + AM_Window_Size, the AMD PDU corresponding to SN can be delivered to the lower layer. For each RLC SDU received from the upper layer, the sender constructs an AMD PDU, sets its SN = TX_Next, and increments TX_Next by 1. When delivering an AMD PDU including a segment of a certain RLC SDU to the lower layer, the sender AM RLC entity sets the SN of the AMD PDU to the SN of the corresponding RLC SDU. The sender AM RLC entity can receive the ACK of the RLC SDU from the STATUS PDU sent by the peer. After the receiving end indicates that the RLC SDU with SN = x has been successfully received (such as by sending a positive ACK), the sender AM RLC entity indicates to the upper layer that the RLC SDU has been successfully received; at the same time, the sender sets TX_Next_Ack to the smallest SN, which is the smallest SN within the range of TX_Next_Ack <= SN <= TX_Next and for which no positive ACK has been received.
[0043] In RLC AM, the status variables that the AM RLC entity at the receiving end needs to maintain include:
[0044] RX_Next: This variable indicates the SN + 1 of the last in-sequence and completely received AMD PDU;
[0045] RX_Next_Highest: This variable indicates the SN + 1 of the AMD PDU with the largest SN among the received AMD PDUs;
[0046] RX_Next_Status_Trigger: This variable indicates the SN + 1 of the AMD PDU that triggers the t-Ressembly timer (reassembly timer);
[0047] RX_Highest_Status: This variable indicates the highest possible SN that can be indicated by ACK_SN when constructing the STATUS PDU.
[0048] Among them, subsequent processing can only be performed when the SN of the RLC satisfies RX_Next <= SN < RX_Next + AM_Window_Size; otherwise, it is directly discarded. When SN >= RX_Next_Highest, update RX_Next_Highest = SN + 1. If all the data of this PDU is received completely, reassemble the RLC SDU and deliver it to the upper layer; among them, if SN = RX_Highest_Status, update RX_Highest_Status to the SN for which the data larger than the current RX_Highest_Status has not been received completely; if SN = RX_Next, update RX_Next to the SN for which the data larger than the current RX_Next has not been received completely.
[0049] If the timer t-Reassembly is running, t-Reassembly can be stopped if any of the following conditions are met:
[0050] RX_Next_Status_Trigger = RX_Next;
[0051] RX_Next_Status_Trigger = RX_Next + 1, and only the last segment of the RLC packet with SN = RX_Next has not been received; RX_Next_Status_Trigger falls outside the receive window, and RX_Next_Status_Trigger is not equal to RX_Next + AM_Window_Size.
[0052] If the timer t-Reassembly is not running, when any of the following conditions are met, t-Reassembly needs to be started and RX_Next_Status_Trigger = RX_Next_Highest is set:
[0053] RX_Next_Highest > RX_Next + 1;
[0054] RX_Next_Highest = RX_Next + 1 and there are still segments of the RLC packet with SN = RX_Next that have not been received except for the last segment.
[0055] If t-Reassembly times out, the receiving AM RLC entity should: update RX_Highest_Status to the first SN of an RLC SDU that is greater than or equal to RX_Next_Status_Trigger and has not been fully received; if RX_Next_Highest > RX_Highest_Status + 1, or RX_Next_Highest = RX_Highest_Status + 1 and at least one SDU associated with SN = RX_Highest_Status is missing a byte segment, and this missing segment occurs before the last byte of all segments of this SDU that have been received, then start t-Reassembly and set RX_Next_Status_Trigger to RX_Next_Highest.
[0056] The receiving RLC will trigger a status report under the following circumstances:
[0057] 1. The receiving end receives the polling signal from the sending end, and the following conditions are met: AMDPDUs with P field "1" are discarded or their SN satisfies x.<RX_Highest_Status or x> =RX_Next + AM_Window_Size);
[0058] Polling is used by the sending end to request the receiving end's RLC entity to provide a STATUS report. The timers and counters related to polling include the following:
[0059] t-PollRetransmit: Used by the sending AM RLC entity to control the retransmission of poll. The timer starts or restarts after polling is sent and stops after receiving feedback from the STATUS PDU containing POLL_SN. The poll is retransmitted after the timeout.
[0060] PDU_WITHOUT_POLL: The maximum value is pollPDU. The sending AM RLC entity will trigger a poll for every pollPDU of PDUs. For each new AMD PDU transmitted, PDU_WITHOUT_POLL is increased by 1.
[0061] BYTE_WITHOUT_POLL: The maximum value is pollByte, which means that the sending AM RLC entity will trigger a poll every pollByte bytes. For each new byte transmitted, BYTE_WITHOUT_POLL is increased by 1.
[0062] 2. The receiving end triggers the event after the t-Reassembly timer expires.
[0063] The NACK_SN set in the status report is the SN of the RLC packet that the receiver considers to have been discarded, and the receiver requests the peer to retransmit it.
[0064] When the sending AM RLC entity receives a NACK from a STATUS PDU for a certain RLC SDU or SDU segment, the sending AM RLC entity will:
[0065] A. If the corresponding RLC SDU falls between TX_Next_Ack<=SN<=the highest SN in the AMD PDU delivered to the lower layer, retransmit this RLC SDU or SDU segment.
[0066] B. When retransmitting this RLC SDU or SDU segment, the sending end can segment the RLCSDU according to the amount of data that the lower layer can accommodate, or further segment the RLC SDU segment that needs to be retransmitted.
[0067] For services with latency requirements, only data packets that meet the latency requirements are valuable when transmitted to the other end. However, for each logical channel, the number of retransmissions in RLC AM is fixed. Even if the transmission delay of a data packet exceeds the latency requirement, the sender will still retransmit the data packet until an acknowledgment is received or the maximum number of retransmissions is reached. This leads to unnecessary retransmissions at the RLC layer, resulting in a waste of resources.
[0068] To address the aforementioned problems, embodiments of this application provide a data transmission method, apparatus, terminal, network-side device, and medium. The data transmission method provided in this application can be applied to scenarios involving RLC layer retransmission of data packets.
[0069] In the data transmission method provided in this application embodiment, after the first device sends a first indication information to the second device, the first device may send a second indication information to the second device if a first condition is met. The first indication information includes the sequence number or sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmission. The second indication information is the same as the first indication information, or includes the updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: a first timer started by the first device after sending the first indication information times out; the first device receives an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet. With this scheme, after the first device sends a packet loss indication message to the second device, it can send the packet loss indication message to the second device again if the first condition is met. This allows the second device to correctly receive the sequence number or sequence number range of at least one of the following: dropped data packets, data packets that timed out, data packets that stopped transmitting, and data packets that stopped retransmission. This allows for updating the RLC AM receive window and RLC variables, thus avoiding unnecessary retransmissions at the RLC layer and saving transmission resources.
[0070] Some embodiments of this application provide a data transmission method. Figure 2 A flowchart illustrating a data transmission method provided by some embodiments of this application is shown. For example... Figure 2 As shown, some embodiments of this application provide a data transmission method that may include the following step 201.
[0071] Step 201: After the first device sends the first instruction information to the second device, if the first condition is met, the first device sends the second instruction information to the second device.
[0072] The first indication information includes the sequence number or sequence number range of the first data packet, which includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, or a data packet that was stopped from retransmission; the second indication information is the same as the first indication information, or includes the updated sequence number or sequence number range of the first data packet.
[0073] The first condition mentioned above includes at least one of the following:
[0074] The first timer started by the first device after sending the aforementioned first instruction information times out.
[0075] The first device receives an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one of the first data packets.
[0076] Optionally, the first device can be an AM RLC entity on the transmitting side (which can be located on the network side device or the terminal), and the second device can be an AM RLC entity on the receiving side (which can be located on the terminal or the network side device). For example, for uplink transmission, the first device is an AM RLC entity on the terminal side, and the second device is an AM RLC entity on the network side device. For downlink transmission, the first device is an AM RLC entity on the network side device, and the second device is an AM RLC entity on the terminal.
[0077] Optionally, the first device and the second device can be the same device's transmitting-side AM RLC entity or receiving-side AMRLC entity.
[0078] Optionally, the first device may first determine the first data packet based on the remaining transmission time of the data packet or based on the instruction from the upper layer, and then generate the first instruction information based on the sequence number or sequence number range of the first data packet.
[0079] Optionally, in this embodiment of the application, after generating the first instruction information, the first device may send the first instruction information to the second device.
[0080] Optionally, in the embodiments of this application, the first instruction information mentioned above may be carried by an RLC control PDU or an RLC data PDU.
[0081] Optionally, in this embodiment of the application, after receiving the first indication information, the second device can update the RLC AM receiving window and RLC variables of the second device according to the indication of the first indication information, and trigger a STATUS report, thereby ensuring that the first device can quickly know whether the first indication information has been successfully transmitted, thus ensuring that the receiving and transmitting windows can be synchronized in a timely manner.
[0082] For a detailed description of the aforementioned status report, please refer to the relevant descriptions in the related technologies mentioned above. To avoid repetition, it will not be repeated here.
[0083] Optionally, in this embodiment of the application, the duration of the first timer can be configured by the network-side device or agreed upon by the protocol.
[0084] Optionally, in this embodiment of the application, when the first device sends multiple first indication messages to the second device, each first indication message can be associated with a first timer; wherein, the first timers associated with any two first indication messages can be the same or different.
[0085] Optionally, in this embodiment of the application, the first data packet may include N data packets, where N is a positive integer.
[0086] Optionally, in this embodiment of the application, when the first device receives the above-mentioned RLC status report, and the RLC status report includes a negative acknowledgment (NACK) indication for at least one of the above-mentioned N data packets, the first device may send the above-mentioned second indication information to the second device.
[0087] Optionally, in this embodiment of the application, when the second indication information is the same as the first indication information, the first device sends the second indication information to the second device, which can be understood as: the first device retransmits the first indication information to the second device.
[0088] Optionally, in this embodiment of the application, when the second indication information includes the updated sequence number or sequence number range of the first data packet, the second indication information may specifically include at least one of the following: a newly added sequence number or sequence number range of the first data packet based on the first data packet included in the first indication information (e.g., there are newly dropped data packets); or a sequence number or sequence number range of a data packet obtained after deleting at least one data packet from the first data packet included in the first indication information (e.g., the second device indicates that the first device has successfully received some data packets).
[0089] For example, assuming that the sequence number SN of the first data packet included in the first indication information is 1, 2, 3, 4, 5, then the sequence number SN of the first data packet included in the second indication information is 1, 2, 3, 4, 5, 6 or SN = 3, 4, 5.
[0090] Optionally, in the embodiments of this application, the first indication information and the second indication information described above can each indicate at least one of the following: the data packet is discarded, the data packet has timed out, the data packet is stopped from being sent, and the data packet is stopped from being retransmitted.
[0091] In the data transmission method provided in this application embodiment, after the first device sends packet loss indication information to the second device, it can send packet loss indication information to the second device again if the first condition is met, so that the second device can correctly receive the sequence number or sequence number range of at least one of the data packets that were dropped during transmission, data packets that timed out during transmission, data packets that stopped transmitting, and data packets that stopped retransmission, so as to update the RLC AM receive window and RLC variables. This can avoid unnecessary retransmissions at the RLC layer and save transmission resources.
[0092] Optionally, in this embodiment of the application, after step 201 above, the data transmission method provided in this embodiment of the application may further include step 202 below.
[0093] Step 202: The first device restarts the first timer.
[0094] Optionally, in this embodiment of the application, when the first timer expires, the first device can send the second indication information to the second device and restart the first timer to monitor the reception of the second indication information; if the restarted first timer expires, the first device can continue to send the third indication information to the second device to ensure that the second device can successfully receive the packet loss-related indication information and update the RLC AM receive window and RLC variables in a timely manner to avoid affecting subsequent data transmission.
[0095] The third indication information may be the same as the second indication information, or may include the updated sequence number or sequence number range of the first data packet.
[0096] In this embodiment, after the first device sends the second indication information to the second device, it restarts the first timer to monitor the timeout reception time of the second indication information. This ensures that the second device can successfully receive the packet loss-related indication information and update the RLC AM receiving window and RLC variables in a timely manner, thus avoiding affecting subsequent data transmission.
[0097] Optionally, the data transmission method provided in this application embodiment may further include the following step 203.
[0098] Step 203: If the first device receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet, then the first device determines that the first indication information has been successfully transmitted.
[0099] In this embodiment of the application, the aforementioned positive acknowledgment indication can be a positive ACK indication.
[0100] It is understandable that when all the above data packets are indicated as positive ACK, the first device can determine that the first indication information was successfully transmitted.
[0101] Optionally, in this embodiment of the application, the data packet being indicated as a positive ACK may include: indicating that the data packet corresponding to the sequence number is a positive ACK, or indicating that all data packets with sequence numbers less than a certain sequence number are positive ACKs.
[0102] In this embodiment of the application, when the first device receives the RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet, the first device can determine that the first indication information has been successfully transmitted. Therefore, based on the positive acknowledgment indications for all data packets, the first device can accurately determine that the first indication information has been successfully transmitted.
[0103] Optionally, the data transmission method provided in this application embodiment may further include the following step 204.
[0104] Step 204: During the operation of the first timer, if the first device receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet, then the first device determines that the first indication information has been successfully transmitted and stops running the first timer.
[0105] Optionally, in this embodiment of the application, if the RLC status report is received during the operation of the first timer, the first device can stop running the first timer when it is determined that the first indication information has been successfully transmitted, so as to update the RLC AM sending window and RLC variables of the first device in a timely manner, and ensure that subsequent data packets can be delivered to the sending end RLC entity for transmission in a timely manner.
[0106] In this embodiment of the application, if the first device receives the RLC status report sent by the second device during the operation of the first timer, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet, the first device can determine that the first indication information has been successfully transmitted. At this time, it is no longer necessary to send packet loss-related indication information to the second device. Therefore, the first timer can be stopped to update the RLC AM sending window and RLC variables of the first device in a timely manner, ensuring that subsequent data packets can be delivered to the sending end RLC entity for transmission in a timely manner.
[0107] Optionally, in this embodiment of the application, the number of the above-mentioned RLC status reports can be one or more.
[0108] Optionally, in this embodiment of the application, when the number of RLC status reports is one, the RLC status report may include positive acknowledgment indications for all the aforementioned data packets; when the number of RLC status reports is multiple, each RLC status report may include positive acknowledgment indications for at least one of the aforementioned data packets.
[0109] In this embodiment of the application, since the number of the above-mentioned RLC status reports can be one or more, all the above-mentioned data packets can be indicated as positive acknowledgments through one or more RLC status reports, thereby improving the flexibility of indicating that all the data packets are positive acknowledgments.
[0110] Optionally, the data transmission method provided in this application embodiment may further include the following step 205.
[0111] Step 205: After the first device sends the first instruction information to the second device, polling is triggered.
[0112] It should be noted that the above-mentioned polling can ensure that the second device can quickly provide a status report after receiving the first indication information, thereby ensuring that the first device can quickly know whether the first indication information has been successfully transmitted, so as to ensure that the sending and receiving windows can be synchronized in a timely manner.
[0113] In this embodiment of the application, since the first device can trigger polling after sending the first indication information to the second device, it can be ensured that the second device can quickly provide a status report after receiving the first indication information, thereby ensuring that the first device can quickly know whether the first indication information has been successfully transmitted, so as to ensure that the sending and receiving windows can be synchronized in a timely manner.
[0114] For example, taking the first condition including the timeout of the first timer started after the first device sends the first indication information as an example, the specific process of the data transmission method provided in this application embodiment is as follows:
[0115] Step 1: The first device determines the sequence number or sequence number range of the first data packet and generates the aforementioned first indication information.
[0116] Step 2: The first device sends the first instruction information to the second device and starts the first timer.
[0117] Step 3: If the first timer times out, the first device sends the second indication information to the second device and restarts the first timer. If, during the operation of the first timer, the first device receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgments for all data packets in the first data packet, the first device determines that the first indication information has been successfully transmitted and stops running the first timer.
[0118] Thus, when the first timer expires, the first device can retransmit the packet loss indication information to ensure that the second device can successfully receive the first indication information, thereby updating the RLC AM receive window and RLC variables in a timely manner to avoid affecting subsequent data transmission.
[0119] For example, taking the first condition as an example where the first device receives the RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication of at least one data packet in the first data packet, the specific process of the data transmission method provided in this application embodiment is as follows:
[0120] Step I: The first device determines the sequence number or sequence number range of the first data packet and generates the aforementioned first indication information.
[0121] Step II: The first device sends the aforementioned first instruction information to the second device.
[0122] Step III: If the first device receives the RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet, then the first device sends the second indication information to the second device; if the first device receives the RLC status report sent by the second device, and the RLC status report includes a positive acknowledgment indication for all data packets in the first data packet, then the first device determines that the first indication information was successfully transmitted.
[0123] Thus, when a negative acknowledgment indication is received for at least one of the aforementioned data packets, it can be assumed that the second device has not successfully received the aforementioned first indication information. At this time, the first device retransmits the packet loss-related indication information to ensure that the second device can successfully receive the first indication information, thereby updating the RLC AM receive window and RLC variables in a timely manner to avoid affecting subsequent data transmission.
[0124] Some embodiments of this application provide a data transmission method. Figure 3 A flowchart illustrating a data transmission method provided by some embodiments of this application is shown. For example... Figure 3 As shown, some embodiments of this application provide a data transmission method that may include the following steps 301 and 302.
[0125] Step 301: If the second condition is met, the second device starts the second timer.
[0126] The second condition mentioned above includes any one of the following:
[0127] The second device receives the segment from the first data unit;
[0128] The second device did not receive the first data unit, but received the second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit;
[0129] The value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1;
[0130] The value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments in the data unit whose sequence number is the value of the second RLC variable, except for the last segment.
[0131] The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
[0132] Optionally, in the embodiments of this application, both the first data unit and the second data unit can be RLCSDU.
[0133] Optionally, in this embodiment of the application, the first RLC variable mentioned above can be RX_Next_Highest.
[0134] Optionally, in this embodiment of the application, the second RLC variable can be RX_Next.
[0135] Optionally, in this embodiment of the application, the duration of the second timer can be configured by the network-side device or agreed upon by the protocol.
[0136] Optionally, in the embodiments of this application, the second timer can be associated with one or more RLC SDUs, or the second timer can be associated with an RLC entity, that is, an RLC entity has only one second timer running at a time.
[0137] Optionally, in this embodiment of the application, the duration of the second timer can be greater than the duration of the reassembly timer.
[0138] The aforementioned reassembly timer is the t-Reassembly timer.
[0139] Optionally, in the embodiments of this application, the starting condition of the second timer can be the same as the starting condition of the reassembly timer; and / or, the stopping condition of the second timer (i.e., the third condition below) can be the same as the stopping condition of the reassembly timer.
[0140] Optionally, in this embodiment of the application, the starting condition for the second timer may include any one of the following:
[0141] The value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1;
[0142] The value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments in the data unit whose sequence number is the value of the second RLC variable, except for the last segment.
[0143] In this embodiment of the application, since the duration of the second timer can be longer than the duration of the reassembly timer, the reassembly timer can be guaranteed to operate normally, so as to discard or stop receiving multiple RLC SDUs at the same time, thereby simplifying the processing of multiple RLC SDUs.
[0144] Step 302: If the second timer times out, the second device performs the first operation.
[0145] The first operation mentioned above includes at least one of the following: discarding received segments of at least one data unit, stopping receiving at least one data unit, and updating the RLC AM receive window and RLC variables of the second device.
[0146] Optionally, in this embodiment of the application, updating the RLC AM receiving window and RLC variable of the second device may include: updating the RLC AM receiving window and RLC variable by treating the at least one data unit as a successfully received data unit.
[0147] It should be noted that the data unit discarding involved in the embodiments of this application may include at least one of the following: discarding segments of the received data unit, stopping receiving the remaining segments of the data unit, stopping the reassembly of the data unit, and stopping receiving the data unit when no segments of the data unit are received.
[0148] Optionally, in embodiments of this application, the at least one data unit may include at least one of the following:
[0149] The aforementioned first data unit;
[0150] For data units whose sequence number is less than the value of the third RLC variable and which have not been fully received, the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0151] Optionally, in this embodiment of the application, the data unit that triggers the second timer can be an AMD PDU.
[0152] Optionally, in this embodiment of the application, after the second timer expires, the second device may regard the at least one data unit as a data unit that has been fully received, that is, perform the following operations on the at least one data unit:
[0153] If the sequence number of the data unit is equal to the value of RX_Highest_Status, then update RX_Highest_Status to the sequence number of the data that has not yet been fully received and is greater than the current RX_Highest_Status;
[0154] If the sequence number of the data unit is equal to the value of the second RLC variable mentioned above, then update the second RLC variable to the sequence number of the data that has not yet been fully received and is larger than the current second RLC variable;
[0155] Stop the second timer mentioned above, and if the start conditions of the second timer are met, restart the second timer and set the value of the third RLC variable mentioned above to the value of RX_Highest_Status.
[0156] Alternatively, perform the following operations on at least one data unit:
[0157] Update RX_Highest_Status to the sequence number of the first RLC SDU whose sequence number is greater than or equal to the value of RX_Next_Status_Trigger and which has not been fully received;
[0158] If the value of the first RLC variable is greater than the sum of the value of RX_Highest_Status and 1, or if the value of the first RLC variable is equal to the sum of the value of RX_Highest_Status and 1, and at least one SDU associated with a sequence number equal to the value of RX_Highest_Status is missing a byte segment, and the missing byte segment occurs before the last byte of all segments received for that SDU, then:
[0159] Start the second timer mentioned above;
[0160] Set the value of the third RLC variable to the value of the first RLC variable.
[0161] Optionally, in this embodiment of the application, after performing the first operation described above, the second device may send a status report to the first device so that the first device can update the RLC AM transmission window and RLC variables based on the status report.
[0162] In this embodiment of the application, since the above-mentioned at least one data unit may include at least one of the following: the above-mentioned first data unit, and the data unit whose sequence number is less than the value of the above-mentioned third RLC variable and has not been fully received, packet loss related processing can be performed on data units with different conditions when the above-mentioned second timer expires, thereby improving the flexibility of performing packet loss related processing.
[0163] In the data transmission method provided in this application embodiment, when the second condition is met, the second device can start a second timer, and if the second timer times out, perform at least one of the following operations: discard at least one received segment of a data unit, stop receiving at least one data unit, and update the RLC AM receive window and RLC variables of the second device. Thus, the second device can determine whether a data packet has timed out or been discarded by checking if the timer has expired, and then perform corresponding operations on incompletely received data units and update the RLC AM receive window and RLC variables. This avoids unnecessary retransmissions at the RLC layer and saves transmission resources.
[0164] Optionally, in this embodiment of the application, after step 302 above, the data transmission method provided in this embodiment of the application may further include step 303 below.
[0165] Step 303: The second device stops running the second timer.
[0166] Optionally, in this embodiment of the application, the second device may directly stop running the second timer after performing the first operation described above.
[0167] In this embodiment of the application, since the second device stops running the second timer after performing the first operation, it can save device power consumption and ensure that subsequent data packets can be received in a timely manner.
[0168] Optionally, the data transmission method provided in this application embodiment may further include the following step 304.
[0169] Step 304: During the operation of the second timer, if the second device fully receives at least one data unit, the second device stops running the second timer and updates the RLC AM receive window and RLC variable of the second device.
[0170] It is understood that during the operation of the second timer, when at least one data unit has been fully received, it can be considered that the at least one data unit has been successfully transmitted. At this time, there is no need to monitor the timeout and discard time of the at least one data unit through the second timer, so the second timer can be stopped.
[0171] In this embodiment of the application, since the second timer can be stopped during its operation if it is determined that at least one data unit has been fully received, device power consumption can be saved and subsequent data packets can be received in a timely manner.
[0172] Optionally, in this embodiment of the application, the second device stops running the second timer, which can be achieved through the following step A.
[0173] Step A: If the third condition is met, the second device stops running the second timer.
[0174] The third condition mentioned above includes any one of the following:
[0175] The value of the third RLC variable is equal to the value of the second RLC variable;
[0176] The value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and the data unit with the sequence number of the second RLC variable value has only the last segment not received;
[0177] The value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window.
[0178] The value of the second RLC variable is the sum of the sequence number of the last data unit received in sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0179] In this embodiment of the application, the third condition mentioned above is the stopping condition of the reassembly timer.
[0180] Optionally, in this embodiment of the application, if any of the third conditions described above are met during the operation of the second timer, the second device may stop running the second timer.
[0181] In this embodiment of the application, since the second device can stop running the second timer when any of the third conditions mentioned above are met, the second timer can be stopped by different stopping conditions, thereby improving the flexibility of triggering the stop of the second timer.
[0182] For example, taking the second timer mentioned above as a timer associated with each RLC SDU, the specific process of the data transmission method provided in this application embodiment is as follows:
[0183] Step a: The first device receives a segment of the first data unit, or does not receive the first data unit but receives the second data unit or a segment of the second data unit.
[0184] Step b: The first device starts the second timer mentioned above. The duration of the second timer is configured by the network-side device.
[0185] Step c: If the second timer expires, the first device discards the segments of the first data unit that have been received, stops receiving the first data unit, and updates the RLCAM receiving window and RLC variable of the first device as if the first data unit was received correctly; if the first data unit is fully received during the operation of the second timer, the first device stops running the second timer and updates the RLCAM receiving window and RLC variable of the first device.
[0186] Step d: The first device sends a status report to the second device.
[0187] Step e: The second device updates its RLC AM transmission window and RLC variables based on the aforementioned status report.
[0188] Thus, upon receiving a segment of an RLC SDU or an RLC SDU with a sequence number greater than the current sequence number, the aforementioned second timer associated with the current RLC SDU can be started to determine the timeout discard time of the current RLC SDU. After the second timer expires, the received RLC SDUs that have timed out can be discarded in a timely manner and reception can be stopped, thereby reducing unnecessary transmissions and improving resource utilization.
[0189] For example, taking the second timer described above as a timer whose start and stop conditions are the same as the t-Reassembly timer, the specific process of the data transmission method provided in this application embodiment is as follows:
[0190] Step 1: Configure the duration of the second timer on the network side device. The duration of the second timer is greater than t-Reassembly timer.
[0191] Step ②: After the second timer expires, the second device may treat the at least one data unit as a fully received data unit, that is, perform the following operations on the at least one data unit:
[0192] If the sequence number of the data unit is equal to the value of RX_Highest_Status, then update RX_Highest_Status to the sequence number of the data that has not yet been fully received and is greater than the current RX_Highest_Status;
[0193] If the sequence number of the data unit is equal to the value of the second RLC variable mentioned above, then update the second RLC variable to the sequence number of the data that has not yet been fully received and is larger than the current second RLC variable;
[0194] Stop the second timer mentioned above, and if the start conditions of the second timer are met, restart the second timer and set the value of the third RLC variable mentioned above to the value of RX_Highest_Status.
[0195] Alternatively, perform the following operations on at least one data unit:
[0196] Update RX_Highest_Status to the sequence number of the first RLC SDU whose sequence number is greater than or equal to the value of RX_Next_Status_Trigger and which has not been fully received;
[0197] If the value of the first RLC variable is greater than the sum of the value of RX_Highest_Status and 1, or if the value of the first RLC variable is equal to the sum of the value of RX_Highest_Status and 1, and at least one SDU associated with a sequence number equal to the value of RX_Highest_Status is missing a byte segment, and the missing byte segment occurs before the last byte of all segments received for that SDU, then:
[0198] Start the second timer mentioned above;
[0199] Set the value of the third RLC variable to the value of the first RLC variable.
[0200] Since the start and stop conditions of the second timer are both multiplexed from the t-Reassembly timer, the second timer can be associated with multiple RLC SDUs. Thus, when the second timer expires, the associated multiple RLC SDUs can be discarded or stopped receiving simultaneously without processing a single RLC SDU, which simplifies the processing.
[0201] Optionally, the data transmission method provided in this application embodiment may further include the following step 305.
[0202] Step 305: During the operation of the second timer, if the second device receives the first indication information sent by the first device, and the third data unit corresponding to the serial number in the first indication information is associated with the second timer, then the second device performs the second operation.
[0203] The second operation includes any one of the following: processing the third data unit as a successfully received data unit, and stopping the second timer. The first indication information includes the sequence number or sequence number range of the first data packet, which includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission.
[0204] For example, the specific process of the data transmission method provided in this application embodiment is as follows:
[0205] Step G: The first device determines the sequence number or sequence number range of the first data packet and generates the aforementioned first indication information.
[0206] Step H: The first device sends the aforementioned first instruction information to the second device.
[0207] Step I: If the second timer associated with the RLC SDU corresponding to the serial number in the first indication information is running, the second device will process the RLC SDU as a successfully received data unit, or stop the second timer from running according to the timeout processing of the second timer associated with the RLC SDU.
[0208] Step K: If the second timer expires, the second device notifies the first device through a status report. The first device then stops the transmission of the corresponding data packet and processes the corresponding data packet as if it was successfully received.
[0209] In this embodiment of the application, if the second device receives the first indication information sent by the first device during the operation of the second timer, and the third data unit corresponding to the sequence number in the first indication information is associated with the second timer, the second device can perform the second operation. Therefore, in the scenario of simultaneous transmission and reception, the data unit that has not been fully received can be operated accordingly by checking whether the timer has expired. This can avoid unnecessary retransmissions at the RLC layer and save transmission resources.
[0210] For further descriptions of the data transmission method provided in the embodiments of this application, please refer to the relevant descriptions in the first device-side method embodiments described above. To avoid repetition, they will not be repeated here.
[0211] The above-described method embodiments, or various possible implementations of the method embodiments, can be executed individually, or, provided there are no contradictions, they can be combined with each other. The specific implementation can be determined according to actual usage requirements, and this application embodiment does not impose any restrictions on this.
[0212] The data transmission method provided in this application can be executed by a data transmission device. This application uses an example of a data transmission device executing the data transmission method to illustrate the data transmission device provided in this application.
[0213] This application provides a data transmission device. As an example, the data transmission device may be a communication device or a component within a communication device, such as a chip. The communication device may be a terminal, a network-side device, or a server, etc. Exemplarily, the terminal may include, but is not limited to, the type of terminal 11 listed above, and the network-side device may include, but is not limited to, the type of network-side device 12 listed above. This application does not impose specific limitations.
[0214] The data transmission device includes a receiving module, a transmitting module, and a processing module. These modules can be implemented in software or hardware. When implemented in hardware, the processing module can be implemented by a processor. For example, the processor can include general-purpose processors, special-purpose processors, such as a Central Processing Unit (CPU), microprocessor, Digital Signal Processor (DSP), Artificial Intelligence (AI) processor, Graphics Processing Unit (GPU), Application Specific Integrated Circuit (ASIC), Network Processor (NP), Field Programmable Gate Array (FPGA), or other programmable logic devices, gate circuits, transistors, discrete hardware components, etc. The receiving and transmitting modules can be implemented by a communication interface, which can include one or more of the following: transceiver, pins, circuits, bus, radio frequency unit, etc.
[0215] For details, see Figure 4 The data transmission device 40 includes: a transmission module 41.
[0216] The sending module 41 can be used to send a first indication message to the second device, and then, if a first condition is met, send a second indication message to the second device. The first indication message includes the sequence number or sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmission. The second indication message is the same as the first indication message, or includes an updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: a first timer started after sending the first indication message times out; or receiving an RLC status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet.
[0217] In one possible implementation, the data transmission device 40 may further include a first processing module. The first processing module may be used to restart the first timer after the sending module 41 sends the second instruction information to the second device.
[0218] In one possible implementation, the data transmission device 40 may further include a first processing module. The first processing module can be configured to determine that the first indication information was successfully transmitted if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgments of all data packets in the first data packet.
[0219] In one possible implementation, the data transmission device 40 may further include a first processing module. The first processing module can be configured to, during the operation of the first timer, if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgments of all data packets in the first data packet, determine that the first indication information has been successfully transmitted, and stop running the first timer.
[0220] In one possible implementation, the number of the aforementioned RLC status reports can be one or more.
[0221] In one possible implementation, the data transmission device 40 may further include a first processing module. The first processing module may be used to trigger polling after the sending module 41 sends the aforementioned first indication information to the second device.
[0222] In the data transmission apparatus provided in this application embodiment, after the data transmission apparatus sends packet loss indication information to the second device, it can send packet loss indication information to the second device again if the first condition is met, so that the second device can correctly receive the sequence number or sequence number range of at least one of the data packets that were dropped during transmission, data packets that timed out during transmission, data packets that stopped transmitting, and data packets that stopped retransmission, so as to update the RLC AM receive window and RLC variables. This can avoid unnecessary retransmissions at the RLC layer and save transmission resources.
[0223] The data transmission device provided in this application embodiment can implement all the processes implemented in the first device-side method embodiment described above and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0224] See Figure 5 The data transmission device 50 includes: a second processing module 51.
[0225] The second processing module 51 can be used to start a second timer when a second condition is met, and to perform a first operation when the second timer times out. The first operation includes at least one of the following: discarding received segments of at least one data unit, stopping reception of at least one data unit, and updating the RLC AM reception window and RLC variable of the second device. The second condition includes any one of the following: receiving a segment of the first data unit; not receiving the first data unit, but receiving a second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is equal to the value of the second RLC variable, except for the last segment. The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1.
[0226] In one possible implementation, the at least one data unit may include at least one of the following: a first data unit; a data unit whose sequence number is less than the value of a third RLC variable and has not been fully received, wherein the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0227] In one possible implementation, the duration of the second timer can be greater than the duration of the reassembly timer.
[0228] In one possible implementation, the second processing module 51 can also be used to stop the second timer from running after performing the first operation described above.
[0229] In one possible implementation, the second processing module 51 can also be used to stop running the second timer and update the RLCAM receiving window and RLC variable of the second device if at least one data unit has been fully received during the operation of the second timer.
[0230] In one possible implementation, the second processing module 51 can be specifically used to stop the second timer when a third condition is met. The third condition includes any of the following: the value of the third RLC variable is equal to the value of the second RLC variable; the value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and only the last segment of the data unit with the sequence number of the second RLC variable has not been received; the value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window. The value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0231] In one possible implementation, the second processing module 51 can also be used to perform a second operation during the operation of the second timer if it receives a first indication message sent by the first device, and the third data unit corresponding to the sequence number in the first indication message is associated with the second timer. The second operation includes any one of the following: treating the third data unit as a successfully received data unit and stopping the second timer. The first indication message includes the sequence number or sequence number range of the first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped from transmission, and a data packet that was stopped from retransmission.
[0232] In the data transmission apparatus provided in this application embodiment, when the second condition is met, the data transmission apparatus can start a second timer, and if the second timer times out, perform at least one of the following operations: discard at least one received segment of a data unit, stop receiving at least one data unit, and update the RLC AM receive window and RLC variables of the second device. Thus, by checking whether the timer has timed out, it can be determined whether the data packet transmission has timed out or been discarded, and corresponding operations can be performed on incompletely received data units, and the RLC AM receive window and RLC variables can be updated. This avoids unnecessary retransmissions at the RLC layer and saves transmission resources.
[0233] The data transmission device provided in this application embodiment can implement all the processes implemented in the above-described second device-side method embodiment and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0234] like Figure 6As shown, this application embodiment also provides a communication device 100, including a processor 101 and a memory 102. The memory 102 stores programs or instructions that can run on the processor 101. For example, when the communication device 100 is a terminal, the program or instructions executed by the processor 101 implement the various steps of the above-described terminal-side method embodiment and achieve the same technical effect. When the communication device 100 is a network-side device, the program or instructions executed by the processor 101 implement the various steps of the above-described network-side device method embodiment and achieve the same technical effect. To avoid repetition, further details are omitted here.
[0235] This application also provides a terminal, including a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the steps in the above-described terminal-side method embodiments. This terminal embodiment corresponds to the above-described terminal-side method embodiments; all implementation processes and methods of the above method embodiments can be applied to this terminal embodiment and achieve the same technical effects. The terminal can be... Figure 4 or Figure 5 The data transmission device shown. Specifically, Figure 7 A schematic diagram of the hardware structure of a terminal to implement an embodiment of this application.
[0236] The terminal 1000 includes, but is not limited to, at least some of the following components: radio frequency unit 1001, network module 1002, audio output unit 1003, input unit 1004, sensor 1005, display unit 1006, user input unit 1007, interface unit 1008, memory 1009, and processor 1010.
[0237] Those skilled in the art will understand that the terminal 1000 may also include a power supply (such as a battery) for supplying power to various components. The power supply may be logically connected to the processor 1010 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. Figure 7 The terminal structure shown does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be elaborated here.
[0238] It should be understood that, in this embodiment, the input unit 1004 may include a graphics processor 10041 and a microphone 10042. The graphics processor 10041 processes image data of still images or videos obtained by an image capture device (such as a camera) in video capture mode or image capture mode. The display unit 1006 may include a display panel 10061, which may be configured in the form of a liquid crystal display, an organic light-emitting diode, or the like. The user input unit 1007 includes a touch panel 10071 and at least one of other input devices 10072. The touch panel 10071 is also called a touch screen. The touch panel 10071 may include a touch detection device and a touch controller. Other input devices 10072 may include, but are not limited to, physical keyboards, function keys (such as volume control buttons, power buttons, etc.), trackballs, mice, and joysticks, which will not be described in detail here.
[0239] In this embodiment, after receiving downlink data from the network-side device, the radio frequency unit 1001 can transmit it to the processor 1010 for processing; in addition, the radio frequency unit 1001 can send uplink data to the network-side device. Typically, the radio frequency unit 1001 includes, but is not limited to, antennas, amplifiers, transceivers, couplers, low-noise amplifiers, duplexers, etc.
[0240] The memory 1009 can be used to store software programs or instructions, as well as various data. The memory 1009 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data. The first storage area may store the operating system, application programs or instructions required for at least one function (such as sound playback, image playback, etc.). Furthermore, the memory 1009 may include volatile memory or non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus RAM (DRRAM). The memory 1009 in this embodiment includes, but is not limited to, these and any other suitable types of memory.
[0241] The processor 1010 may include one or more processing units; optionally, the processor 1010 integrates an application processor and a modem processor, wherein the application processor mainly handles operations involving the operating system, user interface, and applications, and the modem processor mainly handles wireless communication signals, such as a baseband processor. It is understood that the aforementioned modem processor may also not be integrated into the processor 1010.
[0242] The radio frequency unit 1001 can be used to send a first indication information to the second device, and then, under a first condition, send a second indication information to the second device. The first indication information includes the sequence number or sequence number range of a first data packet, which includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmission. The second indication information is the same as the first indication information, or includes an updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: a first timer started after sending the first indication information times out; or receiving an RLC status report sent by the second device, where the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet.
[0243] In one possible implementation, the processor 1010 can be used to restart the first timer after the radio frequency unit 1001 sends the second instruction information to the second device.
[0244] In one possible implementation, the processor 1010 can also be used to determine that the first indication information was successfully transmitted if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet.
[0245] In one possible implementation, the processor 1010 can also be used to determine that the first indication information was successfully transmitted and stop running the first timer if it receives an RLC status report sent by the second device during the operation of the first timer, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet.
[0246] In one possible implementation, the number of the aforementioned RLC status reports can be one or more.
[0247] In one possible implementation, the processor 1010 can also be used to trigger polling after the radio frequency unit 1001 sends the aforementioned first indication information to the second device.
[0248] In the terminal provided in this application embodiment, after the terminal sends packet loss indication information to the second device, it can send packet loss indication information to the second device again if the first condition is met, so that the second device can correctly receive the sequence number or sequence number range of at least one of the data packets that were dropped during transmission, the data packets that timed out during transmission, the data packets that stopped transmitting, and the data packets that stopped retransmission, so as to update the RLC AM receive window and RLC variables. This can avoid unnecessary retransmissions at the RLC layer and save transmission resources.
[0249] The terminal provided in this application embodiment can implement all the processes implemented in the first device-side method embodiment described above and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0250] or,
[0251] The processor 1010 can be used to start a second timer when a second condition is met, and to perform a first operation when the second timer times out. The first operation includes at least one of the following: discarding received segments of at least one data unit, stopping reception of at least one data unit, and updating the RLC AM reception window and RLC variable of the second device. The second condition includes any one of the following: receiving a segment of the first data unit; not receiving the first data unit, but receiving a second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit whose sequence number is equal to the value of the second RLC variable, except for the last segment. The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1.
[0252] In one possible implementation, the at least one data unit may include at least one of the following: a first data unit; a data unit whose sequence number is less than the value of a third RLC variable and has not been fully received, wherein the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0253] In one possible implementation, the duration of the second timer can be greater than the duration of the reassembly timer.
[0254] In one possible implementation, the processor 1010 can also be used to stop the second timer after performing the first operation described above.
[0255] In one possible implementation, the processor 1010 can also be used to stop running the second timer and update the RLC AM receive window and RLC variable of the second device if at least one data unit has been fully received during the operation of the second timer.
[0256] In one possible implementation, the processor 1010 can specifically be used to stop the second timer from running when a third condition is met. The third condition includes any of the following: the value of the third RLC variable is equal to the value of the second RLC variable; the value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and only the last segment of the data unit with the sequence number of the second RLC variable has not been received; the value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window. The value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0257] In one possible implementation, the processor 1010 can also be configured to, during the operation of the second timer, execute a second operation if it receives a first indication message sent by the first device, and the third data unit corresponding to the sequence number in the first indication message is associated with the second timer. The second operation includes any one of the following: treating the third data unit as a successfully received data unit and stopping the second timer. The first indication message includes the sequence number or sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped from transmission, and a data packet that was stopped from retransmission.
[0258] In the terminal provided in this application embodiment, when the second condition is met, the terminal can start a second timer, and if the second timer times out, perform at least one of the following operations: discard at least one received segment of a data unit, stop receiving at least one data unit, and update the RLC AM receive window and RLC variables of the second device. Thus, by checking whether the timer has timed out, it can be determined whether the data packet transmission has timed out or been discarded, and corresponding operations can be performed on incompletely received data units, and the RLC AM receive window and RLC variables can be updated. This avoids unnecessary retransmissions at the RLC layer and saves transmission resources.
[0259] The terminal provided in this application embodiment can implement all the processes implemented in the above-described second device-side method embodiment and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0260] This application also provides a network-side device, including a processor and a communication interface. The communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the steps of the above-described network-side device method embodiments. This network-side device embodiment corresponds to the above-described network-side device method embodiments. All implementation processes and methods of the above method embodiments can be applied to this network-side device embodiment and achieve the same technical effects.
[0261] Specifically, embodiments of this application also provide a network-side device, which may be... Figure 4 or Figure 5 The data transmission device shown. (For example...) Figure 8 As shown, the network-side device 1100 includes: an antenna 111, a radio frequency (RF) device 112, a baseband device 113, a processor 114, and a memory 115. The antenna 111 is connected to the RF device 112. In the uplink direction, the RF device 112 receives information through the antenna 111 and transmits the received information to the baseband device 113 for processing. In the downlink direction, the baseband device 113 processes the information to be transmitted and sends it to the RF device 112. The RF device 112 processes the received information and transmits it through the antenna 111.
[0262] The method executed by the network-side device in the above embodiments can be implemented in the baseband device 113, which includes a baseband processor.
[0263] Baseband device 113 may include, for example, at least one baseband board on which multiple chips are disposed, such as Figure 8 As shown, one of the chips is, for example, a baseband processor, which is connected to the memory 115 via a bus interface to call the program in the memory 115 and execute the network device operation shown in the above method embodiment.
[0264] The network-side device may also include a network interface 116, such as a Common Public Radio Interface (CPRI).
[0265] Specifically, the network-side device 1100 in this application embodiment further includes: instructions or programs stored in memory 115 and executable on processor 114. The processor 114 calls the instructions or programs in memory 115 to execute the method executed by the network-side device and achieve the same technical effect. To avoid repetition, it will not be described in detail here.
[0266] The radio frequency device 112 can be used to send a first indication information to the second device, and then, under a first condition, send a second indication information to the second device. The first indication information includes the sequence number or sequence number range of a first data packet, which includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that stopped transmitting, or a data packet that stopped retransmission. The second indication information is the same as the first indication information, or includes an updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: a first timer started after sending the first indication information times out; or receiving an RLC status report sent by the second device, where the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet.
[0267] In one possible implementation, the processor 114 can be used to restart the first timer after the radio frequency device 112 sends the second instruction information to the second device.
[0268] In one possible implementation, the processor 114 can also be configured to determine that the first indication information was successfully transmitted if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet.
[0269] In one possible implementation, the processor 114 can also be used to determine that the first indication information was successfully transmitted and stop running the first timer if it receives an RLC status report sent by the second device during the operation of the first timer, and the RLC status report includes positive acknowledgment indications of all data packets in the first data packet.
[0270] In one possible implementation, the number of the aforementioned RLC status reports can be one or more.
[0271] In one possible implementation, the processor 114 can also be used to trigger polling after the radio frequency device 112 sends the aforementioned first indication information to the second device.
[0272] In the network-side device provided in this application embodiment, after the network-side device sends packet loss indication information to the second device, it can send packet loss indication information to the second device again if the first condition is met. This enables the second device to correctly receive the sequence number or sequence number range of at least one of the following: dropped data packets, data packets that timed out, data packets that stopped transmitting, and data packets that stopped retransmission. This allows for updating the RLC AM receive window and RLC variables, thus avoiding unnecessary retransmissions at the RLC layer and saving transmission resources.
[0273] The network-side device provided in this application embodiment can implement all the processes implemented in the first device-side method embodiment described above and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0274] or,
[0275] The processor 114 can be used to start a second timer when a second condition is met, and to perform a first operation when the second timer times out. The first operation includes at least one of the following: discarding received segments of at least one data unit, stopping reception of at least one data unit, and updating the RLC AM reception window and RLC variable of the second device. The second condition includes any one of the following: receiving a segment of the first data unit; not receiving the first data unit, but receiving a second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; the value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; the value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments of the data unit with the sequence number of the second RLC variable, except for the last segment. The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1.
[0276] In one possible implementation, the at least one data unit may include at least one of the following: a first data unit; a data unit whose sequence number is less than the value of a third RLC variable and has not been fully received, wherein the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0277] In one possible implementation, the duration of the second timer can be greater than the duration of the reassembly timer.
[0278] In one possible implementation, the processor 114 can also be used to stop the second timer from running after performing the first operation described above.
[0279] In one possible implementation, the processor 114 can also be used to stop running the second timer and update the RLC AM receive window and RLC variable of the second device if at least one data unit has been fully received during the operation of the second timer.
[0280] In one possible implementation, the processor 114 can specifically be used to stop the second timer when a third condition is met. This third condition includes any of the following: the value of the third RLC variable is equal to the value of the second RLC variable; the value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and only the last segment of the data unit with the sequence number of the second RLC variable has not been received; the value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window. The value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
[0281] In one possible implementation, the processor 114 can also be configured to, during the operation of the second timer, execute a second operation if it receives first indication information sent by the first device, and the third data unit corresponding to the sequence number in the first indication information is associated with the second timer. The second operation includes any one of the following: treating the third data unit as a successfully received data unit and stopping the second timer. The first indication information includes the sequence number or sequence number range of a first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped from transmission, and a data packet that was stopped from retransmission.
[0282] In the network-side device provided in this application embodiment, when the second condition is met, the network-side device can start a second timer, and when the second timer expires, perform at least one of the following operations: discard at least one received segment of a data unit, stop receiving at least one data unit, and update the RLC AM receive window and RLC variables of the second device. Thus, by checking whether the timer has expired, it can be determined whether the data packet transmission has timed out or been discarded, and corresponding operations can be performed on incompletely received data units, and the RLC AM receive window and RLC variables can be updated. This avoids unnecessary retransmissions at the RLC layer and saves transmission resources.
[0283] The network-side device provided in this application embodiment can implement all the processes implemented in the above-described second device-side method embodiment and achieve the same technical effect. To avoid repetition, it will not be described again here.
[0284] This application also provides a readable storage medium storing a program or instructions. When the program or instructions are executed by a processor, they implement the various processes of the above-described data transmission method embodiments and achieve the same technical effect. To avoid repetition, they will not be described again here.
[0285] The processor mentioned above is the processor in the terminal described in the above embodiments. The readable storage medium includes computer-readable storage media, such as computer read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk. In some examples, the readable storage medium may be a non-transient readable storage medium.
[0286] This application embodiment also provides a chip, which includes a processor and a communication interface. The communication interface is coupled to the processor. The processor is used to run programs or instructions to implement the various processes of the above data transmission method embodiments and can achieve the same technical effect. To avoid repetition, it will not be described again here.
[0287] It should be understood that the chip mentioned in the embodiments of this application may also be referred to as a system-on-a-chip, system chip, chip system, or system-on-a-chip, etc.
[0288] This application also provides a computer program / program product, which is stored in a storage medium and executed by at least one processor to implement the various processes of the above-described data transmission method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be described again here.
[0289] This application also provides a communication system, including: a terminal and a network-side device, wherein the terminal can be used to perform the steps of the first device-side method as described above, and the network-side device can be used to perform the steps of the second device-side method as described above; or, the terminal can be used to perform the steps of the second device-side method as described above, and the network-side device can be used to perform the steps of the first device-side method as described above.
[0290] It should be noted that, in this document, 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 limitations, 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. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.
[0291] From the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of computer software products plus necessary general-purpose hardware platforms, and of course, they can also be implemented by hardware. The computer software product is stored in a storage medium (such as ROM, RAM, magnetic disk, optical disk, etc.) and includes several instructions to cause the terminal or network-side device to execute the methods described in the various embodiments of this application.
[0292] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other implementations under the guidance of this application without departing from the spirit and scope of the claims. All of these implementations are within the protection scope of this application.
Claims
1. A data transmission method, characterized in that, The method includes: After the first device sends the first instruction information to the second device, if the first condition is met, the first device sends the second instruction information to the second device. Wherein, the first indication information includes the sequence number or sequence number range of the first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission; the second indication information is the same as the first indication information, or includes the updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: The first timer started by the first device after sending the first indication information times out; The first device receives a Radio Link Control (RLC) status report sent by the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet.
2. The method according to claim 1, characterized in that, After the first device sends the second indication information to the second device, the method further includes: The first device restarts the first timer.
3. The method according to claim 1 or 2, characterized in that, The method further includes: If the first device receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgments for all data packets in the first data packet, then the first device determines that the first indication information was successfully transmitted.
4. The method according to claim 1 or 2, characterized in that, The method further includes: During the operation of the first timer, if the first device receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgments for all data packets in the first data packet, then the first device determines that the first indication information has been successfully transmitted and stops running the first timer.
5. The method according to claim 3 or 4, characterized in that, The number of RLC status reports may be one or more.
6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: The first device triggers polling after sending the first indication information to the second device.
7. A data transmission method, characterized in that, The method includes: If the second condition is met, the second device starts the second timer; If the second timer times out, the second device performs the first operation; The first operation includes at least one of the following: discarding a received segment of at least one data unit, stopping receiving at least one data unit, and updating the RLC acknowledgment mode AM receive window and RLC variable of the second device; The second condition includes any one of the following: The second device receives the segment of the first data unit; The second device did not receive the first data unit, but received the second data unit or a segment of the second data unit, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; The value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; The value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments in the data unit whose sequence number is the value of the second RLC variable, except for the last segment; The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
8. The method according to claim 7, characterized in that, The at least one data unit includes at least one of the following: First data unit; Data units whose sequence number is less than the value of the third RLC variable and have not been fully received, wherein the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
9. The method according to claim 7 or 8, characterized in that, The duration of the second timer is greater than the duration of the reassembly timer.
10. The method according to any one of claims 7 to 9, characterized in that, After the second device performs the first operation, the method further includes: The second device stops running the second timer.
11. The method according to any one of claims 7 to 10, characterized in that, The method further includes: During the operation of the second timer, if the second device fully receives the at least one data unit, the second device stops running the second timer and updates the RLC AM receive window and RLC variable of the second device.
12. The method according to claim 10 or 11, characterized in that, The second device stops running the second timer, including: If the third condition is met, the second device stops running the second timer; The third condition includes any one of the following: The value of the third RLC variable is equal to the value of the second RLC variable; The value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and the data unit with the sequence number of the second RLC variable has only the last segment not received; The value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window; The value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
13. The method according to any one of claims 7 to 12, characterized in that, The method further includes: During the operation of the second timer, if the second device receives the first indication information sent by the first device, and the third data unit corresponding to the serial number in the first indication information is associated with the second timer, then the second device performs the second operation; The second operation includes any one of the following: processing the third data unit as a successfully received data unit and stopping the second timer; the first indication information includes the sequence number or sequence number range of the first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission.
14. A data transmission device, characterized in that, The device includes a transmitting module; The sending module is used to send a first indication message to the second device, and then, if a first condition is met, send a second indication message to the second device. Wherein, the first indication information includes the sequence number or sequence number range of the first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission; the second indication information is the same as the first indication information, or includes the updated sequence number or sequence number range of the first data packet. The first condition includes at least one of the following: The first timer started after sending the first indication information times out; The device receives an RLC status report from the second device, and the RLC status report includes a negative acknowledgment indication for at least one data packet in the first data packet.
15. The apparatus according to claim 14, characterized in that, The device further includes a first processing module; The first processing module is configured to restart the first timer after the sending module sends the second indication information to the second device.
16. The apparatus according to claim 14 or 15, characterized in that, The device further includes a first processing module; The first processing module is configured to determine that the first indication information was successfully transmitted if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet.
17. The apparatus according to claim 14 or 15, characterized in that, The device further includes a first processing module; The first processing module is configured to, during the operation of the first timer, if it receives an RLC status report sent by the second device, and the RLC status report includes positive acknowledgment indications for all data packets in the first data packet, determine that the first indication information has been successfully transmitted, and stop running the first timer.
18. The apparatus according to claim 16 or 17, characterized in that, The number of RLC status reports may be one or more.
19. The apparatus according to any one of claims 14 to 18, characterized in that, The device further includes a first processing module; The first processing module is configured to trigger polling after the sending module sends the first indication information to the second device.
20. A data transmission device, characterized in that, The device includes a second processing module; The second processing module is configured to start a second timer when a second condition is met, and to perform a first operation when the second timer times out. The first operation includes at least one of the following: discarding a received segment of at least one data unit, stopping receiving at least one data unit, and updating the RLC AM receive window and RLC variable of the second device; The second condition includes any one of the following: The segment of the first data unit has been received; The first data unit is not received, but the second data unit or a segment of the second data unit is received, wherein the sequence number of the second data unit is greater than the sequence number of the first data unit; The value of the first RLC variable is greater than the sum of the value of the second RLC variable and 1; The value of the first RLC variable is equal to the sum of the value of the second RLC variable and 1, and there are unreceived segments in the data unit whose sequence number is the value of the second RLC variable, except for the last segment; The value of the first RLC variable is the sum of the sequence number of the data unit with the largest sequence number among the received data units and 1, and the value of the second RLC variable is the sum of the sequence number of the last data unit received in complete order and 1.
21. The apparatus according to claim 20, characterized in that, The at least one data unit includes at least one of the following: First data unit; Data units whose sequence number is less than the value of the third RLC variable and have not been fully received, wherein the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
22. The apparatus according to claim 20 or 21, characterized in that, The duration of the second timer is greater than the duration of the reassembly timer.
23. The apparatus according to any one of claims 20 to 22, characterized in that, The second processing module is further configured to stop running the second timer after performing the first operation.
24. The apparatus according to any one of claims 20 to 23, characterized in that, The second processing module is further configured to, during the operation of the second timer, if the at least one data unit is fully received, stop the operation of the second timer and update the RLC AM receive window and RLC variable of the second device.
25. The apparatus according to claim 23 or 24, characterized in that, The second processing module is specifically used to stop the second timer from running when the third condition is met; The third condition includes any one of the following: The value of the third RLC variable is equal to the value of the second RLC variable; The value of the third RLC variable is equal to the sum of the value of the second RLC variable and 1, and the data unit with the sequence number of the second RLC variable has only the last segment not received; The value of the third RLC variable is outside the RLC AM receiving window of the second device, and the value of the third RLC variable is not equal to the sum of the value of the second RLC variable and the size of the RLC AM receiving window; The value of the second RLC variable is the sum of the sequence number of the last data unit received in complete sequence and 1, and the value of the third RLC variable is the sum of the sequence number of the data unit that triggered the second timer and 1.
26. The apparatus according to any one of claims 20 to 25, characterized in that, The second processing module is further configured to, during the operation of the second timer, if it receives a first indication message sent by the first device, and the third data unit corresponding to the serial number in the first indication message is associated with the second timer, then perform a second operation; The second operation includes any one of the following: processing the third data unit as a successfully received data unit and stopping the second timer; the first indication information includes the sequence number or sequence number range of the first data packet, and the first data packet includes at least one of the following: a data packet that was dropped during transmission, a data packet that timed out during transmission, a data packet that was stopped during transmission, and a data packet that was stopped from retransmission.
27. A terminal, characterized in that, It includes a processor and a memory, the memory storing a program or instructions that can run on the processor, the program or instructions being executed by the processor to implement the steps of the data transmission method as described in any one of claims 1 to 6, or to implement the steps of the data transmission method as described in any one of claims 7 to 13.
28. A network-side device, characterized in that, It includes a processor and a memory, the memory storing a program or instructions that can run on the processor, the program or instructions being executed by the processor to implement the steps of the data transmission method as described in any one of claims 1 to 6, or to implement the steps of the data transmission method as described in any one of claims 7 to 13.
29. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the data transmission method as described in any one of claims 1 to 6, or implement the steps of the data transmission method as described in any one of claims 7 to 13.