IP Library Granted Patent US 9,445,368
Granted Patent B2
US 9,445,368 · App. 14/494,526 · Granted Sep 13, 2016

Optimizing keepalive and other background traffic in a wireless network

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,445,368
App. No.
14/494,526
Granted
Sep 13, 2016
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 (54)

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

categorizing a network transaction from an application as a safe or an unsafe network transaction, wherein a safe network transaction is a candidate for network transaction optimization and wherein categorizing the network transaction includes:

gathering a number of messages associated with the network transaction;

determining a rule set including one or more rules using rule learning to identify messages associated with a safe network transaction and messages associated with an unsafe network transaction;

calculating, for each rule in the rule set, a probability of success and a confidence probability threshold;

determining whether to apply each rule in the rule set based on the calculated probability of success compared with the confidence probability threshold;

blocking a safe network transaction from being transmitted to a server over a wireless network for network transaction optimization;

wherein blocking the safe network transaction includes blocking a port of the application or blocking the application until an unblocking event is detected;

wherein the unblocking event is not associated with the end of a defined duration of time; and

wherein blocking the safe network transaction includes applying the rule set to messages not used for rule learning.

2. The method of claim 1 , wherein the network transaction is categorized as a safe network transaction when no other traffic is detected at the same socket where the network transaction is detected.

3. The method of claim 1 , wherein the network transaction is categorized as a safe network transaction when transactions following the network transaction have same or similar byte size.

4. The method of claim 1 , wherein the network transaction is categorized as an unsafe network transaction when an indication of user activity or user-interactive traffic is detected in a TCP stream that includes the network transaction.

5. The method of claim 1 , further comprising:

transmitting an unsafe network transaction to the server m order to maintain the health of the connection between the application and the server.

6. The method of claim 1 , further comprising:

observing network transaction traffic for a period of time to identify one or more factors for predicting whether a network transaction is a safe or unsafe network transaction.

7. The method of claim 6 , wherein the network transaction includes keepalive transaction and the one or more factors include: user, application, hour of the day, keepalive interval, keepalive byte size, on-screen activity or number of consecutive safe keepalives.

8. The method of claim 1 , wherein the unblocking event is one of an elapse of a blocking period of time, detection of an indication of user activity, receiving of a time-critical message for the application or the mobile device switching to a network that is not configured for optimization.

9. The method of claim 8 , further comprising:

observing traffic after the blocking of the safe network transaction or the unblocking event to validate categorizing of the network transaction as a safe network transaction.

10. The method of claim 1 , further comprising:

identifying the network transactions based on one or more criteria that includes periodicity, byte size or knowledge of application level protocol.

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

a processor configured to categorize a network transaction from an application as a safe network transaction or an unsafe network transaction;

wherein a safe network transaction is a candidate for network transaction optimization:

the processor further configured to:

wherein categorizing the network transaction includes gathering a number of messages associated with the network transaction, and determining a rule set including one or more rules using rule learning to identify messages associated with a safe network transaction and messages associated with an unsafe network transaction;

calculating, for each rule in the rule set, a probability of success and a confidence probability threshold;

determining whether to apply each rule in the rule set based on the calculated probability of success compared with the confidence probability threshold;

block a safe network transaction from being transmitted to a server over a wireless network for network transaction optimization

wherein blocking the safe network transaction includes blocking a port of the application or blocking the application until an unblocking event is detected;

wherein the unblocking event is not associated with the end of a defined duration of time; and

wherein blocking the safe network transaction includes applying the rule set to messages not used for rule learning.

12. The mobile device of claim 11 , wherein the processor is configured to categorize the network transaction as a safe network transaction when no other traffic is detected at the same socket where the network transaction is detected.

13. The mobile device of claim 11 , wherein the processor is configured to categorize the network transaction as a safe network transaction when transactions following the network transaction have same or similar byte size.

14. The mobile device of claim 11 , wherein the processor is configured to categorize the network transaction as an unsafe network transaction when an indication of user activity or non-keepalive traffic is detected in a TCP stream that includes the network transaction.

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

a communication interface configured to transmit an unsafe network transaction to the server in order to maintain the health of the connection between the application and the server.

16. The mobile device of claim 11 , wherein the processor is configured to observe network transaction traffic for a period of time to identify one or more factors for predicting whether a network transaction is a safe or unsafe network transaction.

17. The mobile device of claim 16 , wherein the network transaction includes keepalive transaction and the one or more factors include: user, application, hour of the day, keepalive interval, keepalive byte size, on screen activity or number of consecutive safe keepalives.

18. The mobile device of claim 11 , wherein the unblocking event is one of an elapse of a blocking period of time, detection of an indication of user activity, receiving of a time-critical message for the application or the mobile device switching to a network that is not configured for optimization.

19. The mobile device of claim 18 , wherein the processor is further configured to observe traffic after the blocking of the safe network transaction or the unblocking event to validate categorizing of the network transaction as a safe network transaction.

20. The mobile device of claim 11 , wherein the processor is further configured to identify network transactions based on one or more criteria that includes periodicity, byte size or knowledge of application level protocol.

21. A computer-readable storage medium storing instructions that when executed by a processor, causes the processor to:

categorize a network transaction from an application as a safe or an unsafe network transaction, wherein a safe network transaction is a candidate for network transaction optimization and wherein categorizing the network transaction includes:

gathering a number of messages associated with the network transaction;

determining a rule set including one or more rules using rule learning to identify messages associated with a safe network transaction and messages associated with an unsafe network transaction;

calculating, for each rule in the rule set, a probability of success and a confidence probability threshold;

determining whether to apply each rule in the rule set based on the calculated probability of success compared with the confidence probability threshold;

block a safe network transaction from being transmitted to a server over a wireless network for network transaction optimization;

wherein blocking the safe network transaction includes blocking a port of the application or blocking the application until an unblocking event is detected;

wherein the unblocking event is not associated with the end of a defined duration of time and

wherein blocking the safe network transaction includes applying the rule set to messages not used for rule learning.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2016
From: KOKHANOVSKYI, ANDRII
To: SEVEN NETWORKS, INC.
Reel/Frame 040368/0337 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2015
From: FLEMING, MICHAEL
To: SEVEN NETWORKS, INC.
Reel/Frame 036957/0848 →
ENTITY CONVERSION Recorded Aug 27, 2015
From: SEVEN NETWORKS, INC.
To: SEVEN NETWORKS, LLC
Reel/Frame 036485/0059 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2014
From: YOON, SUNGWOOK; SRINIVASAN, SURESH; NIRANTOR, ABHAY; FLEMING, MICHAEL; BATLIVALA, NARIMAN D.; KOKHANOVSKYI, ANDRII; ALISAWI, RAMI; BACKHOLM, ARI
To: SEVEN NETWORKS, INC
Reel/Frame 033844/0870 →