IP Library Granted Patent US 8,792,347
Granted Patent B2
US 8,792,347 · App. 13/907,847 · Granted Jul 29, 2014

Real-time network monitoring and subscriber identification with an on-demand appliance

Inventors: Erik R. Swenson (San Jose, CA); Nitin Bhandari (Fremont, CA)
Assignee: Opera Software Ireland Limited
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 8,792,347
App. No.
13/907,847
Granted
Jul 29, 2014
Kind
B2
Abstract

A system and a method are disclosed for selectively monitoring traffic in a service provider network. The system receives a notice for a beginning of a network data flow, which responds to a request from a user device for content at an origin server. The system then determines whether to monitor the data flow from the origin server to the user device. If so determined, the system collects statistic information of the data flow and stores the statistic information to a flow record in a database. The system also maps the flow record to a subscriber of the service provider network by analyzing the statistic information of the data flow and estimates bandwidth provided to the data flow by the service provider's network based on the analysis of the statistic information of the data flow.

Claims (60)

1. A method for selectively monitoring traffic in a service provider network, the method comprising:

receiving a notice for a beginning of a network data flow between an origin server and a user device, the data flow for delivering media content from the origin server to the user device in response to a request for the media content from the user device;

determining whether to monitor the data flow between the origin server and the user device;

responsive to a determination to monitor the data flow, collecting statistic information corresponding to the data flow;

storing the statistic information collected for the data flow to a flow record in a database;

mapping the flow record in the database to a subscriber of the service provider network based on an analysis of the statistic information collected for the data flow, where mapped flow records are aggregated for the subscriber;

determining historical bandwidth provided to the subscriber based on the mapped flow records aggregated for the subscriber; and

estimating bandwidth to be consumed on the service provider network by the data flow between the user device and the origin server based on the statistic information collected for the data flow and the historical bandwidth provided to the subscriber.

2. The method of claim 1 , wherein determining whether to monitor the data flow comprises determining whether the media content in the data flow indicates transfer of video and/or images larger than a predetermined size.

3. The method of claim 1 , wherein the statistical information collected for the data flow includes at least one of throughput, latency, size of the media content to be delivered, and duration of the flow.

4. The method of claim 1 , wherein the flow record comprises at least one of: user device source IP address, subscriber identifier, estimated bandwidth, cookie hashes, flow identifier, and transmitted and received bytes, and wherein the flow record is updated during a lifespan of the data flow.

5. The method of claim 1 , wherein estimating the bandwidth to be consumed on the service provider network by the data flow comprises:

receiving an update on the transmitted or received bytes to the flow record; and

calculating the bandwidth by dividing a difference between the transmitted or received bytes since last update by an interval of time since the last update.

6. The method of claim 1 , further comprising:

summing up the estimated bandwidth of monitored data flows in the service provider network; and

determining a congestion level of the service provider network by comparing the sum of bandwidth of the monitored data flows against a capacity of the service provider network.

7. The method of claim 6 , further comprising:

determining whether to optimize the data flow based on the congestion level of the service provider network and a size of the media content to be delivered in the data flow; and

redirecting the request for the media content from the requesting user device to a video optimizer, wherein the video optimizer retrieves the media content from the origin server, optimizes the media content for the user device, and transmits the optimized media content to the user device.

8. The method of claim 1 , wherein aggregating flow records corresponding to the subscriber in the database of the service provider network is based on matching at least one of: user device source IP address and MAC address, TCP port number, and hashes of a cookie associated with the data flows.

9. A non-transitory computer-readable storage medium storing executable computer program instructions for selectively monitoring traffic in a service provider network, the computer program instructions comprising instructions for:

receiving a notice for a beginning of a network data flow between an origin server and a user device, the data flow for delivering media content from the origin server to the user device in response a response to a request for the media content from the user device;

determining whether to monitor the data flow between the origin server and the user device;

responsive to a determination to monitor the data flow, collecting statistic information corresponding to the data flow;

storing the statistic information collected for the data flow to a flow record in a database;

mapping the flow record in the database to a subscriber of the service provider network based on an analysis of the statistic information collected for the data flow, where mapped flow records are aggregated for the subscriber;

determining historical bandwidth provided to the subscriber based on the mapped flow records aggregated for the subscriber; and

estimating bandwidth to be consumed on the service provider network by the data flow between the user device and the origin server based on the statistic information collected for the data flow and the historical bandwidth provided to the subscriber.

