Acknowledgement shaping for downlink data bursts
Buffer overflow caused by downlink data bursts and uplink ACK bursts is solved by sending multiple ACK tokens in the first TTI in the wireless communication system and sending a single ACK token in the later TTI. Problem, improving network performance and stability.
Patent Information
- Application Number
- CN202180045217.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-05-13
- Filing Date
- 2021-05-14
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2041-05-14
AI Technical Summary
When the downlink data bursts in existing wireless communication systems, ACK transmission may cause base station buffer overflow, affect network performance, and it is difficult to effectively deal with uplink ACK bursts, resulting in throughput problems.
Send multiple ACK tokens in the first transmission time interval (TTI) through user equipment (UE) and send a single ACK token in the later TTI. The ACK transmission rate is dynamically adjusted using the token bucket algorithm and ACK shaping algorithm. To avoid buffer overflow and smooth buffering requirements.
It effectively avoids base station buffer overflow, reduces UE processing pressure, improves network throughput and stability, reduces TCP round trip time (RTT), and reduces warm-up delay.
Smart Images

Figure CN115943590B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to U.S. Application No. 17 / 319,995, filed on May 13, 2021, which claims the benefit of and priority to U.S. Provisional Patent Application No. 63 / 046,641, filed on June 30, 2020, the entire contents of both applications are hereby incorporated by reference herein.
[0003] background
[0004] Public domain
[0005] Aspects of the present disclosure relate to wireless communications, and more particularly, to techniques for shaping acknowledgements (ACKs) of downlink (DL) data bursts by a user equipment (UE).
[0006] Related technical description
[0007] Wireless communication systems are widely deployed to provide various telecommunication services such as telephony, video, data, messaging, broadcast, etc. These wireless communication systems may employ multiple-access technologies capable of supporting communication with multiple users by sharing available system resources (e.g., bandwidth, transmit power, etc.). Examples of such multiple-access systems include Third Generation Partnership Project (3GPP) Long Term Evolution (LTE) systems, LTE-Advanced (LTE-A) systems, Code Division Multiple Access (CDMA) systems, Time Division Multiple Access (TDMA) systems, Frequency Division Multiple Access (FDMA) systems, Orthogonal Frequency Division Multiple Access (OFDMA) systems, Single Carrier Frequency Division Multiple Access (SC-FDMA) systems, and Time Division Synchronous Code Division Multiple Access (TD-SCDMA) systems, to name just a few.
[0008] These multiple access technologies have been adopted in various telecommunication standards to provide common protocols that enable different wireless devices to communicate at city, country, region, and even global levels. New radio (e.g., 5G NR) is an example of an emerging telecommunication standard. NR is an enhancement set of the LTE mobile standard promulgated by 3GPP. NR is designed to better support mobile broadband Internet access by using OFDMA with cyclic prefix (CP) on downlink (DL) and uplink (UL) to improve spectrum efficiency, reduce costs, improve services, utilize new spectrum, and better integrate with other open standards. To this end, NR supports beamforming, multiple-input multiple-output (MIMO) antenna technology, and carrier aggregation.
[0009] However, as the demand for mobile broadband access continues to grow, there is a need for further improvements to NR and LTE technologies. Preferably, these improvements should be applicable to other multiple access technologies and the telecommunication standards that employ these technologies.
[0010] Overview
[0011] The systems, methods, and apparatus of the present disclosure each have several aspects, no single one of which is solely responsible for its desirable attributes. After considering this discussion, and particularly after reading the section entitled "Detailed Description," one will understand how the features of the present disclosure provide advantages including improved uplink (UL) transmission protocol acknowledgement (ACK) shaping and downlink (DL) data at a user equipment (UE) modem to avoid sending large bursts of transmission protocol ACKs that could cause buffer overflow at a base station (BS).
[0012] Certain aspects of the subject matter described in the present disclosure may be implemented in a method for wireless communication. The method generally includes obtaining a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU) by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of a UE. The method generally includes determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data used to acknowledge the TCP packet burst. The first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst. The method generally includes transmitting the first plurality of ACK tokens in a first TTI. The method generally includes transmitting a single ACK token in a second TTI following the first TTI. The single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0013] Certain aspects of the subject matter described in the present disclosure may be implemented in a device for wireless communication. The device may include a device for obtaining a TCP packet burst conveying a PDCP PDU by an application protocol TCP layer of a communication protocol stack of a UE; a device for determining a first number of a first plurality of ACK tokens to be transmitted in a first TTI based on an amount of data used to acknowledge the TCP packet burst. The first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst. The device generally includes a device for transmitting the first plurality of ACK tokens in the first TTI. The device generally includes a device for transmitting a single ACK token in a second TTI following the first TTI. The single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0014] Certain aspects of the subject matter described in the present disclosure may be implemented in a device for wireless communication. The device may include a memory and at least one processor coupled to the memory. The at least one processor is generally configured to obtain a TCP packet burst conveying a PDCP PDU by an application protocol TCP layer of a communication protocol stack of the device. The at least one processor is generally configured to determine a first number of a first plurality of ACK tokens to be transmitted in a first TTI based on the amount of data used to acknowledge the TCP packet burst. The first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst; the first plurality of ACK tokens are transmitted in the first TTI. The at least one processor is generally configured to transmit a single ACK token in a second TTI following the first TTI. The single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0015] Certain aspects of the subject matter described in the present disclosure may be implemented in a computer-readable medium on which computer executable code for wireless communication is stored. The computer-readable medium generally includes code for obtaining a TCP packet burst conveying a PDCP PDU by an application protocol TCP layer of a communication protocol stack of the device. The computer-readable medium generally includes code for determining a first number of a first plurality of ACK tokens to be transmitted in a first TTI based on an amount of data used to acknowledge the TCP packet burst. The first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst. The computer-readable medium generally includes code for transmitting the first plurality of ACK tokens in the first TTI. The computer-readable medium generally includes code for transmitting a single ACK token in a second TTI following the first TTI. The single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0016] To achieve the foregoing and related ends, one or more aspects include features fully described below and particularly pointed out in the claims. The following description and the accompanying drawings set forth in detail certain illustrative features of one or more aspects. However, these features are only indicative of several of the various ways in which the principles of the various aspects can be employed. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order that the manner in which the above-recited features of the present disclosure are employed may be understood in detail, a more particular description of what has been briefly summarized above may be made with reference to various aspects, some of which are illustrated in the accompanying drawings. The drawings illustrate only certain aspects of the present disclosure, and the description may allow for other effective aspects.
[0019] Figure 1 is a block diagram conceptually illustrating an example telecommunications system in accordance with certain aspects of the present disclosure.
[0020] Figure 2 is a block diagram conceptually illustrating designs of example base stations (BSs) and user equipment (UEs) in accordance with certain aspects of the present disclosure.
[0021] Figure 3 An example of a frame format for a New Radio (NR) system is illustrated in accordance with certain aspects of the present disclosure.
[0022] Figure 4 is a block diagram conceptually illustrating a UE, a BS, and a server configured for a Transmission Control Protocol (TCP) according to certain aspects of the present disclosure.
[0023] Figure 5 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0024] Figure 6 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0025] Figure 7 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0026] Figure 8 is a flow diagram illustrating example operations for wireless communications by a UE in accordance with certain aspects of the present disclosure.
[0027] Fig. 9 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0028] Fig.10 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0029] Fig.11 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0030] Fig.12 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0031] Fig.13 is an example transmission timeline for a UE in accordance with certain aspects of the present disclosure.
[0032] Fig.14 Illustrated is a communications device that may include various components configured to perform operations for the techniques disclosed herein in accordance with certain aspects of the present disclosure.
[0033] To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one aspect may be beneficially utilized in other aspects without specific recitation.
[0034] Detailed Description
[0035] Aspects of the present disclosure provide apparatus, methods, processing systems, and computer-readable media for shaping an acknowledgement (ACK) by a user equipment (UE) in response to a downlink (DL) data burst. In an example, a DL data burst may occur during satellite communications.
[0036] According to aspects of the present disclosure, an example of an ACK shaping algorithm (e.g., as performed by a UE) operates on token-based logic. The token size may be determined based on the DL data rate configured for the UE. For example, the UE may be configured with a DL data rate of 4 Gigabits per second (Gbps) (equivalent to 500 kilobytes per millisecond (KB / ms)), and tokens may be generated at a rate sufficient to acknowledge 500KB / ms of data. When there is a transmission control protocol (TCP) ACK waiting for an uplink (UL) transmission, a token bucket algorithm may be employed. Following the token bucket algorithm, the UE may send an ACK when enough tokens are waiting for UL transmission, or if there are not enough tokens, the UE keeps acquiring tokens until there are enough tokens to send an ACK. If there is no TCP ACK waiting for UL transmission, the number of outstanding tokens is 0. The UE (e.g., a radio front end of the UE) may begin building tokens after the first arrival of a TCP ACK for UL transmission.
[0037] In aspects of the present disclosure, a UE may use an ACK shaping algorithm to send TCP ACKs in the UL in a manner that is smooth over time, which alleviates buffering requirements and scales easily with changes in the TCP transmission window size.
[0038] As will be described in greater detail herein, UL transport protocol ACK shaping may include obtaining, by an application protocol AP TCP layer of a communication protocol stack of a UE, a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU). UL transport protocol ACK shaping may include determining a first number of first ACK tokens to be transmitted in a first transmission time interval (TTI) in response to a TCP packet based on an amount of data used to acknowledge the TCP packet, wherein each first ACK token corresponds to first data in one or more TCP packets in the burst. UL transport protocol ACK shaping may include transmitting a first number of first ACK tokens in a first TTI. UL transport protocol ACK shaping may include transmitting a second ACK token in a second TTI following the first TTI, wherein the second ACK token corresponds to second data in one or more TCP packets in the burst.
[0039] The following description provides an example of shaping ACK for UE in response to DL data burst. Changes may be made to the functions and arrangements of the elements discussed. Various examples may appropriately omit, replace, or add various procedures or components. For example, the described method may be performed in an order different from the described order, and various steps may be added, omitted, or combined. Moreover, the features described with reference to some examples may be combined in some other examples. For example, any number of aspects set forth herein may be used to implement a device or practice method. In addition, the present disclosure is intended to cover such devices or methods practiced using other structures, functionalities, or structures and functionalities as supplements to the various aspects of the present disclosure set forth herein or in addition. It should be understood that any aspect of the present disclosure disclosed herein may be implemented by one or more elements of the claims. The wording "example" is used herein to mean "used as an example, instance, or explanation". Any aspect described as an "example" herein need not be interpreted as being superior to or superior to other aspects.
[0040] Example Telecommunications System
[0041] In general, any number of wireless networks may be deployed in a given geographic area. Each wireless network may support a specific radio access technology (RAT) and may operate on one or more frequencies. RAT may also be referred to as a radio technology, air interface, etc. Frequency may also be referred to as a carrier, subcarrier, frequency channel, frequency tone, subband, etc. Each frequency may support a single RAT in a given geographic area in order to avoid interference between wireless networks of different RATs.
[0042] The techniques described herein can be used for various wireless networks and radio technologies. Although various aspects may be described herein using terms commonly associated with 3G, 4G and / or new radio (e.g., 5G new radio (NR)) wireless technologies, various aspects of the present disclosure may be applied in communication systems based on other generations.
[0043] Figure 1 An example wireless communication network 100 is illustrated in which aspects of the present disclosure may be performed. For example, the wireless communication network 100 may be a NR system (e.g., a 5G NR network). Figure 1 As shown in , the wireless communication network 100 may be in communication with a core network 132. The core network 132 may be in communication with one or more base stations (BSs) 110a-z (also each individually referred to herein as BS 110 or collectively referred to herein as BS 110) and / or user equipments (UEs) 120a-y (also each individually referred to herein as UE 120 or collectively referred to herein as UE 120) in the wireless communication network 100 via one or more interfaces.
[0044] BS 110 may provide communication coverage for a particular geographic area (sometimes referred to as a "cell"), which may be stationary or mobile depending on the location of mobile BS 110. In some examples, BS 110 may be interconnected to each other and / or to one or more other BSs 110 or network nodes (not shown) in wireless communication network 100 via various types of backhaul interfaces (e.g., direct physical connections, wireless connections, virtual networks, etc.) using any suitable transport network. Figure 1 In the example shown in FIG. 1 , BSs 110a, 110b, and 110c may be macro BSs for macro cells 102a, 102b, and 102c, respectively. BS 110x may be a pico BS for pico cell 102x. BSs 110y and 110z may be femto BSs for femto cells 102y and 102z, respectively. BS 110 may support one or more cells. BS 110 communicates with UE 120. UE 120 (e.g., 120x, 120y, etc.) may be dispersed throughout wireless communication network 100, and each UE 120 may be stationary or mobile.
[0045] According to certain aspects, BS 110 and UE 120 may be configured for uplink (UL) and downlink (DL) transmissions. BS 110a may serve as a link between UE 110a and a transmission protocol server. UE 110a may be configured to perform UL transmission protocol acknowledgment (ACK) shaping and / or DL data shaping. Figure 1 As shown in , UE 120a includes an ACK shaping module 122. According to various aspects of the present disclosure, the ACK shaping module 122 can be configured to obtain a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU) by an application protocol (AP) transmission control protocol (TCP) layer of a communication protocol stack of the UE; determine a first number of first ACK tokens to be transmitted in a first transmission time interval (TTI) in response to the TCP packet based on an amount of data used to acknowledge the TCP packet received as a PDCP PDU, wherein each first ACK token corresponds to first data in one or more TCP packets in the burst; transmit a first number of first ACK tokens in the first TTI; and transmit a second ACK token in a second TTI after the first TTI, wherein the second ACK token corresponds to second data in one or more TCP packets in the burst.
[0046] The wireless communication network 100 may also include a relay station (e.g., relay station 110r) (also referred to as a relay, etc.) that receives transmissions of data and / or other information from an upstream station (e.g., BS 110a or UE 120r) and sends transmissions of the data and / or other information to a downstream station (e.g., UE 120 or BS 110), or that relays transmissions between UEs 120 to facilitate communication between wireless devices.
[0047] The network controller 130 may couple to a set of BSs 110 and provide coordination and control for the BSs 110. The network controller 130 may communicate with the BSs 110 via a backhaul. In various aspects, the network controller 130 may be in communication with a core network 132.
[0048] Figure 2 1 and 120a (eg, Figure 1 Example components of a wireless communication network 100).
[0049] At BS 110a, transmit processor 220 may receive data from data source 212 and control information from controller / processor 240. The control information may be for a physical broadcast channel (PBCH), a physical control format indicator channel (PCFICH), a physical hybrid ARQ indicator channel (PHICH), a physical downlink control channel (PDCCH), a group common PDCCH (GC PDCCH), etc. The data may be for a physical downlink shared channel (PDSCH), etc. A medium access control (MAC)-control element (MAC-CE) is a MAC layer communication structure that may be used for control command exchange between wireless nodes. The MAC-CE may be carried in a shared channel, such as a physical downlink shared channel (PDSCH), a physical uplink shared channel (PUSCH), or a physical sidelink shared channel (PSSCH).
[0050] The processor 220 may process (e.g., encode and symbol map) data and control information to obtain data symbols and control symbols, respectively. The transmit processor 220 may also generate reference symbols (such as for a primary synchronization signal (PSS), a secondary synchronization signal (SSS), a PBCH demodulation reference signal (DMRS), and a channel state information reference signal (CSI-RS)). The transmit (TX) multiple-input multiple-output (MIMO) processor 230 may perform spatial processing (e.g., precoding) on data symbols, control symbols, and / or reference symbols where applicable, and may provide an output symbol stream to a modulator (MOD) in a transceiver 232a-232t. Each modulator in the transceiver 232a-232t may process a respective output symbol stream (e.g., for OFDM, etc.) to obtain an output sample stream. Each MOD in the transceiver 232a-232t may further process (e.g., convert to analog, amplify, filter, and up-convert) the output sample stream to obtain a downlink signal. Downlink signals from the modulators in transceivers 232a-232t may be transmitted via antennas 234a-234t, respectively.
[0051] At UE 120a, antennas 252a-252r may receive downlink signals from BS 110a and may provide received signals to demodulators (DEMODs) 254a-254r in transceivers, respectively. Each demodulator in transceivers 254a-254r may condition (e.g., filter, amplify, downconvert, and digitize) a respective received signal to obtain input samples. Each demodulator in transceivers 254a-254r may further process the input samples (e.g., for OFDM, etc.) to obtain received symbols. MIMO detector 256 may obtain received symbols from all demodulators in transceivers 254a-254r, perform MIMO detection on the received symbols where applicable, and provide detected symbols. The receive processor 258 may process (eg, demodulate, deinterleave, and decode) the detected symbols, provide decoded data for the UE 120a to a data sink 260 , and provide decoded control information to a controller / processor 280 .
[0052] On the uplink, at the UE 120a, a transmit processor 264 may receive and process data from a data source 262 (e.g., data for a PUSCH) and control information from a controller / processor 280 (e.g., control information for a physical uplink control channel (PUCCH)). The transmit processor 264 may also generate reference symbols for a reference signal (e.g., a sounding reference signal (SRS)). The symbols from the transmit processor 264 may be precoded by a TX MIMO processor 266, if applicable, further processed by a demodulator in a transceiver 254a-254r (e.g., for SC-FDM, etc.), and transmitted to the BS 110a. At the BS 110a, the uplink signal from the UE 120a may be received by the antenna 234, processed by a modulator in the transceiver 232a-232t, detected by a MIMO detector 236, if applicable, and further processed by a receive processor 238 to obtain decoded data and control information sent by the UE 120a. Receive processor 238 may provide decoded data to data sink 239 and decoded control information to controller / processor 240 .
[0053] Memories 242 and 282 may store data and program codes for BS 110a and UE 120a, respectively.A scheduler 244 may schedule UEs for data transmission on the downlink and / or uplink.
[0054] The antennas 252, processors 266, 258, 264 and / or controller / processor 280 of the UE 120a, and / or the antennas 234, processors 220, 230, 238 and / or controller / processor 240 of the BS 110a may be used to perform the various techniques and methods described herein. Figure 2 As shown in FIG. 1 , the controller / processor 280 of the UE 120a has an ACK shaping module 281 that can be configured to shape the delivery of ACK for UL transmission in accordance with various aspects described herein. Although shown at the controller / processor, other components of the UE 120a can also be used to perform the operations described herein.
[0055] NR can utilize orthogonal frequency division multiplexing (OFDM) with cyclic prefix (CP) on uplink and downlink. NR can support half-duplex operation using time division duplex (TDD). OFDM and single carrier frequency division multiplexing (SC-FDM) divide the system bandwidth into multiple orthogonal subcarriers, which are also often called frequency modulation, frequency slot, etc. Each subcarrier can be modulated with data. Modulation codewords can be sent in the frequency domain with OFDM and in the time domain with SC-FDM. The spacing between adjacent subcarriers can be fixed, and the total number of subcarriers can depend on the system bandwidth. The minimum resource allocation (so-called resource block (RB)) can be 12 consecutive subcarriers. The system bandwidth can also be divided into subbands. For example, one subband can cover multiple RBs. NR can support a base subcarrier spacing (SCS) of 15KHz, and other SCSs (e.g., 30kHz, 60kHz, 120kHz, 240kHz, etc.) can be defined relative to the base SCS.
[0056] Figure 3 300 is a diagram showing an example of a frame format for NR. The transmission timeline of each of the downlink and uplink may be divided into units of radio frames. Each radio frame may have a predetermined duration (e.g., 10 ms) and may be divided into 10 subframes with indices 0 to 9, each subframe being 1 ms. Each subframe may contain a variable number of slots (e.g., 1, 2, 4, 8, 16, ... slots), depending on the SCS. Each slot may include a variable number of symbol periods (e.g., 7, 12, or 14 symbols), depending on the SCS. An index may be assigned to the symbol period in each slot. The subslot structure may refer to a transmission time interval having a duration less than a slot (e.g., 2, 3, or 4 symbols). Each symbol in a slot may be configured as a link direction (e.g., DL, UL, or flexible) for data transmission, and the link direction for each subframe may be dynamically switched. The link direction may be based on the slot format. Each time slot may include DL / UL data and DL / UL control information.
[0057] Figure 4 The description includes a UE 415 (such as Figure 1 UE 120a illustrated in FIG. 1 ), BS 420 (e.g., such as Figure 1 110a) and a transport protocol server 425. Figure 4As shown, UE 415 may include a transport protocol host 405 (e.g., a TCP stack at UE 415). The transport protocol host 405 may control and convert signals transmitted and received by UE 415 for use with the transport protocol. UE 415 also includes a modem 410 (e.g., for signaling at a packet data convergence protocol layer). BS 420 may provide a link between UE 415 and a transport protocol server 425. The transport protocol host 405 and the transport protocol server 425 may be endpoints for the transport protocol.
[0058] In some examples, the transport protocol is TCP. TCP is a protocol in the Internet Protocol (IP) family. TCP is sometimes referred to as TCP / IP. TCP can provide an ordered and error-checked octet (byte) stream between applications running on hosts communicating via a network. TCP can be bidirectional (e.g., both uplink and downlink). TCP can be used in a multiple subscriber identity module (MSIM) scenario, also known as a concurrent radio access technology (RAT), where one hardware (e.g., one modem) is used for multiple subscribers (e.g., for multiple operators), and any subscriber may have to perform tune-aways between subscriptions to search for paging or other mobility procedures. In some examples, TCP uses a sliding window flow control protocol, where in each TCP segment (e.g., packet), the receiving host (e.g., the transport protocol host 405 on the downlink) specifies the amount of additional received data (in bytes) corresponding to the ACK sequence number and the additional data it wishes to buffer for the connection (e.g., in the receive window). The sending host (e.g., the transport protocol server 425) can only send up to that amount of data, after which it waits for an ACK and window update from the receiving host.
[0059] Some TCP implementations include four phases of congestion control: slow start, congestion avoidance, fast retransmit, and fast recovery. For congestion avoidance, ACKs and / or lack of ACKs for sent data are used by the sender to infer network conditions between the TCP sender and receiver. Coupled with timers, the TCP sender and receiver can change the behavior of the data stream. Enhancing TCP to reliably handle losses, minimize errors, manage congestion, and run fast in very high-speed environments is an area of current research and standards development. As a result, there are several TCP congestion avoidance algorithm variants.
[0060] Throughput issues may arise when the immediate transport protocol ACK rate on the UL or DL is high. In some cases, a modem (e.g., such as modem 410) transmits transport protocol ACKs at a high rate, allowing a transport protocol sender (e.g., such as transport protocol server 425) to send a large amount of data (e.g., packet spikes or bursts), which in turn may cause buffer overflows at a bottleneck (e.g., such as BS 420).
[0061] UL transport protocol ACK bursts (e.g., high ACK rates) may be caused by various scenarios. In one example, UL transport protocol ACK bursts may occur when UE 415 (e.g., at layer 2) transmits ACKs in priority relative to other data. In this scenario, when UL grants are delayed, a transport protocol ACK buffer builds and UE 415 transmits all buffered ACKs at once in a burst. In another example, UL transport protocol ACK bursts may occur in response to downlink data bursts. For example, when one or more holes are recovered (e.g., at radio link control (RLC)), the RLC protocol may deliver large data bursts to the transport layer, resulting in a transport protocol ACK burst from the host. In this scenario, the problem may be exacerbated in MSIM scenarios where RLC recovery may become more frequent due to tuning away from the serving cell. In another example, UL transport protocol ACK bursts may occur when a WLAN (wireless local area network) station incurs a delay in accessing the WLAN medium in a mobile hotspot scenario. Once the WLAN station accesses the data, the WLAN station sends a transport protocol ACK burst to the UE 415, which in turn bursts it on the WWAN. In yet another example, a UL transport protocol ACK burst may occur when a host scheduler schedules a task with some delay. Once a task is run, a large amount of transport protocol data is processed and a corresponding UL transport protocol ACK is created and transmitted. In yet another example, a UL transport protocol ACK burst may occur when a delay is implemented in a modem accumulation and / or aggregation timer.
[0062] The above examples illustrate only certain scenarios that may cause UL transport protocol ACK bursts. The present specification is not intended to be limited to these examples; other scenarios may cause UL transport protocol ACK bursts and may be addressed by the techniques described herein for UL transport protocol ACK shaping and / or DL data shaping (described in detail below). Because UL transport protocol ACK bursts may be caused by a variety of scenarios, it may not be simple / impossible to eliminate all sources that cause UL transport protocol ACK bursts.
[0063] On DL, UE 415 (e.g., at L2) may accumulate a large amount of data due to reordering. The transmission speed between the modem (at UE 415) and the host (at UE 415) may greatly exceed the speed of the air interface between UE 415 and BS 420 and / or the sending host, such as due to the speed of double data rate (DDR) direct memory access (DMA). This may cause problems for the host (at UE 415). For example, the host handles the data and delivers a large number of ACKs (sends ACK bursts). The host may not be prepared for this and may incur delays or packet losses when processing this large burst. The host CPU may become overloaded due to the high rate of the burst.
[0064] In some aspects of the present disclosure, when a UE 415 experiences an error (e.g., a block error, when a block error rate (BLER) is greater than 0) when receiving a packet, data received after the error may be accumulated in a PDCP reordering window (ROW) while the UE 415 requests and waits for a retransmission of the packet. If the UE 415 successfully receives the retransmission of the packet, the PDCP portion of the receiving protocol stack of the UE 415 delivers all the accumulated packets to the higher layers of the UE 415, and the higher layers may deliver ACKs for all the accumulated packets for transmission from the UE 415. The transmission protocol stack delivers ACKs in sequence, resulting in a delay in the delivery of ACKs for packets received after the packets received by the UE 415 in error.
[0065] ACK shaping may allow the UE 415 to control the rate or amount of UL transport protocol ACKs transmitted in a TTI (eg, in an UL timeslot such as a PUSCH timeslot) and / or the rate or amount of data units (transmission protocol data only or all data) transmitted to the host per time unit.
[0066] There may not be a single optimal UL transport protocol ACK rate for all scenarios. For example, UE 415 may release (i.e., transmit) a certain minimum amount of ACK to keep the BS 420 buffer refilled, i.e., maintain the throughput level; however, UE 415 may not know how many buffers BS 420 has for UE 415 or whether the buffer is shared with other UEs. Moreover, the buffer occupancy may change over time. In addition, there may be no throughput increase due to building a larger buffer at BS 420. When UE 415 transmits less than the minimum amount of ACK, the sending host may become window-limited. However, when UE 415 transmits too many ACKs, the BS 420 buffer may overflow and the sending host DL data rate may drop.
[0067] Figure 5 is a UE (e.g. Figure 15. In the example transmission timeline, the UE is configured with a packet reordering timer (T 重排序 ). That is, Layer 2 of the UE's receive protocol stack can save the PDCP packet for up to 40ms before reporting the error to the higher protocol layers. The UE is also configured with a DL data rate of 4 Gbps and a token rate of 500KB / ms. The UE may have an error in receiving a packet, and a PDCP ROW establishment is initiated, for example, due to a BLER greater than 0. After 40ms, the UE successfully recovers from the error (for example, the UE receives a retransmission of the packet for which the UE had an error), and 12MB of data is pushed to the AP layer. All PDCP packets are released to the AP TCP stack in sequence. The AP provides all TCP ACKs for the DL 12MB data within a few milliseconds. Under the current token bucket algorithm of 500KB / ms, the UE uses 12MB / 500K=24ms to send all ACKs. The error in receiving the DL packet has incurred a 40ms delay in the DL. Due to ACK shaping (for example, transmitting ACKs up to 500KB / ms), an additional 24ms delay is added in total.
[0068] Figure 6 is a UE (e.g. Figure 1 6. In the example transmission timeline, the UE is configured with a packet reordering timer (T 重排序 ). The UE is also configured with a DL data rate of 2 Gbps and a token rate of 250KB / ms. The UE may have an error in receiving a packet, and a PDCP ROW establishment is initiated, for example, due to a BLER greater than 0. After 90ms, the UE successfully recovers from the error (e.g., the UE receives a retransmission of the packet for which the UE had an error), and 15MB of data is pushed to the AP layer. All PDCP packets are released in sequence to the AP TCP stack. The AP provides all TCP ACKs for the DL 15MB of data within a few milliseconds. Under the current token bucket algorithm of 250KB / ms, the UE uses 15MB / 250K=60ms to send all ACKs. The error in receiving the DL packet has incurred a 90ms delay in the DL. Due to ACK shaping (e.g., transmitting ACKs up to 500KB / ms), an additional 60ms delay is added in total.
[0069] ACK shaping as described above may smooth ACK bursts on the UL to ensure smooth buffering at the network (eg, at the BS receiving the ACK), but DL inactivity and / or burstiness may result in further increase in TCP round trip time (RTT).
[0070] Figure 7 is a UE (e.g. Figure 1 1. In the example transmission timeline, the UE is configured with a packet reordering timer (T 重排序 ). The UE is also configured with a DL data rate of 2 Gbps and a token rate of 250 KB / ms. The UE may have an error in receiving a packet, and a PDCP ROW establishment is initiated, for example, due to a BLER greater than 0. After 90 ms, the UE successfully recovers from the error (e.g., the UE receives a retransmission of the packet for which the UE had an error), and 15 MB of data is pushed to the AP layer. Since there is no active traffic in the case of ROW establishment, various components of the UE (e.g., a peripheral component interconnect express (PCIe) link) (e.g., components in a wireless modem of the UE) may go to an inactive state (e.g., an LPM_L0 state) along with a modem host interface (MHI) driver, where LPM_L0 is the least active state of the four states of the PCIe link, LPM_L0, LPM_L1, LPM_L2, and LPM_L3). The PCIe link and the MHI driver may have a warm-up delay for returning to an active state. The amount of delay may be based on the inactive and active states. For example, the pre-warm-up to LPM_L0 may be 10ms for LPM_L2 and 150ms for LPM_L3. All PDCP packets are released to the AP TCP stack in order. The AP provides all TCP ACKs for DL 15MB data within a few milliseconds. In an example, the UE can drain data at a rate of 8Gbps, which is equivalent to 1MB / ms, and thus the UE takes 15ms to send all ACKs.
[0071] Example Acknowledgement Shaping for Downlink Data Burst
[0072] Various aspects of the present disclosure provide techniques for shaping an acknowledgement (ACK) by a user equipment (UE) in response to a downlink (DL) data burst. The UE may send a first number of ACK tokens in a first transmission time interval (TTI) after a DL data burst arrives and then send one ACK token in a later TTI.
[0073] The ACK shaping algorithm can operate on token-based logic. In some systems, the ACK shaping algorithm can be executed to send 1 token per millisecond. The technology described herein can allow "front-end loading", where in the first TTI (e.g., the first few milliseconds), the ACK shaping algorithm can be configured to send multiple ACKs, and then additional ACKs can be sent in later TTIs (e.g., every 1 millisecond). The technology described herein is dynamic, and front-end loading can send different ACK amounts in the first few milliseconds. The technology described herein can use dummy traffic to wake up the link and reduce warm-up delays.
[0074] Figure 8 800 is a flow diagram illustrating example operations 800 for wireless communication in accordance with certain aspects of the present disclosure. Operations 800 may be performed, for example, by a UE (e.g., such as Figure 1 Operation 800 may be implemented as a processor (e.g., Figure 2 In addition, signal transmission and reception by the UE in operation 800 may be performed by one or more antennas (e.g., Figure 2 In some aspects, signal transmission and / or reception by the UE may be performed via one or more processors (e.g., Figure 2 This is achieved by obtaining and / or outputting signals through a bus interface of a controller / processor 280).
[0075] At 805, the UE obtains a Transmission Control Protocol (TCP) packet burst conveying a Packet Data Convergence Protocol (PDCP) protocol data unit (PDU) through an application protocol Transmission Control Protocol (TCP) layer of a communication protocol stack of the UE.
[0076] At 810, the UE determines a first number of a first plurality of ACK tokens to transmit in a first transmission time interval (TTI) based on an amount of data used to acknowledge (ACK) the TCP packet burst. The first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst.
[0077] At 815, the UE transmits the first plurality of ACK tokens in a first TTI.
[0078] The UE transmits a single ACK token in a second TTI following the first TTI at 820. The single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0079] In some aspects, determining the first number of first ACK tokens includes determining the minimum of a first threshold number of ACK tokens and a quotient of half the amount of data divided by the size of each ACK token. In some such aspects, the threshold is ten. In some other such aspects, the UE performing operation 800 receives a configuration indicating the first threshold number of ACK tokens.
[0080] In some aspects, determining a second number of the second plurality of ACK tokens comprises dividing the remainder of the amount of data for acknowledging the TCP packet burst by the size of each ACK token. The second plurality of ACK tokens corresponds to third data in one or more TCP packets in the TCP packet burst. A single ACK token in the second plurality of ACK tokens is transmitted in each TTI after the second TTI.
[0081] In some aspects, determining the first number of the first plurality of ACK tokens is further based on an average time that TCP packets in the TCP packet burst spend in a DL PDCP ROW.
[0082] In some aspects, the UE performing operation 800 determines a third number of a third plurality of ACK tokens to be transmitted in a third TTI based on the amount of data used to acknowledge the TCP packet. The third TTI is after the first TTI and before the second TTI. Each ACK token in the third plurality of ACK tokens corresponds to fourth data in one or more TCP packets in the TCP packet burst. The UE transmits the third plurality of ACK tokens in the third TTI. In some such aspects, determining the third number of the third plurality of ACK tokens includes determining a minimum of: a second threshold number of ACK tokens, wherein the second threshold number is different from the first threshold number; and a quotient of half of the remainder of the amount of data and the size of each ACK token. In some other such aspects, the threshold is five.
[0083] In some aspects, a TCP packet burst comprises packets that are flushed from a reorder buffer within a threshold period of time.
[0084] In some aspects, the UE performing operation 800 sends dummy traffic from the application protocol TCP layer to the application processor before acquiring the TCP packet burst in response to determining at least one of the following: the amount of data in the reordering buffer is greater than a threshold amount of data, no downlink traffic is received within a threshold duration, a reordering timer will expire within a threshold duration, an accumulation timer will expire within a threshold duration, or a combination thereof. In some such aspects, the dummy traffic includes a flow control command. In some other such aspects, the dummy traffic includes a DL burst marker.
[0085] In various aspects of the present disclosure, a UE receiving a packet may experience a PDCP reordering window establishment due to an error in the received packet. After successfully recovering from the error, a DL packet burst may be pushed to the application protocol layer. As long as there is a dump or a DL data burst, the ACK shaping algorithm as described herein will acquire a non-zero number of tokens to start transmission. The number of tokens to be transmitted in the first TTI may depend on how much data is dumped or the size of the burst in the DL. For example, 12MB is dumped to the UE's AP, and the UE has 6MB of tokens to start. In this example, the maximum number of tokens that the UE can transmit in a TTI is 10. The UE may determine the number of tokens to be transmitted = MIN (10, half burst / token size). Then, after the first opportunity to transmit the ACK for the first 6MB, a token is acquired every millisecond to send an ACK for 500KB of data in the uplink (UL).
[0086] Fig. 9 is a UE according to various aspects of the present disclosure (e.g., Figure 1 1, which shows an example of ACK shaping under front-end loading. In the example transmission timeline 900, the UE is configured with a packet reordering timer (T 重排序 ). That is, Layer 2 of the UE's receive protocol stack can save the PDCP packet for up to 40ms before reporting the error to the higher protocol layers. The UE is also configured with a DL data rate of 4 Gbps and a token rate of 500KB / ms. The UE may have an error in receiving a packet, and a PDCP ROW establishment is initiated, for example, due to a block error rate (BLER) greater than 0. After 40ms, the UE successfully recovers from the error (for example, the UE receives a retransmission of the packet for which the UE had an error), and 12MB of data is pushed to the AP layer. All PDCP packets are released in sequence to the AP TCP stack. The AP provides all TCP ACKs for the DL 12MB data within a few milliseconds. Fig. 9 As shown, the UE may "front load" some of these ACK tokens. As shown in the illustrative example, the UE sends ACKs (e.g., tokens 1-12) corresponding to 6MB of data in the first TTI (e.g., within the first millisecond). The UE may send the remaining ACK tokens every millisecond. As shown, the UE may send 12 tokens for the remaining 6MB of data in the next 12 milliseconds. Thus, as shown in FIG. Fig. 9 ACK shaping for 12MB of data with front-end loading as shown can reduce the time available to send an ACK to 13ms instead of Figure 5 24 ms in the example shown for sending the ACK.
[0087] Fig.10 is a UE according to various aspects of the present disclosure (e.g., Figure 1 1000, which shows another example of ACK shaping under front-end loading. In the example transmission timeline 1000, the UE is configured with a packet reordering timer (T 重排序 ); 2Gbps DL data rate; and 250KB / ms token rate. After 90ms, 15MB of data is pushed to the AP layer. Fig.10 In the example in FIG. 1 , the UE front-loads the ACK corresponding to 8MB of data (e.g., tokens 1-32) in the first TTI. The UE can send the ACK for the remaining 7MB of data (e.g., tokens 33-60) in the next 28ms. Thus, Fig.10 ACK shaping for 15MB of data with front-end loading as shown reduces the time available to send an ACK to 29ms instead of Figure 6 60 ms in the example shown for sending an ACK.
[0088] Fig.11 is a UE according to various aspects of the present disclosure (e.g., Figure 1 1, which illustrates ACK shaping under dynamic front-end loading. In the example transmission timeline 1100, the UE is configured with a packet reordering timer (T 重排序 ); DL data rate of 2Gbps; and token rate of 250KB / ms. After 90ms, 15MB of data is pushed to the AP layer. As shown, the UE sends an ACK corresponding to 8MB of data in the first TTI (e.g., ACK tokens 1-32). The UE then sends an ACK corresponding to 4MB of data in the second TTI (e.g., tokens 33-48). The UE can send an ACK for the remaining 3MB of data (e.g., tokens 49-60) within the next 12ms. Thus, as shown in FIG. Fig.11 The ACK shaping for 15MB of data under dynamic front-end loading shown can reduce the time available to send an ACK to 15ms instead of Fig.10 29 ms in the example shown to send an ACK.
[0089] In various aspects of the present disclosure, ACK shaping as described above can smooth ACK bursts on the UL to ensure smooth buffering at the network (e.g., at the base station (BS) receiving the ACK), but DL inactivity and / or burstiness can lead to further increases in TCP round trip time (RTT). Various aspects of the present disclosure provide for a UE to determine the amount / rate of UL transport protocol ACKs to be transmitted in a duration.
[0090] According to certain aspects, dummy packets may be used to prevent components from entering an inactive state, thereby avoiding warm-up delays. Fig.12 is a UE according to various aspects of the present disclosure (e.g., Figure 1 120a). In the example transmission timeline 1200, the UE is configured with a packet reordering timer (T 重排序 ); a data rate of 8Gps; and a token rate of 1MB. During the reordering window, the UE may generate and send dummy traffic from the TCP layer to the processor to cause the peripheral component interconnect express (PCIe) and / or the modem host interface (MHI) to become active or remain active. As shown, the dummy traffic may wake up the PCIe and / or MHI components from a low power mode (LPM) to an active state, such as LPM_2 to LPM_0. In this example, the wake-up may take 10ms. Since the dummy traffic starts more than 10ms before the flush of the reordering buffer, the wake-up does not cause additional delays in sending ACKs. Therefore, after 90ms, 15MB of data is pushed to the AP layer and because the PCIe and MHI have become active in response to the dummy traffic, the UE can start transmitting ACKs. In this example, the UE can drain data at a rate of 8Gps or 1MB / ms. As a result, the UE can send all ACKs within 15ms, instead of in 15ms. Figure 7 25ms used in the illustrated example.
[0091] In some cases, using dummy traffic to activate components can reduce but not eliminate delays, such as Fig.13 For example, the warm-up for L3 state can be 100ms, and can still be warmed up when the reorder buffer is flushed. In the illustrative example shown, PCIe / MHI is warmed up for an additional 20ms delay, after which the UE can start transmitting ACKs. Therefore, the UE can send all ACKs in 35ms, instead of Figure 7 115ms used in the example explained in .
[0092] Fig.14 The description may include operations configured to perform the techniques disclosed herein (such as, Figure 8 1400 includes a communication device 1400 that includes various components (e.g., corresponding to means-plus-function components) of the operations illustrated in . The communication device 1400 includes a processing system 1402 coupled to a transceiver 1408. The transceiver 1408 is configured to transmit and receive signals (such as the various signals described herein) for the communication device 1400 via an antenna 1410. The processing system 1402 can be configured to perform processing functions for the communication device 1400, including processing signals received and / or to be transmitted by the communication device 1400.
[0093] The processing system 1402 includes a processor 1404 coupled to a computer readable medium / memory 1412 via a bus 1406. In some aspects, the computer readable medium / memory 1412 is configured to store a program that, when executed by the processor 1404, causes the processor 1404 to execute Figure 8 In some aspects, the computer-readable medium / memory 1412 stores: code 1414 for obtaining, by an application protocol TCP layer of a communication protocol stack of the UE, a TCP packet burst conveying a PDCP PDU; code 1416 for determining a first number of a first plurality of ACK tokens to be transmitted in a first TTI based on an amount of data for acknowledging the TCP packet burst, wherein the first plurality of ACK tokens correspond to first data in one or more TCP packets in the TCP packet burst; code 1418 for transmitting the first plurality of ACK tokens in the first TTI; and code 1420 for transmitting a single ACK token in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0094] In certain aspects, the processor 1404 has circuitry configured to implement code stored in the computer-readable medium / memory 1412. The processor 1404 includes: circuitry 1422 for obtaining, by an application protocol TCP layer of a communication protocol stack of the UE, a TCP packet burst conveying a PDCP PDU; circuitry 1424 for determining a first number of a first plurality of ACK tokens to be transmitted in a first TTI based on an amount of data for acknowledging the TCP packet burst, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst; circuitry 1426 for transmitting the first plurality of ACK tokens in the first TTI; and circuitry 1428 for transmitting a single ACK token in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0095] Example aspects
[0096] Various implementation examples are described in the following numbered aspects:
[0097] In a first aspect, a method for wireless communication by a user equipment (UE) includes: obtaining, by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of the UE, a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU); determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data used to acknowledge (ACK) the TCP packet burst, wherein the first plurality of ACK tokens correspond to first data in one or more TCP packets in the TCP packet burst; transmitting the first plurality of ACK tokens in the first TTI; and transmitting a single ACK token in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
[0098] In a second aspect, alone or in combination with the first aspect, determining the first number of first ACK tokens comprises determining a minimum of: a first threshold number of ACK tokens; and a quotient of half the amount of data divided by a size of each ACK token.
[0099] In a third aspect, alone or in combination with one or more of the first and second aspects, a configuration indicating the first threshold number of ACK tokens is received.
[0100] In a fourth aspect, alone or in combination with one or more of the first to third aspects, determining a second number of a second plurality of ACK tokens, the second number comprising the quotient of the remainder of the amount of data for acknowledging the TCP packet burst divided by the size of each ACK token, wherein the second plurality of ACK tokens corresponds to third data in one or more TCP packets in the TCP packet burst; and transmitting a single ACK token of the second plurality of ACK tokens in each TTI after the second TTI.
[0101] In a fifth aspect, alone or in combination with one or more of the first to fourth aspects, determining the first number of the first plurality of ACK tokens is further based on an average time that TCP packets in the TCP packet burst spend in a downlink PDCP reordering window.
[0102] In a sixth aspect, alone or in combination with one or more of the first to fifth aspects, a third number of third multiple ACK tokens to be transmitted in a third TTI is determined based on the amount of data used to acknowledge the TCP packet, wherein the third TTI is after the first TTI and before the second TTI, and wherein the third multiple ACK tokens correspond to fourth data in one or more TCP packets in the TCP packet burst; and the third multiple ACK tokens are transmitted in the third TTI.
[0103] In a seventh aspect, alone or in combination with one or more of the first to sixth aspects, determining the third number of the third plurality of ACK tokens comprises: determining the minimum of: a second threshold number of ACK tokens, wherein the second threshold number is different from the first threshold number; and a quotient of half the remainder of the amount of data divided by the size of each ACK token.
[0104] In an eighth aspect, either alone or in combination with one or more of the first to seventh aspects, the TCP packet burst comprises packets dumped from a reorder buffer within a threshold period of time.
[0105] In a ninth aspect, either alone or in combination with one or more of the first to eighth aspects, before acquiring the TCP packet burst, dummy traffic is sent from the application protocol TCP layer to the application processor in response to determining at least one of the following: the amount of data in the reordering buffer is greater than a threshold amount of data, no downlink traffic is received within a threshold duration, a reordering timer will expire within a threshold duration, a cumulative timer will expire within a threshold duration, or a combination thereof.
[0106] In a tenth aspect, either alone or in combination with one or more of the first to ninth aspects, the dummy traffic comprises flow control commands.
[0107] In an eleventh aspect, either alone or in combination with one or more of the first to tenth aspects, the dummy traffic includes a downlink burst marker.
[0108] An apparatus for wireless communication, comprising: at least one processor and a memory coupled to the at least one processor, the memory comprising code, the code being executable by the at least one processor so that the apparatus performs the method of any one of the first to eleventh aspects.
[0109] An apparatus comprising means for performing the method of any one of the first to eleventh aspects.
[0110] A computer readable medium having stored thereon a computer executable code for wireless communication, which when executed by at least one processor causes an apparatus to perform the method of any one of the first to eleventh aspects.
[0111] Additional considerations
[0112] The techniques described herein may be used for various wireless communication technologies, such as NR (e.g., 5G NR), 3GPP Long Term Evolution (LTE), Advanced LTE (LTE-A), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiple Access (OFDMA), Single Carrier Frequency Division Multiple Access (SC-FDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), WLAN, and other networks. The terms "network" and "system" are often used interchangeably. A CDMA network may implement radio technologies such as Universal Terrestrial Radio Access (UTRA), cdma2000, and the like. UTRA includes Wideband CDMA (WCDMA) and other variants of CDMA. cdma2000 covers IS-2000, IS-95, and IS-856 standards. A TDMA network may implement radio technologies such as Global System for Mobile Communications (GSM). OFDMA networks can implement radio technologies such as NR (e.g., 5G RA), Evolved UTRA (E-UTRA), Ultra Mobile Broadband (UMB), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDMA, etc. UTRA and E-UTRA are parts of Universal Mobile Telecommunications System (UMTS). LTE and LTE-A are versions of UMTS that use E-UTRA. UTRA, E-UTRA, UMTS, LTE, LTE-A, and GSM are described in documents from an organization named "3rd Generation Partnership Project" (3GPP). cdma2000 and UMB are described in documents from an organization named "3rd Generation Partnership Project 2" (3GPP2). NR is an emerging wireless communication technology under development.
[0113] In 3GPP, the term "cell" may refer to the coverage area of a B node (NB) and / or a NB subsystem serving the coverage area, depending on the context in which the term is used. In NR systems, the terms "cell" and BS, next-generation B node (gNB or g B node), access point (AP), distributed unit (DU), carrier, or transmission reception point (TRP) may be used interchangeably. The BS may provide communication coverage for macro cells, pico cells, femto cells, and / or other types of cells. A macro cell may cover a relatively large geographic area (e.g., a radius of several thousand meters) and may allow unrestricted access by UEs with service subscriptions. A pico cell may cover a relatively small geographic area and may allow unrestricted access by UEs with service subscriptions. A femto cell may cover a relatively small geographic area (e.g., a residence) and may allow restricted access by UEs associated with the femto cell (e.g., UEs in a closed subscriber group (CSG), UEs of users in a residence, etc.). A BS for a macro cell may be referred to as a macro BS. A BS for a pico cell may be referred to as a pico BS. A BS for a femto cell may be referred to as a femto BS or a home BS.
[0114] UE may also be referred to as a mobile station, terminal, access terminal, subscriber unit, station, customer premises equipment (CPE), cellular phone, smart phone, personal digital assistant (PDA), wireless modem, wireless communication device, handheld device, laptop computer, cordless phone, wireless local loop (WLL) station, tablet computer, camera, gaming device, netbook, smartbook, ultrabook, appliance, medical device or medical equipment, biometric sensor / device, wearable device (such as smart watch, smart clothing, smart glasses, smart wristband, smart jewelry (e.g., smart ring, smart bracelet, etc.)), entertainment device (e.g., music device, video device, satellite radio, etc.), transportation component or sensor, smart meter / sensor, industrial manufacturing equipment, global positioning system device, or any other suitable device configured to communicate via wireless or wired medium. Some UEs may be considered machine type communication (MTC) devices or evolved MTC (eMTC) devices. MTC and eMTC UEs include, for example, robots, drones, remote devices, sensors, meters, monitors, location tags, etc., which can communicate with a BS, another device (e.g., a remote device), or some other entity. A wireless node can provide connectivity for or to a network (e.g., a wide area network (such as the Internet) or a cellular network), for example, via a wired or wireless communication link. Some UEs may be considered Internet of Things (IoT) devices, which may be narrowband IoT (NB-IoT) devices.
[0115] In some examples, access to the air interface may be scheduled. A scheduling entity (e.g., BS) allocates resources for communication between some or all devices and equipment within its service area or cell. A scheduling entity may be responsible for scheduling, assigning, reconfiguring, and releasing resources for one or more subordinate entities. That is, for scheduled communications, subordinate entities utilize resources allocated by the scheduling entity. A base station is not the only entity that can be used as a scheduling entity. In some examples, a UE may act as a scheduling entity, and may schedule resources for one or more subordinate entities (e.g., one or more other UEs), and other UEs may utilize resources scheduled by the UE for wireless communication. In some examples, a UE may act as a scheduling entity in a peer-to-peer (P2P) network and / or in a mesh network. In a mesh network example, UEs may communicate directly with each other in addition to communicating with a scheduling entity.
[0116] In some examples, two or more subordinate entities (e.g., UEs) may communicate with each other using sidelink signals. Real-world applications of such sidelink communications may include public safety, proximity services, UE-to-network relay, vehicle-to-vehicle (V2V) communications, Internet of Everything (IoE) communications, IoT communications, mission-critical mesh networks, and / or various other suitable applications. Generally, a sidelink signal may refer to a signal that is communicated from one subordinate entity (e.g., UE1) to another subordinate entity (e.g., UE2) without relaying the communication through a scheduling entity (e.g., UE or BS), even if the scheduling entity may be used for scheduling and / or control purposes. In some examples, the sidelink signal may be communicated using a licensed spectrum (unlike wireless local area networks, which typically use an unlicensed spectrum).
[0117] As used herein, a phrase referring to "at least one of" a list of items refers to any combination of those items, including single members. As an example, "at least one of a, b, or c" is intended to cover: a, b, c, ab, ac, bc, and abc, as well as any combination with multiple identical elements (e.g., aa, aaa, aab, aac, abb, acc, bb, bbb, bbc, cc, and ccc, or any other ordering of a, b, and c).
[0118] As used herein, the term "determining" encompasses a wide variety of actions. For example, "determining" may include calculating, computing, processing, deriving, investigating, searching (e.g., searching in a table, a database, or another data structure), ascertaining, and the like. Also, "determining" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), and the like. Also, "determining" may include resolving, selecting, choosing, establishing, and the like.
[0119] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be easily understood by those skilled in the art, and the universal principles defined herein can be applied to other aspects. Thus, the claims are not intended to be limited to the various aspects shown herein, but should be granted the full scope consistent with the language of the claims, wherein the singular reference to the element is not intended to mean "there is and only one" (unless specifically stated) but "one or more". Unless otherwise specifically stated, the term "some / some" refers to one or more. The elements of the various aspects described throughout this disclosure are all structural and functional equivalents currently or hereafter known to ordinary technicians in the art and are explicitly incorporated herein by reference, and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be donated to the public, regardless of whether such disclosure is explicitly recorded in the claims. Any element of the claim should not be interpreted under the provisions of 35 U.S.C. § 112 (f), unless the element is explicitly stated using the phrase "device for..." or in the case of a method claim, the element is stated using the phrase "step for...".
[0120] The various operations of the methods described above may be performed by any suitable device capable of performing the corresponding functions. These devices may include various hardware and / or software components and / or modules, including but not limited to circuits, application specific integrated circuits (ASICs), or processors. Generally, where there are operations illustrated in the accompanying drawings, these operations may have corresponding paired device-plus-function components with similar numbers.
[0121] The various illustrative logical blocks, modules, and circuits described in conjunction with the present disclosure may be implemented or executed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0122] If implemented in hardware, an example hardware configuration may include a processing system in a wireless node. The processing system may be implemented using a bus architecture. Depending on the specific application and overall design constraints of the processing system, the bus may include any number of interconnecting buses and bridges. The bus may link together various circuits including a processor, a machine-readable medium, and a bus interface. The bus interface may be used to connect a network adapter, etc., to the processing system via the bus. The network adapter may be used to implement the signal processing functions of the PHY layer. In the user terminal 120 (see Figure 1 ), a user interface (e.g., a keypad, display, mouse, joystick, etc.) may also be connected to the bus. The bus may also link various other circuits, such as timing sources, peripherals, voltage regulators, power management circuits, and the like, which are well known in the art and will not be described further. The processor may be implemented with one or more general and / or special purpose processors. Examples include microprocessors, microcontrollers, DSP processors, and other circuit systems capable of executing software. Those skilled in the art will recognize how to best implement the functionality described with respect to the processing system, depending on the specific application and the overall design constraints imposed on the overall network or system.
[0123] If implemented in software, each function may be stored on or transmitted by a computer-readable medium as one or more instructions or codes. Software should be broadly interpreted to mean instructions, data, or any combination thereof, whether referred to as software, firmware, middleware, microcode, hardware description language, or other. Computer-readable media include both computer storage media and communication media, which include any media that facilitate the transfer of computer programs from one place to another. The processor may be responsible for managing the bus and general processing, including executing software modules stored on a machine-readable storage medium. A computer-readable storage medium may be coupled to a processor so that the processor can read and write information from / to the storage medium. In an alternative, a storage medium may be integrated into a processor. As an example, a machine-readable medium may include a transmission line, a carrier modulated by data, and / or a computer-readable storage medium having instructions stored thereon that is separated from a wireless node, all of which may be accessed by a processor through a bus interface. Alternatively or additionally, a machine-readable medium or any part thereof may be integrated into a processor, such as a cache and / or a general register file, which may be the case. As an example, examples of machine-readable storage media may include RAM (random access memory), flash memory, ROM (read only memory), PROM (programmable read only memory), EPROM (erasable programmable read only memory), EEPROM (electrically erasable programmable read only memory), registers, magnetic disks, optical disks, hard drives, or any other suitable storage media, or any combination thereof. Machine-readable media may be implemented in a computer program product.
[0124] A software module may include a single instruction, or many instructions, and may be distributed over several different code segments, between different programs, and across multiple storage media. A computer-readable medium may include multiple software modules. These software modules include instructions that cause a processing system to perform various functions when executed by an apparatus such as a processor. These software modules may include a transmission module and a reception module. Each software module may reside in a single storage device or may be distributed across multiple storage devices. As an example, when a triggering event occurs, a software module may be loaded into a RAM from a hard drive. During the execution of a software module, a processor may load some instructions into a cache to increase access speed. One or more cache lines may then be loaded into a general register file for execution by the processor. When describing the functionality of a software module as described below, it will be understood that such functionality is implemented by the processor when the processor executes instructions from the software module.
[0125] Likewise, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology (such as infrared (IR), radio, and microwave), then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technology (such as infrared, radio, and microwave) is included in the definition of medium. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Disks, where disks often reproduce data magnetically, and discs reproduce data optically with lasers. Thus, in some aspects, computer-readable media may include non-transitory computer-readable media (e.g., tangible media). Additionally, for other aspects, computer-readable media may include transient computer-readable media (e.g., signals). Combinations of the above should also be included within the scope of computer-readable media.
[0126] Thus, certain aspects may include a computer program product for performing the operations presented herein. For example, such a computer program product may include a computer-readable medium having stored (and / or encoded) thereon instructions that can be executed by one or more processors to perform the operations described herein, such as for performing the operations described herein and in Figure 8 Instructions for the operations explained in .
[0127] In addition, it should be appreciated that modules and / or other appropriate means for performing the methods and techniques described herein may be downloaded and / or otherwise obtained by a user terminal and / or base station where applicable. For example, such a device can be coupled to a server to facilitate the transfer of means for performing the methods described herein. Alternatively, the various methods described herein can be provided via a storage device (e.g., RAM, ROM, a physical storage medium such as a compact disc (CD) or a floppy disk, etc.) so that once the storage device is coupled to or provided to a user terminal and / or base station, the device can obtain the various methods. In addition, any other suitable technology suitable for providing the methods and techniques described herein to a device may be utilized.
[0128] It will be understood that the claims are not limited to the precise configuration and components illustrated above. Various changes, substitutions and variations may be made in the arrangement, operation and details of the methods and apparatus described above without departing from the scope of the claims.
Claims
1. A method for wireless communication by a user equipment (UE), comprising: Acquiring, by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of the UE, a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU); determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data for acknowledging (ACKing) the TCP packet burst, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst, and wherein a maximum number of ACK tokens that can be transmitted in the first TTI is equal to a first threshold number of ACK tokens, wherein determining the first number of the first plurality of ACK tokens comprises determining a minimum of: the first threshold number of ACK tokens, and A quotient of half the amount of data divided by the size of each ACK token; transmitting the first plurality of ACK tokens in the first TTI; and A single ACK token is transmitted in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
2. The method of claim 1, further comprising: A configuration is received indicating the first threshold number of ACK tokens.
3. The method of claim 1, further comprising: determining a second number of a second plurality of ACK tokens, the second number comprising a quotient of a remainder of the amount of data for acknowledging receipt of the TCP packet burst divided by a size of each ACK token, wherein the second plurality of ACK tokens corresponds to third data in one or more TCP packets in the TCP packet burst; as well as A single ACK token of the second plurality of ACK tokens is transmitted in each TTI following the second TTI.
4. The method of claim 1, wherein determining the first number of the first plurality of ACK tokens is further based on an average time that TCP packets in the TCP packet burst spend in a downlink PDCP reordering window.
5. The method of claim 1, further comprising: determining a third number of a third plurality of ACK tokens to be transmitted in a third TTI based on the amount of data for acknowledging the TCP packets, wherein the third TTI is after the first TTI and before the second TTI, and wherein the third plurality of ACK tokens corresponds to fourth data in one or more TCP packets in the TCP packet burst; as well as The third plurality of ACK tokens is transmitted in the third TTI.
6. The method of claim 5, wherein determining the third number of the third plurality of ACK tokens comprises: Determine the minimum of the following: a second threshold number of ACK tokens, wherein the second threshold number is different than the first threshold number; as well as The remainder of the data amount is obtained by dividing the size of each ACK token by half.
7. The method of claim 1, wherein the TCP packet burst comprises packets dumped from a reorder buffer within a threshold period of time.
8. The method of claim 1, further comprising: Sending dummy traffic from the application protocol TCP layer to an application processor prior to acquiring the TCP packet burst in response to determining at least one of: an amount of data in a reordering buffer is greater than a threshold amount of data, no downlink traffic is received within a threshold duration, a reordering timer will expire within a threshold duration, a cumulative timer will expire within a threshold duration, or a combination thereof.
9. The method of claim 8, wherein the dummy traffic comprises flow control commands.
10. The method of claim 8, wherein the dummy traffic comprises a downlink burst marker.
11. An apparatus for managing downlink data transmission, comprising: Memory; as well as at least one processor coupled to the memory and configured to: obtaining, by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of the device, a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU); determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data used to acknowledge (ACK) the TCP packet burst, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst, and wherein a maximum number of ACK tokens that can be transmitted in the first TTI is equal to a first threshold number of ACK tokens, and wherein, to determine the first number of the first plurality of ACK tokens, the at least one processor is configured to determine a minimum of: the first threshold number of ACK tokens, and A quotient of half the amount of data divided by the size of each ACK token; transmitting the first plurality of ACK tokens in the first TTI; and A single ACK token is transmitted in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
12. The apparatus of claim 11, wherein the at least one processor is configured to: A configuration is received indicating the first threshold number of ACK tokens.
13. The apparatus of claim 11, wherein the at least one processor is configured to: determining a second number of a second plurality of ACK tokens, the second number comprising a quotient of a remainder of the amount of data for acknowledging the TCP packet burst divided by a size of each ACK token, wherein the second plurality of ACK tokens corresponds to third data in one or more TCP packets in the TCP packet burst; and A single ACK token of the second plurality of ACK tokens is transmitted in each TTI following the second TTI.
14. The apparatus of claim 11, wherein the first number of the first plurality of ACK tokens is determined based on an average time that TCP packets in the TCP packet burst spend in a downlink PDCP reordering window.
15. The apparatus of claim 11, wherein the at least one processor is configured to: determining a third number of a third plurality of ACK tokens to be transmitted in a third TTI based on the amount of data for acknowledging the TCP packets, wherein the third TTI is after the first TTI and before the second TTI, and wherein the third plurality of ACK tokens corresponds to fourth data in one or more TCP packets in the TCP packet burst; and The third plurality of ACK tokens is transmitted in the third TTI.
16. The apparatus of claim 15 , wherein the third number of the third plurality of ACK tokens is determined based on: Determine the minimum of the following: a second threshold number of ACK tokens, wherein the second threshold number is different than the first threshold number; and The remainder of the data amount is obtained by dividing the size of each ACK token by half.
17. The apparatus of claim 11, wherein the TCP packet burst comprises packets dumped from a reorder buffer within a threshold period of time.
18. The apparatus of claim 11, wherein the at least one processor is configured to: Sending dummy traffic from the application protocol TCP layer to an application processor prior to acquiring the TCP packet burst in response to determining at least one of: an amount of data in a reordering buffer is greater than a threshold amount of data, no downlink traffic is received within a threshold duration, a reordering timer will expire within a threshold duration, a cumulative timer will expire within a threshold duration, or a combination thereof.
19. The apparatus of claim 18, wherein the dummy traffic comprises flow control commands.
20. The apparatus of claim 18, wherein the dummy traffic comprises a downlink burst marker.
21. An apparatus for managing downlink data transmission, comprising: means for obtaining, by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of a UE, a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU); means for determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data used to acknowledge (ACK) the TCP packet burst, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst, and wherein a maximum number of ACK tokens that can be transmitted in the first TTI is equal to a first threshold number of ACK tokens, wherein the means for determining the first number of the first plurality of ACK tokens comprises means for determining a minimum of: the first threshold number of ACK tokens, and A quotient of half the amount of data divided by the size of each ACK token; means for transmitting the first plurality of ACK tokens in the first TTI; and Means for transmitting a single ACK token in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
22. The apparatus of claim 21, further comprising: Means for receiving a configuration indicating said first threshold number of ACK tokens.
23. The apparatus of claim 21, further comprising: means for determining a second number of a second plurality of ACK tokens, the second number comprising a quotient of a remainder of the amount of data used to acknowledge the burst of TCP packets divided by a size of each ACK token, wherein the second plurality of ACK tokens corresponds to third data in one or more TCP packets in the burst of TCP packets; as well as Means for transmitting a single ACK token of the second plurality of ACK tokens in each TTI following the second TTI.
24. The apparatus of claim 21, wherein determining the first number of the first plurality of ACK tokens is further based on an average time that TCP packets in the TCP packet burst spend in a downlink PDCP reordering window.
25. The apparatus of claim 21, further comprising: means for determining a third number of a third plurality of ACK tokens to be transmitted in a third TTI based on the amount of data for acknowledging the TCP packets, wherein the third TTI is after the first TTI and before the second TTI, and wherein the third plurality of ACK tokens corresponds to fourth data in one or more TCP packets in the TCP packet burst; as well as means for transmitting the third plurality of ACK tokens in the third TTI.
26. The apparatus of claim 25, wherein determining the third number of the third plurality of ACK tokens comprises: A device for determining the minimum of: a second threshold number of ACK tokens, wherein the second threshold number is different than the first threshold number; and The remainder of the data amount is obtained by dividing the size of each ACK token by half.
27. A computer readable medium having stored thereon computer executable code for managing downlink data transmission, the computer executable code comprising: code for obtaining, by an application protocol transmission control protocol (TCP) layer of a communication protocol stack of a user equipment (UE), a TCP packet burst conveying a packet data convergence protocol (PDCP) protocol data unit (PDU); code for determining a first number of a first plurality of ACK tokens to be transmitted in a first transmission time interval (TTI) based on an amount of data used to acknowledge (ACK) the TCP packet burst, wherein the first plurality of ACK tokens corresponds to first data in one or more TCP packets in the TCP packet burst and wherein a maximum number of ACK tokens that can be transmitted in the first TTI is equal to a first threshold number of ACK tokens, wherein determining the first number of the first plurality of ACK tokens comprises determining a minimum of: the first threshold number of ACK tokens, and A quotient of half the amount of data divided by the size of each ACK token; code for transmitting the first plurality of ACK tokens in the first TTI; and Code for transmitting a single ACK token in a second TTI following the first TTI, wherein the single ACK token corresponds to second data in one or more TCP packets in the TCP packet burst.
Citation Information
Patent Citations
Network-side buffer management
US20150334596A1