Transmit control protocol acknowledgement shaping
By optimizing the generation and transmission of TCP ACK messages based on the delay timer and uplink scheduling mode in user equipment (UE), combined with the send blanking mode, the problems of increasing delay and degradation of TCP ACK messages in the prior art are solved. , realizes more efficient wireless communication.
Patent Information
- Application Number
- CN202380041713.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-07
- Filing Date
- 2023-05-31
- Publication Date
- 2025-01-07
AI Technical Summary
When sending Control Protocol (TCP) acknowledge (ACK) messages, existing wireless communication systems have problems such as increasing latency and degradation of performance, especially in delay timer and data scheduling modes.
By generating and sending optimized TCP ACK messages based on the delay timer and uplink scheduling mode in user equipment (UE), the send blanking mode is used to adjust the sending time interval of the ACK message to reduce latency and improve performance.
Effectively reduces the delay between the UE and the wireless communication network, improves communication performance, and improves data rate and reliability.
Smart Images

Figure CN119278600A_ABST
Abstract
Description
[0001] Cross-references
[0002] This patent application claims priority to U.S. patent application No. 17 / 834,186, entitled “TRANSMISSION CONTROL PROTOCOL ACKNOWLEDGEMENT SHAPING,” filed by Kanamarlapudi et al. on June 7, 2022, which is assigned to the assignee of this application and is expressly incorporated herein by reference. Technical Field
[0003] The following relates to wireless communications, including Transmit Control Protocol (TCP) Acknowledgement (ACK) shaping. Background Art
[0004] Wireless communication systems are widely deployed to provide various types of communication content, such as voice, video, packet data, messaging, broadcasting, etc. These systems may be able to support communication with multiple users by sharing available system resources (e.g., time, frequency, and power). Examples of such multiple access systems include fourth generation (4G) systems (such as long term evolution (LTE) systems, advanced LTE (LTE-A) systems, or LTE-A Pro systems) and fifth generation (5G) systems (which may be referred to as new radio (NR) systems). These systems may use techniques such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), or discrete Fourier transform spread orthogonal frequency division multiplexing (DFT-S-OFDM). A wireless multiple access communication system may include one or more base stations, each of which supports wireless communication for a communication device, which may be referred to as a user equipment (UE). Some wireless communication systems may support packet-based communication. Summary of the invention
[0005] The described techniques relate to improved methods, systems, devices, and apparatuses that support transmission control protocol (TCP) acknowledgment (ACK) shaping. For example, the described techniques provide a framework for generating TCP ACK messages based on characteristics associated with downlink and uplink communications between a user equipment (UE) and a wireless communication network. In some examples, the UE may generate and send at least one TCP ACK message according to a delay timer (e.g., the UE may delay the transmission of the TCP ACK until after the delay timer expires). The duration of the delay timer may be based on a downlink data mode associated with a downlink data packet of the UE and an uplink scheduling mode associated with an uplink data packet of the UE.
[0006] In other examples, the UE may receive a downlink data packet including a certain amount (e.g., quantity) of data. The downlink data packet may be associated with a TCP ACK message. The UE may generate a plurality of TCP ACK message segments corresponding to the TCP ACK message based on a downlink data pattern and an uplink scheduling pattern. The UE may send a plurality of TCP ACK message segments, wherein each TCP ACK message segment corresponds to feedback on a corresponding portion of the data of the amount. In other examples, the UE may generate and send at least one TCP ACK message associated with the amount of data based on a send blanking pattern. The send blanking pattern may indicate one or more time intervals associated with avoiding the sending of a TCP ACK message at the UE. The size of at least one TCP ACK message may be based on the send blanking pattern. Such techniques may result in a reduction in latency and performance enhancement of wireless communications between the UE and the wireless communication network, as well as other possible benefits.
[0007] A method for wireless communication at a UE is described. The method may include generating at least one TCP ACK message according to a delay timer and based on a threshold ACK size of the TCP ACK message, and sending the at least one TCP ACK message based on the generating.
[0008] An apparatus for wireless communication at a UE is described. The apparatus may include a processor, a memory coupled to the processor, and one or more instructions stored in the memory. The one or more instructions are executable by the processor to cause the apparatus to generate at least one TCP ACK message based on the one or more instructions according to a delay timer and based on a threshold ACK size of the TCP ACK message, and to send the at least one TCP ACK message based on the generation.
[0009] Another apparatus for wireless communication at a UE is described. The apparatus may include means for generating at least one TCP ACK message based on a delay timer and based on a threshold ACK size of the TCP ACK message, and means for sending the at least one TCP ACK message based on the generating.
[0010] A non-transitory computer-readable medium storing code for wireless communication at a UE is described. The code may include instructions executable by a processor to generate at least one TCP ACK message based on a delay timer and based on a threshold ACK size of the TCP ACK message, and to send the at least one TCP ACK message based on the generation.
[0011] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the duration of the delay timer may be based on a downlink data pattern associated with the UE's downlink data packets and an uplink scheduling pattern associated with the UE's uplink data packets.
[0012] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, generating at least one TCP ACK message based on a delay timer may include operations, features, components, or instructions for generating at least one TCP ACK message in response to expiration of a delay timer, wherein the at least one TCP ACK message may be sent after expiration of the delay timer.
[0013] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, generating at least one TCP ACK message based on the delay timer may include operations, features, components, or instructions for generating at least one TCP ACK message based on a number of TCP ACK messages in a buffer of the UE.
[0014] Some examples of the methods, apparatus and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining the duration of the delay timer based on a round trip time (RTT) associated with TCP at the UE, a time duration for receiving data packets at the UE, a delay ACK timer associated with sending at least one TCP ACK message, an amount of data associated with at least one TCP ACK message, one or more TCP parameters associated with TCP at the UE, or a processing time associated with at least one TCP ACK message, or any combination thereof.
[0015] A method for wireless communication at a UE is described. The method may include: receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message; generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data; and sending the set of multiple TCP ACK message segments based on the generating.
[0016] A device for wireless communication at a UE is described. The device may include a processor, a memory coupled to the processor, and one or more instructions stored in the memory. The one or more instructions are executable by the processor to cause the device to receive a first data packet including a first amount of data and a second data packet including a second amount of data based on the one or more instructions, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message; generate a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data; and send a set of multiple TCP ACK message segments based on the generation.
[0017] Another apparatus for wireless communication at a UE is described. The apparatus may include: means for receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message; means for generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data; and means for sending the set of multiple TCP ACK message segments based on the generating.
[0018] A non-transitory computer-readable medium storing code for wireless communication at a UE is described. The code may include instructions executable by a processor to receive a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message; generate a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback for the first amount of data and the second amount of data; and send the set of multiple TCP ACK message segments based on the generation.
[0019] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, a TCP ACK message segment in the set of multiple TCP ACK message segments corresponds to feedback for respective portions of a third amount of data including the first amount of data and the second amount of data.
[0020] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the first TCP ACK message and the second TCP ACK message include selective ACK messages.
[0021] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, a first set of TCP ACK message segments in the set of multiple TCP ACK message segments corresponds to feedback for corresponding portions of a first amount of data, and a second set of TCP ACK message segments in the set of multiple TCP ACK message segments corresponds to feedback for corresponding portions of a second amount of data.
[0022] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for generating a set of multiple TCP ACK message segments, which may be further based on a downlink data pattern associated with the UE's downlink data packets and an uplink scheduling pattern associated with the UE's uplink data packets.
[0023] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for updating one or more parameters associated with the first data packet and the second data packet based on generating a set of multiple TCP ACK message segments, wherein sending the set of multiple TCP ACK message segments may be based on the update.
[0024] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, generating a set of multiple TCP ACK message segments may include operations, features, components, or instructions for generating a set of multiple TCP ACK message segments based on a radio access technology (RAT) associated with the UE, a throughput associated with downlink data packets of the UE, a time associated with second layer window management, or a discontinuous reception mode associated with the UE, or any combination thereof.
[0025] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, generating a set of multiple TCP ACK message segments may include operations, features, components, or instructions for generating a set of multiple TCP ACK message segments based on the number of data streams associated with the UE's downlink data packets, the number of data streams associated with the UE's uplink data packets, one or more TCP parameters associated with TCP at the UE, the transmit power associated with the UE's uplink data packets, or the uplink grant mode associated with the UE's uplink data packets, or any combination thereof.
[0026] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, generating a set of multiple TCP ACK message segments may include operations, features, components, or instructions for generating a set of multiple TCP ACK message segments based on the RTT associated with the UE's downlink data packets and uplink data packets, the packet delay budget (PDB) associated with the UE's downlink data packets, the PDB associated with the UE's uplink data packets, the quality of service (QOS) associated with the UE's downlink data packets, the QOS associated with the UE's uplink data packets, the traffic type associated with the UE's downlink data packets, or the traffic type associated with the UE's uplink data packets, or any combination thereof.
[0027] A method for wireless communication at a UE is described. The method may include: generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of TCP ACK messages, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern; and transmitting the at least one TCP ACK message according to the transmit blanking pattern based on the generating.
[0028] An apparatus for wireless communication at a UE is described. The apparatus may include a processor, a memory coupled to the processor, and one or more instructions stored in the memory. The one or more instructions are executable by the processor to cause the apparatus to generate at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of TCP ACK messages based on the one or more instructions, wherein the size of the at least one TCP ACK message is based on the transmit blanking pattern; and to send at least one TCP ACK message based on the transmit blanking pattern based on the generation.
[0029] Another apparatus for wireless communication at a UE is described. The apparatus may include: means for generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of TCP ACK messages, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern; and means for transmitting the at least one TCP ACK message according to the transmit blanking pattern based on the generating.
[0030] A non-transitory computer-readable medium storing code for wireless communication at a UE is described. The code may include instructions executable by a processor to generate at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of TCP ACK messages, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern; and based on the generation, transmit at least one TCP ACK message according to the transmit blanking pattern.
[0031] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving a data packet including the amount of data within a time interval of one or more time intervals associated with avoiding the sending of a TCP ACK message, wherein generating at least one TCP ACK message may be based on the passage of the time interval.
[0032] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving a data packet in response to at least one TCP ACK message, wherein the data packet includes a second amount of data, and wherein the second amount of data may be based on a size of the at least one TCP ACK message.
[0033] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the size of at least one TCP ACK message may be further based on the number of TCP ACK messages buffered at the UE, a machine performance level associated with the UE, a transmit power associated with the UE's uplink data packets, an amount of available bandwidth in the uplink direction, a throughput associated with the UE's downlink data packets, or a burst associated with the UE's downlink data packets, or any combination thereof.
[0034] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, one or more time intervals may be periodic or non-periodic.
[0035] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the transmit blanking pattern may be based on interference internal to the UE, interference external to the UE, coordinated interference, or informed interference, or any combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 and Figure 2 Each illustrates an example of a wireless communication system supporting Transmit Control Protocol (TCP) Acknowledgement (ACK) shaping according to one or more aspects of the present disclosure.
[0037] Figures 3 to 5 Each illustrates an example of a process flow for supporting TCP ACK shaping according to one or more aspects of the present disclosure.
[0038] Figure 6 and Figure 7 A block diagram of a device supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown.
[0039] Figure 8 A block diagram of a communications manager supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown.
[0040] Fig. 9 A diagram of a system including a device supporting TCP ACK shaping is shown in accordance with one or more aspects of the present disclosure.
[0041] Figures 10 to 12 A flow chart illustrating a method of supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown. DETAILED DESCRIPTION
[0042] Some wireless communication systems may support packet-based communications. For example, a user plane entity of a radio access network (RAN) may be connected to an Internet Protocol (IP) service. The IP service may provide access to a packet-switched network (such as the Internet) to the RAN. The user plane entity may deliver data packets from one or more servers connected to the packet-switched network to a communication device within the RAN, such as one or more user equipments (UEs). In some examples, the user plane entity of the RAN may deliver data packets between one or more servers and a communication device (e.g., one or more UEs) via one or more network entities. The server may be referred to as a remote or remote server and may represent an example of an Internet server, a database, or other server. A transmission control protocol (TCP) may be used to establish and maintain a network connection between a UE and a server via the RAN (e.g., and via a packet-switched network). In some examples, a UE or other communication device in the RAN may be referred to as a data receiver for a transmission protocol, and a server may be referred to as a data transmitter for a transmission protocol. In response to successfully receiving one or more data packets (e.g., via the RAN), a data receiver (e.g., a UE) of the transmission protocol may send a TCP confirmation (ACK) message to a data transmitter (e.g., a server). In some examples, the server may avoid sending subsequent (e.g., additional) data packets until the server receives a TCP ACK message for one or more previously sent packets. Additionally or alternatively, a certain amount of data (e.g., data packets of a certain size) that can be transmitted to the UE at a certain time instance (e.g., from the server) may be fixed. Thus, if, for example, the transmission of a TCP ACK message from the UE is delayed or if a relatively large amount of data is to be sent to the UE, the communication between the UE and the server may experience increased latency.
[0043] In some examples, the UE may support multiple modes for generating a TCP ACK message. For example, the UE may support one or more modes for generating a TCP ACK message, in which the UE may increase the size of the TCP ACK message (e.g., the amount of data for which the TCP ACK message can provide feedback) to reduce latency. In a first mode, in response to successfully receiving multiple (e.g., two) data packets at the UE, the UE may send a single TCP ACK message. In a second mode, the UE may send a TCP ACK message according to a delay timer. For example, the UE may receive a data packet during the active duration of the delay timer, and may send a TCP ACK message of the received data packet in response to the lapse of the active duration of the delay timer (e.g., when the delay timer expires). In some examples, although generating a TCP ACK message according to the first mode and the second mode may reduce latency, the increase in the size of the TCP ACK message sent from the UE may degrade downlink data scheduling (e.g., scheduling of subsequent data packets to be sent to the UE), which may result in reduced performance at the UE.
[0044] Various aspects of the present disclosure generally relate to techniques for supporting TCP ACK shaping, and more specifically to techniques for generating TCP ACK messages based on characteristics associated with downlink and uplink communications between a UE and a network. In some examples, a UE may determine (e.g., derive or obtain) a delay timer (e.g., an enhanced delay timer) for generating a TCP ACK message based on a downlink data pattern associated with a downlink data packet received at the UE (e.g., characteristics of the downlink communication between the UE and the network) and an uplink scheduling pattern associated with an uplink data packet to be sent from the UE (e.g., characteristics of the uplink communication between the UE and the network). In some examples, the UE may determine the duration of the delay timer so that the size of the TCP ACK message generated in response to the lapse of the duration of the delay timer (e.g., the amount of data received during the duration of the delay timer, the amount of data for which the generated TCP ACK message can provide feedback) may be suitable for downlink and uplink communications between the UE and the network.
[0045] Additionally or alternatively, the UE may generate multiple TCP ACK messages (e.g., multiple TCP ACK message segments) using an application processor associated with the UE based on a single TCP ACK message generated in response to the UE receiving a downlink data packet (e.g., at a TCP layer associated with the UE). In some examples, the UE may generate multiple TCP ACK message segments such that a TCP ACK message segment (e.g., of the multiple TCP ACK message segments) may correspond to feedback of a portion of data included in a data packet received at the UE. The UE (e.g., an application processor associated with the UE) may generate multiple TCP ACK message segments (e.g., may split a TCP ACK message generated at the TCP layer) based on a downlink data mode (e.g., associated with a downlink data packet received at the UE) and an uplink scheduling mode (e.g., associated with an uplink data packet to be sent from the UE).
[0046] In some examples, the UE may generate a TCP ACK message based on a transmit blanking pattern indicating a time interval during which the UE may refrain from transmitting uplink messages (e.g., including TCP ACK messages and any other type of uplink messages). In such examples, the size of the TCP ACK message (e.g., the amount of data for which the TCP ACK message may provide feedback) may be based on the time interval of the transmit blanking pattern. In some examples, the time interval may be periodic, and in other examples, the time interval may be aperiodic.
[0047] Certain aspects of the subject matter described herein may be implemented to achieve one or more of the following potential advantages. In some examples, the techniques employed at the described communication device may provide benefits and enhancements to the operation of the communication device (e.g., one or more UEs, one or more network entities), including implementing TCP ACK message shaping based on characteristics associated with radio conditions within the wireless communication system. For example, the operations performed at the described communication device may enhance TCP ACK message generation based on a downlink data mode, an uplink data mode, or a transmit blanking mode (or any combination thereof) associated with the described communication device. Additionally or alternatively, the operations performed at the described communication device may provide enhancements to communications between the communication device and the network by enabling the communication device to flexibly control the size of the TCP ACK message generated at the communication device. In some examples, the operations performed at the described communication device may support improvements to communication reliability and increased data rates within the wireless communication system, as well as other possible benefits.
[0048] Aspects of the present disclosure are first described in the context of wireless communication systems. Aspects of the present disclosure are further illustrated and described with reference to process flows, device diagrams, system diagrams, and flow diagrams related to TCP ACK shaping.
[0049] Figure 1 An example of a wireless communication system 100 supporting TCP ACK shaping according to one or more aspects of the present disclosure is illustrated. The wireless communication system 100 may include one or more network entities 105, one or more UEs 115, and a core network 130. In some examples, the wireless communication system 100 may be a Long Term Evolution (LTE) network, an Advanced LTE (LTE-A) network, an LTE-A Pro network, a New Radio (NR) network, or a network operating according to other systems and radio technologies (including future systems and radio technologies not explicitly mentioned herein).
[0050] The network entities 105 may be dispersed throughout a geographic area to form the wireless communication system 100, and may include devices in different forms or with different capabilities. In various examples, the network entities 105 may be referred to as network elements, mobility elements, RAN nodes, or network equipment, among other nomenclatures. In some examples, the network entities 105 and the UE 115 may communicate wirelessly via one or more communication links 125 (e.g., radio frequency (RF) access links). For example, the network entity 105 may support a coverage area 110 (e.g., a geographic coverage area), and the UE 115 and the network entity 105 may establish one or more communication links 125 within the coverage area. The coverage area 110 may be an example of a geographic area, and the network entity 105 and the UE 115 may support signal communications within the geographic area according to one or more radio access technologies (RATs).
[0051] The UEs 115 may be dispersed throughout the coverage area 110 of the wireless communication system 100, and each UE 115 may be stationary or mobile, or stationary and mobile at different times. The UEs 115 may be devices in different forms or with different capabilities. Figure 1 Some example UEs 115 are illustrated in FIG. 1 . The UEs 115 described herein may be capable of supporting communication with various types of devices, such as Figure 1 Communicate with other UEs 115 or network entities 105) as shown.
[0052] As described herein, a node of the wireless communication system 100 (which may be referred to as a network node or a wireless node) may be a network entity 105 (e.g., any network entity described herein), a UE 115 (e.g., any UE described herein), a network controller, an apparatus, a device, a computing system, one or more components, or another suitable processing entity configured to perform any of the techniques described herein. For example, the node may be a UE 115. As another example, the node may be a network entity 105. As another example, a first node may be configured to communicate with a second node or a third node. In one aspect of this example, the first node may be a UE 115, the second node may be a network entity 105, and the third node may be a UE 115. In another aspect of this example, the first node may be a UE 115, the second node may be a network entity 105, and the third node may be a network entity 105. In other aspects of this example, the first node, the second node, and the third node may be different relative to these examples. Similarly, references to UE 115, network entity 105, apparatus, device, computing system, etc. may include disclosure of UE 115, network entity 105, apparatus, device, computing system, etc. as nodes. For example, a disclosure that UE 115 is configured to receive information from network entity 105 also discloses that the first node is configured to receive information from a second node.
[0053] In some examples, the network entities 105 may communicate with the core network 130, or with each other, or both. For example, the network entities 105 may communicate with the core network 130 via one or more backhaul links 120 (e.g., according to S1, N2, N3, or other interface protocols). In some examples, the network entities 105 may communicate with each other directly (e.g., directly between the network entities 105) or indirectly (e.g., via the core network 130) via the backhaul communication links 120 (e.g., according to X2, Xn, or other interface protocols). In some examples, the network entities 105 may communicate with each other via midhaul communication links 162 (e.g., according to a midhaul interface protocol) or fronthaul communication links 168 (e.g., according to a fronthaul interface protocol) or any combination thereof. The backhaul communication links 120, midhaul communication links 162, or fronthaul communication links 168 may be or include one or more wired links (e.g., electrical links, optical fiber links), one or more wireless links (e.g., radio links, wireless optical links), and other examples or various combinations thereof. UE 115 may communicate with core network 130 via communication link 155 .
[0054] One or more of the network entities 105 described herein may include or may be referred to as a base station 140 (e.g., a transceiver base station, a radio base station, an NR base station, an access point, a radio transceiver, a Node B, an evolved Node B (eNB), a next generation Node B, or a Gigabit Node B (any of which may be referred to as a gNB), a 5G NB, a next generation eNB (ng-eNB), a Home Node B, a Home Evolved Node B, or other suitable terms). In some examples, the network entity 105 (e.g., a base station 140) may be implemented in an aggregated (e.g., monolithic, standalone) base station architecture, which may be configured to utilize a protocol stack that is physically or logically integrated within a single network entity 105 (e.g., a single RAN node, such as a base station 140).
[0055] In some examples, the network entity 105 may be implemented in a disaggregated architecture (e.g., a disaggregated base station architecture, a disaggregated RAN architecture) that may be configured to utilize a protocol stack that is physically or logically distributed between two or more network entities 105, such as an integrated access backhaul (IAB) network, an open RAN (O-RAN) (e.g., a network configuration sponsored by the O-RAN Alliance), or a virtualized RAN (vRAN) (e.g., a cloud RAN (C-RAN)). For example, the network entity 105 may include one or more of the following: a central unit (CU) 160, a distributed unit (DU) 165, a radio unit (RU) 170, a RAN intelligent controller (RIC) 175 (e.g., a near real-time RIC (near RT RIC), a non-real-time RIC (non-RT RIC)), a service management and orchestration (SMO) 180 system, or any combination thereof. The RU 170 may also be referred to as a radio head, a smart radio head, a remote radio head (RRH), a remote radio unit (RRU), or a transmit receive point (TRP). One or more components of the network entity 105 in the decomposed RAN architecture may be co-located, or one or more components of the network entity 105 may be located in distributed locations (e.g., separate physical locations). In some examples, one or more network entities 105 of the decomposed RAN architecture may be implemented as virtual units (e.g., virtual CU (VCU), virtual DU (VDU), virtual RU (VRU)).
[0056] The functional split between CU 160, DU 165, and RU 170 is flexible and may support different functionalities depending on which functions (e.g., network layer functions, protocol layer functions, baseband functions, RF functions, and any combination thereof) are performed at CU 160, DU 165, and RU 170. For example, a functional split of a protocol stack may be employed between CU 160 and DU 165 such that CU 160 may support one or more layers of a protocol stack and DU 165 may support one or more different layers of a protocol stack. In some examples, CU 160 may host higher protocol layer (e.g., layer 3 (L3), layer 2 (L2)) functionality and signaling (e.g., radio resource control (RRC), service data adaptation protocol (SDAP), packet data convergence protocol (PDCP)). The CU 160 may be connected to one or more DUs 165 or RUs 170, and the one or more DUs 165 or RUs 170 may host lower protocol layers, such as layer 1 (L1) (e.g., physical (PHY) layer) or L2 (e.g., radio link control (RLC) layer, medium access control (MAC) layer) functionality and signaling, and may each be at least partially controlled by the CU 160. Additionally or alternatively, a functional split of the protocol stack may be employed between the DU 165 and the RU 170, such that the DU 165 may support one or more layers of the protocol stack, and the RU 170 may support one or more different layers of the protocol stack. The DU 165 may support one or more different cells (e.g., via one or more RUs 170). In some cases, the functional split between CU 160 and DU 165 or between DU 165 and RU 170 may be within the protocol layer (e.g., some functions of the protocol layer may be performed by one of CU 160, DU 165, or RU 170, while other functions of the protocol layer are performed by the other of CU 160, DU 165, or RU 170). CU 160 may be further functionally split into CU control plane (CU-CP) functions and CU user plane (CU-UP) functions. CU 160 may be connected to one or more DUs 165 via midhaul communication links 162 (e.g., F1, F1-c, F1-u), and DU 165 may be connected to one or more RUs 170 via fronthaul communication links 168 (e.g., open fronthaul (FH) interface). In some examples, midhaul communication link 162 or fronthaul communication link 168 may be implemented based on interfaces (eg, channels) between layers of a protocol stack supported by respective network entities 105 that communicate via those communication links.
[0057] In some wireless communication systems (e.g., wireless communication system 100), infrastructure and spectrum resources for radio access may support wireless backhaul link capabilities to supplement wired backhaul connections, thereby providing an IAB network architecture (e.g., to the core network 130). In some cases, in an IAB network, one or more network entities 105 (e.g., IAB nodes 104) may be partially controlled by each other. One or more IAB nodes 104 may be referred to as host entities or IAB hosts. One or more DUs 165 or one or more RUs 170 may be partially controlled by one or more CUs 160 associated with a host network entity 105 (e.g., a host base station 140). One or more host network entities 105 (e.g., IAB hosts) may communicate with one or more additional network entities 105 (e.g., IAB nodes 104) via supported access and backhaul links (e.g., backhaul communication links 120). The IAB node 104 may include an IAB mobile terminal (IAB-MT) controlled (e.g., scheduled) by a DU 165 of a coupled IAB host. The IAB-MT may include an independent set of antennas for relaying communications with the UE 115, or may share the same antennas of the IAB node 104 (e.g., of the RU 170) for access via the DU 165 of the IAB node 104 (e.g., referred to as a virtual IAB-MT (vIAB-MT)). In some examples, the IAB node 104 may include a DU 165 that supports communication links with additional entities (e.g., IAB node 104, UE 115) within a relay chain or configuration (e.g., downstream) of the access network. In such cases, one or more components of the decomposed RAN architecture (e.g., one or more IAB nodes 104 or components of the IAB node 104) may be configured to operate according to the techniques described herein.
[0058] Where the techniques described herein are applied in the context of a decomposed RAN architecture, one or more components of the decomposed RAN architecture may be configured to support TCP ACK shaping as described herein. For example, some operations described as being performed by a UE 115 or a network entity 105 (e.g., a base station 140) may additionally or alternatively be performed by one or more components of the decomposed RAN architecture (e.g., an IAB node 104, a DU 165, a CU 160, a RU 170, a RIC 175, a SMO 180).
[0059] UE 115 may include or may be referred to as a mobile device, a wireless device, a remote device, a handheld device, or a subscriber device, or some other suitable terminology, where a "device" may also be referred to as a unit, a station, a terminal, or a client, among other examples. UE 115 may also include or may be referred to as a personal electronic device, such as a cellular phone, a personal digital assistant (PDA), a tablet computer, a laptop computer, or a personal computer. In some examples, UE 115 may include or may be referred to as a wireless local loop (WLL) station, an Internet of Things (IoT) device, an Internet of Everything (IoE) device, or a machine type communication (MTC) device, among other examples, which may be implemented in various objects such as appliances or vehicles, meters, and among other examples.
[0060] The UE 115 described herein may be capable of communicating with various types of devices, such as other UEs 115, which may sometimes act as relays, as well as network entities 105 and network equipment including macro eNBs or gNBs, small cell eNBs or gNBs, relay base stations, and other examples, such as Figure 1 shown.
[0061] The UE 115 and the network entity 105 may wirelessly communicate with each other via one or more communication links 125 (e.g., access links) using resources associated with one or more carriers. The term "carrier" may refer to a collection of RF spectrum resources having a defined physical (PHY) layer structure for supporting the communication link 125. For example, a carrier for the communication link 125 may include a portion of an RF spectrum band (e.g., a bandwidth portion (BWP)) that operates according to one or more PHY layer channels for a given RAT (e.g., LTE, LTE-A, LTE-A Pro, NR). Each PHY layer channel may carry acquisition signaling (e.g., synchronization signals, system information), control signaling for coordinating operations for the carrier, user data, or other signaling. The wireless communication system 100 may support communications with the UE 115 using carrier aggregation or multi-carrier operation. Depending on the carrier aggregation configuration, the UE 115 may be configured to have multiple downlink component carriers and one or more uplink component carriers. Carrier aggregation may be used for both frequency division duplex (FDD) component carriers and time division duplex (TDD) component carriers. Communication between the network entity 105 and other devices may refer to communication between a device and any portion (e.g., entity, sub-entity) of the network entity 105. For example, the terms "send," "receive," or "communicate" when referring to the network entity 105 may refer to any portion of the network entity 105 (e.g., base station 140, CU 160, DU 165, RU 170) of the RAN communicating with another device (e.g., directly or via one or more other network entities 105).
[0062] The signal waveform transmitted via the carrier wave may be composed of multiple subcarriers (e.g., using multi-carrier modulation (MCM) techniques, such as orthogonal frequency division multiplexing (OFDM) or discrete Fourier transform spread OFDM (DFT-S-OFDM)). In a system using MCM techniques, a resource element may refer to a resource of one symbol period (e.g., the duration of one modulation symbol) and one subcarrier, in which case the symbol period and the subcarrier spacing may be inversely related. The number of bits carried by each resource element may depend on the modulation scheme (e.g., the order of the modulation scheme, the coding rate of the modulation scheme, or both), so that a relatively high number of resource elements (e.g., in the transmission duration) and a relatively high order modulation scheme may correspond to a relatively high communication rate. Wireless communication resources may refer to a combination of RF spectrum resources, time resources, and spatial resources (e.g., spatial layers, beams), and the use of multiple spatial resources may increase the data rate or data integrity of the communication with the UE 115.
[0063] The time interval for the network entity 105 or the UE 115 may be expressed as a multiple of a basic time unit, which may be, for example, a sampling period T s =1 / (Δf max ·N f ) seconds, where Δf max It can represent the supported subcarrier spacing, and N f The supported discrete Fourier transform (DFT) size may be indicated. The time intervals of the communication resources may be organized according to radio frames, each having a specified duration (e.g., 10 milliseconds (ms)). Each radio frame may be identified by a system frame number (SFN) (e.g., ranging from 0 to 1023).
[0064] Each frame may include multiple consecutively numbered subframes or time slots, and each subframe or time slot may have the same duration. In some examples, the frame may be divided into subframes (e.g., in the time domain), and each subframe may be further divided into multiple time slots. Alternatively, each frame may include a variable number of time slots, and the number of time slots may depend on the subcarrier spacing. Each time slot may include multiple symbol periods (e.g., depending on the length of the cyclic prefix added before each symbol period). In some wireless communication systems 100, the time slot may also be divided into multiple mini time slots associated with one or more symbols. Excluding the cyclic prefix, each symbol period may be associated with one or more (e.g., N f The duration of a symbol period may depend on the subcarrier spacing or the operating frequency band.
[0065] A subframe, a slot, a mini-slot, or a symbol may be the smallest scheduling unit (e.g., in the time domain) of the wireless communication system 100 and may be referred to as a transmission time interval (TTI). In some examples, the TTI duration (e.g., the number of symbol periods in a TTI) may be variable. Additionally or alternatively, the smallest scheduling unit of the wireless communication system 100 may be dynamically selected (e.g., in bursts of shortened TTIs (sTTIs)).
[0066] Physical channels may be multiplexed using carriers for communication according to various techniques. For example, physical control channels and physical data channels may be multiplexed via downlink carriers for signaling using one or more of a time division multiplexing (TDM) technique, a frequency division multiplexing (FDM) technique, or a hybrid TDM-FDM technique. A control region (e.g., a control resource set (CORESET)) for a physical control channel may be defined by a set of symbol periods and may extend across a system bandwidth or a subset of a system bandwidth of a carrier. One or more control regions (e.g., CORESETs) may be configured for a set of UEs 115. For example, one or more UEs in UE 115 may monitor or search a control region for control information according to one or more search space sets, and each search space set may include one or more control channel candidates in one or more aggregation levels arranged in a cascaded manner. The aggregation level of a control channel candidate may refer to the amount of control channel resources (e.g., control channel elements (CCEs)) associated with coded information for a control information format having a given payload size. The search space sets may include a common search space set configured for transmitting control information to a plurality of UEs 115 , and a UE-specific search space set for transmitting control information to a specific UE 115 .
[0067] In some examples, the network entities 105 (e.g., base stations 140, RUs 170) may be mobile and thus provide communication coverage for mobile coverage areas 110. In some examples, different coverage areas 110 associated with different technologies may overlap, but the different coverage areas 110 may be supported by the same network entity 105. In some other examples, overlapping coverage areas 110 associated with different technologies may be supported by different network entities 105. The wireless communication system 100 may include, for example, a heterogeneous network in which different types of network entities 105 provide coverage for various coverage areas 110 using the same or different RATs.
[0068] The wireless communication system 100 may be configured to support ultra-reliable communication or low-latency communication or various combinations thereof. For example, the wireless communication system 100 may be configured to support ultra-reliable low-latency communication (URLLC). The UE 115 may be designed to support ultra-reliable or low-latency or critical functions. Ultra-reliable communication may include private communication or group communication, and may be supported by one or more services (such as push-to-talk, video, or data). Support for ultra-reliable, low-latency functions may include prioritization of services, and such services may be used for public safety applications or general commercial applications. The terms ultra-reliable, low-latency, and ultra-reliable low-latency are used interchangeably herein.
[0069] In some examples, a UE 115 may be configured to support communication directly with other UEs 115 via a device-to-device (D2D) communication link 135 (e.g., according to a peer-to-peer (P2P), D2D, or sidelink protocol). In some examples, one or more UEs 115 in a group that are performing D2D communication may be within a coverage area 110 of a network entity 105 (e.g., a base station 140, a RU 170), which may support various aspects of such D2D communication configured (e.g., scheduled) by the network entity 105. In some examples, one or more UEs 115 of such a group may be outside of the coverage area 110 of the network entity 105, or may otherwise be unable or not configured to receive transmissions from the network entity 105. In some examples, a group of UEs 115 communicating via D2D communication may support a one-to-many (1:M) system, in which each UE 115 transmits to each of the other UEs 115 in the group. In some examples, network entity 105 may facilitate scheduling of resources for D2D communications. In some other examples, D2D communications may be conducted between UEs 115 without involving network entity 105.
[0070] The core network 130 may provide user authentication, access authorization, tracking, Internet Protocol (IP) connectivity, and other access, routing, or mobility functions. The core network 130 may be an evolved packet core (EPC) or a 5G core (5GC), which may include at least one control plane entity for managing access and mobility (e.g., a mobility management entity (MME), an access and mobility management function (AMF)) and at least one user plane entity for routing packets or interconnecting to an external network (e.g., a serving gateway (S-GW)), a packet data network (PDN) gateway (P-GW), or a user plane function (UPF)). The control plane entity may manage non-access stratum (NAS) functions, such as mobility, authentication, and bearer management for UE 115 served by a network entity 105 (e.g., a base station 140) associated with the core network 130. User IP packets may be delivered via the user plane entity, which may provide IP address allocation and other functions. The user plane entity may be connected to an IP service 150 for one or more network operators. IP services 150 may include access to the Internet, an intranet, an IP Multimedia Subsystem (IMS), or packet-switched streaming services.
[0071] The wireless communication system 100 may operate using one or more frequency bands that may be in the range of 300 megahertz (MHz) to 300 gigahertz (GHz). Typically, the region from 300 MHz to 3 GHz is referred to as the ultra-high frequency (UHF) region or decimeter band because the wavelength range is approximately one decimeter to one meter. UHF waves may be blocked or redirected by buildings and environmental features (which may be referred to as clusters), but these waves may be sufficient to penetrate structures so that macro cells provide services to UEs 115 located indoors. Communications using UHF waves may be associated with smaller antennas and shorter ranges (e.g., less than 100 kilometers) compared to communications using smaller frequencies and longer waves in the high frequency (HF) or very high frequency (VHF) portions of the spectrum below 300 MHz.
[0072] The wireless communication system 100 may utilize both licensed RF spectrum bands and unlicensed RF spectrum bands. For example, the wireless communication system 100 may employ licensed assisted access (LAA), LTE-unlicensed (LTE-U) RAT, or NR technology using unlicensed bands (such as, 5GHz Industrial, Scientific and Medical (ISM) band). When operating using unlicensed RF spectrum bands, devices such as network entity 105 and UE 115 may employ carrier sensing for conflict detection and avoidance. In some examples, operations using unlicensed bands may be based on carrier aggregation configuration in combination with component carriers operating using licensed bands (e.g., LAA). Operations using unlicensed spectrum may include downlink transmissions, uplink transmissions, P2P transmissions, or D2D transmissions, as well as other examples.
[0073] The network entity 105 (e.g., base station 140, RU 170) or UE 115 may be equipped with multiple antennas that can be used to employ technologies such as transmit diversity, receive diversity, multiple-input multiple-output (MIMO) communication, or beamforming. The antennas of the network entity 105 or UE 115 may be located in one or more antenna arrays or antenna panels that can support MIMO operations or transmit or receive beamforming. For example, one or more base station antennas or antenna arrays may be co-located at an antenna assembly, such as an antenna tower. In some examples, antennas or antenna arrays associated with the network entity 105 may be located at different geographical locations. The network entity 105 may include an antenna array having a set of rows and columns of antenna ports that the network entity 105 can use to support beamforming for communications with the UE 115. Similarly, the UE 115 may include one or more antenna arrays that can support various MIMO or beamforming operations. Additionally or alternatively, the antenna panel may support RF beamforming for signals sent via the antenna ports.
[0074] Beamforming (which may also be referred to as spatial filtering, directional transmission, or directional reception) is a signal processing technique that may be used at a transmitting device or a receiving device (e.g., a network entity 105, a UE 115) to shape or steer an antenna beam (e.g., a transmit beam, a receive beam) along a spatial path between the transmitting device and the receiving device. Beamforming may be achieved by combining signals conveyed via antenna elements of an antenna array so that some signals propagating along a particular orientation relative to the antenna array experience constructive interference, while other signals experience destructive interference. Adjustments to signals conveyed via antenna elements may include the transmitting device or the receiving device applying an amplitude offset, a phase offset, or both to signals carried via antenna elements associated with the device. Adjustments associated with each of the antenna elements may be defined by a set of beamforming weights associated with a particular orientation (e.g., relative to the antenna array of the transmitting device or the receiving device or relative to some other orientation).
[0075] The wireless communication system 100 may be a packet-based network that operates according to a layered protocol stack. In the user plane, the communication at the bearer or PDCP layer may be IP-based. The RLC layer may perform packet segmentation and reassembly to communicate via logical channels. The MAC layer may perform priority processing and multiplexing of logical channels to transport channels. The MAC layer may also implement error detection techniques, error correction techniques, or both to support retransmission to improve link efficiency. In the control plane, the RRC layer may provide the establishment, configuration, and maintenance of an RRC connection that supports a radio bearer for user plane data between the UE 115 and the network entity 105 or the core network 130. The PHY layer may map a transport channel to a physical channel.
[0076] UE 115 and network entity 105 may support retransmission of data to increase the likelihood that the data is successfully received. Hybrid automatic repeat request (HARQ) feedback is a technique for increasing the likelihood of correctly receiving data via a communication link (e.g., communication link 125, D2D communication link 135). HARQ may include a combination of error detection (e.g., using a cyclic redundancy check (CRC)), forward error correction (FEC), and retransmission (e.g., automatic repeat request (ARQ)). HARQ may improve throughput at the MAC layer under poor radio conditions (e.g., low signal-to-noise ratio conditions). In some examples, a device may support same-slot HARQ feedback, in which case the device may provide HARQ feedback in a specific time slot for data received in a previous symbol in the time slot. In some other examples, the device may provide HARQ feedback in a subsequent time slot or according to some other time interval.
[0077] The wireless communication system 100 may support a framework for generating a TCP ACK message based on characteristics associated with downlink and uplink communications of the UE 115. For example, the UE 115 may generate a TCP ACK message or a TCP ACK message segment (or both) based on a downlink data pattern, a transmission blanking pattern, and an uplink scheduling pattern, so that the UE 115 (e.g., a data receiving entity) may intelligently (e.g., in a timely manner) send a TCP ACK message or a TCP ACP message segment (or both) to the data sending entity, thereby achieving improved performance (e.g., peak rate performance) and improved key performance indicators (KPIs), such as power KPIs. In some examples, the UE 115 may generate and send at least one TCP ACK message according to a delay timer of the TCP ACK message. The duration of the delay timer may be based on a downlink data pattern associated with a downlink data packet of the UE 115 and an uplink scheduling pattern associated with an uplink data packet of the UE 115.
[0078] In other examples, UE 115 may receive a downlink data packet including a certain amount of data. The downlink data packet may be associated with a TCP ACK message. UE 115 may generate a plurality of TCP ACK message segments corresponding to the TCP ACK message based on a downlink data pattern associated with the downlink data packet of UE 115 and an uplink scheduling pattern associated with the uplink data packet of UE 115. UE 115 may send a plurality of TCP ACK message segments, and each TCP ACK message segment may correspond to feedback on a corresponding portion of the amount of data. In other examples, UE 115 may generate and send at least one TCP ACK message associated with the amount of data based on a send blanking pattern. The send blanking pattern may indicate one or more time intervals associated with avoiding the sending of the TCP ACK message at UE 115. The size of at least one TCP ACK message may be based on the send blanking pattern. Such techniques may result in reduced latency and performance enhancement and other possible benefits of communication between UE 115 and a data sending entity.
[0079] Figure 2 An example of a wireless communication system 200 supporting TCP ACK shaping according to one or more aspects of the present disclosure is illustrated. In some examples, the wireless communication system 200 may represent a wireless communication system 200 as shown in FIG. Figure 1 For example, the wireless communication system 200 may include a UE 215, a network entity 205, a core network 230, and an IP service 250, which may be as described in reference Figure 1 Examples of corresponding devices described above. Figure 2 In the example of FIG. 1 , the network entity 205 is illustrated as a base station, but the network entity 205 may also be a base station as shown in FIG. Figure 1 Examples of the one or more other components or network entities 105 (e.g., a CU, a DU, a RU, an IAB node, a TRP, or one or more other network nodes).
[0080] The wireless communication system 200 may also include a server 285, which may be an example of a remote server connected to a packet-switched network (e.g., the Internet or one or more other packet-switched networks), where data packets may be exchanged between the server 285 and the UE 215 via one or more network connections. Figure 2 In the example of FIG. 1 , the network entity 205 and the UE 215 may communicate within the coverage area 210 using the communication link 225, which may be as described in reference to FIG. Figure 1 The communication link 225 is an example of the communication link 125. For example, the communication link 225 can be an example of an uplink, a downlink, or another type of communication link that supports wireless communication (e.g., over-the-air (OTA) communication) between the UE 215 and the network entity 205. Figure 2 In the example of , UE 215 can be an example of a wired or wireless communication device that supports packet-based communication and can be referred to as a data receiver for a transmission protocol. Additionally or alternatively, server 285 can be an example of a wired or wireless communication device or entity that supports packet-based communication and can be referred to as a data transmitter for a transmission protocol (e.g., or some other equivalent protocol, such as an application layer protocol).
[0081] The wireless communication system 200 may support packet-based communications. For example, the core network 230 may include a user plane entity (e.g., a user plane function (UPF)) that may communicate with the IP service 250 using one or more backhaul links. The IP service 250 may include (e.g., provide) access to the Internet, one or more intranets, an IMS, or one or more other packet-switched networks. Thus, the user plane entity (e.g., of the core network 230) may be able to transfer data packets between the IP service 250 and the UE 215 via the network entity 205.
[0082] The IP service 250 may communicate with the server 285 (or one or more other servers) via a packet-switched network (e.g., the Internet) or some other connection. The server 285 may be an example of a remote or remote server (such as an Internet server). As described herein, the UE 215 and the server 285 may exchange one or more data packets 220 (e.g., IP packets or some other type of packets). For example, the server 285 may send the data packet 220 to the IP service 250 via the packet-switched network, and the IP service 250 may forward the data packet 220-a to the core network 230 via a backhaul link. The core network 230 may forward the data packet 220-b to the network entity 205 (e.g., CU, DU, RU, base station) via the backhaul link, and the network entity 205 may send the data packet 220-c to the UE 215 using the communication link 225. In some examples, the data packet 220-a, the data packet 220-b, and the data packet 220-c may be the same data packet or different data packets or any combination thereof.
[0083] In some examples, TCP may be used to establish and maintain a connection (e.g., a network connection, a virtual connection) between UE 215 and server 285. TCP may be associated with a transport layer and may be used with IP to ensure reliable transmission of packets between server 285 and UE 215 (or between UE 215 and one or more other communication devices or entities) (e.g., a TCP / IP protocol stack). In some examples, one or more data packets 220 sent using TCP / IP may include an IP header and a TCP segment. A TCP segment may include a TCP header and data. The TCP header may include one or more fields configured to convey TCP information (such as a source identifier (ID), a destination ID, a sequence number (SN), a window size indication, other TCP information, or any combination thereof). The server 285 (e.g., a data transmitter), the UE 215 (a data receiver), or both may confirm a data packet (e.g., one or more data packets 220) by sending a responsive ACK message, which may be referred to as a TCP ACK message. In some examples, the responsive TCP ACK message (e.g., one or more TCP ACK messages 221) may include a data packet (e.g., one or more data packets 220) and one or more bits indicating an ACK (or a negative ACK (NACK)). For example, each of the one or more TCP ACK messages 221 may include an ACK bit in a TCP header set, or some other signal that verifies receipt (e.g., or a failure to receive in the case of a NACK) of the corresponding data packet (e.g., one or more data packets 220).
[0084] In some examples, in response to successfully receiving one or more data packets 220 from the server 285 (e.g., via the network entity 205 and the core network 230), the UE 215 (e.g., a data receiver for the delivery protocol) may send one or more TCP ACK messages 221 to the server 285 (e.g., a data transmitter for the delivery protocol). That is, in some examples of data packet transmission (e.g., downloading data) between the server 285 and the UE 215 using a TCP connection, a TCP ACK message (e.g., one or more TCP ACK messages 221) may be sent from the UE 215 to the server 285 (e.g., in the uplink direction) to manage downlink scheduling. For example, in response to receiving the data packet 220-c, the UE 215 may send a TCP ACK message 221-a to the network entity 205 (e.g., CU, DU, RU, base station) using the communication link 225, and the network entity 205 may forward the TCP ACK message 221-b to the core network 230 using the backhaul link. Core network 230 may forward TCP ACK message 221-c to IP service 250 via a backhaul link, and IP service 250 may send TCP ACK message 221-c to server 285 via a packet-switched network. In some examples, TCP ACK message 221-a, TCP ACK message 221-b, and TCP ACK message 221-c may be the same TCP ACK message or different TCP ACK messages or any combination thereof.
[0085] In some examples, the server 285 (e.g., a TCP layer associated with the server 285) may have a send window in which the server 285 may send data packets without receiving a TCP ACK message (e.g., in response to the data packets sent). In such examples, if the duration of the send window elapses, the server 285 may avoid sending subsequent data packets (e.g., the send window may stagnate). In some examples, the server 285 may resume data packet sending in response to receiving a TCP ACK message. For example, in response to receiving one or more TCP ACK messages 221, the server 285 may send one or more data packets 220, which may result in availability in the send window (e.g., a portion of the data buffer at the server 285 becomes available). Therefore, if, for example, the sending of one or more TCP ACK messages 221 from the UE 215 is delayed or if a relatively large amount of data is to be sent to the UE 215 (e.g., downloaded from the server 285), the communication between the UE 215 and the server 285 may experience increased latency.
[0086] The UE 215 may implement a variety of (e.g., different) mechanisms to increase the size of the TCP ACK message (e.g., increase the amount of data for which the TCP ACK message can provide feedback) and improve the performance of the TCP data path, such as with respect to OTA signaling (e.g., processing in a radio environment). For example, OTA (e.g., using a radio interface) exchanging messages (e.g., data packets, ACK messages) may consume a relatively large portion of available radio resources (e.g., OTA communications may consume a relatively large portion of radio resources), which may be relatively scarce. Therefore, the UE 215 may use ACK coalescing (e.g., may combine ACK messages) to reduce the number of ACK messages sent using the radio interface, thereby saving radio resources and reducing power consumption at the UE 215. In some examples, ACK coalescing may include combining the TCP ACK messages at the UE 215 (e.g., at a TCP layer associated with the UE 215) before sending the TCP ACK messages to the server 285 (or another data transmitter). For example, multiple TCP ACK messages (e.g., corresponding to respective data packets received at UE 215 from server 285) may be included as segments in a single TCP ACK message (e.g., a relatively large TCP ACK message) to be sent from UE 215. In some examples, ACK consolidation may be based on the RAT used to exchange messages (e.g., between UE 215 and server 285), downlink scheduling, or the amount of data (e.g., number of bytes) acknowledged on a particular traffic flow, or any combination thereof. Additionally or alternatively, in some examples of ACK consolidation, some TCP ACK messages may be dropped for (e.g., to accommodate) other uplink transmissions.
[0087] In some examples, a relatively large TCP ACK message (e.g., sent using a communication channel with a particular traffic flow) may cause one or more inefficiencies associated with a send window (e.g., a buffer) of the server 285 (e.g., a data sender). Therefore, in order to reduce the size of the TCP ACK message (e.g., to avoid sending a relatively large TCP ack message), the UE 215 may implement an ACK shaping mechanism. In some examples, ACK shaping may include modifying the size of the TCP ACK message (e.g., at a modem associated with the UE 215) and the timing of sending the TCP ACK message (e.g., from the UE 215) to reduce burstiness in downlink data traffic (e.g., in the transmission of data packets). For example, UE 215 may use ACK shaping to reduce the size of a TCP ACK message (e.g., reduce the amount of data for which the TCP ACK message can provide feedback) and improve buffer management at server 285 (e.g., to refill a buffer at server 285 to improve the efficiency of the send window) and have intermittent nodes in the data path topology between different network entities (e.g., network entity 205 and one or more other network entities) and data routers and server 285.
[0088] Additionally or alternatively, UE 215 may use data merging to combine relatively small data packets (e.g., IP packets) based on radio characteristics, such as when the maximum transmission unit (MTU) of the system is relatively small compared to the data packets (e.g., IP packets, IP / TCP packets). For example, multiple data packets received at UE 215 may be included as parts of a single data packet (e.g., a relatively large data packet), and a single TCP ACK message may be generated for the single data packet (e.g., feedback may be provided for it). In some examples of data merging, the number of data packets to be processed at an application server associated with UE 215 (e.g., processing of TCP headers and checksums of data packets and processing associated with buffer management) may be reduced. For example, data merging at a modem of UE 215, at a hardware transport level of UE 215, at an application processor at UE 215, or at a TCP stack associated with UE 215, or any combination thereof, may be implemented (e.g., at UE 215) using various techniques. In some examples, such techniques may improve one or more key performance indicators (KPIs), such as a power KPI associated with communications between UE 215 and server 285, and increase the throughput (e.g., throughput factor) of communications between UE 215 and server 285.
[0089] In some examples, while ACK coalescing, ACK shaping, and data coalescing may be implemented to reduce latency and accommodate resource constraints (e.g., associated with machine performance ratio in millions of instructions per second (MIPS), memory, radio conditions, transmit power, resource grants), this mechanism may be detrimental to TCP window management mechanisms performed at server 285 (or network entity 205 or core network 230, or any combination thereof). For example, ACK coalescing, ACK shaping, and data coalescing mechanisms may cause TCP transmission scheduling (e.g., downlink scheduling) to become relatively more bursty (e.g., relatively less smooth). In some examples, the burstiness (e.g., relatively bursty traffic) may result in a reduced user experience (e.g., may reduce the performance of UE 215 and the quality of user experience).
[0090] In some examples, UE 215 may support multiple operating modes for generating ACK messages in the uplink direction (e.g., for downlink data traffic), wherein UE 215 may increase the size of the ACK message (e.g., using ACK merging, ACK shaping, and data merging mechanisms, or some other mechanism for increasing the size of the ACK message) to reduce latency. Such modes may include a fast ACK mode and a delayed ACK mode. In some examples, the fast ACK mode and the delayed ACK mode may degrade downlink scheduling (e.g., may cause adverse effects from a radio traffic mode perspective).
[0091] In some examples, the fast ACK mode may include generating an ACK message (e.g., a single TCP ACK message, TCP ACK message 221-c) for multiple data packets (e.g., generating a TCP ACK message for an alternative TCP packet). For example, UE 215 may generate TCP ACK message 221-c for multiple (e.g., two) data packets (e.g., one or more data packets 220) received at UE 215. In some examples, the fast ACK mode may improve connection establishment procedures (e.g., which may be relatively slow or delayed) and window recovery mechanisms (e.g., to improve send window scaling and data availability).
[0092] The delayed ACK mode may include generating a TCP ACK message for downlink traffic based on parameters associated with downlink traffic flow management. For example, TCP (e.g., an algorithm of TCP) may consider multiple factors associated with the downlink traffic flow when determining a delayed ACK timer (e.g., multiple downlink traffic flow parameters as inputs for calculation) for generating an ACK message. Such factors may include an end-to-end (E2E) TCP round trip time (RTT), a send window (e.g., a send window negotiated between the server 285), a delayed ACK timer (e.g., a minimum delayed ACK timer or other suitable delayed ACK timer) that may be selected at the UE 215 (e.g., selected for an operating system used at the UE 215), the amount of data in the receive window (e.g., the amount of data to be processed in a buffer at the UE 215), the amount of data in the send window (e.g., the amount of data to be processed in a buffer at the server 285), a TCP parameter (e.g., a socket option negotiated at the UE 215 or the server 285), a data processing timeline (e.g., a current processing timeline), and other examples. That is, the downlink traffic flow management parameters may be used to generate a delayed ACK timer (e.g., determine the duration of the delayed ACK timer) for generating an ACK message at the UE 215 (e.g., in a delayed ACK mode). In some examples, the ACK may be generated based on satisfying the calculated delayed ACK timer condition. That is, the UE 215 may receive one or more data packets 220 during the duration of the delayed ACK timer, and may generate a TCP ACK message 221-c for the one or more data packets 220 when the duration of the delayed ACK timer expires (e.g., in response to the duration of the delayed ACK timer expiring, after the duration of the delayed ACK timer expires). In some examples, the TCP ACK message 221-c may be sent in the uplink direction from the application processor at the UE 215 to the modem at the UE 215.
[0093] In some examples, while the fast ACK mode and the delayed ACK mode may reduce latency, an increase in the size of TCP ACK messages sent from UE 215 (e.g., when operating in delayed ACK mode or fast ACK mode) may degrade downlink data scheduling (e.g., of data packets sent via one or more network entities) and may result in reduced performance at UE 215. For example (e.g., due to relatively large TCP ACK messages), downlink communications (e.g., having an increased, relatively peak, or other suitable data rate) may experience multiple (e.g., different) RTTs at the E2E TCP level (e.g., TCP layer, transport layer) and multiple (e.g., different) downlink scheduling modes at the radio level (e.g., PHY layer, data link layer), regardless of relatively smooth data traffic between server 285 and UE 215 (e.g., relatively smooth data traffic delivered to a TCP application at UE 215). That is, while some mechanisms (e.g., dynamic) may provide improved processing KPIs, reduced TCP ACK message size, shaping of TCP ACK messages based on send window or buffer management, and improved RTT, delayed ACK messages (e.g., generated in delayed ACK mode) and fast ACK messages (e.g., generated in fast ACK mode) may result in the generation of relatively large TCP ACK messages, which may degrade downlink data scheduling (e.g., be detrimental to downlink data scheduling).
[0094] For example, the transmission of a relatively large TCP ACK message may result in a relatively fast (e.g., sudden) clearing (e.g., refreshing) of a send window buffer (e.g., at server 285) and a supplemental delay (e.g., to achieve relatively smooth downlink data scheduling), thereby degrading downlink data scheduling. Additionally or alternatively, a delay in the transmission of a subsequent TCP ACK message due to ACK shaping (e.g., traffic flow smoothing logic) may increase the RTT associated with the corresponding data packet. In addition, uneven window data availability (e.g., unbalanced data availability associated with a send window and a receive window) and a relatively bursty traffic operation mode may reduce data rates (e.g., peak data rates, average data rates) and KPIs (e.g., power KPIs) and other examples. Therefore, a technique that enables UE 215 to balance the generation of ACK messages (e.g., relatively smoothly) between a fast ACK mode and a delayed ACK mode may provide one or more benefits to downlink data scheduling.
[0095] For example, UE 215 may include a modem, such as a multiple subscriber identity (SIM) modem (e.g., a dual SIM supporting dual SIM dual communication (DSDA) or dual SIM dual standby (DSDS) operating modes, or other multi-SIM modems), wherein multiple subscribers may operate using multiple (e.g., different) radio frequency bands. In such an example, UE 215 may send uplink messages (e.g., including TCP ACK messages) according to a send blanking pattern. For example, because some radio frequency bands (e.g., associated with one or more subscribers, associated with one or more radio systems) are coordinated (or not coordinated), UE 215 may not be able to send uplink messages during some time intervals. The time intervals may occur according to a pattern that may be referred to as a send blanking pattern. For example, if UE 215 operates in DSDA, such that UE 215 can receive downlink data using one subscription (e.g., one subscriber identity) and can send or receive other data using another subscription (e.g., another subscriber identity), UE 215 may experience interference (e.g., interference within the UE, intra-device interference) and may avoid receiving downlink data (or other data). Additionally or alternatively, UE 215 may be configured to avoid sending uplink communications (e.g., according to a send blanking pattern) to reduce coordinated interference or notified interference associated with a network, a network provider, or a network operator, or any combination thereof. Therefore, techniques that enable UE 215 to consider the time interval (e.g., turn-on duration and turn-off duration) of the send blanking pattern when generating an ACK message (e.g., when determining the number or size of ACK messages to be sent in the uplink direction) may provide one or more benefits to downlink data scheduling.
[0096] That is, UE 215 may perform ACK shaping (or ACK merging, receiving-side merging), in which UE 215 may combine data packets received at UE 215 and generate a relatively large TCP ACK message. However, due to the delayed ACK message mechanism (e.g., delayed ACK mode), the size of the generated TCP ACK message may increase and cause a relatively fast (e.g., sudden) exhaustion of a buffer (e.g., a sending window) at server 285 (e.g., a data transmitter), thereby degrading the downlink scheduling of UE 215. Thus, techniques that enable UE 215 to generate TCP ACK messages based on time durations during which UE 215 may not be sending uplink messages (e.g., an OFF duration occurring during delayed ACK mode operation), an amount of data received during such time durations, a number of ACK messages pending at UE 215 (e.g., buffered at UE 215), and a number of ACK messages to be sent during time durations during which UE 215 may be sending uplink messages (e.g., at the beginning of the ON duration, after the OFF duration has elapsed) can provide one or more benefits to downlink data scheduling.
[0097] Additionally or alternatively, due to non-periodic or periodic time intervals during which UE 215 may not be able to send uplink messages (e.g., due to a transmit blanking pattern based on in-device interference, out-of-device interference, coordinated interference, or notified interference), techniques that enable UE 215 to generate an ACK message based on downlink traffic (e.g., downlink activity), uplink ACK messages to be processed at UE 215, and uplink bandwidth (e.g., available uplink bandwidth for sending uplink ACK messages) (e.g., after a duration of time in which the transmit blanking pattern during which UE 215 may not be able to send uplink messages has elapsed) can provide one or more benefits to downlink data scheduling and improve the reliability of communications within the wireless communication system 200.
[0098] In some examples, techniques for TCP ACK shaping as described herein may provide one or more enhancements to communications between UE 215 and a network by enabling UE 215 to balance generation of ACK messages between a fast ACK mode and a delayed ACK mode (e.g., relatively smoothly) and by enabling UE 215 to generate ACK messages based on a transmit blanking pattern at UE 215. For example, some techniques for TCP ACK shaping as described herein may enable UE 215 to modify a mechanism for generating TCP ACK messages (e.g., TCP ACK generation logic at an application processor at UE 215) based on radio conditions (e.g., one or more inputs) within wireless communication system 200, and to generate multiple (e.g., different) sets of TCP ACK messages at an application processor at UE 215 (e.g., at a modem level) based on TCP ACK messages generated at a TCP layer (e.g., a TCP stack) at the UE.
[0099] For example, Figure 2As illustrated in the example of , UE 215 may generate and send at least one TCP ACK message (e.g., TCP ACK message 221-a) according to the delay timer 255 of the TCP ACK message. The duration of the delay timer 255 may be determined at UE 215 based on a downlink data pattern associated with a data packet (e.g., one or more data packets 220) of UE 215 and an uplink scheduling pattern associated with an uplink data packet of UE 215. In some examples, UE 215 may receive a data packet 220-c including a certain amount of data. Data packet 220-c may be associated with a TCP ACK message. UE 215 may generate a plurality of TCP ACK message segments 222 corresponding to the TCP ACK message based on a downlink data pattern associated with a downlink data packet (e.g., one or more data packets 220) of UE 215 and an uplink scheduling pattern associated with an uplink data packet of UE 215. UE 215 may send multiple TCP ACK message segments 222, and each of the multiple TCP ACK message segments 222 may correspond to feedback on a corresponding portion of the amount of data. In other examples, UE 215 may generate and send at least one TCP ACK message (e.g., TCP ACK message 221-a) associated with the amount of data based on a send blanking pattern. The send blanking pattern may indicate one or more time intervals associated with avoiding the sending of TCP ACK messages at UE 215. The size of TCP ACK message 221-a may be based on the send blanking pattern. That is, UE 315 may generate TCP ACK messages or TCP ACK message segments (or both) based on downlink data patterns, uncompleted uplink TCP ACK messages, and uplink scheduling patterns (e.g., radio patterns), which may result in reduced latency and improve communication performance between UE 215 and server 285, as well as other possible benefits.
[0100] Figure 3 An example of a process flow 300 for supporting TCP ACK shaping according to one or more aspects of the present disclosure is illustrated. The process flow 300 may implement or be implemented at some aspects of the wireless communication system 100 or the wireless communication system 200. For example, the process flow 300 may include illustrating a technique for generating a TCP ACK message based on characteristics associated with downlink and uplink communications between a UE 315 and a server 385. The UE 315 and the server 385 may be as described in reference to Figure 1 and Figure 2 Examples of the corresponding devices described. Figure 3In the example of FIG. 3 , communications (e.g., downlink communications and uplink communications) between UE 315 and server 385 may be supported using (e.g., may be relayed using, may be delivered via) IP service 350, core network 330, or network entity 305, or any combination thereof. IP service 350, core network 330, and network entity 305 may be as described in reference to FIG. Figure 1 and Figure 2 Examples of the corresponding devices (or entities) described.
[0101] UE 315 may communicate with a network entity 305 within a wireless communication system 301, which may be as described in reference Figure 1 and Figure 2 An example of a wireless communication system. Figure 3 In some examples, the network entity 305 may be an example of a base station, an IAB node, a RU, a CU, a DU, or some other network node. The network entity 305 may communicate with the core network 330 via a wired or wireless backhaul link. In some examples, the wireless communication system 301 may be referred to as a RAN.
[0102] The core network 330 may include a user plane entity (e.g., UPF) that may be connected to the IP service 350. The IP service 350 may provide the user plane entity with access to the server 385. The user plane entity may transfer data packets to and from the core network 330 and the server 385. Thus, the UE 315 and the server 385 may exchange data packets via the IP service 350 and the wireless communication system 301. The process flow 300 may be implemented at the UE 315, the network entity 305, the core network 330, the IP service 350, or the server 385, or any combination thereof. In the following description of the process flow 300, the operations between the UE 315 and the server 385 may occur in a different order than shown or at different times. Some operations may be omitted from the process flow 300, and other operations may be added to the process flow 300.
[0103] Although some data packets are shown as being passed directly between UE 315 and server 385, it should be understood that these data packets may be relayed or exchanged between UE 315, network entity 305, core network 330, IP service 350 and server 385 (or one or more other networks, network entities or components) via OTA or via a wired connection. Additionally or alternatively, although UE 315, network entity 305 and server 385 are shown as performing the operations of process flow 300, some aspects of some operations may also be performed by, for example, reference 300. Figure 1 and Figure 2 The one or more other communication devices or entities are executed.
[0104] In some examples, the UE 315 may modify TCP ACK generation logic at an application processor associated with the UE 315 to generate a TCP ACK message based on one or more inputs associated with radio communications (e.g., downlink communications and uplink communications) between the UE 315 and the server 385. For example, based on such inputs (e.g., inputs associated with radio conditions at the UE 315), the UE 315 may derive a TCP delayed ACK timer (e.g., an enhanced TCP delayed ACK timer) for use at the UE 315 (e.g., at a TCP stack associated with the UE 315), thereby achieving improved user performance due to improved memory management, improved receive window management, increased throughput, increased data packet RTT, and improved power KPI at the UE 315 (e.g., at an application processor associated with the UE 315).
[0105] For example, at 355, UE 315 may determine the duration of a delay timer for the TCP ACK message based on a downlink data pattern associated with the downlink data packets of UE 315 and an uplink scheduling pattern associated with the uplink data packets of UE 315. The delay timer may be as described in reference Figure 2 Examples of the delay timer. For example, the delay timer may be determined at UE 315 based on an RTT associated with TCP at UE 315, a time duration for receiving a data packet, a delay ACK timer associated with sending a TCP ACK message, an amount of data associated with the TCP ACK message, one or more TCP parameters associated with TCP at UE 315, or a processing time associated with a TCP ACK message, or any combination thereof.
[0106] At 360, UE 315 may generate one or more TCP ACK messages according to the delay timer. For example, UE 315 may generate one or more TCP ACK messages in response to the expiration (e.g., elapse) of the duration of the delay timer. In some examples, UE 315 may generate one or more TCP ACK messages based on the number of TCP ACK messages in a buffer of UE 315 (e.g., outstanding TCP ACK messages).
[0107] At 365, UE 315 may send one or more TCP ACK messages based on the generation at 360. For example, UE 315 may send the one or more TCP ACK messages after the duration of the delay timer expires. In some examples, sending the one or more TCP ACK messages may include sending the one or more TCP ACK messages to network entity 305 using OTA communication 370. Network entity 305 may forward the one or more TCP ACK messages to server 385 via core network 330 and IP services 350 (e.g., using one or more backhaul links and a packet-switched network).
[0108] In some examples, at 375, UE 315 may receive a data packet in response to one or more TCP ACK messages (e.g., sent from UE 315 at 365). In such examples, the data packet may include a certain amount of data that may be based on the one or more TCP ACK messages. For example, the certain amount of data included in the data packet may be based on a certain amount of data (e.g., a maximum amount of data or other suitable amount of data) for which the one or more TCP ACK messages may provide feedback. In some examples, receiving the data packet at 375 may include server 385 sending the data packet to network entity 305 via IP service 350 and core network 330 (e.g., using a packet switching network and one or more backhaul links). The network entity 305 may then forward the data packet to UE 315 using OTA communication 380. In some examples, generating and sending a TCP ACK message based on a delay timer may result in improved TCP scheduling (e.g., improved downlink scheduling), thereby enabling UE 315 to achieve improved UE performance and other possible benefits. For example, when the delay timer expires, the TCP associated with UE 315 may have 5000 bytes to confirm. In such an example, the maximum or other suitable amount of data for which a TCP ACK may provide feedback may be set to 1500 bytes, and thus, the TCP associated with UE 315 may send 4 acks, each of which may provide feedback for 1500 bytes (e.g., TCP may send TCP ACK SN=1500, 3000, 4500, 5000).
[0109] Figure 4An example of a process flow 400 for supporting TCP ACK shaping according to one or more aspects of the present disclosure is illustrated. The process flow 400 may implement or be implemented at some aspects of the wireless communication system 100, the wireless communication system 200, and the process flow 300. For example, the process flow 400 may include illustrating a technique for generating a TCP ACK message based on characteristics associated with downlink and uplink communications between a UE 415 and a server 485. The UE 415 and the server 485 may be as described in reference to Figures 1 to 3 Examples of the corresponding devices described. Figure 4 In the example of FIG. 4 , communications (e.g., downlink communications and uplink communications) between UE 415 and server 485 may be supported using (e.g., may be relayed using, may be delivered via) IP service 450, core network 430, or network entity 405, or any combination thereof. IP service 450, core network 430, and network entity 405 may be as described in reference to FIG. Figures 1 to 3 Examples of the corresponding devices (or entities) described.
[0110] UE 415 may communicate with a network entity 405 within a wireless communication system 401, which may be as described in reference Figure 1 and Figure 2 An example of a wireless communication system. Figure 4 In the example of , UE 415 may include a TCP stack 413 and a radio stack 414 (eg, a protocol stack for radio communications). Additionally or alternatively, in Figure 4 In some examples, the network entity 405 may be an example of a base station, an IAB node, a RU, a CU, a DU, or some other network node. The network entity 405 may communicate with the core network 430 via a wired or wireless backhaul link. In some examples, the wireless communication system 401 may be referred to as a RAN.
[0111] The core network 430 may include a user plane entity (e.g., UPF) that may be connected to the IP service 450. The IP service 450 may provide the user plane entity with access to the server 485. The user plane entity may transfer data packets to and from the core network 430 and the server 485. Therefore, the UE 415 and the server 485 may exchange data packets via the IP service 450 and the wireless communication system 401. The process flow 400 may be implemented at the UE 415, the network entity 405, the core network 430, the IP service 450, or the server 485, or any combination thereof. In the following description of the process flow 400, the operations between the UE 415 and the server 485 may occur in a different order than shown or at different times. Some operations may be omitted from the process flow 400, and other operations may be added to the process flow 400.
[0112] Although some data packets are shown as being passed directly between UE 415 and server 485, it should be understood that these data packets may be relayed or exchanged between UE 415, network entity 405, core network 430, IP service 450 and server 485 (or one or more other networks, network entities or components) via OTA or via a wired connection. Additionally or alternatively, although UE 415, network entity 405 and server 485 are shown as performing the operations of process flow 400, some aspects of some operations may also be performed by, for example, reference 400. Figures 1 to 3 The one or more other communication devices or entities are executed.
[0113] In some examples, the UE 415 may modify TCP ACK generation logic at an application processor associated with the UE 415 to generate TCP ACK messages based on one or more inputs associated with radio communications (e.g., downlink communications and uplink communications) between the UE 415 and the server 485. For example, the UE 415 may generate multiple (e.g., different) sets of TCP ACK messages at an application processor (or modem) associated with the UE 415 based on TCP ACK messages associated with received data packets (e.g., based on TCP ACK messages generated at a TCP stack associated with the UE 415). That is, the UE 415 may split the TCP ACK messages in the uplink direction (e.g., reverse ACK merging may be performed) by generating multiple TCP ACK messages (e.g., TCP ACK message segments) based on relatively large TCP ACK messages (e.g., TCP ACK messages representing a relatively large number of bytes acknowledged in a single time instance). In some examples, generating multiple TCP ACK message segments (e.g., splitting a relatively large TCP ACK message) can be implemented using multiple (e.g., various) techniques, which can include updating data packet parameters so that a checksum associated with the data packet can be updated, and determining whether the data packet is valid. That is, the UE 415 can update one or more parameters associated with the data packet (e.g., based on generating multiple TCP ACK message segments) and determine whether the data packet is valid based on the update.
[0114] For example, UE 415 may receive a data packet having bytes 1001-4000, and the TCP stack may generate a first TCP ACK message acknowledging bytes 1001-2000 and a second TCP ACK message acknowledging bytes 2001-4000. In some examples, UE 415 may combine (e.g., using ACK merging) the first TCP ACK message and the second TCP ACK message before generating the plurality of TCP ACK message segments. For example, if UE 415 is using a maximum (or other suitable) TCP ACK message segment byte threshold of 400 bytes, UE 415 may send a plurality of TCP ACK message segments (e.g., providing feedback for bytes 1001-4000) for a combined TCP ACK message including both the first TCP ACK message and the second TCP ACK message, and each of the plurality of TCP ACK message segments may provide feedback for less than or equal to 400 bytes. For example, UE 415 may send a first TCP ACK message segment that confirms bytes 1001-1400, a second TCP ACK message segment that confirms bytes 1401-1800, a third TCP ACK message segment that confirms bytes 1801-2200, a fourth TCP ACK message segment that confirms bytes 2201-2600, etc. In other examples, UE 415 may generate TCP ACK message segments for both the first TCP ACK message and the second TCP ACK message. For example, UE 415 may send a first TCP ACK message segment that confirms bytes 1001-1400, a second TCP ACK message segment that confirms bytes 1401-1800, and a third TCP ACK message segment that confirms bytes 1801-2000. Then, UE 415 may send a fourth TCP ACK message segment that confirms bytes 2001-2400, a fifth TCP ACK message segment that confirms bytes 2401-2800, etc.
[0115] In some examples, UE 415 may generate TCP ACK message segments (e.g., may split a relatively large TCP ACK message) before performing ACK coalescing or ACK shaping. In such examples, the TCP ACK message segments (e.g., split TCP ACK messages) may become candidates for ACK coalescing or ACK shaping (or both). That is, UE 415 may use the TCP ACK message segments generated at 465 to perform ACK coalescing or ACK shaping (or both). In some examples, the amount of data (e.g., bytes) acknowledged by each TCP ACK message segment (e.g., each split TCP ACK message) may depend on one or more ACK coalescing parameters (e.g., ACK coalescing threshold) or one or more ACK shaping parameters (e.g., ACK shaping token bucket size), or any combination thereof.
[0116] At 455, UE 415 may receive a data packet including a certain amount of data. In some examples, the data packet may be associated with a TCP ACK message. For example, in response to receiving the data packet, a TCP ACK message may be generated using a TCP layer associated with UE 415. In some examples, receiving the data packet at 455 may include server 485 sending the data packet to network entity 405 via IP service 450 and core network 430 (e.g., using a packet-switched network and one or more backhaul links). Network entity 405 may then forward the data packet to UE 415 using OTA communication 460.
[0117] At 465, UE 415 may generate a TCP ACK message segment (e.g., corresponding to a TCP ACK message) based on a downlink data pattern associated with the data packets of UE 415 and an uplink scheduling pattern associated with the uplink data packets of UE 415 (e.g., using an application processor associated with UE 415). In such an example, the TCP ACK message segment (e.g., a TCP ACK message segment of the plurality of TCP ACK message segments generated at 465) may correspond to feedback for a respective portion of the amount of data (e.g., included in the data packets received at 455).
[0118] In some examples, TCP ACK message segments may be generated using TCP stack 413 and radio stack 414 at 465. For example, at 461, TCP stack 413 may generate one or more TCP ACK messages based on the data packets received at 455. At 462, TCP stack 413 may send the TCP ACK messages to radio stack 414. At 463, radio stack 414 may generate TCP ACK message segments based on the TCP ACK messages generated at 461.
[0119] In some examples, the one or more TCP ack messages generated at 461 may be selective ACK (SACK) messages. The SACK message may allow a receiving device (e.g., UE 415) to provide feedback (e.g., ACK or NACK) on a discontinuous block of data packets that may be received at UE 415. For example, a plurality of data packets including bytes 0 to 680 may be sent to UE 415, and bytes 0-200 and 300-680 may be received at UE 415. In such an example, the SACK may include a sequence number of the received bytes (e.g., bytes 300-680) after the sequence number of the relatively last consecutive byte (e.g., 200) received at UE 415. In such an example, the TCP ACK message may include a first sequence number (SN=200) and a SACK for bytes 300-680. Additionally or alternatively, a TCP ACK message segment may be generated (e.g., from a TCP ACK message) such that each TCP ACK message segment may provide feedback on a threshold number of bytes (e.g., 200 bytes). For example, a first TCP ACK message segment may include feedback for bytes 0 to 200, a second TCP ACK message segment may include SN=200 and SACK for bytes 300-500, and a third TCP ACK message segment may include SN=200 and SACK for bytes 501-680.
[0120] In some examples, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on a configured RAT, a configured downlink traffic type, a throughput associated with downlink communications, one or more scheduling modes (e.g., uplink scheduling mode, downlink scheduling mode), L2 window management and associated timers, a discontinuous reception (DRX) mode, and one or more other PHY layer parameters. For example, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on a RAT associated with UE 415, a throughput associated with data packets of UE 415, a time associated with layer 2 window management, or a DRX mode associated with UE 415, or any combination thereof.
[0121] Additionally or alternatively, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on the number of TCP flows associated with UE 415, the state (e.g., current state) of the TCP flows (e.g., the state of the send window of the TCP flow, pending TCP data packets in a buffer associated with UE 415, pending transmissions, pending retransmissions), and one or more TCP socket negotiated parameters (e.g., send window duration, one or more algorithms). For example, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on the number of data flows associated with data packets of UE 415, the number of data flows associated with uplink data packets of UE 415, or one or more TCP parameters associated with TCP at UE 415, or any combination thereof.
[0122] In some examples, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on power (e.g., current power) and one or more performance aspects of UE 415 (e.g., operating power range, thermal effects associated with the operating power range) and an uplink grant mode (e.g., rate at which uplink data packets are sent, size of uplink data packets being sent, RTT of uplink data packets, link quality of the uplink used to send uplink data packets). For example, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on a transmit power associated with an uplink data packet of UE 415, an uplink grant mode associated with an uplink data packet of UE 415, or both.
[0123] Additionally or alternatively, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on the RTT (e.g., total RTT) of the data packets at the TCP communication level (e.g., due to associated transmission, scheduling, and ARQ mechanisms occurring prior to TCP processing) and the RTT of the data packets at the radio communication level (e.g., due to associated scheduling, HARQ mechanisms, ARQ mechanisms, radio bearers, and RAT). For example, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on the RTT associated with the data packets of UE 415 and the uplink data packets of UE 415.
[0124] In some examples, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on a packet delay budget (PDB) of a data packet (e.g., a total PDB for a given flow), one or more quality of service (QOS) characteristics, a traffic pattern, and a traffic type. For example, UE 415 may generate a TCP ACK message segment (or one or more TCP ACK messages) based on a PDB associated with a data packet of UE 415, a PDB associated with an uplink data packet of UE 415, a QOS associated with a data packet of UE 415, a QOS associated with an uplink data packet of UE 415, a traffic type associated with a data packet of UE 415, or a traffic type associated with an uplink data packet of UE 415, or any combination thereof.
[0125] At 470, UE 415 may send the TCP ACK message segment generated at 465. In some examples, sending the TCP ACK message segment may include sending the TCP ACK message segment to network entity 405 using OTA communication 475. Network entity 405 may forward the TCP ACK message segment to server 485 via core network 430 and IP services 450 (e.g., using one or more backhaul links and a packet-switched network). In some examples, generating and sending the TCP ACK message segment based on radio conditions at UE 415 may result in improved downlink scheduling, thereby enabling UE 415 to achieve improved UE performance, as well as other possible benefits.
[0126] Figure 5 An example of a process flow 500 for supporting TCP ACK shaping according to one or more aspects of the present disclosure is illustrated. The process flow 500 may implement or be implemented at some aspects of the wireless communication system 100, the wireless communication system 200, the process flow 300, and the process flow 400. For example, the process flow 500 may include illustrating a technique for generating a TCP ACK message based on characteristics associated with downlink and uplink communications between a UE 515 and a server 585. The UE 515 and the server 585 may be as described in reference to Figures 1 to 4 Examples of the corresponding devices described. Figure 5 In the example of , the communication (e.g., downlink communication and uplink communication) between UE515 and server 585 can be supported using IP service 550, core network 530, or network entity 505, or any combination thereof (e.g., can be relayed using them, can be delivered via them). IP service 550, core network 530, and network entity 505 can be as described in reference Figures 1 to 3 Examples of the corresponding devices (or entities) described.
[0127] UE 515 may communicate with a network entity 505 within a wireless communication system 501, which may be as described in reference Figure 1 and Figure 2 An example of a wireless communication system. Figure 5 In some examples, the network entity 505 may be an example of a base station, an IAB node, a RU, a CU, a DU, or some other network node. The network entity 505 may communicate with the core network 530 via a wired or wireless backhaul link. In some examples, the wireless communication system 501 may be referred to as a RAN.
[0128] The core network 530 may include a user plane entity (e.g., UPF) that may be connected to the IP service 550. The IP service 550 may provide access to the server 585 for the user plane entity. The user plane entity may transfer data packets to and from the core network 530 and the server 585. Therefore, the UE 515 and the server 585 may exchange data packets via the IP service 550 and the wireless communication system 501. The process flow 500 may be implemented at the UE 515, the network entity 505, the core network 530, the IP service 550, or the server 585, or any combination thereof. In the following description of the process flow 500, the operations between the UE 415 and the server 585 may occur in a different order than shown or at different times. Some operations may be omitted from the process flow 500, and other operations may be added to the process flow 500.
[0129] Although some data packets are shown as being passed directly between the UE 515 and the server 585, it should be understood that these data packets may be relayed or exchanged between the UE 515, the network entity 505, the core network 530, the IP service 550 and the server 585 (or one or more other networks, network entities or components) via OTA or via a wired connection. Additionally or alternatively, although the UE 515, the network entity 505 and the server 585 are shown as performing the operations of the process flow 500, some aspects of some operations may also be performed by the UE 515, the network entity 505 and the server 585 as shown in the embodiment of the present invention. Figures 1 to 4 The one or more other communication devices or entities are executed.
[0130] In some examples, UE 515 may generate TCP ACK messages based on a transmit blanking pattern (e.g., on and off time intervals), downlink radio characteristics (e.g., downlink throughput and burstiness of downlink traffic), and uplink radio characteristics (e.g., pending TCP ACK messages, MIPS, power state, bandwidth availability). That is, UE 515 may generate (or split) TCP ACK messages to reduce the burstiness of TCP ACK message transmission to the network (e.g., to achieve relatively smooth TCP ACK message transmission).
[0131] At 565, UE 515 may generate one or more TCP ACK messages based on the send blanking pattern. The send blanking pattern may be as described in reference Figure 2 Examples of the transmit blanking pattern described. For example, the transmit blanking pattern may indicate one or more time intervals associated with avoiding the transmission of TCPACK messages (or any uplink communication). The time intervals indicated using the transmit blanking pattern may be periodic or aperiodic. Additionally or alternatively, the transmit blanking pattern may be based on interference within the UE 515, interference outside the UE 515, coordinated interference, or notified interference, or any combination thereof.
[0132] In some examples, one or more TCP ACK messages may be associated with the amount of data. For example, at 555, UE515 may receive a data packet including the amount of data during a time interval in one or more time intervals associated with avoiding the sending of TCP ACK messages. In such an example, generating one or more TCP ACK messages at 565 may be based on the lapse of time intervals. In some examples, receiving the data packet at 555 may include the server 585 sending the data packet to the network entity 505 via the IP service 550 and the core network 530 (e.g., using a packet switching network and one or more backhaul links). The network entity 505 may then forward the data packet to the UE 515 using OTA communication 560.
[0133] In some examples, the size of the one or more TCP ACK messages may be based on the transmit blanking pattern (e.g., the amount of data received during the time interval). Additionally or alternatively, the size of the one or more TCP ACK messages may be based on the number of TCP ACK messages buffered at UE 515, a machine performance level (e.g., MIPS) associated with UE 515, a transmit power associated with uplink data packets of UE 515, an amount of available bandwidth in the uplink direction, a throughput associated with data packets of UE 515, or a burst associated with data packets of UE 515, or any combination thereof.
[0134] At 570, UE 515 may send one or more TCP ACK messages (e.g., generated at 565) based on the transmit blanking pattern. In some examples, sending the one or more TCP ACK messages may include sending the one or more TCP ACK messages to network entity 505 using OTA communication 575. Network entity 505 may forward the one or more TCP ACK messages to server 585 via core network 530 and IP services 550 (e.g., using one or more backhaul links and a packet-switched network). In some examples, generating and sending one or more TCP ACK messages based on radio conditions at UE 515 and the transmit blanking pattern may result in improved downlink scheduling, thereby enabling UE 515 to achieve improved UE performance, as well as other possible benefits.
[0135] Figure 6 A block diagram 600 of a device 605 supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown. The device 605 may be an example of aspects of the UE 115 as described herein. The device 605 may include a receiver 610, a transmitter 615, and a communication manager 620. The device 605 may also include a processor. Each of these components may communicate with each other (e.g., via one or more buses).
[0136] Receiver 610 may provide means for receiving information such as packets associated with various information channels (e.g., control channels, data channels, information channels related to TCP ACK shaping), user data, control information, or any combination thereof. The information may be communicated to other components of device 605. Receiver 610 may utilize a single antenna or a collection of multiple antennas.
[0137] Transmitter 615 may provide means for transmitting signals generated by other components of device 605. For example, transmitter 615 may transmit information such as packets associated with various information channels (e.g., control channels, data channels, information channels related to TCP ACK shaping), user data, control information, or any combination thereof. In some examples, transmitter 615 may be co-located with receiver 610 in a transceiver module. Transmitter 615 may utilize a single antenna or a collection of multiple antennas.
[0138] The communication manager 620, the receiver 610, the transmitter 615, or various combinations thereof or various components thereof may be examples of means for performing various aspects of TCP ACK shaping as described herein. For example, the communication manager 620, the receiver 610, the transmitter 615, or various combinations thereof or components thereof may support methods for performing one or more of the functions described herein.
[0139] In some examples, the communication manager 620, the receiver 610, the transmitter 615, or various combinations or components thereof may be implemented in hardware (e.g., in a communication management circuit). The hardware may include a processor, a digital signal processor (DSP), a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a microcontroller, discrete gate or transistor logic, discrete hardware components, or any combination thereof that is configured as or otherwise supports means for performing the functions described in the present disclosure. In some examples, the processor and a memory coupled to the processor may be configured to perform one or more of the functions described herein (e.g., by executing instructions stored in the memory by the processor).
[0140] Additionally or alternatively, in some examples, the communication manager 620, the receiver 610, the transmitter 615, or various combinations or components thereof may be implemented in code executed by a processor (e.g., as communication management software or firmware). If implemented in code executed by a processor, the functionality of the communication manager 620, the receiver 610, the transmitter 615, or various combinations or components thereof may be performed by a general purpose processor (e.g., configured as or otherwise supporting means for performing the functionality described in the present disclosure), a DSP, a CPU, an ASIC, an FPGA, a microcontroller, or any combination of these or other programmable logic devices.
[0141] In some examples, communication manager 620 can be configured to perform various operations (e.g., receive, obtain, monitor, output, send) using or otherwise cooperating with receiver 610, transmitter 615, or both. For example, communication manager 620 can receive information from receiver 610, transmit information to transmitter 615, or integrate in conjunction with receiver 610, transmitter 615, or both to obtain information, output information, or perform various other operations as described herein.
[0142] According to examples as disclosed herein, the communication manager 620 can support wireless communications at a UE (e.g., device 605). For example, the communication manager 620 can be configured to or otherwise support a component for generating at least one TCP ACK message based on a delay timer and based on a threshold ACK size of the TCP ACK message. The communication manager 620 can be configured to or otherwise support a component for sending at least one TCP ACK message based on the generation.
[0143] Additionally or alternatively, the communication manager 620 may support wireless communications at a UE (e.g., device 605) according to examples as disclosed herein. For example, the communication manager 620 may be configured to or otherwise support components for receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message. The communication manager 620 may be configured to or otherwise support components for generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data. The communication manager 620 may be configured to or otherwise support components for sending a set of multiple TCP ACK message segments based on the generation.
[0144] Additionally or alternatively, the communication manager 620 may support wireless communications at a UE (e.g., device 605) according to examples as disclosed herein. For example, the communication manager 620 may be configured to or otherwise support means for generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding transmission of TCP ACK messages, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern. The communication manager 620 may be configured to or otherwise support means for sending at least one TCP ACK message according to the transmit blanking pattern based on the generating.
[0145] By including or configuring a communications manager 620 according to examples as described herein, a device 605 (e.g., a processor controlling or otherwise coupled to a receiver 610, a transmitter 615, a communications manager 620, or a combination thereof) may support techniques for reducing processing, reducing power consumption, and more efficiently utilizing communications resources.
[0146] Figure 7 A block diagram 700 of a device 705 supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown. The device 705 may be an example of aspects of the device 605 or UE 115 as described herein. The device 705 may include a receiver 710, a transmitter 715, and a communication manager 720. The device 705 may also include a processor. Each of these components may communicate with each other (e.g., via one or more buses).
[0147] Receiver 710 may provide means for receiving information such as packets associated with various information channels (e.g., control channels, data channels, information channels related to TCP ACK shaping), user data, control information, or any combination thereof. The information may be communicated to other components of device 705. Receiver 710 may utilize a single antenna or a collection of multiple antennas.
[0148] The transmitter 715 may provide means for transmitting signals generated by other components of the device 705. For example, the transmitter 715 may transmit information such as packets associated with various information channels (e.g., control channels, data channels, information channels related to TCP ACK shaping), user data, control information, or any combination thereof. In some examples, the transmitter 715 may be co-located with the receiver 710 in a transceiver module. The transmitter 715 may utilize a single antenna or a collection of multiple antennas.
[0149] Device 705 or its various components may be examples of components for performing various aspects of TCP ACK shaping as described herein. For example, communication manager 720 may include delay timer component 725, TCP ACK component 730, data packet component 735, TCP ACK segment component 740, blanking pattern component 745, or any combination thereof. Communication manager 720 may be an example of various aspects of communication manager 620 as described herein. In some examples, communication manager 720 or its various components may be configured to perform various operations (e.g., receive, obtain, monitor, output, send) using or otherwise cooperating with receiver 710, transmitter 715, or both. For example, communication manager 720 may receive information from receiver 710, transmit information to transmitter 715, or be integrated with receiver 710, transmitter 715, or both in combination to obtain information, output information, or perform various other operations as described herein.
[0150] According to examples as disclosed herein, the communication manager 720 can support wireless communications at a UE (e.g., device 705). The delay timer component 725 can be configured to or otherwise support a means for generating at least one TCP ACK message based on a delay timer and based on a threshold ACK size of the TCP ACK message. The TCP ACK component 730 can be configured to or otherwise support a means for sending at least one TCP ACK message based on the generation.
[0151] Additionally or alternatively, the communication manager 720 may support wireless communications at a UE (e.g., device 705) according to examples as disclosed herein. The data packet component 735 may be configured to or otherwise support means for receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message. The TCP ACK segment component 740 may be configured to or otherwise support means for generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data. The TCP ACK segment component 740 may be configured to or otherwise support means for sending a set of multiple TCP ACK message segments based on the generation.
[0152] Additionally or alternatively, the communication manager 720 can support wireless communications at a UE (e.g., device 705) according to examples as disclosed herein. The TCP ACK component 730 can be configured to or otherwise support means for generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of the TCP ACK message, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern. The blanking pattern component 745 can be configured to or otherwise support means for sending at least one TCP ACK message according to the transmit blanking pattern based on the generation.
[0153] Figure 8 A block diagram 800 of a communication manager 820 supporting TCP ACK shaping according to one or more aspects of the present disclosure is shown. The communication manager 820 can be an example of aspects of the communication manager 620, the communication manager 720, or both as described herein. The communication manager 820 or its various components can be examples of means for performing various aspects of TCP ACK shaping as described herein. For example, the communication manager 820 can include a delay timer component 825, a TCP ACK component 830, a data packet component 835, a TCP ACK segment component 840, a blanking pattern component 845, a parameter component 850, or any combination thereof. Each of these components can communicate with each other directly or indirectly (e.g., via one or more buses).
[0154] According to examples as disclosed herein, the communication manager 820 can support wireless communications at the UE. The delay timer component 825 can be configured to or otherwise support a means for generating at least one TCP ACK message based on the delay timer and based on a threshold ACK size of the TCP ACK message. The TCP ACK component 830 can be configured to or otherwise support a means for sending at least one TCP ACK message based on the generation. In some examples, the duration of the delay timer is based on a downlink data mode associated with the downlink data packets of the UE and an uplink scheduling mode associated with the uplink data packets of the UE.
[0155] In some examples, to support generating at least one TCP ACK message according to the delay timer, the delay timer component 825 may be configured or otherwise support means for generating at least one TCP ACK message in response to expiration of a duration of the delay timer, wherein the at least one TCP ACK message is sent after expiration of the duration of the delay timer. In some examples, to support generating at least one TCP ACK message according to the delay timer, the delay timer component 825 may be configured or otherwise support means for generating at least one TCP ACK message based on a number of TCP ACK messages in a buffer of the UE.
[0156] In some examples, the delay timer component 825 may be configured to or otherwise support components for determining the duration of the delay timer based on the RTT associated with TCP at the UE, the time duration of receiving data packets at the UE, the delay ACK timer associated with sending at least one TCP ACK message, the amount of data associated with the at least one TCP ACK message, one or more TCP parameters associated with TCP at the UE, or the processing time associated with the at least one TCP ACK message, or any combination thereof.
[0157] Additionally or alternatively, according to examples as disclosed herein, the communication manager 820 may support wireless communications at the UE. The data packet component 835 may be configured to or otherwise support means for receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message. The TCP ACK segment component 840 may be configured to or otherwise support means for generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data. In some examples, the TCP ACK segment component 840 may be configured to or otherwise support means for sending a set of multiple TCP ACK message segments based on the generation.
[0158] In some examples, the TCP ACK message segments in the set of multiple TCP ACK message segments correspond to feedback for corresponding portions of a third amount of data including the first amount of data and the second amount of data. In some examples, the first TCP ACK message and the second TCP ACK message include SACK messages. In some examples, the first set of TCP ACK message segments in the set of multiple TCP ACK message segments corresponds to feedback for corresponding portions of the first amount of data, and the second set of TCP ACK message segments in the set of multiple TCP ACK message segments corresponds to feedback for corresponding portions of the second amount of data.
[0159] In some examples, generating the set of multiple TCP ACK message segments is further based on a downlink data pattern associated with the downlink data packets of the UE and an uplink scheduling pattern associated with the uplink data packets of the UE. In some examples, parameter component 850 can be configured to or otherwise support means for updating one or more parameters associated with the first data packet and the second data packet based on generating the set of multiple TCP ACK message segments, wherein sending the set of multiple TCP ACK message segments is based on the update.
[0160] In some examples, to support generating a set of multiple TCP ACK message segments, TCP ACK segment component 840 may be configured as or otherwise support components for generating a set of multiple TCP ACK message segments based on a RAT associated with the UE, a throughput associated with downlink data packets of the UE, a time associated with layer 2 window management, or a discontinuous reception mode associated with the UE, or any combination thereof.
[0161] In some examples, to support generating a set of multiple TCP ACK message segments, the TCP ACK segment component 840 may be configured as or otherwise support components for generating a set of multiple TCP ACK message segments based on the number of data streams associated with the UE's downlink data packets, the number of data streams associated with the UE's uplink data packets, one or more TCP parameters associated with TCP at the UE, the transmit power associated with the UE's uplink data packets, or the uplink grant mode associated with the UE's uplink data packets, or any combination thereof.
[0162] In some examples, to support generating a set of multiple TCP ACK message segments, the TCP ACK segment component 840 may be configured as or otherwise support components for generating a set of multiple TCP ACK message segments based on the RTT associated with the UE's downlink data packets and uplink data packets, the PDB associated with the UE's downlink data packets, the PDB associated with the UE's uplink data packets, the QOS associated with the UE's downlink data packets, the QOS associated with the UE's uplink data packets, the service type associated with the UE's downlink data packets, or the service type associated with the UE's uplink data packets, or any combination thereof.
[0163] Additionally or alternatively, according to examples as disclosed herein, the communication manager 820 can support wireless communications at the UE. In some examples, the TCP ACK component 830 can be configured to or otherwise support a component for generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of the TCP ACK message, wherein the size of the at least one TCP ACK message is based on the transmit blanking pattern. The blanking pattern component 845 can be configured to or otherwise support a component for sending at least one TCP ACK message according to the transmit blanking pattern based on the generation.
[0164] In some examples, data packet component 835 may be configured or otherwise support means for receiving data packets including the amount of data within a time interval of one or more time intervals associated with avoiding sending of TCP ACK messages, wherein generating at least one TCP ACK message is based on the time interval lapse.
[0165] In some examples, data packet component 835 may be configured or otherwise support means for receiving a data packet in response to at least one TCP ACK message, wherein the data packet includes a second amount of data, and wherein the second amount of data is based on a size of the at least one TCP ACK message.
[0166] In some examples, the size of at least one TCP ACK message is further based on the number of TCP ACK messages buffered at the UE, a machine performance level associated with the UE, a transmit power associated with the UE's uplink data packets, an amount of available bandwidth in the uplink direction, a throughput associated with the UE's downlink data packets, or a burst associated with the UE's downlink data packets, or any combination thereof. In some examples, one or more time intervals are periodic or aperiodic. In some examples, the transmit blanking pattern is based on interference internal to the UE, interference external to the UE, coordinated interference, or notified interference, or any combination thereof.
[0167] Fig. 9 A diagram of a system 900 including a device 905 that supports TCP ACK shaping according to one or more aspects of the present disclosure is shown. The device 905 may be an example of a device 605, a device 705, or a UE 115 as described herein, or include components of these devices. The device 905 may communicate (e.g., wirelessly) with one or more network entities 105, one or more UEs 115, or any combination thereof. The device 905 may include components for two-way voice and data communications, including components for sending and receiving communications, such as a communication manager 920, an input / output (I / O) controller 910, a transceiver 915, an antenna 925, a memory 930, a code 935, and a processor 940. These components may be in electronic communication or otherwise coupled (e.g., operatively, communicatively, functionally, electronically, electrically) via one or more buses (e.g., a bus 945).
[0168] I / O controller 910 can manage input and output signals of device 905. I / O controller 910 can also manage peripheral devices that are not integrated into device 905. In some cases, I / O controller 910 can represent a physical connection or port to an external peripheral device. In some cases, I / O controller 910 can utilize an operating system such as or another known operating system. Additionally or alternatively, I / O controller 910 may represent or interact with a modem, keyboard, mouse, touch screen, or similar device. In some cases, I / O controller 910 may be implemented as part of a processor such as processor 940. In some cases, a user may interact with device 905 via I / O controller 910 or via hardware components controlled by I / O controller 910.
[0169] In some cases, the device 905 may include a single antenna 925. However, in some other cases, the device 905 may have more than one antenna 925, which may be capable of concurrently transmitting or receiving multiple wireless transmissions. The transceiver 915 may communicate bidirectionally via one or more antennas 925, a wired link, or a wireless link as described herein. For example, the transceiver 915 may represent a wireless transceiver and may communicate bidirectionally with another wireless transceiver. The transceiver 915 may also include a modem for modulating packets, providing the modulated packets to one or more antennas 925 for transmission, and for demodulating packets received from one or more antennas 925. The transceiver 915, or the transceiver 915 and one or more antennas 925 may be examples of transmitters 615, transmitters 715, receivers 610, receivers 710, or any combination thereof or any components thereof as described herein.
[0170] The memory 930 may include random access memory (RAM) and read-only memory (ROM). The memory 930 may store computer-readable, computer-executable code 935 including instructions that, when executed by the processor 940, cause the device 905 to perform various functions described herein. The code 935 may be stored in a non-transitory computer-readable medium such as a system memory or another type of memory. In some cases, the code 935 may not be directly executable by the processor 940, but may (e.g., when compiled and executed) cause the computer to perform the functions described herein. In some cases, the memory 930 may include, among other things, a basic I / O system (BIOS) that may control basic hardware or software operations, such as interaction with peripheral components or devices.
[0171] The processor 940 may include an intelligent hardware device (e.g., a general-purpose processor, a DSP, a CPU, a microcontroller, an ASIC, an FPGA, a programmable logic device, a discrete gate or transistor logic component, a discrete hardware component, or any combination thereof). In some cases, the processor 940 may be configured to operate a memory array using a memory controller. In some other cases, the memory controller may be integrated into the processor 940. The processor 940 may be configured to execute computer-readable instructions stored in a memory (e.g., a memory 930) to enable the device 905 to perform various functions (e.g., functions or tasks that support TCP ACK shaping). For example, the device 905 or a component of the device 905 may include a processor 940 and a memory 930 coupled to or coupled to the processor 940, and the processor 940 and the memory 930 are configured to perform the various functions described herein.
[0172] According to examples as disclosed herein, the communication manager 920 may support wireless communications at a UE (e.g., device 905). For example, the communication manager 920 may be configured to or otherwise support a component for generating at least one TCP ACK message based on a delay timer and based on a threshold ACK size of the TCP ACK message. The communication manager 920 may be configured to or otherwise support a component for sending at least one TCP ACK message based on the generation.
[0173] Additionally or alternatively, the communication manager 920 may support wireless communication at a UE (e.g., device 905) according to examples as disclosed herein. For example, the communication manager 920 may be configured to or otherwise support components for receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message. The communication manager 920 may be configured to or otherwise support components for generating a set of multiple TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of the first amount of data and the second amount of data. The communication manager 920 may be configured to or otherwise support components for sending a set of multiple TCP ACK message segments based on the generation.
[0174] Additionally or alternatively, the communication manager 920 may support wireless communications at a UE (e.g., device 905) according to examples as disclosed herein. For example, the communication manager 920 may be configured to or otherwise support means for generating at least one TCP ACK message associated with an amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of TCP ACK messages, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern. The communication manager 920 may be configured to or otherwise support means for sending at least one TCP ACK message according to the transmit blanking pattern based on the generation.
[0175] By including or configuring a communication manager 920 according to examples described herein, the device 905 can support techniques for improving user experience associated with reduced processing, lower power consumption, more efficient use of communication resources, and longer battery life.
[0176] In some examples, the communication manager 920 may be configured to perform various operations (e.g., receive, monitor, transmit) using or otherwise cooperating with the transceiver 915, one or more antennas 925, or any combination thereof. Although the communication manager 920 is illustrated as a separate component, in some examples, one or more functions described with reference to the communication manager 920 may be supported or performed by the processor 940, the memory 930, the code 935, or any combination thereof. For example, the code 935 may include instructions that are executable by the processor 940 to cause the device 905 to perform various aspects of TCP ACK shaping as described herein, or the processor 940 and the memory 930 may be otherwise configured to perform or support such operations.
[0177] Fig.10 1 is a flowchart illustrating a method 1000 for supporting TCP ACK shaping according to one or more aspects of the present disclosure. The operations of the method 1000 may be implemented by a UE or a component thereof as described herein. For example, the operations of the method 1000 may be implemented by a UE or a component thereof as described herein. Figures 1 to 9 The UE 115 described herein may be executed. In some examples, the UE may execute an instruction set to control the functional elements of the UE to perform the described functions. Additionally or alternatively, the UE may use dedicated hardware to perform various aspects of the described functions.
[0178] At 1005, the method may include generating at least one TCP ACK message according to the delay timer and based on a threshold ACK size of the TCP ACK message. The operations of 1005 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1005 may be performed as described in reference to Figure 8 The delay timer component 825 is used to execute.
[0179] At 1010, the method may include sending at least one TCP ACK message based on the generation. The operations of 1010 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1010 may be performed as described in reference to Figure 8 The TCP ACK component 830 is used to execute.
[0180] Fig.11 1 is a flowchart illustrating a method 1100 for supporting TCP ACK shaping according to one or more aspects of the present disclosure. The operations of the method 1100 may be implemented by a UE or a component thereof as described herein. For example, the operations of the method 1100 may be implemented by a UE or a component thereof as described herein. Figures 1 to 9 The UE 115 described herein may be executed. In some examples, the UE may execute an instruction set to control the functional elements of the UE to perform the described functions. Additionally or alternatively, the UE may use dedicated hardware to perform various aspects of the described functions.
[0181] At 1105, the method may include receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message. The operations of 1105 may be performed according to examples as disclosed herein. In some examples, aspects of the operations of 1105 may be performed as described in reference to Figure 8 The data grouping component 835 is used to execute.
[0182] At 1110, the method may include generating a set of multiple TCP ACK message segments corresponding to a first TCP ACK message and a second TCP ACK message based on a threshold ACK size of the TCP ACK message segments, wherein the set of multiple TCP ACK message segments corresponds to feedback of a first amount of data and a second amount of data. The operations of 1110 may be performed according to examples as disclosed herein. In some examples, aspects of the operations of 1110 may be performed as described in reference to Figure 8 The TCP ACK segment component 840 is used to perform.
[0183] At 1115, the method may include sending a set of multiple TCP ACK message segments based on the generation. The operations of 1115 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1115 may be performed as described in reference to Figure 8 The TCP ACK segment component 840 is used to perform.
[0184] Fig.12 1 is a flowchart illustrating a method 1200 for supporting TCP ACK shaping according to one or more aspects of the present disclosure. The operations of the method 1200 may be implemented by a UE or a component thereof as described herein. For example, the operations of the method 1200 may be implemented by a UE or a component thereof as described herein. Figures 1 to 9 The UE 115 described herein may be executed. In some examples, the UE may execute an instruction set to control the functional elements of the UE to perform the described functions. Additionally or alternatively, the UE may use dedicated hardware to perform various aspects of the described functions.
[0185] At 1205, the method may include generating at least one TCP ACK message associated with the amount of data based on a transmit blanking pattern indicating one or more time intervals associated with avoiding the transmission of the TCP ACK message, wherein a size of the at least one TCP ACK message is based on the transmit blanking pattern. The operations of 1205 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1205 may be performed as described in reference to Figure 8 The TCP ACK component 830 is used to execute.
[0186] At 1210, the method may include sending at least one TCP ACK message according to a send blanking pattern based on the generating. The operations of 1210 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1210 may be performed as described in reference to Figure 8 The blanking mode component 845 is used to perform the above operation.
[0187] The following provides an overview of various aspects of the disclosure:
[0188] Aspect 1: A method for wireless communication at a UE, comprising: generating at least one TCP ACK message according to a delay timer and at least in part based on a threshold ACK size of the TCP ACK message; and sending the at least one TCP ACK message based at least in part on the generating.
[0189] Aspect 2: The method according to aspect 1, wherein the duration of the delay timer is based at least in part on a downlink data pattern associated with the downlink data packets of the UE and an uplink scheduling pattern associated with the uplink data packets of the UE.
[0190] Aspect 3: A method according to any one of Aspects 1 to 2, wherein generating the at least one TCP ACK message according to the delay timer includes: generating the at least one TCP ACK message in response to the expiration of the delay timer, wherein the at least one TCP ACK message is sent after the expiration of the delay timer.
[0191] Aspect 4: The method according to any one of Aspects 1 to 3, wherein generating the at least one TCP ACK message according to the delay timer includes: generating the at least one TCP ACK message based at least in part on the number of TCP ACK messages in a buffer of the UE.
[0192] Aspect 5: The method according to any one of Aspects 1 to 4 further includes: determining the duration of the delay timer based at least in part on the RTT associated with the TCP at the UE, the time duration of receiving data packets at the UE, the delayed ACK timer associated with sending the at least one TCP ACK message, the amount of data associated with the at least one TCP ACK message, one or more TCP parameters associated with the TCP at the UE, or the processing time associated with the at least one TCP ACK message, or any combination thereof.
[0193] Aspect 6: A method for wireless communication at a UE, comprising: receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first TCP ACK message and the second data packet being associated with a second TCP ACK message; generating a plurality of TCP ACK message segments corresponding to the first TCP ACK message and the second TCP ACK message based at least in part on a threshold ACK size of the TCP ACK message segments, wherein the plurality of TCP ACK message segments correspond to feedback for the first amount of data and the second amount of data; and sending the plurality of TCP ACK message segments based at least in part on the generation.
[0194] Aspect 7: The method according to aspect 6, wherein a TCP ACK message segment of the plurality of TCP ACK message segments corresponds to feedback of a corresponding portion of a third amount of data including the first amount of data and the second amount of data.
[0195] Aspect 8: The method according to any one of aspects 6 to 7, wherein the first TCP ACK message and the second TCP ACK message include selective ACK messages.
[0196] Aspect 9: A method according to any one of Aspects 6 to 8, wherein a first set of TCP ACK message segments among the multiple TCP ACK message segments corresponds to feedback on corresponding portions of the first amount of data, and a second set of TCP ACK message segments among the multiple TCP ACK message segments corresponds to feedback on corresponding portions of the second amount of data.
[0197] Aspect 10: A method according to any one of Aspects 6 to 9, wherein generating the multiple TCP ACK message segments is further based at least in part on a downlink data pattern associated with the downlink data packets of the UE and an uplink scheduling pattern associated with the uplink data packets of the UE.
[0198] Aspect 11: The method according to any one of Aspects 6 to 10 also includes: updating one or more parameters associated with the first data packet and the second data packet based at least in part on generating the multiple TCP ACK message segments, wherein sending the multiple TCP ACK message segments is based at least in part on the update.
[0199] Aspect 12: A method according to any one of Aspects 6 to 11, wherein generating the multiple TCP ACK message segments includes: generating the multiple TCP ACK message segments based at least in part on a RAT associated with the UE, a throughput associated with downlink data packets of the UE, a time associated with a second layer window management, or a discontinuous reception mode associated with the UE, or any combination thereof.
[0200] Aspect 13: A method according to any one of Aspects 6 to 12, wherein generating the multiple TCP ACK message segments includes: generating the multiple TCP ACK message segments based at least in part on the number of data streams associated with the downlink data packets of the UE, the number of data streams associated with the uplink data packets of the UE, one or more TCP parameters associated with TCP at the UE, the transmit power associated with the uplink data packets of the UE, or the uplink grant mode associated with the uplink data packets of the UE, or any combination thereof.
[0201] Aspect 14: A method according to any one of Aspects 6 to 13, wherein generating the multiple TCP ACK message segments includes: generating the multiple TCP ACK message segments based at least in part on the RTT associated with the downlink data packets and uplink data packets of the UE, the PDB associated with the downlink data packets of the UE, the PDB associated with the uplink data packets of the UE, the QOS associated with the downlink data packets of the UE, the QOS associated with the uplink data packets of the UE, the service type associated with the downlink data packets of the UE, or the service type associated with the uplink data packets of the UE, or any combination thereof.
[0202] Aspect 15: A method for performing wireless communications at a UE, comprising: generating at least one TCP ACK message associated with an amount of data based at least in part on a transmit blanking pattern indicating one or more time intervals associated with avoiding the sending of a TCP ACK message, wherein a size of the at least one TCP ACK message is based at least in part on the transmit blanking pattern; and sending the at least one TCP ACK message according to the transmit blanking pattern based at least in part on the generation.
[0203] Aspect 16: The method according to Aspect 15 also includes: receiving a data packet including the amount of data within a time interval of the one or more time intervals associated with avoiding the sending of a TCP ACK message, wherein generating the at least one TCP ACK message is at least partially based on the passage of the time interval.
[0204] Aspect 17: The method according to any one of Aspects 15 to 16 also includes: receiving a data packet in response to the at least one TCP ACK message, wherein the data packet includes a second amount of data, and wherein the second amount of data is at least partially based on the size of the at least one TCP ACK message.
[0205] Aspect 18: A method according to any one of Aspects 15 to 17, wherein the size of the at least one TCP ACK message is further based at least in part on the number of TCP ACK messages buffered at the UE, a machine performance level associated with the UE, a transmit power associated with uplink data packets of the UE, an amount of available bandwidth in the uplink direction, a throughput associated with downlink data packets of the UE, or a burst associated with the downlink data packets of the UE, or any combination thereof.
[0206] Aspect 19: The method according to any one of aspects 15 to 18, wherein the one or more time intervals are periodic or non-periodic.
[0207] Aspect 20: A method according to any one of aspects 15 to 19, wherein the transmit blanking pattern is based at least in part on interference internal to the UE, interference external to the UE, coordinated interference, or notified interference, or any combination thereof.
[0208] Aspect 21: A device for performing wireless communication at a UE, comprising: a processor; a memory coupled to the processor; and one or more instructions, the one or more instructions being stored in the memory and executable by the processor so that the device performs a method according to any one of Aspects 1 to 5 based at least in part on the one or more instructions.
[0209] Aspect 22: An apparatus for wireless communication at a UE, comprising at least one component for performing the method according to any one of aspects 1 to 5.
[0210] Aspect 23: A non-transitory computer-readable medium storing a code for wireless communication at a UE, the code comprising instructions executable by a processor to perform the method according to any one of aspects 1 to 5.
[0211] Aspect 24: An apparatus for performing wireless communications at a UE, comprising: a processor; a memory coupled to the processor; and one or more instructions, the one or more instructions being stored in the memory and executable by the processor to cause the apparatus to perform a method according to any one of Aspects 6 to 14 based at least in part on the one or more instructions.
[0212] Aspect 25: An apparatus for wireless communication at a UE, comprising at least one means for performing a method according to any one of aspects 6 to 14.
[0213] Aspect 26: A non-transitory computer-readable medium storing a code for wireless communication at a UE, the code comprising instructions executable by a processor to perform a method according to any one of aspects 6 to 14.
[0214] Aspect 27: A device for performing wireless communications at a UE, comprising: a processor; a memory coupled to the processor; and one or more instructions, the one or more instructions being stored in the memory and executable by the processor so that the device performs a method according to any one of Aspects 15 to 20 based at least in part on the one or more instructions.
[0215] Aspect 28: An apparatus for wireless communication at a UE, comprising at least one means for performing a method according to any one of aspects 15 to 20.
[0216] Aspect 29: A non-transitory computer-readable medium storing a code for wireless communication at a UE, the code comprising instructions executable by a processor to perform a method according to any one of aspects 15 to 20.
[0217] It should be noted that the methods described herein describe possible implementations, and that the operations and steps may be rearranged or otherwise modified and that other implementations are possible. Furthermore, aspects from two or more methods may be combined.
[0218] Although aspects of LTE, LTE-A, LTE-A Pro, or NR systems may be described for example purposes, and LTE, LTE-A, LTE-A Pro, or NR terminology may be used in much of the description, the techniques described herein may also be applicable to networks other than LTE, LTE-A, LTE-A Pro, or NR networks. For example, the described techniques may be applicable to various other wireless communication systems, such as Ultra Mobile Broadband (UMB), Institute of Electrical and Electronics Engineers (IEEE) 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM, and other systems and radio technologies not explicitly mentioned herein.
[0219] The information and signals described herein may be represented using any of a variety of different technologies and methods. For example, data, instructions, commands, information, signals, bits, symbols, and chips mentioned throughout the specification may be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, optical fields or optical particles, or any combination thereof.
[0220] The various illustrative blocks and components described in conjunction with the disclosure herein may be implemented or performed using a general purpose processor, DSP, ASIC, CPU, FPGA or other programmable logic device, 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 an alternative, the processor may be any processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration).
[0221] The functions described herein may be implemented using hardware, software executed by a processor, firmware, or any combination thereof. If implemented using software executed by a processor, the functions may be stored as one or more instructions or codes of a computer-readable medium, or sent using the one or more instructions or codes. Other examples and specific implementations are within the scope of this disclosure and the appended claims. For example, due to the nature of software, the functions described herein may be implemented using software executed by a processor, hardware, firmware, hard wiring, or any combination of these items. Features that implement the functions may also be physically located at different locations, including being distributed so that parts of the functions are implemented at different physical locations.
[0222] Computer-readable medium includes both non-transient computer storage medium and communication medium, including any medium that facilitates computer program to be transmitted from one position to another position.Non-transient storage medium can be any available medium that can be accessed by general or special-purpose computer.In an example and not limited way, non-transient computer-readable medium can include RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory, compact disc (CD) ROM or other optical disc storage, disk storage or other magnetic storage device, or can be used for carrying or storing desired program code components and can be accessed by general or special-purpose computer or general or special-purpose processor in the form of instruction or data structure Any other non-transient medium.Moreover, any connection is appropriately referred to as computer-readable medium.For example, if software is sent from website, server or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology such as infrared, radio and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL or wireless technology such as infrared, radio and microwave are included in the definition of computer-readable medium. Disks and optical disks used herein include CDs, laser optical disks, optical optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks. Disks can reproduce data magnetically, and optical disks can reproduce data optically using lasers. Combinations of the above are also included within the scope of computer-readable media.
[0223] As used herein (including in the claims), "or" used in a list of items (e.g., a list of items with a phrase such as "at least one of" or "one or more of") indicates an inclusive list, so that, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). In addition, as used herein, the phrase "based on" should not be interpreted as a reference to a closed set of conditions. For example, an example step described as "based on condition A" can be based on condition A and condition B without departing from the scope of the present disclosure. In other words, as used herein, the phrase "based on" should be interpreted in the same manner as the phrase "based at least in part on."
[0224] The term "determining" encompasses a variety of actions, and thus, "determining" may include calculating, computing, processing, deriving, investigating, looking up (such as via looking up in a table, database or other data structure), ascertaining, etc. Additionally, "determining" may include receiving (e.g., receiving information), accessing (e.g., accessing data stored in a memory), etc. Additionally, "determining" may include parsing, retrieving, selecting, choosing, establishing, and other such similar actions.
[0225] In the drawings, similar components or features may have the same reference label. In addition, various components of the same type may be distinguished by following the reference label with a dash and a second label to distinguish between similar components. If only the first reference label is used in the specification, the description may apply to any of the similar components having the same first reference label regardless of the second reference label, or other subsequent reference labels.
[0226] The descriptions set forth herein in conjunction with the accompanying drawings describe example configurations and do not represent all examples that may be implemented or within the scope of the claims. The term "example" as used herein means "used as an example, instance, or illustration," rather than "preferred" or "having advantages over other examples." The specific embodiments include specific details to provide an understanding of the described technology. However, these technologies may be practiced without these specific details. In some instances, known structures and devices are shown in block diagram form to avoid obscuring the concepts of the described examples.
[0227] The description herein is provided to enable one of ordinary skill in the art to implement or use the present disclosure. Various modifications to the present disclosure will be apparent to one of ordinary skill in the art, and the general principles defined herein may be applied to other variations without departing from the scope of the present disclosure. Thus, the present disclosure is not limited to the examples and designs described herein, but should be granted the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for wireless communication at a user equipment (UE), comprising: generating at least one TCP acknowledgment message based on a delay timer and at least in part on a threshold acknowledgment size for a TCP acknowledgment message; as well as The at least one TCP acknowledgment message is sent based at least in part on the generating.
2. The method of claim 1, wherein the duration of the delay timer is based at least in part on a downlink data pattern associated with downlink data packets of the UE and an uplink scheduling pattern associated with uplink data packets of the UE.
3. The method of claim 1 , wherein generating the at least one TCP acknowledgment message according to the delay timer comprises: The at least one TCP acknowledgment message is generated in response to expiration of a duration of the delay timer, wherein the at least one TCP acknowledgment message is sent after expiration of the duration of the delay timer.
4. The method of claim 1 , wherein generating the at least one TCP acknowledgment message according to the delay timer comprises: The at least one TCP acknowledgment message is generated based at least in part on a number of TCP acknowledgment messages in a buffer of the UE.
5. The method according to claim 1, further comprising: The duration of the delay timer is determined at least in part based on a round-trip time associated with the TCP at the UE, a time duration for receiving data packets at the UE, a delay confirmation timer associated with sending the at least one TCP confirmation message, an amount of data associated with the at least one TCP confirmation message, one or more TCP parameters associated with the TCP at the UE, or a processing time associated with the at least one TCP confirmation message, or any combination thereof.
6. A method for wireless communication at a user equipment (UE), comprising: receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first Transmission Control Protocol (TCP) acknowledgment message and the second data packet being associated with a second TCP acknowledgment message; generating a plurality of TCP acknowledgment message segments corresponding to the first TCP acknowledgment message and the second TCP acknowledgment message based at least in part on a threshold acknowledgment size for TCP acknowledgment message segments, wherein the plurality of TCP acknowledgment message segments correspond to feedback of the first amount of data and the second amount of data; and The plurality of TCP acknowledgment message segments are sent based at least in part on the generating. 7 . The method of claim 6 , wherein a TCP acknowledgment message segment of the plurality of TCP acknowledgment message segments corresponds to feedback of a corresponding portion of a third amount of data including the first amount of data and the second amount of data.
8. The method of claim 6, wherein the first TCP acknowledgment message and the second TCP acknowledgment message comprise selective acknowledgment messages.
9. The method of claim 6, wherein a first set of TCP acknowledgment message segments in the plurality of TCP acknowledgment message segments corresponds to feedback on corresponding portions of the first amount of data, and a second set of TCP acknowledgment message segments in the plurality of TCP acknowledgment message segments corresponds to feedback on corresponding portions of the second amount of data.
10. The method of claim 6, wherein generating the plurality of TCP acknowledgment message segments is further based at least in part on a downlink data pattern associated with downlink data packets of the UE and an uplink scheduling pattern associated with uplink data packets of the UE.
11. The method according to claim 6, further comprising: One or more parameters associated with the first data packet and the second data packet are updated based at least in part on generating the plurality of TCP acknowledgment message segments, wherein sending the plurality of TCP acknowledgment message segments is based at least in part on the updating.
12. The method of claim 6, wherein generating the plurality of TCP acknowledgment message segments comprises: The multiple TCP acknowledgment message segments are generated based at least in part on a radio access technology associated with the UE, a throughput associated with downlink data packets of the UE, a time associated with layer 2 window management, or a discontinuous reception mode associated with the UE, or any combination thereof.
13. The method of claim 6, wherein generating the plurality of TCP acknowledgment message segments comprises: The multiple TCP acknowledgment message segments are generated at least in part based on the number of data streams associated with the downlink data packets of the UE, the number of data streams associated with the uplink data packets of the UE, one or more TCP parameters associated with TCP at the UE, the transmit power associated with the uplink data packets of the UE, or the uplink grant mode associated with the uplink data packets of the UE, or any combination thereof.
14. The method of claim 6, wherein generating the plurality of TCP acknowledgment message segments comprises: The multiple TCP acknowledgment message segments are generated at least in part based on a round-trip time associated with downlink data packets and uplink data packets of the UE, a packet delay budget associated with the downlink data packets of the UE, a packet delay budget associated with the uplink data packets of the UE, a quality of service associated with the downlink data packets of the UE, a quality of service associated with the uplink data packets of the UE, a traffic type associated with the downlink data packets of the UE, or a traffic type associated with the uplink data packets of the UE, or any combination thereof.
15. A method for wireless communication at a user equipment (UE), comprising: generating at least one TCP acknowledgment message associated with the amount of data based at least in part on a transmit blanking pattern indicating one or more time intervals associated with avoiding transmission of a TCP acknowledgment message, wherein a size of the at least one TCP acknowledgment message is based at least in part on the transmit blanking pattern; and The at least one TCP acknowledgment message is sent according to the send blanking pattern based at least in part on the generating.
16. The method according to claim 15, further comprising: A data packet including the amount of data is received within a time interval of the one or more time intervals associated with avoiding sending of TCP acknowledgment messages, wherein generating the at least one TCP acknowledgment message is based at least in part on the time interval lapse.
17. The method according to claim 15, further comprising: A data packet is received in response to the at least one TCP acknowledgment message, wherein the data packet includes a second amount of data, and wherein the second amount of data is based at least in part on the size of the at least one TCP acknowledgment message.
18. The method of claim 15, wherein the size of the at least one TCP acknowledgment message is further based at least in part on a number of TCP acknowledgment messages buffered at the UE, a machine performance class associated with the UE, a transmit power associated with uplink data packets of the UE, an amount of available bandwidth in an uplink direction, a throughput associated with downlink data packets of the UE, or a burst associated with the downlink data packets of the UE, or any combination thereof. The method of claim 15 , wherein the one or more time intervals are periodic or aperiodic.
20. The method of claim 15, wherein the transmit blanking pattern is based at least in part on interference internal to the UE, interference external to the UE, coordinated interference, or announced interference, or any combination thereof.
21. An apparatus for wireless communication at a user equipment (UE), comprising: processor; a memory coupled to the processor; and one or more instructions stored in the memory and executable by the processor to cause the apparatus to: receiving a first data packet including a first amount of data and a second data packet including a second amount of data, the first data packet being associated with a first Transmission Control Protocol (TCP) acknowledgment message and the second data packet being associated with a second TCP acknowledgment message; generating a plurality of TCP acknowledgment message segments corresponding to the first TCP acknowledgment message and the second TCP acknowledgment message based at least in part on a threshold acknowledgment size for TCP acknowledgment message segments, wherein the plurality of TCP acknowledgment message segments correspond to feedback of the first amount of data and the second amount of data; and The plurality of TCP acknowledgment message segments are sent based at least in part on the generating.
22. The apparatus of claim 21, wherein a TCP acknowledgment message segment of the plurality of TCP acknowledgment message segments corresponds to feedback of a corresponding portion of a third amount of data including the first amount of data and the second amount of data.
23. The apparatus of claim 21, wherein the first TCP acknowledgment message and the second TCP acknowledgment message comprise selective acknowledgment messages.
24. The apparatus of claim 21, wherein a first set of TCP acknowledgment message segments in the plurality of TCP acknowledgment message segments corresponds to feedback for a corresponding portion of the first amount of data, and a second set of TCP acknowledgment message segments in the plurality of TCP acknowledgment message segments corresponds to feedback for a corresponding portion of the second amount of data.
25. The apparatus of claim 21, wherein generating the plurality of TCP acknowledgment message segments is further based at least in part on a downlink data pattern associated with downlink data packets of the UE and an uplink scheduling pattern associated with uplink data packets of the UE.
26. The apparatus of claim 21, wherein the one or more instructions are further executable by the processor to cause the apparatus to, based at least in part on the one or more instructions: One or more parameters associated with the first data packet and the second data packet are updated based at least in part on generating the plurality of TCP acknowledgment message segments, wherein sending the plurality of TCP acknowledgment message segments is based at least in part on the updating.
27. The apparatus of claim 21, wherein the one or more instructions for generating the plurality of TCP acknowledgment message segments are executable by the processor to cause the apparatus to, based at least in part on the one or more instructions: The multiple TCP acknowledgment message segments are generated based at least in part on a radio access technology associated with the UE, a throughput associated with downlink data packets of the UE, a time associated with layer 2 window management, or a discontinuous reception mode associated with the UE, or any combination thereof.
28. The apparatus of claim 21, wherein the one or more instructions for generating the plurality of TCP acknowledgment message segments are executable by the processor to cause the apparatus to, based at least in part on the one or more instructions: The multiple TCP acknowledgment message segments are generated at least in part based on the number of data streams associated with the downlink data packets of the UE, the number of data streams associated with the uplink data packets of the UE, one or more TCP parameters associated with TCP at the UE, the transmit power associated with the uplink data packets of the UE, or the uplink grant mode associated with the uplink data packets of the UE, or any combination thereof.
29. The apparatus of claim 21, wherein the one or more instructions for generating the plurality of TCP acknowledgment message segments are executable by the processor to cause the apparatus to, based at least in part on the one or more instructions: The multiple TCP acknowledgment message segments are generated at least in part based on a round-trip time associated with downlink data packets and uplink data packets of the UE, a packet delay budget associated with the downlink data packets of the UE, a packet delay budget associated with the uplink data packets of the UE, a quality of service associated with the downlink data packets of the UE, a quality of service associated with the uplink data packets of the UE, a traffic type associated with the downlink data packets of the UE, or a traffic type associated with the uplink data packets of the UE, or any combination thereof.