IP Library › Granted Patent US 9,264,868
Granted Patent B2
US 9,264,868 · App. 13/288,933 · Granted Feb 16, 2016

Management of network access requests

Inventors: Gerardo Giaretta (San Diego, CA); Jay Kumar Sundararajan (San Diego, CA); Satashu Goel (San Diego, CA); Arnaud Meylan (San Diego, CA); Debesh Kumar Sahu (Hyderabad, IN); Sachin Jain (Hyderabad, IN); Ajith Tom Payyappilly (San Diego, CA); Tejash Rajnikant Shah (San Diego, CA); Lorenzo Casaccia (Rome, IT); Dino Flore (Rome, IT)
Assignee: QUALCOMM Incorporated
H04W4/16H04L67/289H04L67/2819H04W4/003H04W52/0264G06F2209/542H04W4/02H04W4/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,264,868
App. No.
13/288,933
Granted
Feb 16, 2016
Kind
B2
Abstract

Methods, systems, and devices are described for intercepting requests from applications installed on a mobile device. The requests are system calls that establish communication channels for the mobile device. The requests are captured and held from reaching TCP/IP stack of an operating system executing on the mobile device. An intercepted request is aggregated with other intercepted requests. The aggregated requests are bundled together and released to the operating system upon the detection of a triggering event. The capture, holding, and aggregation of requests from applications occur when the mobile device is in a background mode.

Claims (83)

1. A method for wireless communication in a mobile device, comprising:

identifying each of a plurality of applications on the mobile device as a critical application or a non-critical application, wherein a first application from the plurality of applications is identified as a non-critical application;

intercepting a request from the a first application on the mobile device, the request being a request to establish a communication channel to perform a communication for the mobile device;

delaying, when the mobile device is in a background mode, the request from the first application based at least in part on the first application being identified as a non-critical application, wherein the delaying holds the request from reaching a Transmission Control Protocol/Internet Protocol (TCP/IP) stack of an operating system executing on the mobile device, an amount of the delaying based at least in part on a delay tolerance associated with the first application; and

releasing the request from the first application to establish the communication channel to the operating system upon detecting a triggering event, wherein the triggering event is the mobile device entering an active mode.

2. The method of claim 1 , further comprising:

aggregating the request with other intercepted requests to perform a communication for the mobile device.

3. The method of claim 2 , wherein the intercepting the request from the first application and the intercepting the other requests occur at different times.

4. The method of claim 1 , further comprising:

executing instructions for a wrapper, wherein the executed wrapper performs the intercepting of the request from the first application.

5. The method of claim 4 , wherein the wrapper is located between an application layer and a socket layer of the operating system of the mobile device.

6. The method of claim 1 , further comprising:

identifying the first application as a class of application from which requests are delayed.

7. The method of claim 1 , further comprising:

determining the delay tolerance of the first application; and

providing a callback function to the first application based on the determined delay tolerance, wherein the callback function instructs the first application to connect to the communication resources.

8. The method of claim 1 , further comprising:

determining an expiration time of a first timer associated with the first application;

determining a tolerance and expiration time of a second timer associated with a second application;

causing the second timer to expire based on the expiration time of the first timer, the tolerance, and the expiration time of the second timer; and

releasing the request from the first application and an intercepted request from the second application to perform a communication for the mobile device.

9. The method of claim 1 , further comprising:

receiving a deadline from the first application;

delaying the request until before the deadline; and

releasing the request to connect to the communications resources prior to the deadline.

10. The method of claim 1 , wherein, the request comprises a system call to establish a communications channel for the mobile device.

11. The method of claim 1 , further comprising:

releasing the request to a socket layer of the operating system upon detecting the triggering event.

12. The method of claim 1 , further comprising:

receiving an indication for an interval pertaining to how often the releasing of the request occurs.

13. The method of claim 12 , wherein the interval is less than a timeout value in a stateful Internet Protocol (IP) middlebox in a network.

14. A mobile device configured for wireless communication, comprising:

a processor;

memory in electronic communication with the processor, the memory storing executable instructions, and the memory comprising an operating system;

the processor configured to execute instructions to:

identify each of a plurality of applications on the mobile device as a critical application or a non-critical application, wherein a first application from the plurality of applications is identified as a non-critical application;

intercept a request from the a first application on the mobile device, the request being a request to establish a communication channel to perform a communication for the mobile device;

delay, when the mobile device is in a background mode, the request from the first application based at least in part on the first application being identified as a non-critical application, wherein the delay holds the request from reaching a TCP/IP stack of an operating system executing on the mobile device, an amount of the delay based at least in part on a delay tolerance associated with the first application; and

release the request from the first application to establish the communication channel to the operating system upon detecting a triggering event, wherein the triggering event is the mobile device entering an active mode.

15. The mobile device of claim 14 , further comprising:

