Method and system for managing uplink buffers at user equipment in tethered call mode

By modifying the receiver window size in the synchronization confirmation message, the user equipment optimized buffer management, solved the problem of insufficient buffer available space adjustment, and improved communication efficiency.

CN116530109BActive Publication Date: 2026-03-27QUALCOMM INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-15
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

In the prior art, when users are equipped with buffers between devices that manage network connections, they cannot effectively adjust the available space of the receive buffer, resulting in low communication efficiency.

Method used

User equipment optimizes buffer management and ensures efficient data transmission by receiving and modifying the application server receiver window size in the SYN-ACK message.

Benefits of technology

It improves the data transmission efficiency between user equipment and network devices, and enhances the overall performance of the communication system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116530109B_ABST
    Figure CN116530109B_ABST
Patent Text Reader

Abstract

Wireless communications systems and methods related to uplink buffer management are provided. In some aspects, a user equipment receives a synchronization acknowledgement message that is destined for a device tethered to the user equipment and transmitted by an application server at a network to which the user equipment is connected. In some aspects, the synchronization acknowledgement message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. The user equipment can modify the application server receiver window size in the received synchronization acknowledgement message before transmitting the received synchronization acknowledgement to the tethered device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority and benefit to U.S. Patent Application No. 17525303, filed November 12, 2021, and U.S. Provisional Patent Application No. 63 / 198,914, filed November 20, 2020, the entire contents of which are hereby incorporated by reference as fully set forth below and for all applicable purposes. Technical Field

[0003] This disclosure generally relates to communication systems, and more particularly to buffer management at user equipment connected to personal devices.

[0004] introduction

[0005] Wireless communication systems are widely deployed to provide a variety of telecommunications services such as telephone, video, data, messaging, and broadcasting. These systems can support communication with multiple users by sharing available system resources (e.g., time, frequency, and power). Wireless multiple access communication systems may include several base stations (BSs), each supporting communication from multiple communication devices simultaneously, which may also be referred to as user equipment (UEs).

[0006] These multiple access technologies have been adopted in various telecommunications standards to provide a common protocol that enables different wireless devices to communicate at the city, country, region, and even global levels. Examples of such telecommunications standards include the 5G New Radio (NR) standard and the 4G Long Term Evolution (LTE) standard.

[0007] Overview

[0008] The following provides a brief overview of one or more aspects to offer a basic understanding of such aspects. This overview is not an exhaustive summary of all conceived aspects, nor is it intended to identify the key or decisive elements of all aspects, nor to define the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as an introduction to the more detailed description that follows.

