Introduction
 

The main function of the network layer is routing packets from the source machine to the destination machine. In most subnets, packets will require multiple hops to make the journey. The algorithms that choose the routes and the data structures that they use are a major area of network layer design.

The figure shows a typical subnet structure, or topology. The nodes are the individual hosts on the network.

The routing algorithm is that part of the network layer software responsible for deciding which line an incoming packet should be transmitted on. If the subnet uses datagrams internally, this decision must be made anew for every arriving data packet since the best route may have changed since last time. If however virtual circuits are being used, routing decisions are made only when new virtual circuits are set up. Regardless of the case, there are certain properties that are desirable in a routing algorithm: correctness, simplicity, robustness, stability, fairness and optimality.

Correctness and simplicity mean that the algorithm should be conceptually simple and error-free. Robustness implies that the algorithm should work irrespective of any change in the topology of the network or the failure of any network device. Stability means that the algorithm should not turn unstable no matter how complicated the routing equation. Fairness and optimality means that the algorithm should be non-discriminatory towards traffic of any particular type(s) or originating from any particular source(s), while at the same time taking efficient routing decisions that extract the best throughput from the network.

Routing algorithms can be grouped into two major classes: nonadaptive and adaptive. Nonadaptive algorithms do not base their routing decision on measurements or estimates of the current traffic and topology. Instead, the choice of the route to use to get from node I to node J (for all I and J) is computed in advance, off-line, and downloaded to the routers when the network is booted.

Adaptive algorithms, in contrast, change their routing decisions according to changes in the topology, and usually the traffic as well. Adaptive algorithms differ in where they get their information from (i.e. from only neighbouring routers or all routers), when they change the routes (i.e. with change in traffic load or with change in topology), and what metric is used for optimization (e.g. distance, number of hops, transit time etc.).

 
Back to Projects page
contact me | site map | links
To Network Configurations