E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Lecture 19
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-2
underline_base
4.1 introduction
4.2 virtual circuit anddatagram networks
4.3 whats inside a router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
4.5 routing algorithms
link state
distance vector
hierarchical routing
4.6 routing in the Internet
RIP
OSPF
BGP
4.7 broadcast and multicastrouting
Chapter 4: outline
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-3
underline_base
Graph abstraction
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
c(x,x) = cost of link (x,x)
      e.g., c(w,z) = 5
cost could inversely relatedto bandwidth,  or inverselyrelated to congestion
cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
key question: what is the least-cost path between u and z ?
routing algorithm: algorithm that finds that least cost path
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-4
underline_base
Routing algorithm classification
Q: global or decentralizedinformation?
global:
all routers have completetopology, link cost info
link state algorithms
decentralized:
router knows physically-connected neighbors, link coststo neighbors
iterative process ofcomputation, exchange of infowith neighbors
distance vector algorithms
Q: static or dynamic?
static:
routes change slowly overtime
dynamic:
routes change morequickly
periodic update
in response to linkcost changes
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-5
underline_base
A Link-State Routing Algorithm
Dijkstras algorithm
net topology, link costsknown to all nodes
accomplished via link statebroadcast
all nodes have same info
computes least cost pathsfrom one node (source)to all other nodes
gives forwarding table forthat node
Iterative: each iterationcan the least-cost path toone more node
notation:
c(x,y): link cost fromnode x to y;  = ∞ if notdirect neighbors
D(v): current value ofcost of path from sourceto dest. v
p(v): predecessor nodealong path from source tov
N': set of nodes whoseleast cost path definitivelyknown
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-6
underline_base
Dijsktras Algorithm at u
1  Initialization:
2    N' = {u}
3    for all nodes v
4      if v adjacent to u
5          then D(v) = c(u,v), p(v) = u
6      else D(v) = 
7
8   Loop
9     find w not in N' such that D(w) is a minimum
10    add w to N'
11    update D(v) for all v adjacent to w and not in N' :
12       if D(v) > D(w)+c(w,v)
13             D(v) = D(w)+c(w,v)
14             p(v)  = w
15  until all nodes in N'
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
w
3
4
v
x
u
5
3
7
4
y
8
z
2
7
9
Dijkstras algorithm: example
Step
N'
D(v)
p(v)
0
1
2
3
4
5
D(w)
p(w)
D(x)
p(x)
D(y)
p(y)
D(z)
p(z)
u
7,u
3,u
5,u
uw
11,w
6,w
5,u
14,x
11,w
6,w
uwx
uwxv
14,x
10,v
uwxvy
12,y
notes:
construct shortest path tree(no loop, why?) by tracingpredecessor nodes
ties can exist (can be brokenarbitrarily)
uwxvyz
Network Layer
4-7
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-8
underline_base
Dijkstras algorithm, discussion
algorithm complexity: n nodes
each iteration: need to check all nodes, w, not in N
n(n+1)/2 comparisons: O(n2)
more efficient implementations possible: O(nlogn)
oscillations possible:
e.g., support link cost equals amount of carried traffic:
A
D
C
B
given these costs,
find new routing….
resulting in new costs
A
D
C
B
1
1+e
e
0
e
1
1
0
0
initially
2+e
0
0
0
1+e
1
A
D
C
B
given these costs,
find new routing….
resulting in new costs
0
2+e
1+e
1
0
0
A
D
C
B
given these costs,
find new routing….
resulting in new costs
2+e
0
0
0
1+e
1
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-9
underline_base
Distance vector algorithm
Bellman-Ford equation (dynamic programming)
let
   dx(y) := cost of least-cost path from x to y
then
   dx(y) = min {c(x,v) + dv(y) }
 
v
cost to neighbor v
min taken over all neighbors v of x
cost from neighbor v to destination y
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-10
underline_base
Bellman-Ford example
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min {c(u,v) + dv(z),
                    c(u,x) + dx(z),
                    c(u,w) + dw(z) }
         = min {2 + 5,
                    1 + 3,
                    5 + 3}  = 4