[0009] Some aspects of the present disclosure disclose a method of wireless communication performed by a user equipment (UE). In some aspects, the method includes receiving a synchronization acknowledgement (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, the method includes modifying the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK to the tethered device.

[0010] In some aspects, a user equipment (UE) includes a memory; a transceiver; and at least one processor coupled to the memory and the transceiver. In some aspects, the transceiver is configured to receive a synchronization acknowledgement (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, in some aspects, the at least one processor is configured to modify the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK to the tethered device.

[0011] In some aspects, a non-transitory computer-readable medium (CRM) has program code recorded thereon for wireless communication by a user equipment (UE). In some aspects, the program code includes code for causing the UE to receive a synchronization acknowledgement (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, in some aspects, the program code includes code for causing the UE to modify the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK to the tethered device.

[0012] In some aspects, a user equipment (UE) includes means for receiving a synchronization acknowledgement (SYN-ACK) message that is destined to a device tethered to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, in some aspects, the UE includes means for modifying the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK to the tethered device.

[0013] To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects can be employed, and this description is intended to include all such aspects and their equivalents. BRIEF DESCRIPTION OF DRAWINGS

[0015] Figure 1 is a diagram illustrating an example wireless communications system and access network, in accordance with some aspects of the disclosure.

[0016] Figure 2 is a diagram illustrating tethering a device to a UE, in accordance with some aspects of the disclosure.

[0017] Figure 3 is a diagram illustrating an example of a base station (BS) and a user equipment (UE) in an access network, in accordance with some aspects of the disclosure.

[0018] Figure 4 is a block diagram illustrating an example architecture of a UE connected to a tethered device, in accordance with some aspects of the disclosure.

[0019] Figure 5 is a signaling diagram illustrating uplink (UL) buffer management by a UE connected to a tethered device, in accordance with some aspects of the disclosure.

[0020] Figure 6 is a flow diagram of a method of wireless communication, in accordance with some aspects of the disclosure.

[0021] Figure 7 is a diagram illustrating an example hardware implementation for a UE employing a processing system, in accordance with some aspects of the disclosure.

[0022] DETAILED DESCRIPTION

[0023] The detailed description set forth below, in connection with the appended drawings and embodiments described theriin, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein can be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts can be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring the concepts being described.

[0024] Several aspects of telecommunication systems will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, components, circuits, processes, algorithms, etc. (collectively referred to as "elements"). These elements can be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends on the specific application and design constraints imposed on the overall system.

[0025] By way of example, an element, or any portion of an element, or any combination of elements can be implemented as a "processing system" that includes one or more processors. Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs), central processing units (CPUs), application processors, digital signal processors (DSPs), reduced instruction set computing (RISC) processors, systems on a chip (SoC), baseband processors, field programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system can execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.

[0026] Accordingly, in one or more example aspects, the functions described can be implemented in hardware, software, or any combination thereof. If implemented in software, the functions can be stored on or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media can be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable ROM (EEPROM), compact disk ROM (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable instructions or data structures accessed by a computer.

[0027] Figure 1 is a diagram illustrating an example of a wireless communications system and an access network 100, in accordance with some aspects of the present disclosure. The wireless communications system, which can be a wireless wide area network (WW AN), includes base stations 102, UEs 104, an Evolved Packet Core (EPC) 160, and another core network 190 (e.g., a 5G Core (5GC)). Base stations 102 can include macro cells (high power cellular base stations) and / or small cells (low power cellular base stations). Macro cells can include base stations. Small cells can include femtocells, picocells, and microcells.

[0028] Base stations 102 configured for 4G LTE (collectively referred to as the Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN)) can interface with the EPC 160 through backhaul links 132 (e.g., an SI interface). Base stations 102 configured for 5G NR (collectively referred to as Next Generation RAN (NG-RAN)) can interface with core network 190 through backhaul links 184. In addition to other functions, the base stations 102 can also perform one or more of the following functions: transfer of user data, radio channel ciphering and deciphering, integrity protection, header compression, mobility control functions (e.g., handover, dual connectivity), inter-cell interference coordination, connection setup and release, load balancing, distribution for non-access stratum (NAS) messages, NAS node selection, synchronization, radio access network (RAN) sharing, multimedia broadcast multicast service (MBMS), subscriber and equipment trace, RAN information management (RIM), paging, positioning, and delivery of warning messages. The base stations 102 can communicate directly or indirectly (e.g., through the EPC 160 or core network 190) with each other over backhaul links 134 (e.g., an X2 interface). The backhaul links 134 can be wired or wireless.

[0029] The base stations 102 can wirelessly communicate with the UEs 104. Each of the base stations 102 can provide communication coverage for a respective geographic coverage area 110. There can be overlapping geographic coverage areas 110. For example, a small cell 102' can have a coverage area 110' that overlaps with one or more macrocells 102. A network that includes both small cell and macrocells can be known as a heterogeneous network. A heterogeneous network can also include Home Evolved Node Bs (eNBs) (HeNBs), which can provide service to a restricted group known as a closed subscriber group (CSG). The communication links 120 between the base stations 102 and the UEs 104 can include uplink (UL) (also referred to as reverse link) transmissions from a UE 104 to a base station 102 and / or downlink (DL) (also referred to as forward link) transmissions from a base station 102 to a UE 104. The communication links 120 can use multiple-input and multiple-output (MIMO) antenna technology, including spatial multiplexing, beamforming, and / or transmit diversity. These communication links can be through one or more carriers, where a carrier can be a set of

[0030] Certain UEs 104 can communicate using device-to-device (D2D) communication link 158. The D2D communication link 158 can use the DL / UL WWAN spectrum. The D2D communication link 158 can use one or more sidelink channels, such as a physical sidelink broadcast channel (PSBCH), a physical sidelink discovery channel (PSDCH), a physical sidelink shared channel (PSSCH), and a physical sidelink control channel (PSCCH). D2D communication can be through a variety of wireless D2D communications systems, such as for example, FlashLinQ, WiMedia, Bluetooth, ZigBee, Wi-Fi based on the IEEE 802.11 standard, LTE, or NR.

[0031] In some cases, some UEs can obtain or establish a connection to a radio network via another UE, i.e., these devices can be tethered to the other device (e.g., tethered UEs can lack their own direct connection to a radio network or can prefer a connection to a radio network via a tethered UE, e.g., because of a stronger or cheaper connection). For example, Figure 2 An example diagram illustrating tethering of a device 206, such as a personal computer (PC), to a UE 204 is shown. In some aspects, the UE 204 can be connected to a base station (BS) 202 in a tethered call mode, where data is exchanged between a client or application in the tethered device 206 and a client or application in an application server that is communicating with the tethered device 206 via the UE 204 (and its connection 208 to the BS 202). In some aspects, the tethered device 210 can be connected to the UE 204 via a communication link, such as, but not limited to, a Universal Serial Bus (USB) cable, an Ethernet cable, connection, or connection. In some cases, the UE 204 effectively acts as a modem for communications between the tethered device 206 and the BS 202 (as well as an application server that is executing an application for communication with the tethered device 206 via the UE 204). In some aspects, the tethered device 206 can be a cellular phone, a smart phone, a Session Initiation Protocol (SIP) phone, a laptop, a personal digital assistant (PDA), a satellite radio, a global positioning system, a multimedia device, a video device, a digital audio player (e.g., MP3 player), a camera, a game console, a tablet, a smart device, a wearable device, a vehicle, an electric meter, a gas pump, a large or small kitchen appliance, a health care device, an implant, a sensor / actuator, a display, or any other similar functional device.

[0032] In some aspects, the UE 204 or modem can maintain a buffer to regulate data being exchanged between the tethered device 206 and the BS 202. In some cases, the UE 204 or modem can maintain a buffer to have enough data to indicate a buffer status report (BSR) to the BS 202, e.g., to receive a grant from the BS 202 to communicate data to the BS 202. In some aspects, the UE 204 can also maintain a flow control (FC) mechanism to manage the flow of data between the UE 204 or modem and the tethered device 206 (e.g., with a client or application executing thereon and communicating with the BS 202). For example, the UE 204 or modem can include an FC component (e.g., Figure 4FC 414 in the UE 204), which manages the amount of data in the buffer in the UE 204 being exchanged between the tethering device 206 and the BS 202.

[0033] Now turning back to Figure 1 In some aspects, the wireless communications system can further include a Wi-Fi access point (AP) 150 in communication with Wi-Fi stations (STAs) 152 via communication links 154 in a 5 GHz unlicensed spectrum. When communicating in an unlicensed spectrum, the STAs 152 / AP 150 can perform a clear channel assessment (CCA) prior to communicating in order to determine whether the channel is available.

[0034] The small cell 102' can operate in a licensed and / or an unlicensed frequency spectrum. When operating in an unlicensed frequency spectrum, the small cell 102' can employ NR and use the same 5 GHz unlicensed spectrum as used by the Wi-Fi AP 150. The small cell 102' employing NR in an unlicensed spectrum can boost coverage and / or increase capacity for the access network.

[0035] Whether a small cell 102' or a large cell (e.g., macro base station), the base station 102 can include an eNB, gNodeB (gNB), or another type of base station. Some base stations, such as gNB 180, can operate in a traditional sub 6 GHz spectrum, in millimeter wave (mmW) frequencies, and / or near mmW frequencies in communication with the UE 104. When the gNB 180 operates in mmW or near mmW frequencies, the gNB 180 can be referred to as a mmW base station. Extremely high frequency (EHF) is a portion of the RF in the electromagnetic spectrum. EHF has a range from 30 GHz to 300 GHz and a wavelength between 1 millimeter and 10 millimeters. Radio waves in this band can be referred to as a millimeter wave. Near mmW can extend down to a frequency of 3 GHz with a wavelength of 100 millimeters. The super high frequency (SHF) band extends between 3 GHz and 30 GHz, also referred to as centimeter wave. Communications using the mmW / near mmW radio frequency band (e.g., 3 GHz - 300 GHz) has extremely high path loss and a short range. The mmW base station 180 can utilize beamforming 182 with the UE 104 to compensate for the extremely high path loss and short range.

[0036] The base stations 180 can transmit to the UEs 104 on one or more transmission directions 182'. The UEs 104 can receive the beamformed signals from the base stations 180 on one or more reception directions 182". The UEs 104 can also transmit to the base stations 180 on one or more transmission directions. The base stations 180 can receive the beamformed signals from the UEs 104 on one or more reception directions. The base stations 180 / UEs 104 can perform beam training to determine the best reception and transmission directions for each of the base stations 180 / UEs 104. The transmission and reception directions for the base stations 180 can or can not be

[0037] The EPC 160 can include a mobility management entity (MME) 162, other MMEs 164, a serving gateway 166, a multimedia broadcast multicast service (MBMS) gateway 168, a broadcast multicast service center (BM-SC) 170, and a packet data network (PDN) gateway 172. The MME 162 can be in communication with a home subscriber server (HSS) 174. The MME 162 is the control node that processes the signaling between the UEs 104 and the EPC 160. Generally, the MME 162 provides bearer and connection management. All user Internet protocol (IP) packets are transferred through the serving gateway 166, which itself is connected to the PDN gateway 172. The PDN gateway 172 provides UE IP address allocation as well as other functions. The PDN gateway 172 and the BM-SC 170 are connected to the IP services 176. The IP services 176 can include the Internet, an intranet, an IP multimedia subsystem (IMS), a PS streaming service, and / or other IP services. The BM-SC 170 can provide functions for MBMS user service provisioning and

[0038] The core network 190 can include a Access and Mobility Management Function (AMF) 192, other AMFs 193, a Session Management Function (SMF) 194, and a User Plane Function (UPF) 195. The AMF 192 can be in communication with a Unified Data Management (UDM) 196. The AMF 192 is the control node that processes the signaling between the UEs 104 and the core network 190. Generally, the AMF 192 provides QoS flow and session management. All user Internet protocol (IP) packets are transferred through the UPF 195. The UPF 195 provides UE IP address allocation as well as other functions. The UPF 195 is connected to the IP Services 197. The IP Services 197 can include the Internet, an intranet, an IP Multimedia Subsystem (IMS), a PS Streaming Service, and / or other IP services.

[0039] A base station can also be referred to as a gNB, Node B, evolved Node B (eNB), an access point, a base transceiver station, a radio base station, a radio transceiver, a transceiver function, a basic service set (BSS), an extended service set (ESS), a transmit receive point (TRP), or some other suitable terminology. The base stations 102 provide

[0040] While the present disclosure and annexed drawings can focus on 5G New Radio (NR), the concepts described herein can be applicable to other similar areas, such as LTE, LTE-Advanced (LTE-A), Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), and / or other wireless / radio access technologies.

[0041] Figure 3is a block diagram of a base station (BS) 310 in communication with a UE 350 in an access network, in accordance with some aspects of the present disclosure. In the DL, IP packets from the EPC 160 can be provided to a controller / processor 375. The controller / processor 375 implements layer 3 and layer 2 functionality. Layer 3 includes a radio resource control (RRC) layer, and layer 2 includes a service data adaptation protocol (SDAP) layer, a packet data convergence protocol (PDCP) layer, a radio link control (RLC) layer, and a medium access control (MAC) layer. The controller / processor 375 provides RRC layer functionality associated with broadcasting of system information (e.g., MIB, SIBs), RRC connection control (e.g., RRC connection paging, RRC connection establishment, RRC connection modification, and RRC connection release), inter radio access technology (RAT) mobility, and measurement configuration and reporting for UE measurement reporting; PDCP layer functionality associated with header compression / decompression, security (ciphering, deciphering, integrity protection, integrity verification), and handover support functions; RLC layer functionality associated with the transfer of upper layer packet data units (PDUs), error correction through ARQ, concatenation, segmentation, and reassembly of RLC service data units (SDUs), re-segmentation of RLC data PDUs, and reordering of RLC data PDUs; and MAC layer functionality associated with mapping between logical channels and transport channels, multiplexing of MAC SDUs onto transport blocks (TBs), demultiplexing of MAC SDUs from TBs, scheduling information reporting, error correction through HARQ, priority handling, and logical channel prioritization.

[0042] The transmit (TX) processor 316 and the receive (RX) processor 370 implement layer 1 functionality associated with various signal processing functions. Layer 1, which includes a physical (PHY) layer, can include error detection on the transport channels, forward error correction (FEC) coding / decoding of the transport channels, interleaving, rate matching, mapping to physical channels, modulation / demodulation of physical channels, and MIMO antenna processing. The TX processor 316 handles mapping to signal constellations based on various modulation schemes (e.g., binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), M-phase-shift keying (M-PSK), M-quadrature amplitude modulation (M-QAM)). The coded and modulated symbols can then be split into parallel streams. Each stream can then be mapped to a OFDM subcarrier, multiplexed with a reference signal (e.g., pilot) and then combined together using an Inverse Fast Fourier Transform (IFFT) to produce a physical channel carrying a time domain OFDM symbol stream. The OFDM stream is spatially precoded to produce multiple spatial streams. Channel estimates from a channel estimator 374 can be used to determine the coding and modulation schemes, as well as for spatial processing. The channel estimate can be derived from a reference signal and / or channel condition feedback transmitted by the UE 350. Each spatial stream can then be provided to a different antenna 320 via a separate transmitter 318TX. Each transmitter 318TX can modulate a respective spatial stream onto a RF carrier at a desired output frequency channel.

