Chapter 4
Network Layer
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).
They’re in powerpoint form so you can add, modify, and delete slides
(including this one) and slide content to suit your needs. They obviously
represent a lot of work on our part. In return for use, we only ask the
following:
If you use these slides (e.g., in a class) in substantially unaltered form,
that you mention their source (after all, we’d like people to use our book!)
If you post any slides in substantially unaltered form on a www site, that
you note that they are adapted from (or perhaps identical to) our slides, and
note our copyright of this material.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2002
J.F Kurose and K.W. Ross, All Rights Reserved
Computer Networking:
A Top Down Approach
Featuring the Internet,
2nd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2002.
Network Layer 4-1
Chapter 4: Network Layer
Chapter goals:
❒ Internet routing protocols
❍
❍
intra-domain
inter-domain
❒ what’s inside a router?
❒ IPv6
❒ mobility
Network Layer 4-2
Chapter 4 roadmap
4.1 Introduction and Network Service Models
4.2 Routing Principles
4.3 Hierarchical Routing
4.4 The Internet (IP) Protocol
4.5 Routing in the Internet
4.6 What’s Inside a Router
4.7 IPv6
4.8 Multicast Routing
4.9 Mobility
Network Layer 4-3
Network layer functions
❒ transport packet from sending
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
Network Layer 4-4
datagram?
Network Layer 4-5
Virtual circuits
“source-to-dest path behaves much like telephone
circuit”
❍
❍
performance-wise
network actions along source-to-dest path
before data can flow
❒ each packet carries VC identifier (not destination host ID)
❒ every router on source-dest path maintains “state” for each
passing connection
❒ call setup, teardown for each call
❍
transport-layer connection only involved two end systems
❒ link, router resources (bandwidth, buffers) may be
❍
to get circuit-like perf.
allocated to VC
❒ routers: no state about end-to-end connections
❍ no network-level concept of “connection”
❒ packets forwarded using destination host address
❍ packets between same source-dest pair may take different
paths
application
transport
network
data link 1. Send data
physical
application
transport
2. Receive data network
data link
physical
Network Layer 4-8
Network layer service models:
Network
Architecture
Internet
Service
Model
Guarantees ?
no
no
no
yes
yes
yes
yes
yes
yes
no
yes
no
no (inferred
via loss)
no
congestion
no
congestion
complexity at “edge”
❒ many link types
❍ different characteristics
❍ uniform service difficult
ATM
❒ evolved from telephony
❒ human conversation:
strict timing, reliability
requirements
❍ need for guaranteed
service
❒ “dumb” end systems
❍ telephones
❍ complexity inside
network
❍
Network Layer 4-
Chapter 4 roadmap
4.1 Introduction and Network Service Models
4.2 Routing Principles
❍
❍
Link state routing
Distance vector routing
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
❒ “good” path:
❍ in response to link
cost changes
Network Layer 4-
A Link-State Routing Algorithm
Dijkstra’s algorithm
❒ net topology, link costs
known to all nodes
❍ accomplished via “link
state broadcast”
❍ all nodes have same info
❒ computes least cost paths
from one node (‘source”) to
all other nodes
❍ gives routing table for
that node
❒ iterative: after k iterations,
know least cost path to k
dest.’s
Notation:
❒ c(i,j): link cost from node i
to j. cost infinite if not
direct neighbors
❒ D(v): current value of cost
of path from source to
15 until all nodes in N
Network Layer 4-
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
F
1
E
2
Network Layer 4-
Dijkstra’s algorithm, discussion
Algorithm complexity: n nodes
❒ each iteration: need to check all nodes, w, not in N
❒ n*(n+1)/2 comparisons: O(n**2)
❒ more efficient implementations possible: O(nlogn)
Oscillations possible:
❒ e.g., link cost = amount of carried traffic
D
1
1
0
A
0 0
C
e
C
2+e
B
1+e
… recompute
2+e
A
0
D 1+e 1 B
e
0
C
… recompute
Network Layer 4-
Distance Vector Routing Algorithm
iterative:
❒ continues until no nodes
= c(X,Z) + minw{D (Y,w)}
Network Layer 4-
Distance Table: example
A
E
D (C,D)
D (A,D)
E
E
cost to destination via
D ()
A
B
D
A
2
8
1
E
C
E
2
D
D
= c(E,D) + minw {D (C,w)}
= 2+2 = 4
D
= c(E,D) + minw {D (A,w)}
= 2+3 = 5 loop!
destination
7
B
1
A
A,1
B
7
8
5
B
D,5
C
6
9
4
C
D,4
D
❒ local link cost change
❒ message from neighbor: its
least cost path change
from neighbor
Distributed:
❒ each node notifies
neighbors only when its
least cost path to any
destination changes
❍
neighbors then notify their
neighbors if necessary
Each node:
wait for (change in local link
cost of msg from neighbor)
recompute distance table
if least cost path to any dest
has changed, notify
neighbors
Network Layer 4-
Distance Vector Algorithm:
At all nodes, X:
1 Initialization:
2 for all adjacent nodes v:
21 for the single destination y: DX(Y,V) = c(X,V) + newval
22
X
23 if we have a new minw D (Y,w)for any destination Y
X
24
send new value of minw D (Y,w) to all neighbors
25
26 forever
Network Layer
4-
Distance Vector Algorithm: example
X
2
Y
7
1
Z
Network Layer 4-