This post is going to be a networking refresher with a look at several routing protocols and their history. RIP or Router Information Protocol was initially described in RFC1058 published in 1988. There have been several updates / versions since then, but the protocol remains largely the same. In order for data packets to find their final destination they must be able to traverse a network that knows where that destination is.
Routers use sub-net masks to determine what networks are directly connected. If a router receives a packet that is not for a locally connected network, the router will look at it’s local routing table to determine if it can find a path to the packets destination. For a router to build that local routing table, it must talk to other routers in the network.
RIP was the first protocol defined to allow routers to exchange routing information. RIP is a distance-vector routing protocol as it associates both a direction and a number of hops to each edge of a network graph.
The “routed” daemon that ships with every copy of Linux and BSD Unix is based on RIP. Port number 520 has been reserved for RIP, which initially had routers exchange their entire routing tables every 30 seconds. Revisions have randomized updates and improved other aspects of RIP, but in general RIP does not scale well and takes time to converge.
Convergence and scalability of network routing was improved with the introduction of several link-state protocols like OSPF (Open Shortest Path First) and IS-IS (Intermediate System to Intermediate System). Link-state protocols improvement over distance-vector protocols is achieved by passing connectivity information rather than complete routing tables. Each node in a network that uses a link-state protocol, will build a complete network topology graph from the exchanged connectivity information.
Another way to think about this would be:
“With a distance vector protocol, each router tells its neighbors what it knows about the world. With a link state protocol, each router tells it’s neighbor about what it knows about its other neighbors.”
Link-state networks only send messages when there is a topology change, but each router needs a complete set of messages to build its local copy of the topology graph.
In summary then, let me say that there are complete descriptions of each type of protocol on Wikipedia, but for the purpose of this quick refresher… Link-State protocols send less data, less frequently allowing them to converge faster and scale much better than distance-vector algorithms.