IP Library Granted Patent US 10,931,556
Granted Patent B2
US 10,931,556 · App. 15/960,033 · Granted Feb 23, 2021

Sampling packets to measure network performance

Inventors: William Thomas Sella (Parker, CO); James Michael Sella (Parker, CO)
Assignee: Level 3 Communications, LLC
H04L43/12H04L43/026H04L43/087H04L43/0852H04L43/0888H04L43/0894H04L43/106
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,931,556
App. No.
15/960,033
Granted
Feb 23, 2021
Kind
B2
Abstract

Disclosed are system, method, and computer-readable medium embodiments for a network to provide network applications and services and estimate network metrics for individual applications and services. In an embodiment, a first routing device receives a packet and determines that the packet is to be sampled. The first routing device samples the packet by storing first information associated with the packet and transmits the first information to a measurement server. The first routing device transmits the packet towards a destination according to routing information. A second routing device receives the packet and determines that the packet is to be sampled. The second routing device samples the packet by storing second information associated with the packet and transmitting the second information to the measurement server. The measurement server determines a measurement based on the first information and second information.

Claims (64)

1. A method of measuring network performance comprising:

receiving a packet at a first routing device;

detecting, by the first routing device, a first value included in the packet, the first value comprising a device address or a network protocol;

encapsulating, based on the detection of the first value in the packet, the packet with a sampling header, wherein the sampling header indicates to a second routing device that the packet is to be sampled;

sampling, by the first routing device, the packet by storing first information associated with the packet;

transmitting, by the first routing device, the first information to a measurement server;

transmitting, by the first routing device, the packet towards a destination according to routing information;

receiving the packet at the second routing device;

determining, by the second routing device, that the packet is to be sampled based on the sampling header;

sampling, by the second routing device, the packet by storing second information associated with the packet;

transmitting, by the second routing device, the second information to the measurement server;

before transmitting by the second routing device the second information to the measurement server, removing the sampling header from the packet; and

determining, by the measurement server, a performance measurement based on the first information and second information,

wherein the sampling header is associated with a specified network service or application.

2. The method as recited in claim 1 , further comprising detecting a second value in the sampling header.

3. The method as recited in claim 2 , further comprising detecting the second value in at least one of a source port, a destination port, and a packet sequence number.

4. The method as recited in claim 1 , wherein determining at the first routing device that the packet is to be sampled comprises: performing a hash function on at least a portion of the packet associated with the first value; and determining a result of the hash function satisfies a condition.

5. The method as recited in claim 1 , wherein the first information comprises a timestamp and at least a portion of the packet, wherein the packet comprises a first header, and wherein encapsulating the packet with the sampling header comprises adding the sampling header to the packet as a second header.

6. The method as recited in claim 5 , wherein the at least the portion of the packet comprises at least one of a portion of a header and a portion of a payload.

7. The method as recited in claim 1 , wherein the measurement comprises at least one of a latency, a throughput, a jitter, a packet rate, and a frame rate.

8. A system for measuring network performance, comprising:

a first routing device configured to:

receive a packet;

detect a first value included in the packet, the first value comprising a device address or a network protocol;

encapsulate, based on the detection of the first value in the packet, the packet with a sampling header, wherein the sampling header indicates that the packet is to be sampled;

sample the packet by storing first information associated with the packet;

transmit the first information to a measurement server; and

transmit the packet towards a destination according to routing information;

a second routing device configured to:

receive the packet at the second routing device;

determine that the packet is to be sampled based on the sampling header;

sample the packet by storing second information associated with the packet; and

transmit the second information to the measurement server;

before transmitting by the second routing device the second information to the measurement server, removing the sampling header from the packet; and

the measurement server configured to determine a performance measurement based on the first information and second information,

wherein the sampling header is associated with a specified network service or application.

9. The system as recited in claim 8 , wherein the second routing device is further configured to: determine that the packet is to be sampled by detecting a second value in the sampling header.

