systems and methods for modem control based on feedback are disclosed. In one embodiment, a modem observer module is associated with software within a computing device. The modem observer receives information from the modem relating to uplink bandwidth availability and/or network conditions that may impact uplink bandwidth. Based on the uplink bandwidth availability at the modem, the modem observer may throttle or limit the number of connections that are active by the applications.
|
17. A mobile terminal comprising:
a user interface;
a modem; and
a control system operatively coupled to the user interface and the modem, the control system configured to:
receive an indication of a bandwidth available to the modem;
determine a maximum number of active connections;
determine a current number of active connections;
receive a request originating at the mobile terminal to open one or more new active connections;
compare the maximum number of active connections to the current number of active connections plus the request to open the one or more new active connections; and
limit a total number of active connections to no more than the maximum number of active connections.
25. A computing device comprising:
a user interface;
a modem; and
a control system operatively coupled to the user interface and the modem, the control system configured to:
receive an indication of a bandwidth available to the modem;
determine a maximum number of active connections;
determine a current number of active connections;
receive a request originating from the computing device to open one or more new active connections;
compare the maximum number of active connections to the current number of active connections plus the request to open the one or more new active connections; and
limit a total number of active connections to no more than the maximum number of active connections.
9. A non-transitory computer readable medium comprising software with instructions to:
receive an indication of a bandwidth available to a modem of a mobile terminal;
determine, at the mobile terminal, a maximum number of active connections;
determine, at the mobile terminal, a current number of active connections;
receive, at the mobile terminal, a request to open one or more new active connections;
compare, at the mobile terminal, the maximum number of active connections to the current number of active connections plus the request to open the one or more new active connections; and
limit, from the mobile terminal, a total number of active connections to no more than the maximum number of active connections.
1. A method of controlling a mobile terminal comprising:
receiving, at a control system within a mobile terminal, an indication of a bandwidth available to a modem of the mobile terminal;
determining, at the control system, a maximum number of active connections for the modem of the mobile terminal;
determining, at the control system, a current number of active connections at the modem of the mobile terminal;
receiving, at the control system, from an application on the mobile terminal, a request to open one or more new active connections from the modem to a remote network;
comparing, at the control system, the maximum number of active connections for the modem of the mobile terminal, to the current number of active connections plus the request to open the one or more new active connections; and
limiting at the modem of the mobile terminal, a total number of active connections to no more than the maximum number of active connections.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
10. The computer readable medium of
11. The computer readable medium of
12. The computer readable medium of
13. The computer readable medium of
14. The computer readable medium of
15. The computer readable medium of
16. The computer readable medium of
18. The mobile terminal of
19. The mobile terminal of
20. The mobile terminal of
21. The mobile terminal of
22. The mobile terminal of
23. The mobile terminal of
24. The mobile terminal of
26. The computing device of
27. The computing device of
28. The computing device of
|
I. Field of the Disclosure
The technology of the disclosure relates generally to controlling a modem in a computing device.
II. Background
Mobile communication devices have become common in current society. The prevalence of these mobile devices is driven in part by the many functions that are now enabled on such devices. Many of these functions rely on the ability to communicate with websites on the Internet or other sources removed from the mobile device. The proliferation of functions and applications that rely on communication with remote sources is generally handled by packets that pass through the wireless transceiver (e.g., a cellular modem) of the mobile device. Most such mobile devices rely on cellular protocols to handle the transmission and receipt of such packets.
While cellular networks have increasingly robust bandwidths available to users of such mobile devices, the mobile device may still suffer delays in transmission of packets in the cellular modem of the mobile device as the various functions all submit packets for transmission concurrently.
Even if there is only one function sending packets such as a web browser, the web browser can generate a large number of packets at the cellular modem, thus contributing to the congestion at the cellular modem. That is, a browser will typically open numerous transmission control protocol (TCP) connections simultaneously, to achieve higher network utilization under good network conditions. The TCP flow-control algorithms include an acknowledgement (ACK) clocking mechanism to provide a reliable connection. However, using an ACK clocking mechanism involves sending numerous ACK packets on the uplink connection. Under good network conditions, the numerous ACK packets increase performance. However, if the network conditions are sub-optimal, the large number of ACK packets may negatively impact performance.
Embodiments disclosed in the detailed description include systems and methods for modem control based on feedback. While specifically contemplated for use with cellular modems, exemplary embodiments are applicable to other computing devices that include a modem. In either case, a modem observer module is associated with software in the device. The modem observer receives information from the modem relating to uplink bandwidth availability and/or network conditions that may impact uplink bandwidth. Based on the uplink bandwidth availability at the modem, the modem observer may throttle or limit the number of connections. In a first embodiment, the number of active connections is controlled. In a second embodiment, the total number of connections is controlled (i.e., open and either active or idle).
In this regard in one embodiment, a method of controlling a mobile terminal is disclosed. The method comprises receiving an indication of a bandwidth available to a modem of the mobile terminal. The method also comprises determining a maximum number of active connections. The method also comprises determining a current number of active connections. The method also comprises receiving a request to open one or more new active connections. The method also comprises comparing the maximum number of active connections to the current number of active connections plus the request for new active connections. The method also comprises limiting a total number of active connections to no more than the maximum number of active connections.
In another embodiment, a non-transitory computer readable medium comprising software with instructions is disclosed. The software includes instructions to receive an indication of a bandwidth available to a modem of a mobile terminal. The software also includes instructions to determine a maximum number of active connections. The software also includes instructions to determine a current number of active connections. The software also includes instructions to receive a request to open one or more new active connections. The software also includes instructions to compare the maximum number of active connections to the current number of active connections plus the request for new active connections. The software also includes instructions to limit a total number of active connections to no more than the maximum number of active connections.
In another embodiment, a mobile terminal is disclosed. The mobile terminal comprises a user interface. The mobile terminal also comprises a modem. The mobile terminal also comprises a control system operatively coupled to the user interface and the modem. The control system is configured to receive an indication of a bandwidth available to the modem. The control system is also configured to determine a maximum number of active connections. The control system is also configured to determine a current number of active connections. The control system is also configured to receive a request to open one or more new active connections. The control system is also configured to compare the maximum number of active connections to the current number of active connections plus the request for new active connections. The control system is also configured to limit a total number of active connections to no more than the maximum number of active connections.
In another embodiment, a computing device is disclosed. The computing device comprises a user interface. The computing device also comprises a modem. The computing device also comprises a control system operatively coupled to the user interface and the modem. The control system is configured to receive an indication of a bandwidth available to the modem. The control system is also configured to determine a maximum number of active connections. The control system is also configured to determine a current number of active connections. The control system is also configured to receive a request to open one or more new active connections. The control system is also configured to compare the maximum number of active connections to the current number of active connections plus the request for new active connections. The control system is also configured to limit a total number of active connections to no more than the maximum number of active connections.
With reference now to the drawing figures, several exemplary embodiments of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
Embodiments disclosed in the detailed description include systems and methods for modem control based on feedback. While specifically contemplated for use with cellular modems, exemplary embodiments are applicable to other computing devices that include a modem. In either case, a modem observer module is associated with software in the device. The modem observer receives information from the modem relating to uplink bandwidth availability and/or network conditions that may impact uplink bandwidth. Based on the uplink bandwidth availability at the modem, the modem observer may throttle or limit the number of connections. In a first embodiment, the number of active connections is controlled. In a second embodiment, the total number of connections is controlled (i.e., open and either active or idle).
Embodiments disclosed herein allow the computing device (mobile or not) to evaluate the available uplink bandwidth and then determine whether or not additional connections should be made. If the uplink bandwidth is limited because of network congestion or poor signal strength, the software may preclude connections from being opened or preclude existing connections from being active. In this manner, the total number of packets sent on the uplink channel is throttled to a number below a threshold determined by the available bandwidth. Controlling the number of packets in this manner improves performance of the uplink channel because it reduces the highly variant latencies added to the packets going on the uplink. Such latencies with high variance can cause poor round trip delay time (RTT) estimation on both the client and server side. Poor RTT may cause needless retransmission of packets that were not lost, late retransmission of data that was lost in the network, and reduced downlink bandwidth because the server cannot differentiate between congested uplink and congested downlink conditions. Reduction or improvements in any of these conditions will improve overall performance.
While an exemplary embodiment of the present disclosure contemplates use in a mobile terminal such as a cellular phone using a cellular modem, the present disclosure is not so limited. In this regard,
In addition to computing devices 10 the exemplary embodiments of the present disclosure may also be implemented on mobile terminal. In this regard, an exemplary embodiment of a mobile terminal 22 is illustrated in
A more detailed depiction of the components of the mobile terminal 22 is provided with reference to
The receiver path 30 receives information bearing radio frequency (RF) signals from one or more remote transmitters provided by a base station (e.g., BS 26). A low noise amplifier (not shown) amplifies the signal. A filter (not shown) minimizes broadband interference in the received signal, while down conversion and digitization circuitry (not shown) down converts the filtered, received signal to an intermediate or baseband frequency signal, which is then digitized into one or more digital streams. The receiver path 30 typically uses one or more mixing frequencies generated by the frequency synthesizer 42. The BBP 38 processes the digitized received signal to extract the information or data bits conveyed in the signal. As such, the BBP 38 is typically implemented in one or more digital signal processors (DSPs).
With continued reference to
With continued reference to
While not illustrated, it should be appreciated that a less mobile computing device 10 may have similar elements, but instead of a wireless modem 50, the NIC may have a wirebased interface to effectuate communication.
Regardless of whether the computing device is a mobile terminal 22 or a more stationary computing device 10, exemplary embodiments of the present disclosure allow the control system (e.g., control system 40) to control congestion at the modem (e.g., modem 50) by polling the modem for uplink queue latency and selectively controlling connections made by the applications. That is, many web applications generate plural connections. When network conditions are not congested, such plural connections allow the web application to receive data on the plural connections effectively simultaneously. This near simultaneous reception results in better download efficiency. For example, a web browser may download different portions of a web page through different ones of the plural connections (e.g., text on one connection, images on another, java script on others, and so forth). However, each connection must go through a setup process which generates packets on the uplink portion of the communication link. When enough of these packets arrive at the modem in poor network conditions, packet collisions may occur, latency increases as packets stay in the modem queue waiting to be sent over the uplink, and packets may be lost. By controlling the number of active connections, exemplary embodiments improve performance. That is, as noted above, network congestion may result in latencies with high variance, which can cause poor RTT estimation on both the client and server side. Poor RTT may cause needless retransmission of packets that were not lost, late retransmission of data that was lost in the network, and reduced downlink bandwidth because the server cannot differentiate between congested uplink and congested downlink conditions. Reduction or improvements in any of these conditions by throttling the number of open, active connections will improve overall performance.
To provide control over the number of connections, exemplary embodiments use modem feedback by adding a modem observer to the software 48 of the computing device 10, 22. The modem observer polls the modem 50 to ascertain network conditions and/or available uplink bandwidth for the modem 50. If network conditions are congested and/or the available uplink bandwidth is below a predefined threshold, the modem observer instructs the network stack to limit the number of active connections. In a first embodiment, the modem observer is associated with each application (i.e., there is a separate modem observer for each web based application (e.g., browser, video streaming, audio streaming, etc.). In a second embodiment, the modem observer is in the hypertext transfer protocol (http) stack associated with all of the web based applications (i.e., there is one modem observer shared amongst all the web based applications). As is understood, an http stack for a web browser application is one of the browser modules that is responsible for managing http transactions. The http stack opens browser network connections and sends http requests to remote servers.
In this regard,
With continued reference to
An exemplary process of securing feedback from the modem 50 and controlling the modem thereby is provided with reference to
With continued reference to
With continued reference to
With continued reference to
While
Experimental data suggests that limiting or throttling the number of active connections does have a positive impact on performance. In this regard, an experiment was created using a test website. Specifically, the test website had 140 large images (e.g., greater than 16 kb). The upload bandwidth was set to 45 KBit/sec, the download bandwidth was set to 2500 Kbit/sec with an round trip delay time (RTT) of 60 ms. The web browsing application was the default Android browser over Agilent. This set up was run through ten iterations. The results are set forth in Table 1 below.
TABLE 1
Summary of Experiment 1
Number of
#GET
#DL
AVG page load
Connections
#UL-ACKS
retransmits
retransmits
time in ms
4
791
0
0
24174
9
808
6.4
0.4
24496
18
952
22.8
11.8
29947
24
992
29
11.25
36154
34
1125
32
23.75
35667
The experiment reveals the following observations. The delay in acknowledgement (ACKs) sent over the uplink causes slower reception of the downloaded data chunks, at least when the number of connections is larger than ten. With more connections, more ACK packets are sent over the uplink. With more connections, more HTTP GET request retransmits occurs. With more connections, more packet retransmits appear on the download link. Thus, if network conditions are not optimal, large numbers of connections result in slower download times because of the lost packets and the resources spent on retransmitting lost data. Thus, clear improvements in performance may be achieved by implementing embodiments of the present disclosure which limit the number of connections in limited bandwidth conditions. Other conclusions may be summarized by noting that the reduced number of active connections based on modem feedback will have at least the following advantages. First, pressure on the modem is reduced due to reduced uplink traffic (i.e., there are fewer ACK packets sent) and reduced number of retransmissions on the uplink. Second, there are a reduced number of retransmissions on both the uplink and the downlink.
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the embodiments disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or combinations of both. The master devices, and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The embodiments disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary embodiments herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary embodiments may be combined. It is to be understood that the operational steps illustrated in the flow chart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Kapoor, Rohit, Attar, Rashid Ahmed Akbar, Sahu, Debesh Kumar, Venkatachalam Jayaraman, Venkata Ramanan, Gurevich, Nela, Perelman, Valeriya
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6628612, | Aug 03 1999 | RPX CLEARINGHOUSE LLC | Derivation of equivalent bandwidth of an information flow |
7287082, | Mar 03 2003 | Cisco Technology, Inc. | System using idle connection metric indicating a value based on connection characteristic for performing connection drop sequence |
7735084, | Oct 18 2001 | Sony Corporation | Communication processing apparatus, communication processing method, and computer program |
20030099197, | |||
20030154306, | |||
20040100979, | |||
20040122952, | |||
20060029037, | |||
20060095572, | |||
20060199594, | |||
20080170499, | |||
20090024991, | |||
20090196276, | |||
20110116444, | |||
20110158095, | |||
20120263036, | |||
20120324037, | |||
20140365554, | |||
EP932282, | |||
EP2530889, | |||
WO2011066585, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 10 2014 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Jan 14 2014 | KAPOOR, ROHIT | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 | |
Jan 15 2014 | PERELMAN, VALERIYA | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 | |
Jan 16 2014 | GUREVICH, NELA | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 | |
Jan 22 2014 | VENKATACHALAM JAYARAMAN, VENKATA RAMANAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 | |
Mar 14 2014 | SAHU, DEBESH KUMAR | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 | |
May 12 2014 | ATTAR, RASHID AHMED AKBAR | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032883 | /0812 |
Date | Maintenance Fee Events |
Jan 23 2017 | ASPN: Payor Number Assigned. |
Sep 28 2020 | REM: Maintenance Fee Reminder Mailed. |
Mar 15 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 07 2020 | 4 years fee payment window open |
Aug 07 2020 | 6 months grace period start (w surcharge) |
Feb 07 2021 | patent expiry (for year 4) |
Feb 07 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 07 2024 | 8 years fee payment window open |
Aug 07 2024 | 6 months grace period start (w surcharge) |
Feb 07 2025 | patent expiry (for year 8) |
Feb 07 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 07 2028 | 12 years fee payment window open |
Aug 07 2028 | 6 months grace period start (w surcharge) |
Feb 07 2029 | patent expiry (for year 12) |
Feb 07 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |