Method and system for transmission of TCP ACK packets

By reserving sequence numbers in the PDCP SN and RLC SN spaces and prioritizing TCP ACK packets, the problems of TCP ACK packet transmission delay and unreliability are solved, achieving more efficient and reliable data transmission.

CN111181697BActive Publication Date: 2025-09-09SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201910019320.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-11-13
Filing Date
2019-01-09
Publication Date
2025-09-09
Estimated Expiration
2039-01-09

AI Technical Summary

Technical Problem

In the prior art, the transmission delay and unreliability of TCP ACK packets, especially when the uplink data rate is lower than the downlink data rate, cause the server to retransmit packets, resulting in bandwidth waste and delay.

Method used

By reserving sequence numbers in the PDCP SN space and RLC SN space, giving priority to TCP ACK packets, and using different priority queues and link quality measurements to select reliable links for transmission, high-priority processing of TCP ACK packets is ensured.

Benefits of technology

It reduces the transmission delay of TCP ACK packets, improves transmission reliability, avoids server retransmission and bandwidth waste, and improves data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111181697B_ABST
    Figure CN111181697B_ABST
Patent Text Reader

Abstract

A method for transmitting one or more Transmission Control Protocol (TCP) acknowledgment (ACK) packets, performed by a user equipment (UE), and the user equipment are provided, the method comprising: reserving one or more sequence numbers (SNs) in at least one of a Packet Data Convergence Protocol (PDCP) SN space or a Radio Link Control (RLC) SN space; allocating the reserved one or more SNs to the one or more TCP ACK packets; and sending the one or more TCP ACK packets.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Some example embodiments herein relate to the transmission of Transmission Control Protocol (TCP) acknowledgment (ACK) packets, and more particularly, to methods and systems for prioritizing the transmission of TCP ACK packets and enhancing the reliability of the transmission of TCP ACK packets. Background Art

[0002] Packets received by a communication processor (CP) are assigned Packet Data Convergence Protocol (PDCP) and Radio Link Control (RLC) sequence numbers (SNs) in a sequential manner. According to the Transmission Control Protocol (TCP), ACK packets are sent to ensure the successful delivery of individual packets and / or multiple packets. For example, a user equipment (UE) receiving a specific packet from a server (e.g., an evolved Node B (eNB) / next generation Node B (gNB)) sends a TCP ACK packet to the server to confirm receipt of the packet. If the server does not receive the TCP ACK packet within a timeout period, the server resends the specific packet to the UE. Summary of the Invention

[0003] Some example embodiments provide a method, performed by a user equipment (UE), for transmitting one or more transmission control protocol (TCP) acknowledgment (ACK) packets. The method includes reserving one or more sequence numbers (SNs) in at least one of a packet data convergence protocol (PDCP) SN space and a radio link control (RLC) SN space; allocating the reserved one or more SNs to the one or more TCP ACK packets; and transmitting the one or more TCP ACK packets.

[0004] Some example embodiments provide a method, performed by a user equipment (UE), for transmitting one or more Transmission Control Protocol (TCP) acknowledgment (ACK) packets for a bearer service. The method includes: queuing the one or more TCP ACK packets in a first queue and queuing one or more non-TCP ACK packets for the bearer service in a second queue, the first queue having a higher priority than the second queue; and allocating a plurality of sequence numbers (SNs) in at least one of a Packet Data Convergence Protocol (PDCP) SN space or a Radio Link Control (RLC) SN space to the one or more TCP ACK packets and the one or more non-TCP ACK packets based on the priority of the first queue and the priority of the second queue.

[0005] Some example embodiments provide a method, performed by a user equipment (UE), for transmitting one or more transmission control protocol (TCP) acknowledgment (ACK) packets for multiple bearer services. The method includes: calculating a priority of a TCP ACK queue based on an average of a plurality of determined priorities of a plurality of separate queues, the TCP ACK queue including the one or more TCP ACK packets, each of the plurality of separate queues including one or more uplink data packets for one of the plurality of bearer services and having a determined priority among the plurality of determined priorities; and allocating uplink grant resources to transmit the one or more TCP ACK packets based on the calculated priority of the TCP ACK queue and the plurality of determined priorities of the plurality of separate queues.

[0006] Some example embodiments provide a method, performed by a user equipment (UE), for transmitting one or more transmission control protocol (TCP) acknowledgment (ACK) packets for multiple bearer services. The method includes: calculating a priority of a TCP ACK queue based on a number of the one or more TCP ACK packets in a plurality of separate queues and a plurality of determined priorities of the plurality of separate queues, the TCP ACK queue including the one or more TCP ACK packets for the multiple bearer services, each of the plurality of separate queues including one or more uplink data packets for one of the plurality of bearer services and having a determined priority among the plurality of determined priorities; and allocating uplink grant resources to transmit the one or more TCP ACK packets based on the calculated priority of the TCP ACK queue and the plurality of determined priorities of the plurality of separate queues.

[0007] Some example embodiments provide a method for transmitting a Transmission Control Protocol (TCP) acknowledgment (ACK) packet performed by a user equipment (UE). The method includes sending the one or more TCP ACK packets via at least one of: an NSA (Non-Standalone) NR (New Radio) including a License Assisted Access (LAA) link; a device-to-device (D2D) end; a first carrier of a first plurality of carriers that is granted for at least one of carrier aggregation (CA) and dual connectivity (DC), the first carrier having a lowest block error rate (BLER) of the first plurality of carriers and a highest signal-to-interference-and-noise ratio (SINR) of the first plurality of carriers; a second carrier of a second plurality of carriers that is granted for use, the second carrier having a highest power headroom (PH) of the second plurality of carriers; or a primary carrier and a secondary carrier for NSA NR.

[0008] Some example embodiments provide a user equipment (UE) for transmitting one or more Transmission Control Protocol (TCP) acknowledgment (ACK) packets. The UE includes: a memory storing computer-readable instructions; and at least one processor coupled to the memory and configured to execute the computer-readable instructions to reserve one or more SNs in at least one of a Packet Data Convergence Protocol (PDCP) SN space and a Radio Link Control (RLC) SN space, assign the one or more reserved SNs to the one or more TCP ACK packets, and transmit the one or more TCP ACK packets.

