Link state protocols exchange information about individual objects in the topology and their mutual interconnections. The objects normally consist of routers, multiaccess networks, routers on borders of areas, or an entire autonomous system, or networks from other areas and outside the autonomous system.
Primarily routers are used as the objects in the link state routing protocols and their links. IPs are treated as attributes or properties of these objects. Once a router generates a message that describes itself and its links to neighbors…that message is flooded without any modification to every area’s topology. The router is aware of every other router, and every network, and every link. Having this information allows the router to construct it’s own topology based on the advertisements and detailed information within them and use an algorithm to compute a tree of shortest paths to each of the networks reported to the router. Usually the SPF algorithm is used for this computation.
The SPF algorithm will not create a looped network, however temporary changes in topology could cause temporary loops before the algorithm is calculated to update the new shortest path to affected networks.
The downside of this type of protocol is the potential to be CPU intensive in environments where topologies change constantly however this is mostly negated by the improved hardware and memory of newer routing devices on the market today.
Path Vector protocols are similar and practically the same as distance vector. routers exchange messages about known networks and their distances, however in addition each network is accompanied by a list of path elements describing the path toward each network being advertised. The path element can be represented by a number of different identifiers, BGP is the most widely used path vector protocol, and it uses the list of autonomous systems traffic must traverse to get to the destination network as its path element.
While this can be used to determine the best path to a destination, its primary function is for loop avoidance. Routers will not accept route advertisements to networks whose path description already includes the identifier the router would include into it’s advertisements itself.
Distance Vector type protocols work on the basis of distance vectors….or arrays of distances to known networks. Vector refers to a uni-dimensional array. Distance refers to the measure of feasibility, or a metric of reaching a particular network.
Messages between routers for distance vector protocols contain arrays, with each array element containing information about one particular network know to the originating router of the message as well as the distance to that same network.
Routers learn of these networks by hearing about them from other adjacent routers, the advertising router becomes the next hop to the learned network, and that information is passed along to other routers, this is how distance vector protocols learn of the network and distance metric to reach a network.
If multiple adjacent neighbors advertise the same network element, then the distance vector protocol will make a decision on which route is better based on the metric for the advertised route and inject that route into the routing table. Once this happens the router begins advertising it’s known routes to the networks it’s aware of to other devices.
Processing of exchanged routes is simple and not memory or cpu intensive, however its simplicity can be prone to create routing loops. There are a number of methods implemented into Distance Vector to avoid creating routing loops, however only EIGRP using it’s advanced properties is guaranteed to provide a loop free path in every instant.