Routingalgorithm Networklayer 170223123829
Routingalgorithm Networklayer 170223123829
On
Routing Algorithms
Nilesh U. Sambhe
Assistant Professor, Department Of Computer Technology, 1
• Routing Algorithm
• Flooding
• Hierarchical Routing
2
Properties Of Routing Algorithm
Routing is the process of forwarding of a packet in a network so that it
reaches its intended destination.
•Correctness: The routing should be done properly and correctly so that the packets may reach
their proper destination.
•Simplicity: The routing should be done in a simple manner so that the overhead is as
low as possible. With increasing complexity of the routing algorithms the overhead also
increases.
•Robustness: Once a major network becomes operative, it may be expected to run continuously
for years without any failures. The algorithms designed for routing should be robust enough to
handle hardware and software failures and should be able to cope with changes in the topology
and traffic without requiring all jobs in all hosts to be aborted and the network rebooted every
time some router goes down.
3
• Stability: The routing algorithms should be stable under all possible circumstances.
• Fairness: Every node connected to the network should get a fair chance of
transmitting their packets. this is generally done on a first come first serve basis.
4
Types Of Routing Algorithms
• Nonadaptive (Static)
• Do not use measurements of current conditions
• Static routes are downloaded at boot time
• Adaptive Algorithms
• Change routes dynamically
• Gather information at runtime
• locally
• from adjacent routers
• from all other routers
• Change routes
• Every delta T seconds
• When load changes 5
I distance
d1
d2
K
d1 + d2 is minimal
J d3
Other path from J to K
d3 > d2
Set of all optimal routes as
• from all sources d1 + d3 > d1 + d2
• to a given destination
is a tree: sink tree 6
• The set of optimal routes to a particular node forms a sink tree.
• Sink trees are not necessarily unique.
• Goal of all routing algorithms
• Discover sink trees for all destinations
Each node is labeled (in parentheses) with its distance from the source
node along the best known path.
B 7 C
2 3
2 3
E 2 F
A D
1 2
6 2
4
G H
(Cont’d)
• We want to find the shortest path from A to D.
• Initially, no paths are known, so all nodes are labeled with infinity.
B(∞,−) C(∞,−)
E(∞,−) F(∞,−)
A D(∞,−)
G(∞,−) H(∞,−)
(Cont’d)
• We start out by marking node A (the working node) as permanent.
• We examine each of the nodes adjacent a, relabeling each one
with the distance to a.
B(2, A) C(∞,−)
2
E(∞,−) F(∞,−)
A D(∞,−)
G(6, A) H(∞,−)
(Cont’d)
B(2, A) C(∞,−)
E(∞,−) F(∞,−)
A D(∞,−)
G(6, A) H(∞,−)
(Cont’d)
We examine each of the nodes adjacent B, relabeling each one with the
distance to B.
B(2, A) 7 C(9, Β)
2
E(4, B) F(∞,−)
A D(∞,−)
G(6, A) H(∞,−)
(Cont’d)
B(2, A) C(9, B)
E(4, B) F(∞,−)
A D(∞,−)
G(6, A) H(∞,−)
(Cont’d)
We examine each of the nodes adjacent E, relabeling each one with the distance
to E.
B(2, A) C(9, B)
E(4, B) F(6, Ε)
A D(∞,−)
1 2
G(5, E) H(∞,−)
(Cont’d)
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(∞,−)
G(5, E) H(∞,−)
(Cont’d)
We examine each of the nodes adjacent G, relabeling each one with the
distance to G.
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(∞,−)
G(5, E) H(9, G)
(Cont’d)
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(∞,−)
G(5, E) H(9, G)
(Cont’d)
We examine each of the nodes adjacent F, relabeling each one with the
distance to F.
B(2, A) C(9, B)
3
E(4, B) F(6, E)
A D(∞,−)
2
G(5, E) H(8, F)
(Cont’d)
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(∞,−)
G(5, E) H(8, F)
(Cont’d)
We examine each of the nodes adjacent H, relabeling each one with the distance to H.
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(10, F)
G(5, E) H(8, F)
(Cont’d)
We make C with the smallest label permanent. C becomes the new working
node.
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(10, F)
G(5, E) H(8, F)
(Cont’d)
We examine each of the nodes adjacent C, relabeling each one with the distance
to C.
B(2, A) C(9, B)
3
E(4, B) F(6, E)
A D(10, F)
G(5, E) H(8, F)
(Cont’d)
We make D with the smallest label permanent. D becomes the new working
node.
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(10, F)
G(5, E) H(8, F)
(Cont’d)
B(2, A) C(9, B)
E(4, B) F(6, E)
A D(10, H)
G(5, E) H(8, F)
Flow Based Routing Algorithm
•It is a non-adaptive routing algorithm.
•It takes into account both the topology and the load in this routing algorithm;
•We can estimate the flow between all pairs of routers.
•From the known average amount of traffic and the average length of a packet
you can compute the mean packet delays using queuing theory.
•Flow-based routing then seeks to find a routing table to minimize the average
packet delay through the subnet.
•Given the line capacity and the flow, we can determine the delay. It needs to
use the formula for delay time T.
Where, μ = Mean number of arrivals in packet/sec, 1/μ = The mean packet size
in the bits, and c = Line capacity (bits/s). 25
Routing: Flooding
• Every packet is sent out on every outgoing line except the one it
arrived at
• It is non adaptive algorithm.
26
27
28
29
Routing: Flooding
• Every packet is sent out on every outgoing line except the one it arrived at
• Duplicates!! How to limit?
• Hop counter
• Decrement in each router
• Discard packet if counter is 0
• Sequence number in packet
• Avoid sending the same packet a second time
• Keep in each router per source a list of packets already seen
• Selective flooding
• Use only those lines that are going approximately in right direction
30
Routing: Distance Vector
• Adaptive algorithm
• Exchange of info only with neighbours
• Data to be available in each router
• Routing table: per destination
• Distance
• Outgoing line
• Distance to all neighbours
31
ROUTING: DISTANCE VECTOR
Routing table for A
To cost via
A 0 -
B 12 B
C 25 B
D 40 B
E 14 E
F 23 E
G 18 B
H 17 J
I 21 E
J 9 J
K 24 J
L 29 J 32
• Algorithm
• At each step within a router:
• Get routing tables from neighbours
• Compute distance to neighbours
• Compute new routing table
33
ROUTING: DISTANCE
Routing tablesVECTOR
from
34
Better?
• Keep 4 tables (one for each neighbour)
• Use shortest path
35
Count To Infinity Problem
Good news:
• A comes up again
Only distances to A
36
Bad news:
• A goes down
B receives:
• Distance ∞ from A
• Distance 2 from C
New distance from B to A: 3 via C
37
Bad news:
• A goes down
C still
• believes its distance to A is 2
• routes via B
B routes its packets for A via C
38
Bad news:
• A goes down
39
Routing: Link State
• Each router must
40
Discovering your neighbors
• Send “hello” packet on each point-to-point line. Destination node
replies with its address.
41
Measuring line cost
• Send an “ECHO” packet over the line.
• Destination is required to respond to “echo” packet immediately.
• Measure the time required for this operation.
42
Building link state packets
• Packet containing:
• Identity of sender
• Sequence number + age
• For each neighbour: name + distance
43
Distributing the link state packets
• Flooding
• Each router records the (source, seq. No.)
• Only flood and record packets from a source with higher seq.No. Than
previously recorded.
• Sequence numbers or router records of them can get corrupt.
• Include age after seq. No. And decrement it per second. Discard
packets with age zero.
Age in each packet:
• Decremented during flooding,
while used in router
• Age 0 info discarded
44
Computing new routes
45
Hierarchical Routing
• When network size increases…
• Larger stables
• More CPU time needed to compute …
• More bandwidth needed.
The Solution is to
•Routers grouped in regions
•Each routers knows how to reach:
• Other routers in its own group
• Other regions
46
47
Thank you
48