[0043] At the UE 350, each receiver 354RX receives a signal through its respective antenna 352. Each receiver 354RX recovers information modulated onto an RF carrier and provides the information to the receive (RX) processor 356. The TX processor 368 and the RX processor 356 implement layer 1 functionality associated with various signal processing functions. The RX processor 356 can perform spatial processing on the information to recover any spatial streams destined for the UE 350. If multiple spatial streams are destined for the UE 350, they can be combined by the RX processor 356 into a single OFDM symbol stream. The RX processor 356 then converts the OFDM symbol stream from the time-domain to the frequency domain using a Fast Fourier Transform (FFT). The frequency domain signal comprises a separate OFDM symbol stream for each subcarrier of the OFDM signal. The symbols on each subcarrier, and the reference signal, are recovered and demodulated by determining the most likely signal constellation points transmitted by the base station 310. These soft decisions can be based on channel estimates computed by the channel estimator 358. The soft decisions are then decoded and deinterleaved to recover the data and control signals that were originally transmitted by the base station 310 on the physical channel. The data and control signals are then provided to the controller / processor 359, which implements layer 3 and layer 2 functionality.

[0044] The controller / processor 359 can be associated with a memory 360 that stores program codes and data. The memory 360 can be referred to as a computer-readable medium. In the UL, the controller / processor 359 provides demultiplexing between transport and logical channels, packet reassembly, deciphering, header decompression, and control signal processing to recover IP packets from the EPC 160. The controller / processor 359 is also responsible for error detection using an ACK and / or NACK protocol to support HARQ operations.

[0045] Similar to the functionality described in connection with the DL transmission by the base station 310, the controller / processor 359 provides RRC layer functionality associated with system information (e.g., MIB, SIBs) acquisition, RRC connections, and measurement reporting; PDCP layer functionality associated with header compression / decompression, and security (ciphering, deciphering, integrity protection, integrity verification); RLC layer functionality associated with the transfer of upper layer PDUs, error correction through ARQ, concatenation, segmentation, and reassembly of RLC SDUs, re-segmentation of RLC data PDUs, and reordering of RLC data PDUs; and MAC layer functionality associated with mapping between logical channels and transport channels, multiplexing of MAC SDUs onto TBs, demultiplexing of MAC SDUs from TBs, scheduling information reporting, error correction through HARQ, priority handling, and logical channel prioritization.

[0046] Channel estimates derived by the channel estimator 358 from a reference signal or feedback transmitted by the base station 310 can be used by the TX processor 368 to select the appropriate coding and modulation schemes, and to facilitate spatial processing. The spatial streams generated by the TX processor 368 can be provided to different antenna 352 via separate transmitters 354TX. Each transmitter 354TX can modulate an RF carrier with a respective spatial stream for transmission.

[0047] The UL transmission is processed at the base station 310 in a manner similar to that described in connection with the receiver function at the UE 350. Each receiver 318RX receives a signal through its respective antenna 320. Each receiver 318RX recovers information modulated onto an RF carrier and provides the information to a RX processor 370.

[0048] The controller / processor 375 can be associated with a memory 376 that stores program codes and data. The memory 376 can be referred to as a computer- readable medium. In the UL, the controller / processor 375 provides demultiplexing between transport and logical channels, packet reassembly, deciphering, header decompression, control signal processing to recover IP packets from the UE 350. IP packets from the controller / processor 375 can be provided to the EPC 160. The controller / processor 375 is also responsible for error detection using an ACK and / or NACK protocol to support HARQ operations.

[0049] According to various aspects of the disclosure, at least one of the TX processor 368, the RX processor 356, and / or the controller / processor 359 can be configured to perform the operations described with reference to the Figure 1 Aspects in connection with the combined. For example, the RX processor 356 can receive a synchronization acknowledgement (SYN-ACK) message that is destined to a device tied to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message can include an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, in some aspects, the controller / processor 359 can modify the receiver window size in the received SYN-ACK message prior to retransmitting (e.g., forwarding, transmitting, communicating, etc.) the received SYN-ACK to the tied device.

[0050] Figure 4 is a block diagram illustrating an example architecture of a UE 400 connected to a tied device 405 in accordance with some aspects of the disclosure. The architecture of the UE 400 can include multiple protocol stack layers, including a first layer 402 and a second layer 404. While the architecture of the UE 400 illustrates two layers, additional and / or different layers can be present in different aspects without departing from the scope of the disclosure.

[0051] The first layer 402 can include L2 functionality, such as a PDCP layer, an RLC layer, and / or a MAC layer. For example, the first layer 402 can include a MAC component 410, which can implement various functionality of the MAC layer. In some aspects, the first layer 402 can include more than one layer, including a layer 3 (L3), an L2, and / or a layer 1 (LI) (e.g., the LI can include a PHY layer). For example, the first layer 402 can represent one or more layers that are lower in a protocol stack of the architecture of the UE 400 than the second layer 404.

[0052] Illustratively, the first layer 402 can include a flow control (FC) component 414. The FC component 414 can be implemented in hardware, software, firmware, or a combination thereof. The FC component 414 can manage at least a portion of the flow of data between the first layer 402 and the second layer 404. For example, the FC component 414 can control the flow of packets from the second layer 404 to the first layer 402.

[0053] The first layer 402 can further include a MAC component 410. The MAC component 410 can be implemented in hardware, software, firmware, or a combination thereof. The MAC component 410 can encapsulate data (e.g., packets) from the uplink buffer 412 in TBs transmitted during a transmission time interval (TTI) scheduled according to an uplink grant.

[0054] The second layer 404 can include at least one layer implemented in accordance with a protocol above the first layer 402. For example, the second layer 404 can include an application layer. Accordingly, the second layer 404 can include an application 444 whose instructions can be executed by an application processor (AP) 440.

[0055] Each of the first layer 402 and the second layer 404 can include a memory in which data is queued for transmission over a wireless network. According to various aspects, the first layer 402 can include an uplink buffer 412, a retransmission queue 462, and an L2 pipeline queue 464. The uplink buffer 412 can include an L2 buffer and / or a modem buffer that can queue data for encapsulation in MAC TBs, and thus, the uplink buffer 412 can be configured to queue data received from a higher layer (e.g., the second layer 404) for transmission over a wireless network. The retransmission queue 462 can be configured to queue data to be retransmitted, such as dropped, corrupted, and / or negatively acknowledged (e.g., NACKed) packets. The L2 pipeline queue 464 can be configured to queue lower layer(s) (e.g., the first layer 402) data to be transmitted over a wireless network, such as uplink control information, HARQ ACK / NACK data, and the like. The aggregated data in the uplink buffer 412, the retransmission queue 462, and the L2 pipeline queue 464 can be collectively referred to as L2 data.

[0056] At the second tier 404, the AP 440 can be communicatively coupled with an AP-accessible memory 442. The AP-accessible memory 442 can queue data (e.g., packets) to be communicated on the wireless network, e.g., for an application 444. The data queued in the AP-accessible memory 442 can include application data 476 generated in association with the execution of the application 444 by the AP 440. In some cases, the data queued in the AP-accessible memory 442 can include the application data 411 or other data associated with the tethered device 405 (e.g., when data is communicated between the tethered device 405 and an application server via the UE 400).