node achieving minimum is next
hop in shortest path, used in forwarding table
B-F equation says:
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-11
underline_base
Distance vector algorithm
Dx(y) = estimate of least cost from x to y
x maintains  distance vector Dx = [Dx(y): y є N]
node x:
knows cost to each neighbor v: c(x,v)
maintains its neighbors distance vectors. Foreach neighbor v, x maintainsDv = [Dv(y): y є N ]
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-12
key idea:
from time-to-time, each node sends its owndistance vector estimate to neighbors
when x receives new DV estimate from neighbor,it updates its own DV using B-F equation:
Dx(y)  minv{c(x,v) + Dv(y)}  for each node y  N
under minor, natural conditions, the estimate Dx(y)converge to the actual least cost dx(y)
underline_base
Distance vector algorithm
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-13
iterative, asynchronous:each local iterationcaused by:
local link cost change
DV update message fromneighbor
distributed:
each node notifiesneighbors only when itsDV changes
neighbors then notify theirneighbors if necessary
wait for (change in local linkcost or msg from neighbor)
recompute estimates
if DV to any dest haschanged, notify neighbors
each node:
underline_base
Distance vector algorithm
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-14
x   y   z
x
y
z
0  2   7
from
cost to
from
from
x   y   z
x
y
z
0
x   y   z
x
y
z
cost to
x   y   z
x
y
z
7
1
0
cost to
2   0   1
∞ ∞ ∞
2   0   1
7   1   0
time
x
z
1
2
7
y
node x
table
Dx(y) min{c(x,y) Dy(y), c(x,z) Dz(y)}             min{2+0 7+1} 2
3
2
node y
table
node z
table
cost to
from
Dx(z)=min{c(x,y)+Dy(z),c(x,z)+Dz(z)}
min{2+1 ,7+0} 3
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-15
x   y   z
x
y
z
0  2   3
from
cost to
x   y   z
x
y
z
0  2   7
from
cost to
x   y   z
x
y
z
0  2   3
from
cost to
x   y   z
x
y
z
0  2   3
from
cost to
x   y   z
x
y
z
0  2   7
from
cost to
2  0   1
7  1   0
2  0   1
3  1   0
2   0   1
3  1   0
2  0   1
3  1   0
2  0   1
3  1   0
time
x   y   z
x
y
z
0  2   7
from
cost to
from
from
x   y   z
x
y
z
0
x   y   z
x
y
z
cost to
x   y   z
x
y
z
7
1
0
cost to
2   0   1
∞ ∞ ∞
2   0   1
7   1   0
time
x
z
1
2
7
y
node x
table
Dx(z)=min{c(x,y)+Dy(z),c(x,z)+Dz(z)}
min{2+1 ,7+0} 3
3
2
node y
table
node z
table
cost to
from
Dx(y) min{c(x,y) Dy(y), c(x,z) Dz(y)}             min{2+0 7+1} 2
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-16
underline_base
Distance vector: link cost changes
link cost changes:
node detects local link cost change
updates routing info, recalculatesdistance vector
if DV changes, notify neighbors
good
news
travels
fast
x
z
1
4
50
y
1
ty detects link-cost change, updates its DV, informs itsneighbors.
tz receives update from y, updates its table,computes new least cost to x , sends its neighbors itsDV.
ty receives zs update, updates its distance table.  ysleast costs do not change, so y  does not send a message toz.
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Distance Vector: link cost changes
Link cost changes:
44 iterations before algorithmstabilizes.
good news travels fast
bad news travels slow - “countto infinity” problem!
Poisoned reverse:
If Z routes through Y to X :
Z tells Y its (Z’s) distance to Xis infinite , so Y won’t route toX via Z
Only solve 1-hop reverse, notmultiple hops.
x
z
1
4
50
y
60
Initial Table @ y
Dy(x) = 4, Dy(z) =1
Dz(x) = 5 (from z)
Initial Table @ z
Dz(x) = 5, Dz(y) =1
Dy(x) = 4 (from y)
1st update @ y
Dy(x) = 6, Dy(z) =1
Dz(x) = 5 (from z)
1st update @ z
Dz(x) = 7, Dz(y) =1
Dy(x) = 6 (from y)
2nd update @ y
Dy(x) = 8, Dy(z) =1
Dz(x) = 7 (from z)
2nd update @ z
Dz(x) = 9, Dz(y) =1
Dy(x) = 8 (from y)
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Network Layer
4-18
underline_base
Comparison of LS and DV algorithms
message complexity
LS: with n nodes, E links, O(nE)msgs sent
DV: exchange between neighborsonly
convergence time varies
speed of convergence
LS: O(n2) algorithm requiresO(nE) msgs
may have oscillations
DV: convergence time varies
may be routing loops
count-to-infinity problem
robustness: what happens ifrouter malfunctions?
LS:
node can advertise incorrectlink cost
each node computes only itsown table
DV:
DV node can advertiseincorrect path cost
each nodes table used byothers
error propagate thrunetwork