A router’s main function is to forward an incoming packet to its destination by using routing and forwarding techniques. Forwarding can be defined as taking the incoming packet, looking at its destination IP address, consulting the forwarding table, and directing the packet to the appropriate next-hop and output link based on the information retrieved from the forwarding table. On the other hand, routing is the process by which the forwarding table itself is built. Forwarding is a relatively simple process performed locally at the router, whereas routing depends on a variety of distributed dynamic and static routing protocols.
To consult the forwarding table, the router uses the packet’s destination IP address as a key to retrieve the forwarding information (e.g., next-hop and output interface) – this operation is called IP address lookup. Once the forwarding information is available, the router transfer the packet from the incoming interface to the appropriate outgoing interface.
The greatest challenge and major bottleneck is how to make the IP address lookup fast enough to keep up with backbone routers that support high data rate interfaces (up to 10 Gbps and more). Therefore, they must be able to perform millions of address lookup operations Continue reading