uni

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

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:

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:

  1. wait for local links’ cost variation or message from neighbors
  2. recompute estimate
  3. 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 :

  1. notifies that the cost is
    1. even if knows this is not the case
    2. until gets to passing through , it will continue to announce
  2. 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

Intra-ISP routing: OSPF

Routing between ISPs: BGP