10. The system as recited in claim 9 , wherein the detecting the second value in the sampling header comprises detecting the second value in at least one of a source port, a destination port, and a packet sequence number, wherein the packet comprises a first header, and wherein encapsulating the packet with the sampling header comprises adding the sampling header to the packet as a second header.

11. The system as recited in claim 8 , wherein the first routing device is further configured to: determine that the packet is to be sampled by performing a hash function on at least a portion of the packet, the at least a portion of the packet associated with the first value; and determining a result of the hash function satisfies a condition.

12. The system as recited in claim 8 , wherein the first information comprises a timestamp and at least a portion of the packet.

13. The system as recited in claim 12 , wherein the at least the portion of the packet comprises at least one of a portion of a header and a portion of a payload.

14. The system as recited in claim 8 , wherein the measurement comprises at least one of a latency, a throughput, a jitter, a packet rate, and a frame rate.

15. A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations for measuring network performance, the operations comprising:

receiving a packet at a first routing device;

detecting, by the first routing device, a first value included in the packet, the first value comprising a device address or a network protocol;

sampling, by the first routing device, the packet by storing first information associated with the packet;

encapsulating, by the first routing device and based on the detection of the first value in the packet, the packet with a sampling header, wherein the sampling header indicates to a second routing device that the packet is to be sampled;

transmitting, by the first routing device, the first information to a measurement server;

transmitting, by the first routing device, the packet towards a destination according to routing information;

receiving the packet at the second routing device;

determining, by the second routing device, that the packet is to be sampled based on the sampling header;

sampling, by the second routing device, the packet by storing second information associated with the packet;

transmitting, by the second routing device, the second information to the measurement server;

before transmitting by the second routing device the second information to the measurement server, removing the sampling header from the packet; and

determining, by the measurement server, a performance measurement based on the first information and second information,

wherein the sampling header is associated with a specified network service or application.

16. The computer-readable medium as recited in claim 15 , the operations further comprising:

detecting a second value in the sampling header.

17. The computer-readable medium as recited in claim 16 , wherein the detecting the second value in the sampling header comprises detecting the second value in at least one of a source port a destination port, and a packet sequence number, wherein the packet comprises a first header, and wherein encapsulating the packet with the sampling header comprises adding the sampling header to the packet as a second header.

18. The computer-readable medium as recited in claim 15 , the operations further comprising:

determining at the first routing device that the packet is to be sampled by performing a hash function on at least a portion of the packet associated with the first value; and

determining a result of the hash function satisfies a condition.

19. The computer-readable medium as recited in claim 15 , wherein the first information comprises a timestamp and at least a portion of the packet, and wherein the at least the portion of the packet comprises at least one of a portion of a header and a portion of a payload.

20. The computer-readable medium as recited in claim 15 , wherein the measurement comprises at least one of a latency, a throughput, a jitter, a packet rate, and a frame rate.

Assignments (4)
ASSIGNMENT OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 069295/0858 Recorded Jun 12, 2026
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS RETIRING COLLATERAL AGENT
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 075738/0427 →
NOTICE OF GRANT OF SECURITY INTEREST IN INTELLECTUAL PROPERTY (SECOND LIEN) Recorded Nov 4, 2024
From: LEVEL 3 COMMUNICATIONS, LLC; GLOBAL CROSSING TELECOMMUNICATIONS, INC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069295/0749 →
NOTICE OF GRANT OF SECURITY INTEREST IN INTELLECTUAL PROPERTY (FIRST LIEN) Recorded Nov 4, 2024
From: LEVEL 3 COMMUNICATIONS, LLC; GLOBAL CROSSING TELECOMMUNICATIONS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069295/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2018
From: SELLA, WILLIAM THOMAS; SELLA, JAMES MICHAEL
To: LEVEL 3 COMMUNICATIONS, LLC
Reel/Frame 045807/0051 →
Continuity (3)
Continuation 14678687 · Apr 3, 2015
Provisional Application 62057290 · Sep 30, 2014
Related Publication 20180241659A1 · Aug 23, 2018