IP Library Granted Patent US 9,167,021
Granted Patent B2
US 9,167,021 · App. 13/436,671 · Granted Oct 20, 2015

Measuring web browsing quality of experience in real-time at an intermediate network node

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,167,021
App. No.
13/436,671
Granted
Oct 20, 2015
Kind
B2
Abstract

A method including acquiring a current HTTP transaction; determining whether the current HTTP transaction relates to web browsing for a specific client; acquiring a previous transactions set of the specific client; evaluating whether the current HTTP transaction belongs with the previous transactions set; if the current HTTP transaction belongs with the previous transactions set, adding the current HTTP transaction to the previous transactions set; and if the current HTTP transaction does not belong with the previous transactions set, creating a boundary of a page unit that includes the HTTP transactions of the previous transactions set for computing a page unit time.

Claims (114)

1. A method comprising:

acquiring a current Hypertext Transfer Protocol (HTTP) transaction;

determining whether the current HTTP transaction relates to web browsing;

acquiring a previous transactions set of a specific client;

evaluating whether the current HTTP transaction belongs with the previous transactions set;

if the current HTTP transaction belongs with the previous transactions set, adding the current HTTP transaction to the previous transactions set; and

if the current HTTP transaction does not belong with the previous transactions set, creating a boundary of a page unit that includes the HTTP transactions of the previous transactions set for computing a page unit time.

2. The method of claim 1 , wherein the page unit time is used for acquiring an expected quality of experience score.

3. The method of claim 1 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a user agent of the current HTTP transaction matches with an entry in a predefined user agent set; and

accepting the current HTTP transaction if the user agent of the current HTTP transaction matches with an entry in a predefined user agent set.

4. The method of claim 1 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a response code is in a predefined response code set, wherein the response code is acquired based on the current HTTP transaction; and

accepting the current HTTP transaction if the response code is determined to be within the predefined response code set.

5. The method of claim 1 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a content type is within a predefined content type set, wherein the content type is acquired based on the current HTTP transaction; and

accepting the current HTTP transaction if the content type is within a predefined content type set.

6. The method of claim 1 , wherein the evaluating whether the current HTTP transaction belongs with the previous transactions set comprises:

computing a time gap between the current HTTP transaction and the previous transactions set;

determining whether the time gap satisfies a predefined timing threshold condition; and

associating the current HTTP transaction with the previous transactions set if the time gap satisfied the predefined timing threshold condition.

7. The method of claim 1 , wherein the creating a boundary of a page unit further comprises determining whether the previous transactions set is the page unit.

8. The method of claim 7 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether the previous transactions set includes at least one HyperText Markup Language (HTML) object; and

accepting the previous transactions set as a page unit based at least in part on the previous transaction set including at least one HTML object.

9. The method of claim 7 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether size of a largest HyperText Markup Language (HTML) object included in the previous transactions set satisfies a size threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the size of the largest HTML object satisfying a size threshold condition.

10. The method of claim 7 , wherein determining whether the previous transaction set is a page unit further comprises:

determining whether a number of images included in the previous transactions set satisfies an image threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the number of images satisfying the image threshold condition.

11. The method of claim 7 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether a total number of objects included in the previous transactions set satisfies a number of object threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the total number of objects satisfying the number of object threshold condition.

12. The method of claim 7 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether a total download time satisfies a download time threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the total download time satisfying the download time threshold condition.

13. The method of claim 1 , further comprising:

acquiring a first average page unit time based on predetermined page unit times of more than one client for a fixed number of objects, wherein the first average page unit time is stored in a database;

acquiring a second average page unit time based on predetermined page unit times of more than one client for the same number of objects included within the HTTP transactions of the previous transactions set, wherein the second average page unit time is stored in the database; and

computing a normalized page unit time based on the page unit time, the first average page unit time and the second average page unit time.

14. The method of claim 13 , wherein the acquiring the first average page unit time and the acquiring the second average page unit time are based on a sliding time window.

15. A non-transitory computer readable storage medium storing instruction that, when executed by a computer, cause the computer to perform a method for processing Hypertext Transfer Protocol (HTTP) data, the method comprising:

acquiring a current HTTP transaction;

determining whether the current HTTP transaction relates to web browsing;

acquiring a previous transactions set of a specific client;

