Method for processing data packet and communication device
By sending only the RLC header of revoked PDUs, the method addresses the deadlock issue in the receiving window, ensuring efficient data packet processing in LTE protocols.
Patent Information
- Application Number
- CN202080006887.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-04-30
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2040-04-30
AI Technical Summary
The current LTE protocol lacks the ability to introduce a sequence number (SN) in the RLC service data unit (SDU), leading to a deadlock in the receiving window when a PDCP layer revokes an RLC PDU that has already been delivered to the MAC layer, causing state variables to remain unchanged.
The transmitting end sends only the RLC header of the PDCP PDU to be revoked, implicitly indicating receipt to the receiving end, allowing it to update state variables and move the receiving window, thereby avoiding deadlock.
This approach prevents the receiving window from freezing by ensuring the receiving end updates state variables and moves the window accordingly, maintaining smooth data packet processing.
Smart Images

Figure CN113875284B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of wireless communication technology, and more specifically, to a method and a communication device for processing a data packet. Background Art
[0002] Layer 2 of long term evolution (LTE) includes the packet data convergence protocol (PDCP) layer, the radio link control (RLC) layer and the media access control (MAC) layer. The data generated by the application layer of the sending end is added with the header information of each layer in turn to assist in realizing the functions of each layer. Among them, the RLC layer adds the header information of the RLC layer to the PDCP protocol data unit (PDU) from the PDCP layer, encapsulates it into the RLC PDU, enters the sending queue of the RLC layer's sending window, and submits it to the MAC layer. The MAC layer encapsulates the RLC PDU into a transport block (TB) and then sends it to the other end through the physical layer.
[0003] In some schemes to improve data transmission reliability, the PDCP layer can be configured with a duplication function. After the PDCP layer at the transmitting end enables the duplication function, it sends the PDCP PDU to the two associated RLC entities. When one of the RLC entities transmits successfully, it notifies the PDCP entity that the RLC PDU has been sent successfully. At this time, the PDCP entity notifies the other RLC entity to cancel the sending of the RLC PDU.
[0004] However, the current protocol stipulates that a gap in the sequence number (SN) cannot be introduced in the RLC service data unit (SDU). In other words, when the RLC entity receives a notification from the PDCP layer to cancel a RLC PDU, if the RLC PDU has been delivered to the MAC layer, it cannot be cancelled from the sending queue. If it is cancelled, the RLC entity at the receiving end corresponding to the RLC entity will never receive the cancelled RLC PDU. As a result, some state variables maintained by the receiving window of the RLC entity at the receiving end cannot be moved, resulting in a deadlock in the receiving window of the receiving end. Summary of the invention
[0005] The present application provides a method and a communication device for processing a data packet, which can avoid the PDCP layer at the transmitting end from revoking the received PDCP SN, resulting in a receiving window freeze at the RLC layer at the receiving end.
[0006] In a first aspect, the present application provides a method for processing a data packet, the method comprising: a transmitting end determines the carrying status of a PDCP PDU that needs to be revoked in an RLC PDU; the transmitting end sends a transmission block TB to a receiving end according to the carrying status, wherein, if the PDCP PDU that needs to be revoked is carried in an RLC PDU, the TB only includes the RLC header of the RLC PDU corresponding to the PDCP PDU that needs to be revoked.
[0007] In this technical solution, the transmitting end only sends the RLC header of the RLC PDU that needs to be cancelled, so as to implicitly indicate to the receiving end that the RLC PDU has been confirmed to be received and does not need to wait for reception. Thus, the receiving end updates the value of the first state variable and moves the receiving window, thereby avoiding the rigidity of the receiving window.
[0008] In combination with the first aspect, in some implementations of the first aspect, the method further includes:
[0009] The transmitting end performs marking processing on the RLC PDU corresponding to the PDCP PDU that needs to be revoked according to the carrying condition of the PDCP PDU that needs to be revoked in the RLC PDU, wherein:
[0010] If the PDCP PDU to be cancelled is carried in an entire RLC PDU, the transmitting end marks the data segment of the RLC PDU as cancelled; or,
[0011] If the PDCP PDU to be cancelled is carried in a partial segment of an RLC PDU, the transmitting end marks the partial segment of the RLC PDU as cancelled; or,
[0012] If the PDCP PDU to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and none of the multiple PDCP segments has been confirmed received by the receiving end, the transmitting end marks the RLC segments carrying the multiple PDCP PDUs as cancelled respectively; or,
[0013] If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and some PDCP segments in the multiple PDCP segments are confirmed to be received by the receiving end, the transmitting end does not mark the multiple RLC PDUs.
[0014] In combination with the first aspect, in certain implementations of the first aspect, a PDCP PDU of the transmitting end is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
[0015] As an example of a specific implementation of the method of the first aspect, the method of the first aspect can be implemented in the following manner:
[0016] For example, the RLC entity at the transmitting end receives a revocation notification from the PDCP entity, wherein the revocation notification is used to indicate a PDCP PDU that needs to be revoked and the PDCP PDU has been confirmed to be received by the receiving end; the RLC entity marks the RLC PDU or part of the data segments of the RLC PDU in the sending window corresponding to the PDCP PDU as cancelled; if an RLC PDU is marked as cancelled, the RLC entity only sends the RLC header of the RLC PDU, wherein the RLC PDU includes an RLC header and data segments, or, if part of the data segments of an RLC PDU are marked as cancelled, the RLC entity sends all the data of the RLC PDU.
[0017] In this technical solution, the RLC entity at the transmitting end only sends the RLC header of the RLC PDU that needs to be revoked, so as to implicitly indicate to the RLC entity at the receiving end that the RLC PDU has been confirmed to be received (specifically, it has been confirmed to be received by another RLC entity associated with the PDCP entity at the receiving end), and there is no need to wait for reception. Thus, the RLC entity at the receiving end updates the value of the first state variable and moves the receiving window, which can avoid the rigidity of the receiving window.
[0018] Optionally, in some implementations, the RLC entity marks the RLC PDU or part of the data segments of the RLC PDU corresponding to the PDCP PDU in the sending window as cancelled, including:
[0019] If the PDCP PDU to be cancelled is carried in an entire RLC PDU, the RLC entity marks the data segment of the RLC PDU as cancelled; or,
[0020] If the PDCP PDU to be cancelled is carried in a partial segment of an RLC PDU, the RLC entity marks the partial segment of the RLC PDU as cancelled; or,
[0021] If the PDCP PDU to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and none of the multiple PDCP segments has been confirmed received by the receiving end, the RLC entity marks the RLC segments carrying the multiple PDCP PDUs as cancelled respectively; or,
[0022] If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and some of the multiple PDCP segments are confirmed to be received by the receiving end, the RLC entity does not mark the multiple RLC PDUs.
[0023] In a second aspect, the present application provides a method for processing a data packet, the method comprising: a transmitting end determining a qualified RLC PDU according to different trigger conditions;
[0024] The transmitting end sends a status report to the receiving end, wherein the status report carries the RLC SN of the RLC PDU that meets the condition;
[0025] If the trigger condition is that the transmitting end determines to cancel a PDCP PDU, the RLC PDU that meets the condition is one of the following:
[0026] If the PDCP PDU that needs to be revoked is carried as a whole in one RLC PDU, and the RLC PDU only contains the PDCP PDU that needs to be revoked, then the eligible RLC PDU is the RLC PDU corresponding to the PDCP PDU that needs to be revoked; or,
[0027] If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and the multiple RLC PDUs respectively contain only the data of the PDCP that needs to be revoked, then the qualified RLC PDU is the multiple RLC PDUs carrying the multiple PDCP segments;
[0028] or,
[0029] If the trigger condition is that the value of the second state variable maintained by the transmitting end is updated, the RLC PDU that meets the condition is the RLC PDU in the transmitting end's sending window whose RLC SN is less than the reference RLC SN, and the reference RLC SN is the RLC SN corresponding to the PDCP SN indicated by the updated value of the second state variable maintained by the transmitting end, wherein the value of the second state is used to indicate the reception status of the PDCP PDU sent by the PDCP entity at the receiving end, and the PDCP PDU in the sending window whose PDCPSN is less than the value of the second state variable has all been confirmed to be received by the receiving end.
[0030] It should be understood that the trigger condition may also be that the transmitting end determines to cancel multiple PDCP PDUs, and the processing of any one of the multiple PDCP PDUs that need to be cancelled is the same as the processing of one PDCP PDU described in the second aspect.
[0031] In combination with the second aspect, in some implementations of the second aspect, the trigger condition is that the transmitting end determines to cancel a PDCP PDU, and the method further includes:
[0032] The transmitting end performs marking processing on the RLC PDU corresponding to the PDCP PDU that needs to be revoked according to the carrying condition of the PDCP PDU that needs to be revoked in the RLC PDU; wherein,
[0033] If the PDCP PDU to be revoked is carried in a partial segment of an RLC PDU, the transmitting end marks the RLC PDU as confirmed received and records the RLC SN corresponding to the RLC PDU when all the remaining segments of the RLC PDU are cancelled; or
[0034] If the PDCP PDU to be revoked is carried in multiple RLC PDUs, and the multiple RLC PDUs include a first-category RLC PDU and / or a second-category RLC PDU, the transmitting end marks the first-category RLC PDU as confirmed received, and records the RLC SN corresponding to the first-category RLC PDU; and, in the case that all data of the remaining PDCP PDUs included in the second-category RLC PDU are canceled, the transmitting end marks the second-category RLC PDU as confirmed received, and records the RLC SN corresponding to the second-category RLC PDU,
[0035] The first type of RLC PDU only includes data of the PDCP PDU that needs to be revoked, and the second type of RLC PDU includes data of multiple PDCP PDUs including the PDCP PDU that needs to be revoked.
[0036] In conjunction with the second aspect, in some implementations of the second aspect, the trigger condition is that a value of a second state variable maintained by the sending end is updated, and the method further includes:
[0037] The transmitting end marks the RLC PDUs that meet the conditions in the sending window;
[0038] The transmitting end performs marking processing on the RLC PDU that meets the conditions in the transmitting window, including:
[0039] The transmitting end traverses the sending window, parses each RLC PDU in the sending window, obtains the PDCP SN corresponding to each RLC PDU, and determines the maximum value and the minimum value that are less than the updated value of the second state variable from the PDCP SN corresponding to each RLC PDU;
[0040] The transmitting end takes all PDCP SNs in the interval [maximum value, minimum value] as input, and processes the PDCP PDU corresponding to each PDCP SN in the interval [maximum value, minimum value] according to the situation that the PDCP PDU corresponding to each PDCP SN is carried on the RLC PDU.
[0041] Among them, for the PDCP PDU corresponding to any PDCP SN in the interval [maximum value, minimum value],
[0042] If the PDCP PDU is carried in its entirety in one RLC PDU, and the RLC PDU contains only the data of the PDCP PDU, the transmitting end marks the RLC PDU as confirmed received, and records the RLC SN corresponding to the RLC PDU; or,
[0043] If the PDCP PDU is carried in a partial segment of an RLC PDU, the transmitting end marks the RLC PDU as confirmed received and records the RLC SN corresponding to the RLC PDU when all the remaining segments of the RLC PDU are cancelled; or,
[0044] If the PDCP PDU is carried in multiple RLC PDUs, and the multiple RLC PDUs include a first-type RLC PDU and / or a second-type RLC PDU, the transmitting end marks the first-type RLC PDU as confirmed received, and records the RLC SN corresponding to the first-type RLC PDU; and, in the case that the data of the remaining PDCP PDUs included in the second-type RLC PDU are all canceled, the transmitting end marks the second-type RLC PDU as confirmed received, and records the RLC SN corresponding to the second-type RLC PDU,
[0045] The first type of RLC PDU only includes data of the PDCP PDU, and the second type of RLC PDU includes data of multiple PDCP PDUs including the PDCP PDU.
[0046] As an example of a specific implementation of the method of the second aspect, the method of the second aspect can be implemented in the following manner:
[0047] For example, when the trigger condition is met, the RLC entity of the transmitting end marks the RLC PDU that meets the condition in the sending window as confirmed received, and adds the RLC SN corresponding to the RLC PDU that meets the condition to the confirmation list; the RLC entity sends a status report to the receiving end, and the status report includes the confirmation list.
[0048] The trigger condition is that the RLC entity receives a revocation notification from a PDCP entity, where the revocation notification is used to indicate a PDCP PDU that needs to be revoked, and the RLC PDU that meets the condition is one of the following:
[0049] If the PDCP PDU that needs to be revoked is carried as a whole in one RLC PDU, and the RLC PDU only contains the PDCP PDU that needs to be revoked, then the eligible RLC PDU is the RLC PDU corresponding to the PDCP PDU that needs to be revoked; or, if the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and the multiple RLC PDUs respectively contain only the data of the PDCP that needs to be revoked, then the eligible RLC PDU is the multiple RLC PDUs carrying the multiple PDCP segments;
[0050] or,
[0051] The trigger condition is that the value of the second state maintained by the PDCP entity is updated, the value of the second state is used to indicate the reception status of the PDCP PDU sent by the PDCP entity at the receiving end, the PDCP PDUs in the sending window whose PDCPSN is less than the value of the second state variable have all been confirmed to be received by the receiving end, the RLC PDU that meets the conditions is the RLC PDU in the sending window whose RLC SN is less than the reference RLC SN, and the reference RLC SN is the RLC SN corresponding to the PDCP SN indicated by the updated value of the second state variable.
[0052] In the present technical solution, the RLC entity at the transmitting end marks the RLC PDU according to the carrying status of the PDCP PDU to be revoked in the RLC PDU, and adds the SN of the marked RLC PDU to the confirmation list. Alternatively, when the value of the second state variable maintained by the PDCP entity at the transmitting end is updated, the RLC entity marks the corresponding RLC PDU and adds the SN of the marked RLC PDU to the confirmation list. Finally, the RLC entity at the transmitting end sends a status report to the receiving end, and the status report contains the RLC SN in the confirmation list, which explicitly indicates that the RLC PDU corresponding to the RLC SN included in the confirmation list has been cancelled. As a result, the RLC entity at the receiving end marks the RLC SN in the confirmation list as "received", updates the value of the first state variable, and moves the receiving window, thereby avoiding the deadlock of the receiving window.
[0053] Optionally, in some implementations, the trigger condition is that the RLC entity receives a revocation notification from a PDCP entity, and the method further includes:
[0054] If the PDCP PDU to be revoked is carried in a partial segment of an RLC PDU, the RLC entity marks the RLC PDU as confirmed received and adds the RLC SN corresponding to the RLC PDU to the confirmation list when all the remaining segments of the RLC PDU are cancelled; or
[0055] If the PDCP PDU that needs to be revoked is carried in multiple RLC PDUs, the multiple RLC PDUs include a first type of RLC PDU and / or a second type of RLC PDU, wherein the first type of RLC PDU only contains the data of the PDCP PDU that needs to be revoked, and the second type of RLC PDU contains the data of multiple PDCP PDUs including the PDCP PDU that needs to be revoked, the RLC entity marks the first type of RLC PDU as confirmed received, and adds the RLC SN corresponding to the first type of RLC PDU to the confirmation list; and, in the case that the data of the remaining PDCP PDUs contained in the second type of RLC PDU are all canceled, the RLC entity marks the second type of RLC PDU as confirmed received, and adds the RLC SN corresponding to the second type of RLC PDU to the confirmation list.
[0056] Optionally, in some implementations, the trigger condition is that a value of a second state variable maintained by the PDCP entity is updated.
[0057] The RLC entity at the transmitting end marks the RLC PDU that meets the conditions in the sending window as confirmed received, and adds the RLC SN of the RLC PDU that meets the conditions to a confirmation list, including:
[0058] The RLC entity traverses the sending window, parses each RLC PDU in the sending window, obtains a PDCP SN corresponding to each RLC PDU, and determines a maximum value and a minimum value that are less than an updated value of the second state variable from the PDCP SNs corresponding to each RLC PDU;
[0059] The RLC entity takes all PDCP SNs in the interval [maximum value, minimum value] as input, and processes the PDCP PDU corresponding to each PDCP SN in the interval [maximum value, minimum value] according to the situation that the PDCP PDU corresponding to each PDCP SN is carried on the RLC PDU,
[0060] Among them, for the PDCP PDU corresponding to any PDCP SN in the interval [maximum value, minimum value],
[0061] If the PDCP PDU is carried as a whole in one RLC PDU, and the RLC PDU only contains data of the PDCP PDU, the RLC entity marks the RLC PDU as confirmed received, and adds the RLC SN corresponding to the RLC PDU to the confirmation list; or,
[0062] If the PDCP PDU is carried in a partial segment of an RLC PDU, and the RLC entity cancels the transmission of all the remaining segments of the RLC PDU, the RLC entity marks the RLC PDU as confirmed received and adds the RLC SN corresponding to the RLC PDU to the confirmation list; or,
[0063] If the PDCP PDU is carried in multiple RLC PDUs, the multiple RLC PDUs include a first type of RLC PDU and / or a second type of RLC PDU, wherein the first type of RLC PDU only contains the data of the PDCP PDU, and the second type of RLC PDU contains the data of multiple PDCP PDUs including the PDCP PDU, the RLC entity marks the first type of RLC PDU as confirmed received, and adds the RLC SN corresponding to the first type of RLC PDU to the confirmation list; and, in a case where the data of the remaining PDCP PDUs contained in the second type of RLC PDU are all canceled, the RLC entity marks the second type of RLC PDU as confirmed received, and adds the RLC SN corresponding to the second type of RLC PDU to the confirmation list.
[0064] In a third aspect, the present application provides a method for processing data packets, the method comprising: a receiving end receives a TB from a sending end; the receiving end decapsulates the TB to obtain one or more RLC PDUs; if some RLC PDUs in the one or more RLC PDUs only include an RLC header and do not include a data segment, the receiving end updates a value of a first state variable according to a sequence number of the RLC PDU that only includes an RLC header and does not include a data segment, wherein the value of the first state variable is used to indicate the RLC SN corresponding to the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0065] As an example of a specific implementation of the method of the third aspect, the method of the third aspect can be implemented in the following manner:
[0066] For example, the RLC entity at the receiving end receives the RLC PDU from the sending end; when the RLC PDU only includes the RLC header and does not include data segments, the RLC entity marks the RLC PDU as received; the RLC entity updates the value of the first state variable of the receiving window, and the value of the first state variable is used to indicate the RLC SN corresponding to the next RLC PDU to be received in the receiving window, wherein the RLC PDUs whose RLC SN is less than the value of the first state variable have all been received.
[0067] Here, the third aspect is a receiving end method corresponding to the first aspect. Its technical effect can be found in the description of the first aspect and will not be repeated here.
[0068] In a fourth aspect, the present application provides a method for processing a data packet, the method comprising: a receiving end receiving a status report from a sending end, wherein the status report carries one or more RLC SNs;
[0069] The RLC PDU corresponding to the one or more RLC SNs is the RLC PDU corresponding to the PDCP PDU that needs to be revoked, or,
[0070] The one or more RLC SNs are RLC PDUs whose PDCP SN is smaller than a reference RLC SN, the reference RLC SN is an RLC SN corresponding to a PDCP SN indicated by an updated value of a second state variable maintained by the transmitting end, wherein the value of the second state is used to indicate a reception status of the PDCP PDU sent by the transmitting end at the receiving end, and all PDCP PDUs whose PDCP SN is smaller than the value of the second state variable in the sending window have been received;
[0071] The receiving end updates the value of the first state variable according to the one or more RLC SNs, and the value of the first state variable is used to indicate the sequence number of the next RLC PDU to be received by the receiving end, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0072] As an example of a specific implementation of the method of the fourth aspect, the method of the fourth aspect can be implemented in the following manner:
[0073] For example, the RLC entity at the receiving end receives a status report from the transmitting end, wherein the status report includes a confirmation list, and the confirmation list carries one or more RLC SNs; the RLC entity marks the RLC PDU corresponding to the one or more RLC SNs as received in the receiving window; the RLC entity updates the value of a first state variable, and the value of the first state variable is used to indicate the SN of the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0074] Here, the fourth aspect is a receiving end method corresponding to the second aspect. Its technical effect can be found in the description of the second aspect and will not be repeated here.
[0075] In a fifth aspect, the present application provides a method for processing a data packet, the method comprising: when a value of a third state variable maintained by a receiving end is updated, determining, by a receiving end, a qualified RLC PDU, the value of the third state variable being used to indicate a reception status of a PDCP PDU from a transmitting end by the receiving end, and all PDCP PDUs whose PDCP SN is less than the value of the third state variable have been received,
[0076] The qualified RLC SN is an RLC SN smaller than a reference RLC SN, and the PDCP SN corresponding to the reference RLC SN is a maximum PDCP SN smaller than the value of the third state variable among the PDCP SNs corresponding to the RLC PDUs received by the receiving end;
[0077] The receiving end updates the value of the first state variable according to the sequence number of the qualified RLC PDU, and the value of the first state variable is used to indicate the sequence number of the next RLC PDU to be received, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0078] In conjunction with the fifth aspect, in some implementations of the fifth aspect, the method further includes:
[0079] The receiving end performs marking processing on the RLC PDU that meets the conditions;
[0080] The receiving end performs marking processing on the RLC PDU that meets the conditions, including:
[0081] The receiving end traverses the RLC PDUs received in the receiving window, determines the PDCP SNs corresponding to the received RLC PDUs, and parses the PDCP PDU corresponding to the maximum PDCP SN that is less than the value of the third state variable among the PDCP SNs corresponding to the received RLC PDUs, and the reference RLCSN corresponding to the maximum PDCP SN, wherein:
[0082] If the PDCP PDU corresponding to the maximum PDCP SN is a PDCP PDU as a whole, and the PDCP PDU is carried in a RLC PDU as a whole, the receiving end marks all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0083] If the PDCP PDU corresponding to the maximum PDCP SN is a PDCP PDU as a whole, and the PDCP PDU is carried in a partial segment of an RLC PDU, the receiving end marks all RLC PDUs whose RLC SNs are smaller than the reference RLCSN in the unreceived RLC PDUs as received; or,
[0084] If the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in the entirety of an RLC PDU, the receiving end marks all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0085] If the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in a partial segment of an RLC PDU, the receiving end marks all RLC PDUs whose RLC SN is smaller than the reference RLC SN in the unreceived RLC PDUs as received.
[0086] In combination with the fifth aspect, in some implementations of the fifth aspect, when the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in the entirety of an RLC PDU, or when the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in a partial segment of an RLC PDU, the method further includes:
[0087] The receiving end does not process the RLC PDU of other segments carrying the PDCP PDU.
[0088] As an example of a specific implementation of the method of the fifth aspect, the method of the fifth aspect can be implemented in the following manner:
[0089] For example, in a case where the value of the third state variable maintained by the PDCP entity at the receiving end is updated, the RLC entity at the receiving end marks the eligible RLC PDU in the receiving window as received, wherein the value of the third state variable is used to indicate the reception status of the PDCP entity for the PDCP PDU from the transmitting end, and all PDCP PDUs whose PDCP SN is less than the value of the third state variable have been received, wherein each PDCP SN has a PDCP count value, the eligible RLC SN is an RLC SN less than a reference RLC SN, and the PDCP count value of the PDCP SN corresponding to the reference RLC SN is the maximum PDCP count value of the PDCP count values of the PDCP SNs corresponding to the RLC PDUs received in the receiving window that is less than the value of the third state variable;
[0090] The RLC entity updates the value of the first state variable of the receiving window, the value of the first state variable is used to indicate the SN of the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0091] The PDCP entity at the receiving end maintains the third state variable, and when the value of the third state variable is updated, the RLC entity at the receiving end marks the corresponding RLC PDU as received, and sends a status report to the sending end, and the RLC entity at the sending end marks the corresponding RLC PDU as canceled. In this way, the RLC entity at the receiving end can also timely update the value of the first state variable to be consistent with the reception status of the PDCP PDU maintained by the PDCP entity, and move the receiving window, thereby avoiding the rigidity of the receiving window.
[0092] Optionally, in some implementations, the RLC entity at the receiving end marks the eligible RLC PDU in the receiving window as received, including:
[0093] The RLC entity at the receiving end traverses the RLC PDUs received in the receiving window, determines the PDCP count values corresponding to the received RLC PDUs, and parses out the PDCP PDU corresponding to the maximum PDCP count value that is less than the value of the third state variable among the PDCP count values corresponding to the received RLC PDUs, and the reference RLC SN corresponding to the maximum PDCP count value, wherein:
[0094] If the PDCP PDU corresponding to the maximum PDCP count value is a PDCP PDU as a whole, and the PDCP PDU is carried in a RLC PDU as a whole, the RLC entity marks all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLCSN as received; or,
[0095] If the PDCP PDU corresponding to the maximum PDCP count value is a PDCP PDU as a whole, and the PDCP PDU is carried in a partial segment of an RLC PDU, the RLC entity marks all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0096] If the PDCP PDU corresponding to the maximum PDCP count value is the first segment of a PDCP PDU, and the PDCP PDU is carried in the entirety of an RLC PDU, the RLC entity marks all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0097] If the PDCP PDU corresponding to the maximum PDCP count value is the first segment of a PDCP PDU, and the PDCP PDU is carried on a partial segment of an RLC PDU, the RLC entity marks all RLC PDUs whose RLC SNs are less than the reference RLC SN in the unreceived RLC PDUs as received.
[0098] Optionally, in some implementations, when the PDCP PDU corresponding to the maximum PDCP count value is the first segment of a PDCP PDU, and the PDCP PDU is carried in the entirety of an RLC PDU, or when the PDCP PDU corresponding to the maximum PDCP count value is the first segment of a PDCP PDU, and the PDCP PDU is carried in a partial segment of an RLC PDU, the method further includes:
[0099] The RLC entity does not process the RLC PDUs of other segments carrying the PDCP PDU.
[0100] In any one of the methods or implementations of the first to fifth aspects above, a PDCP PDU of the PDCP entity of the transmitting end and the receiving end is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
[0101] In a sixth aspect, the present application provides a communication device, wherein the communication device has the function of implementing the method in the first aspect or any possible implementation thereof, or the communication device has the function of implementing the method in the second aspect or any possible implementation thereof. The function can be implemented by hardware, or can be implemented by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above functions.
[0102] In a seventh aspect, the present application provides a communication device, wherein the communication device has the function of implementing the method in the third aspect or any possible implementation thereof, or the communication device has the function of implementing the method in the fourth aspect or any possible implementation thereof, or the communication device has the function of implementing the method in the fifth aspect or any possible implementation thereof. The functions may be implemented by hardware, or by hardware executing corresponding software implementations. The hardware or software includes one or more units corresponding to the above functions.
[0103] In an eighth aspect, the present application provides a communication device, comprising a processor, a memory, and a transceiver. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory, and control the transceiver to send and receive signals, so that the communication device executes the method in the first aspect or any possible implementation thereof, or executes the method in the second aspect or any possible implementation thereof.
[0104] In a ninth aspect, the present application provides a communication device, comprising a processor, a memory, and a transceiver. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory, and control the transceiver to send and receive signals, so that the communication device executes the method in the third aspect or any possible implementation thereof, or executes the method in the fourth aspect or any possible implementation thereof, or executes the method in the fifth aspect or any possible implementation thereof.
[0105] In a tenth aspect, the present application provides a computer-readable storage medium, in which computer instructions are stored. When the computer instructions are executed on a computer, the method in the first aspect or any possible implementation thereof is implemented, or the method in the second aspect or any possible implementation thereof is implemented.
[0106] In an eleventh aspect, the present application provides a computer-readable storage medium, in which computer instructions are stored. When the computer instructions are executed on a computer, the method in the third aspect or any possible implementation thereof is implemented, or the method in the fourth aspect or any possible implementation thereof is implemented, or the method in the fifth aspect or any possible implementation thereof is implemented.
[0107] In a twelfth aspect, the present application provides a computer program product, comprising a computer program or code. When the computer program or code is run on a computer, the method in the first aspect or any possible implementation thereof is implemented, or the method in the second aspect or any possible implementation thereof is implemented.
[0108] In a thirteenth aspect, the present application provides a computer program product, comprising a computer program or code, wherein when the computer program or code is run on a computer, the method in the third aspect or any possible implementation thereof is implemented, or the method in the fourth aspect or any possible implementation thereof is implemented, or the method in the fifth aspect or any possible implementation thereof is implemented.
[0109] In a fourteenth aspect, the present application provides a communication device comprising a processor and a communication interface, wherein the communication interface is used to receive a signal and transmit the signal to the processor, and the processor processes the signal so that the method in the first aspect or any possible implementation thereof is executed, or the method in the second aspect or any possible implementation thereof is executed.
[0110] In a fifteenth aspect, the present application provides a communication device, comprising a processor and a communication interface, wherein the communication interface is used to receive a signal and transmit the signal to the processor, and the processor processes the signal so that the method in the third aspect or any possible implementation thereof is executed, or the method in the fourth aspect or any possible implementation thereof is executed, or the method in the fifth aspect or any possible implementation thereof is executed.
[0111] In a sixteenth aspect, the present application provides a wireless communication system, comprising the communication device as described in the eighth aspect and the communication device as described in the ninth aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0112] Figure 1 Schematic diagram of LTE L2 data processing.
[0113] Figure 2 The basic flow of transmitting data packets for LTE AM.
[0114] Figure 3 This is an operation diagram of the AM sending window of the LTE RLC layer.
[0115] Figure 4 This is an operation diagram of the AM receiving window of the LTE RLC layer.
[0116] Figure 5 Diagram of data transmission after the duplication function is configured for PDCP.
[0117] Figure 6 This is a schematic flow chart of Scheme 1 of the present application.
[0118] Figure 7 This is an example of processing data packets for scenario 1.
[0119] Figure 8 This is a schematic flow chart of Scheme 2 of the present application.
[0120] Fig. 9 This is an example of scenario 2.
[0121] Fig.10 This section provides an example to illustrate the operation process of the sending window and the receiving window in Solution 2.
[0122] Fig.11 An example of a status report format provided for this application.
[0123] Fig.12 A schematic flow chart of Scheme 3 provided in this application.
[0124] Fig.13 This is an example of a method for processing data packets according to Solution 3 of the present application.
[0125] Fig.14 This is an example of Scheme 3 provided in this application.
[0126] Fig.15 A schematic block diagram of a communication device 1000 provided in the present application.
[0127] Fig.16 A schematic block diagram of another communication device 2000 provided in the present application.
[0128] Fig.17 A schematic structural diagram of the communication device 10 provided in this application.
[0129] Fig.18 A schematic structural diagram of another communication device 20 provided in the present application. DETAILED DESCRIPTION
[0130] The technical solution in this application will be described below in conjunction with the accompanying drawings.
[0131] In order to facilitate understanding of the solution, we first briefly introduce the relevant technologies involved in this application.
[0132] LTE Layer 2 (hereinafter referred to as LTE L2) includes the PDCP layer, RLC layer and MAC layer. The PDCP layer is responsible for the in-order transmission and reordering of data packets. The RLC layer is responsible for segmentation and segment reassembly. The MAC layer is responsible for logical channel multiplexing and demultiplexing. When data is transmitted at each layer, it is necessary to add header information of each layer to assist in the implementation of the functions of each layer. LTE L2 data processing is as follows: Figure 1 shown.
[0133] See also Figure 1 , Figure 1 Schematic diagram of LTE L2 data processing. Figure 1As shown in FIG. 1 , a PDCP PDU is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN. For example, the corresponding relationship among PDCP PDU, RLC PDU, MAC PDU and transport block (TB) is as follows: Figure 1 shown.
[0134] The RLC layer provides three transmission modes: transparent mode (TM), unacknowledged mode (UM) and acknowledged mode (AM). In AM, reliable data transmission is provided between the RLC entities at the sender and the receiver. The basic process is shown in Figure 2.
[0135] See also Figure 2 , Figure 2 The basic flow of transmitting data packets for LTE AM.
[0136] (1) The sender allocates an RLC SN to the RLC SDU, forms an RLC PDU, and after submitting it to the MAC layer, saves the RLC PDU into the send queue of the send window. At the same time, the sender notifies the receiver whether to send a status report through the flag bit P of the RLC PDU. For example, if the value of P is set to 1, it means sending, and if the value of P is set to 0, it means not sending.
[0137] (2) After receiving the RLC PDU, the receiving end marks the corresponding RLC PDU as received and sends a status report based on the value of P carried.
[0138] (3) After receiving the status report, the transmitting end resends the unacknowledged RLC PDU or its segment.
[0139] (4) The RLC layer at the transmitting end notifies the PDCP layer of the RLC SDU that the receiving end has confirmed receipt.
[0140] For detailed process of the sender, see Figure 3 .
[0141] like Figure 3 , Figure 3 This is the operation diagram of the AM sending window of the LTE RLC layer. The definitions of the variables involved in the sending window are as follows:
[0142] VT(A): RLC SN to be confirmed. RLC SNs smaller than this value have been confirmed by the receiving end. The initial value is 0, which is the lower boundary of the sending window.
[0143] AM_Window_Size: AM window size. When using 10-bit SN, its size is 512; when using 16-bit SN, its size is 32768;
[0144] VT(MS): The maximum SN value of the sending window, which is VT(A)+AM_Window_Size-1, is the upper boundary of the sending window;
[0145] VT(S): the maximum value of the sent RLC SN + 1, the initial value is 0;
[0146] POLL_SN: the maximum value of the RLC SNs carrying the value of P of 1;
[0147] PDU_WITHOUT_POLL: The total number of RLC SNs that have not notified the receiving end to send a status report. If this value is ≥ 5 (it actually depends on the specific implementation), the receiving end needs to be notified to send a status report. It is updated every time a PDU is sent;
[0148] BYTE_WITHOUT_POLL: The amount of RLC PDU data for which the receiving end has not been notified of the status report (in bytes), updated each time a PDU is sent;
[0149] RETX_COUNT: The number of retransmissions of RLC PDU. Each RLC PDU maintains a value. It is updated every time it is retransmitted. When the number of retransmissions is greater than a certain set value, the upper layer is notified to trigger the connection re-establishment and the current connection is terminated.
[0150] t_PollRetransmit: Triggers a timer to notify the receiving end to send a status report. When the timer times out, the value of P in the most recently sent PDU is set to 1 to notify the receiving end to send a status report and restart the timer after sending it. When the status report from the receiving end is received, the timer is restarted.
[0151] exist Figure 3 In the RLC, the SN of the AM sending window is 10 bits, and the AM_Window_Size is 512. In addition, the assembly relationship of PDCP PDU in the RLC layer is as follows: PDCP PDU 5 is carried on RLC PDU 0; PDCP PDU 6 is carried on RLC PDU 1; PDCP PDU 7 is carried on two RLC PDUs, namely RLC PDU 2 and RLC PDU 3; PDCP PDU 8 is carried on RLC PDU 3, 4; PDCP PDU 9 is carried on RLC PDU 5.
[0152] The operation process of the send window is as follows:
[0153] A: The sending end initially establishes a connection, and all variables are initial values. At this time, according to the uplink scheduling resources, the RLC layer submits 5 acknowledgement mode data protocol data units (AMDPDU) (total size is 1kB) to the MAC layer, allocates SN within the sending window range [0, 511], and adds it to the sending queue of the sending window. The timer t_PollRetransmit is not started.
[0154] B: The transmitter sends 5 AMD PDUs, PDU_WITHOUT_POLL = set the threshold value to 5, set the value of P to 1 in the sent AMD PDU4, and notify the receiver to send a status report. POLL_SN moves to 4, and the timer t_PollRetransmit starts.
[0155] C: The transmitter receives the status report from the receiver and confirms that RLC PDU 0, 1, 4 have been received. RLC PDU 0, 1 are complete SDUs, which correspond to PDCP PDU 5, 6 respectively. The RLC layer notifies the PDCP layer that PDCP PDU 5, 6 have been confirmed received. RLC PDU 4 is a segment to be assembled, and the RLC layer does not notify the PDCP layer. VT(A) moves to 2.
[0156] The RLC layer allocates a SN to the newly transmitted AMD PDU 5 in the sending window [2, 513], adds it to the sending queue of the sending window, and submits it to the MAC layer.
[0157] D: The transmitter retransmits RLC PDU 2 and 3 based on the status report, and the RETX_COUNT value of RLC PDU 2 and 3 is increased by 1. If the transmission channel is congested and the maximum number of retransmissions is reached, the upper layer triggers connection reestablishment and the current connection is terminated.
[0158] E: The transmitting end receives the status report from the receiving end, which notifies that RLC PDU 3 has been received. The RLC layer assembles RLC PDU 3 and 4 into PDCP PDU 8, and notifies the PDCP layer that PDCP PDU 8 has been confirmed to have been received.
[0159] The RLC layer of the transmitting end receives the cancellation notification from the PDCP layer and requests to cancel PDCP PDU 7. PDCP PDU 7 is carried on RLC PDU 2, 3. Since the RLC layer has allocated SNs for RLC PDU 2, 3, it cannot be cancelled. Therefore, the RLC layer does not process it.
[0160] For detailed process of receiving end, see Figure 4 .like Figure 4 , Figure 4 This is the operation diagram of the AM receiving window of the LTERLC layer.
[0161] The definitions of the variables involved in the receiving window are as follows:
[0162] VR(R): The next RLC SN to be received. All RLC SNs smaller than this value have been received, which is the lower boundary of the receiving window.
[0163] VR(H): the maximum value of the currently received RLC SN + 1;
[0164] AM_Window_Size: AM window size. When using 10-bit SN, its size is 512; when using 16-bit SN, its size is 32768;
[0165] VR(MR): The maximum SN value of the receiving window, which is VR(R)+AM_Window_Size-1, is the upper boundary of the receiving window;
[0166] VR(MS): The maximum value of the received RLC SN when sending the status report. It is updated when the timer t-Reassembly times out or the received RLC SN is equal to its value.
[0167] VR(X): the value of VR(H) when the timer t-Reordering times out;
[0168] t-Reordering: reordering timer, sends a status report when it times out. The actual timeout period may depend on the specific implementation, and is started in a continuous loop;
[0169] t-StatusProhibit: The timer for prohibiting the sending of status reports is started after the status report is sent. The status report can be sent only after the timeout.
[0170] exist Figure 4 In the example, the SN of the AM receiving window of RLC is 10 bits, and the AM_Window_Size is 512. In addition, the assembly relationship of PDCP PDU in the RLC layer is as follows: PDCP PDU 5 is carried on RLC PDU 0; PDCP PDU 6 is carried on RLC PDU 1; PDCP PDU 7 is carried on two RLC PDUs, namely RLC PDU 2 and RLC PDU 3; PDCP PDU 8 is carried on RLC PDU 3, 4; PDCP PDU 9 is carried on RLC PDU 5.
[0171] The operation process of the receiving window is as follows:
[0172] A: Initial state, all variables are at initial values, newly received AMD PDU 0, 1, both in the receiving window [0, 511], VR(R), VR(H), VR(X) and VR(MS) move to 2, VR(MR) moves to 513, and timer t-Reordering is started;
[0173] The RLC layer parses AMD PDU 0, 1 to obtain PDCP PDU 5, 6. The RLC layer notifies the PDCP layer that PDCP PDU 5, 6 has been confirmed to be received.
[0174] B: The receiver receives AMP PDU 4. In the receiving window [2, 513], VR(H) moves to 5 (P is 1, but 4>VR(MS), so no status report is sent).
[0175] C: Timer t-Reordering expires, triggering the sending of a status report SR to notify the receiving end that AMD PDUs 0, 1, and 4 have been received, but AMD PDUs 2 and 3 have not been received. VR(X) moves to 5. At the same time, AMD PDU 5 is received, and within the receiving window [2, 513], VR(H) moves to 6. Timer t-Reotdering and t-StatusProhibit are restarted.
[0176] D: The RLC layer at the receiving end receives the retransmission of AMD PDU 3, assembles AMD PDU 3 and 4 into PDCP PDU 8, and notifies the PDCP layer that PDCP PDU 8 has been confirmed to be received. t-Reordering times out, triggering the receiving end to send a status report, notifying the sending end that AMD PDU 3 and 5 have been received. VR(X) moves to 6. Timers t-Reordering and t-StatusProhibit are restarted.
[0177] After the duplication function is enabled at the PDCP layer, one PDCP is associated with two RLC transmission channels, such as Figure 5 shown.
[0178] See also Figure 5 , Figure 5 Schematic diagram of data transmission after configuring the duplication function for PDCP. Figure 5 When the PDCP entity layer at the transmitting end sends data, it will send the same PDCP PDU to two associated RLC entities for AM transmission at the same time. The PDCP layer at the receiving end also associates two RLC transmission channels at the same time and receives PDCP PDUs from the two associated RLC entities. For the same PDCP PDU, the one received later is discarded as a duplicate PDU.
[0179] For example, in Figure 5 In the example, the PDCP entity at the transmitting end is associated with two RLC entities, which are respectively denoted as RLC entity 1 (for example Figure 5 RLC_T_LTE at the transmitting end) and RLC entity 2 (e.g. Figure 5 The PDCP entity at the receiving end is associated with two RLC entities, namely RLC entity 3 (for example Figure 5 RLC_T_LTE at the receiving end) and RLC entity 4 (e.g. Figure 5 Among them, RLC entity 1 and RLC entity 3 form an RLC transmission channel, and RLC entity 2 and RLC entity 4 form another RLC transmission channel.
[0180] A: RLC entity 1 at the transmitting end receives a status report from the receiving end, which indicates that PDCP PDUs 5 and 6 corresponding to RLC SDUs 0 and 1 have been received. RLC entity 1 notifies the PDCP layer of the reception status of the PDCP PDUs.
[0181] B: After the PDCP entity receives the confirmation of PDCP PDU 5, 6 through an RLC entity (e.g., RLC entity 1), it will notify another associated RLC entity (e.g., RLC entity 2) to cancel the transmission of the RLC SDU corresponding to PDCP PDU 5, 6. If the RLC SDU notified of cancellation has been sent once, it cannot be cancelled according to the current protocol and can only be retransmitted. For example, Figure 5 In the example, RLC_T_LTE notifies the PDCP layer that a certain PDCP PDU has been successfully sent, and the PDCP layer notifies RLC_T_NR to cancel the sending of the PDCP PDU. Assuming that the successfully sent PDCP PDU is PDCP PDU 5, 6, according to Figure 3 and Figure 4 As shown in , PDCP PDUs correspond to RLC PDU0, 1 respectively. If RLC_T_NR cancels the sending of RLC PDU 0, 1 from the sending window, the RLC_T_NR at the receiving end will never be able to receive RLC PDU 0, 1, VR(R) cannot move, and the receiving window is frozen.
[0182] To this end, the present application proposes a technical solution to solve the problem of receiving window deadlock of the RLC entity at the receiving end when the PDCP entity is configured with the duplication function and the RLC PDU is cancelled.
[0183] The technical solution of this application is introduced below.
[0184] The technical solution of the present application can be applied to the scenario of uplink and downlink data transmission of LTE. For example, in uplink transmission, the transmitting end in each embodiment is a terminal device, and the receiving end is a network device. In downlink transmission, the transmitting end is a network device, and the receiving end is a terminal device.
[0185] The network device mentioned in the present application may be any device with wireless transceiver function. The network device includes but is not limited to: evolved Node B (eNB), radio network controller (RNC), Node B (NB), base station controller (BSC), base transceiver station (BTS), home evolved NodeB (or home Node B, HNB), baseband unit (BBU), access point (AP), wireless relay node, wireless backhaul node, transmission point (TP) or transmission and reception point (TRP), etc.
[0186] The terminal device mentioned in this application may refer to user equipment, access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal (terminal), wireless communication device, user agent or user device. The terminal device may also be a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with wireless communication function, a computing device or other processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, a terminal device in an LTE network or a terminal device in a later communication system, etc., and this application does not limit this.
[0187] Solution 1
[0188] For the PDCP PDU that needs to be revoked, the transmitting end cancels sending the data segment of the corresponding RLC PDU and only sends the RLC header. The PDCP PDU of the transmitting end is encapsulated by L2 (as described above) to finally obtain the TB, which is then sent to the receiving end through the air interface. The receiving end decapsulates the received TB. If some RLC PDUs (for example, one or more) in the decapsulated RLC PDU only contain the RLC header but not the data segment, the receiving end can know that the PDCP PDUs corresponding to these RLC PDUs containing only the RLC header are the PDCP PDUs revoked by the transmitting end. As a result, the receiving end updates the state variables of the receiving window.
[0189] For example, as a specific implementation method, the RLC entity at the transmitting end receives a revocation notification from the PDCP entity, and the revocation notification is used to indicate the PDCP SN that needs to be revoked. The RLC entity finds the RLC SN corresponding to the PDCP SN that needs to be revoked from the queue of the sending window, and marks the data segment of the RLC PDU corresponding to the RLC SN as "cancelled", indicating that the RLC PDU is the RLC PDU that needs to be revoked. When the RLC entity retransmits the PDU, if the data segment of the RLC PDU is marked as "cancelled", the RLC entity only sends the RLC header of the RLC PDU, that is, the RLC PDUHeader.
[0190] When the RLC entity at the receiving end receives an RLC PDU without data segments but only with an RLC header, it marks the RLC PDU as "received" and updates the state variable of the receiving window.
[0191] See also Figure 6 , Figure 6 This is a schematic flow chart of Scheme 1 of the present application.
[0192] 210. The PDCP entity at the transmitting end sends a revocation notification to the RLC entity, wherein the revocation notification carries the PDCP PDU that needs to be revoked.
[0193] For example, the revocation notification carries the SN of the PDCP PDU that needs to be revoked.
[0194] The RLC entity receives the revocation notification from the PDCP entity, and obtains the PDCP PDU that needs to be revoked.
[0195] 220. The RLC entity at the transmitting end finds the RLC PDU corresponding to the PDCP PDU to be revoked from the sending window, and marks the RLC PDU as "cancelled".
[0196] Here, "cancel" means canceling the sending of the marked RLC PDU.
[0197] As above Figure 1 It is introduced that in LTE, a PDCP PDU may be carried on one RLC PDU or on multiple RLC PDUs. Therefore, when marking the RLC PDU corresponding to the PDCP SN that needs to be revoked, the following situations need to be considered.
[0198] Case 1
[0199] If the PDCP PDU that needs to be revoked is carried in its entirety in one RLC PDU, that is, the RLC PDU only contains the PDCP PDU that needs to be revoked, then the data segment of the RLC PDU is marked as "cancelled"; or,
[0200] If the PDCP PDU corresponding to the PDCP SN that needs to be revoked is entirely carried in a partial data segment of an RLC PDU, the corresponding data segment of the RLC PDU is marked as "cancelled".
[0201] It should be understood that the "corresponding data segment" mentioned here refers to the data segment of the RLC PDU that carries the PDCP PDU.
[0202] Case 2
[0203] If the PDCP PDU that needs to be revoked is carried as a whole in multiple RLC PDUs, that is, the PDCP PDU is split into multiple segments and carried in multiple RLC PDUs, then it is necessary to determine whether the multiple segments of the PDCP PDU have all been confirmed to be received by the receiving end. If all the segments of the PDCP PDU have not been confirmed to be received by the receiving end, the corresponding segments of the multiple RLC PDUs are marked as "cancelled"; if some segments of the PDCP PDU have been confirmed to be received by the receiving end, the RLC entity does not process the multiple RLC PDUs (that is, does not mark them).
[0204] 230. When the RLC entity at the transmitting end performs retransmission processing, if a data segment of an RLC PDU is marked as "cancelled", the RLC entity only sends the RLC header of the RLC PDU, that is, the RLC PDUHeader. If only part of the data segment of an RLC PDU is marked as "cancelled", the RLC entity continues to retransmit all the data of the RLC PDU.
[0205] 240. After receiving the RLC PDU that only includes the RLC header but does not include the data segment, the RLC entity at the receiving end marks the RLC PDU as "received" and updates the first state variable of the receiving window.
[0206] Specifically, in step 240, the first state variable specifically refers to the value of VR(R) of the receiving window of the RLC entity at the receiving end as described above. That is, the value of the first state variable is used to indicate the reception status of the RLC entity at the receiving end for the RLC PDU, wherein the RLC SNs smaller than the value of the first state variable have been received.
[0207] Optionally, the receiving end may send a status report to the transmitting end to feedback the reception status of the RLC PDU if the conditions for sending the status report are met, for example, based on the indication of the value of the marker bit P of the received RLC PDU (see the description above), as shown in step 250.
[0208] 250. The RLC entity at the receiving end sends a status report to the transmitting end, where the status report carries the reception status of the marked RLC PDU.
[0209] After receiving the status report, the transmitting end updates the values of the state variables of the transmitting window according to the reception status of the RLC PDU fed back in the status report, for example, updating the values of VT(A) and VT(S).
[0210] Combine the following Figure 7 , the scheme of removing the data segment of the RLC entity proposed in Scheme 1 is illustrated by an example.
[0211] See also Figure 7 , Figure 7 This is an example of processing data packets in scheme 1. There are 6 RLC PDUs in the sending window of the RLC entity at the transmitting end, and their corresponding RLC SNs are 12 to 17 respectively. If the RLC entity receives a revocation notification from the PDCP entity, for example, assuming that the PDCP SN to be revoked is 3, then the RLC SN corresponding to PDCP SN 3 is 13, and PDCP SN3 is carried as a whole in the RLC PDU corresponding to RLC SN 13, therefore, the RLC entity can mark the data segment of the RLC PDU corresponding to RLC SN 13 as "cancelled".
[0212] For another example, assume that the SN of the PDCP PDU to be revoked is 5, and the RLC SN corresponding to PDCP SN 5 is 14, and the RLC PDU corresponding to RLC SN 14 carries data of two PDCP PDUs, and the PDCP PDU corresponding to PDCP SN 5 is only a partial data segment of the RLC PDU corresponding to RLC SN 14. According to the processing principle of the RLC entity for PDU introduced in step 220, the RLC entity marks the corresponding data segment of RLC PDU 14 (specifically, the data segment carrying the PDCP PDU corresponding to PDCP SN 4) as "cancelled".
[0213] For another example, assume that the SN of the PDCP PDU to be revoked is 7, and PDCP SN 7 is carried in multiple RLC PDUs, and the SNs of the multiple RLC PDUs are 15, 16, and 17. In addition, 7-1(F) contained in the RLC PDU corresponding to RLC SN 15 and 7-3(L) contained in the RLC PDU corresponding to RLC SN 17 have been confirmed to be received by the receiving end, while 7-2 contained in the RLC PDU corresponding to RLC SN 16 has not been received by the receiving end. Among them, 7-1(F) indicates that the segment identified by 7-1 is the first segment of PDCP PDU 7, and 7-3(L) indicates that the segment identified by 7-3 is the last segment of PDCP PDU 7. According to the processing principle of the RLC entity introduced in step 220, if the PDCP PDU is carried in multiple RLC PDUs, and some segments of the PDCP PDU have been confirmed to be received by the receiving end, the RLC entity does not process the multiple RLC PDUs. Therefore, the RLC entity does not mark the data segments of the RLC PDU 16.
[0214] It can be understood that since the RLC PDU 16 is not received by the receiving end, the subsequent transmitting end will continue to retransmit the RLC PDU 16. During the subsequent retransmission, the RLC entity retransmits all the data of the RLC PDU 16. If the receiving end receives the RLC PDU 16 and feeds it back to the transmitting end before the set number of retransmissions is reached. During retransmission, the RLC entity of the transmitting end deletes the data segments of the RLC PDU 16 and only sends the header of the RLC PDU 16. After receiving the RLC PDU 16 containing only the header, the RLC entity of the receiving end marks the RLC PDU 16 as received, updates the first state variable of the receiving window, and moves the receiving window.
[0215] It can be seen that in solution 1, the RLC entity at the receiving end sends only the RLC header of the RLC PDU that needs to be revoked, so as to implicitly indicate to the RLC entity at the receiving end that the RLC PDU has been confirmed to be received (specifically, it has been confirmed to be received by another RLC entity associated with the PDCP entity at the receiving end), and there is no need to wait for reception. Thus, the RLC entity at the receiving end updates the value of the first state variable and moves the receiving window, thereby avoiding the rigidity of the receiving window.
[0216] Solution 2
[0217] When the sending end needs to cancel the RLC PDU, or when the sending status of the PDCP PDU is updated (for example, successfully received by the receiving end), the sending end determines the qualified RLC PDU and sends a status report to the receiving end. The status report carries the sequence number of the determined qualified RLC PDU to trigger the receiving end to update the state variables of the receiving window and move the receiving window according to the sequence number of the RLC PDU carried in the status report.
[0218] For example, as a specific implementation method, the PDCP entity at the sending end maintains a second state variable, wherein the value of the second state variable is used to indicate the reception status of the PDCP PDU sent by the PDCP entity at the receiving end, and all PDCP PDUs whose PDCPSN is less than the value of the second state variable have been received by the receiving end.
[0219] When the triggering condition is met, the RLC entity at the transmitting end traverses the sending window, marks the RLC PDUs that meet the conditions in the sending window as "confirmed received", and adds the corresponding RLC SN of the marked RLC PDU to the confirmation list.
[0220] Subsequently, the RLC entity at the transmitting end generates a status report and sends it to the receiving end, and moves the sending window. The status report carries the RLC SN included in the confirmation list.
[0221] After receiving the status report, the receiving end marks the RLC PDU corresponding to the RLC SN carried in the confirmation list as "received", updates the first state variable, and moves the receiving window.
[0222] Specifically, in Solution 2, the second state variable maintained by the PDCP entity can be recorded as TX_Next_Ack, where TX_Next_Ack means that all PDCP PDUs whose PDCP SN is less than the value of TX_Next_Ack have been confirmed to be received by the receiving end. In other words, all PDCP PDUs whose PDCP SN of the transmitting end is less than the value of TX_Next_Ack have been successfully sent.
[0223] Optionally, the trigger condition includes at least one of the following:
[0224] Trigger condition (1): The RLC entity at the transmitting end receives a revocation notification from the PDCP entity, where the revocation notification carries the SN of the PDCP PDU to be revoked;
[0225] Trigger condition (2): The RLC entity at the transmitting end learns that the value of the second state variable maintained by the PDCP entity is updated. For example, when the value of the second state variable maintained by the PDCP entity at the transmitting end changes, the PDCP entity proactively sends a notification to the RLC entity to inform the change.
[0226] See also Figure 8 , Figure 8 This is a schematic flow chart of Scheme 2 of the present application.
[0227] 310. When the triggering condition is met, the RLC entity at the transmitting end marks the RLC PDU that meets the condition as "confirmed received".
[0228] Depending on the triggering conditions, the specific implementation of the RLC entity marking the RLC PDU in step 310 is described in detail below.
[0229] When the trigger condition (1) is met, the RLC entity at the transmitting end receives a revocation notification from the PDCP entity, which carries the PDCP SN to be revoked. The RLC entity traverses the sending window, finds the RLC PDU that meets the conditions, marks the corresponding RLC PDU as "confirmed received", and adds the RLC SN corresponding to the marked RLC PDU to the confirmation list (hereinafter referred to as CNF-LIST).
[0230] In the process of marking the RLC PDU, the RLC entity processes the RLC PDU in different ways according to the different situations in which the PDCP PDU to be cancelled is carried in the RLC PDU (for example, the PDCP PDU to be cancelled is carried in an RLC PDU or its data segment, or the PDCP PDU is carried in multiple RLC PDUs). Fig. 9 The following describes the process of RLC entity marking RLC PDU. Fig. 9 , Fig. 9 This is an example of scenario 2.
[0231] (1) If the PDCP PDU that needs to be revoked is carried in its entirety in an RLC PDU, the RLC PDU is marked as "confirmed received". That is, the RLC PDU that carries the PDCP PDU that needs to be revoked is a RLC PDU that meets the conditions.
[0232] For example, in Fig. 9 In the embodiment, if the PDCP PDU to be cancelled is PDCP 2, the RLC entity marks RLC PDU12 as "acknowledged receipt". Alternatively, if the PDCP PDU to be cancelled is PDCP 3, the RLC entity marks RLC PDU13 as "acknowledged receipt".
[0233] (2) If the PDCP PDU to be revoked is carried in its entirety in an RLC PDU, and the RLC PDU contains data of multiple PDCP PDUs, the RLC entity only marks the corresponding part of the RLC PDU as "confirmed received". The RLC entity needs to wait until all parts of the RLC PDU are confirmed received by the receiving end before marking the RLC PDU as "confirmed received", where the "corresponding part" refers to the part of the RLC PDU that carries the PDCP PDU to be revoked.
[0234] For example, Fig. 9 The RLC PDU 14 shown in the figure carries PDCP PDUs 4 and 5. If the RLC entity receives a cancellation notification for PDCP PDU 4, the RLC entity only marks the portion corresponding to PDCP PDU 4 in RLC PDU 14 as "confirmed receipt", and does not mark the entire RLC PDU 14. Instead, the RLC PDU 14 is marked as "confirmed receipt" after receiving a cancellation notification for PDCP PDU 5 sent by the PDCP entity.
[0235] (3) If the PDCP PDU that needs to be revoked is carried as a whole in multiple RLC PDUs, the RLC entity marks the corresponding parts of each of the multiple RLC PDUs as "confirmed received". For example, the multiple RLC PDUs include first-type RLC PDUs and / or second-type RLC PDUs, wherein the RLC PDU that only carries the PDCP PDU that needs to be revoked is called the first-type RLC PDU, and the RLC PDU that carries multiple PDCP PDUs including the PDCP PDU that needs to be revoked is called the second-type RLC PDU.
[0236] If a certain RLC PDU among the multiple RLC PDUs (first type RLC PDU) only carries the data of the PDCP PDU that needs to be revoked, the RLC PDU shall be marked as "confirmed received"; if a certain RLC PDU among the multiple RLC PDUs (second type RLC PDU) carries the data of other PDCP PDUs in addition to the data of the PDCP PDU that needs to be revoked, the RLC entity shall wait until all the PDCP PDUs contained in the RLC PDU are revoked, and then mark the RLC PDU as "confirmed received".
[0237] For example, Fig. 9 As shown in , upon receiving the cancellation notification for PDCP PDU 9, the RLC entity marks RLC PDUs 18 and 19 as "acknowledged". The RLC PDUs corresponding to RLC SNs 18 and 19 both belong to the first type of RLC PDUs.
[0238] For another example, when the RLC entity receives a cancellation notification for PDCP PDU 10, the RLC entity marks RLC PDU 20 as "confirmed received", and marks the bearer 10-2 (L) portion of RLC PDU 21 as "confirmed received", and after the RLC entity receives a cancellation notification for PDCP PDU 11, the RLC entity marks RLC PDU 21 as "confirmed received". Among them, the RLC PDU corresponding to RLC SN 20 belongs to the first type of RLC PDU, and the RLC PDU corresponding to RLC SN 21 belongs to the second type of RLC PDU.
[0239] Under trigger condition (2), the RLC entity traverses the sending queue of the sending window, marks the RLC PDUs whose PDCP SN values are less than the TX_Next_Ack values as "confirmed received", and adds the SNs of the marked RLC PDUs to the confirmation list.
[0240] Specifically, this process can be described as follows:
[0241] The RLC entity traverses the send queue of the send window, parses the PDCP SN carried by each RLC PDU, and obtains the maximum value (hereinafter referred to as PDCP_TRANS_MAX) and the minimum value (hereinafter referred to as PDCP_TRANS_MIN) that are less than the updated value of TX_Next_Ack;
[0242] The RLC entity takes the PDCP SN in the interval [PDCP_TRANS_MAX, PDCP_TRANS_MIN] as input and executes step 310. Specifically, the RLC entity processes the RLC PDU in the receiving window according to the way of marking the RLC PDU in step 310.
[0243] For example, in Fig. 9 In the example, it is assumed that the RLC entity at the transmitting end obtains that the value of TX_Next_Ack maintained by the PDCP entity is updated from 2 to 7, that is, TX_Next_Ack=7, indicating that the PDCP PDU with a PDCP SN less than 7 has been sent successfully.
[0244] The RLC entity traverses the sending window, parses the PDCP SN carried by each RLC PDU, and obtains the maximum and minimum values less than PDCP SN 7, which are 6 and 2 respectively, that is, PDCP_TRANS_MAX=6, PDCP_TRANS_MIN=2.
[0245] Taking [PDCP SN 2, PDCP SN 6] as an interval, the RLC PDU is processed according to the processing principle of the RLC entity in step 310 to generate a confirmation list.
[0246] 320. The transmitting end generates a status report and sends it to the receiving end, and moves the sending window, wherein the status report carries information of the RLC SN included in the confirmation list.
[0247] 330. The RLC entity at the receiving end receives the status report from the transmitting end, marks the RLCSN in the confirmation list as "received", updates the value of the first state variable, and moves the receiving window.
[0248] The description of the first state variable is the same as that in Solution 1 and will not be repeated here.
[0249] like Fig.10 , Fig.10 This section provides an example to illustrate the operation process of the sending window and the receiving window in Solution 2.
[0250] There are 6 RLC PDUs in the sending window of the RLC entity at the transmitting end, among which the assembly relationship between PDCP PDU and RLC PDU is as follows: Fig.10 as shown in .
[0251] Status before A: In the sending window, the RLC PDU corresponding to RLC SN 15, 17 is confirmed to be received by the receiving end, VT(A)=12, VT(S)=18; in the receiving window, the RLC PDU corresponding to RLC SN 15, 17 has been received, VR(R)=12, VR(H)=18.
[0252] A: The RLC entity at the transmitting end sends a cancellation notification to the receiving end for PDCP PDU 3. The RLC entity finds from the sending window that PDCP PDU 3 is carried as a whole in RLC PDU 13, then the RLC entity marks RLC PDU 13 as "confirmed received", adds RLC SN 13 to the confirmation list, and updates the value of the state variable of the sending window, for example, updates the value of VT(A) to 14.
[0253] B: The RLC entity at the transmitting end sends a cancellation notification for PDCP PDU 5 to the receiving end. The RLC entity finds from the sending window that PDCP PDU 5 is carried in RLC PDU 14, and RLC PDU 14 contains data of multiple PDCP PDUs. If PDCP PDU 4 contained in RLC PDU 14 is not confirmed to be received by the receiving end, the RLC entity only marks the part corresponding to PDCP PDU 5 contained in RLC PDU 14 as "confirmed to be received", and does not mark the entire RLC PDU 14.
[0254] C: The RLC entity obtains the updated value of TX_Next_Ack maintained by the PDCP entity to 5. The RLC entity finds in the sending window that PDCP PDU 5 is the last segment of RLC PDU 14, and PDCP PDU 5 is carried as a whole in RLC PDU 14. The RLC entity should mark RLC PDUs with RLC SN less than 14 as "acknowledged". Since RLC PDU 13 has been marked, the RLC entity marks RLC PDU 12 as "acknowledged".
[0255] The RLC entity adds RLC SN12 to the acknowledgement list.
[0256] D: When the conditions for sending the status report are met, the transmitting end sends a status report to the receiving end, and the status report notifies the receiving end that the sending of RLC PDU 12, 13 has been cancelled.
[0257] After the RLC entity at the receiving end obtains the status report, it marks the RLC PDUs 12 and 13 as "received", updates the value of the first state variable, and moves the receiving window.
[0258] Specifically, the RLC entity at the receiving end updates the value of the first state variable to 14.
[0259] Optionally, as an example, the format of the status report sent by the sending end to the receiving end in solution 2 may be as follows: Fig.10 As shown, see Fig.11 , Fig.11 An example of a status report format provided for this application.
[0260] in, Fig.11 The fields that can be included in the status report and their configuration are as follows:
[0261] D / C, contains 1 bit, RLC data PDU or RLC control PDU;
[0262] R: As a reserved field, containing 1 bit;
[0263] CPT: contains 3 bits, used to indicate the type of RLC control PDU;
[0264] START_SN: 12 or 18 bits, the starting point of the continuous RLC SN marked as "received" at the sending end;
[0265] SN_CNT: 4 or 6 bits. Based on TRAN_SN, SN_CNT consecutive RLC SDUs are marked as "received" (including TRAN_SN) at the transmitting end. Non-continuous values are 1.
[0266] In scheme 2, the RLC entity at the transmitting end marks the RLC PDU according to the carrying status of the PDCP PDU to be revoked in the RLC PDU and the status of the data of each segment of the RLC PDU being confirmed to be received by the receiving end, and adds the SN of the marked RLC PDU to the confirmation list. Alternatively, when the value of the second state variable maintained by the PDCP entity at the transmitting end is updated, the RLC entity marks the corresponding RLC PDU and adds the SN of the marked RLC PDU to the confirmation list. Finally, the RLC entity at the transmitting end sends a status report to the receiving end, and the status report includes the RLCSN in the confirmation list, which explicitly indicates to the receiving end that the RLC PDU corresponding to the RLC SN included in the confirmation list is cancelled. As a result, the RLC entity at the receiving end marks the RLC SN in the confirmation list as "received", updates the value of the first state variable (specifically, RX_Next above), and moves the receiving window, thereby avoiding the rigidity of the receiving window.
[0267] Solution 3
[0268] The receiving end maintains the third state variable itself, and determines the qualified RLC PDU when the value of the third state variable is updated, and then updates the value of the state variable of the receiving window and moves the receiving window according to the sequence number of the determined qualified RLC PDU.
[0269] For example, the PDCP entity at the receiving end maintains the third reference variable. When the value of the third reference variable maintained by the PDCP entity is updated, the RLC entity at the receiving end marks the eligible RLC PDU in the receiving window as "received", updates the value of the first state variable, and moves the receiving window.
[0270] The third state variable is used to reflect the reception status of the PDCP entity at the receiving end for the PDCP PDU from the transmitting end. Specifically, all PDCP PDUs whose PDCP SN is less than the value of the third state variable have been received.
[0271] The qualified RLC PDU is an RLC PDU whose RLC SN is less than the reference RLCSN among the RLC PDUs not received in the receiving window, and the PDCP count value corresponding to the reference RLC SN is the maximum PDCP count value among the PDCP count values corresponding to the PDCP SNs of the RLC PDUs received in the receiving window that is less than the value of the third state variable.
[0272] Specifically, the RLC entity at the receiving end traverses the RLC PDUs received in the receiving window and parses the data segments to obtain the PDCP SNs. A CONUT value, i.e., a PDCP count value, can be calculated based on each PDCP SN. It should be understood that the COUNT of a PDCP PDU can be obtained based on the PDCP SN and the hyper frame number (HFN) of the PDCP. Each PDCP SN uniquely corresponds to a PDCP count value.
[0273] Hereinafter, the PDCP count value is denoted as PDCP_COUNT_Received, and the third reference variable is denoted as RX_DELIV.
[0274] Among them, the RLC PDU that meets the conditions in scheme 3 is determined according to the value of PDCP_COUNT_Received and the third state variable. Fig.12 Provide explanation.
[0275] See also Fig.12 , Fig.12 A schematic flow chart of Scheme 3 provided in this application.
[0276] 410. When the value of the third state variable maintained by the PDCP entity changes, the RLC entity at the receiving end traverses the received RLC PDU, parses its data segments to obtain the PDCP SN, and calculates the PDCP count value (i.e., COUNT value) of the PDCP SN, and saves it to PDCP_COUNT_Received. If no data segment can be parsed, it is set to an invalid value.
[0277] Further, the RLC entity searches out the RLC_SN_Received corresponding to the maximum PDCP_COUNT_Received smaller than the value of the third state variable, wherein the RLC_SN_Received corresponding to the maximum PDCP_COUNT_Received smaller than the value of the third state variable is defined as the reference RLC SN.
[0278] 420. The RLC entity marks all RLC PDUs in the receiving window that are smaller than the reference RLC SN as “received”, updates the value of the first state variable, and moves the receiving window.
[0279] Combine the following Fig.13 , indicating that the RLC entity needs to consider the following different situations when marking the RLC PDU.
[0280] See also Fig.13 , Fig.13 This is an example of a method for processing data packets according to Solution 3 of the present application.
[0281] It should be noted that Fig.13 The RLC PDU filled in is the received RLC PDU.
[0282] (1) If the PDCP_COUNT_Received parsed by the RLC entity is a PDCP PDU as a whole and it is carried in the entire RLC PDU, the RLC entity marks all RLC PDUs whose SN is less than RLC_SN_Received in the RLC PDUs not received in the receiving window as "received".
[0283] For example, Fig.13 As shown in , when RX_DELIV is updated to 4, the RLC entity marks all RLC PDUs with SN less than 14 as "received". Since RLC PDU 13 has been received, the RLC entity marks RLC PDU 12 as "received".
[0284] (2) If the RLC entity parses PDCP_COUNT_Received to find that it is a whole PDCP PDU, which is a segment of RLC PDU, the RLC entity marks the RLC PDUs whose SN is less than RLC_SN_Received among the RLC PDUs not received in the receiving window as "received".
[0285] For example, Fig.13 As shown in , when RX_DELIV is updated to 7, the RLC entity marks all RLC PDUs with SN less than 15 among the unreceived RLC PDUs as "received". Specifically, the RLC entity marks RLC PDU14 as "received". For another example, when RX_DELIV is updated to 8, the RLC entity marks all RLC PDUs with SN less than 17 among the unreceived RLC PDUs as "received". Specifically, the RLC entity marks RLC PDU 16 as "received".
[0286] (3) If the RLC entity parses PDCP_COUNT_Received to find that it is the first segment of a PDCP PDU, and it is the entire RLC PDU, the RLC entity marks all RLC PDUs whose SNs are less than RLC_SN_Received in the unreceived RLC PDUs as "received", and does not process the RLC PDUs in other segments.
[0287] For example, Fig.13 As shown, when RX_DELIV is updated to 10, the RLC entity marks all RLC PDUs with SN less than 18 as "received".
[0288] (4) If the RLC entity parses PDCP_COUNT_Received to find that it is the first segment of a PDCP PDU, and it is a segment of an RLC PDU, the RLC entity marks all RLC PDUs whose SN is less than RLC_SN_Received as "received" and does not process the RLC PDUs in other segments.
[0289] For example, Fig.13 As shown, when RX_DELIV is updated to 8, the RLC entity marks all RLC PDUs with SN less than 15 as "received".
[0290] Furthermore, the RLC entity carries the SN of the RLC PDU marked as "received" in a status report and sends it to the transmitting end.
[0291] 430. After receiving the status report, the RLC entity of the transmitting end marks the RLC PDU corresponding to the RLC SN carried in the status report as "confirmed received" and moves the sending window.
[0292] See also Fig.14 , Fig.14 This is an example of Scheme 3 provided in this application.
[0293] Status before A: In the receiving window, the RLC PDU corresponding to RLC SN 15, 17 has been received, VR(R)=12, VR(H)=18; in the sending window, the RLC PDU corresponding to RLC SN 15, 17 has been sent successfully, VT(A)=12, VT(S)=18.
[0294] A: The RLC entity at the receiving end obtains the value of RX_DELIV maintained by the PDCP entity and updates it to 3. The RLC entity parses RLC PDU 13 in the receiving window and obtains PDCP SN 13. The RLC entity marks RLC PDUs with RLC SN less than 13 as "received". Specifically, the RLC entity marks RLC PDU 12 as "received" and updates VR(R) to 13.
[0295] B: The RLC entity at the receiving end obtains the value of RX_DELIV maintained by the PDCP entity and updates it to 6. The RLC entity parses RLC PDU 15 in the receiving window and obtains PDCP SN 6. The RLC entity marks RLC PDUs with RLC SN less than 15 as "received". RLC PDU 12 has been marked, so the RLC entity marks RLC PDUs 13 and 14 as "received".
[0296] C: The RLC entity at the receiving end receives RLC PDU 16, and the RLC entity updates the value of the first state variable and moves the receiving window. Specifically, the RLC entity updates VR(R) to 16.
[0297] D: When the status report is sent, the receiving end sends a status report to the transmitting end, and the status report notifies the receiving end that RLC PDU 12, 13, 14, 16 has been received.
[0298] After the RLC entity at the transmitting end obtains the status report, it marks RLC PDU 12, 13, 14, 16 as "acknowledged", updates the value of the first state variable, and moves the receiving window. Specifically, the RLC entity at the receiving end updates the value of VT(A) to 18.
[0299] It can be seen that in scheme 3, by maintaining the third state variable at the PDCP entity at the receiving end, and when the value of the third state variable is updated, the RLC entity at the receiving end marks the corresponding RLC PDU as received, and sends a status report to the sending end, and the RLC entity at the sending end marks the corresponding RLC PDU as canceled. In this way, the RLC entity at the receiving end can also timely update the value of the first state variable to keep consistent with the reception status of the PDCP PDU maintained by the PDCP entity, and move the receiving window, thereby avoiding the rigidity of the receiving window.
[0300] The above is a detailed description of the technical solution for avoiding the deadlock of the receiving window provided by the present application. It can be seen that according to the technical solution of the present application, the RLC PDU that has been assigned an RLC SN and has been submitted to the MAC layer for processing can be quickly revoked. Moreover, the congestion of the RLC transmission channel can be reduced, and the probability of PDCP HFN calculation errors at the receiving end can be reduced. In addition, the probability of triggering RRC connection re-establishment after reaching the maximum number of retransmissions can also be reduced. In addition, the reliability of the signaling radio bearer (SRB) or data radio bearer (DRB) that enables the duplication function of the PDCP layer can also be improved to reduce latency.
[0301] The communication device provided by this application is introduced below.
[0302] See also Fig.15 , Fig.15 1 is a schematic block diagram of a communication device 1000 provided in this application. Fig.15 , the communication device 1000 includes a processing unit 1100, a receiving unit 1200 and a sending unit 1300.
[0303] In one implementation, the above-mentioned units are used to perform the following operations and / or processes:
[0304] The processing unit 1100 is configured to determine the carrying status of the PDCP PDU to be revoked in the RLC PDU;
[0305] The sending unit 1300 is used to send a transmission block TB to the receiving end according to the carrying situation, wherein, if the PDCP PDU that needs to be revoked is carried in an RLC PDU, the TB only includes the RLC header of the RLC PDU corresponding to the PDCP PDU that needs to be revoked.
[0306] In one example, the processing unit 1100 is further configured to:
[0307] According to the carrying condition of the PDCP PDU to be revoked in the RLC PDU, the RLC PDU corresponding to the PDCP PDU to be revoked is marked, wherein:
[0308] If the PDCP PDU to be cancelled is carried in an entire RLC PDU, the processing unit 1100 is configured to mark the data segment of the RLC PDU as cancelled; or,
[0309] If the PDCP PDU to be cancelled is carried in a partial segment of an RLC PDU, the processing unit 1100 is configured to mark the partial segment of the RLC PDU as cancelled; or,
[0310] If the PDCP PDU to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and none of the multiple PDCP segments are confirmed to be received by the receiving end, the processing unit 1100 is used to mark the RLC segments carrying the multiple PDCP PDUs as cancelled respectively; or,
[0311] If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and some of the multiple PDCP segments are confirmed to be received by the receiving end, the processing unit 1100 does not mark the multiple RLC PDUs.
[0312] In another implementation, the above-mentioned units are used to perform the following operations and / or processes:
[0313] The processing unit 1100 is used to determine the RLC PDU that meets the conditions according to different trigger conditions;
[0314] The sending unit 1300 is configured to send a status report to a receiving end, wherein the status report carries the RLC SN of the qualified RLC PDU.
[0315] Wherein, if the trigger condition is that the communication device determines a PDCP PDU to be cancelled, the RLC PDU that meets the condition is one of the following:
[0316] If the PDCP PDU that needs to be revoked is carried as a whole in one RLC PDU, and the RLC PDU only contains the PDCP PDU that needs to be revoked, then the eligible RLC PDU is the RLC PDU corresponding to the PDCP PDU that needs to be revoked; or,
[0317] If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and the multiple RLC PDUs respectively contain only the data of the PDCP that needs to be revoked, then the qualified RLC PDU is the multiple RLC PDUs carrying the multiple PDCP segments;
[0318] or,
[0319] If the trigger condition is that the value of the second state maintained by the communication device is updated, the RLC PDU that meets the condition is the RLC PDU whose RLC SN in the sending window is less than the reference RLC SN, wherein the reference RLC SN is the RLC SN corresponding to the PDCP SN indicated by the updated value of the second state variable, and the value of the second state is used to indicate the reception status of the PDCP PDU sent by the communication device at the receiving end, and the PDCP PDU whose PDCP SN in the sending window is less than the value of the second state variable has all been confirmed to be received by the receiving end.
[0320] As an example, when the trigger condition is that the transmitting end determines to cancel a PDCP PDU, the processing unit 1100 is further configured to:
[0321] According to the carrying condition of the PDCP PDU that needs to be revoked in the RLC PDU, the RLC PDU corresponding to the PDCP PDU that needs to be revoked is marked; wherein,
[0322] If the PDCP PDU to be revoked is carried in a partial segment of an RLC PDU, the processing unit 1100 is configured to mark the RLC PDU as confirmed received and record the RLC SN corresponding to the RLC PDU when all the remaining segments of the RLC PDU are canceled; or
[0323] If the PDCP PDU to be revoked is carried in multiple RLC PDUs, and the multiple RLC PDUs include a first-category RLC PDU and / or a second-category RLC PDU, the processing unit 1100 is used to mark the first-category RLC PDU as confirmed received, and record the RLC SN corresponding to the first-category RLC PDU; and, in the case where all data of the remaining PDCP PDUs included in the second-category RLC PDU are canceled, the processing unit 1100 is used to mark the second-category RLC PDU as confirmed received, and record the RLC SN corresponding to the second-category RLC PDU;
[0324] The first type of RLC PDU only includes data of the PDCP PDU that needs to be revoked, and the second type of RLC PDU includes data of multiple PDCP PDUs including the PDCP PDU that needs to be revoked.
[0325] As an example, when the trigger condition is that a value of a second state variable maintained by the communication device is updated, the processing unit 1100 is further configured to:
[0326] Mark the RLC PDUs that meet the conditions in the sending window;
[0327] The processing unit 1100 is specifically used for:
[0328] Traversing the sending window, parsing each RLC PDU in the sending window, obtaining a PDCP SN corresponding to each of the RLC PDUs, and determining a maximum value and a minimum value that are less than an updated value of the second state variable from the PDCP SNs corresponding to each of the RLC PDUs;
[0329] The processing unit 1100 is further configured to take all PDCP SNs in the interval [maximum value, minimum value] as input, and process the PDCP PDU corresponding to each PDCP SN in the interval [maximum value, minimum value] according to the situation that the PDCP PDU corresponding to each PDCP SN is carried on the RLC PDU,
[0330] Among them, for the PDCP PDU corresponding to any PDCP SN in the interval [maximum value, minimum value],
[0331] If the PDCP PDU is carried in its entirety in one RLC PDU, and the RLC PDU only contains data of the PDCP PDU, the processing unit 1100 is configured to mark the RLC PDU as confirmed received, and record the RLC SN corresponding to the RLC PDU; or,
[0332] If the PDCP PDU is carried in a partial segment of an RLC PDU, and the RLC entity cancels the transmission of all the remaining segments of the RLC PDU, the processing unit 1100 is configured to mark the RLC PDU as confirmed received and record the RLC SN corresponding to the RLC PDU; or,
[0333] If the PDCP PDU is carried in a plurality of RLC PDUs, and the plurality of RLC PDUs include a first-category RLC PDU and / or a second-category RLC PDU, the processing unit 1100 is configured to mark the first-category RLC PDU as confirmed received, and record the RLC SN corresponding to the first-category RLC PDU; and, in the case that all data of the remaining PDCP PDUs included in the second-category RLC PDU are canceled from being sent, the processing unit 1100 is configured to mark the second-category RLC PDU as confirmed received, and record the RLC SN corresponding to the second-category RLC PDU;
[0334] The first type of RLC PDU only includes data of the PDCP PDU, and the second type of RLC PDU includes data of multiple PDCP PDUs including the PDCP PDU.
[0335] In the above implementations, the receiving unit 1200 and the sending unit 1300 may also be integrated into a transceiver unit, which has both receiving and sending functions, which is not limited here.
[0336] Optionally, as an example, the communication device 1000 may be a transmitting end in the method embodiment. In this case, the receiving unit 1200 may be a receiver, and the sending unit 1300 may be a transmitter. The receiver and the transmitter may also be integrated into a transceiver.
[0337] Optionally, as another example, the communication device 1000 may be a chip or integrated circuit in a transmitting end. In this case, the receiving unit 1200 and the sending unit 1300 may be communication interfaces or interface circuits. For example, the receiving unit 1200 is an input interface or input circuit, and the sending unit 1300 is an output interface or output circuit.
[0338] In each example, the processing unit 1100 is used to perform processing and / or operations implemented internally by the sending end in addition to the actions of sending and receiving.
[0339] The processing unit 1100 may be a processing device. The functions of the processing device may be implemented by hardware, or by hardware executing corresponding software. For example, the processing device may include at least one processor and at least one memory, wherein the at least one memory is used to store a computer program, and the at least one processor reads and executes the computer program stored in the at least one memory, so that the communication device 1000 performs the operations and / or processing performed by the transmitting end in each method embodiment.
[0340] Alternatively, the processing device may only include a processor, and a memory for storing the computer program is located outside the processing device. The processor is connected to the memory through circuits / wires to read and execute the computer program stored in the memory.
[0341] Optionally, in some examples, the processing device may also be a chip or an integrated circuit. For example, the processing device includes a processing circuit and an interface circuit, the interface circuit is used to receive signals and / or data, and transmit the signals and / or data to the processing circuit, and the processing circuit processes the signals and / or data so that the operations performed by the transmitting end in each method embodiment are performed.
[0342] See also Fig.16 , Fig.16 2 is a schematic block diagram of another communication device 2000 provided by the present application. Fig.16 The communication device 2000 includes a processing unit 2100, a receiving unit 2200 and a sending unit 2300.
[0343] In one implementation, the above-mentioned units are used to perform the following operations and / or processes:
[0344] The receiving unit 2200 is used to receive the TB from the transmitting end;
[0345] The processing unit 2100 is configured to decapsulate the TB to obtain one or more RLC PDUs;
[0346] The processing unit 2100 is also used to update the value of a first state variable according to the sequence number of the RLC PDU that only includes the RLC header and does not include the data segment, when some RLC PDUs in the one or more RLC PDUs only include the RLC header and do not include the data segment. The value of the first state variable is used to indicate the RLC SN corresponding to the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0347] In another implementation, the above-mentioned units are used to perform the following operations and / or processes:
[0348] The receiving unit 2200 is configured to receive a status report from a transmitting end, wherein the status report includes one or more RLC SNs, wherein the RLC PDU corresponding to the one or more RLC SNs is the RLC PDU corresponding to the PDCP PDU that needs to be revoked, or,
[0349] The one or more RLC SNs are RLC PDUs whose PDCP SN is smaller than a reference RLC SN, and the reference RLC SN is an RLC SN corresponding to a PDCP SN indicated by an updated value of a second state variable maintained by the transmitting end, wherein the value of the second state is used to indicate a reception status of the PDCP PDU sent by the transmitting end at the receiving end, and all PDCP PDUs whose PDCP SN is smaller than the value of the second state variable in the sending window have been received;
[0350] Processing unit 2100 is used to update the value of the first state variable according to the one or more RLC SNs, and update the value of the first state variable, wherein the value of the first state variable is used to indicate the SN of the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0351] In yet another implementation, the above-mentioned units are used to perform the following operations and / or processes:
[0352] The processing unit 2100 is configured to determine the RLC PDU that meets the condition when the value of the third state variable maintained by the communication device is updated, wherein the value of the third state variable is used to indicate the reception status of the PDCP entity for the PDCP PDU from the transmitting end, and the PDCP PDUs whose PDCP SN is less than the value of the third state variable have all been received,
[0353] The qualified RLC SN is an RLC SN smaller than a reference RLC SN, and the PDCP SN corresponding to the reference RLC SN is the maximum PDCP SN smaller than the value of the third state variable among the PDCP SNs corresponding to the RLC PDUs received by the communication device;
[0354] The processing unit 2100 is also used to update the value of the first state variable according to the sequence number of the qualified RLC PDU, and the value of the first state variable is used to indicate the SN of the next RLC PDU to be received in the receiving window, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
[0355] Optionally, as an example, the processing unit 2100 is further configured to perform marking processing on the qualified RLC PDU;
[0356] The processing unit 2100 is specifically used for:
[0357] Traversing the RLC PDUs received in the receiving window, determining the PDCP count values corresponding to the received RLC PDUs, and parsing the PDCP PDU corresponding to the maximum PDCP SN that is less than the value of the third state variable among the PDCP SNs corresponding to the received RLC PDUs, and the reference RLC SN corresponding to the maximum PDCP SN, wherein:
[0358] If the PDCP PDU corresponding to the maximum PDCP SN is a PDCP PDU as a whole, and the PDCP PDU is carried in a RLC PDU as a whole, the processing unit 2100 is used to mark all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0359] If the PDCP PDU corresponding to the maximum PDCP SN is a PDCP PDU as a whole, and the PDCP PDU is carried in a partial segment of an RLC PDU, the processing unit 2100 is used to mark all RLC PDUs whose RLC SNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0360] If the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in the entirety of an RLC PDU, the processing unit 2100 is configured to mark all RLC PDUs whose RLCSNs in the unreceived RLC PDUs are smaller than the reference RLC SN as received; or,
[0361] If the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU, and the PDCP PDU is carried in a partial segment of an RLC PDU, the processing unit 2100 is used to mark all RLC PDUs whose RLCSN is smaller than the reference RLC SN in the unreceived RLC PDUs as received.
[0362] Optionally, in another example, when the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU and the PDCP PDU is carried on the entirety of an RLC PDU, or when the PDCP PDU corresponding to the maximum PDCP SN is the first segment of a PDCP PDU and the PDCP PDU is carried on a partial segment of an RLC PDU, the processing unit 2100 does not process the RLC PDU that carries other segments of the PDCP PDU.
[0363] In the above implementations, the receiving unit 2200 and the sending unit 2300 may also be integrated into a transceiver unit, which has both receiving and sending functions, which is not limited here.
[0364] Optionally, as an example, the communication device 2000 may be a receiving end in the method embodiment. In this case, the receiving unit 2200 may be a receiver, and the sending unit 2300 may be a transmitter. The receiver and the transmitter may also be integrated into a transceiver.
[0365] Optionally, as another example, the communication device 2000 may be a chip or an integrated circuit in a receiving end. In this case, the receiving unit 2200 and the sending unit 2300 may be communication interfaces or interface circuits. For example, the receiving unit 2200 is an input interface or an input circuit, and the sending unit 2300 is an output interface or an output circuit.
[0366] In each example, the processing unit 2100 is used to perform processing and / or operations implemented internally by the receiving end in addition to the actions of sending and receiving.
[0367] The processing unit 2100 may be a processing device. The functions of the processing device may be implemented by hardware, or by hardware executing corresponding software. For example, the processing device may include at least one processor and at least one memory, wherein the at least one memory is used to store a computer program, and the at least one processor reads and executes the computer program stored in the at least one memory, so that the communication device 2000 performs the operations and / or processing performed by the receiving end in each method embodiment.
[0368] Alternatively, the processing device may only include a processor, and a memory for storing the computer program is located outside the processing device. The processor is connected to the memory through circuits / wires to read and execute the computer program stored in the memory.
[0369] Optionally, in some examples, the processing device may also be a chip or an integrated circuit. For example, the processing device includes a processing circuit and an interface circuit, the interface circuit is used to receive signals and / or data, and transmit the signals and / or data to the processing circuit, and the processing circuit processes the signals and / or data so that the operations performed by the receiving end in each method embodiment are performed.
[0370] See also Fig.17 , Fig.17 1 is a schematic structural diagram of the communication device 10 provided in this application. Fig.17The communication device 10 includes: one or more processors 11, one or more memories 12 and one or more communication interfaces 13. The processor 11 is used to control the communication interface 13 to send and receive signals, the memory 12 is used to store computer programs, and the processor 11 is used to call and run the computer program from the memory 12, so that the process and / or operation performed by the sending end in each method embodiment of the present application is executed.
[0371] For example, the processor 11 may have Fig.15 The functions of the processing unit 1100 shown in FIG. 1 and the communication interface 13 may have Fig.15 Specifically, the processor 11 may be used to execute Figure 2-Figure 14 The communication interface 13 is used to perform the processing or operation performed by the sending end. Figure 2-Figure 14 The sending and / or receiving actions performed by the sender.
[0372] In one implementation, the communication device 10 may be a transmitting end in the method embodiment. In this implementation, the communication interface 13 may be a transceiver. The transceiver may include a receiver and a transmitter. Optionally, the processor 11 may be a baseband device, and the communication interface 13 may be a radio frequency device. In another implementation, the communication device 10 may be a chip or an integrated circuit installed in the transmitting end. In this implementation, the communication interface 13 may be an interface circuit or an input / output interface.
[0373] See also Fig.18 , Fig.18 FIG. 2 is a schematic structural diagram of another communication device 20 provided in the present application. Fig.18 The communication device 20 includes: one or more processors 21, one or more memories 22 and one or more communication interfaces 23. The processor 21 is used to control the communication interface 23 to send and receive signals, the memory 22 is used to store computer programs, and the processor 21 is used to call and run the computer program from the memory 22, so that the process and / or operation performed by the receiving end in each method embodiment of the present application is executed.
[0374] For example, the processor 21 may have Fig.16 The functions of the processing unit 2100 shown in FIG. 2 , the communication interface 23 may have Fig.16 Specifically, the processor 21 may be used to execute Figure 2-Figure 14 The communication interface 33 is used to perform the processing or operation performed by the receiving end. Figure 2-Figure 14 The sending and / or receiving actions performed by the receiving end.
[0375] In one implementation, the communication device 20 may be a receiving end in the method embodiment. In this implementation, the communication interface 23 may be a transceiver. The transceiver may include a receiver and a transmitter. Optionally, the processor 21 may be a baseband device, and the communication interface 23 may be a radio frequency device. In another implementation, the communication device 20 may be a chip or an integrated circuit installed in the receiving end. In this implementation, the communication interface 23 may be an interface circuit or an input / output interface.
[0376] Optionally, the memory and processor in the above-mentioned device embodiments may be physically independent units, or the memory may be integrated with the processor, which is not limited in this document.
[0377] In addition, the present application also provides a computer-readable storage medium, in which computer instructions are stored. When the computer instructions are executed on a computer, the operations and / or processes performed by the sending end in each method embodiment of the present application are executed.
[0378] The present application also provides a computer-readable storage medium, in which computer instructions are stored. When the computer instructions are executed on a computer, the operations and / or processes performed by the receiving end in each method embodiment of the present application are executed.
[0379] In addition, the present application also provides a computer program product, which includes computer program code or instructions. When the computer program code or instructions are run on a computer, the operations and / or processes performed by the sending end in each method embodiment of the present application are executed.
[0380] The present application also provides a computer program product, which includes computer program code or instructions. When the computer program code or instructions are run on a computer, the operations and / or processes performed by the receiving end in the various method embodiments of the present application are executed.
[0381] In addition, the present application also provides a chip, the chip including a processor. A memory for storing a computer program is provided independently of the chip, and the processor is used to execute the computer program stored in the memory, so that the operation and / or processing performed by the sending end in any method embodiment is executed.
[0382] Furthermore, the chip may further include a communication interface. The communication interface may be an input / output interface, or an interface circuit, etc. Furthermore, the chip may further include the memory.
[0383] The present application also provides a chip, the chip comprising a processor. A memory for storing a computer program is provided independently of the chip, and the processor is used to execute the computer program stored in the memory, so that the operation and / or processing performed by the receiving end in any one of the method embodiments is executed.
[0384] Furthermore, the chip may further include a communication interface. The communication interface may be an input / output interface, or an interface circuit, etc. Furthermore, the chip may further include the memory.
[0385] In addition, the present application also provides a communication device (for example, a chip), including a processor and a communication interface, wherein the communication interface is used to receive a signal and transmit the signal to the processor, and the processor processes the signal so that the operations and / or processing performed by the sending end in any method embodiment are executed.
[0386] The present application also provides a communication device (for example, a chip), including a processor and a communication interface, wherein the communication interface is used to receive a signal and transmit the signal to the processor, and the processor processes the signal so that the operations and / or processing performed by the receiving end in any method embodiment are executed.
[0387] In addition, the present application also provides a communication device, comprising at least one processor, wherein the at least one processor is coupled to at least one memory, and the at least one processor is used to execute a computer program or instruction stored in the at least one memory, so that the operations and / or processing performed by the sending end in any method embodiment are executed.
[0388] The present application also provides a communication device, comprising at least one processor, wherein the at least one processor is coupled to at least one memory, and the at least one processor is used to execute a computer program or instruction stored in the at least one memory, so that the operations and / or processing performed by the receiving end in any method embodiment are executed.
[0389] In addition, the present application also provides a communication device, including a processor, a memory, and a transceiver. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory, and control the transceiver to send and receive signals, so that the terminal device performs the operation and / or processing performed by the transmitting end in any method embodiment.
[0390] The present application also provides a communication device, including a processor, a memory and a transceiver. The memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory, and control the transceiver to send and receive signals, so that the terminal device performs the operation and / or processing performed by the receiving end in any one of the method embodiments.
[0391] In addition, the present application also provides a wireless communication system, including a transmitting end and a receiving end in an embodiment of the present application.
[0392] The processor in the embodiment of the present application can be an integrated circuit chip with the ability to process signals. In the implementation process, each step of the above method embodiment can be completed by the hardware integrated logic circuit or software instructions in the processor. The processor can be a general processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (application specific integrated circuit, ASIC), a field programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware coding processor to perform, or the hardware and software modules in the coding processor are combined to perform. The software module can be located in a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, and other mature storage media in the art. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0393] The memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DRRAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0394] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0395] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0396] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0397] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0398] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0399] The term "and / or" in this application is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. Among them, A, B and C can all be singular or plural, without limitation.
[0400] In the embodiments of the present application, words such as "first" and "second" are used to distinguish the same or similar items with substantially the same functions and effects. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit the difference.
[0401] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application.
[0402] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A method for processing a data packet, characterized in that: include: The transmitting end determines the carrying status of the packet data convergence protocol protocol data unit PDCP PDU that needs to be revoked in the radio link control protocol data unit RLC PDU, wherein the RLC PDU includes an RLC header and a data segment; The transmitting end sends a transport block TB to the receiving end according to the load condition, wherein: If the PDCP PDU to be revoked is carried in one RLC PDU and the one RLC PDU only includes the PDCP PDU to be revoked, the TB only includes the RLC header of the RLC PDU corresponding to the PDCP PDU to be revoked; If the PDCP PDU to be revoked is carried in a partial data segment of an RLC PDU, the TB includes all data of the RLC PDU corresponding to the PDCP PDU to be revoked; The transmitting end performs marking processing on the RLC PDU corresponding to the PDCP PDU that needs to be revoked according to the carrying condition of the PDCP PDU that needs to be revoked in the RLC PDU, wherein: If the PDCP PDU to be cancelled is carried in an entire RLC PDU, the transmitting end marks the data segment of the RLC PDU as cancelled; or, If the PDCP PDU to be cancelled is carried in a partial segment of an RLC PDU, the transmitting end marks the partial segment of the RLC PDU as cancelled; or, If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and the multiple PDCP segments have not been confirmed to be received by the receiving end, the transmitting end will mark the RLC segments carrying the multiple PDCP PDUs as cancelled respectively.
2. The method according to claim 1, characterized in that The method further comprises: If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and some PDCP segments in the multiple PDCP segments are confirmed to be received by the receiving end, the transmitting end does not mark the multiple RLC PDUs.
3. The method according to claim 1 or 2, characterized in that: A PDCP PDU of the transmitting end is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
4. A method for processing a data packet, characterized in that: include: The receiving end receives the TB from the sending end; The receiving end decapsulates the TB to obtain one or more RLC PDUs, where the one or more RLC PDUs are RLC PDUs for which the transmitting end performs marking processing on the carrying status of the PDCP PDU that is revoked as needed in the one or more RLC PDUs; Some of the one or more RLC PDUs include only an RLC header and do not include a data segment, or some of the one or more RLC PDUs include all data of the RLC PDU; If some of the one or more RLC PDUs only include an RLC header and do not include a data segment, the receiving end updates the value of a first state variable according to the sequence number of the RLC PDU that only includes an RLC header and does not include a data segment, wherein the value of the first state variable is used to indicate the RLC SN corresponding to the next RLC PDU to be received in the receiving window of the receiving end, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
5. The method according to claim 4, characterized in that A PDCP PDU of the receiving end is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
6. A communication device, characterized in that: include: A processing unit, determining a carrying condition of a PDCP PDU to be revoked in an RLC PDU, wherein the RLC PDU includes an RLC header and a data segment; A sending unit is used to send a transport block TB to a receiving end according to the load condition, wherein: If the PDCP PDU to be revoked is carried in one RLC PDU and the one RLC PDU only includes the PDCP PDU to be revoked, the TB only includes the RLC header of the RLC PDU corresponding to the PDCP PDU to be revoked; If the PDCP PDU to be revoked is carried in a partial data segment of an RLC PDU, the TB includes all data of the RLC PDU corresponding to the PDCP PDU to be revoked; The sending unit performs marking processing on the RLC PDU corresponding to the PDCP PDU that needs to be revoked according to the carrying condition of the PDCP PDU that needs to be revoked in the RLC PDU, wherein: If the PDCP PDU to be cancelled is carried in an entire RLC PDU, the sending unit marks the data segment of the RLC PDU as cancelled; or, If the PDCP PDU to be cancelled is carried in a partial segment of an RLC PDU, the sending unit marks the partial segment of the RLC PDU as cancelled; or, If the PDCP PDU to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and the multiple PDCP segments have not been confirmed to be received by the receiving end, the sending unit marks the RLC segments carrying the multiple PDCP PDUs as cancelled respectively.
7. The communication device according to claim 6, characterized in that: The processing unit is also used for: If the PDCP PDU that needs to be revoked is split into multiple PDCP segments and carried in multiple RLC PDUs, and some of the multiple PDCP segments are confirmed to be received by the receiving end, the processing unit does not mark the multiple RLC PDUs.
8. The communication device according to claim 6 or 7, characterized in that: A PDCP PDU of the communication device is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
9. A communication device, characterized in that: include: A receiving unit, used for receiving the TB from the sending end; A processing unit, configured to decapsulate the TB to obtain one or more RLC PDUs, where the one or more RLC PDUs are RLC PDUs for which marking is performed according to the carrying status of the PDCP PDU that the transmitting end needs to revoke in the one or more RLC PDUs; Some of the one or more RLC PDUs include only an RLC header and do not include a data segment, or some of the one or more RLC PDUs include all data of the RLC PDU; The processing unit is also used to update the value of the first state variable according to the sequence number of the RLC PDU that only includes the RLC header and does not include the data segment, when some RLC PDUs among the one or more RLC PDUs only include the RLC header and do not include the data segment, wherein the value of the first state variable is used to indicate the RLC SN corresponding to the next RLC PDU to be received in the receiving window of the receiving end, wherein all RLC PDUs whose RLC SN is less than the value of the first state variable have been received.
10. The communication device according to claim 9, characterized in that: A PDCP PDU of the communication device is carried on one or more RLC PDUs, and each of the multiple RLC PDUs has an RLC SN.
11. A communication device, characterized in that: The system comprises a processor and an interface circuit, wherein the interface circuit is used to receive computer codes or instructions and transmit the computer codes or instructions to the processor, and the processor runs the computer codes or instructions, so that the method according to any one of claims 1 to 3 is implemented.
12. A communication device, characterized in that: It comprises a processor and an interface circuit, wherein the interface circuit is used to receive computer codes or instructions and transmit them to the processor, and the processor runs the computer codes or instructions, and the method according to any one of claims 4 to 5 is implemented.
13. A communication device, characterized in that: The system comprises at least one processor coupled to at least one memory, wherein the at least one processor is used to execute a computer program or instruction stored in the at least one memory, and the method according to any one of claims 1 to 3 is implemented.
14. A communication device, characterized in that: The device comprises at least one processor, the at least one processor is coupled to at least one memory, the at least one processor is used to execute a computer program or instruction stored in the at least one memory, and the method according to any one of claims 4 to 5 is implemented.
15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions. When the computer instructions are executed, the method according to any one of claims 1 to 3 is implemented.
16. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions. When the computer instructions are executed, the method according to any one of claims 4 to 5 is implemented.