This chapter is a continuation of the discussion on the network layer service of IP addressing. The topics to be covered in this chapter include the following:
Routing is the process of forwarding messages from source to destination through a packet-switched network. Thus, before a sending host can transfer packets to the destination host, the network layer must determine the path or route that the packets are to follow. This route determination is made by the network layer routing protocol. At the heart of any routing protocol is the routing algorithm that computes the path for a packet.
The purpose of a routing algorithm is simple: given a set of interconnected routers, a routing algorithm finds a “good” path from source to destination. Typically, a “good” path is one that has the “least cost,” where cost is defined according to the type of protocol used. That is, the routing protocol specifies the criteria for determining the routes, and the routing algorithm carries out the actual computation based on those criteria.
A routing algorithm is that part of the network layer software that decides to which output link an incoming packet should be transmitted. Routing algorithms can be classified in several ways, some of which include the following: