IP Library Granted Patent US 10,666,563
Granted Patent B2
US 10,666,563 · App. 16/133,346 · Granted May 26, 2020

Buffer-less virtual routing

Inventors: William Thomas Sella (Parker, CO); James Michael Sella (Parker, CO)
Assignee: Level 3 Communications, LLC
H04L45/70H04L41/0816H04L41/0896H04L43/087H04L45/02H04L45/121H04L45/125H04L45/22H04L45/42H04L45/44H04L45/502H04L45/566H04L45/586H04L47/24H04L45/10H04L45/123
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,666,563
App. No.
16/133,346
Granted
May 26, 2020
Kind
B2
Abstract

A network includes a plurality of endpoint routers and intermediate routers. When a new data stream is detected at any endpoint router, the first packet is sent to a virtual routing server with knowledge of the entire network topology. Based on the topology, current usage, and historical usage, the virtual routing server determined a path for the data stream and begins to update the routing tables of the intermediate routers to reflect the determined path. Until the update is complete, all packets in the data stream are routed first to the virtual routing server and then to their destination. Once the update is complete, packets in the data stream are routed directly along the determined path.

Claims (40)

1. A computer-implemented method for virtually routing a first data stream from a source to a destination through a plurality of interconnected routers, comprising:

(a) receiving, at a virtual router, a first packet of the first data stream;

(b) transmitting, by the virtual router, the first packet to the destination using a pre-computed path to the destination;

(c) determining a first path through the plurality of interconnected routers from the source to the destination, wherein the first path does not comprise the virtual router; and

(d) configuring each router in the first path to route data of the first data stream using the first path.

2. The computer-implemented method of claim 1 , wherein the configuring in (d) is performed repeatedly, starting with configuring a last router in the first path and ending with configuring a first router in the first path, and wherein the last router is closest to the destination and the first router is closest to the source.

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

(e) receiving, at the virtual router, a second packet of the first data stream from the source; and

(f) transmitting the second packet using the pre-computed path from the virtual router to the destination.

4. The computer-implemented method of claim 1 , wherein the determining in (c) comprises selecting the first path from a plurality of different paths connecting the source to the destination based on a relative amount of available capacity on the plurality of different paths.

5. The computer-implemented method of claim 1 , wherein the determining in (c) comprises selecting the first path from a plurality of different paths connecting the source to the destination based at least on one of a relative latency, jitter, or packet loss on the plurality of different paths.

6. The computer-implemented method of claim 1 , wherein the determining in (c) comprises determining the first path such that data from the first data stream will pass through a particular machine.

7. The computer-implemented method of claim 6 , wherein the determining in (c) further comprises selecting the particular machine from a plurality of machines having a particular class.

8. A system comprising:

at least one processor; and

memory, operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations comprising:

receiving, at a virtual router, a first packet of a first data stream from a source to a destination;

transmitting, by the virtual router, the first packet to the destination using a pre-computed path to the destination;

determining a first path through a plurality of interconnected routers from the source to the destination, wherein the first path does not comprise the virtual router; and

configuring each router in the first path to route data of the first data stream using the first path.

9. The system of claim 8 , wherein configuring each router in the first path is performed starting with a last router in the first path and ending with a first router in the first path, and wherein the last router is closest to the destination and the first router is closest to the source.

10. The system of claim 8 , wherein the set of operations further comprises:

receiving, at the virtual router, a second packet of the first data stream from the source; and

transmitting the second packet using the pre-computed path from the virtual router to the destination.

11. The system of claim 8 , wherein determining the first path comprises selecting the first path from a plurality of different paths connecting the source to the destination based on a relative amount of available capacity on the plurality of different paths.

12. The system of claim 8 , wherein determining the first path comprises selecting the first path from a plurality of different paths connecting the source to the destination based at least on one of a relative latency, jitter, or packet loss on the plurality of different paths.

13. The system of claim 8 , wherein the first path is determined such that data from the first data stream will pass through a particular machine.

14. The system of claim 13 , wherein determining the first path further comprises selecting the particular machine from a plurality of machines having a particular class.

15. A nontransitory computer storage medium containing computer executable instructions that, when executed by a computer, perform a set of operations for virtually routing a first data stream from a source to a destination through a plurality of interconnected routers, the set of operations comprising:

receiving, at a virtual router, a first packet of the first data stream;

transmitting, by the virtual router, the first packet to the destination using a pre-computed path to the destination;

determining a first path through the plurality of interconnected routers from the source to the destination, wherein the first path does not comprise the virtual router; and

configuring each router in the first path to route data of the first data stream using the first path.

16. The nontransitory computer storage medium of claim 15 , wherein configuring each router in the first path is performed starting with a last router in the first path and ending with a first router in the first path, and wherein the last router is closest to the destination and the first router is closest to the source.

17. The nontransitory computer storage medium of claim 15 , wherein the set of operations further comprises:

receiving, at the virtual router, a second packet of the first data stream from the source; and

transmitting the second packet using the pre-computed path from the virtual router to the destination.

18. The nontransitory computer storage medium of claim 15 , wherein determining the first path comprises selecting the first path from a plurality of different paths connecting the source to the destination based on a relative amount of available capacity on the plurality of different paths.

19. The nontransitory computer storage medium of claim 15 , wherein determining the first path comprises selecting the first path from a plurality of different paths connecting the source to the destination based at least on one of a relative latency, jitter, or packet loss on the plurality of different paths.

20. The nontransitory computer storage medium of claim 15 , wherein the first path is determined such that data from the first data stream will pass through a particular machine.

Assignments (4)
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 Sep 19, 2018
From: SELLA, WILLIAM THOMAS; SELLA, JAMES MICHAEL
To: TW TELECOM HOLDINGS, INC.
Reel/Frame 046906/0519 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2018
From: TW TELECOM HOLDINGS, INC.
To: LEVEL 3 COMMUNICATIONS, LLC
Reel/Frame 046906/0529 →