Introduction
There are two approaches for structuring the control plane:
- per-router control (traditional method)
- logically centralized control (SDN: Software Defined Networking)
Routing Protocols
Routing protocols must determine âgoodâ paths from the sender host to the receiver, through network routers:
- path: sequence of routers between sender and receiver
- âgoodâ: the least expensive, the least congested, the fastest
Link Cost
cost of the direct link between and .
The cost is defined by the network provider: it can be based on bandwidth, congestion ecc.
Today the most accurate way to determine the linkâs cost is based on the retransmission needed on said link.
Routing protocols classification
routing algorithms classification:
Link state Algorithms
Dijkstra
The Dijkstra algorithm is centralized: every node knows the network topology and every linkâs cost.
This means we need a first phase for synchronizing information, where nodes exchange âlink state broadcastâ messages.
This algorithm computes the least expensive route between a source node and every other, this means it returns the forwarding table for the source node.
This is a iterative algorithm, after iterations we know the least expensive path from the source node to destinations.
Notation
- : direct linkâs cost, if are not directly connected
- : current cost estimate for the path between the source node and the destination
- : predecessor node along the path to
- : set of nodes for which the least expensive path is known
Complexity
Normally Dijkstraâs algorithm has complexity, but with the aid of the heap we can get it as low as .
We also need to take into account the broadcast phase, this has complexity.
Considerations
When traffic soares in a network, the costs change and the routes need to get computed again: routesâ oscillation.
Distance Vector Algorithms
These algorithm are based on the Bellman-Ford (BF) equation (dynamic programming):
The idea is every once in a while, every node broadcasts the estimate of the distance vector to his neighbors .
When a node receives a new from a neighbor, it updates its using the BF equation.
In normal conditions, the estimate converges to the least-cost .
Algorithm
Every node:
- wait for local linksâ cost variation or message from neighbors
- recompute estimate
- if changed for a destination, notify the neighbors
This algorithm is:
- iterative
- asynchronous
- distributed
- self-stopping
Cost Update
Poisoned inversion
If passes through to get to :
- notifies that the cost is
- even if knows this is not the case
- until gets to passing through , it will continue to announce
- will think that doesnât have a path to , therefore the cycle will not be created, and the costs will be communicated correctly
N.B.: this technique works only for solving cycles creating between adjacent nodes.
LS vs DV algorithms
Complexity:
- LS: for nodes we have sent messages
- DV: exchanges between neighbors, time varies
Speed of convergence:
- LS: , there may be oscillations
- DV: time of convergence varies, also count-to-infinity problem
Robustness:
- LS: routers can notify other routers with incorrect data, every router has its table
- DV: black-holing: routers can communicate incorrect path costs (âi have low cost paths to every nodeâ), error gets propagated along the network