[0009] These and other aspects of some of the example embodiments herein will be better explained and understood when considered in conjunction with the following description and accompanying drawings. However, it should be understood that the following description, while indicating some example embodiments and many of their specific details, is given by way of illustration and not limitation. Many changes and modifications may be made within the scope of some example embodiments without departing from the spirit of some example embodiments, and some example embodiments include all such modifications. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Some example embodiments are shown in the accompanying drawings, wherein like reference numerals refer to corresponding parts throughout the various drawings. Some example embodiments of the present invention will be better understood from the following description with reference to the accompanying drawings, in which:

[0011] Figure 1 is a block diagram of a user equipment (UE) for transmission of a TCP ACK packet according to some example embodiments disclosed herein;

[0012] Figure 2 shows PDCP SN space and RLCSN space in which SNs are preserved according to some example embodiments disclosed herein;

[0013] Figure 3 shows a portion of the PDCP SN space and / or RLC SN space, wherein an SN is reserved for TCP ACK packets at the beginning of the portion according to some example embodiments disclosed herein; and

[0014] Figure 4 shows segmentation of the PDCP SN space for allocating SNs for TCP ACK packets and uplink data packets, respectively, in a 4th generation (4G) long term evolution (LTE) network according to some example embodiments disclosed herein; and

[0015] Figure 5Segmentation of PDCP SN space and RLC SN space for allocating SNs for TCP ACK packets and uplink data packets, respectively, in a 5th Generation (5G) LTE network according to some example embodiments disclosed herein is shown. DETAILED DESCRIPTION

[0016] Details of some example embodiments herein and their various features and advantages are more fully described with reference to some non-limiting example embodiments illustrated in the accompanying drawings and described in detail in the following description. Descriptions of well-known components and processing techniques are omitted herein to avoid unnecessarily obscuring some example embodiments. The examples used herein are intended only to facilitate an understanding of how some example embodiments may be implemented and to further enable implementation by those skilled in the art. Therefore, the examples should not be construed as limiting the scope of some example embodiments.

[0017] The various operations of the methods described above may be performed by any suitable means for performing the operations, such as various hardware and / or software implemented in some form of hardware (eg, a processor, an ASIC, etc.).

[0018] Software may include an ordered listing of executable instructions for implementing logical functions and may be embodied in any "processor-readable medium" for use by or in connection with an instruction execution system, device, or apparatus (such as a single-core or multi-core processor or a system containing such a processor).