[0057] The AP-accessible memory 442 can have a capacity that is greater than the uplink buffer 412. For example, the AP-accessible memory 442 can be configured to queue about two megabytes (MB) or three MB of data, while the uplink buffer 412 can be configured to queue about 512 kilobytes (KB) of data. However, other capacities are possible in other aspects.

[0058] In an aspect, the AP-accessible memory 442 can include a double data rate (DDR) synchronous dynamic random access memory (SDRAM) 446a. The DDR SDRAM 446a can be attached to a system cache 446b. The AP 440 can be configured to queue the application data 476 in the system cache 446b and defer queuing the application data 476 in the DDR SDRAM 446a (e.g., until the system cache 446b is flushed).

[0059] In an aspect, the AP-accessible memory 442 can additionally or alternatively include an on-chip memory 446c. The AP 440 can be configured to queue the application data 476 in the on-chip memory 446c. The on-chip memory 446c can be used as an addition and / or replacement of the system cache 446b if the system cache 446b is limited (e.g., due to current operations, such as video / graphics processing of the UE 400). For example, the on-chip memory 446c can provide overflow support when the system cache 446b reaches or approaches capacity. That is, the AP 440 can queue the application data 476 in the system cache 446b until the system cache 446b reaches or approaches capacity, and then the AP 440 can switch to queue the application data 476 in the on-chip memory 446c (e.g., until the system cache 446b is flushed).

[0060] In some aspects, tethered device 405 can be tethered to UE 400 such that the tethered device can use UE 400 as a modem to connect to a network or base station to which UE 400 is connected and exchange data with external or remote application devices via the BS. In some aspects, tethered device 405 can include an application layer. For example, tethered device 405 can include an application 409 whose instructions can be executed by an application processor (AP) 407. AP 407 can also be communicatively coupled with an AP-accessible memory (not shown). The AP-accessible memory can queue data (e.g., packets) to be transmitted over a communication link (e.g., linking or tethering the tethered device to the UE) for delivery of the queued data to an external or remote application server via UE 400. The data queued in the AP-accessible memory can include application data 411 generated in association with the execution of application 409 by AP 407. For example, the data can be a transmission control protocol (TCP) acknowledgement (ACK) message generated in response to TCP data packets received at tethered device 405 in a downlink transmission from the external or remote application server via the BS and UE 400.

[0061] The size or amount of data queued in memory can be referred to as a watermark (WM). Each WM can be expressed in byte size (e.g., bytes, kB, and / or MB), and a corresponding WM can correspond to the size of data currently queued in the AP-accessible memory 442 or one of the memory of tethered device 405, uplink buffer 412, retransmission queue 462, or L2 pipeline queue 464. For example, the size of data in uplink buffer 412 can be referred to as an uplink WM 470, and uplink WM 470 can fluctuate as uplink buffer 412 is emptied and refilled.

[0062] In some aspects, a plurality of thresholds can be configured in association with uplink buffer 412. For example, uplink buffer 412 can be configured with a high threshold 420a, a low threshold 420b, and / or a do not exceed (DNE) threshold 420c. One or more of these thresholds 420a-c can be configured by a 3GPP mode handler based on RRC configuration indicated to UE 400 (e.g., via RRC signaling) and / or can be dynamically configured (e.g., based on observed historical trends associated with emptying and refilling uplink buffer 412). Thresholds 420a-c can be compared to uplink WM 470.

[0063] According to an aspect, the FC component 414 can monitor and manage one or more thresholds 420a-c. The FC component 414 can send one or more messages 472 to the AP 440. The AP 440 can send one or more messages 474 to the FC component 414. For example, when the DNE threshold 420c is reached (e.g., the uplink WM 470 is equal to or exceeds the DNE threshold 420c), the FC component 414 can signal the AP 440 to stop sending data to the uplink buffer 412. Thus, the AP 440 can continue to queue data (e.g., data from the application 444) to be sent on the wireless network at the AP accessible memory 442 and / or the AP 440 can allocate other memory to queue the data therein while the uplink buffer 412 is emptied (e.g., by transferring or otherwise removing data in the uplink buffer 412). When the DNE threshold 420c is reached, data sent from the AP 440 can be dropped because the uplink buffer 412 reaches or approaches capacity.

[0064] As another example, when the DNE threshold 420c is reached, the FC component 414 can prevent or pause data exchange between the tethered device 405 and an external or remote application server via the UE 400. For example, the FC component 414 can close the communication link between the tethered device 405 and the UE 400 to prevent data from the tethered device 405 from reaching the UE 400. When the DNE threshold 420c is reached, data sent from the AP 407 can be dropped because the uplink buffer 412 reaches or approaches capacity. In some cases, the FC component 414 can also signal the tethered device 405 (e.g., the AP 407) to stop sending data to the uplink buffer 412.

[0065] In another example, when the low threshold 420b is reached (e.g., the uplink WM 470 is equal to or below the low threshold 420b), the FC component 414 can signal the AP 440 to resume sending data (e.g., from the AP accessible memory 442) to the uplink buffer 412.

[0066] In yet another example, when the high threshold 420a is reached (e.g., the uplink WM 470 is equal to or above the high threshold 420a), the FC component 414 can determine that no additional data should be queued in the uplink buffer 412. The FC component 414 can generate an FC message indicating that no more data should be sent to the first layer 402 to be queued in the uplink buffer 412. The FC component 414 can send such an FC message to the second layer 404 in order to instruct the AP 440 to refrain from sending additional data to the first layer 402.

[0067] In some aspects, when the uplink WM 470 is less than the high threshold 420a or the low threshold 420b, the FC component 414 can maintain the communication link between the tethered device 405 and the UE 400 open so that data can be transmitted from the tethered device to a remote or external application server via the UE 400. For example, if the WM 470 is below the high threshold 420a after reaching the high threshold 420a or the DNE threshold 420c, the FC component 414 can open a closed communication link so that data queued at the tethered device 405 can begin to flow to the UE via the communication link (e.g., passed via the UE and a BS to which the UE is connected to reach the remote or external application server). As mentioned above, an example of such data can be a TCP ACK message that acknowledges a downlink transmission transmitted by the application server to the tethered device 405. In some examples, when the low threshold 420b is reached (e.g., the uplink WM 470 is equal to or below the low threshold 420b), the FC component 414 can signal the AP 407 that the tethered device 405 resumes sending data to the uplink buffer 412.

[0068] In various aspects, the low threshold 420b can be configured to approximately equal a data size required for an uplink peak rate transmission of service value T milliseconds (ms). As an illustration, T can equal 4 ms, each TTI can equal 200 microseconds (ps), and a peak MAC TB size per TTI can equal 8 kB. Thus, the low threshold 420b can be configured as 160 kB, which equals T ms divided by the TTI duration multiplied by the peak TB size, or equivalently in this example, (4 ms / 200 ps) * 8 kB. In some aspects, the low threshold 420b can be configured to be greater than the data size required for an uplink peak rate transmission of service value T ms - for example, the low threshold 420b can be configured as 200 kB.

[0069] The high threshold 420a can be configured to be greater than the low threshold 420b. For example, the high threshold 420a can be configured to be twice the low threshold, such as 400 kB. The DNE threshold 420c can be configured to be greater than the high threshold 420a. For example, the DNE threshold 420c can be configured to be 100 kB or 200 kB greater than the high threshold 420a. The thresholds 420a-c can be configured to have different values in other aspects.

[0070] When the uplink buffer 412 includes data, the uplink buffer 412 can be emptied. The MAC component 410 can determine the uplink WM 470 indicating the size of data currently queued in the uplink buffer 412. For example, the MAC component 410 can periodically poll the uplink buffer 412 to receive the uplink WM 470. In another example, the FC component 414 can indicate to the MAC component 410 that the uplink WM 470 has reached at least one of the high threshold 420a or the DNE threshold 420c, and the MAC component 410 can determine the uplink WM 470 based on the indication from the FC component 414.

[0071] Based on the uplink WM 470, the MAC component 410 can transmit an uplink grant request 422 to the base station in order to obtain an uplink grant for transmitting the data queued in the uplink buffer 412. The uplink grant request 422 can include a BSR or a buffer occupancy report. For example, the uplink grant request 422 can be based on the uplink WM 470.