aggregating the request with other intercepted requests to perform a communication for the mobile device.

16. The mobile device of claim 15 , wherein the intercepting the request from the first application and the intercepting the other requests occur at different times.

17. The mobile device of claim 14 , wherein the memory further comprises:

a wrapper, wherein the processor is further configured to execute instructions on the wrapper, wherein when the instructions are executed, the wrapper is configured to intercept the request from the first application.

18. The mobile device of claim 17 , wherein the wrapper is located between an application layer and a socket layer of the operating system of the mobile device.

19. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

identify the first application as a class of application from which requests are delayed.

20. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

determine the delay tolerance of the first application; and

provide a callback function to the first application based on the determined delay tolerance, wherein the callback function instructs the first application to connect to the communication resources.

21. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

determine an expiration time of a first timer associated with the first application;

determine a tolerance and expiration time of a second timer associated with a second application;

cause the second timer to expire based on the expiration time of the first timer, the tolerance, and the expiration time of the second timer; and

release the request from the first application and an intercepted request from the second application to perform a communication for the mobile device.

22. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

receive a deadline from the first application;

hold the request until before the deadline; and

release the request to establish the communication channel prior to the deadline.

23. The mobile device of claim 14 , wherein the request comprises a system call to establish a communications channel.

24. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

release the request to a socket layer of the operating system upon detecting the triggering event.

25. The mobile device of claim 14 , wherein the processor is further configured to execute instructions to:

receive an indication for an interval pertaining to how often the releasing of the request occurs.

26. The mobile device of claim 25 , wherein the interval is less than a timeout value in a stateful Internet Protocol (IP) middlebox in a network.

27. An apparatus configured to manage requests for network access from applications on a mobile device, comprising:

means for identifying each of a plurality of applications on the mobile device as a critical application or a non-critical application, wherein a first application from the plurality of applications is identified as a non-critical application;

means for intercepting a request from a the first application on the mobile device, the request being a request to establish a communication channel to perform a communication for the mobile device;

means for delaying, when the mobile device is in a background mode, the request from the first application based at least in part on the first application being identified as a non-critical application, wherein the means for delaying holds the request from reaching a TCP/IP stack of an operating system executing on the mobile device, an amount of the delaying based at least in part on a delay tolerance associated with the first application; and

means for releasing the request from the first application to establish the communication channel to the operating system upon detecting a triggering event, wherein the triggering event is the mobile device entering an active mode.

28. The apparatus of claim 27 , further comprising:

means for aggregating the request with other intercepted requests to perform a communication for the mobile device.

29. The apparatus of claim 27 , wherein the intercepting the request from the first application and the intercepting the other requests occur at different times.

30. The apparatus of claim 27 , further comprising:

means for executing a wrapper, the executed wrapper configured to intercept the request from the first application.

31. The apparatus of claim 30 , wherein the wrapper is located between an application layer and a socket layer of the operating system of the mobile device.

32. The apparatus of claim 27 , further comprising:

means for identifying the first application as a class of application from which requests are delayed.

33. A computer program product configured to manage requests for network access from applications on a mobile device, the product comprising a non-transitory computer-readable medium, the medium comprising:

code to identify each of a plurality of applications on the mobile device as a critical application or a non-critical application, wherein a first application from the plurality of applications is identified as a non-critical application;

code to intercept a request from the a first application on the mobile device, the request being a request to establish a communication channel to perform a communication for the mobile device;

code to delay, when the mobile device is in a background mode, the request from the first application based at least in part on the first application being identified as a non-critical application, wherein the delaying holds the request from reaching a TCP/IP stack of an operating system executing on the mobile device, an amount of the delay based at least in part on a delay tolerance associated with the first application; and

code to release the request from the first application to establish the communication channel to the operating system upon detecting a triggering event, wherein the triggering event is the mobile device entering an active mode.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2012
From: GIARETTA, GERARDO; SUNDARARAJAN, JAY KUMAR; GOEL, SATASHU; MEYLAN, ARNAUD; SAHU, DEBESH KUMAR; JAIN, SACHIN; PAYYAPPILLY, AJITH TOM; SHAH, TEJASH RAJNIKANT; CASACCIA, LORENZO; FLORE, DINO
To: QUALCOMM INCORPORATED
Reel/Frame 028910/0491 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2012
From: GIARETTA, GERARDO; SUNDARARAJAN, JAY KUMAR; GOEL, SATASHU; MEYLAN, ARNAUD; SAHU, DEBASH KUMAR; JAIN, SACHIN; PAYYAPPILLY, AJITH TOM
To: QUALCOMM INCORPORATED
Reel/Frame 027541/0534 →
Continuity (4)
Provisional Application 61434253 · Jan 19, 2011
Provisional Application 61454457 · Mar 18, 2011
Provisional Application 61503395 · Jun 30, 2011
Related Publication 20120185577A1 · Jul 19, 2012