IP Library Granted Patent US 10,735,296
Granted Patent B2
US 10,735,296 · App. 15/799,804 · Granted Aug 4, 2020

Monitoring network traffic in association with an application

Inventor: Konstantinos Polychronis (San Francisco, CA)
Assignee: SPLUNK Inc.
H04L43/12H04L43/08H04L69/22H04L43/028H04L43/14
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,735,296
App. No.
15/799,804
Granted
Aug 4, 2020
Kind
B2
Abstract

Various methods and systems for facilitating network traffic monitoring in association with an application running on a client device are provided. In this regard, aspects of the invention facilitate monitoring network traffic being transmitted to and/or from a client device, such as a mobile device, so that network performance can be analyzed. In various implementations, packet headers of data packets are read to obtain or extract desired network metrics that indicate network performance. Packet headers are generally read to the extent necessary to identify various network data. As such, by avoiding examination of a packet payload and, in some cases, examination of the entire header, the efficiency of monitoring network traffic at a client device is improved.

Claims (61)

1. A method for monitoring network traffic, the method comprising:

receiving, at a server, network data that corresponds to a predetermined set of types of network data, the network data indicating network performance associated with an application running on a mobile device, the network data identified at the mobile device by reading a packet header of a packet being communicated to or from the application running on the mobile device to identify the network data in the packet header, the network data identified in accordance with a determination to read a payload of the packet, the determination to read the payload based on a determination that the network data in the packet header does not include a value indicating packet size; and

utilizing the received network data to analyze performance of the application running on the mobile device.

2. The method of claim 1 , the network data identified at the mobile device by reading a second packet header of a second packet communicated to or from the application running on the mobile device, the reading of the second packet header terminated, before reading all of the second packet header, based on a determination that the network data in the second packet header includes each type of network data of the predetermined set of types of network data.

3. The method of claim 1 , the network data identified at the mobile device, by reading a second packet header of a second packet communicated to or from the application running on the mobile device, in accordance with a determination to read a payload of the second packet, the determination to read the payload based on a determination that the network data in the second packet header does not include each type of network data of the predetermined set of types of network data.

4. The method of claim 1 , the network data identified at the mobile device, by reading a second packet header of a second packet communicated to or from the application running on the mobile device, the reading of the second packet terminated upon reading a number of bytes corresponding to a tracked number of incoming bytes of the packet.

5. The method of claim 1 , the network data identified in accordance with a determination to read a payload of the packet only to the extent necessary to identify the at least one network data corresponding with each type of network data not in the packet header.

6. The method of claim 1 , wherein the server uses the identified network data that corresponds to the predetermined set of types of network data to generate one or more network metrics indicating performance of the network in association with the application.

7. The method of claim 1 , wherein the server uses the identified network data that corresponds to the predetermined set of types of network data to generate one or more network metrics indicating performance of the network in association with the application, the one or more network metrics indicating a latency, a bandwidth, a throughput, a jitter variation, or an error rate.

8. The method of claim 1 , wherein one or more classes are used to facilitate the method of claim 1 , each of the one or more classes being a custom class incorporated with the application via a plug-in.

9. The method of claim 1 , wherein one or more classes are used to facilitate the method of claim 1 , each of the one or more classes being a custom class incorporated with the application via a plug-in, wherein the plug-in is initiated via the application in accordance with a network monitor trigger that triggers activation of the plug-in.

10. The method of claim 1 , wherein one or more classes are used to facilitate the method of claim 1 , each of the one or more classes being a custom class incorporated with the application via a plug-in, wherein the plug-in is initiated via the application in accordance with a network monitor trigger that triggers activation of the plug-in, the network monitor trigger comprising one line of code that triggers activation of the plug-in in accordance with the application being launched.

11. The method of claim 1 , wherein the predetermined set of types of network data comprises a uniform resource locator (URL), a connection type, a connection start time, a connection end time, a http status code, a request length, a response length, a request headers, a response headers, or a combination thereof.

12. The method of claim 1 further comprising:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application.

13. The method of claim 1 further comprising:

receiving, at the server, a set of network data indicating network performance associated with the application running on a second mobile device, the network data being identified at the second mobile device; and

utilizing the received network data and the received set of network data to analyze performance of the application running on the mobile device and the second mobile device.

