Buffer-less virtual routing
First Claim
1. A computer-implemented method for virtually routing a first data stream from a source to a destination, comprising:
- (a) determining, by an edge router, a first virtual router and a pre-computed path from the edge router to the first virtual router;
(b) in response to receiving a first packet in the first data stream by the edge router, sending, by the edge router, the first packet to the first virtual router along the pre-computed path;
(c) receiving, by the edge router, a first instruction from the first virtual router to configure the edge router to route data such that at least a first portion of the first data stream is routed along a first path determined through a plurality of interconnected routers from the source to the destination; and
(d) configuring the edge router according to the first instruction received in (c).
2 Assignments
0 Petitions
Accused Products
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.
-
Citations
26 Claims
-
1. A computer-implemented method for virtually routing a first data stream from a source to a destination, comprising:
-
(a) determining, by an edge router, a first virtual router and a pre-computed path from the edge router to the first virtual router; (b) in response to receiving a first packet in the first data stream by the edge router, sending, by the edge router, the first packet to the first virtual router along the pre-computed path; (c) receiving, by the edge router, a first instruction from the first virtual router to configure the edge router to route data such that at least a first portion of the first data stream is routed along a first path determined through a plurality of interconnected routers from the source to the destination; and (d) configuring the edge router according to the first instruction received in (c). - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An edge router for virtually routing data streams, comprising:
-
a routing table specifying a first default path from the edge router to a first virtual router; and a processor coupled to the routing table, the processor configured to; (a) in response to receiving a first packet in a first data stream, send the first packet to the first virtual router along the first default path; (b) in response to receiving a second packet from the first data stream, send the second packet to the first virtual router along the first default path; and (c) in response to receiving a first instruction from the first virtual router to configure the edge router to route data such that at least a first portion of the first data stream is routed along a first path through a plurality of interconnected routers from a source to a destination, update the routing table with the first path. - View Dependent Claims (9, 10, 11)
-
-
12. A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform a method for virtually routing a first data stream from a source to a destination, the method comprising:
-
(a) determining, by an edge router, a first virtual router and a pre-computed path from the edge router to the first virtual router; (b) in response to receiving a first packet in the first data stream by the edge router, sending, by the edge router, the first packet to the first virtual router along the pre-computed path; (c) receiving, by the edge router, a first instruction from the first virtual router to configure the edge router to route data such that at least a first portion of the first data stream is routed along a first path determined through a plurality of interconnected routers from the source to the destination; and (d) configuring the edge router according to the first instruction received in (c). - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. 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 a first packet in the first data stream at a virtual router; (b) transmitting the first packet to the destination on a pre-computed path from the virtual router to the destination; (c) determining, by the virtual router, a first path through the plurality of interconnected routers from the source to the destination; and (d) configuring each router in the first path to route data from the first data stream along the first path; (e) receiving a message from a router along the first path indicating that the router that sent the message has not received data from the first data stream for a predetermined period of time; (f) for each respective router along the first path, determining, by the virtual router a routing table that does not indicate where to route data from the first data stream; and (g) for each of the respective routers, transmitting the routing table determined in (f) to configure the respective router. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. 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 a first packet in the first data stream at a virtual router; (b) transmitting the first packet to the destination on a pre-computed path from the virtual router to the destination; (c) determining, by the virtual router, a first path through the plurality of interconnected routers from the source to the destination and determining, by the virtual router, a second path through the plurality of interconnected routers from the source to the destination such that at least the a first portion of the first data stream is routed along the first path through the plurality of interconnected routers from the source to the destination, and at least a second portion of the first data stream is routed along a second path, different from the first path, through the plurality of interconnected routers from the source to the destination; (d) configuring each router in the first path to route data from the first data stream along the first path.
-
Specification