Gordon Glas CS 228 ROUTING ------------- Definition: The selection of paths through which a network sends packets. This selection is usually done by the network. The source can also specify the path if it has the necessary info. The network must know the location of a destination before selecting a path which leads to it. Networks learn that certain paths are conjested or disabled and uses that information to improve the path selection. A user normally specifies a destination by name (ogimaa.nmu.edu), rather than by giving the location of that destination on the network. Since the name doesn't tell you exactly where the computer is, the network translates the name into the location. Routing is physically taken care of in the Network Layer of the OSI model. This layer routes packets from their sources to their destinations, along paths made of successive packet links, in the store-and-forward method. (Figure 6.2 - Page 251) Transport Methods: - Virtual Circuits Path through which all packets of the same conversation are sent. Therefore, there's one routing decision per conversation. - Datagram Makes routing decisions for each packet. Routing Algorithm: Procedure that the nodes follow to select the paths of individual packets or of virtual circuits. Routing Algorithm Properties: - Robustness The algorithm must adjust the routing decisions when equipment fails and when traffic conditions change. A robust algorithm monitors the network constantly and updates the routing decisions either frequently or soon after a change is detected. Basically, it monitors the network, makes routing decisions, and implements these decisions. Routing decisions should be modified before congestion levels increase significantly. (Example on page 262) - Stablity A routing algorithm is stable if the routing decisions adapt smoothly to changes in operating conditions. For example, a small change in operating conditions should result in a comparatively small change in routing decisions. Instability could result from the effect of routing decisions on the operating conditions. (Figure 6.9 - page 264) - Fairness A routing algorithm is fair if it results in similar delays for the packets of different sources and destinations. For example, routing is fair if the average delay per packet is the same for two separate streams of packets being transmitted. (Example on page 267) - Optimality A routing algorithm is optimal if it maximizes the network designer's objecting function while satisfying design contraints. (Example on page 269) Note: Optimality and Fairness aren't always compatible. Such incompatibility may be caused by an objective function that doesn't properly reflect the operating cost of the network. Examples of widely used routing algorithms: - Flooding Every node in the network transmits a copy of each packet it receives on every one of its transmission links, except on the link through which it received the packet. - Spanning Tree Routing The transmission of packets along a tree of paths that leads to a specific destination. (Example on page 272) - Static Routing Each node transmits a packet along a link selected according to some probabilities that depend on the destination. - Bellman-Ford Determines the fastest path between nodes from the travel times along individual links. - Hierarchical Routing Sizes of the routing tables are significantly reduced by using this algorithm. The nodes are grouped into domains, and each node keeps a list of the next node for each other domain and for each other node in its own domain.