[go: up one dir, main page]

WO2024237923A1 - Application-based dynamic throughput and latency adjustment for user equipment - Google Patents

Application-based dynamic throughput and latency adjustment for user equipment Download PDF

Info

Publication number
WO2024237923A1
WO2024237923A1 PCT/US2023/022776 US2023022776W WO2024237923A1 WO 2024237923 A1 WO2024237923 A1 WO 2024237923A1 US 2023022776 W US2023022776 W US 2023022776W WO 2024237923 A1 WO2024237923 A1 WO 2024237923A1
Authority
WO
WIPO (PCT)
Prior art keywords
throughput
latency
application
range
cellular network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/US2023/022776
Other languages
French (fr)
Inventor
Dang Tu NGUYEN
Sooraj SASINDRAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to PCT/US2023/022776 priority Critical patent/WO2024237923A1/en
Publication of WO2024237923A1 publication Critical patent/WO2024237923A1/en
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/24Negotiating SLA [Service Level Agreement]; Negotiating QoS [Quality of Service]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Definitions

  • a user equipment typically is configured to execute applications requiring a connection to a cellular network.
  • the UE includes a modem configured to attach to a cellular network.
  • some high- performance applications executing on the UE such as interactive gaming applications and video calling applications, perform as expected when certain minimum throughputs and maximum latencies for the connection with the cellular network.
  • the modem of the UE is configured to report such minimum throughput and maximum requirements to the cellular network.
  • the UE is configured to send a UE assistance information (UAI) message to the cellular network indicating the minimum throughput and maximum requirements.
  • UAI UE assistance information
  • FIG. 1 is a block diagram of a cellular framework including user equipment (UE) configured for dynamic throughput and latency adjustment, in accordance with some embodiments.
  • UE user equipment
  • FIG. 2 is a flow diagram of an example method for dynamic throughput and latency adjustment, in accordance with some embodiments.
  • FIG. 3 is a flow diagram of an example method for dynamic throughput and latency adjustment in response to an application launching, in accordance with some embodiments.
  • FIG. 4 is a flow diagram of an example method for dynamic throughput and latency adjustment in response to the screen of UE being turned off, in accordance with some embodiments.
  • FIG. 5 is a flow diagram of an example method for updating application requirement data, in accordance with some embodiments.
  • FIG. 6 is a flow diagram illustrating an example boot-up procedure for UE, in accordance with some embodiments.
  • FIGs. 7 and 8 together present a flow diagram illustrating an example dynamic throughput and latency adjustment operation when an application reactivates, in accordance with some embodiments.
  • FIG. 9 is a flow diagram illustrating an example dynamic throughput and latency adjustment operation when a high-requirement application reactivates, in accordance with some embodiments.
  • a method includes identifying a required throughput and a required latency associated with an application executing on UE based on application requirement data stored on the UE. Further, the method can include transmitting, by the UE, a throughput and latency request indicating the required throughput and the required latency to a cellular network.
  • the method may also include, in response to an update event, querying the application requirement data for the required throughput and the required latency associated with the application.
  • the update event can include, for example, a screen of the UE turning off, the application launching on the UE, or a predetermined amount of elapsing.
  • the method can include, in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, monitoring a connection between the UE and the cellular network to determine the required throughput and the required latency. Further, the method may include updating the application requirement data based on the required throughput and the required latency determined from monitoring the connection between the UE and the cellular network.
  • identifying the required throughput and the required latency associated with the application executing on the UE may be in response to the application being displayed on a screen of the UE or in response to the application providing a perceivable output while a screen of the UE is off.
  • the method can further include, in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, transmitting, by the UE, a second throughput and latency request indicating a first range of throughputs and a first range of latencies to the cellular network.
  • the method can include identifying a second required throughput and a second required latency associated with a second application executing on the UE based on the application requirement data.
  • the method may include transmitting, by the UE, a second throughput and latency request indicating the second required throughput and the second required latency to the cellular network.
  • the throughput and latency request can include a UAI message.
  • a UE is configured to perform any method disclosed herein.
  • a non-transitory computer-readable storage medium stores executable instructions configured to manipulate a UE to perform any method disclosed herein.
  • a UE attached to a cellular network is configured to execute multiple applications each having different performance requirements. For example, some high-performance applications (e.g., interactive gaming applications, video calling applications, voice calling applications, streaming applications) require a high- throughput connection, low-latency connection, or both with the cellular network to execute as desired. In contrast, some medium-performance applications (e.g., fitness tracking applications, e-mail applications) require a lower throughput connection, higher latency connection, or both to execute as desired. To this end, a UE is configured to send a message to the cellular network indicating a desired throughput, latency, or both for the connection between the cellular network and the UE.
  • high-performance applications e.g., interactive gaming applications, video calling applications, voice calling applications, streaming applications
  • some medium-performance applications e.g., fitness tracking applications, e-mail applications
  • a UE is configured to send a message to the cellular network indicating a desired throughput, latency, or both for the connection between the cellular
  • the UE is configured to monitor downlink and uplink traffic patterns between the UE and the cellular network. Based on the monitored traffic patterns, the UE then predicts required throughputs, latencies, or both for different durations that allow applications to execute as desired while also limiting power consumption by the UE.
  • mispredicting these required throughputs and latencies increases the likelihood that certain applications (e.g., high-performance applications) do not execute as desired, negatively impacting user experience. For example, predicting a latency that is higher than required for an interactive gaming application to execute as desired negatively impacts user experience.
  • the UE configured for dynamic throughput and latency adjustment includes a storage (e.g., solid-state drive (SSD), flash memory) storing application requirement data (“app requirement data”).
  • the app requirement data for example, includes a data structure indicating the throughput and latency requirements for one or more applications previously executed on the UE, expected to be executed on the UE, or both.
  • the app requirement data indicates respective throughput ranges (e.g., low throughput range, medium throughout range, high throughput range) and respective required latency ranges (e.g., low latency range, medium latency range, high latency range) each associated with corresponding applications.
  • the UE is configured to determine required throughputs and latencies and request these determined throughputs and latencies from the cellular network. As an example, in response to an application launching on the UE, an application being in the foreground of a screen of the UE, or both, the UE determines whether app requirement data associated with the application is present in the storage If no app requirement data associated with the application is present in the storage, the UE then monitors the downlink and uplink traffic patterns between the UE and the cellular network while the application is running.
  • the UE Based on the monitored downlink and uplink traffic patterns, the UE then determines a required throughput (e.g., throughput range) and required latency (e.g., latency range) for the application and saves the determined throughput and latency requirements for the application in the app requirement data. If app requirement data associated with the application is present in the storage, the UE identifies the required throughout (e.g., throughput range) and required latency (e.g., latency range) associated with the application from the app requirement data and requests the identified throughput and latency requirements from the cellular network. In this way, the UE dynamically adjusts the throughput and latency of the connection between the UE and the cellular network based on the stored requirements of currently executing applications. As such, the likelihood that certain applications (e.g., high-performance applications) do not execute as desired due to an improperly predicted throughput or latency is reduced, improving user experience.
  • a required throughput e.g., throughput range
  • required latency e.g.
  • FIG. 1 presents a cellular networking framework 100 including user equipment (UE) 102 configured for dynamic throughput and latency adjustment.
  • cellular networking framework 100 includes cellular network 108 associated with one or more cellular carriers (e.g., cellular providers).
  • cellular carriers e.g., cellular providers
  • Cellular network 108 is configured to transmit and receive one or more network messages to and from UE 102 and includes, for example, a Global System for Mobile Communication (GSM) cellular network, a Universal Mobile Telecommunications System (UMTS) cellular network, a Third Generation Partnership Project (3GPP) Fourth Generation (4G) Long-Term Evolution (LTE) cellular network, a 3GPP Fifth Generation (5G) New Radio (NR) cellular network, 5G Technical Forum (5GTF), a 5G Special Interest Group cellular network (5G-SIG), or any combination thereof.
  • GSM Global System for Mobile Communication
  • UMTS Universal Mobile Telecommunications System
  • 3GPP Third Generation Partnership Project
  • 4G Fourth Generation
  • LTE Long-Term Evolution
  • 5G-SIG 5G Special Interest Group cellular network
  • Network messages transmitted and received by cellular network 108 include, for example, telephone calls, Voice over Internet Protocol (VoIP) calls, Short Message Service (SMS) messages, Multimedia Messaging Service (MMS) messages, authentication messages, registrations messages, update messages, attach messages, service request messages, or any combination thereof, to name a few.
  • VoIP Voice over Internet Protocol
  • SMS Short Message Service
  • MMS Multimedia Messaging Service
  • authentication messages registrations messages
  • update messages update messages
  • attach messages service request messages, or any combination thereof, to name a few.
  • Each cell 110 includes, for example, mobile base station towers (e.g., “cell towers”), antennae, transmitters, receivers, digital signal processors, control electronics, Global Positioning System (GPS) receivers, base transceiver stations, or any combination thereof, configured to receive and transmit network messages to and from UE 102.
  • mobile base station towers e.g., “cell towers”
  • GPS Global Positioning System
  • FIG. 1 presents the cellular network 108 having three cells 110-1 , 110-2, and 110-3, in other embodiments, cellular network 108 may include any number of cells 110 to facilitate the reception and transmission of network messages to and from UE 102.
  • UE 102 is configured to transmit and receive network messages from cellular network 108 and includes, for example, a compute-enabled phone (“smartphone”), a tablet computer, a personal computer, a laptop computer, a compute-enabled wearable device (e.g., smartwatch, fitness tracker, smart bracelet), an Internet of Things (loT) device, a router, a mobile hotspot device, an automotive device, a manufacturing device, or any combination thereof, to name a few.
  • UE 102 includes or is otherwise connected to modem 112.
  • Modem 112 includes hardware-based circuitry, software-based circuitry, or both configured to transmit or receive network messages using one or more radio access technologies.
  • Such radio access technologies include a connection method or protocol used to communicatively couple UE 102 to one or more cellular networks 108, for example, 2G network connections (e.g., Global System for Mobile Communications (GSM) protocols, code division multiple access (CDMA) protocols, general packet radio service (GPRS) protocols, enhanced data rates for GSM evolution (EDGE) protocols), 3G network connections (e.g., Universal Mobile Telecommunications System (UMTS) protocols, wideband code division multiple access (W-CDMA) protocols, CDMA-200 protocols, high-speed packet access (HSPA) protocols), 4G network communications (e.g., Long Term Evolution (LTE) protocols, Worldwide Interoperability for Microwave Access (WiMAX) protocols), 5G network communications (e.g., 5G New Radio (NR) protocols, 5G Technical Forum (5GTF) protocols, 5G Special Interest Group (5G-SIG) protocols), or any combination thereof.
  • 2G network connections e.g., Global System for Mobile Communications (GSM) protocols, code division multiple access (
  • modem 112 is configured to transmit and receive network messages from cellular network 108 using 5G network communications. Additionally, modem 112 includes or is otherwise connected to connection engine 106 that includes hardware-based circuitry, software-based circuitry, or both configured to generate one or more network messages, handle one or more received network messages (e.g., queue one or more received network messages, provide one or more network messages to other circuitry of UE 102), handle one or more network messages for transmission (e.g., queue one or more network messages for transmission), or both. As an example, connection engine 106 includes telephony circuitry configured to generate, handle, or both one or more network messages for transmission to cellular network 108.
  • UE 102 to transmit and receive network messages from cellular network 108, UE 102 is configured to initially communicatively couple to (e.g., camp on) one or more cells 110 of cellular network 108. For example, in response to UE 102 powering on, UE 102 is configured to communicatively couple to (e.g , camp on) one or more cells 110 of a cellular network 108 associated with a cellular carrier (e.g., cellular provider). In response to UE 102 being communicatively coupled to one or more cells 110 of a cellular network 108 associated with a cellular carrier, cellular network 108 is configured to authenticate and register UE 102.
  • a cellular carrier e.g., cellular provider
  • UE 102 is configured to execute one or more applications 104 each requiring a connection to cellular network 108.
  • applications for example, include interactive gaming applications, navigation applications, streaming applications, presentation applications, video calling applications, voice calling applications, fitness tracking applications, messaging applications, e-mail applications, and the like, to name a few.
  • UE 102 includes a screen 120 implemented in otherwise connected to UE 102.
  • Screen 120 is configured to display icons, graphics, data, video, or any combination thereof associated with an application 104 executing on UE 102.
  • screen 120 is configured to display a gaming environment while an interactive gaming application is running on UE 102.
  • some applications 104 include high-performance applications that require a high throughput and low latency connection with cellular network 108 to function properly (e.g., to function as expected). Such high-performance applications include, for example, interactive gaming applications, video calling applications, presentation applications, or any combination thereof, to name a few. Additionally, some applications 104 include medium-performance applications (e.g., fitness tracking applications) that require a lower throughput and higher latency connection with cellular network 108 when compared to high-performance applications to function properly. Likewise, some applications 104 include low-performance applications (e.g., messaging applications, e-mail applications) that require an even lower throughput and higher latency connected with cellular network 108 when compared to high-performance applications and medium-performance applications.
  • high-performance applications include, for example, interactive gaming applications, video calling applications, presentation applications, or any combination thereof, to name a few.
  • some applications 104 include medium-performance applications (e.g., fitness tracking applications) that require a lower throughput and higher latency connection with cellular network
  • modem 112 is configured to send throughput and latency request 114 to cellular network 108.
  • modem 112 is configured to send a UE assistance information (UAI) message that includes throughput and latency request 114 to a cell 110 (e.g., mobile base station tower) of cellular network 108.
  • UAI UE assistance information
  • Throughput and latency request 114 includes, for example, data indicating a requested throughput, request latency, or both for the connection between UE 102 and cellular network 108.
  • latency request 114 includes a request for a range (e.g., high range, medium range, low range) of throughputs and a range (e.g., high range, medium range, low range) of latencies.
  • modem 112 is configured to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108.
  • the connection engine 106 predicts required throughputs (e.g., ranges of throughputs) and required latencies (e.g., ranges of latencies) for different durations while UE 102 is connected to cellular network 108.
  • Modem 112 then transmits throughput and latency request 114 identifying the predicted required throughputs and latencies to cellular network 108.
  • connection engine 106 predicts a required throughput lower than what is required for an application 104 running on UE 102, a required latency higher than what is required for an application running on UE 102, or both, the application 104 running on UE 102 will not function properly and will negatively impact user experience. As an example, predicting a throughput that is lower than required for a video calling application to execute as expected will negatively impact user experience.
  • UE 102 is configured for dynamic throughput and latency adjustment.
  • UE 102 includes a storage 116 such as a solid-state drive (SSD), flash memory, secure digital (SD) card, microSD card, or any combination thereof configured to store application requirement data (“app requirement data”) 122.
  • app requirement data includes respective required throughputs (e.g., required throughput ranges), respective required latencies (e.g., required latency ranges), or both each associated with corresponding applications 104 previously executed on UE 102, expected to be executed on UE 102, currently running on UE 102, or any combination thereof.
  • app requirement data 118 includes a required throughput range (e.g., low, medium, high) and a required latency range (e.g., low, medium, high) for one or more applications 104 previously executed on UE 102, expected to be executed on UE 102, currently running on UE 102, or any combination thereof.
  • a required throughput range e.g., low, medium, high
  • a required latency range e.g., low, medium, high
  • connection engine 106 is configured to determine required throughputs, required latencies, or both for throughout and latency request 114 based on app requirement data 118. For example, in response to an update event, connection engine 106 is configured to query storage 116 to determine whether app requirement data 118 includes required throughputs, required latencies, or both for one or more applications 104 running on UE 102.
  • update events include, for example, an application 104 launching on UE 102, a predetermined amount of time elapsing, the screen 120 turning on, the screen 120 turning off, or any combination thereof.
  • connection engine 106 determines whether one or more applications are in the foreground of screen 120 (e.g., actively being displayed on screen 120), are perceivable to the user of UE 102, or both.
  • a perceivable application 104 includes an application 104 that is not displayed in the foreground of screen 120 but has a perceivable output, for example, an audio output (e.g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof.
  • an audio output e.g., alert, music
  • notifications e.g., audio notifications, displayed notifications
  • a haptic output e.g., navigation, data tracking, or any combination thereof.
  • connection engine 106 queries storage 116 to determine whether app requirement data 118 includes required throughputs (e.g., throughput ranges), required latencies (e.g., latency ranges), or both associated with the applications 104 displayed in the foreground of screen 120, the perceivable applications 104, or both.
  • required throughputs e.g., throughput ranges
  • required latencies e.g., latency ranges
  • modem 112 monitors downlink and uplink traffic patterns between UE 102 and cellular network 108. Based on the monitored download and uplink traffic patterns (e.g., based on the monitored connection), connection engine 106 then determines a required throughput, required latency, or both. For example, connection engine 106 determines a required throughput and required latency by determining an average, maximum, minimum, or any combination thereof of the monitored download and uplink traffic patterns.
  • connection engine 106 After determining a required throughput (e.g., range of throughputs), required latency (e.g., range of latencies), or both, connection engine 106 associates the required throughput and required latency with one or more applications 104 currently running on UE 102 and saves the required throughput and required latency in app requirement data 118. As an example, connection engine 106 stores the required throughput and required latency in app requirement data 118 such that the required throughput and required latency are associated with one or more applications 104 currently running on UE 102.
  • a required throughput e.g., range of throughputs
  • required latency e.g., range of latencies
  • connection engine 106 identifies one or more required throughputs (e.g., ranges of throughputs), required latencies (e.g., ranges of latencies), or both associated with the applications 104 displayed in the foreground of screen 120, perceivable applications 104, or both from app requirement data 118. Based on the identified required throughputs and latencies from app requirement data 118, connection engine 106 instructs modem 112 to send a throughput and latency request 114 to cellular network.
  • required throughputs e.g., ranges of throughputs
  • required latencies e.g., ranges of latencies
  • connection engine 106 instructs modem 112 to send a throughput and latency request indicating the highest throughput identified from app requirement data 118 and the lowest latency identified from app requirement data 118.
  • connection engine 106 instructs modem 112 to send a throughput and latency request indicating the required throughput and required latency identified from app requirement data 118 associated with an application 104 displayed in the foreground of screen 120.
  • UE 102 is configured to dynamically adjust the throughput and latency of the connection between UE and cellular network 108 based on app requirement data 118 associated with applications 104 running on UE 102.
  • connection engine 106 is configured to determine if any applications 104 are running on UE 102. In response to no applications 104 currently running on UE 102, connection engine 106 repeats block 205, and in response to one or more application 104 currently running on UE 102, connection engine 106 moves to block 210. In some embodiments, connection engine 106 is configured to perform block 205 in response to one or more update events (e.g., an application 104 launching on UE 102, a predetermined amount of time elapsing, the screen 120 turning on, the screen 120 turning off).
  • update events e.g., an application 104 launching on UE 102, a predetermined amount of time elapsing, the screen 120 turning on, the screen 120 turning off.
  • connection engine 106 is configured to perform block 205 in response to a predetermined amount of time elapsing.
  • connection engine 106 is configured to determine whether screen 120 is off. If screen 120 is on, connection engine 106 moves to block 225, and if screen 120 is off, connection engine 106 moves to block 215.
  • connection engine 106 determines whether any application 104 running on UE 102 is perceivable to the user. That is to say, connection engine 106 determines whether any application 104 running on UE 102 has a perceivable output, for example, an audio output (e g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof.
  • an audio output e g., alert, music
  • notifications e.g., audio notifications, displayed notifications
  • a haptic output navigation, data tracking, or any combination thereof.
  • connection engine 106 moves to block 220 and instructs modem 112 to send a throughput and latency request 114 requesting a low throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a medium range and high range of throughputs) and high latency range (e.g., a range of latencies that includes latencies greater than the latencies in a medium range and low range of latencies).
  • low throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a medium range and high range of throughputs
  • high latency range e.g., a range of latencies that includes latencies greater than the latencies in a medium range and low range of latencies.
  • connection engine 106 requests low throughputs and high latencies when no applications 104 are perceivable on the device.
  • connection engine 106 moves to block 225.
  • connection engine 106 queries storage 116 to determine whether app requirement data 118 includes required throughputs, required latencies, or both for one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both. In response to app requirement data 118 not including required throughputs or require latencies for any applications 104 in the foreground of screen 120 or perceivable applications 104, connection engine 106 moves to block 235.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
  • medium throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs
  • latency range e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies.
  • connection engine 106 requests medium throughputs and latencies.
  • app requirement data 118 including required throughputs, required latencies, or both for one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both, connection engine 106 moves to block 230.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 based on app requirement data 118.
  • connection engine 106 is configured to identify one or more required throughputs (e.g., ranges of throughputs), required latencies (e.g., ranges of latencies), or both associated with one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both from app requirement data 118. Based on the identified required throughputs, required latencies, or both, connection engine 106 instructs modem 112 to send a throughput and latency request 114.
  • required throughputs e.g., ranges of throughputs
  • required latencies e.g., ranges of latencies
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating a required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) associated with the application 104 displayed in the foreground of screen 120.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating the highest required throughput (e.g., range of throughputs) and the lowest required latency (e.g., range of latencies) identified from app requirement data 118.
  • connection engine 106 requests throughputs and latencies based on the stored app requirement data 118.
  • an example method 300 for dynamic throughput and latency adjustment in response to an application 104 launching is presented.
  • an application 104 launches (e.g., beings to execute) on UE 102.
  • connection engine 106 determines whether the application 104 is displayed in the foreground of screen 120. If the application 104 is not displayed in the foreground of screen 120, connection engine 106 moves to block 345 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108.
  • connection engine 106 moves to block 315.
  • connection engine queries storage 116 to determine whether app requirement data 118 includes a required throughput, a required latency, or both associated with the application 104.
  • app requirement data 118 including a required throughput and required latency associated with the application 104
  • connection engine 106 moves to block 330.
  • connection engine 106 moves to block 320.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
  • medium throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs
  • medium latency range e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies.
  • connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 while the application 104 is running.
  • connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 for a predetermined amount of time while the application 104 is running.
  • connection engine 106 determines a required throughput (e.g., throughput range) and required latency (e.g., latency range).
  • connection engine 106 determines one or more averages, maximums, minimums, or any combination thereof from the monitored downlink and uplink traffic patterns and then determines a required throughput and required latency based on the determined averages, maximums, minimums, or any combination thereof.
  • connection engine 106 after determining the required throughput (e.g., throughput range) and required latency (e.g., latency range), saves the required throughput and required latency in app requirement data 118 such that the required throughput and required latency is associated with the application 104 running on UE 102. That is to say, connection engine 106 updates app requirement data 118 based on the required throughput (e.g., throughput range) and required latency (e.g., latency range) determined from monitoring the connection between UE 102 and cellular network 108.
  • required throughput e.g., throughput range
  • required latency e.g., latency range
  • connection engine 106 identifies a required throughput (e.g., range of throughputs) and a required latency (e.g., range of latencies) based on app requirement data 118 or monitored downlink and uplink traffic patterns between UE 102 and cellular network 108. For example, in response to app requirement data 118 including a required throughput and required latency associated with application 104, connection engine 106 identifies the required throughput and required latency associated with application 104 from app requirement data 118.
  • a required throughput e.g., range of throughputs
  • a required latency e.g., range of latencies
  • connection engine 106 in response to app requirement data 118 not including a required throughput or required latency associated with application 104, identifies a required throughput and required latency from the determined required throughput and required latency determined at block 325. At block 335, connection engine 106 determines whether the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) are currently used by modem 112.
  • required throughput e.g., range of throughputs
  • required latency e.g., range of latencies
  • connection engine 106 proceeds to block 345 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108.
  • connection engine 106 moves to block 340 and instructs modem 112 to send a throughput and latency request 114 indicating the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) to cellular network 108.
  • connection engine 106 updates the throughput and latency of the connection between UE 102 and cellular network 108 based on a recently launched application 104 and app requirement data 118, reducing the likelihood that the throughput and latency of the connection between UE 102 and cellular network 108 do not meet the requirements of the launched application 104.
  • connection engine 106 determines whether any application 104 running on UE 102 is perceivable to the user. In other words, connection engine 106 determines whether any application 104 running on UE 102 has a perceivable output, for example, an audio output (e.g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof.
  • an audio output e.g., alert, music
  • notifications e.g., audio notifications, displayed notifications
  • a haptic output navigation, data tracking, or any combination thereof.
  • connection engine 106 determines (e g., selects) a low throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a medium range and high range of throughputs) and high latency range (e.g., a range of latencies that includes latencies greater than the latencies in a medium range and low range of latencies) for the connection between UE 102 and cellular network 108.
  • connection engine 106 determines whether modem 112 is already using a low throughput range and a high latency range.
  • connection engine 106 moves to block 425 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating a low throughput range and a high latency range to cellular network 108.
  • connection engine 106 in response to connection engine 106 determining that one or more applications 104 running on UE 102 have a perceivable output, connection engine 106 moves to block 435 At block 435, connection engine 106 queries storage 116 to determine whether app requirement data 118 includes a required throughput, a required latency, or both associated one or more perceivable applications 104 (e.g., one or more applications 104 running on UE 102 having a perceivable output). In response to app requirement data 118 including a required throughput and required latency associated with one or more perceivable applications 104, connection engine 106 moves to block 450.
  • connection engine 106 moves to block 440.
  • connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
  • medium throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs
  • medium latency range e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of
  • connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 while the perceivable applications 104 are running.
  • connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 for a predetermined amount of time while one or more perceivable applications 104 are running.
  • connection engine 106 determines a required throughput (e.g., throughput range) and required latency (e.g., latency range).
  • connection engine 106 determines one or more averages, maximums, minimums, or any combination thereof from the monitored downlink and uplink traffic patterns and then determines a required throughput and required latency based on the determined averages, maximums, minimums, or any combination thereof. According to some embodiments, after determining the required throughput (e.g., throughput range) and required latency (e.g., latency range), connection engine 106 saves the required throughput and required latency in app requirement data 118 such that the required throughput and required latency are associated with one or more perceivable applications 104 running on UE 102 (e.g., the applications 104 running on UE 102 having one or more perceivable outputs).
  • the required throughput e.g., throughput range
  • required latency e.g., latency range
  • connection engine 106 saves the required throughput and required latency in app requirement data 118 such that the required throughput and required latency are associated with one or more perceivable applications 104
  • connection engine 106 updates app requirement data 118 based on the required throughput and required latency determined from monitoring the connection between UE 102 and cellular network 108.
  • connection engine 106 identifies a required throughput (e.g., range of throughputs) and a required latency (e.g., range of latencies) based on app requirement data 118 or monitored downlink and uplink traffic patterns between UE 102 and cellular network 108.
  • connection engine 106 identifies the highest required throughput and lowest required latency associated with the perceivable applications 104 from app requirement data 118.
  • connection engine 106 identifies a required throughput and required latency from the determined required throughput and required latency determined at block 445.
  • connection engine 106 determines whether the identified required throughput (e.g., range of throughputs) and required latency (e g., range of latencies) are currently used by modem 112. That is to say, whether the identified required throughput and required latency were the most recently requested throughput and latency in a throughput and latency request 114 sent to cellular network 108. If the identified required and required latency are currently used by modem 112, connection engine 106 proceeds to block 435 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108.
  • the identified required throughput e.g., range of throughputs
  • required latency e.g., range of latencies
  • connection engine 106 moves to block 430 and instructs modem 112 to transmit a throughput and latency request 114 indicating the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) to cellular network 108.
  • connection engine 106 updates the throughput and latency of the connection between UE 102 and cellular network 108 based on the perceivable applications 104 running on UE 102 while the screen 120 is off, reducing the likelihood that the throughput and latency of the connection between UE 102 and cellular network 108 do not meet the requirements of the perceivable applications 104.
  • modem 112 changes the required throughput and required latency for the connection between UE 102 and cellular network 108.
  • modem 112 transmits a throughput and latency request 114 indicating a new (e.g., updated) required throughput and new (e.g., updated) required latency.
  • modem 112 is configured to change the required throughput and required latency for the connection between UE 102 and cellular network 108 according to the blocks of example methods 200, 300, 400.
  • connection engine 106 determines whether there is a single application 104 displayed in the foreground of screen 120. If there is no single application 104 displayed in the foreground of screen 120, connection engine 106 moves to block 515 and does not update app requirement data 118. In some embodiments, at block 515, connection engine 106 logs (e.g., records) data indicating the applications 104 currently executing on UE 102 in storage 116, for example, to later determine or update app requirement data 118 for one or more of the logged applications 104.
  • logs e.g., records
  • connection engine 106 moves to block 520 and updates app requirement data 118 associated with the single application 104 displayed in the foreground of screen 120.
  • connection engine 106 stores the required throughput and required latency used by modem 112 in app requirement data 118 such that the required throughput and required latency are associated with the single application 104 displayed in the foreground of screen 120. That is to say, connection engine 106 stores the required throughput and required latency indicated in the most recent throughput and latency request 114 sent by modem 112 to cellular network 108 in app requirement data 118 such that the required throughput and required latency are associated with the single application 104 displayed in the foreground of screen 120.
  • connection engine 106 only updates app requirement data 118 when there is a single application 104 displayed in the foreground of screen 120. Because app requirement data 118 is only updated when there is a single application 104 displayed in the foreground of screen 120, the confidence that the single application 104 displayed in the foreground of screen 120 is associated with the required throughput and required latency currently being used by modem 112 is high. As such, app requirement data 118 is less likely to identify incorrect required throughputs and latencies for applications 104 running on UE 102. [0036] Referring now to FIG. 6, an example boot-up procedure 600 for UE 102 is presented.
  • connection engine 106 issues a medium throughput and latency instruction 605 to modem 112.
  • a medium throughput and latency instruction 605 includes data instructing modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
  • a medium throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs
  • medium latency range e.g., a range of latencies that includes latencies greater than the latencies
  • procedure 600 includes modem 112 transmitting a medium throughput and latency request 610 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range.
  • modem 112 transmits the throughput and latency request 114 indicating a required medium throughput range and a medium latency range
  • UE 102 performs an application activation command 615 to launch a first application 104. In this way, for example, UE 102 defaults to establishing a connection with cellular network 108 with a medium throughput range and a medium latency range when UE 102 boots up.
  • FIGs. 7 and 8 together present an example dynamic throughput and latency adjustment operation 700 when an application 104 reactivates.
  • example operation 700 first includes connection engine 106 issues a medium throughput and latency instruction 705 to modem 112.
  • a medium throughput and latency instruction 705 includes data instructing modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
  • a medium throughput range e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a
  • example operation 700 includes modem 112 transmitting a medium throughput and latency request 710 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range.
  • modem 112 is using a medium throughput range and a medium latency range for the connection to cellular network 108
  • UE 102 performs a first application activation command 715 to launch a first application 104 that requires a medium throughput range and a medium latency range.
  • UE 102 launches a first application 104 associated with a medium throughput range and a medium latency range stored in app requirement data 118.
  • connection engine 106 does not update the required throughput and required latency for the connection to cellular network 108 when the first application requiring a medium throughput range and a medium latency range launches.
  • UE 102 performs a second application activation command 720 to launch a second application 104 that requires a high throughput range and a low latency range.
  • UE 102 launches a second application 104 associated with a high throughput range and a low latency range stored in app requirement data 118.
  • connection engine 106 issues a high throughput and low latency instruction 725 to modem 112.
  • Such a high throughput and low latency instruction 725 includes data instructing modem 112 to send a throughput and latency request 114 requesting a high throughput range (e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs) and low latency range (e g., a range of latencies that includes latencies less than than the latencies in a medium range and a high range of latencies).
  • a high throughput range e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs
  • low latency range e.g., a range of latencies that includes latencies less than than the latencies in a medium range and a high range of latencies.
  • connection engine 106 identifies a required high throughput range and a required low latency throughput associated with the second application 104 from app requirement data 118 and issues high throughput and low latency instruction 725 based on the identified required high throughput range and a required low latency.
  • modem 112 is configured to send a high throughput and low latency request 730 to cellular network 108 that includes a throughput and latency request 114 indicating a required high throughput range and a low latency range.
  • UE 102 performs a first application reactivation command 735 to relaunch the first application 104 that requires a medium throughput range and a medium latency range. Because the second application requiring a high throughput and low latency has stopped running and because the first application requiring a medium throughput and latency has reactivated, connection engine 106 issues a second medium throughput and latency instruction 740 to modem 112.
  • modem 112 In response to receiving the second medium throughput and latency instruction 740, modem 112 is configured to send a second medium throughput and latency request 745 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range. As such, using example operation 700, modem 112 updates the required throughput and required latency for the connection between UE 102 and cellular network 108 as applications 104 activate or reactivate. In this way, modem 112 dynamically changes the required throughput and required latency for the connection between UE 102 and cellular network 108 based on the applications 104 currently active on UE 102.
  • example operation 900 first includes UE 102 performing a first application activation command 905 to launch a first application 104 that requires a high throughput range and a low latency range.
  • UE 102 launches a first application 104 associated with a high throughput range and a low latency range stored in app requirement data 118.
  • connection engine 106 issues a high throughput and low latency instruction 910 to modem 112.
  • Such a high throughput and low latency instruction 910 includes data instructing modem 112 to send a throughput and latency request 114 requesting a high throughput range (e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs) and low latency range (e.g., a range of latencies that includes latencies less than the latencies in a medium range and a high range of latencies).
  • a high throughput range e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs
  • low latency range e.g., a range of latencies that includes latencies less than the latencies in a medium range and a high range of latencies.
  • connection engine 106 identifies a required high throughput range and a required low latency throughput associated with the first application 104 from app requirement data 118 and issues high throughput and low latency instruction 910 based on the identified required high throughput range and a required low latency.
  • modem 112 is configured to send a high throughput and low latency request 915 to cellular network 108 that includes a throughput and latency request 114 indicating a required high throughput range and a low latency range.
  • UE 102 while the first application 104 is still running, UE 102 performs a second application activation command 920 to launch a second application 104.
  • connection engine 106 does not update the required throughput and latency for the connection between UE 102 and cellular network 108.
  • the first application 104 is configured to stop running (e.g., no longer execute on UE 102).
  • UE 102 In response to the first application 104 stopping, UE 102 performs a first application reactivation command 925 to relaunch the first application 104 (e.g., the first application 104 requiring a high throughput and a low latency).
  • a first application reactivation command 925 to relaunch the first application 104 (e.g., the first application 104 requiring a high throughput and a low latency).
  • connection engine 106 does not update the required throughput and latency for the connection between UE 102 and cellular network 108 when the first application 104 relaunches.
  • certain aspects of the techniques described above may be implemented by one or more processors of a processing system executing software.
  • the software comprises one or more sets of executable instructions stored or otherwise tangibly embodied on a non-transitory computer-readable storage medium.
  • the software can include the instructions and certain data that, when executed by the one or more processors, manipulate the one or more processors to perform one or more aspects of the techniques described above.
  • the non-transitory computer-readable storage medium can include, for example, a magnetic or optical disk storage device, solid-state storage devices such as Flash memory, a cache, random access memory (RAM), or other non-volatile memory device or devices, and the like.
  • the executable instructions stored on the non-transitory computer-readable storage medium may be in source code, assembly language code, object code, or another instruction format that is interpreted or otherwise executable by one or more processors.
  • a computer readable storage medium may include any storage medium, or combination of storage media, accessible by a computer system during use to provide instructions and/or data to the computer system.
  • Such storage media can include, but is not limited to, optical media (e.g, compact disc (CD), digital versatile disc (DVD), Blu-Ray disc), magnetic media (e.g., floppy disc, magnetic tape, or magnetic hard drive), volatile memory (e.g., random access memory (RAM) or cache), non-volatile memory (e.g., read-only memory (ROM) or Flash memory), or microelectromechanical systems (MEMS)-based storage media.
  • optical media e.g, compact disc (CD), digital versatile disc (DVD), Blu-Ray disc
  • magnetic media e.g., floppy disc, magnetic tape, or magnetic hard drive
  • volatile memory e.g., random access memory (RAM) or cache
  • non-volatile memory e.g., read-only memory (ROM) or Flash memory
  • MEMS microelectromechanical systems
  • the computer readable storage medium may be embedded in the computing system (e.g., system RAM or ROM), fixedly attached to the computing system (e.g., a magnetic hard drive), removably attached to the computing system (e.g., an optical disc or Universal Serial Bus (USB)-based Flash memory), or coupled to the computer system via a wired or wireless network (e.g., network accessible storage (NAS)).
  • system RAM or ROM system RAM or ROM
  • USB Universal Serial Bus
  • NAS network accessible storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