14. The method of claim 1 further comprising:

receiving, at the server, a plurality of network data indicating network performance associated with the application running on a plurality of mobile devices; and

utilizing the plurality of network data to analyze performance of the application.

15. The method of claim 1 further comprising generating one or more network metrics indicating performance of the network in association with the application, wherein the one or more network metrics comprise at least one of a latency associated with the mobile device, a latency associated with the application, and a latency associated with a set of applications.

16. The method of claim 1 further comprising:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application, the one or more network metrics being used to optimize or resolve issues associated with the application.

17. A system for monitoring network traffic, the system comprising:

one or more data processors; and

one or more computer-readable storage media containing instructions which when executed on the one or more data processors, cause the one or more processors to perform operations including:

receiving, at a server, network data that corresponds to a predetermined set of types of network data, the network data indicating network performance associated with an application running on a mobile device, the network data identified at the mobile device by reading a packet header of a packet communicated to or from the application running on the mobile device to identify the network data in the packet header, the network data identified in accordance with a determination to read a payload of the packet, the determination to read the payload based on a determination that the network data in the packet header does not include a value indicating packet size; and

utilizing the received network data to analyze performance of the application running on the mobile device.

18. The system of claim 17 , wherein the predetermined set of types of network data comprises a uniform resource locator (URL), a connection type, a connection start time, a connection end time, a http status code, a request length, a response length, a request headers, a response headers, or a combination thereof.

19. The system of claim 17 , the operations further comprising:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application.

20. The system of claim 17 , the operations further comprising:

receiving, at the server, a set of network data indicating network performance associated with the application running on a second mobile device, the network data being identified at the second mobile device; and

utilizing the received network data and the received set of network data to analyze performance of the application running on the mobile device and the second mobile device.

21. The system of claim 17 , the operations further comprising:

receiving, at the server, a plurality of network data indicating network

performance associated with the application running on a plurality of mobile devices; and utilizing the plurality of network data to analyze performance of the application.

22. The system of claim 17 , the operations further comprising generating one or more network metrics indicating performance of the network in association with the application, wherein the one or more network metrics comprise at least one of a latency associated with the mobile device, a latency associated with the application, and a latency associated with a set of applications.

23. The system of claim 17 , the operations further comprising:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application, the one or more network metrics being used to optimize or resolve issues associated with the application.

24. One or more non-transitory computer-storage media storing computer-executable instructions that, when executed by a computing device, perform a method for monitoring network traffic, the method comprising:

receiving, at a server, network data that corresponds to a predetermined set of types of network data, the network data indicating network performance associated with an application running on a mobile device, the network data identified at the mobile device by reading a packet header of a packet communicated to or from the application running on the mobile device to identify the network data in the packet header, the network data identified in accordance with a determination to read a payload of the packet, the determination to read the payload based on a determination that the network data in the packet header does not include a value indicating packet size; and

utilizing the received network data to analyze performance of the application running on the mobile device.

25. The media of claim 24 , wherein the method further comprises:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application.

26. The media of claim 24 , wherein the method further comprises:

receiving, at the server, a set of network data indicating network performance associated with the application running on a second mobile device, the network data being identified at the second mobile device; and

utilizing the received network data and the received set of network data to analyze performance of the application running on the mobile device and the second mobile device.

27. The media of claim 24 , wherein the method further comprises:

receiving, at the server, a plurality of network data indicating network performance associated with the application running on a plurality of mobile devices; and

utilizing the plurality of network data to analyze performance of the application.

28. The media of claim 24 , wherein the method further comprises generating one or more network metrics indicating performance of the network in association with the application, wherein the one or more network metrics comprise at least one of a latency associated with the mobile device, a latency associated with the application, and a latency associated with a set of applications.

29. The media of claim 24 , wherein the method further comprises:

generating one or more network metrics indicating performance of the network in association with the application; and

providing the one or more network metrics to an application server associated with the application, the one or more network metrics being used to optimize or resolve issues associated with the application.

Assignments (4)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2018
From: POLYCHRONIS, KONSTANTINOS
To: SPLUNK INC.
Reel/Frame 044880/0072 →
Continuity (3)
Continuation 14524748 · Oct 27, 2014
Provisional Application 62053025 · Sep 19, 2014
Related Publication 20180054377A1 · Feb 22, 2018