Network Layerchapter4
Network Layerchapter4
Network Layer
Chapter goals:
understand principles behind network layer
services:
network layer service models
forwarding versus routing
how a router works
routing (path selection)
broadcast, multicast
instantiation, implementation in the Internet
encapsulates segments
network physical
physical
data link
physical
into datagrams
network network
data link data link
physical physical
routing algorithms
routing algorithm
value in arriving
packet’s header
0111 1
3 2
guaranteed delivery
delivery
with less than 40 msec guaranteed minimum
delay bandwidth to flow
restrictions on
changes in inter-
packet spacing
call setup, teardown for each call before data can flow
each packet carries VC identifier (not destination host
address)
every router on source-dest path maintains “state” for
each passing connection
link, router resources (bandwidth, buffers) may be
allocated to VC (dedicated resources = predictable service)
table 12 22 32
1 3
2
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
application
transport 5. Data flow begins 6. Receive data application
transport
network 4. Call connected 3. Accept call
network
data link 1. Initiate call 2. incoming call
data link
physical
physical
application
application
transport
transport
network
network
data link 1. Send data 2. Receive data
data link
physical
physical
IP destination address in
arriving packet’s header
1
3 2
otherwise 3
otherwise 3
Examples:
DA: 11001000 00010111 00010110 10100001 Which interface?
DA: 11001000 00010111 00011000 10101010 Which interface?
Network Layer 4-19
Datagram or VC network: why?
Internet (datagram) ATM (VC)
data exchange among evolved from telephony
computers human conversation:
“elastic” service, no strict strict timing, reliability
timing req. requirements
“smart” end systems need for guaranteed
(computers) service
can adapt, perform “dumb” end systems
control, error recovery
telephones
simple inside network,
complexity inside
complexity at “edge”
network
many link types
different characteristics
uniform service difficult
switching
fabric
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing
Physical layer:
bit-level reception
Data link layer: Decentralized switching:
e.g., Ethernet given datagram dest., lookup output port
see chapter 5 using forwarding table in input port
memory
goal: complete input port processing at
‘line speed’
queuing: if datagrams arrive faster than
forwarding rate into switch fabric
memory
input output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)
system bus
datagram
switch buffer link
fabric layer line
protocol termination
(send)
queueing
switch
switch
fabric
fabric
switch switch
fabric fabric
Link layer
physical layer
Recipe
to determine the
subnets, detach each
interface from its
host or router,
creating islands of
isolated networks
each isolated network
223.1.3.0/24
is called a subnet.
Subnet mask: /24
223.1.1.3
223.1.9.2 223.1.7.0
223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
223.1.2.6 223.1.3.27
subnet host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
time Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
DHCP Eth
Phy server: use DHCP
DHCP
DHCP request encapsulated
in UDP, encapsulated in IP,
DHCP encapsulated in 802.1
Ethernet
DHCP
168.1.1.1
DHCP UDP
IP
Ethernet frame broadcast
DHCP
DHCP Eth router (dest: FFFFFFFFFFFF) on LAN,
Phy (runs DHCP) received at router running
DHCP server
Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP
encapsulation of DHCP
DHCP DHCP server, frame forwarded
DHCP UDP to client, demuxing up to
DHCP IP DHCP at client
DHCP Eth router client now knows its IP
DHCP
Phy (runs DHCP) address, name and IP
address of DSN server, IP
address of its first-hop
router
Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”
“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
2. connection to
relay initiated 1. connection to
by client relay initiated
10.0.0.1
by NATed host
3. relaying
Client
established
138.76.29.7 NAT
router
data
32 bits
Network Layer 4-69
Other Changes from IPv4
Checksum: removed entirely to reduce
processing time at each hop
Options: allowed, but outside of header,
indicated by “Next Header” field
ICMPv6: new version of ICMP
additional message types, e.g. “Packet Too Big”
multicast group management functions
A B E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
A B C D E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
data data
A-to-B: E-to-F:
B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside
IPv4 IPv4
Network Layer 4-73
Chapter 4: Network Layer
4. 1 Introduction 4.5 Routing algorithms
4.2 Virtual circuit and Link state
datagram networks Distance Vector
Hierarchical routing
4.3 What’s inside a
router 4.6 Routing in the
4.4 IP: Internet Protocol Internet
RIP
Datagram format
OSPF
IPv4 addressing
BGP
ICMP
IPv6 4.7 Broadcast and
multicast routing
routing algorithm
value in arriving
packet’s header
0111 1
3 2
v 3 w
2 5
u 2 z
1
3
1
x y 2
Graph: G = (N,E) 1
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) }
v 3 w
2 5
u 2 z
1
3
1
x y 2
1
v w
u z
x y
Oscillations possible:
e.g., link cost = amount of carried traffic
A A A A
1 1+e 2+e 0 0 2+e 2+e
D 0
B D B D B D B
0 0 1+e 1 0 0 1+e 1
0 C e 0 0 1 e
C C 1+e 0 C
1 1
e … recompute … recompute … recompute
initially
routing
Network Layer 4-86
Chapter 4: Network Layer
4. 1 Introduction 4.5 Routing algorithms
4.2 Virtual circuit and Link state
datagram networks Distance Vector
Hierarchical routing
4.3 What’s inside a
router 4.6 Routing in the
4.4 IP: Internet Protocol Internet
RIP
Datagram format
OSPF
IPv4 addressing
BGP
ICMP
IPv6 4.7 Broadcast and
multicast routing
Then
dx(y) = min
v
{c(x,v) + dv(y) }
from
y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0
node y table
cost to
x y z y
2 1
x ∞ ∞ ∞
x z
y 2 0 1
from
7
z ∞∞ ∞
node z table
cost to
x y z
x ∞∞ ∞
from
y ∞∞ ∞
z 71 0
time
Network Layer 4-93
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x table = min{2+1 , 7+0} = 3
cost to cost to cost to
x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from
from
y ∞∞ ∞ y 2 0 1
from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y table
cost to cost to cost to
x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from
y 2 0 1 y 2 0 1
from
from
y 2 0 1 7
z ∞∞ ∞ z 7 1 0 z 3 1 0
node z table
cost to cost to cost to
x y z x y z x y z
x ∞∞ ∞ x 0 2 7 x 0 2 3
from
from
y 2 0 1 y 2 0 1
from
y ∞∞ ∞
z 71 0 z 3 1 0 z 3 1 0
time
Network Layer 4-94
Distance Vector: link cost changes
Link cost changes:
1
node detects local link cost change y
4 1
updates routing info, recalculates
x z
distance vector 50
if DV changes, notify neighbors
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
forwarding table
configured by both
intra- and inter-AS
Intra-AS
Routing
Inter-AS
Routing routing algorithm
algorithm algorithm
intra-AS sets entries
Forwarding for internal dests
table
inter-AS & intra-As
sets entries for
external dests
Network Layer 4-101
Inter-AS tasks
AS1 must:
suppose router in AS1
receives datagram 1. learn which dests are
destined outside of reachable through
AS1: AS2, which through
AS3
router should
forward packet to 2. propagate this
gateway router, but reachability info to all
which one? routers in AS1
job of inter-AS routing!
3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
?
Network Layer 4-104
Example: Choosing among multiple ASes
now suppose AS1 learns from inter-AS protocol that
subnet x is reachable from AS3 and from AS2.
to configure forwarding table, router 1d must
determine towards which gateway it should forward
packets for dest x.
this is also job of inter-AS routing protocol!
hot potato routing: send packet towards closest of
two routers.
z
w x y
A D B
C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Network Layer 4-109
RIP: Example A-to-D advertisement
dest next hops
w - 1
x - 1
z C 4
…. … ... z
w x y
A D B
C
routing table in router D
destination subnet next router # hops to dest
w A 2
y B 2
A 5
z B 7
x -- 1
…. …. ....
Network Layer 4-110
RIP: Link Failure and Recovery
If no advertisement heard after 180 sec -->
neighbor/link declared dead
routes via neighbor invalidated
new advertisements sent to neighbors
neighbors in turn send out new advertisements (if
tables changed)
link failure info quickly (?) propagates to entire net
poison reverse used to prevent ping-pong loops
(infinite distance = 16 hops)
Transport Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical
backbone
area
border
routers
Area 3
internal
routers
Area 1
Area 2
3c
BGP
3a message
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
eBGP session
3a iBGP session
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
A advertises path AW to B
B advertises path BAW to X
Should B advertise path BAW to C?
No way! B gets no “revenue” for routing CBAW since neither
W nor C are B’s customers
B wants to force C to route to w via A
B wants to route only to/from its customers!
Policy:
Inter-AS: admin wants control over how its traffic
routed, who routes through its net.
Intra-AS: single admin, so no policy decisions needed
Scale:
hierarchical routing saves table size, reduced update
traffic
Performance:
Intra-AS: can focus on performance
Inter-AS: policy may dominate over performance
duplicate
duplicate R1 creation/transmission R1
duplicate
R2 R2
R3 R4 R3 R4
source in-network
duplication duplication
B B
c c
D D
F E F E
G G
(a) Broadcast initiated at A (b) Broadcast initiated at D
A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) Stepwise construction (b) Constructed spanning
of spanning tree tree
Network Layer 4-130
Multicast Routing: Problem Statement
Goal: find a tree (or trees) connecting
routers having local mcast group members
tree: not all paths between routers used
source-based: different tree from each sender to rcvrs
shared-tree: same tree used by all group members
S: source LEGEND
R1 2
1 R4 router with attached
group member
R2 5
router with no attached
3 4
R5 group member
R3 6 i link used for forwarding,
R6 R7 i indicates order link
added by algorithm
Reverse Path Forwarding
S: source LEGEND
LEGEND
Dense: Sparse:
group members # networks with group
densely packed, in members small wrt #
“close” proximity. interconnected networks
bandwidth more group members “widely
plentiful dispersed”
bandwidth not plentiful
Consequences of Sparse-Dense Dichotomy:
Dense Sparse:
group membership by no membership until
routers assumed until routers explicitly join
routers explicitly prune receiver- driven
data-driven construction construction of mcast
on mcast tree (e.g., RPF) tree (e.g., center-based)
bandwidth and non- bandwidth and non-group-
group-router processing router processing
profligate conservative
PIM- Dense Mode