Source routing

From Hill2dot0
Jump to: navigation, search

One way to route traffic through a collection of access nodes and backbone nodes (i.e., a network) is to let the user devices tell the network precisely how to handle traffic. This is the essence of source routing, a technique pioneered by IBM for token ring LANs, where it is known as source route bridging (SRB).

IBM's source routing

The visual shows the idea behind IBM’s version of source routing. Each network node (and some access nodes) might have several choices of output link and downstream node for a particular piece of user traffic. The user device must tell the network not only the source and destination (A and B, in this case) but also exactly which network nodes must handle the information frame. Each network node examines this routing information and forwards the frame as requested if it can. IBM token ring places this Routing Information Field (RIF) inside a special header extension to the token ring LAN frame.

Therefore, all network nodes know the whole path or route to the destination. But if the path (link or node) is down or congested, the network node cannot override its instructions because the rest of the path would become invalid. Furthermore, how does source user device A know the way to destination user device B? In token ring, special explorer frames are sent by every user device periodically—causing a lot of overhead—to discover routes through the network.

Thus in source routing, the end-user devices tell the network nodes how to handle the traffic. The user devices must be smart enough to figure this out, and all the network nodes have to do is follow instructions. However, the network nodes cannot easily route around problem areas, since they are supposed to follow user devices’ directions, and the user device might not yet be aware of a problem. In fact, the destination might be reachable, but if A does not know a valid path through the network, there is no way to reach B. This method does not scale well; in other words, what works fine for 10 users and nodes breaks down for 100 or 1000. There are just too many possible destinations and paths through a complex network to keep them all current and valid, since a separate source route must be maintained for each destination.

This explanation has emphasized token ring SRB operation. A key Internet routing protocol, Border Gateway Protocol version 4 (BGP4), uses a form of source routing called path vector to route traffic among ISPs. BGP4 works differently, since routers are effectively the BGP4 “user devices,” but BGP4 essentially considers each ISP a “node” on a network all by itself. BGP4 table entries contain the entire path to the destination, which raises a separate set of issues.

The key point is that source routing requires the sources to keep track of all the network information. A very busy source would have a hard time doing source routing and whatever else it was supposed to be doing (thus BGP4 usually only runs on very high-end routers).