[0072] In addition to the uplink WM 470, the MAC component 410 can generate the uplink grant request 422 based on the amount of data (e.g., packets) in the retransmission queue 462 and / or the L2 pipeline queue 464. Thus, the MAC component 410 can generate the uplink grant request 422 based on a sum of the uplink WM 470, the WM of the AP accessible memory 422, the WM of the memory of the tethered device 405, the WM of the retransmission queue 462, and the WM of the L2 pipeline queue 464.

[0073] Figure 5is a signaling diagram illustrating uplink (UL) buffer management by a UE connected to a tethered device in accordance with some aspects of the present disclosure. UE 502 can be UE 104, UE 204, UE 350, or UE 400, tethered device 504 can be tethered device 206 or tethered device 405, and base station (BS) 506 can be BS 102, BS 202, or BS 310. In some aspects, tethered device 504 can be communicating or exchanging data with an application server 508 via UE 502 and BS 506 to which application server 508 is connected. In some aspects, the discussion herein regarding tethered device 504 establishing a connection to and communicating or exchanging data with BS 506 via UE 502 can also apply to and should be understood to include the process of tethered device 504 establishing a connection to and communicating or exchanging data with application server 508 via UE 502 and BS 506 (e.g., because the application server can be part of or connected to a network of which BS 506 is a part).

[0074] In some aspects, the communication link linking tethered device 504 to UE 502 can be a Universal Serial Bus (USB) cable, an Ethernet cable, connection, or connection. In some aspects, tethered device 206 can be a cellular phone, a smartphone, a session initiation protocol (SIP) phone, a laptop computer, a personal digital assistant (PDA), a satellite radio, a global positioning system, a multimedia device, a video device, a digital audio player (e.g., MP3 player), a camera, a game console, a tablet, a smart device, a wearable device, a vehicle, an electric meter, a gas pump, a large or small kitchen appliance, a health care device, an implant, a sensor / actuator, a display, or any other similar functional device.

[0075] In some aspects, tethered device 504 can use UE 502 as a modem to connect to BS 506 to which UE 502 is connected. In some aspects, the term “tethered” can refer to a device (e.g., such as tethered device 504) using another device (e.g., such as UE 502) as a modem to connect to a network to which the other device (i.e., UE 502) is connected (e.g., and use the connection for data exchange). In some cases, tethered device 504 can not have a connection to a network (e.g., a 5G NR, LTE, etc. network) to which BS 506 is part of, and can use UE 502 to connect to an application server. For example, the application server can be a server hosting an application and tethered device 504 can use UE 502 to receive data (e.g., video, audio, etc.) generated by the application.

[0076] In some aspects, a transmission control protocol (TCP) connection established between tethered device 504 and BS 506 (e.g., and application server 508 connected with BS 506) can be a three-way handshake, where tethered device 504 initiating the connection can transmit a synchronize (SYN) message to application server 508 and application server 508 can acknowledge the arrival of the SYN message to tethered device 504 in return by transmitting a synchronize-acknowledgment (SYN-ACK) message to tethered device 504. In some cases, after the connection is established between tethered device 504 and BS 506 / application server 508, acknowledgments (ACKs) can be exchanged in response to received data transmissions. For example, a TCP downlink transmission including data packets can be transmitted from application server 508 to tethered device 504 via UE 502, and tethered device 504 can transmit an ACK back to application server 508 via UE 502 to acknowledge the arrival of the data packets.

[0077] In some aspects, the SYN messages and SYN-ACK messages exchanged between the tethered device 504 and the application server 508 as part of establishing a TCP connection therebetween can include parameters that control the exchange of data between the tethered device 504 and the application server 508. For example, the SYN message from the tethered device 504 to the application server 508 can include a receiver window size of the tethered device that indicates to the application server 508 a maximum amount of data that the tethered device 504 is configured to receive and buffer from the application server 508 (e.g., before an ACK must be sent to the application server 508 as an acknowledgment of the received data). In some aspects, the SYN-ACK message from the application server 508 to the tethered device 504 can include a receiver window size of the application server 508 that indicates to the tethered device 504 a maximum amount of data that the application server 508 is configured to receive and buffer from the tethered device 504 (e.g., before an ACK must be sent to the tethered device 504 as an acknowledgment of the received data), i.e., available buffer space in the receive buffer of the application server 508.

[0078] In some aspects, as discussed above with reference to Figure 4 The UE 502 can have a buffer (e.g., an uplink (UL) buffer 412) associated therewith, for example. For example, the UE 502 acting as a modem for the tethered device 504 and facilitating the exchange of data between the tethered device 504 and the application server 508 can have an uplink buffer for UL data to be transmitted from the tethered device 504 to the application server 508. In some aspects, when the UL buffer of the UE 502 is full, the UE 502 can shut down the communication link between the tethered device 504 and the UE 502, or otherwise avoid the transmission of UL data from the tethered device 504.

[0079] For example, the UL buffer of the UE 502 can have a UL buffer threshold associated therewith, where when the uplink watermark of the UE 502 (i.e., the amount of data in the buffer of the UE 502) exceeds the UL buffer threshold, the UE 502 shuts down the communication link between the UE 502 and the tethered device 504 so that data can not flow from the latter to the former until the communication link is again opened by a rollback. In some cases, instead of or in addition to shutting down the communication link, the UE 502 can signal the tethered device 504 to stop sending data (e.g., data destined for the application server 508) to the UE 502 until the UE 502 signals the tethered device 504 to the contrary. In some instances, the UL buffer threshold can include multiple thresholds (e.g., with reference to Figure 4The low, high, and DNE thresholds discussed above), and when the WM of the buffer exceeds the high threshold or the DNE threshold, the UE 502 can close the communication link and / or signal the tethered device 504 to stop sending additional data to the UE 502.

[0080] In some aspects, when the WM of the UL buffer of the UE 502 exceeds the UL buffer threshold, the communication link between the UE 502 and the tethered device 504 can dynamically repeatedly close and open, and cause delays in the UL transmission of ACKs from the tethered device 504 to the application server 508. For example, the application server 508 and the tethered device can be in communication and an application executing on the application server 508 can transmit data packets as TCP DL transmissions to the tethered device 504 via the BS 506 and the UE 502. For example, the application server 508 can transmit TCP DL data packets according to a schedule of downlink (DL) transmissions per previous DL grant.

[0081] Upon receiving the TCP DL data packet, in some cases, the tethered device 504 can generate a TCP ACK message to acknowledge arrival of the TCP DL data packet and send the ACK to the UE 502 for further transmission to the application server 508. In such cases, if buffering the TCP ACK message at the UL buffer of the UE 502 (e.g., along with any other UL data transmitted by the tethered device 504) causes the WM of the UL buffer of the UE 502 to exceed the UL buffer threshold, the UE 502 can receive at most a portion of the data transmitted by the tethered device 504 (e.g., the received at most portion such that the WM does not exceed the UL buffer threshold) and close the communication link between the UE 502 and the tethered device 504 until the WM falls below the UL buffer threshold (e.g., in which case, the UE 502 can reopen the communication link to allow at least some of the remaining transmitted data to arrive at the UL buffer of the UE 502). In some cases, this process can repeat, causing TCP ACKs transmitted by the tethered device 504 and destined for the application server 508 to stall at the UE 502, resulting in increased round trip time (RTT) between the tethered device 504 and the application server 508, which in turn can impact (e.g., delay or reduce) scheduling of DL transmissions from the application server 508 to the tethered device 504. In some cases, RTT refers to the round trip time between a sender sending a data packet or signal to a receiver and, in return, receiving an ACK from the receiver acknowledging arrival of the data packet or signal at the receiver. In some aspects, a UE can monitor the RTT of a communication loop between an application server and a tethered device. In some aspects, the communication loop can include data being transmitted by the application server to the tethered device via the UE and, in response to receiving the data at the tethered device, transmitting an acknowledgment by the tethered device via the UE after receiving the acknowledgment at the application server. In some aspects, the UE can determine that the RTT is increasing over time based on monitoring the RTT. In some cases, the UE can modify an application server receiver window size based on determining that the RTT is increasing over time.

