Introduction of a Router
Prerequisite – Network Devices
A Router is a networking device that forwards data packets between computer networks.
Let us understand this by a very general example, suppose you search for www.google.com in your web browser then this will be a request which will be sent from your system to the google`s server to serve that webpage, now your request which is nothing but a stream of packets don`t just go the google`s server straightaway they go through a series of networking devices known as a router which accepts this packets and forwards them to correct path and hence it reaches to the destination server.
A router has a number of interfaces by which it can connect to a number of host systems.
Functions of a Router:
The router basically performs two major functions:
- Forwarding –
The router receives the packets from its input ports, checks its header, performs some basic functions like checking checksum, and then looks up to the routing table to find the appropriate output port to dump the packets onto, and forwards the packets onto that output port.
- Routing –
Routing is the process by which the router ascertains what is the best path for the packet to reach the destination, It maintains a routing table which is made using different algorithms by the router only.
The architecture of a Router:
A Generic router consist of the following components:
- Input Port –
This is the interface by which packets are admitted into the router, it performs several key functions as terminating the physical link at the router, this is done by the leftmost part in the below diagram, the middle part does the work of interoperating with the link-layer like decapsulation, in the last part of the input port the forwarding table is looked up and is used to determine the appropriate output port based on the destination address.
- Switching Fabric –
This is the heart of the Router, It connects the input ports with the output ports. It is kind of a network inside a networking device. The switching fabric can be implemented in a number of ways some of the prominent ones are:
- Switching via memory: In this, we have a processor which copies the packet from input ports and sends it to the appropriate output port. It works as a traditional CPU with input and output ports acting as input and output devices
- Switching via bus: In this implementation, we have a bus that connects all the input ports to all the output ports. On receiving a packet and determining which output port it must be delivered to, the input port puts a particular token on the packet and transfers it to the bus. All output ports are able to see the packets but it will be delivered to the output port whose token has been put in, the token is then scraped off by that output port and the packet is forwarded
- Switching via interconnection network: This is a more sophisticated network, here instead of a single bus we use a 2N bus to connect n input ports to n output ports.
- Output Port –
This is the segment from which packets are transmitted out of the router. The output port looks at its queuing buffers (when more than one packets have to be transmitted through the same output port queuing buffers are formed) and takes packets, does link layer functions, and finally transmits the packets to an outgoing link
- Routing Processor –
It executes the routing protocols, it works like a traditional CPU. It employs various routing algorithms like link-state algorithm, distance-vector algorithm, etc. to prepare the forwarding table, which is looked up to determine the route and the output port.