evaluating whether the current HTTP transaction belongs with the previous transactions set;

if the current HTTP transaction belongs with the previous transactions set, adding the current HTTP transaction to the previous transactions set; and

if the current HTTP transaction does not belong with the previous transactions set, creating a boundary of a page unit that includes the HTTP transactions of the previous transactions set for computing a page unit time.

16. The computer readable storage medium of claim 15 , wherein the page unit time is used for acquiring an expected quality of experience score.

17. The computer readable storage medium of claim 15 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a user agent of the current HTTP transaction matches with an entry in a predefined user agent set; and

accepting the current HTTP transaction if the user agent of the current HTTP transaction matches with an entry in a predefined user agent set.

18. The computer readable storage medium of claim 15 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a response code is in a predefined response code set, wherein the response code is acquired based on the current HTTP transaction; and

accepting the current HTTP transaction if the response code is determined to be within the predefined response code set.

19. The computer readable storage medium of claim 15 , wherein the determining whether the current HTTP transaction relates to web browsing comprises:

determining whether a content type is within a predefined content type set, wherein the content type is acquired based on the current IMP transaction; and

accepting the current HTTP transaction if the content type is within a predefined content type set.

20. The computer readable storage medium of claim 15 , wherein the evaluating whether the current HTTP transaction belongs with the previous transactions set comprises:

computing a time gap between the current HTTP transaction and the previous transactions set;

determining whether the time gap satisfies a predefined timing threshold condition; and

associating the current HTTP transaction with the previous transactions set if the time gap satisfied the predefined timing threshold condition.

21. The computer readable storage medium of claim 15 , wherein the creating a boundary of a page unit further comprises determining whether the previous transactions set is the page unit.

22. The computer readable storage medium of claim 21 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether the previous transactions set includes at least one HyperText Markup Language (HTML) object; and

accepting the previous transactions set as a page unit based at least in part on the previous transactions set including at least one HTML object.

23. The computer readable storage medium of claim 21 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether size of a largest HyperText Markup Language (HTML) object included in the previous transactions set satisfies a size threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the size of the largest HTML object satisfying a size threshold condition.

24. The computer readable storage medium of claim 21 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether a number of images included in the previous transactions set satisfies an image threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the number of images satisfying the image threshold condition.

25. The computer readable storage medium of claim 21 , wherein determining whether the previous transactions set is a page unit further comprises;

determining whether a total number of objects included in the previous transactions set satisfies a number of object threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the total number of objects satisfying the number of object threshold condition.

26. The computer readable storage medium of claim 21 , wherein determining whether the previous transactions set is a page unit further comprises:

determining whether a total download time satisfies a download time threshold condition; and

accepting the previous transactions set as a page unit based at least in part on the total download time satisfying the download time threshold condition.

27. The computer readable storage medium of claim 15 , further comprising:

acquiring a first average page unit time based on predetermined page unit times of more than one client for a fixed number of objects, wherein the first average page unit time is stored in a database;

acquiring a second average page unit time based on predetermined page unit times of more than one client for the same number of objects included within the HTTP transactions of the previous transactions set, wherein the second average page unit time is stored in the database; and

computing a normalized page unit time based on the page unit time, the first average page unit time and the second average page unit time.

28. The computer readable storage medium of claim 27 , wherein the acquiring the first average page unit time and the acquiring the second average page unit time are based on a sliding time window.

29. An apparatus for page unit detection comprising:

a packet processor configured to acquire a current Hypertext Transfer Protocol (HTTP) transaction;

a transaction filter configured to determine whether the current HTTP transaction relates to web browsing;

a page unit detector configured to

acquire a previous transactions set of a specific client,

evaluate whether the current HTTP transaction belongs with the previous transactions set,

if the current HTTP transaction belongs with the previous transactions set, add the current HTTP transaction to the previous transactions set; and

if the current HTTP transaction does not belong with the previous transactions set, create a boundary of a page unit that includes the HTTP transactions of the previous transactions set for computing a page unit time.

30. The apparatus of claim 29 , wherein the page unit time is used for acquiring an expected quality of experience score.