[0082] Some aspects of the present disclosure disclose mechanisms for UL buffer management of a UE to enable UL transmissions from a device tethered to the UE that are destined for an external or remote application server to not stall at the UE due to UL buffer overflow or fullness at the UE. In some aspects, with reference to Figure 5 , the device 504 can communicate with the UE 502 via a communication link, such as but not limited to a USB cable, an Ethernet cable, connection, The tethered device 504 can be tethered to the UE 502 to use the UE 502 as a modem to establish a TCP connection to the application server 508 via the BS 506 to which the UE 502 is connected. In some aspects, to establish the TCP connection with the application server 508, the tethered device 504 can initiate a three-way handshake by transmitting a SYN message 510 to the application server 508 (e.g., via the UE 502 and the BS 506). In some instances, the SYN message 510 can include parameters of the tethered device 504 related to data transmission and reception at the tethered device 504, such as, but not limited to, a tethered device send window size indicating available buffer space in a send buffer of the tethered device 504, a tethered device receiver window size indicating available buffer space in a receive buffer of the tethered device 504 (e.g., a maximum amount of data that the tethered device 504 is configured to receive and buffer from the application server 508, e.g., before an ACK must be sent to the application server 508 as an acknowledgment of the received data), and the like. In some cases, the tethered device send window size can also be bounded by the receiver window size of the application server 508, i.e., the tethered device send window size can not be larger than the receiver window size of the application server 508 (e.g., in addition to being limited to (i.e., not larger than) the send buffer of the tethered device 504).

[0083] In some aspects, upon receiving the SYN message 510 from the tethered device 504, the application server 508 can generate a SYN-ACK message 512 acknowledging the arrival of the SYN message 510 at the application server 508 and transmit the SYN-ACK 512 to the UE 502 for further transmission to the tethered device 504. In some aspects, the SYN-ACK message 512 can include parameters of the application server 508 related to data transmission and reception at the application server 508, such as, but not limited to, an application server send window size indicating available buffer space in a send buffer of the application server 508, an application server receiver window size indicating available buffer space in a receive buffer of the application server 508 (e.g., a maximum amount of data that the application server 504 is configured to receive and buffer from the tethered device 508, e.g., before an ACK must be sent to the tethered device 504 as an acknowledgment of the received data), and the like. In some cases, the application server send window size can also be bounded by the receiver window size of the tethered device 504, i.e., the application server send window size can not be larger than the receiver window size of the tethered device 504 (e.g., in addition to being limited to (i.e., not larger than) the send buffer of the application server 508).

[0084] In some aspects, upon receiving the SYN-ACK message 512 from the application server 508, the UE 502 can modify 514 the received SYN-ACK message 512 to change at least some parameters of the application server 508 related to transmission and reception of data at the application server 508. That is, in some aspects, the UE 502 can intercept the SYN-ACK message 512 destined for the tethered device 504 at the UE 502 and modify at least some parameters of the application server 508 related to transmission and reception of data at the application server 508. In some cases, the modification of these parameters can include modifying the receiver window size of the application server 508 included in the SYN-ACK message 512. For example, the UE 502 can modify the received or intercepted SYN-ACK message 512 to change (e.g., decrease) the receiver window size of the application server 508 in the SYN-ACK message 512 so that the receiver window size can not exceed the UL buffer threshold of the UE 502. Further, because the tethered device transmit window size can be bounded to (i.e., can not be greater than) the receiver window size of the application server 508, modifying the receiver window size of the application server 508 in the SYN-ACK message 512 to not be greater than the UL buffer threshold of the UE 502 can result in the tethered device transmit window size also not being greater than the UL buffer threshold of the UE 502. That is, the UE 502 can modify the SYN-ACK message 512 by decreasing the receiver window size of the application server 508 in the SYN-ACK message 512 to not be greater than the UL buffer threshold of the UE 502, which can result in the tethered device transmit window size also not being greater than the UL buffer threshold of the UE 502.

[0085] In some aspects, after modifying 514 the SYN-ACK message 512 intercepted or received from the application server 508, the UE 502 can then send the modified SYN-ACK message 516 to the tethered device 504. In some aspects, after receiving the modified SYN-ACK message 516 from the UE 502, the tethered device 504 can limit the size of UL transmissions from the tethered device 504 to the application server 508 to no more than the UL buffer threshold of the UE 502 (e.g., because the tethered device transmit window size is bounded or limited by the reduced receiver window size of the application server 508 in the SYN-ACK message 512 modified by the UE 502, where the reduced receiver window size is reduced by the UE 502 to no more than the UL buffer threshold of the UE 502). As such, the WM of the UL buffer of the UE 502 can not exceed the UL buffer threshold due to UL communications from the tethered device to the application server 508, and the UE 502 can keep the communication link 518 between the tethered device 504 and the UE 502 open, which allows UL transmissions such as TCP ACK messages from the tethered device 504 acknowledging TCP DL data packets transmitted by the application server 508 to arrive at the tethered device 504 to be transmitted to the application server 508 without stalling or delaying at the UE 502 due to a closed communication link (e.g., or a signal from the UE 502 to the tethered device instructing the tethered device to stop transmission of TCP ACK messages).

[0086] In some aspects, the tethered device 504 can include multiple devices tethered to the UE 502. In such cases, the sum of the tethered device transmit window sizes of the multiple devices can be bounded or limited by the reduced receiver window size of the application server 508, which is reduced by the UE 502 to no more than the UL buffer threshold of the UE 502. As such, the WM of the UL buffer of the UE 502 can not exceed the UL buffer threshold due to UL communications from the multiple tethered devices to the application server 508, and the UE 502 can keep the communication link 518 between the multiple tethered devices and the UE 502 open.

[0087] While Figure 5 While modification of the SYN-ACK from the application server 508 to the tethered device 504 is shown, the same or similar modifications can also occur in the opposite direction on traffic. That is, the SYN-ACK from the tethered device 504 to the application server 508 can be modified at least substantially in a similar manner as discussed herein to control data traffic from the application server 508 to the tethered device 504.

[0088] Figure 6is a flowchart of a method 600 of illustrating wireless communication. The method 600 can be performed by a UE and / or an apparatus such as the UE 104, the UE 204, the UE 350, the UE 400, the UE 502, the apparatus 702 / 702', which can include the memory 360 and which can be the entire UE 350 or a component of the UE 350 (e.g., the TX processor 368, the RX processor 356, and / or the controller / processor 359). The UE and / or apparatus can include at least a first layer (such as a PHY and / or MAC layer), and a second layer (such as an application layer). According to various aspects, one or more of the illustrated operations of the method 600 can be omitted, transposed, and / or contemporaneously performed. As illustrated, the method 600 includes a number of enumerated steps, but aspects of the method 600 can include additional steps before, after, and in between the enumerated steps. In some aspects, one or more of the enumerated steps can be omitted or performed in a different order.

[0089] In some aspects, at operation 602, the UE can receive a synchronization acknowledgement (SYN-ACK) message that is destined to a device tethered to the UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message can include an application server receiver window size that indicates available buffer space in a receive buffer of the application server.

[0090] In some aspects, at operation 604, the UE can modify the receiver window size in the received SYN-ACK message prior to retransmitting (e.g., forwarding, transmitting, communicating, etc.) the received SYN-ACK to the tethered device.

[0091] In some aspects, for example, prior to modifying the receiver window size, the UE can further determine that an amount of data transmitted by the tethered device to the application server via the UE exceeds an uplink (UL) buffer threshold of the UE. In some aspects, modifying the application receiver window size includes decreasing the application receiver window size to be less than or equal to the UL buffer threshold of the UE.

[0092] In some aspects, the UE can further monitor a round trip time (RTT) of a communication loop between the application server and the tethered device prior to modifying the receiver window size. In some aspects, the communication loop can include transmitting data by the application server to the tethered device via the UE and receiving an acknowledgement at the application server in response to receiving the data at the tethered device via the UE after transmitting the acknowledgement by the tethered device to the application server via the UE. In some aspects, the UE can determine that the RTT is increasing over time.

[0093] In some aspects, the UE can receive, via the UE, a synchronization (SYN) message destined for the application server and transmitted by the tethered device to establish a transmission control protocol (TCP) connection with the network. In some aspects, the SYN can include a device receiver window size indicating a maximum amount of data that the tethered device is configured to receive and buffer.

[0094] In some aspects, the device tethered to the UE can be a personal computer tethered to the UE via a communication link including a universal serial bus (USB) cable, an Ethernet cable, connection, or connection.

[0095] Figure 7 FIG. 7 is a diagram of an example of a hardware implementation for a device 702.