10. The non-transitory computer-readable storage medium of claim 9 , wherein determining whether to monitor the data flow comprises determining whether the media content in the data flow indicates transfer of video and/or images larger than a predetermined size.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the statistical information collected for the data flow includes at least one of throughput, latency, size of the media content to be delivered, and duration of the flow.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the flow record comprises at least one of: user device source IP address, subscriber identifier, estimated bandwidth, cookie hashes, flow identifier, and transmitted and received bytes, and wherein the flow record is updated during a lifespan of the data flow.

13. The non-transitory computer-readable storage medium of claim 9 , wherein estimating the bandwidth to be consumed on the service provider network by the data flow comprises:

receiving an update on the transmitted or received bytes to the flow record; and

calculating the bandwidth by dividing a difference between the transmitted or received bytes since last update by an interval of time since the last update.

14. The non-transitory computer-readable storage medium of claim 9 , the computer program instruction further comprising instruction for:

summing up the estimated bandwidth of monitored data flows in the service provider network; and

determining a congestion level of the service provider network by comparing the sum of bandwidth of monitored data flows against a capacity of the service provider network.

15. The non-transitory computer-readable storage medium of claim 14 , the computer program instruction further comprising instruction for:

determining whether to optimize the data flow based on the congestion level of the service provider network and a size of the media content to be delivered in the data flow; and

redirecting the request for the media content from the requesting user device to a video optimizer, wherein the video optimizer retrieves the media content from the origin server, optimizes the media content for the user device, and transmits the optimized media content to the user device.

16. The non-transitory computer-readable storage medium of claim 9 , wherein aggregating flow records corresponding to the subscriber in the database of the service provider network is based on matching at least one of: user device source IP address and MAC address, TCP port number, and hashes of a cookie associated with the data flows.

17. A system for selectively monitoring traffic in a service provider network, comprising:

a processor; and

a non-transitory computer-readable storage medium storing executable computer program instructions that when executed by the processor:

receive a notice for a beginning of a network data flow between an origin server and a user device, the data flow for delivering media content from the origin server to the user device in response to a request for the media content from the user device;

determine whether to monitor the data flow between the origin server and the user device;

collect statistic information corresponding to the data flow in response to a determination to monitor the data flow;

store the statistic information collected for the data flow to a flow record in a database;

map the flow record in the database to a subscriber of the service provider network based on an analysis of the statistic information collected for the data flow, where mapped flow records are aggregated for the subscriber;

determine historical bandwidth provided to the subscriber based on the mapped flow records aggregated for the subscriber; and

estimate bandwidth to be consumed on the server provider network by the data flow between the user device and the origin server based on the statistic information collected for the data flow and the historical bandwidth provided to the subscriber.

18. The system of claim 17 , wherein the system collects statistic information of the data flow as an inline network element that receives and forwards the data flow.

19. The system of claim 17 , wherein the system collects receives the data flow from an inline network element in response to a determination to monitor the data flow based on statistic information collected for the data flow, the inline network element forwarding the data flow for processing in response to the determination to monitor the data flow.

20. The system of claim 17 , wherein the executable computer program instructions further comprise instructions to:

sum up the estimated bandwidth of monitored data flows in the service provider network; and

determine a congestion level of the service provider network by comparing the sum of bandwidth of the monitored data flows against a capacity of the service provider network.

21. The system of claim 17 , wherein the executable computer program instructions further comprise instructions to:

determine whether to optimize the data flow based on the congestion level of the service provider network and a size of the media content in the data flow; and

redirect the request for the media content from the requesting user device to a video optimizer, wherein the video optimizer retrieves the media content from the origin server, optimizes the media content for the user device, and transmits the optimized media content to the user device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2025
From: OTELLO CORPORATION ASA
To: TIR TECHNOLOGIES LIMITED
Reel/Frame 071165/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2023
From: PERFORMANCE AND PRIVACY IRELAND LIMITED
To: OTELLO CORPORATION ASA
Reel/Frame 063188/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2017
From: OPERA SOFTWARE IRELAND LTD.
To: PERFORMANCE AND PRIVACY IRELAND LTD.
Reel/Frame 042076/0473 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2014
From: SKYFIRE LABS, INC.
To: OPERA SOFTWARE IRELAND LIMITED
Reel/Frame 032827/0175 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2013
From: SWENSON, ERIK R.; BHANDARI, NITIN
To: SKYFIRE LABS, INC.
Reel/Frame 030870/0203 →
Continuity (3)
Provisional Application 61654689 · Jun 1, 2012
Provisional Application 61745391 · Dec 21, 2012
Related Publication 20130322242A1 · Dec 5, 2013