Transcript ppt
Chapter 4: Network Layer
4. 1 Introduction
4.2 Virtual circuit and
datagram networks
4.3 What’s 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
multicast routing
Network Layer
4-1
Interplay between routing, forwarding
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
0111
1
3 2
Network Layer
4-2
Graph abstraction
5
2
u
2
1
Graph: G = (N,E)
v
x
3
w
3
1
5
1
y
z
2
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Remark: Graph abstraction is useful in other network contexts
Example: P2P, where N is set of peers and E is set of TCP connections
Network Layer
4-3
Graph abstraction: costs
5
2
u
v
2
1
x
• c(x,x’) = cost of link (x,x’)
3
w
3
1
5
1
y
2
- e.g., c(w,z) = 5
z
• cost could always be 1, or
inversely related to bandwidth,
or inversely related to
congestion
Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Question: What’s the least-cost path between u and z ?
Routing algorithm: algorithm that finds least-cost path
Network Layer
4-4
Routing Algorithm classification
Global or decentralized
information?
Global:
all routers have complete
topology, link cost info
“link state” algorithms
Decentralized:
router knows physicallyconnected neighbors, link
costs 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 update
in response to link
cost changes
Network Layer
4-5
Chapter 4: Network Layer
4. 1 Introduction
4.2 Virtual circuit and
datagram networks
4.3 What’s 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
multicast routing
Network Layer
4-6
Link state routing
Each router must do the following
Discover its neighbors and learn their network
addresses
Measure
neighbor
the delay or cost to each of its
Construct a packet telling all it has just learned
Send this packet to all other routers
Compute the path to every other routerNetwork Layer
4-7
Learning about the neighbors
When a router is booted
It sends a special Hello packet to its neighbors
• The router on the other side answers telling who it is
Network Layer
4-8
Measuring line cost
Link state routing algorithm
Requires each router to have
• A reasonable estimate of the delay to each of its
neighbors
To determine this delay
A router sends a special ECHO packet to the
other side
• That the other side is required to send back
immediately
• By measuring the round trip time and dividing it by 2
• The sending router gets a reasonable estimate of the
delay
Network Layer
4-9
Building link state packets
Network Layer 4-10
Distributing link state packets
and computing new routes
Link state packets
Are distributed using flooding
A new link state is forwarded on all lines
• Except the one it arrived on
Once router accumulated
full set of link state packets, it constructs entire
graph
• Where every link will be represented
Dijkstra’s algorithm can be run
• to construct shortest paths to all possible destinations
Network Layer
4-11
Link state routing: wrap up
Network Layer 4-12
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 forwarding table
for that node
iterative: after k
iterations, know least cost
path to k dest.’s
Notation:
c(x,y): link cost from node
x to y; = ∞ if not direct
neighbors
D(v): current value of cost
of path from source to
dest. v
p(v): predecessor node
along path from source to v
N': set of nodes whose
least cost path definitively
known
Network Layer 4-13
Dijsktra’s Algorithm
1 Initialization:
2 N' = {u}
3 for all nodes v
4
if v adjacent to u
5
then D(v) = c(u,v)
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
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'
Network Layer 4-14
Dijkstra algorithm
Basic idea
It finds the shortest path from the source
• To a node nearest to it, then to a second nearest, and
so on
• At each step,
– select a newly reachable node at lowest cost
– And add an edge to that node to connect it to the tree built
Network Layer 4-15
Dijkstra algorithm (cont’d)
Network Layer 4-16
Example
A
8
0
4
A
8
2
B
8
7
2
C
2
1
D
9
E
F
A
8
4
5
B
8
7
5
E
2
C
3
B
2
7
5
E
D
8
A
8
3
5
0
4
2
C
3
1
9
0
4
2
F
2
8
4
2
3
0
2
1
9
D
11
F
5
3
B
2
7
7
5
E
C
3
2
1
9
D
8
F
3
5
Network Layer 4-17
Example (cont.)
A
8
0
4
2
B
2
7
7
C
3
5
E
2
1
9
D
8
F
3
5
A
8
0
4
2
B
2
7
7
C
3
5
E
2
1
9
D
8
F
3
5
Network Layer 4-18
Chapter 4: Network Layer
4. 1 Introduction
4.2 Virtual circuit and
datagram networks
4.3 What’s 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
multicast routing
Network Layer 4-19
Distance vector routing: basic
idea
Network Layer 4-20
Distance vector routing:
example
Basic idea
Look at costs that your neighbors are advertising
• To get a packet to a destination
• Then Select the neighbor whose advertised cost
– Added to the cost to that neighbor is lowest
Network Layer 4-21
Distance vector routing: rapid
reaction to good news
Distance vector routing reacts rapidly to
good news
When A comes up, other routers learn about it
• B makes an entry in its routing table that A is one hop
away
• On next exchange, C learns that A is 2 hops away
– D, and E do not hear the good news until later
• Good news spread at the rate of one hop per exchange
Network Layer 4-22
Distance vector routing: the
count to infinity problem
Distance vector routing reacts leisurely to
bad news
A goes down
• 1st exchange: B thinks it can reach A via C, with path
length 3
• 2nd exchange: C makes its new distance to A 4 and
etc…
Network Layer 4-23
Comparison of LS and DV algorithms
Message complexity
LS: with n nodes, E links,
O(nE) msgs sent
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
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
• error propagate thru
network
Network Layer 4-24
Chapter 4: Network Layer
4. 1 Introduction
4.2 Virtual circuit and
datagram networks
4.3 What’s 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
multicast routing
Network Layer 4-25