Link State Routing Algorithm

What
The link state routing algorithm is a routing algorithm performed in the network layer that gives each router in the network complete knowledge of each other router's cost to their connected routers.

Message Complexity
With $$N$$ routers and $$E$$ edges, the total number of messages we have to send is $$O(|N|*|E|)$$ because each router must send a message to each other router

Convergence
Because we run Dijkstra's Algorithm, we know that we are guaranteed to get convergence in $$O(N^2)$$ time

Robustness
When one router fails or starts sending erroneous messages, the rest of the routers are not affected because they each have their complete routing tables, independent of each other

Receiving Information
Each router receives information about the other routers through a link state broadcast

Computing Shortest Paths
Each router takes the information it receives from the Link State Broadcast and performs a shortest path algorithm such as dijkstra's algorithm starting at itself or it could use prim's algorithm to calculate the MST of the entire graph.

Oscillations
If we run the link state routing algorithm at the same time on all routers, we run into the scenario in which all routers see a congested region and route around it. However, since all routers are routing around it, it will simply cause congestion in another region.

Potential Solutions

 * Don't run the routing algorithm at the same time on all the routers
 * Randomize the amount that each router sends out a link state broadcast