[0096] The device 702 is a UE and includes a cellular baseband processor 704 (also referred to as a modem) coupled to a cellular RF transceiver 722 and one or more subscriber identity modules (SIM) cards 720, an application processor 706 coupled to a secure digital (SD) card 708 and a screen 710, a Bluetooth module 712, a wireless local area network (WLAN) module 714, a Global Positioning System (GPS) module 716, and a power supply 718.

[0097] The cellular baseband processor 704 communicates with the UE 104 and / or BS 102 / 180 by way of the cellular RF transceiver 722. The cellular baseband processor 704 can include a computer-readable medium / memory. The cellular baseband processor 704 is responsible for general processing, including the execution of software stored on the computer-readable medium / memory. The software, when executed by the cellular baseband processor 704, causes the cellular baseband processor 704 to perform the various functions described supra. The computer-readable medium / memory can also be used for storing data that is manipulated by the cellular baseband processor 704 when executing software. The cellular baseband processor 704 further includes a reception component 730, a communication manager 732, and a transmission component 734. The communication manager 732 includes the one or more illustrated components. The components of the communication manager 732 can be stored in the computer-readable medium / memory and / or configured as hardware within the cellular baseband processor 704. The cellular baseband processor 704 can be a component of the UE 350 and can include the memory 360 and / or at least one of the TX processor 368, the RX processor 356, and the controller / processor 359. In one configuration, the device 702 can be a modem chip and include only the baseband processor 704, and in another configuration, the device 702 can be an entire UE (e.g., see 350 of FIG. 3) and include the aforementioned additional modules of the device 702. Figure 3 The cellular baseband processor 704 communicates with the UE 104 and / or BS 102 / 180 by way of the cellular RF transceiver 722. The cellular baseband processor 704 can include a computer-readable medium / memory. The cellular baseband processor 704 is responsible for general processing, including the execution of software stored on the computer-readable medium / memory. The software, when executed by the cellular baseband processor 704, causes the cellular baseband processor 704 to perform the various functions described supra. The computer-readable medium / memory can also be used for storing data that is manipulated by the cellular baseband processor 704 when executing software. The cellular baseband processor 704 further includes a reception component 730, a communication manager 732, and a transmission component 734. The communication manager 732 includes the one or more illustrated components. The components of the communication manager 732 can be stored in the computer-readable medium / memory and / or configured as hardware within the cellular baseband processor 704. The cellular baseband processor 704 can be a component of the UE 350 and can include the memory 360 and / or at least one of the TX processor 368, the RX processor 356, and the controller / processor 359. In one configuration, the device 702 can be a modem chip and include only the baseband processor 704, and in another configuration, the device 702 can be an entire UE (e.g., see 350 of FIG. 3) and include the aforementioned additional modules of the device 702.

[0098] The communications manager 732 includes a SYN-ACK modifier component 740 configured to receive a synchronize-acknowledgement (SYN-ACK) message that is destined to a device tethered to a UE and transmitted by an application server at a network to which the UE is connected, e.g., as described in connection with 602. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. Further, the SYN-ACK modifier component 740 can be configured to modify the receiver window size in the received SYN-ACK message prior to retransmitting (e.g., forwarding, transmitting, communicating, etc.) the received SYN-ACK to the tethered device, e.g., as described in connection with 604. Figure 6 Figure 6

[0099] The apparatus can include additional components that perform each of the blocks of the aforementioned flowchart of FIG. 10. As such, each block in the aforementioned flowcharts of FIG. 10 can be performed by a component and the apparatus can include one or more of those components. The components can be one or more hardware components specifically configured to carry out the stated processes / algorithm, implemented by a processor configured to perform the stated processes / algorithm, stored within a computer-readable medium for implementation by a processor, or some combination thereof. Figure 6 Figure 6 The apparatus can include additional components that perform each of the blocks of the aforementioned flowchart of FIG. 10. As such, each block in the aforementioned flowcharts of FIG. 10 can be performed by a component and the apparatus can include one or more of those components. The components can be one or more hardware components specifically configured to carry out the stated processes / algorithm, implemented by a processor configured to perform the stated processes / algorithm, stored within a computer-readable medium for implementation by a processor, or some combination thereof.

[0100] In one configuration, the apparatus 702, and in particular the cellular baseband processor 704, includes means for receiving a synchronize-acknowledgement (SYN-ACK) message that is destined to a device tethered to a UE and transmitted by an application server at a network to which the UE is connected. In some aspects, the SYN-ACK message includes an application server receiver window size that indicates available buffer space in a receive buffer of the application server. The apparatus includes means for modifying the receiver window size in the received SYN-ACK message prior to retransmitting (e.g., forwarding, transmitting, communicating, etc.) the received SYN-ACK to the tethered device.

[0101] The aforementioned means can be one or more of the aforementioned components of the apparatus 702 configured to perform the functions recited by the aforementioned means. As described supra, the apparatus 702 can include the TX processor 368, the RX processor 356, and the controller / processor 359. As such, in one configuration, the aforementioned means can be the TX processor 368, the RX processor 356, and the controller / processor 359 configured to perform the functions recited by the aforementioned means.

[0102] Reference to some aspects of the present disclosure

[0103] ​​​Aspect 1: A method of wireless communication performed by a user equipment (UE), the method comprising: receiving a synchronization acknowledgement (SYN-ACK) message, the SYN-ACK message being destined to a device tethered to the UE and transmitted by an application server at a network to which the UE is connected, the SYN-ACK message including an application server receiver window size indicating available buffer space in a receive buffer of the application server; and modifying the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK to the tethered device.

[0104] Aspect 2: The method of aspect 1, further comprising: prior to modifying the receiver window size, determining that an amount of data transmitted by the tethered device to the application server via the UE exceeds an uplink (UL) buffer threshold of the UE.

[0105] Aspect 3: The method of aspect 2, wherein modifying the application receiver window size comprises reducing the application receiver window size to be less than or equal to the UL buffer threshold of the UE.

[0106] Aspect 4: The method of any of aspects 1-3, further comprising: prior to modifying the receiver window size, monitoring a round trip time (RTT) of a communication loop between the application server and the tethered device, the communication loop including transmitting data by the application server to the tethered device via the UE and receiving an acknowledgement at the application server after transmitting the acknowledgement by the tethered device via the UE in response to receiving the data at the tethered device; and determining that the RTT is increasing over time.

[0107] Aspect 5: The method of any of aspects 1-4, further comprising: receiving, via the UE, a synchronization (SYN) message destined to the application server and transmitted by the tethered device to establish a transmission control protocol (TCP) connection with the network, the SYN including a device receiver window size indicating a maximum amount of data that the tethered device is configured to receive and buffer.

[0108] Aspect 6: The method of any of aspects 1-5, wherein the device tethered to the UE is a personal computer tethered to the UE via a communication link, the communication link including a universal serial bus (USB) cable, an Ethernet cable, a connection, or a connection.

[0109] Aspect 7: A user equipment (UE) comprising: a memory; a processor coupled to the memory; and a transceiver coupled to the processor, the UE configured to perform the methods of aspects 1 through 6.

[0110] Aspect 8: A user equipment (UE) comprising means for performing the methods of aspects 1 through 6.

[0111] Aspect 9: A non-transient computer-readable medium having program code recorded thereon, the program code including code for causing a UE to perform methods as described in aspects 1 to 6.

[0112] It should be understood that the specific order or hierarchy of the boxes in the disclosed process / flowcharts is an explanation of exemplary methods. It should be understood that the specific order or hierarchy of the boxes in these process / flowcharts can be rearranged based on design preferences. Furthermore, some boxes may be combined or omitted. The appended method claims present the elements of the various boxes in an exemplary order and are not intended to be limited to the specific order or hierarchy presented.

[0113] The preceding description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are to be granted the full scope consistent with the language of the claims, wherein references to the singular form of an element, unless specifically stated otherwise, are not intended to mean “one and only one,” but rather “one or more.” The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as exemplary is not necessarily to be construed as superior to or overriding other aspects. Unless specifically stated otherwise, the term “some / a” refers to one or more. Combinations such as “at least one of A, B, or C,” “one or more of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, and C,” and “A, B, C, or any combination thereof” include any combination of A, B, and / or C, and may include multiple A, multiple B, or multiple C. Specifically, combinations such as "at least one of A, B, or C", "one or more of A, B, or C", "at least one of A, B, and C", "one or more of A, B, and C", and "A, B, C, or any combination thereof" can be A only, B only, C only, A and B, A and C, B and C, or A and B and C, wherein any such combination may include one or more members of A, B, or C. Elements of all aspects described throughout this disclosure that are presently or hereafter known to those skilled in the art are expressly incorporated herein by reference and are intended to be covered by the claims. Furthermore, nothing disclosed herein is intended as a donation to the public, whether or not such disclosure is expressly stated in the claims. The terms "module," "mechanism," "element," "device," etc., may not be a substitute for the term "apparatus." Thus, no claim element should be construed as an apparatus plus a function unless the element is expressly stated using the phrase "apparatus for..."

