This invention relates to packet processing in a router architecture.
A conventional single-box router processes packets that need to be switched (or forwarded) as well as packets that contain control information called control packets for computing routing tables. A routing table keeps track of routes to particular network destinations. Packet switching includes the sending of data information in packets, through a network, to a remote location. Each packet of data information has a unique source address and carries its own destination address.
A conventional router has a device-driver that controls network interface cards located in the router. The device-driver handles communication between the interface cards between remotely located devices and a networking stack in the router. The networking stack is a stack of software layers such as IP (internet protocol), TCP/UDP (transmission control protocol/user datagram protocol), and socket library (application programming interface library) between networking applications and the device-driver. A packet traverses the networking stack to be delivered to a networking application, which handles the processing of control packets of a networking device.
A router architecture described below separates the processing of packet switching (or forwarding) from the processing of control packets.
The distributed router architecture 1000 may be made compatible with networking applications 502, such as telnet, that work in a conventional router. One way is by keeping the distributed switches 100, 200 as hidden from the networking applications 502. Otherwise, the networking applications 502 would require modification to work under the distributed architecture. Hiding the fact that the switches 100, 200 are distributed can provide a single router view of the switches 100, 200 to the networking applications 502. From the perspective of the networking applications 502, packets may appear to come from a router and not through a separate switch.
A known single-box router contains network interfaces, each controlled by a device-driver. In the distributed router architecture 1000, the network interfaces that communicate with other routers or hosts are placed in the switches 100, 200, but not in the controller 500.
A control packet that is received by one of switch's interfaces can be relayed to the controller 500 and appear as input to its corresponding virtual interface. Conversely, a control packet sent out through one of the virtual interfaces in the controller 500 can be relayed to an appropriate switch containing the corresponding interface. The receiving and sending of packets as described above can be accomplished using an IP encapsulation protocol termed a virtual interface protocol (VIP). The VIP is implemented by a VIP module 508 located in the controller 500 and VIP modules 104 and 204 located in the switches 100 and 200, respectively. The encapsulation carries frames of one protocol which includes as the data in another protocol.
In the foregoing example, the controller 500 and the switches 100, 200 were distributed across the Ethernet 50. However, the controller 500 and the switches 100, 200 can be tightly coupled using a high-speed switching fabric instead of being distributed. The routing architecture and the method described above can also be employed for the tightly coupled controller and the switches.
Routing architectures represented by the distributed architecture 1000 and the tightly coupled architecture are scalable, provide a single point of management at the controller, and reduce the load on the network. Additionally, the logic circuit of the switches 100, 200 can be made simpler and more efficient. The foregoing distributed architecture can be implemented in any Network Operating System (NOS) without any changes to its networking stack and routing infrastructure such as routing protocols or a routing table manager. Any networking application that works in an NOS will work without any changes in the exemplary disclosed architecture. The distributed architecture would also be useful in creating a number of applications such as firewalls for distributed switches with the feature of single point management.
The foregoing techniques can be implemented, for example, in a computer program executable on a computer. The computer program can be stored on a storage medium, such as random access memory (RAM), readable by a general or special purpose programmable computer, for routing packets under the exemplary disclosed architecture.
Other implementations are within the scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5185742 | Bales et al. | Feb 1993 | A |
5734828 | Pendse et al. | Mar 1998 | A |
5867666 | Harvey | Feb 1999 | A |
5970066 | Lowry et al. | Oct 1999 | A |
5991797 | Futral et al. | Nov 1999 | A |
6044415 | Futral et al. | Mar 2000 | A |
6330599 | Harvey | Dec 2001 | B1 |
6347337 | Shah et al. | Feb 2002 | B1 |
6434612 | Hughes et al. | Aug 2002 | B1 |
6460080 | Shah et al. | Oct 2002 | B1 |
6507863 | Novaes | Jan 2003 | B2 |
6510159 | Noriyuki | Jan 2003 | B1 |
6553005 | Skirmont et al. | Apr 2003 | B1 |
6647423 | Regnier et al. | Nov 2003 | B2 |
6711163 | Reid et al. | Mar 2004 | B1 |
6718370 | Coffman et al. | Apr 2004 | B1 |