Part I: Introduction

Download Report

Transcript Part I: Introduction

application
transport
network
data link
physical
The Network
Layer &
Routing
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
The network layer moves transport layer segments
from host to host in the network, to deliver them to
their destination. This layer involves each and every
host and router in the network. We will study the
key principles and algorithms of routing, with a focus
on the Internet Protocol (IP) service model.
4: Network Layer
4a-1
Network layer functions
 transport packet from
sending to receiving hosts
 network layer protocols in
every host, router
three important functions:
 path determination: route
taken by packets from source
to destination - routing
algorithms
 switching: move packets from
router’s input to appropriate
router output
 call setup: some network
architectures require router
call setup along path before
data flows (what types?)
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
4: Network Layer
4a-2
Virtual circuits
the source-to-destination path behaves much like a
telephone circuit


performance-wise
network actions along source-to-destination path
 call setup, teardown for each call
before data can flow
 each packet carries VC identifier (not destination host ID)

every router/switch on source-destination path maintains a
“state” for each passing connection

Recall: transport-layer connection only involved two end
systems
 link and router resources (bandwidth, buffers) may be
dedicated to the VC


to get circuit-like performance
but… what about start-up delay?
4: Network Layer
4a-3
Virtual circuits: signaling protocols
 used to setup, maintain and teardown the VC
 used in ATM, frame-relay and X.25
 not used in the Internet (why?)
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
6. Receive data application
3. Accept call
2. incoming call
transport
network
data link
physical
4: Network Layer
4a-4
Datagram networks:
the Internet model
 no call setup at network layer
 routers: do not maintain state for the end-to-end
connections

no network-level concept of a “connection”
 packets are typically routed using only destination
host ID which is carried in the packet

packets between same source-destination pair may take
different paths
application
transport
network
data link 1. Send data
physical
application
transport
network
2. Receive data
data link
physical
4: Network Layer
4a-5
Routing
Routing protocol
Goal: determine “good” path
(sequence of routers) thru
network from source to dest.
Graph abstraction for
routing algorithms:
 graph nodes are
routers
 graph edges are
physical links

link cost: delay, $ cost,
or congestion level
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
 “good” path:
 typically means minimum
cost path
 other def’s possible
4: Network Layer
4a-6
Routing Algorithm classification
Global or decentralized
cost information?
Global:
 all routers have complete
topology & link cost info
 “link state” algorithms
Decentralized:
 router knows physicallyconnected neighbors, link
costs to route to neighbors
 iterative process of
computation & exchange of
info with neighbors
 “distance vector” algorithms
Static or dynamic?
Static:
 routes change slowly over
time
Dynamic:
 routes change more quickly
 periodic algorithmdriven updates
 responsive to link cost
changes
5
A
2
1
B
2
D
3
C
3
1
5
F
1
E
2
4: Network Layer
4a-7
4: Network Layer
4a-8
4: Network Layer
4a-9
4: Network Layer 4a-10
4: Network Layer 4a-11
4: Network Layer 4a-12
4: Network Layer 4a-13
Dijsktra’s Algorithm
1 Initialization:
2 N = {A}
// Source node is “A”
5
3 for all nodes v
3
4
if v adjacent to A
B
2
5
then D(v) = c(A,v)
A
2
3
6
else D(v) = infinity
1
D
7
1
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
D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N
C
5
F
1
E
2
4: Network Layer 4a-14
Dijkstra’s algorithm: example
Step
0
1
2
3
4
5
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
2,A
1,A
5,A
infinity
infinity
2,A
4,D
2,D
infinity
2,A
3,E
4,E
3,E
4,E
4,E
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
4: Network Layer 4a-15
Distance Vector Routing Algorithm
iterative:
 continues until no
nodes exchange info.
 self-terminating: no
“signal” to stop
asynchronous:
 nodes need
not
exchange info/iterate
in lock step!
distributed:
 each node
communicates only with
directly-attached
neighbors
Distance Table data structure
 each node has its own
 row for each possible destination
 column for each directly-
attached neighbor to node
 example: in node X, for
destination Y via neighbor Z:
DX(Y,Z)
distance from X to
= Y, via Z as next hop
Z
= c(X,Z) + minw {D (Y,w)}
4: Network Layer 4a-16
Distance Table: example
7
A
B
1
C
E
cost to destination via
D ()
A
B
D
A
1
14
5
B
7
8
5
C
6
9
4
D
4
11
2
2
8
1
E
2
D
E
D (C,D) = c(E,D) + min {DD(C,w)}
= 2+2 = 4
w
E
D (A,D) = c(E,D) + min {DD(A,w)}
= 2+3 = 5
E
D (A,B)
w
loop back through E!
= c(E,B) + min {D B(A,w)}
w
= 8+6 = 14
loop back through E!
4: Network Layer 4a-17
Distance table gives routing table
E
cost to destination via
Outgoing link
D ()
A
B
D
E
A
1
14
5
A
A,1
B
7
8
5
B
D,5
C
6
9
4
C
D,4
D
4
11
2
D
D,2
Distance table
to use, cost
Routing table
>> next link, cost
4: Network Layer 4a-18
Distance Vector Algorithm
(Bellman-Ford):
At all nodes, X:
1 Initialization:
2 for all adjacent nodes v:
3
D X(*,v) = infinity
/* the * operator means "for all rows" */
4
D X(v,v) = c(X,v)
5 for all destinations, y
6
send min D X(y,w) to each neighbor /* w over all X's neighbors */
w
4: Network Layer 4a-19
Distance Vector Algorithm (cont.):
8 loop
9 wait (until I see a link cost change to neighbor V
10
or until I receive update from neighbor V)
11
12 if (c(X,V) changes by d)
13 /* change cost to all dest's via neighbor v by d */
14 /* note: d could be positive or negative */
15 for all destinations y: D X(y,V) = D X(y,V) + d
16
17 else if (update received from V wrt destination Y)
18 /* shortest path from V to some Y has changed */
19 /* V has sent a new value for its min DV(Y,w) */
w
20 /* call this received new value "newval" */
X
21 for the single destination y: D(Y,V)
= c(X,V) + newval
22
X
23 if we have a new min D (Y,w)
for any destination Y
w
X
24
send new value of min D (Y,w)
to all neighbors
w
25
4: Network Layer
26 forever
4a-20
Comparison of LS and DV algorithms
Message complexity
 LS: with n nodes, E links,
O(nE) msgs sent/broadcast
 DV: exchange between
neighbors only
 convergence time varies
Speed of Convergence
 LS: O(n2) algorithm requires
O(nE) msgs
 may have oscillations
 DV: convergence time varies
 may be routing loops
 count-to-infinity problem
• poisoned reverse is
sometimes successful
Robustness: what happens
if router malfunctions?
LS:


node can advertise
incorrect link cost
each node computes only
its own table
DV:


DV node can advertise
incorrect path cost
each node’s table used by
others
• errors propagate
through the network
4: Network Layer 4a-21