IP Library Granted Patent US 10,091,107
Granted Patent B2
US 10,091,107 · App. 15/605,468 · Granted Oct 2, 2018

Network path selection using bandwidth prediction

Inventor: William Thomas Sella (Parker, CO)
Assignee: Level 3 Communications, LLC
H04L45/745H04L41/0654H04L41/12H04L43/0876H04L45/125H04L45/42H04L45/64H04L41/142
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,091,107
App. No.
15/605,468
Granted
Oct 2, 2018
Kind
B2
Abstract

In an embodiment, a system routes a new data stream from a source to a destination through a plurality of forwarding devices interconnected with links. The system includes a control device that receives a request to create a path through the plurality of interconnected forwarding devices for a new data stream and determines a type of the new data stream. A data flow database stores historical usage characteristics of data streams having the determined type. A path computation module determines, based on the historical usage characteristics of data streams having the determined type, the requested path through plurality of interconnected forwarding devices from the source to the destination.

Claims (35)

1. A computer-implemented method for routing a data stream from a source to a destination through a network including a plurality of forwarding devices interconnected with links, comprising:

(a) receiving, at a control device, a request to create a path for the data stream from the source to the destination through the plurality of forwarding devices, the data stream having a type;

(b) determining the path based on historical usage characteristics of data streams having the type, the historical usage characteristics including an amount of bandwidth utilized by previously transmitted data streams of the type and a length of previously transmitted data streams of the type;

(c) for respective forwarding devices along the path, determining a routing table indicating which port of the respective forwarding device to route data from the new data stream along the path determined in (b); and

(d) for each of the respective forwarding devices, transmitting the routing table determined in (c) to configure the forwarding device.

2. The computer-implemented method of claim 1 , further comprising:

(e) determining the type of the data stream based on at least one of a source Internet protocol (IP) address, a destination IP address, a source transport control protocol (TCP) port, a destination TCP port, a source universal datagram protocol (UDP) port, and destination UDP port.

3. The computer-implemented method of claim 1 , wherein the determining (b) is further based on at least one of historical link utilization information for the links and respective capacities of the links.

4. The computer-implemented method of claim 3 , wherein the determining (b) is further based on the historical link utilization information, and the historical link utilization information for the links includes an average of link utilization and a variance of link utilization over a predetermined period of time.

5. The computer-implemented method of claim 1 , wherein the determining (b) is further based on at least one of a latency requirement, a jitter requirement, a packet loss requirement, and a user's service level agreement.

6. The computer-implemented method of claim 1 , further comprising:

(e) before the receiving (a), determining the historical usage characteristics of data streams having the type by statistically sampling previously transmitted data streams having the type.

7. The computer-implemented method of claim 1 , wherein the data stream is identified with a label, and wherein the routing table determined in (c) indicates how to forward packets having the label.

8. The computer-implemented method of claim 1 , wherein the path includes a server that performs scrubbing operations on packets of the data stream.

9. The computer-implemented method of claim 8 , wherein the scrubbing operations include scanning the data stream for malicious content.

10. The computer-implemented method of claim 1 , wherein the determining (b) includes retrieving a predetermined path for the data stream from a path database, wherein the predetermined path is determined prior to receiving the request based on the historical usage characteristics of data streams having the type.

11. A system for routing a data stream from a source to a destination through a network including a plurality of forwarding devices interconnected with links, comprising:

a control device configured to receive a request to create a path for the data stream from the source to the destination through the plurality of forwarding devices, the data stream having a type;

a path computation module configured to determine the path based on historical usage characteristics of data streams having the type, the historical usage characteristics including an amount of bandwidth utilized by previously transmitted data streams of the type and a length of previously transmitted data streams of the type; and

a routing table module configured to (i) for respective forwarding devices along the path, determine a routing table indicating which port of the respective forwarding device to route data from the new data stream along the path, and (ii) for each of the respective forwarding devices, transmit the determined routing table to configure the forwarding device.

12. The system of claim 11 , wherein the control device is further configured to determine the type of the data stream based on at least one of a source interact protocol (IP) address, a destination IP address, a source transport control protocol (TCP) port, a destination TCP port, a source universal datagram protocol (UDP) port, and destination UDP port.

13. The system of claim 11 , wherein determining the path is further based on at least one of historical link utilization information for the links and respective capacities of the links.

14. The system of claim 13 , wherein the determining the path is based on the historical link utilization information, and the historical link utilization information for the links includes an average of link utilization and a variance of link utilization over a predetermined period of time.

15. The system of claim 11 , wherein the determining of the path is further based on at least one of a latency requirement, a jitter requirement, a packet loss requirement, and a user's service level agreement.

16. The system of claim 11 , further comprising:

a historical utilization module configured to determine the historical usage characteristics of data streams having the type by statistically sampling previously transmitted data streams having the type.

17. The system of claim 11 , wherein the data stream is identified with a label, and wherein the routing table indicates how to forward packets having the label.

18. A non-transitory program storage device tangibly embodying a program of instructions executable by at least one machine to perform a method for routing a data stream from a source to a destination through a plurality of forwarding devices interconnected with links, the method comprising:

(a) receiving, at a control device, a request to create a path for the data stream from the source to the destination through the plurality of forwarding devices, the data stream having a type;

(b) determining the path based on historical usage characteristics of data streams having the type, the historical usage characteristics including an amount of bandwidth utilized by previously transmitted data streams of the type and a length of previously transmitted data streams of the type;

(c) for respective forwarding devices along the path, determining a routing table indicating which port of the respective forwarding device to route data from the new data stream along the path determined in (b); and

(d) for each of the respective forwarding devices, transmitting the routing table determined in (c) to configure the forwarding device.

19. The non-transitory program storage device of claim 18 , the method further comprising:

(e) determining the type of the data stream based on at least one of a source Internet protocol (IP) address, a destination IP address, a source transport control protocol (TCP) port, a destination TCP port, a source universal datagram protocol (UDP) port, and destination UDP port.

20. The non-transitory program storage device of claim 18 , wherein the determining (b) is further based on at least one of historical link utilization information for the links and respective capacities of the links.

Assignments (5)
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 30, 2017
From: SELLA, WILLIAM THOMAS
To: TW TELECOM HOLDINGS, INC.
Reel/Frame 042525/0900 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2017
From: TW TELECOM HOLDINGS, INC.
To: LEVEL 3 COMMUNICATIONS, LLC
Reel/Frame 042525/0916 →
Continuity (4)
Continuation 14961551 · Dec 7, 2015
Continuation 14332843 · Jul 16, 2014
Continuation 14250132 · Apr 10, 2014
Related Publication 20170339057A1 · Nov 23, 2017