Buffer-less virtual routing
First Claim
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 routing server, an initial packet in the first data stream;
in response to receipt of the initial packet of the first data stream;
(b) transmitting the initial packet with routing instructions indicating, to downstream routers from the virtual routing server to the destination, how to route the initial packet to the destination;
(c) determining a first path through plurality of interconnected routers from the source to the destination;
(d) for respective routers along the first path, determining a routing table indicating which port of the router to route data from the first data stream along the first path determined in (c);
(e) for each of the respective routers, transmitting the routing table determined in (d) to configure the router;
repeatedly until the respective routers are configured to route data from the first data stream along the first path;
(f) receiving an additional packet from the first data stream; and
(g) transmitting the additional packet with the routing instructions indicating to the downstream routers how to route the additional packet to the destination.
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.
50 Citations
23 Claims
-
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 routing server, an initial packet in the first data stream; in response to receipt of the initial packet of the first data stream; (b) transmitting the initial packet with routing instructions indicating, to downstream routers from the virtual routing server to the destination, how to route the initial packet to the destination; (c) determining a first path through plurality of interconnected routers from the source to the destination; (d) for respective routers along the first path, determining a routing table indicating which port of the router to route data from the first data stream along the first path determined in (c); (e) for each of the respective routers, transmitting the routing table determined in (d) to configure the router; repeatedly until the respective routers are configured to route data from the first data stream along the first path; (f) receiving an additional packet from the first data stream; and (g) transmitting the additional packet with the routing instructions indicating to the downstream routers how to route the additional packet to the destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for virtually routing a first data stream from a source to a destination through a plurality of interconnected routers, comprising:
-
a data stream module that receives, at a virtual routing server, packets in the first data stream; a path determination module that determines a first path through the plurality of interconnected routers from the source to the destination; a data forward module that repeatedly, until the plurality of interconnected routers are configured to route data from the first data stream along the first path, transmits the packets with routing instructions indicating, to downstream routers from the virtual routing server to the destination, how to route the packets to the destination; and a routing table module that, for respective routers along the first path, determines a routing table indicating which port of the router to route data from the first data stream along the first path and transmits the respective routing tables to configure the respective routers along the first path. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A program storage device tangibly embodying a program of instructions executable by at least one machine to perform a method for virtually routing a first data stream from a source to a destination through a plurality of interconnected routers, the method comprising:
-
(a) receiving, at a virtual routing server, an initial packet in the first data stream; in response to receipt of the initial packet of the first data stream; (b) transmitting the initial packet with routing instructions indicating, to downstream routers from the virtual routing server to the destination, how to route the initial packet to the destination; (c) determining a first path through the plurality of interconnected routers from the source to the destination; (d) for respective routers along the first path, determining a routing table indicating which port of the router to route data from the first data stream along the first path determined in (c); (e) for each of the respective routers, transmitting the routing table determined in (d) to configure the router; repeatedly until the respective routers are configured to route data from the first data stream along the first path; (f) receiving an additional packet from the first data stream; and (g) transmitting the additional packet with the routing instructions indicating to the downstream routers how to route the additional packet to the destination. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A system for routing a data stream from a source to a destination, comprising:
-
a plurality of physical routing devices interconnected such that the physical routing devices are able to communicate with each other using a routing protocol; and a virtual router that makes the plurality of physical routing devices appear to the source as a single device, comprising; a virtual backplane that represents how the plurality of physical routing devices are interconnected; a data stream module that receives packets in the data stream; a path determination module that determines a path through the plurality of interconnected routers the from the source to the destination; a data forward module that repeatedly, until the plurality of interconnected routers are configured to route data from the data stream along the path, transmits the packets with routing instructions indicating to downstream routers how to route the packets to the destination; and a routing table module that, for respective routers along the path, determines a routing table indicating which port of the router to route data from the data stream along the path and transmits the respective routing tables to configure the respective routers along the path.
-
Specification