IP Library Granted Patent US 10,182,466
Granted Patent B2
US 10,182,466 · App. 15/787,958 · Granted Jan 15, 2019

Optimizing keepalive and other background traffic in a wireless network

Inventors: Abhay Nirantar (San Carlos, CA); Andrii Kokhanovskyi (Kiev, UA); Nariman D. Batlivala (San Carlos, CA); Rami Al-Isawi (San Carlos, CA); Sungwook Yoon (San Carlos, CA); Michael Fleming (San Carlos, CA); Ari Backholm (Los Altos, CA)
Assignee: Seven Networks, LLC
H04W76/25H04L5/0053H04L67/2852H04L69/16H04W12/00H04W24/02H04W28/0231H04W52/0251H04W52/0258H04W72/048H04W76/20H04W88/02Y02D70/00Y02D70/1224Y02D70/1242Y02D70/1246Y02D70/1262Y02D70/1264Y02D70/142Y02D70/144Y02D70/146Y02D70/164Y02D70/166Y02D70/21Y02D70/23Y02D70/26
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 10,182,466
App. No.
15/787,958
Granted
Jan 15, 2019
Kind
B2
Abstract

Systems and methods for optimizing keepalives or other non-interactive or background traffic from applications on a mobile device are disclosed. A keepalive optimizer can detect keepalive and other background traffic and optimize such traffic by blocking keepalives, advancing or delaying execution of keepalives, delaying repeatable background requests based on radio state, device state or characteristics, policy, transaction characteristics, application characteristics, and/or the like. The disclosed keepalive optimization methods facilitate management of traffic and/or conservation of resources on the mobile device and the network. The keepalive optimization can be performed by an application sending the keepalives or by a local proxy on the mobile device.

Claims (42)

1. A method of optimizing network transactions originating at a mobile device, comprising:

identifying a keepalive period of a mobile application executing on a mobile device, wherein the mobile application is connected to a server;

determine a pull-in period by:

tracking traffic patterns of the mobile device;

using the traffic patterns of the mobile device to determine a first probability and a second probability,

wherein the first probability is the probability of the mobile application consuming resources, and

wherein the second probability is the probability of the radio of the mobile device turning on; and

calculating the pull-in period based on the first probability and the second probability, wherein the pull-in period is a value selected to minimize the mobile application's consumption of resources and the number of instances where the radio of the mobile device needs to be turned on;

wherein the pull-in period has a shorter duration than the keepalive period;

when the mobile application has been idle for longer than the pull-in period, detecting whether a radio of the mobile device turns on;

in response to detecting the radio of the mobile device turn on, triggering a new keepalive to the server before the end of the keepalive period.

2. The method of claim 1 , wherein triggering the new keepalive is done on an application-by-application basis.

3. The method of claim 1 , wherein triggering the new keepalive includes terminating the connection between the mobile application and the server.

4. The method of claim 1 , wherein triggering the new keepalive includes dropping the application socket of the mobile application.

5. The method of claim 1 , wherein triggering the new keepalive includes creating a synthetic keepalive to send to the server.

6. The method of claim 1 , further comprising optimizing the new keepalive by:

defining a first extension period and second extension period, wherein the first and second extension periods are pre-determined time values;

determining if the application has been idle for longer than the first extension period;

in response to a determination that the application has been idle for longer than the first extension period, extending the keepalive period by the second extension period.

7. A mobile device implementing network transaction optimization, comprising:

a processor;

a memory;

a radio;

the processor being configured to:

identify a keepalive period of a mobile application executing on the mobile device, wherein the mobile application is connected to a server;

determine a pull-in period by:

tracking traffic patterns of the mobile device;

using the traffic patterns of the mobile device to determine a first probability and a second probability,

wherein the first probability is the probability of the mobile application consuming resources, and

wherein the second probability is the probability of the radio of the mobile device turning on; and

calculating the pull-in period based on the first probability and the second probability, wherein the pull-in period is a value selected to minimize the mobile application's consumption of resources and the number of instances where the radio of the mobile device needs to be turned on;

wherein the pull-in period has a shorter duration than the keepalive period;

when the mobile application has been idle for longer than the pull-in period, detecting whether the radio of the mobile device turns on; and

in response to detecting the radio of the mobile device turn on, trigger a new keepalive to the server before the end of the keepalive period.

8. The mobile device of claim 7 , wherein the processor is further configured to trigger the new keepalive on an application-by-application basis.

9. The mobile device of claim 7 , wherein the processor is further configured to trigger the new keepalive by terminating the connection between the mobile application and the server.

10. The mobile device of claim 7 , wherein the processor is further configured to trigger the new keepalive by dropping the application socket of the mobile application.

11. The mobile device of claim 7 , wherein the processor is further configured to trigger the new keepalive by creating a synthetic keepalive to send to the server.

12. The mobile device of claim 7 , wherein the processor is further configured to optimize the new keepalive by:

defining a first extension period and second extension period, wherein the first and second extension periods are pre-determined time values;

determining if the application has been idle for longer than the first extension period;

in response to a determination that the application has been idle for longer than the first extension period, extending the keepalive period by the second extension period.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2017
From: NIRANTAR, ABHAY; KOKHANOVSKYI, ANDRII; BATLIVALA, NARIMAN D.; ALISAWI, RAMI; YOON, SUNGWOOK; FLEMING, MICHAEL; BACKHOLM, ARI
To: SEVEN NETWORKS, INC.
Reel/Frame 044480/0631 →
ENTITY CONVERSION Recorded Nov 17, 2017
From: SEVEN NETWORKS, INC.
To: SEVEN NETWORKS, LLC
Reel/Frame 044782/0702 →
Continuity (7)
Continuation 15235241 · Aug 12, 2016
Continuation 14494526 · Sep 23, 2014
Continuation PCTUS2014036669 · May 2, 2014
Provisional Application 61836039 · Jun 17, 2013
Provisional Application 61836095 · Jun 17, 2013
Provisional Application 61833838 · Jun 11, 2013
Related Publication 20180042067A1 · Feb 8, 2018
Cited By (58)
US 12,192,026 US 12,200,038 US 12,200,083 US 12,200,084 US 12,218,776 US 12,218,777 US 12,229,210 US 12,231,253 US 12,231,519 US 12,242,760 US 12,250,089 US 12,250,090 US 12,260,364 US 12,261,712 US 12,277,187 US 12,277,188 US 12,277,189 US 12,278,878 US 12,278,880 US 12,284,069 US 12,289,383 US 12,294,481 US 12,301,401 US 12,309,241 US 12,323,287 US 12,323,500 US 12,323,501 US 12,332,960 US 12,341,860 US 12,355,855 US 12,368,789 US 12,375,582 US 12,411,902 US 12,413,648 US 12,425,492 US 12,438,956 US 12,445,511 US 12,457,273 US 12,483,635 US 12,517,972 US 12,524,490 US 12,524,491 US 12,536,243 US 12,549,645 US 12,563,130 US 12,587,429 US 12,587,430 US 12,587,579 US 12,603,809 US 12,613,734 US 12,652,330 US 12,659,218 US 12,671,750 US 12,693,910 US 12,706,984 US 12,719,734 US 12,719,735 US 12,719,945