Disclosure of Invention
The invention provides a data transmission method, a data transmission device, electronic equipment and a storage medium, aiming at overcoming the defect that air interface resources are wasted when data transmission is carried out through a confirmation mode AM of an NR protocol in the prior art.
The invention solves the technical problems through the following technical scheme:
in a first aspect, a data transmission method is provided, which is applied to a data receiving end, where the data receiving end receives a protocol data unit PDU sent by a data sending end through an acknowledgment mode of an NR protocol, and the data receiving end includes an RLC layer and a PDCP layer; the data transmission method comprises the following steps:
judging whether the PDU received by the PDCP layer is lost or not;
and if so, sending the PUD received before the loss to an upper layer of the PDCP layer, and sending a receiving confirmation message to the data sending end so as to enable the data sending end to update the state variable and stop sending the PDU.
Optionally, the determining whether the protocol data unit PDU received by the PDCP layer is lost includes:
judging whether the sequence numbers of the received PDUs are continuous or not;
and under the condition that the judgment result is negative, determining that the PDU is lost.
Optionally, the determining whether the sequence numbers of the received PDUs are consecutive includes:
when the data is transmitted by adopting the out-of-order delivery function of the NR protocol, the received PDU is recombined;
and judging whether the sequence numbers of the recombined PDU are continuous or not.
Optionally, sending the PUD received before the loss to an upper layer of the PDCP layer, including:
starting a timer;
and if the lost PDU is not received when the timer finishes timing, sending the PUD received before the loss to an upper layer of the PDCP layer.
Optionally, sending a reception acknowledgement message to the data sending end includes:
triggering the RLC layer to organize the status determinations for all PDUs of the receive window;
and sending the receiving confirmation messages of all the PDUs to the data sending end so that the data sending end can confirm and release the original data corresponding to all the PDUs.
In a second aspect, a data transmission apparatus is provided, which is applied to a data receiving end, where the data receiving end receives a protocol data unit PDU sent by a data sending end through an acknowledgment mode of an NR protocol, and the data receiving end includes an RLC layer and a PDCP layer; the data transmission apparatus includes:
a judging module, configured to judge whether there is a loss in the PDU received by the PDCP layer;
and the confirmation module is used for sending the PUD received before the loss to an upper layer of the PDCP layer and sending a receiving confirmation message to the data sending end under the condition that the judgment result is yes, so that the data sending end updates the state variable and stops sending the PDU.
Optionally, the determining module includes:
a judging unit, configured to judge whether sequence numbers of received PDUs are consecutive;
and the determining unit is used for determining that the PDU is lost under the condition that the judgment result is negative.
Optionally, the determining unit is specifically configured to:
when the data is transmitted by adopting the out-of-order delivery function of the NR protocol, the received PDU is recombined;
and judging whether the sequence numbers of the recombined PDU are continuous or not.
Optionally, the confirmation module comprises:
the starting unit is used for starting the timer;
and a reporting unit, configured to send the PUD received before the loss to an upper layer of the PDCP layer when the missing PDU is not received yet after the timer expires.
Optionally, the confirmation module further comprises:
a triggering unit for triggering the RLC layer to organize the status determination for all PDUs of the receive window;
and the sending unit is used for sending the receiving confirmation messages of all the PDUs to the data sending end so that the data sending end can confirm and release the original data corresponding to all the PDUs.
In a third aspect, an electronic device is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the electronic device implements the data transmission method described in any one of the above.
In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored, which computer program, when being executed by a processor, realizes the data transmission method of any one of the above.
On the basis of the common knowledge in the field, the above preferred conditions can be combined randomly to obtain the preferred embodiments of the invention.
The positive progress effects of the invention are as follows: in the embodiment of the invention, after the data receiving end determines that the PDU is lost, the data receiving end sends the confirmation message representing the normal receiving of the PDU to the data sending end so as to prevent the data sending end from continuously sending the PDU, so that the data receiving end does not need to wait for the data sending end to retransmit the PDU, and the waste of air interface resources can be avoided.
Detailed Description
The invention is further illustrated by the following examples, which are not intended to limit the scope of the invention.
Fig. 1 is a schematic diagram of a user plane Protocol stack of a Data transmitting end and a Data receiving end according to an exemplary embodiment of the present invention, where the user plane Protocol includes, from top to bottom, an SDAP (Service Data Access Protocol) layer, a PDCP layer, an RLC layer, an MAC (Media Access Control) layer, and a PHY (Physical, material) layer, and these five layers constitute an Access layer. The embodiment of the invention mainly relates to a PDCP layer and an RLC layer, wherein the PDCP layer carries out segmented chaining, header compression, encryption and the like on data from an upper layer; the RLC layer is concerned with status reporting.
The data transmission process of the embodiment of the present invention is described below with reference to fig. 1.
Fig. 2 is a flowchart of a data transmission method according to an exemplary embodiment of the present invention, where the data transmission method is applied to a data receiving end, the data receiving end receives PDUs sent by a data sending end through an acknowledged mode of an NR protocol, and the data receiving end includes an RLC layer and a PDCP layer.
Referring to fig. 2, the data transmission method includes the steps of:
step 201, determining whether there is a loss in the protocol data unit PDU received by the PDCP layer.
In one embodiment, whether the sequence numbers SN of the received PDUs are continuous is judged; and under the condition that the judgment result is negative, namely the received sequence number SN of the PDU is discontinuous, determining that the PDU is lost. And if the judgment result is yes, namely the received sequence numbers SN of the PDUs are continuous, determining that the PDUs are not lost.
For example, if the sequence numbers SN of the received PDUs are m-2, m-1, m +1, and m-1 and m +1 have no consecutive numbers, it is determined that there is a PDU loss and that the missing PDU is one with the sequence number SN of m.
In one embodiment, an NR protocol order delivery function is used to transmit data, and when it is determined whether a protocol data unit PDU received by a PDCP layer is lost, it is directly determined whether sequence numbers SN of the PDUs are consecutive.
In an embodiment, in order to improve the data transmission efficiency of the RLC receiving end, the data is transmitted by using the out-of-order delivery function of the NR protocol, before determining whether a protocol data unit PDU received by the PDCP layer is lost, the received PDU needs to be reassembled, and whether the sequence number SN after the reassembly is continuous is determined.
In one embodiment, a timer t-Reordering timer is set in the PDCP layer for order-preserving operation of out-of-order arrival data. Upon receiving a frame of PDU from the RLC layer, the PDCP layer entity first calculates a COUNT value, i.e., RCVD _ COUNT, by: taking out the SN from the PDU, calculating the corresponding RCVD _ HFN, then splicing and calculating the RCVD _ COUNT, when the PDCP receives a protocol message with the COUNT value being RCVD _ COUNT, synchronously updating a receiving state variable RX _ NEXT, if the condition that RX _ DELIV < RX _ NEXT occurs at the moment, starting a timer t-Reordering timer for timing, and recombining the PDU received in a timing period. And judging whether the sequence numbers SN of the recombined PDUs in the timing period are continuous, and determining that the PDUs are lost under the condition that the judgment result is negative, namely the received sequence numbers SN of the PDUs are discontinuous. And if the judgment result is yes, namely the received sequence numbers SN of the PDUs are continuous, determining that the PDUs are not lost. Wherein RX _ DELIV is used to record the COUNT value +1 of the last up-commit, and the initial value is 0.
Step 202, under the condition that the judgment result is yes, sending the received PUD before the loss to an upper layer of the PDCP layer, and sending an acknowledgement message ACK to the data sending end, so that the data sending end updates the state variable and stops sending the PDU.
The upper layer of the PDCP layer may be, but is not limited to, the SDAP layer shown in fig. 1, and may also be an UP layer shown in fig. 3.
In one embodiment, if the PDCP layer starts a timer t-Reordering timer for timing, a timeout occurs when a missing PDU is received within a timing period. When the t-Reordering timer times out, the PDCP layer sends the previously lost received PUD to the upper layer of the PDCP layer, i.e. actively submits all data with COUNT value less than RX _ REORD. And updates RX _ DELIV to RX _ REORD followed by the first incompletely received PDCP protocol message.
In an embodiment, when the data receiving end sends an acknowledgement message ACK to the data sending end, the RLC layer is triggered to organize the status determinations of all PDUs in a receiving window, and send the reception acknowledgement messages of all PDUs to the data sending end, so that the data sending end performs the original data acknowledgement and release actions corresponding to all PDUs, and stops sending the PDUs.
In the embodiment of the invention, after the data receiving end determines that the PDU is lost, the data receiving end does not inform the data transmitting end of all message receiving conditions currently in a Status report confirmation window (RX _ Next ═ SN < RX _ Highest _ Status), including all RLC PDUs or RLC PDU segments which are not completely received, but directly transmits a confirmation message representing the normal receiving of the PDU to the data transmitting end so as to prevent the data transmitting end from continuously transmitting the PDU, so that the data receiving end does not need to wait for the data transmitting end to retransmit the PDU and avoid waste of air interface resources.
Wherein RX _ Next and RX _ Highest _ Status are state variables.
In an embodiment, if it is determined that the protocol data unit PDU received by the PDCP layer is lost, a timer is started, and if the lost PDU is not received when the timer expires, the PUD received before the loss is sent to an upper layer of the PDCP layer.
In any of the above embodiments, the method may be applied to, but is not limited to, 3GPP 38.322, 3GPP 38.323, 3GPP 38.321, 3GPP 38.331, and other protocols.
Fig. 3 is a flowchart illustrating another data transmission method according to an exemplary embodiment of the present invention, which further illustrates a data transmission process by taking an out-of-order delivery function as an example to transmit data.
Step 1: the PDCP layer of the data sending end sends n-n + k PDUs with SN numbers to the RLC layer.
Step 2: and the RLC layer of the data sending end assembles the PDU sent by the PDCP layer to obtain m-m + k PDUs, and sends the m-m + k PDUs to the bottom layer.
And step 3: the RLC layer of the data receiving end receives n + 1-n + k PDUs, and delivers the PDUs to the PDCP layer of the data receiving end out of order.
Suppose that a PDU with SN ═ n is lost.
In one embodiment, the RLC layer of the data receiving end may start a timer t-responsiveness timer to implement out-of-order delivery.
And 4, step 4: and the PDCP layer at the data receiving end recognizes that the PDU with the SN being m is not received, and starts a t-Reordering timer.
And 5: the PDCP at the data receiving end determines that the t-Reordering timer is overtime, triggers the upper layer submission action, and simultaneously updates the state variable RX _ DELIV to n + k + 1.
And triggering the upper layer submitting action, namely sending the PUD received before the loss to the upper layer of the PDCP layer.
Step 6: the PDCP layer of the data receiving end informs the RLC layer of the RLC SN number (m + k) corresponding to the state variable RX _ DELIV-1.
And 7: the RLC layer of the data receiving end organizes the status confirmation aiming at the PDU before the SN m + k, organizes the status report of the full ACK and sends the status report to the RLC layer of the data sending end.
The status report may indicate, but is not limited to, ACK SN + m + k +1 and no-acknowledgement bit NAK 0.
And 8: after receiving the status report, the RLC layer and the PDCP layer of the data transmitting end perform actions of confirming and releasing the original data.
In the embodiment of the invention, the RLC state packet confirmation mechanism under the existing protocol framework is optimized aiming at some special constraints under the current PDCP reordering function. After the PDCP is submitted upwards, the additional invalid retransmission packets can not occur at the air interface on the premise of not changing the reliability of air interface transmission, and the additional memory is occupied to generate certain influence on the performance.
Corresponding to the foregoing data transmission method embodiment, the present invention also provides an embodiment of a data transmission apparatus.
Fig. 4 is a schematic block diagram of a data transmission apparatus according to an exemplary embodiment of the present invention, which is applied to a data receiving end, where the data receiving end receives a protocol data unit PDU sent by a data sending end through an acknowledgment mode of an NR protocol, and the data receiving end includes an RLC layer and a PDCP layer; the data transmission apparatus includes:
a determining module 41, configured to determine whether there is a loss in the PDU received by the PDCP layer;
and a confirming module 42, configured to send, if the determination result is yes, the PUD received before the loss to an upper layer of the PDCP layer, and send a reception confirmation message to the data sending end, so that the data sending end updates the state variable and stops sending the PDU.
Optionally, the determining module includes:
a judging unit, configured to judge whether sequence numbers of received PDUs are consecutive;
and the determining unit is used for determining that the PDU is lost under the condition that the judgment result is negative.
Optionally, the determining unit is specifically configured to:
when the data is transmitted by adopting the out-of-order delivery function of the NR protocol, the received PDU is recombined;
and judging whether the sequence numbers of the recombined PDU are continuous or not.
Optionally, the confirmation module comprises:
the starting unit is used for starting the timer;
and a reporting unit, configured to send the PUD received before the loss to an upper layer of the PDCP layer when the missing PDU is not received yet after the timer expires.
Optionally, the confirmation module further comprises:
a triggering unit for triggering the RLC layer to organize the status determination for all PDUs of the receive window;
and the sending unit is used for sending the receiving confirmation messages of all the PDUs to the data sending end so that the data sending end can confirm and release the original data corresponding to all the PDUs.
For the device embodiments, since they substantially correspond to the method embodiments, reference may be made to the partial description of the method embodiments for relevant points. The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the scheme of the invention. One of ordinary skill in the art can understand and implement it without inventive effort.
Fig. 5 is a schematic diagram of an electronic device according to an exemplary embodiment of the present invention, and shows a block diagram of an exemplary electronic device 50 suitable for implementing an embodiment of the present invention. The electronic device 50 shown in fig. 5 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiment of the present invention.
As shown in fig. 5, the electronic device 50 may be embodied in the form of a general purpose computing device, which may be, for example, a server device. The components of the electronic device 50 may include, but are not limited to: the at least one processor 51, the at least one memory 52, and a bus 53 connecting the various system components (including the memory 52 and the processor 51).
The bus 53 includes a data bus, an address bus, and a control bus.
The memory 52 may include volatile memory, such as Random Access Memory (RAM)521 and/or cache memory 522, and may further include Read Only Memory (ROM) 523.
Memory 52 may also include a program tool 525 (or utility) having a set (at least one) of program modules 524, such program modules 524 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
The processor 51 executes various functional applications and data processing, such as the methods provided by any of the above embodiments, by running a computer program stored in the memory 52.
The electronic device 50 may also communicate with one or more external devices 54 (e.g., a keyboard, a pointing device, etc.). Such communication may be through an input/output (I/O) interface 55. Moreover, the model-generated electronic device 50 may also communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network, such as the Internet) via a network adapter 56. As shown, network adapter 56 communicates with the other modules of model-generated electronic device 50 over bus 53. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the model-generating electronic device 50, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID (disk array) systems, tape drives, and data backup storage systems, etc.
It should be noted that although in the above detailed description several units/modules or sub-units/modules of the electronic device are mentioned, such a division is merely exemplary and not mandatory. Indeed, the features and functionality of two or more of the units/modules described above may be embodied in one unit/module according to embodiments of the invention. Conversely, the features and functions of one unit/module described above may be further divided into embodiments by a plurality of units/modules.
Embodiments of the present invention further provide a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements the method provided in any of the above embodiments.
More specific examples, among others, that the readable storage medium may employ may include, but are not limited to: a portable disk, a hard disk, random access memory, read only memory, erasable programmable read only memory, optical storage device, magnetic storage device, or any suitable combination of the foregoing.
In a possible implementation manner, the embodiment of the present invention may also be implemented in a form of a program product, which includes program code for causing a terminal device to execute a method implementing any of the above-mentioned embodiments when the program product runs on the terminal device.
Where program code for carrying out the invention is written in any combination of one or more programming languages, the program code may be executed entirely on the user device, partly on the user device, as a stand-alone software package, partly on the user device and partly on a remote device or entirely on the remote device.
While specific embodiments of the invention have been described above, it will be appreciated by those skilled in the art that this is by way of example only, and that the scope of the invention is defined by the appended claims. Various changes and modifications to these embodiments may be made by those skilled in the art without departing from the spirit and scope of the invention, and these changes and modifications are within the scope of the invention.