31. The apparatus of claim 29 , wherein the transaction filter is configured to determine whether the current HTTP transaction relates to web browsing by determining whether a user agent of the current HTTP transaction matches with an entry in a predefined user agent set, and accepting the current HTTP transaction if the user agent of the current HTTP transaction matches with an entry in a predefined user agent set.

32. The apparatus of claim 29 , wherein the transaction filter is configured to determine whether the current HTTP transaction relates to web browsing by determining whether a response code is in a predefined response code set, wherein the response code is acquired based on the current HTTP transaction, and accepting the current HTTP transaction if the response code is determined to be within the predefined response code set.

33. The apparatus of claim 29 , wherein the transaction filter is configured to determine whether the current HTTP transaction relates to web browsing by determining whether a content type is within a predefined content type set, wherein the content type is acquired based on the current HTTP transaction, and accepting the current HTTP transaction if the content type is within a predefined content type set.

34. The apparatus of claim 29 , wherein the page unit detector is configured to evaluate whether the current HTTP transaction belongs with the previous transactions set by computing a time gap between the current HTTP transaction and the previous transactions set, determining whether the time gap satisfies a predefined timing threshold condition, and associating the current HTTP transaction with the previous transactions set if the time gap satisfied the predefined timing threshold condition.

35. The apparatus of claim 29 , wherein the page unit detector is configured to create a boundary of a page unit by determining whether the previous transactions set is the page unit.

36. The apparatus of claim 35 , wherein the page unit detector is configured to determine whether the previous transactions set is a page unit by determining whether the previous transactions set includes at least one HyperText Markup Language (HTML) object, and accepting the previous transactions set as a page unit based at least in part on the previous transaction set including at least one HTML object.

37. The apparatus of claim 35 , wherein the page unit detector is configured to determine whether the previous transactions set is a page unit by determining whether size of a largest HyperText Markup Language (HTML) object included in the previous transactions set satisfies a size threshold condition, and accepting the previous transactions set as a page unit based at least in part on the size of the largest HTML object satisfying a size threshold condition.

38. The apparatus of claim 35 , wherein the page unit detector is configured to determine whether the previous transactions set is a page unit by determining whether a number of images included in the previous transactions set satisfies an image threshold condition, and accepting the previous transactions set as a page unit based at least in part on the number of images satisfying the image threshold condition.

39. The apparatus of claim 35 , wherein the page unit detector is configured to determine whether the previous transactions set is a page unit by determining whether a total number of objects included in the previous transactions set satisfies a number of object threshold condition, and accepting the previous transactions set as a page unit based at least in part on the total number of objects satisfying the number of object threshold condition.

40. The apparatus of claim 35 , wherein the page unit detector is configured to determine whether the previous transactions set is a page unit by determining whether a total download time satisfies a download time threshold condition, and accepting the previous transactions set as a page unit based at least in part on the total download time satisfying the download time threshold condition.

41. The apparatus of claim 29 , wherein the page unit detector is further configured to acquire a first average page unit time based on predetermined page unit times of more than one client for a fixed number of objects, wherein the first average page unit time is stored in a database, acquire a second average page unit time based on predetermined page unit times of more than one client for the same number of objects included within the HTTP transactions of the previous transactions set, wherein the second average page unit time is stored in the database, and compute a normalized page unit time based on the page unit time, the first average page unit time and the second average page unit time.

42. The apparatus of claim 41 , wherein the page unit detector is further configured to acquire the first average page unit time and acquire the second average page unit time based on a sliding time window.

43. An apparatus for page unit detection, comprising:

one or more computer-readable storage media configured to store instructions; and

one or more processors configured to execute the instructions to cause the apparatus to:

acquire a current Hypertext Transfer Protocol (HTTP) transaction;

determine whether the current HTTP transaction relates to web browsing;

acquire a previous transactions set of a specific client;

evaluate whether the current HTTP transaction belongs with the previous transactions set;

if the current HTTP transaction belongs with the previous transactions set, add the current HTTP transaction to the previous transactions set; and

if the current HTTP transaction does not belong with the previous transactions set, create a boundary of a page unit that includes the HTTP transactions of the previous transactions set for computing a page unit time.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: OPTIMORPHIX, INC.
Reel/Frame 064020/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2012
From: PARTHASARATHY, KANNAN; STAVRAKOS, NICHOLAS JAMES
To: BYTEMOBILE, INC.
Reel/Frame 027967/0717 →