Claims

1. A method of wireless communication performed by a user equipment (UE), the method comprising: receiving a synchronization acknowledgment (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected, the SYN-ACK message including an application server receiver window size indicating available buffer space in a receive buffer of the application server; and modifying the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK message to the device tethered to the UE, wherein modifying the application server receiver window size includes reducing the application server receiver window size to be less than or equal to an uplink (UL) buffer threshold of the UE.

2. The method of claim 1, further comprising: determining, prior to modifying the application server receiver window size, that an amount of data transmitted by the device tethered to the UE to the application server via the UE exceeds the UL buffer threshold of the UE.

3. The method of claim 1, further comprising: prior to modifying the application server receiver window size: monitoring a round trip time (RTT) of a communication loop between the application server and the device tethered to the UE, wherein the communication loop includes transmitting data by the application server to the device tethered to the UE via the UE and receiving an acknowledgment at the application server after transmitting the acknowledgment by the device tethered to the UE via the UE in response to receiving the data at the device tethered to the UE; and determining that the RTT is increasing over time.

4. The method of claim 1, further comprising receiving, via the UE, a synchronization (SYN) message destined for the application server and transmitted by the device tethered to the UE to establish a transmission control protocol (TCP) connection with the network, the SYN including a tethered device receiver window size indicating a maximum amount of data that the device tethered to the UE is configured to receive and buffer.

5. The method of claim 1, wherein the device tethered to the UE is tethered to the UE via a communication link, the communication link comprising a Universal Serial Bus (USB) cable, an Ethernet cable, connection, or connection.

6. The method of claim 1, further comprising: transmitting the received SYN-ACK message to the device tethered to the UE, the SYN-ACK message including the modified application server receiver window size.

7. A user equipment (UE) comprising: a memory; a transceiver; and at least one processor coupled to the memory and the transceiver, the transceiver configured to: receive a synchronization acknowledgment (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected, the SYN-ACK message including an application server receiver window size indicating available buffer space in a receive buffer of the application server; and the at least one processor configured to: modifying the application server receiver window size in a received SYN-ACK message prior to transmitting the received SYN-ACK message to the device tethered to the UE by reducing the application server receiver window size to less than or equal to an uplink (UL) buffer threshold of the UE.

8. The UE of claim 7, wherein the at least one processor is further configured to determine, prior to modifying the application server receiver window size, that an amount of data transmitted by the device tethered to the UE to the application server via the UE exceeds the UL buffer threshold of the UE.

9. The UE of claim 7, wherein the at least one processor is further configured to: prior to modifying the application server receiver window size: monitor a round trip time (RTT) of a communication loop between the application server and the device tethered to the UE, wherein the communication loop includes transmission of data by the application server to the device tethered to the UE via the UE and reception of an acknowledgment at the application server after transmission of the acknowledgment by the device tethered to the UE via the UE in response to reception of the data at the device tethered to the UE; and determine that the RTT is increasing over time.

10. The UE of claim 7, wherein the at least one processor is further configured to receive, via the UE, a synchronize (SYN) message destined for the application server and transmitted by the device tethered to the UE to establish a transmission control protocol (TCP) connection with the network, the SYN including a device receiver window size indicating a maximum amount of data that the device tethered to the UE is configured to receive and buffer.

11. The UE of claim 7, wherein the device tethered to the UE is tethered to the UE via a communication link, the communication link comprising a Universal Serial Bus (USB) cable, an Ethernet cable, connection, or connection.

12. The UE of claim 7, wherein the at least one processor is further configured to transmit, to the device tethered to the UE, the received SYN-ACK message including the modified application server receiver window size.

13. A non-transitory computer-readable medium (CRM) having recorded thereon program code for wireless communication by a user equipment (UE), the program code comprising: code for causing the UE to receive a synchronize acknowledgment (SYN-ACK) message, the SYN-ACK message being destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected, the SYN-ACK message including an application server receiver window size indicating available buffer space in a receive buffer of the application server; and code for causing the UE to modify the application server receiver window size in the received SYN-ACK message prior to transmitting the received SYN-ACK message to the device tethered to the UE, wherein the code for causing the UE to modify the application server receiver window size causes the UE to reduce the application server receiver window size to less than or equal to an uplink (UL) buffer threshold of the UE.

14. The non-transitory CRM of claim 13, wherein the program code further includes code to cause the UE to determine that an amount of data transmitted by the device tethered to the UE to the application server via the UE exceeds the UL buffer threshold of the UE before modifying the application server receiver window size.

15. The non-transitory CRM of claim 13, wherein the program code further includes code to cause the UE to: before modifying the receiver window size: monitor a round trip time (RTT) of a communication loop between the application server and the device tethered to the UE, wherein the communication loop includes transmission of second data by the application server to the device tethered to the UE via the UE and reception of an acknowledgment at the application server after transmission of the acknowledgment by the device tethered to the UE via the UE in response to reception of the data at the device tethered to the UE; and determine that the RTT is increasing over time.

16. The non-transitory CRM of claim 13, wherein the program code further includes code to cause the UE to receive, via the UE, a synchronization (SYN) message destined for the application server and transmitted by the device tethered to the UE to establish a transmission control protocol (TCP) connection with the network, the SYN including a device receiver window size indicating a maximum amount of data that the device tethered to the UE is configured to receive and buffer.

17. The non-transitory CRM of claim 13, wherein the device tethered to the UE is tethered to the UE via a communication link, the communication link comprising a Universal Serial Bus (USB) cable, an Ethernet cable, connection, or connection.

18. The non-transitory CRM of claim 13, wherein the program code further includes code to cause the UE to transmit, to the device tethered to the UE, a received SYN-ACK message including a modified application server receiver window size.

19. A user equipment (UE), comprising: means for receiving a synchronization acknowledgment (SYN-ACK) message destined for a device tethered to the UE and transmitted by an application server at a network to which the UE is connected, the SYN-ACK message including an application server receiver window size indicating available buffer space in a receive buffer of the application server; and means for modifying the application server receiver window size in the received SYN-ACK message before transmitting the received SYN-ACK message to the device tethered to the UE, wherein the means for modifying the application server receiver window size includes means for reducing the application server receiver window size to be less than or equal to an uplink (UL) buffer threshold of the UE.

20. The UE of claim 19, further comprising means for determining, prior to modifying the application server receiver window size, that an amount of data transmitted by the device tethered to the UE to the application server via the UE exceeds the UL buffer threshold of the UE.

21. The UE of claim 19, further comprising: means for monitoring, prior to modifying the receiver window size, a round trip time (RTT) of a communication cycle between the application server and the device tethered to the UE, wherein the communication cycle comprises transmitting data by the application server to the tethered device via the UE, and receiving an acknowledgement at the application server after transmitting the acknowledgement by the device tethered to the UE via the UE in response to receiving the data at the device tethered to the UE; and means for determining that the RTT is increasing over time.

22. The UE of claim 19, further comprising means for receiving, via the UE, a synchronization (SYN) message destined for the application server and transmitted by the device tethered to the UE to establish a transmission control protocol (TCP) connection with the network, the SYN comprising a device receiver window size indicating a maximum amount of data that the device tethered to the UE is configured to receive and buffer.

24. The UE of claim 19, further comprising means for transmitting, to the device tethered to the UE, a received SYN-ACK message, the SYN-ACK message comprising a modified application server receiver window size.

23. The UE of claim 19, wherein the device tethered to the UE is tethered to the UE via a communication link, the communication link comprising a Universal Serial Bus (USB) cable, an Ethernet cable, a connection, or a connection. ​

Citation Information

Patent Citations

  • Relaying in a device-to-device communication system

    CN110574476A

  • Transparent auto-discovery of network devices logically located between a client and server

    US20090157866A1