User equipment (UE) configured for dynamic throughput and latency adjustment includes a storage that stores application requirement data. The application requirement data includes required throughputs and required latencies for applications expected to be executed on the UE. In response to an update event, a connection engine of the UE is configured to query the application requirement data to identify a required throughput and required latency for one or more applications executing on the UE. Based on the required throughput and required latency identified from the application requirement data, the UE sends a message to a cellular network requesting a connection with the required throughput and require latency.

Description

APPLICATION-BASED DYNAMIC THROUGHPUT AND LATENCY ADJUSTMENT FOR USER EQUIPMENT
BACKGROUND
[0001] A user equipment (UE) typically is configured to execute applications requiring a connection to a cellular network. To execute such applications, the UE includes a modem configured to attach to a cellular network. Additionally, some high- performance applications executing on the UE, such as interactive gaming applications and video calling applications, perform as expected when certain minimum throughputs and maximum latencies for the connection with the cellular network. To this end, the modem of the UE is configured to report such minimum throughput and maximum requirements to the cellular network. As an example, the UE is configured to send a UE assistance information (UAI) message to the cellular network indicating the minimum throughput and maximum requirements. In response to receiving the UAI message, the modem, cellular network, or both adjust the connection between the UE and the cellular network to help meet the minimum throughput and maximum requirements.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The present disclosure may be better understood, and its numerous features and advantages are made apparent to those skilled in the art, by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
[0003] FIG. 1 is a block diagram of a cellular framework including user equipment (UE) configured for dynamic throughput and latency adjustment, in accordance with some embodiments.
[0004] FIG. 2 is a flow diagram of an example method for dynamic throughput and latency adjustment, in accordance with some embodiments.
[0005] FIG. 3 is a flow diagram of an example method for dynamic throughput and latency adjustment in response to an application launching, in accordance with some embodiments. [0006] FIG. 4 is a flow diagram of an example method for dynamic throughput and latency adjustment in response to the screen of UE being turned off, in accordance with some embodiments.
[0007] FIG. 5 is a flow diagram of an example method for updating application requirement data, in accordance with some embodiments.
[0008] FIG. 6 is a flow diagram illustrating an example boot-up procedure for UE, in accordance with some embodiments.
[0009] FIGs. 7 and 8 together present a flow diagram illustrating an example dynamic throughput and latency adjustment operation when an application reactivates, in accordance with some embodiments.
[0010] FIG. 9 is a flow diagram illustrating an example dynamic throughput and latency adjustment operation when a high-requirement application reactivates, in accordance with some embodiments.
SUMMARY OF EMBODIMENTS
[0011] Techniques and systems described herein are directed to UE configured for dynamic throughput and latency adjustment. According to an example embodiment, a method includes identifying a required throughput and a required latency associated with an application executing on UE based on application requirement data stored on the UE. Further, the method can include transmitting, by the UE, a throughput and latency request indicating the required throughput and the required latency to a cellular network.
[0012] In some embodiments, the method may also include, in response to an update event, querying the application requirement data for the required throughput and the required latency associated with the application. The update event can include, for example, a screen of the UE turning off, the application launching on the UE, or a predetermined amount of elapsing. Additionally, the method can include, in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, monitoring a connection between the UE and the cellular network to determine the required throughput and the required latency. Further, the method may include updating the application requirement data based on the required throughput and the required latency determined from monitoring the connection between the UE and the cellular network.
[0013] Also, within the example method, identifying the required throughput and the required latency associated with the application executing on the UE may be in response to the application being displayed on a screen of the UE or in response to the application providing a perceivable output while a screen of the UE is off. The method can further include, in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, transmitting, by the UE, a second throughput and latency request indicating a first range of throughputs and a first range of latencies to the cellular network. Additionally, the method can include identifying a second required throughput and a second required latency associated with a second application executing on the UE based on the application requirement data. In response to the second required throughput of the second application being greater than the required throughput of the application and in response to the second required latency of the second application being greater than the required latency of the application, the method may include transmitting, by the UE, a second throughput and latency request indicating the second required throughput and the second required latency to the cellular network. Further, generally, the throughput and latency request can include a UAI message.
[0014] According to another example embodiment, a UE is configured to perform any method disclosed herein. Also, in accordance with yet another example embodiment, a non-transitory computer-readable storage medium stores executable instructions configured to manipulate a UE to perform any method disclosed herein.
DETAILED DESCRIPTION
[0015] A UE attached to a cellular network is configured to execute multiple applications each having different performance requirements. For example, some high-performance applications (e.g., interactive gaming applications, video calling applications, voice calling applications, streaming applications) require a high- throughput connection, low-latency connection, or both with the cellular network to execute as desired. In contrast, some medium-performance applications (e.g., fitness tracking applications, e-mail applications) require a lower throughput connection, higher latency connection, or both to execute as desired. To this end, a UE is configured to send a message to the cellular network indicating a desired throughput, latency, or both for the connection between the cellular network and the UE. To help determine a throughput, latency, or both to request from the cellular network, the UE is configured to monitor downlink and uplink traffic patterns between the UE and the cellular network. Based on the monitored traffic patterns, the UE then predicts required throughputs, latencies, or both for different durations that allow applications to execute as desired while also limiting power consumption by the UE. However, mispredicting these required throughputs and latencies increases the likelihood that certain applications (e.g., high-performance applications) do not execute as desired, negatively impacting user experience. For example, predicting a latency that is higher than required for an interactive gaming application to execute as desired negatively impacts user experience.
[0016] To this end, techniques and systems disclosed herein are directed to a UE configured for dynamic throughput and latency adjustment. For example, the UE configured for dynamic throughput and latency adjustment includes a storage (e.g., solid-state drive (SSD), flash memory) storing application requirement data (“app requirement data”). The app requirement data, for example, includes a data structure indicating the throughput and latency requirements for one or more applications previously executed on the UE, expected to be executed on the UE, or both. As an example, the app requirement data indicates respective throughput ranges (e.g., low throughput range, medium throughout range, high throughput range) and respective required latency ranges (e.g., low latency range, medium latency range, high latency range) each associated with corresponding applications. Using the app requirement data, the UE is configured to determine required throughputs and latencies and request these determined throughputs and latencies from the cellular network. As an example, in response to an application launching on the UE, an application being in the foreground of a screen of the UE, or both, the UE determines whether app requirement data associated with the application is present in the storage If no app requirement data associated with the application is present in the storage, the UE then monitors the downlink and uplink traffic patterns between the UE and the cellular network while the application is running. Based on the monitored downlink and uplink traffic patterns, the UE then determines a required throughput (e.g., throughput range) and required latency (e.g., latency range) for the application and saves the determined throughput and latency requirements for the application in the app requirement data. If app requirement data associated with the application is present in the storage, the UE identifies the required throughout (e.g., throughput range) and required latency (e.g., latency range) associated with the application from the app requirement data and requests the identified throughput and latency requirements from the cellular network. In this way, the UE dynamically adjusts the throughput and latency of the connection between the UE and the cellular network based on the stored requirements of currently executing applications. As such, the likelihood that certain applications (e.g., high-performance applications) do not execute as desired due to an improperly predicted throughput or latency is reduced, improving user experience.
[0017] FIG. 1 presents a cellular networking framework 100 including user equipment (UE) 102 configured for dynamic throughput and latency adjustment. To this end, cellular networking framework 100 includes cellular network 108 associated with one or more cellular carriers (e.g., cellular providers). Cellular network 108 is configured to transmit and receive one or more network messages to and from UE 102 and includes, for example, a Global System for Mobile Communication (GSM) cellular network, a Universal Mobile Telecommunications System (UMTS) cellular network, a Third Generation Partnership Project (3GPP) Fourth Generation (4G) Long-Term Evolution (LTE) cellular network, a 3GPP Fifth Generation (5G) New Radio (NR) cellular network, 5G Technical Forum (5GTF), a 5G Special Interest Group cellular network (5G-SIG), or any combination thereof. Network messages transmitted and received by cellular network 108 include, for example, telephone calls, Voice over Internet Protocol (VoIP) calls, Short Message Service (SMS) messages, Multimedia Messaging Service (MMS) messages, authentication messages, registrations messages, update messages, attach messages, service request messages, or any combination thereof, to name a few. To facilitate the transmission and reception of network messages between cellular network 108 and UE 102, cellular network 108 includes one or more cells 110 configured to receive and transmit network messages to and from UE 102. Each cell 110 includes, for example, mobile base station towers (e.g., “cell towers”), antennae, transmitters, receivers, digital signal processors, control electronics, Global Positioning System (GPS) receivers, base transceiver stations, or any combination thereof, configured to receive and transmit network messages to and from UE 102. Though the example embodiment illustrated in FIG. 1 presents the cellular network 108 having three cells 110-1 , 110-2, and 110-3, in other embodiments, cellular network 108 may include any number of cells 110 to facilitate the reception and transmission of network messages to and from UE 102.
[0018] UE 102 is configured to transmit and receive network messages from cellular network 108 and includes, for example, a compute-enabled phone (“smartphone”), a tablet computer, a personal computer, a laptop computer, a compute-enabled wearable device (e.g., smartwatch, fitness tracker, smart bracelet), an Internet of Things (loT) device, a router, a mobile hotspot device, an automotive device, a manufacturing device, or any combination thereof, to name a few. To transmit and receive network messages from cellular network 108, UE 102 includes or is otherwise connected to modem 112. Modem 112 includes hardware-based circuitry, software-based circuitry, or both configured to transmit or receive network messages using one or more radio access technologies. Such radio access technologies include a connection method or protocol used to communicatively couple UE 102 to one or more cellular networks 108, for example, 2G network connections (e.g., Global System for Mobile Communications (GSM) protocols, code division multiple access (CDMA) protocols, general packet radio service (GPRS) protocols, enhanced data rates for GSM evolution (EDGE) protocols), 3G network connections (e.g., Universal Mobile Telecommunications System (UMTS) protocols, wideband code division multiple access (W-CDMA) protocols, CDMA-200 protocols, high-speed packet access (HSPA) protocols), 4G network communications (e.g., Long Term Evolution (LTE) protocols, Worldwide Interoperability for Microwave Access (WiMAX) protocols), 5G network communications (e.g., 5G New Radio (NR) protocols, 5G Technical Forum (5GTF) protocols, 5G Special Interest Group (5G-SIG) protocols), or any combination thereof. For example, modem 112 is configured to transmit and receive network messages from cellular network 108 using 5G network communications. Additionally, modem 112 includes or is otherwise connected to connection engine 106 that includes hardware-based circuitry, software-based circuitry, or both configured to generate one or more network messages, handle one or more received network messages (e.g., queue one or more received network messages, provide one or more network messages to other circuitry of UE 102), handle one or more network messages for transmission (e.g., queue one or more network messages for transmission), or both. As an example, connection engine 106 includes telephony circuitry configured to generate, handle, or both one or more network messages for transmission to cellular network 108.
[0019] In embodiments, to transmit and receive network messages from cellular network 108, UE 102 is configured to initially communicatively couple to (e.g., camp on) one or more cells 110 of cellular network 108. For example, in response to UE 102 powering on, UE 102 is configured to communicatively couple to (e.g , camp on) one or more cells 110 of a cellular network 108 associated with a cellular carrier (e.g., cellular provider). In response to UE 102 being communicatively coupled to one or more cells 110 of a cellular network 108 associated with a cellular carrier, cellular network 108 is configured to authenticate and register UE 102.
[0020] According to embodiments, UE 102 is configured to execute one or more applications 104 each requiring a connection to cellular network 108. Such applications, for example, include interactive gaming applications, navigation applications, streaming applications, presentation applications, video calling applications, voice calling applications, fitness tracking applications, messaging applications, e-mail applications, and the like, to name a few. To execute these applications 104, UE 102 includes a screen 120 implemented in otherwise connected to UE 102. Screen 120 is configured to display icons, graphics, data, video, or any combination thereof associated with an application 104 executing on UE 102. As an example, screen 120 is configured to display a gaming environment while an interactive gaming application is running on UE 102. In some embodiments, some applications 104 include high-performance applications that require a high throughput and low latency connection with cellular network 108 to function properly (e.g., to function as expected). Such high-performance applications include, for example, interactive gaming applications, video calling applications, presentation applications, or any combination thereof, to name a few. Additionally, some applications 104 include medium-performance applications (e.g., fitness tracking applications) that require a lower throughput and higher latency connection with cellular network 108 when compared to high-performance applications to function properly. Likewise, some applications 104 include low-performance applications (e.g., messaging applications, e-mail applications) that require an even lower throughput and higher latency connected with cellular network 108 when compared to high-performance applications and medium-performance applications. [0021] To accommodate the throughput and latency requirements of the applications 104, modem 112 is configured to send throughput and latency request 114 to cellular network 108. For example, modem 112 is configured to send a UE assistance information (UAI) message that includes throughput and latency request 114 to a cell 110 (e.g., mobile base station tower) of cellular network 108. Throughput and latency request 114 includes, for example, data indicating a requested throughput, request latency, or both for the connection between UE 102 and cellular network 108. As an example, throughout latency request 114 includes a request for a range (e.g., high range, medium range, low range) of throughputs and a range (e.g., high range, medium range, low range) of latencies. To determine requested throughputs and latencies for throughput and latency request 114, in some embodiments, modem 112 is configured to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108. Based on the monitored downlink and uplink traffic patterns (e.g., based on the monitored connection), the connection engine 106 predicts required throughputs (e.g., ranges of throughputs) and required latencies (e.g., ranges of latencies) for different durations while UE 102 is connected to cellular network 108. Modem 112 then transmits throughput and latency request 114 identifying the predicted required throughputs and latencies to cellular network 108. However, in the event that connection engine 106 predicts a required throughput lower than what is required for an application 104 running on UE 102, a required latency higher than what is required for an application running on UE 102, or both, the application 104 running on UE 102 will not function properly and will negatively impact user experience. As an example, predicting a throughput that is lower than required for a video calling application to execute as expected will negatively impact user experience.
[0022] To this end, UE 102 is configured for dynamic throughput and latency adjustment. To perform dynamic throughput and latency adjustment, in some embodiments, UE 102 includes a storage 116 such as a solid-state drive (SSD), flash memory, secure digital (SD) card, microSD card, or any combination thereof configured to store application requirement data (“app requirement data”) 122. Such app requirement data 118, for example, includes respective required throughputs (e.g., required throughput ranges), respective required latencies (e.g., required latency ranges), or both each associated with corresponding applications 104 previously executed on UE 102, expected to be executed on UE 102, currently running on UE 102, or any combination thereof. For example, app requirement data 118 includes a required throughput range (e.g., low, medium, high) and a required latency range (e.g., low, medium, high) for one or more applications 104 previously executed on UE 102, expected to be executed on UE 102, currently running on UE 102, or any combination thereof.
[0023] According to embodiments, connection engine 106 is configured to determine required throughputs, required latencies, or both for throughout and latency request 114 based on app requirement data 118. For example, in response to an update event, connection engine 106 is configured to query storage 116 to determine whether app requirement data 118 includes required throughputs, required latencies, or both for one or more applications 104 running on UE 102. Such update events include, for example, an application 104 launching on UE 102, a predetermined amount of time elapsing, the screen 120 turning on, the screen 120 turning off, or any combination thereof. After such an update event, connection engine 106 then determines whether one or more applications are in the foreground of screen 120 (e.g., actively being displayed on screen 120), are perceivable to the user of UE 102, or both. A perceivable application 104, for example, includes an application 104 that is not displayed in the foreground of screen 120 but has a perceivable output, for example, an audio output (e.g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof. In response to determining one or more applications 104 are displayed in the foreground of screen 120, are perceivable, or both, connection engine 106 queries storage 116 to determine whether app requirement data 118 includes required throughputs (e.g., throughput ranges), required latencies (e.g., latency ranges), or both associated with the applications 104 displayed in the foreground of screen 120, the perceivable applications 104, or both.
[0024] If app requirement data 118 does not include required throughputs, required latencies, or both for any applications 104 displayed in the foreground of screen 120 or any perceivable applications 104, modem 112 monitors downlink and uplink traffic patterns between UE 102 and cellular network 108. Based on the monitored download and uplink traffic patterns (e.g., based on the monitored connection), connection engine 106 then determines a required throughput, required latency, or both. For example, connection engine 106 determines a required throughput and required latency by determining an average, maximum, minimum, or any combination thereof of the monitored download and uplink traffic patterns. After determining a required throughput (e.g., range of throughputs), required latency (e.g., range of latencies), or both, connection engine 106 associates the required throughput and required latency with one or more applications 104 currently running on UE 102 and saves the required throughput and required latency in app requirement data 118. As an example, connection engine 106 stores the required throughput and required latency in app requirement data 118 such that the required throughput and required latency are associated with one or more applications 104 currently running on UE 102. Further, if app requirement data 118 includes required throughputs and latencies for one or more applications 104 displayed in the foreground of screen 120, perceivable applications 104, or both, connection engine 106 identifies one or more required throughputs (e.g., ranges of throughputs), required latencies (e.g., ranges of latencies), or both associated with the applications 104 displayed in the foreground of screen 120, perceivable applications 104, or both from app requirement data 118. Based on the identified required throughputs and latencies from app requirement data 118, connection engine 106 instructs modem 112 to send a throughput and latency request 114 to cellular network. As an example, connection engine 106 instructs modem 112 to send a throughput and latency request indicating the highest throughput identified from app requirement data 118 and the lowest latency identified from app requirement data 118. As another example, connection engine 106 instructs modem 112 to send a throughput and latency request indicating the required throughput and required latency identified from app requirement data 118 associated with an application 104 displayed in the foreground of screen 120. In this way, UE 102 is configured to dynamically adjust the throughput and latency of the connection between UE and cellular network 108 based on app requirement data 118 associated with applications 104 running on UE 102. As such, the likelihood of requesting a lower throughput than required, higher latency than required, or both for certain applications 104 (e.g., high-performance applications) executing on UE 102 is reduced. As such, these applications 104 (e.g., high-performance applications) are more likely to execute as desired, improving user experience.
[0025] Referring now to FIG. 2, an example method 200 for dynamic throughput and latency adjustment is presented. According to embodiments, at block 205 of example method 200, connection engine 106 is configured to determine if any applications 104 are running on UE 102. In response to no applications 104 currently running on UE 102, connection engine 106 repeats block 205, and in response to one or more application 104 currently running on UE 102, connection engine 106 moves to block 210. In some embodiments, connection engine 106 is configured to perform block 205 in response to one or more update events (e.g., an application 104 launching on UE 102, a predetermined amount of time elapsing, the screen 120 turning on, the screen 120 turning off). As an example, connection engine 106 is configured to perform block 205 in response to a predetermined amount of time elapsing. At block 210, connection engine 106 is configured to determine whether screen 120 is off. If screen 120 is on, connection engine 106 moves to block 225, and if screen 120 is off, connection engine 106 moves to block 215. At block 215, connection engine 106 determines whether any application 104 running on UE 102 is perceivable to the user. That is to say, connection engine 106 determines whether any application 104 running on UE 102 has a perceivable output, for example, an audio output (e g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof. In response no applications 104 having a perceivable output, connection engine 106 moves to block 220 and instructs modem 112 to send a throughput and latency request 114 requesting a low throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a medium range and high range of throughputs) and high latency range (e.g., a range of latencies that includes latencies greater than the latencies in a medium range and low range of latencies). In this way, for example, connection engine 106 requests low throughputs and high latencies when no applications 104 are perceivable on the device. In response to one or more applications 104 having a perceivable output, connection engine 106 moves to block 225.
[0026] At block 225, connection engine 106 queries storage 116 to determine whether app requirement data 118 includes required throughputs, required latencies, or both for one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both. In response to app requirement data 118 not including required throughputs or require latencies for any applications 104 in the foreground of screen 120 or perceivable applications 104, connection engine 106 moves to block 235. At block 235, connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies). As such, for example, when the required throughputs and required latencies of the applications 104 running on UE 102 are unknown (e.g., when no app requirement data 118 associated with the applications 104 is in storage 116), connection engine 106 requests medium throughputs and latencies. In response to app requirement data 118 including required throughputs, required latencies, or both for one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both, connection engine 106 moves to block 230.
[0027] At block 230, connection engine 106 instructs modem 112 to send a throughput and latency request 114 based on app requirement data 118. To this end, connection engine 106 is configured to identify one or more required throughputs (e.g., ranges of throughputs), required latencies (e.g., ranges of latencies), or both associated with one or more applications 104 in the foreground of screen 120, perceivable applications 104, or both from app requirement data 118. Based on the identified required throughputs, required latencies, or both, connection engine 106 instructs modem 112 to send a throughput and latency request 114. As an example, connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating a required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) associated with the application 104 displayed in the foreground of screen 120. As another example, connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating the highest required throughput (e.g., range of throughputs) and the lowest required latency (e.g., range of latencies) identified from app requirement data 118. In this way, for example, when the required throughputs and required latencies of the applications 104 running on UE 102 are known (e.g., when app requirement data 118 associated with the applications 104 is in storage 116), connection engine 106 requests throughputs and latencies based on the stored app requirement data 118.
[0028] Referring now to FIG. 3, an example method 300 for dynamic throughput and latency adjustment in response to an application 104 launching is presented. At block 305, an application 104 launches (e.g., beings to execute) on UE 102. In response to the application 104 launching (e.g., in response to the update event of an application 104 launching), at block 310, connection engine 106 determines whether the application 104 is displayed in the foreground of screen 120. If the application 104 is not displayed in the foreground of screen 120, connection engine 106 moves to block 345 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108. If the application 104 is displayed in the foreground of screen 120, connection engine 106 moves to block 315. At block 315, connection engine queries storage 116 to determine whether app requirement data 118 includes a required throughput, a required latency, or both associated with the application 104. In response to app requirement data 118 including a required throughput and required latency associated with the application 104, connection engine 106 moves to block 330. Further, in response to app requirement data 118 not including a required throughput or required latency associated with the application 104, connection engine 106 moves to block 320. At block 320, connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies).
[0029] After instructing modem 112 to request the medium throughput and latency ranges, at block 325, connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 while the application 104 is running. As an example, connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 for a predetermined amount of time while the application 104 is running. Based on modem 112 monitoring downlink and uplink traffic patterns (e.g., based on the monitored connection), connection engine 106 determines a required throughput (e.g., throughput range) and required latency (e.g., latency range). For example, connection engine 106 determines one or more averages, maximums, minimums, or any combination thereof from the monitored downlink and uplink traffic patterns and then determines a required throughput and required latency based on the determined averages, maximums, minimums, or any combination thereof. According to some embodiments, after determining the required throughput (e.g., throughput range) and required latency (e.g., latency range), connection engine 106 saves the required throughput and required latency in app requirement data 118 such that the required throughput and required latency is associated with the application 104 running on UE 102. That is to say, connection engine 106 updates app requirement data 118 based on the required throughput (e.g., throughput range) and required latency (e.g., latency range) determined from monitoring the connection between UE 102 and cellular network 108.
[0030] At block 330, connection engine 106 identifies a required throughput (e.g., range of throughputs) and a required latency (e.g., range of latencies) based on app requirement data 118 or monitored downlink and uplink traffic patterns between UE 102 and cellular network 108. For example, in response to app requirement data 118 including a required throughput and required latency associated with application 104, connection engine 106 identifies the required throughput and required latency associated with application 104 from app requirement data 118. As another example, in response to app requirement data 118 not including a required throughput or required latency associated with application 104, connection engine 106 identifies a required throughput and required latency from the determined required throughput and required latency determined at block 325. At block 335, connection engine 106 determines whether the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) are currently used by modem 112.
That is to say, whether the identified required throughput and required latency were the most recently requested throughput and latency in a throughput and latency request 114 sent to cellular network 108. If the identified required throughput and required latency are currently used by modem 112, connection engine 106 proceeds to block 345 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108. If the identified required throughput and required latency are not currently used by modem 112, connection engine 106 moves to block 340 and instructs modem 112 to send a throughput and latency request 114 indicating the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) to cellular network 108. In this way, connection engine 106 updates the throughput and latency of the connection between UE 102 and cellular network 108 based on a recently launched application 104 and app requirement data 118, reducing the likelihood that the throughput and latency of the connection between UE 102 and cellular network 108 do not meet the requirements of the launched application 104. [0031] Referring now to FIG. 4, an example method 400 for dynamic throughput and latency adjustment in response to the screen 120 of UE 102 being turned off. At block 405, screen 120 is turned off At block 410, in response to screen 120 being turned off (e.g., in response to an update event of screen 120 turning off), connection engine 106 determines whether any application 104 running on UE 102 is perceivable to the user. In other words, connection engine 106 determines whether any application 104 running on UE 102 has a perceivable output, for example, an audio output (e.g., alert, music), notifications (e.g., audio notifications, displayed notifications), a haptic output, navigation, data tracking, or any combination thereof. In response to no applications 104 running on UE 102 having any perceivable output, connection engine 106 moves to block 415. At block 415, connection engine 106 determines (e g., selects) a low throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a medium range and high range of throughputs) and high latency range (e.g., a range of latencies that includes latencies greater than the latencies in a medium range and low range of latencies) for the connection between UE 102 and cellular network 108. At block 420, connection engine 106 determines whether modem 112 is already using a low throughput range and a high latency range. That is to say, for example, whether the most recent throughput and latency request 114 sent from modem 112 to cellular network 108 indicated the low throughput range and a high latency range. In response to determining the modem is already using a low throughput range and a high latency range, connection engine 106 moves to block 425 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108. In response to determining the modem is not already using a low throughput range and a high latency range, connection engine 106 instructs modem 112 to send a throughput and latency request 114 indicating a low throughput range and a high latency range to cellular network 108.
[0032] Referring again to block 410, in response to connection engine 106 determining that one or more applications 104 running on UE 102 have a perceivable output, connection engine 106 moves to block 435 At block 435, connection engine 106 queries storage 116 to determine whether app requirement data 118 includes a required throughput, a required latency, or both associated one or more perceivable applications 104 (e.g., one or more applications 104 running on UE 102 having a perceivable output). In response to app requirement data 118 including a required throughput and required latency associated with one or more perceivable applications 104, connection engine 106 moves to block 450. Further, in response to app requirement data 118 not including a required throughput or required latency associated with any perceivable application 104, connection engine 106 moves to block 440. At block 440, connection engine 106 instructs modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies). After instructing modem 112 to request the medium throughput and latency ranges, at block 445, connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 while the perceivable applications 104 are running. As an example, connection engine 106 instructs modem 112 to monitor downlink and uplink traffic patterns between UE 102 and cellular network 108 for a predetermined amount of time while one or more perceivable applications 104 are running. Based on modem 112 monitoring downlink and uplink traffic patterns (e.g , based on the monitored connection), connection engine 106 determines a required throughput (e.g., throughput range) and required latency (e.g., latency range). For example, connection engine 106 determines one or more averages, maximums, minimums, or any combination thereof from the monitored downlink and uplink traffic patterns and then determines a required throughput and required latency based on the determined averages, maximums, minimums, or any combination thereof. According to some embodiments, after determining the required throughput (e.g., throughput range) and required latency (e.g., latency range), connection engine 106 saves the required throughput and required latency in app requirement data 118 such that the required throughput and required latency are associated with one or more perceivable applications 104 running on UE 102 (e.g., the applications 104 running on UE 102 having one or more perceivable outputs). In other words, for example, connection engine 106 updates app requirement data 118 based on the required throughput and required latency determined from monitoring the connection between UE 102 and cellular network 108. [0033] At block 450, connection engine 106 identifies a required throughput (e.g., range of throughputs) and a required latency (e.g., range of latencies) based on app requirement data 118 or monitored downlink and uplink traffic patterns between UE 102 and cellular network 108. For example, in response to app requirement data 118 including a required throughput and required latency associated with one or more perceivable applications 104 running on UE 102, connection engine 106 identifies the highest required throughput and lowest required latency associated with the perceivable applications 104 from app requirement data 118. As another example, in response to app requirement data 118 not including a required throughput or required latency associated with any perceivable application 104 running on UE 102, connection engine 106 identifies a required throughput and required latency from the determined required throughput and required latency determined at block 445. At block 420, connection engine 106 determines whether the identified required throughput (e.g., range of throughputs) and required latency (e g., range of latencies) are currently used by modem 112. That is to say, whether the identified required throughput and required latency were the most recently requested throughput and latency in a throughput and latency request 114 sent to cellular network 108. If the identified required and required latency are currently used by modem 112, connection engine 106 proceeds to block 435 and does not update (e.g., adjust) the throughput and latency of the connection between UE 102 and cellular network 108. If the identified required throughput and required latency are not currently used by modem 112, connection engine 106 moves to block 430 and instructs modem 112 to transmit a throughput and latency request 114 indicating the identified required throughput (e.g., range of throughputs) and required latency (e.g., range of latencies) to cellular network 108. In this way, connection engine 106 updates the throughput and latency of the connection between UE 102 and cellular network 108 based on the perceivable applications 104 running on UE 102 while the screen 120 is off, reducing the likelihood that the throughput and latency of the connection between UE 102 and cellular network 108 do not meet the requirements of the perceivable applications 104.
[0034] Referring now to FIG. 5, an example method 500 for updating app requirement data 118 is presented. At block 505, modem 112 changes the required throughput and required latency for the connection between UE 102 and cellular network 108. For example, modem 112 transmits a throughput and latency request 114 indicating a new (e.g., updated) required throughput and new (e.g., updated) required latency. In some embodiments, modem 112 is configured to change the required throughput and required latency for the connection between UE 102 and cellular network 108 according to the blocks of example methods 200, 300, 400. After modem 112 changes the required throughput and required latency for the connection between UE 102 and cellular network 108, at block 510, connection engine 106 determines whether there is a single application 104 displayed in the foreground of screen 120. If there is no single application 104 displayed in the foreground of screen 120, connection engine 106 moves to block 515 and does not update app requirement data 118. In some embodiments, at block 515, connection engine 106 logs (e.g., records) data indicating the applications 104 currently executing on UE 102 in storage 116, for example, to later determine or update app requirement data 118 for one or more of the logged applications 104.
[0035] If there is a single application 104 displayed in the foreground of screen 120, connection engine 106 moves to block 520 and updates app requirement data 118 associated with the single application 104 displayed in the foreground of screen 120. As an example, connection engine 106 stores the required throughput and required latency used by modem 112 in app requirement data 118 such that the required throughput and required latency are associated with the single application 104 displayed in the foreground of screen 120. That is to say, connection engine 106 stores the required throughput and required latency indicated in the most recent throughput and latency request 114 sent by modem 112 to cellular network 108 in app requirement data 118 such that the required throughput and required latency are associated with the single application 104 displayed in the foreground of screen 120. In this way, connection engine 106 only updates app requirement data 118 when there is a single application 104 displayed in the foreground of screen 120. Because app requirement data 118 is only updated when there is a single application 104 displayed in the foreground of screen 120, the confidence that the single application 104 displayed in the foreground of screen 120 is associated with the required throughput and required latency currently being used by modem 112 is high. As such, app requirement data 118 is less likely to identify incorrect required throughputs and latencies for applications 104 running on UE 102. [0036] Referring now to FIG. 6, an example boot-up procedure 600 for UE 102 is presented. In response to UE 102 booting up (e.g., turning on, entering an active state), connection engine 106 issues a medium throughput and latency instruction 605 to modem 112. Such a medium throughput and latency instruction 605, for example, includes data instructing modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies). In response to receiving medium throughput and latency instruction 605, procedure 600 includes modem 112 transmitting a medium throughput and latency request 610 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range. After modem 112 transmits the throughput and latency request 114 indicating a required medium throughput range and a medium latency range, UE 102 performs an application activation command 615 to launch a first application 104. In this way, for example, UE 102 defaults to establishing a connection with cellular network 108 with a medium throughput range and a medium latency range when UE 102 boots up.
[0037] FIGs. 7 and 8 together present an example dynamic throughput and latency adjustment operation 700 when an application 104 reactivates. In embodiments, example operation 700 first includes connection engine 106 issues a medium throughput and latency instruction 705 to modem 112. Such a medium throughput and latency instruction 705, for example, includes data instructing modem 112 to send a throughput and latency request 114 requesting a medium throughput range (e.g., a range of throughputs that includes throughputs less than the throughputs in a high range of throughputs and greater than the throughputs in a low range of throughputs) and medium latency range (e.g., a range of latencies that includes latencies greater than the latencies in a low range of latencies and less than the latencies in a high range of latencies). In response to receiving medium throughput and latency instruction 705, example operation 700 includes modem 112 transmitting a medium throughput and latency request 710 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range. Once modem 112 is using a medium throughput range and a medium latency range for the connection to cellular network 108, UE 102 performs a first application activation command 715 to launch a first application 104 that requires a medium throughput range and a medium latency range. As an example, UE 102 launches a first application 104 associated with a medium throughput range and a medium latency range stored in app requirement data 118. In some embodiments, because modem 112 is already using a medium throughput range and a medium latency range for the connection to cellular network 108, connection engine 106 does not update the required throughput and required latency for the connection to cellular network 108 when the first application requiring a medium throughput range and a medium latency range launches.
[0038] In embodiments, after the first application 104 stops (e.g., is no longer executing), UE 102 performs a second application activation command 720 to launch a second application 104 that requires a high throughput range and a low latency range. As an example, UE 102 launches a second application 104 associated with a high throughput range and a low latency range stored in app requirement data 118. According to embodiments, after the second application 104 requiring a high throughput range and a low latency range launches, connection engine 106 issues a high throughput and low latency instruction 725 to modem 112. Such a high throughput and low latency instruction 725, for example, includes data instructing modem 112 to send a throughput and latency request 114 requesting a high throughput range (e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs) and low latency range (e g., a range of latencies that includes latencies less than than the latencies in a medium range and a high range of latencies). As an example, in embodiments, connection engine 106 identifies a required high throughput range and a required low latency throughput associated with the second application 104 from app requirement data 118 and issues high throughput and low latency instruction 725 based on the identified required high throughput range and a required low latency. In response to receiving high throughput and low latency instruction 725, modem 112 is configured to send a high throughput and low latency request 730 to cellular network 108 that includes a throughput and latency request 114 indicating a required high throughput range and a low latency range. [0039] Referring now to FIG. 8, according to embodiments, after the second application 104 stops (e.g., is no longer executing), UE 102 performs a first application reactivation command 735 to relaunch the first application 104 that requires a medium throughput range and a medium latency range. Because the second application requiring a high throughput and low latency has stopped running and because the first application requiring a medium throughput and latency has reactivated, connection engine 106 issues a second medium throughput and latency instruction 740 to modem 112. In response to receiving the second medium throughput and latency instruction 740, modem 112 is configured to send a second medium throughput and latency request 745 to cellular network 108 that includes a throughput and latency request 114 indicating a required medium throughput range and a medium latency range. As such, using example operation 700, modem 112 updates the required throughput and required latency for the connection between UE 102 and cellular network 108 as applications 104 activate or reactivate. In this way, modem 112 dynamically changes the required throughput and required latency for the connection between UE 102 and cellular network 108 based on the applications 104 currently active on UE 102.
[0040] Referring now to FIG. 9, an example dynamic throughput and latency adjustment operation 900 when a high-requirement application reactivates is presented. According to embodiments, example operation 900 first includes UE 102 performing a first application activation command 905 to launch a first application 104 that requires a high throughput range and a low latency range. As an example, UE 102 launches a first application 104 associated with a high throughput range and a low latency range stored in app requirement data 118. In response to UE 102 launching the first application 104 requiring a high throughput range and a low latency range, connection engine 106 issues a high throughput and low latency instruction 910 to modem 112. Such a high throughput and low latency instruction 910, for example, includes data instructing modem 112 to send a throughput and latency request 114 requesting a high throughput range (e.g., a range of throughputs that includes throughputs greater than the throughputs in a low range and a medium range of throughputs) and low latency range (e.g., a range of latencies that includes latencies less than the latencies in a medium range and a high range of latencies). As an example, in embodiments, connection engine 106 identifies a required high throughput range and a required low latency throughput associated with the first application 104 from app requirement data 118 and issues high throughput and low latency instruction 910 based on the identified required high throughput range and a required low latency. In response to receiving high throughput and low latency instruction 910, modem 112 is configured to send a high throughput and low latency request 915 to cellular network 108 that includes a throughput and latency request 114 indicating a required high throughput range and a low latency range.
[0041] In embodiments, while the first application 104 is still running, UE 102 performs a second application activation command 920 to launch a second application 104. However, because modem 112 is already using a required high throughput and low latency for the connection between UE 102 and cellular network 108, connection engine 106 does not update the required throughput and latency for the connection between UE 102 and cellular network 108. Further, according to some embodiments, the first application 104 is configured to stop running (e.g., no longer execute on UE 102). In response to the first application 104 stopping, UE 102 performs a first application reactivation command 925 to relaunch the first application 104 (e.g., the first application 104 requiring a high throughput and a low latency). Here, because modem 112 is already using a required high throughput and low latency for the connection between UE 102 and cellular network 108, connection engine 106 does not update the required throughput and latency for the connection between UE 102 and cellular network 108 when the first application 104 relaunches.
[0042] In some embodiments, certain aspects of the techniques described above may be implemented by one or more processors of a processing system executing software. The software comprises one or more sets of executable instructions stored or otherwise tangibly embodied on a non-transitory computer-readable storage medium. The software can include the instructions and certain data that, when executed by the one or more processors, manipulate the one or more processors to perform one or more aspects of the techniques described above. The non-transitory computer-readable storage medium can include, for example, a magnetic or optical disk storage device, solid-state storage devices such as Flash memory, a cache, random access memory (RAM), or other non-volatile memory device or devices, and the like. The executable instructions stored on the non-transitory computer-readable storage medium may be in source code, assembly language code, object code, or another instruction format that is interpreted or otherwise executable by one or more processors.
[0043] A computer readable storage medium may include any storage medium, or combination of storage media, accessible by a computer system during use to provide instructions and/or data to the computer system. Such storage media can include, but is not limited to, optical media (e.g, compact disc (CD), digital versatile disc (DVD), Blu-Ray disc), magnetic media (e.g., floppy disc, magnetic tape, or magnetic hard drive), volatile memory (e.g., random access memory (RAM) or cache), non-volatile memory (e.g., read-only memory (ROM) or Flash memory), or microelectromechanical systems (MEMS)-based storage media. The computer readable storage medium may be embedded in the computing system (e.g., system RAM or ROM), fixedly attached to the computing system (e.g., a magnetic hard drive), removably attached to the computing system (e.g., an optical disc or Universal Serial Bus (USB)-based Flash memory), or coupled to the computer system via a wired or wireless network (e.g., network accessible storage (NAS)).
[0044] Note that not all of the activities or elements described above in the general description are required, that a portion of a specific activity or device may not be required, and that one or more further activities may be performed, or elements included, in addition to those described. Still, further, the order in which activities are listed is not necessarily the order in which they are performed. Also, the concepts have been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present disclosure as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present disclosure.
[0045] Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any feature(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature of any or all the claims. Moreover, the particular embodiments disclosed above are illustrative only, as the disclosed subject matter may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. No limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope of the disclosed subject matter. Accordingly, the protection sought herein is as set forth in the claims below.

Claims

WHAT IS CLAIMED IS:
1 . A method comprising: identifying a required throughput and a required latency associated with an application executing on user equipment (UE) based on application requirement data stored on the UE; and transmitting, by the UE, a throughput and latency request indicating the required throughput and the required latency to a cellular network.
2. The method of claim 1 , further comprising: in response to an update event, querying the application requirement data for the required throughput and the required latency associated with the application.
3. The method of claim 2, wherein the update event comprises a screen of the UE turning off.
4. The method of claim 2, wherein the update event comprises the application launching on the UE.
5. The method of claim 2, wherein the update event comprises a predetermined amount of time elapsing.
6. The method of claim 2, further comprising: in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, monitoring a connection between the UE and the cellular network to determine the required throughput and the required latency.
7. The method of claim 6, further comprising: updating the application requirement data based on the required throughput and the required latency determined from monitoring the connection between the UE and the cellular network.
8. The method of any of claims 1 to 7, wherein identifying the required throughput and the required latency associated with the application executing on the UE is in response to the application being displayed on a screen of the UE.
9. The method of any of claims 1 to 7, wherein identifying the required throughput and the required latency associated with the application executing on the UE is in response to the application providing a perceivable output while a screen of the UE is off.
10. The method of any of claims 1 to 9, further comprising: in response to the required throughput and the required latency associated with the application not being stored in the application requirement data, transmitting, by the UE, a second throughput and latency request indicating a first range of throughputs and a first range of latencies to the cellular network.
11 . The method of any of claims 1 to 10, further comprising: identifying a second required throughput and a second required latency associated with a second application executing on the UE based on the application requirement data.
12. The method of claim 11 , further comprising: in response to the second required throughput of the second application being greater than the required throughput of the application and in response to the second required latency of the second application being greater than the required latency of the application, transmitting, by the UE, a second throughput and latency request indicating the second required throughput and the second required latency to the cellular network.
13. The claims of any of claims 1 to 12, wherein the throughput and latency request comprises a UE assistance information (UAI) message.
14. A user equipment (UE) configured to perform the method of any of claims 1 to 13.
15. A non-transitory computer-readable storage medium storing executable instructions configured to manipulate a user equipment (UE) to perform the method of any of claims 1 to 13.
PCT/US2023/022776 2023-05-18 2023-05-18 Application-based dynamic throughput and latency adjustment for user equipment Pending WO2024237923A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2023/022776 WO2024237923A1 (en) 2023-05-18 2023-05-18 Application-based dynamic throughput and latency adjustment for user equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2023/022776 WO2024237923A1 (en) 2023-05-18 2023-05-18 Application-based dynamic throughput and latency adjustment for user equipment

Publications (1)

Publication Number Publication Date
WO2024237923A1 true WO2024237923A1 (en) 2024-11-21

Family

ID=86895940

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/022776 Pending WO2024237923A1 (en) 2023-05-18 2023-05-18 Application-based dynamic throughput and latency adjustment for user equipment

Country Status (1)

Country Link
WO (1) WO2024237923A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170280474A1 (en) * 2014-09-23 2017-09-28 Nokia Solutions And Networks Oy Transmitting data based on flow input from base station
US20170359272A1 (en) * 2016-06-10 2017-12-14 Microsoft Technology Licensing, Llc Multi-interface power-aware networking
EP3459305B1 (en) * 2016-05-17 2021-03-17 Telefonaktiebolaget LM Ericsson (publ) Network node and method for resource allocation for multiple radio access technologies
US20220361110A1 (en) * 2021-05-10 2022-11-10 Qualcomm Incorporated Ue assistance information (uai) of battery power saving

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170280474A1 (en) * 2014-09-23 2017-09-28 Nokia Solutions And Networks Oy Transmitting data based on flow input from base station
EP3459305B1 (en) * 2016-05-17 2021-03-17 Telefonaktiebolaget LM Ericsson (publ) Network node and method for resource allocation for multiple radio access technologies
US20170359272A1 (en) * 2016-06-10 2017-12-14 Microsoft Technology Licensing, Llc Multi-interface power-aware networking
US20220361110A1 (en) * 2021-05-10 2022-11-10 Qualcomm Incorporated Ue assistance information (uai) of battery power saving

Similar Documents

Publication Publication Date Title
JP2022032043A (en) Method and user device (ue) executed by user device (ue) communicably connected to mobile communication network
US20210076436A1 (en) Device-to-device communication method, terminal device, and network device
US10057850B2 (en) Methods for deferring communications between a mobile communication device and a service network
CN103731912A (en) Inter-rat coverage determination for energy saving management
KR102701050B1 (en) Sim toolkit scheduling for multiple enabled esim profiles
US20140293848A1 (en) Communication device data channel access
US20200068506A1 (en) Power headroom transmission method and device
US20210345151A1 (en) Information reporting method, information receiving method, terminal device, and network device
US20220046576A1 (en) Apparatus, method and computer program for performing radio access notification area update
US20240008137A1 (en) Radio access network connection time management at user equipment
US8943160B2 (en) Methods for controlling ongoing triggered SUPL session by SLP and network-side SUPL agent
KR20200088852A (en) Dual-registered terminal device method of wireless communication, terminal device and network device
US20190306760A1 (en) Apparatuses and methods for coordinating communication operations associated with a plurality of subscriber identities
US9713193B2 (en) Apparatuses and methods for reducing paging for extended discontinuous reception (EDRX) mobile station (MS) to receive mobile terminated (MT) short messages (SM)
WO2024237923A1 (en) Application-based dynamic throughput and latency adjustment for user equipment
EP3140970A1 (en) Techniques for using a modulation and coding scheme for downlink transmissions
EP3420750B1 (en) Using a single packet data network for data transfers to manage network resources
CA2832053C (en) Wireless communication device with both a wireless transceiver and a wireless paging receiver, and method therefore
WO2022237678A1 (en) Bandwidth part processing method and apparatus and terminal
CN108292975A (en) Management by the re-transmission in equipment random access channel within a wireless communication network method and apparatus
WO2021051368A1 (en) Power control method, apparatus and device
KR102107265B1 (en) Methods and apparatus for using ussd over a common channel
EP4595479A1 (en) Fast subscriber identity module (sim) device activation using status queries
WO2025250140A1 (en) User equipment calls using a predetermined call function based on disabled operated modes
US20220159466A1 (en) Methods for handling security of early mobile-terminated data transmissions

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23732720

Country of ref document: EP

Kind code of ref document: A1