IP Library Granted Patent US 10,143,031
Granted Patent B2
US 10,143,031 · App. 15/661,734 · Granted Nov 27, 2018

Detection and reporting of keepalive messages for optimization of keepalive traffic in a mobile network

Inventors: Ari Backholm (Los Altos, CA); Michael Fleming (Redwood City, CA); Andrii Kokhanovskyi (Kiev, UA); Sungwook Yoon (Palo Alto, CA)
Assignee: Seven Networks, LLC
H04W76/25H04L43/10H04L69/16
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,143,031
App. No.
15/661,734
Granted
Nov 27, 2018
Kind
B2
Abstract

Detection of network transactions or keepalives for maintaining long lived connections are disclosed. A keepalive detector can detect keepalive traffic based on keepalive parameters determined from an analysis of socket level network communication log data that record data transfer events including data sent from mobile applications or clients on a mobile device and data received by the mobile applications or clients on the mobile device, timing characteristics, protocol types, etc. Various statistical analyses can be performed on the network communication data to detect keepalives, taking into account variability in intervals of the data transfer events and sizes of data sent and received on each event. The keepalive detector can also detect keepalives from stream data on a mobile device by analyzing socket level communication messages including timing characteristics and amount of data transferred to detect keepalives and report keepalives using a data structure.

Claims (48)

1. A method of detecting keepalives being used by a mobile application on a mobile device, comprising:

monitoring a plurality of data transfers over a network to and from the mobile application;

analyzing one or more characteristics of a data transfer to identify a pattern indicating that the data transfer may include a keepalive,

wherein the characteristics of the data transfer include the amount of time elapsed between the data transfer and a previous data transfer, and the pattern is identified based on a variance in the amount of time elapsed between the data transfer and previous data transfers being less than a threshold;

detecting a keepalive based on the identified pattern;

maintaining a record of the detected keepalives;

reporting the detected keepalives to a server; and

performing keepalive optimization based on the detected keepalives.

2. The method of claim 1 , wherein the plurality of data transfers over a network are part of a Transport Control Protocol (“TCP”) stream.

3. The method of claim 1 , wherein the characteristics of the data transfer include the amount of data in the data transfer, and the pattern is identified based on the amount of data in the data transfer being less than a threshold.

4. The method of claim 1 , wherein the pattern is identified based on the amount of time elapsed since the last data transfer being greater than a threshold.

5. The method of claim 1 , wherein the identified pattern includes data of a regular byte size being transferred at regular intervals.

6. The method of claim 1 , wherein:

analyzing one or more characteristics of the data transfer includes associating a keepalive weight value with the data transfer; and

detecting a keepalive based on the identified pattern includes determining that the keepalive weight value is greater than a threshold.

7. The method of claim 1 , wherein the characteristics of the data transfer include similarity between the data transfer and the previous data transfer.

8. A mobile device, comprising:

a memory; and

a processor configured to:

monitor a plurality of data transfers over a network to and from the mobile application;

analyze one or more characteristics of a data transfer to identify a pattern indicating that the data transfer may include a keepalive,

wherein the characteristics of the data transfer include the amount of time elapsed between the data transfer and a previous data transfer, and the pattern is identified based on a variance in the amount of time elapsed between the data transfer and previous data transfers being less than a threshold;

detect a keepalive based on the identified pattern;

maintain a record of the detected keepalives, wherein the record is stored in the memory;

reporting the detected keepalives to a server; and

performing keepalive optimization based on the detected keepalives.

9. The mobile device of claim 8 , wherein the plurality of data transfers over a network are part of a Transport Control Protocol (“TCP”) stream.

10. The mobile device of claim 8 , wherein the characteristics of the data transfer include the amount of data in the data transfer, and the pattern is identified based on the amount of data in the data transfer being less than a threshold.

11. The mobile device of claim 8 , wherein the pattern is identified based on the amount of time elapsed since the last data transfer being greater than a threshold.

12. The mobile device of claim 8 , wherein the identified pattern includes data of a regular byte size being transferred at regular intervals.

13. The mobile device of claim 8 , wherein:

analyzing one or more characteristics of the data transfer includes associating a keepalive weight value with the data transfer; and

detecting a keepalive based on the identified pattern includes determining that the keepalive weight value is greater than a threshold.

14. The mobile device of claim 8 , wherein the characteristics of the data transfer include similarity between the data transfer and the previous data transfer.

15. A method of detecting keepalives being used by a mobile application on a mobile device, comprising:

monitoring, on the mobile device, a plurality of data transfers over a network to and from the mobile application;

analyzing, on the mobile device, one or more characteristics of a data transfer to identify a pattern indicating that the data transfer may include a keepalive, wherein the characteristics of the data transfer include at least one of connection information of the data transfer, the amount of data in the data transfer, the amount of time elapsed between the data transfer and a previous data transfer, and similarity between the data transfer and the previous data transfer,

wherein analyzing one or more characteristics of the data transfer includes associating a keepalive weight value with the data transfer;

detecting, on the mobile device, a keepalive based on the identified pattern,

wherein detecting the keepalive includes determining that the keepalive weight value is greater than a threshold;

maintaining, on the mobile device, a record of the detected keepalives;

reporting the detected keepalives to a server; and

performing keepalive optimization based on the detected keepalives.

16. The method of claim 15 , wherein the plurality of data transfers over a network are part of a Transport Control Protocol (“TCP”) stream.

17. The method of claim 15 , wherein the pattern is identified based on the amount of data in the data transfer being less than a threshold.

18. The method of claim 15 , wherein the pattern is identified based on the amount of time elapsed since the last data transfer being greater than a threshold.

19. The method of claim 15 , wherein the identified pattern includes data of a regular byte size being transferred at regular intervals.

20. The method of claim 15 , wherein a keepalive is detected based on the identified pattern of a plurality of the characteristics of the data transfer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: BACKHOLM, ARI; FLEMING, MICHAEL; KOKHANOVSKYI, ANDRII; YOON, SUNGWOOK
To: SEVEN NETWORKS, INC.
Reel/Frame 043305/0941 →
ENTITY CONVERSION Recorded Aug 16, 2017
From: SEVEN NETWORKS, INC.
To: SEVEN NETWORKS, LLC
Reel/Frame 043570/0489 →
Continuity (7)
Continuation 15443424 · Feb 27, 2017
Continuation 15051609 · Feb 23, 2016
Continuation 14266759 · Apr 30, 2014
Provisional Application 61836039 · Jun 17, 2013
Provisional Application 61823340 · May 14, 2013
Provisional Application 61817718 · Apr 30, 2013
Related Publication 20170325280A1 · Nov 9, 2017