[0019] The blocks or operations of the methods or algorithms and functions described in conjunction with the embodiments disclosed herein may be implemented directly in hardware, in software modules executed by a processor, or in a combination of the two. If implemented in software, the functions may be stored as one or more instructions or codes on a tangible, non-transitory computer-readable medium or transmitted via the medium. The software module may reside in random access memory (RAM), flash memory, read-only memory (ROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disk, removable disk, CD ROM, or any other form of storage medium known in the art.

[0020] Some example embodiments herein disclose methods and systems for prioritization and reliable transmission of TCP ACK packets.

[0021] Some example embodiments provide for reserving an SN in at least one of a PDCP SN space and an RLC SN space to assign the reserved SN to a TCP ACK packet.

[0022] Some example embodiments provide for preparing PDCP and RLC packets at time T even if uplink TCP packets are available at the CP, e.g., allocating / mapping PDCP / RLC SNs sufficient to support transmission of the next 'X' transmission time intervals (TTIs) (e.g., up to 'T+X' TTIs) to TCP packets in advance, thereby allowing additional time (e.g., 'X-Y' TTIs) in the uplink buffer for allocating subsequent SNs to future TCP ACK packets before allocating SNs to pending uplink TCP packets (non-TCP ACK packets), where Y is greater than or equal to zero and depends on the CP and hardware capabilities.

[0023] Some example embodiments provide for segmenting at least one of the PDCP SN space and the RLC SN space, wherein a portion of the SNs is allocated to TCP ACK packets and a second portion of the SNs is allocated to the remaining TCP (eg, non-TCP ACK) packets.

[0024] Some example embodiments provide: utilizing multiple queues configured with different priorities for respectively allocating SNs to TCP ACK packets and other uplink TCP packets in at least one of the PDCP SN space and the RLC SN space, wherein the priority of the queues depends on the priority of the corresponding logical channel identifiers to which these TCP ACK packets belong.

[0025] Some example embodiments provide for utilizing a dedicated queue for TCP ACK packets for constructed services, and the logical channel priority of the queue may be calculated using rules by a multiplexer and assembler while processing grants.

[0026] Some example embodiments provide for utilizing link quality metrics of multiple available links to select a reliable link for TCP ACK packet transmission. By exchanging cross-layer information about link quality, a media access control (MAC) or related module uses this information to generate an uplink transport block (TB) while processing grants, wherein the TCP ACK packet can be mapped to a better link.

[0027] Some example embodiments include reserving a limited number of SNs in at least one of the PDCP SN space and the RLC SN space. The limited number of reserved SNs may be allocated to the TCP ACK packets for transmission of TCP ACK packets. If SNs are reserved in at least one of the PDCP SN space and the RLC SN space, SNs may be allocated to the TCP ACK packets in at least one of the PDCP SN space and the RLC SN space, which may enable TCP ACK packets to be transmitted faster than non-TCP ACK packets.

[0028] In one example, the SN at the beginning of at least one of the PDCP SN space and the RLC SN space is reserved for allocation to TCP ACK packets. When the uplink data rate is equal to or greater than the downlink data rate, TCP ACK packets can be transmitted with low latency despite the presence of uplink data packets in the uplink buffer. This is because the SN assigned to the TCP ACK packet is located at the beginning of at least one of the PDCP SN space and the RLC SN space. Uplink packets assigned an SN at the beginning of at least one of the PDCP SN space and the RLC SN space can be transmitted earlier than uplink packets assigned an SN located later in at least one of the PDCP SN space and the RLC SN space.

[0029] Some example embodiments include pre-preparing at least one of PDCP and RLC packets sufficient to support transmission for only the next few TTIs, even if more uplink packets are available at the CP. This allows more time for the potential reception of future TCP ACK packets at the CP. Future TCP ACK packets may be assigned to the next / subsequent SNs before assigning SNs to pending uplink TCP packets in the uplink buffer. Once the count of prepared packets reaches a defined threshold, packet creation may be initiated for transmission for the next few TTIs.

[0030] Some example embodiments include: segmenting at least one of the PDCP SN space and the RLC SN space into a first zone and a second zone; wherein the first zone is used to assign SNs to TCP ACK packets and the second zone is used to assign SNs to other TCP packets, wherein the SNs are assigned to the TCP ACK packets and the other TCP packets in order in their respective zones.

[0031] Some example embodiments include configuring different queues for each bearer service to store (also referred to herein as "sort") TCP ACK packets and other TCP packets. Thus, for each bearer, two separate queues are maintained to store TCP ACK and non-TCP ACK packets, respectively. For each bearer, the queue storing TCP ACK packets will have a higher priority than the queue storing non-TCP packets; but the queue storing TCP ACK packets will have a lower priority than the queue of another bearer configured with a higher logical channel priority. These priorities will be used by the multiplexer and assembler while dividing grants across different bearers or logical channels. Thus, for each bearer, scheduling of TCP ACK packets will be prioritized before non-TCP ACK packets for that bearer.

[0032] Some example embodiments include configuring a single queue for storing TCP ACK packets for all bearers, where each bearer may provide different Quality of Service (QoS). Some example embodiments provide methods for prioritizing TCP ACK packets belonging to different bearers within a single queue. The calculated priorities are used by the multiplexer and assembler to divide grants across different bearers or logical channels.

[0033] In one example, consider that there are three active data radio bearers (DRBs), including a first DRB identified as 3, a second DRB identified as 4, and a third DRB identified as 5. Each DRB includes a separate queue. The priorities of the separate queues for the first, second, and third DRBs may be 4, 5, and 6, respectively. Therefore, it can be assumed, without loss of generality, that the third DRB has the highest priority. TCP ACK packets belonging to the first, second, and third DRBs may be included together in a special queue (TCP ACK queue).

[0034] In some example embodiments, the TCP ACK queue may be configured with a priority greater than six.

[0035] In some example embodiments, the priority of the TCP ACK queue may be set by averaging the priorities of the individual queues of the first, second, and third DRBs. In the current example, the priority of the TCP ACK queue is (4+5+6) / 3=5. In the case of equal priority (e.g., in this example, the priority of the queue of the second DRB is equal to the priority of the TCP ACK queue), the user equipment (UE) may either consider the priority of the TCP ACK queue to be higher than the queue of the second DRB, or may consider the priority of the TCP ACK queue to be lower than the queue of the second DRB.

[0036] Continuing with the above example, consider that the separate queues for the first, second, and third DRBs contain 2, 5, and 7 TCP ACK packets, respectively. In some example embodiments, the priority of the TCP ACK queue can be set by calculating the sum of the product of the number of packets in each separate queue and the priority of the corresponding separate queue, and dividing the result by the total number of packets in all separate queues. In the current example, the priority of the TCP ACK queue is (2×4+5×5+7×6) / (2+5+7)=5.35. Therefore, the priority of the TCP ACK queue will be lower than the priority of the queue for the third DRB, but higher than the priority of the queue for the second DRB.

[0037] If the queue of the first DRB contains 2 TCP ACK packets, the queue of the second DRB contains 5 TCP packets, and the queue of the third DRB contains 0 TCP ACK packets, the priority of the TCP ACK queue can be set to (2×4+5×5) / (2+5)=4.7. Therefore, the priority of the TCP ACK queue will be lower than the priority of the queue of the second DRB, but higher than the priority of the queue of the first DRB.

[0038] Some example embodiments include ensuring transmission reliability of TCP ACK packets in the wireless medium. For NSA (Non-Standalone) NR (New Radio), when one of the links is License Assisted Access (LAA), reliability can be ensured by transmitting the TCP ACK packets using the licensed link. If the peer has a reliable link with the network, reliability can be ensured by sending the TCP ACK packets over the device-to-device (D2D) peer (relay UE) link. For carrier aggregation (CA) and dual connectivity (DC), if grants are available for multiple carriers, reliability can be ensured by transmitting the TCP ACK packets on the carrier with the lowest block error rate (BLER) and highest signal-to-interference and noise ratio (SINR). If grants are available for multiple carriers, reliability can be ensured by transmitting the TCP ACK packets on the carrier with the best calculated power margin (PH).

[0039] Some example embodiments include mapping TCP ACK packets on both the primary and secondary carriers for NSA NR. Since the size of TCP ACK packets is relatively small, mapping TCP ACK packets on two carriers can ensure reliability and faster transmission of TCP ACK packets.

[0040] Referring now to the drawings (particularly Figures 1 to 4 ) shows some example embodiments, in which like reference characters denote corresponding features throughout the drawings.

[0041] Figure 1 The various components of the UE 100 for transmitting TCP ACK packets according to some example embodiments disclosed herein are described. Figure 1As shown, a UE may include an SN retainer 101 and a communication interface 102. SN retainer 101 may retain SNs in at least one of a PDCP SN space and an RLC SN space. For example, reserving SNs may include specifying an SN to be assigned to one of a TCP ACK packet and an uplink data packet. If the uplink data rate and the downlink data rate of UE 100 are similar or the same, an uplink buffer of UE 100 may include uplink data packets and TCP ACK packets. UE 100 may send a TCP ACK packet to acknowledge successful receipt of the downlink data packet. To transmit an uplink packet in the uplink buffer (as described herein, an uplink packet may include an uplink data packet and a TCP ACK packet), UE 100 may assign at least one PDCP SN and / or RLC SN to each uplink packet in UE 100's uplink buffer. According to some example embodiments, the operations described herein as being performed by any or all of UE 100 and SN retainer 101 may be performed by at least one processor executing program code including instructions corresponding to the operations. The instructions may be stored in a memory of UE 100. The term "processor" as used in this disclosure may refer to, for example, a hardware-implemented data processing device having circuitry physically structured to perform desired operations, including, for example, operations represented as code and / or instructions contained in a program. In some example embodiments, the hardware-implemented data processing device may include, but is not limited to, a microprocessor, a central processing unit (CPU), a processor core, a multi-core processor, a multiprocessor, an application-specific integrated circuit (ASIC), and a field-programmable gate array (FPGA). For example, the communication interface 102 may be implemented by circuitry, or alternatively, by at least one processor executing program code including instructions corresponding to any or all of the operations described herein as being performed by the communication interface 102.

[0042] SN retainer 101 can assign at least one of a PDCP SN and an RLC SN to an uplink packet when the uplink packet arrives in the uplink buffer. In a conventional UE, if an uplink data packet exists in the uplink buffer, a TCP ACK packet arriving after the uplink data packet is assigned a higher SN number in at least one of the PDCP SN space and the RLC SN space than the SN number of the uplink data packet. This results in a transmission delay of the TCP ACK packet because the TCP ACK packet is sent only after the uplink data packet has been sent.

[0043] However, according to some example embodiments, SN preserver 101 may preserve an SN in at least one of the PDCP SN space and the RLC SN space that may be allocated to a TCP ACK packet. The preserved SN may be located at the beginning of the PDCP SN space and / or the RLC SN space. When an uplink data packet is allocated an SN located later in the PDCP SN space and / or the RLC SN space than the SN allocated to the TCP ACK packet at the beginning of the PDCP SN space and / or the RLC SN space, the TCP ACK packet allocated with the SN at the beginning of the PDCP SN space and / or the RLC SN space may be transmitted before the uplink data packet. Even if the uplink data packet arrives in the uplink buffer before the TCP ACK packet, the TCP ACK packet may be transmitted before the uplink data packet.

[0044] Consider a scenario where a legacy user equipment (UE) is connected to a server via an evolved Node B (eNB) / next generation Node B (gNB). If the UE's uplink data rate is not greater than the UE's downlink data rate, the UE's uplink data rate may be equal to the UE's downlink data rate. Therefore, the uplink buffer space in the legacy UE is likely to be occupied (or even exhausted) by uplink data packets. Under such conditions, a TCP ACK packet arriving at the uplink buffer indicating successful reception of a downlink packet may be assigned an SN located later in the PDCP and / or RLC SN space. A TCP ACK packet with a later SN is sent only after an uplink data packet that may be assigned a starting SN in the PDCP and / or RLC SN space has been transmitted. It may also be the case that there is insufficient uplink buffer space to accommodate the TCP ACK packet. In the above scenario, the delivery of the ACK packet to the server may be delayed.

[0045] The server includes a counter for tracking TCP ACK packets corresponding to transmitted data packets. If no TCP ACK packet is received before the counter times out, the server retransmits the data packet corresponding to the unreceived TCP ACK packet, resulting in excessive bandwidth consumption. Furthermore, the uplink data packet and the new TCP ACK packet corresponding to the retransmitted packet from the server may compete for uplink buffer space. This may further delay the transmission of the TCP ACK packet. However, by reserving the SN at the beginning of the PDCP SN space and / or the RLC SN space for sending the TCP ACK packet to the server before sending the uplink data packet, UE 100 provides a solution to the above-mentioned difficulties of conventional UEs, thereby reducing the transmission delay of the TCP ACK packet.

[0046] In some example embodiments, SNs may be reserved in the PDCP SN space and / or the RLC SN space at a static rate or a dynamic rate. If the reservation rate is static, the number of SNs reserved in the PDCP SN space and / or the RLC SN space remains unchanged. The SN reservation rate may vary (dynamically) based on the number of TCP ACK packets in the uplink buffer, the downlink data rate, the uplink data rate, etc.

[0047] In some example embodiments, a portion of the PDCP SN space and / or RLC SN space may be utilized to reserve SNs to be assigned to TCP ACK packets, where a limited number of SNs may be reserved at the beginning of the portion of the PDCP SN space and / or RLC SN space.

[0048] In some example embodiments, the PDCP SN space and / or the RLC SN space may be segmented into multiple portions, wherein a portion of the PDCP SN space and / or the RLC SN space may be utilized to assign SNs to TCP ACK packets, and another portion of the PDCP SN space and / or the RLC SN space may be utilized to assign SNs to uplink data packets.

[0049] The communication interface 102 may send a TCP ACK packet and an uplink data packet allocated with an SN in at least one of a PDCP SN space and an RLC SN space to an evolved Node B (eNB) / next generation Node B (gNB).

[0050] Figure 1 is a block diagram of UE 100, but it should be understood that some example embodiments are not limited thereto. In some example embodiments, UE 100 may include fewer or more components. Furthermore, the labels or names of the components are for illustrative purposes only and do not limit the scope of some example embodiments. One or more components may be combined to perform the same or substantially similar functions in UE 100.

[0051] Figure 2 PDCP SN space and RLCSN space are shown in which SNs are reserved according to some example embodiments disclosed herein. In some example embodiments, a limited number of SNs may be reserved for allocation to TCP ACK packets. For example, referring to Figure 2SN numbers 5, 11, 105, and so on in the PDCP SN space and RLC SN space may be reserved for allocation to TCP ACK packets. The remaining SN numbers in the PDCP SN space and RLC SN space may be unreserved SNs and may be allocated to data packets. These reserved SNs may be at least one of static and dynamic. If the limited number of reserved SNs is static, the reserved SNs may be periodically located in at least one of the PDCP SN space and RLC SN space. Thus, each reserved SN may be located between a fixed number of unreserved SNs in at least one of the PDCP SN space and RLC SN space. If the limited number of SNs is static, the number of unreserved SNs between the reserved SNs remains unchanged. If the SN reservation rate is dynamic, the limited number of SNs reserved for allocation to TCP ACK packets may vary. The limited number of unreserved SNs between each reserved SN may also vary. The reservation rate may vary based on changes in the uplink data rate, downlink data rate, block error rate (BLER), bit error rate (BER), signal quality, network load, or the number of unused SNs within the limited number of reserved SNs.

[0052] If the downlink data rate changes, the number of TCP ACK packets in the uplink buffer may also change. If the downlink data rate increases, the number of SNs to be reserved in the SN space may increase. Therefore, the limited number of unreserved SNs between the reserved SNs may be correspondingly reduced. On the other hand, if the downlink data rate decreases, the number of SNs to be reserved in the SN space may be reduced. Therefore, the limited number of unreserved SNs between the reserved SNs may be correspondingly increased.

[0053] If the reserved PDCP / RLC SNs are not used for allocation to a TCP ACK packet, those unused reserved SNs may be utilized to send a PDCP data header packet and then form an RLC packet for the reserved SNs. In some example embodiments, a corresponding PDCP packet data unit (PDU) may be formed using a previous or subsequent PDCP service data unit (SDU) in the sequence. Then, an RLC packet may be formed from the generated PDCP PDU. The unused reserved SNs may be assigned to at least one of a previous PDCP SDU, a subsequent PDCP SDU, and a PDCP SDU header. Thus, PDCP reordering in a dual connectivity scenario is avoided, and / or PDCP / RLC re-establishment operations are performed. Otherwise, the PDCP and / or RLC PDUs for the unused SNs may not be sent, and the next packet may be sent in sequence. In addition, if the reserved SNs are not used for allocation to a TCP ACK packet, a limited number of reserved SNs in at least one of the PDCP SN space and the RLC SN space may be reduced.

[0054] Figure 3 A portion of the PDCP SN space and / or RLC SN space is shown, wherein the SN at the beginning of the portion is reserved for TCP ACK packets according to some example embodiments disclosed herein. Figure 3 , shows an example portion of the PDCP SN space and / or RLC SN space, wherein the SN at the beginning of the portion is reserved for TCP ACK packets. Specifically, SN0 and SN1 are reserved for TCP ACK packets, and SN2 to SN7 are reserved for other uplink data packets. Some example embodiments include calculating a limited number of uplink packets that can be sent within a limited time period. The limited number of uplink packets are allocated SNs in the PDCP SN space and / or RLC SN space. Therefore, even if there are uplink data packets waiting for SN allocation, a portion of the PDCP SN space and / or RLC SN space can be used to allocate SNs to the limited number of uplink packets. The limited number of uplink packets and the limited time period are calculated based on one or more of modem hardware, software capabilities, uplink grant rate, signal conditions, network load, carrier aggregation (CA) behavior, and other factors.

[0055] Some example embodiments further include selecting a subsequent defined portion of the PDCP SN space and / or the RLC SN space for transmitting a defined number of subsequent uplink packets. The selecting may be performed when a portion of the defined number of uplink packets has been transmitted. The selecting is performed to maintain or enhance an uplink data rate such that, upon receiving an uplink grant, less time is required to assign SNs to subsequent uplink data packets or subsequent TCP ACK packets (or to form PDCP / RLC PDUs).

[0056] In one example, consider a scenario where there are 500 uplink packets, 10 of which are TCP ACK packets. Furthermore, consider a scenario where 150 uplink packets (packets numbered 1 to 150) can be sent in a 30 ms (1 ms to 30 ms) time period. Here, the limited number of uplink packets to be allocated SNs in the PDCP SN space and / or RLC SN space is 150. Some example embodiments include selecting a portion of the PDCP SN space and / or RLC SN space (i.e., SN 11 to SN 160) that can be used to allocate SNs to the 150 uplink packets. Consider a scenario where, if each uplink packet is allocated an SN, 150 SNs will be used. Some example embodiments include allocating, if possible, the SN at the beginning of the PDCP SN space and / or RLC SN space to the TCP ACK packets. For example, SNs starting from SN 11 to SN 20 can be allocated to the 10 TCP ACK packets. Uplink data packets (other than TCP ACK packets) are allocated SNs in the range of SN 21 to SN 160. Therefore, the portion of the PDCP SN space and / or RLC SN space used to allocate SNs to the 150 uplink packets is SN 11 to SN 160, wherein SN 11 to SN 20 are reserved for allocation to TCP ACK packets, and SN 21 to SN 160 are used for allocation to uplink data packets (other than TCP ACK packets).

[0057] Furthermore, some example embodiments include selecting a subsequent portion of the PDCP SN space and / or RLC SN space (SNs 161 to 310) to allocate to the next 150 uplink packets (packet numbers 151 to 300) that may be sent within the next 30 ms (31 ms to 60 ms). The selection may be performed once 120 uplink packets (packet numbers 11 to 130) have been sent. Simultaneously with the selection, an additional SN at the beginning of the subsequent portion of the PDCP SN space and / or RLC SN space may be allocated to the TCP ACK packet.

[0058] Figure 4 The present invention illustrates segmentation of the PDCP SN space for separately allocating SNs to TCP ACK packets and uplink data packets in a 4G network, according to some example embodiments disclosed herein. Uplink packets include uplink data packets and TCP ACK packets. In some example embodiments, the PDCP SN space is segmented into multiple sections, including Section 1 and Section 2. Each section of the PDCP SN space may include a limited number of SNs. Section 2 may be used to allocate SNs exclusively to TCP ACK packets. Section 1 of the PDCP SN space (which includes a limited number of SNs) may be used to allocate SNs to uplink data packets.

[0059] In 4G networks, RLC packets may be generated after receiving an uplink grant. Therefore, while generating the RLC packets, a TCP ACK packet in part 2 of the PDCP SN space may be sent before transmitting the uplink data packet in part 1 of the PDCP SN space.

[0060] In some example embodiments, Figure 4 As shown, the PDCP SN space ranges from 0 to 4095 (an SN may be represented by a 12-bit value). SNs in Section 1 of the PDCP SN space (SN 0 to SN 4079) may be allocated to uplink data packets in the uplink buffer. SNs in Section 2 of the PDCP SN space (SN 4080 to SN 4095) may be allocated exclusively to TCP ACK packets in the uplink buffer. Therefore, Section 2 of the PDCP SN space is reserved for allocation to TCP ACK packets. According to some example embodiments, UE 100 may be configured to transmit uplink packets with PDCP SNs in the range of 4080 to 4095 before transmitting uplink packets with PDCP SNs in the range of 0 to 4079.

[0061] RLC packets may be formed by encapsulating PDCP packets. It should also be noted that the terms 'uplink data packet' and 'TCP ACK packet' used above refer to 'PDCP PDU including uplink data packet (non-TCP ACK packet)' and 'PDCP PDU including TCP ACK packet', respectively.

[0062] Figure 5 The present invention illustrates segmentation of the PDCP SN space for separately allocating SNs to TCP ACK packets and uplink data packets in a 5G network, according to some example embodiments disclosed herein. Uplink packets comprise uplink data packets and TCP ACK packets. In some example embodiments, the PDCP SN space is segmented into multiple portions. A portion of the PDCP SN space and the RLC SN space includes a limited number of SNs specifically allocated to TCP ACK packets. Another portion of the PDCP SN space and the RLC SN space includes a limited number of SNs allocated to uplink data packets.

[0063] In some example embodiments, Figure 5As shown, the PDCP SN space ranges from 0 to 4095 (an SN may be represented by a 12-bit value), wherein the PDCP SN space may be segmented into two parts, including Part 1 and Part 2. SNs in Part 1 of the PDCP SN space (SN 0 to SN 4079) may be allocated to uplink data packets in the uplink buffer. SNs in Part 2 of the PDCP SN space (SN 4080 to SN 4095) may be specifically allocated to TCP ACK packets in the uplink buffer. Therefore, Part 2 of the PDCP SN space may be reserved for allocation to TCP ACK packets. According to some example embodiments, UE 100 may be configured to transmit uplink packets with PDCP SNs in the range of 4080 to 4095 before transmitting uplink packets with PDCP SNs in the range of 0 to 4079.

[0064] In one example, consider the following scenario: when a first TCP ACK packet arrives in the uplink buffer, some example embodiments assign an SN of 4080 to the first TCP ACK packet. Then, if a second TCP ACK packet arrives, some example embodiments assign an SN of 4081 to the second TCP ACK packet. If all SNs in the range of 4080 to 4095 have been used up by TCP ACK packets, and a TCP ACK packet arrives in the uplink buffer, the SN assigned to that TCP ACK packet may be 4080. Similarly, if all SNs in the range of 0 to 4079 have been used up by uplink data packets, and an uplink data packet arrives in the uplink buffer, the SN assigned to that uplink data packet may be 0. Thus, when the allocation of SNs in various portions of the PDCP and / or RLC SNs reaches a final SN, subsequent allocation of SNs involves oscillating around the initial SN in the corresponding portions of the PDCP and / or RLC SNs.

[0065] In some example embodiments, Figure 5 As shown, the RLC SN space ranges from 0 to 4095 (an SN may be represented by a 12-bit value), wherein the RLC SN space may be segmented into two parts, including Part 1 and Part 2. SNs in Part 1 of the RLC SN space (SN 0 to SN 4079) may be allocated to uplink data packets in the uplink buffer. SNs in Part 2 of the RLC SN space (SN 4080 to SN 4095) may be allocated to TCP ACK packets in the uplink buffer. Part 2 of the RLC SN space may be reserved for allocation to TCP ACK packets. According to some example embodiments, UE 100 may be configured to transmit uplink packets with RLC SNs in the range of 4080 to 4095 before transmitting uplink packets with RLC SNs in the range of 0 to 4079.

[0066] In some example embodiments, in a 4G network, the PDCP SN space may be segmented into two parts because the PDCP packets may be generated before receiving the uplink grant, and the RLC SN space may not be split because the RLC packets are generated after receiving the uplink grant. In a 5G network (standalone or non-standalone), both the PDCP SN space and the RLC SN space may be divided into two segments, and as shown in FIG. Figure 5 As shown, the SNs in the PDCP SN space and the RLC SN space can be mapped one to one. Regardless of whether a grant is received, a PDCP packet and an RLC packet can be generated.

[0067] In 5G, there can be a one-to-one mapping between the corresponding segments of the PDCP SN space and the RLC SN space. Packets belonging to a specific RLC SN segment and PDCP SN segment can be forwarded to the corresponding segments of the RLC SN segment and PDCP SN segment of the higher / lower layer.

[0068] The segmentation of the PDCP SN space and the segmentation of both the PDCP SN space and the RLC SN space discussed in conjunction with some example embodiments are not limited to a specific type of radio access technology (RAT), such as 4G or 5G. Some example embodiments may be used in other types of wireless networks and RATs.

[0069] In conventional 5th / 4th Generation (5G / 4G) Long Term Evolution (LTE) networks, PDCP SNs and / or RLC SNs are assigned to uplink packets before receiving an uplink grant due to calculation priorities. If a non-NULL security method is configured, assigning a PDCP SN before transmission can mean that the packet is either encrypted using protocol-defined rules or encrypted at a later time before transmission. Because encryption consumes time and CPU clocks, the decision to perform the encryption operation depends on the UE implementation and / or communication processor (CP) capabilities. In this case, when encryption is not performed on a PDCP Service Data Unit (SDU) (Internet Protocol packet) received at the same time as the assigned PDCP SN, there is flexibility to change the PDCP SN at a later point in time. Assigning a PDCP SN to a PDCP SDU has other advantages.

[0070] Ciphering of uplink PDCP packets (referred to as real-time (RT) ciphering) is performed during idle time based on the UE's implementation (referred to as non-real-time (NRT) ciphering) or when the UE is preparing to transmit an uplink MAC transport block (TB) using an RLC protocol data unit (PDU) (RLC header and encrypted PDCP PDU). This is considered RT ciphering because the UE transmits uplink MAC TBs in a fixed time interval of 'T+K' transmission time intervals (TTIs), where T is the TTI when the uplink grant is received and K is the fixed time interval during which transmissions are performed on the allocated resources. Achieving higher throughput can result in higher computational costs with lower CP hardware capabilities (e.g., low-cost chipsets). Furthermore, as future radio access technologies (RATs) attempt to reduce the K factor in order to reduce uplink / downlink transmission times or overall response time, performing RT ciphering becomes a less desirable design choice.

[0071] According to the conventional encryption process, PDCP SDUs are encrypted using a COUNT value, where the COUNT value can be calculated using the current hyperframe number (HFN) and the assigned PDCP SN. As mentioned above, in the new radio (NR) access technology (5G), encryption of PDCP and RLC PDUs is performed in advance due to calculation priority. As can be understood, once a PDCP SN number is assigned to a packet, it is costly to change it in the future because it involves decryption using the old COUNT value and re-encryption using the new COUNT value.

[0072] In frequency division duplex (FDD) LTE, uplink packets are sent in a transmission timer interval (TTI) 'T+4' after receiving an uplink grant in a TTI at time 'T', where one TTI is 1 millisecond. To provide higher throughput, it is desirable to perform a combination of decryption using the old COUNT value and re-encryption using the new COUNT value for packets whose SNs have changed due to SN readjustment. However, this may not be feasible due to increased CPU cycle consumption in the communication processor (CP), double-time resource waste, and security hardware limitations.

[0073] Therefore, the SN is allocated in order to initiate uplink transmission after receiving the uplink grant in order to avoid performing encryption operations on the packet data as described above. This allows for higher data rates and better CPU utilization. However, allocating SNs to uplink packets before receiving the uplink grant involves consuming SNs at the beginning of the PDCP SN space and / or RLC SN space. If there is bidirectional data transmission (uplink transmission and downlink reception at the same time), the TCP ACK packet may be allocated to an SN located later in the PDCP SN space and / or RLC SN space. Therefore, the transmission of the TCP ACK packet may be delayed. Delayed TCP ACK transmission may also result in slower TCP window updates. However, as Figures 4 and 5 As discussed in , UE 100 provides a solution to the above challenge by reserving the SN at the end of the PDCP SN space and / or RLC SN space to send a TCP ACK packet to the server before sending an uplink data packet, thereby reducing the transmission delay of the TCP ACK packet.

[0074] In conventional methods and systems, deep packet inspection is performed at the CP level, and methods are defined to prioritize TCP ACK packets in order to reduce the transmission delay of the ACK packets. However, it has been found that existing solutions focus on a relatively low throughput range, readjustment of SNs for uplink packets, and allowing RT encryption. Existing solutions involve high CPU consumption, and their design methods may not be desirable and scalable to provide a higher throughput range. Therefore, in order to prioritize TCP ACK packets to reduce the transmission delay of TCP ACK packets, conventional methods and systems may not be able to achieve the provision of PDCP and / or RLC SN by using at least one of previous security operations, granting scalable and future radio access technology designs in a determined response time, striving for encryption / decryption operations, and providing guaranteed TCP ACK prioritization. Therefore, conventional methods and systems may not be able to provide a solution for enhancing the reliability of TCP ACK packet transmission for future RATs. However, as Figures 4 and 5 As discussed in , some example embodiments may be implemented using advanced and future RATs such as 4G and 5G. Some example embodiments also provide increased scalability by allocating an initial SN when a portion of the PDCP and / or RLC SNs reaches a final SN.

[0075] Some example embodiments disclosed herein may be implemented by at least one software program running on at least one hardware device and performing network management functions to control network elements. Figure 1 The network elements shown in include blocks, which may be at least one of hardware devices or a combination of hardware devices and software modules.

[0076] Some example embodiments disclosed herein describe methods and systems. It should be understood that the scope of protection is extended to the program, and when the program is run on a server or mobile device or any suitable programmable device, it is also extended to a computer-readable device having a message therein, and such a computer-readable device contains a program code device for implementing one or more operations of the method. In some example embodiments, the method is implemented by a software program written in, for example, a very high-speed integrated circuit hardware description language (VHDL) or another programming language or implemented together with a software program written in, for example, a very high-speed integrated circuit hardware description language (VHDL) or another programming language, or implemented by one or more VHDL or several software modules being executed on at least one hardware device. The hardware device can be any type of programmable portable device. The device can also include, for example, a hardware device such as an ASIC, or a combination of hardware and software devices such as an ASIC and an FPGA, or at least one microprocessor and at least one memory with a software module located therein. Some example embodiments described herein can be implemented partially in hardware and partially in software. Alternatively, some example embodiments can be implemented on different hardware devices, for example, using multiple CPUs.

[0077] The description of some of the example embodiments above will fully reveal the general nature of some of the example embodiments herein so that others can easily modify and / or change some of the example embodiments for various applications by using current knowledge without departing from the general concepts, and therefore, such changes and modifications should and are intended to be understood within the meaning and range of equivalents of some of the example embodiments. It should be understood that the words or terms used herein are for the purpose of description and not limitation. Therefore, although some example embodiments are described herein, those skilled in the art should recognize that some of the example embodiments herein can be modified within the spirit and scope of some of the example embodiments described herein.

Claims

1. A method for transmitting a plurality of transmission control protocol acknowledgment packets for a plurality of bearer services, performed by a user equipment (UE), the method comprising the steps of: retaining a plurality of sequence numbers located in at least one of a packet data convergence protocol sequence number space and a radio link control sequence number space; ordering the plurality of TCP acknowledgment packets in a single first queue, and ordering non-TCP acknowledgment packets for each of the plurality of bearer services in a corresponding one of a plurality of second queues, the non-TCP acknowledgment packets being TCP packets that are not TCP acknowledgment packets among all TCP packets; assigning the reserved plurality of sequence numbers to the plurality of transmission control protocol acknowledgment packets and assigning the unreserved plurality of sequence numbers to the plurality of non-transmission control protocol acknowledgment packets; allocating uplink grant resources for transmitting the plurality of Transmission Control Protocol acknowledgment packets based on the priority of the single first queue and the plurality of priorities of the plurality of second queues; as well as The plurality of Transmission Control Protocol acknowledgment packets are sent.

2. The method according to claim 1, wherein The number of the reserved plurality of sequence numbers is static.

3. The method according to claim 1, wherein The number of the plurality of sequence numbers reserved is dynamic.

4. The method according to claim 3, wherein: The reserving step reserves a dynamic number of the reserved sequence numbers based on at least one of an uplink data rate, a downlink data rate, a block error rate, a bit error rate, a signal quality, a network load, and a number of unused sequence numbers in the reserved sequence numbers.

5. The method according to claim 4, further comprising the steps of: Unused sequence numbers among the reserved plurality of sequence numbers are allocated to at least one of a previous packet data convergence protocol service data unit, a subsequent packet data convergence protocol service data unit, and a packet data convergence protocol service data unit header.

6. The method according to claim 1, wherein The step of retaining retains the plurality of serial numbers by: segmenting the at least one of the Packet Data Convergence Protocol sequence number space and the Radio Link Control sequence number space into a first region comprising a first plurality of sequence numbers and a second region comprising a second plurality of sequence numbers; and The plurality of serial numbers are reserved among the second plurality of serial numbers included in the second area.

7. The method according to claim 6, further comprising the steps of: The first plurality of sequence numbers included in the first region are assigned to a plurality of non-Transmission Control Protocol acknowledgment packets.

8. The method according to claim 1, further comprising the steps of: The priority of the single first queue is calculated based on an average of the multiple priorities of the multiple second queues, each of the multiple second queues including the multiple non-TCP acknowledgment packets of one of the multiple bearer services and having a priority among the multiple priorities.

9. The method according to claim 1, further comprising the steps of: The transmission control protocol confirmation packet is sent by at least one of the following: Non-standalone new radio including licensed assisted access links, Device to device, granting a first carrier of a first plurality of carriers that can be used for at least one of carrier aggregation and dual connectivity, the first carrier having a lowest block error rate of the first plurality of carriers and a highest signal to interference and noise ratio of the first plurality of carriers, granting a second carrier of the available second plurality of carriers, the second carrier having a highest power headroom of the second plurality of carriers, and Primary and secondary carriers for non-standalone new radio.

10. The method of claim 1, wherein: said step of retaining retains said plurality of sequence numbers in a portion of said packet data convergence protocol sequence number space; and The sending step sends the multiple transmission control protocol confirmation packets on the 4th generation long term evolution network.

11. The method according to claim 1 , wherein: The step of retaining retains the plurality of sequence numbers in both a portion of the packet data convergence protocol sequence number space and a portion of the radio link control sequence number space, the packet data convergence protocol sequence number space having a one-to-one mapping with the radio link control sequence number space; the step of allocating allocating the reserved plurality of sequence numbers to the plurality of Transmission Control Protocol acknowledgment packets to allocate a first sequence number from the portion of the Packet Data Convergence Protocol sequence number space and a corresponding second sequence number from the portion of the Radio Link Control sequence number space to each of the plurality of Transmission Control Protocol acknowledgment packets; as well as The sending step sends the multiple transmission control protocol confirmation packets on the 5th generation long term evolution network.

12. A user equipment for transmitting multiple transmission control protocol acknowledgment packets for multiple bearer services, the user equipment comprising: a memory storing computer-readable instructions; as well as At least one processor coupled to the memory and configured to execute computer-readable instructions to: reserving a plurality of sequence numbers in at least one of a Packet Data Convergence Protocol sequence number space and a Radio Link Control sequence number space, ordering the plurality of TCP acknowledgment packets in a single first queue, and ordering non-TCP acknowledgment packets for each of the plurality of bearer services in a corresponding one of a plurality of second queues, the non-TCP acknowledgment packets being TCP packets that are not TCP acknowledgment packets among all TCP packets; assigning the reserved sequence numbers to the plurality of TCP acknowledgment packets and assigning the unreserved sequence numbers to the plurality of non-TCP acknowledgment packets, allocating uplink grant resources for transmitting the plurality of transmission control protocol acknowledgment packets based on the priority of the single first queue and the plurality of priorities of the plurality of second queues, and The plurality of Transmission Control Protocol acknowledgment packets are sent.

13. The user equipment according to claim 12, wherein: The number of the reserved plurality of sequence numbers is static.

14. The user equipment according to claim 12, wherein: The number of the plurality of sequence numbers reserved is dynamic.

15. The user equipment according to claim 14, wherein: The at least one processor is configured to execute the computer-readable instructions to reserve a dynamic number of the plurality of sequence numbers based on at least one of an uplink data rate, a downlink data rate, a block error rate, a bit error rate, a signal quality, a network load, and a number of unused sequence numbers in the reserved plurality of sequence numbers.

16. The user equipment according to claim 15, wherein: The at least one processor is configured to execute computer-readable instructions to assign unused sequence numbers of the reserved plurality of sequence numbers to at least one of a previous packet data convergence protocol service data unit, a subsequent packet data convergence protocol service data unit, and a packet data convergence protocol SDU header.

17. The user equipment according to claim 12, wherein: The at least one processor is configured to execute computer-readable instructions to retain the plurality of serial numbers by: segmenting the at least one of the Packet Data Convergence Protocol sequence number space and the Radio Link Control sequence number space into a first region comprising a first plurality of sequence numbers and a second region comprising a second plurality of sequence numbers; and The plurality of serial numbers are reserved among the second plurality of serial numbers included in the second area.

18. The user equipment according to claim 17, wherein: The at least one processor is configured to execute computer-readable instructions to assign the first plurality of sequence numbers included in the first region to a plurality of non-Transmission Control Protocol acknowledgment packets.

19. The user equipment according to claim 12, wherein: The at least one processor is configured to execute the computer-readable instructions to send the plurality of Transmission Control Protocol acknowledgment packets by at least one of: Non-standalone new radio including licensed assisted access links, Device to device, granting a first carrier of a first plurality of carriers that can be used for at least one of carrier aggregation and dual connectivity, the first carrier having a lowest block error rate of the first plurality of carriers and a highest signal to interference and noise ratio of the first plurality of carriers, granting a second carrier of the available second plurality of carriers, the second carrier having a highest power headroom of the second plurality of carriers, and Primary and secondary carriers for non-standalone new radio.

Citation Information

Patent Citations

  • Message scheduling method and device

    CN106533954A

  • Selective prioritization of data packets to improve data traffic

    US20140219112A1