Routing Algorithms
Autonomous systems
Autonomous system is a group of networks and routers under the authority of a
single administration.
Popular Routing Protocols
Intra-domain routing: Routing inside an autonomous system
Interdomain routing: Routing between autonomous systems
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
BGP: Border Gateway Protocol
Dynamic Routing Algorithms
Modern computer networks generally use
dynamic routing algorithms rather than the
static because static algorithms do not take
the current network load into account
Two dynamic algorithms :
Distance vector routing
Link state routing
Optimum path
Each routing algorithm finds out a optimum
path base on some metric.
E.g.
1. Delay occurred in the path
2. Reliability of the path
3. cost
Distance Vector Routing
Routers work together:
1. Each router maintains a table (vector) giving the
best known distance to a destination and the line
to use for sending there.
2. Tables are updated by exchanging information
with neighbors.
3. Each router knows the distance (cost) of reaching
its neighbors (e.g. send echo requests).
Distance Vector Routing
Router table maintained by a router is indexed
by and consisting one entry for, each router in
the subnet.
This entry contains two parts :
The preferred outgoing line to use for that
destination .
Estimate of the time or distance to that
destination.
Distance Vector Routing
Routers periodically exchange routing tables with each of
their neighbors.
Upon receipt of an update, for each destination in its
table, a router:
this problem is known as the count-to-infinity problem
Compares the metric in its local table with the metric in
the neighbor's table plus the cost of reaching that
neighbor.
if the path via the neighbor has a lower cost, the router
updates its local table to forward packets to the
neighbor.
Distance Vector Routing (Concept)
Distance Vector Routing (An Example)
26 41 18 37
Distance Vector Routing
(The Count to Infinity Problem)
Distance vector routing has a serious drawback in
practice
In particular, it reacts rapidly to good news, but
leisurely to bad news
Consider a router whose best route to destination X
is large
If on the next exchange neighbor A suddenly reports
a short delay to X, the router just switches over to
using the line to A to send traffic to X. In one vector
exchange, the good news is processed.
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Good news propagates fast
Consider the five-node subnet, where the delay
metric is the number of hops
Suppose A is down initially and all the other routers
know this. In other words, they have all recorded the
delay to A as infinity
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Good news propagates fast
When A comes up, the other routers learn about it via the vector
exchanges
At the time of the first exchange, B learns that its left neighbor has zero
delay to A
On the next exchange, C learns that B has a path of length 1 to A, so it
updates its routing table to indicate a path of length 2
The good news is spreading at the rate of one hop per exchange
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Bad news propagates Slow
All the lines and routers are initially up
Routers B, C, D, and E have distances to A of 1, 2, 3,
and 4, respectively
Suddenly A goes down, or alternatively, the line
between A and B is cut
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Bad news propagates Slow
At the first packet exchange, B does not hear anything from A. Fortunately,
C says: Do not worry; I have a path to A of length 2
Little does B know that C's path runs through B itself
B thinks it can reach A via C, with a path length of 3
D and E do not update their entries for A on the first exchange
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Bad news propagates Slow
On the second exchange, C notices that each of its
neighbors claims to have a path to A of length 3
It picks one of the them at random and makes its
new distance to A 4 and so on.
Distance Vector Routing
(The Count to Infinity Problem)
Fig: Bad news propagates Slow
Gradually, all routers work their way up to infinity,
but the number of exchanges required depends on
the numerical value used for infinity
This problem is known as the count-to-infinity
problem
Solution to count to problem
1) Defining infinity:
Define to a lower value so that system converge &
become stable quickly.
e .g If is 16 (assuming distance for 1 hop), so max. size
of the network in one direction is 15 hops,
So distance vector routing cant be used for large network
Link State Routing
Measuring Line Cost
The link state routing algorithm requires each router to
know, or at least have a reasonable estimate, of the
delay to each of its neighbors.
The most direct wayside is required to send The most
direct way to determine this delay is to send over the
line a special ECHO packet that the other side is required
to send back immediately
By measuring the round-trip time and dividing it by two,
the sending router can get a reasonable estimate of the
delay.
Measuring Line Cost
An interesting issue is whether or not to take the load
into account when measuring the delay.
To factor the load in, the round-trip timer must be started when
the ECHO packet is queued.
To ignore the load, the timer should be started when the ECHO
packet reaches the front of the queue.
Building Link State Packets
An example subnet is given in Fig. (a) with delays
shown in the lines.
The corresponding link state packets for all six
routers are shown in Fig. (b)
Building Link State Packets
Building the link state packets is easy.
The hard part is determining when to build
them:
One possibility is to build them periodically, that
is, at regular intervals.
Another possibility is when some significant
event occurs, such as a line or neighbor going
down or coming back up again, or changing its
properties appreciably.
Distributing the Link State Packets
Fig: The packet buffer for router B
The send flags mean that the packet must be
sent on the indicated line
The acknowledgement flags mean that it
must be acknowledged there
Distributing the Link State Packets
Fig: The packet buffer for router B
The link state packet from A arrives directly,
so it must be sent to C and F and
acknowledged to A
Similarly, the packet from F has to be
forwarded to A and C and acknowledged to F
Distributing the Link State Packets
Fig: The packet buffer for router B
However, the situation with the third packet,
from E, is different. It arrived twice, once via
EAB and once via EFB
Consequently, it has to be sent only to C but
acknowledged to both A and F, as indicated
by the bits
Concept of link state routing
Computing the New Routes
Once a router has accumulated a full set of
link state packets
Dijkstra's algorithm can be run locally to
construct the shortest path to all possible
destinations
Dijkstra's algorithm
( Formation of shortest path tree at a Node)
Example of formation of shortest path tree
Example of formation of shortest path tree Contd.
1)P[empty] T[A(0)]
2)P[A(0)] T[B(5),C(2),D(3)]
3)P[A(0),C(2)] T[B(5),D(3),E(6)]
4)P[A(0),C(2),D(3)] T[B(5),E(6)]
5) P[A(0),C(2),D(3),B(5)] T[E(6)]
6) P[A(0),C(2),D(3),B(5),E(6)] T[empty]
Question
solution
P [empty] T[A(0)]
P[A(0)] T[B(2) G(6)]
P[A(0),B(2)] T[G(6),E(4),C(9)]
P[A(0),B(2),E(4)] T[G(5)*,C(9),F(6)]
P[A(0),B(2),E(4),G(5)] T[C(9),F(6),H(9)]
P[A(0),B(2),E(4),G(5),F(6)] T[C(9),H*(8)]
P[A(0),B(2),E(4),G(5),F(6),H(8)] T[C(9),D(10)]
P[A(0),B(2),E(4),G(5),F(6),H(8),C(9)] T[D(10)]
P[A(0),B(2),E(4),G(5),F(6),H(8),C(9),D(10)]
T[empty]
Path Vector Routing
Initial routing tables in path vector routing
Stabilized tables for four autonomous systems
Path Vector Routing
Initial routing tables in path vector routing