Professional Documents
Culture Documents
chapter goals:
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Network layer
Task
Routing
Addressing
Congestion control
Network layer
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
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
forwarding: move
packets from
routers input to
appropriate router
output
analogy:
routing: process of
planning trip from
source to dest
routing: determine
route taken by
packets from source
to dest.
forwarding: process
of getting through
single interchange
routing algorithms
Network Layer 4-5
0100
0101
0111
1001
3
2
2
1
value in arriving
packets header
0111
1
3 2
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Connection, connection-less
service
Virtual circuits
source-to-dest path behaves much like
telephone circuit
performance-wise
network actions along source-to-dest path
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)
VC implementation
a VC consists of:
1. path from source to destination
2. VC numbers, one number for each link
along path
3. entries in forwarding tables in routers
along path
VC forwarding table
22
12
VC number
forwarding table in
northwest router:
Incoming interface
1
2
3
1
Incoming VC #
12
63
7
97
32
interface
number
Outgoing interface
Outgoing VC #
3
1
2
3
22
18
17
87
application
transport 5. data flow begins
network 4. call connected
data link 1. initiate call
physical
transport
3. accept call
network
2. incoming call
data link
physical
Datagram networks
application
transport
network 1. send datagrams
data link
physical
application
transport
2. receive datagrams network
data link
physical
Datagram forwarding
table
4 billion IP
routing algorithm
addresses, so rather
than list individual
destination address
list range of
addresses
(aggregate table
entries)
2
2
1
IP destination address in
arriving packets header
1
3 2
Datagram forwarding
table
Destination Address Range
Link Interface
otherwise
Link interface
otherwise
examples:
DA: 11001000 00010111 00010110 10100001
DA: 11001000 00010111 00011000 10101010
which interface?
which interface?
Network Layer 4-16
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
routing
processor
routing, management
control plane (software)
forwarding data
plane (hardware)
high-seed
switching
fabric
line
termination
lookup,
forwarding
switch
fabric
queueing
physical layer:
bit-level reception
data link layer:
e.g., Ethernet
decentralized switching:
Switching fabrics
memory
bus
crossbar
input
port
(e.g.,
Ethernet)
memory
output
port
(e.g.,
Ethernet)
system bus
bus
crossbar
Output ports
switch
fabric
datagram
buffer
queueing
link
layer
protocol
(send)
line
termination
buffering required when datagrams arrive from fabric faster than the
transmission rate
Datagram (packets) can be
scheduling discipline chooses among queued datagrams for transmission
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
IP protocol
routing protocols
network
layer
addressing conventions
datagram format
packet handling conventions
path selection
RIP, OSPF, BGP
forwarding
table
link layer
ICMP
protocol
error reporting
router signaling
physical layer
IP datagram format
IP protocol version
number
header length
(bytes)
type of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
32 bits
ver head. type of
len service
16-bit identifier
upper
time to
layer
live
total datagram
length (bytes)
length
fragment
flgs
offset
header
checksum
for
fragmentation/
reassembly
data
(variable length,
typically a TCP
or UDP segment)
e.g. timestamp,
record route
taken, specify
list of routers
to visit.
fragmentation:
in: one large datagram
out: 3 smaller datagrams
reassembly
IP fragmentation,
reassembly
IP fragmentation,
reassembly
example:
4000 byte
datagram
MTU = 1500
bytes
1480 bytes in
data field
offset =
1480/8
length ID fragflag
=4000 =x
=0
offset
=0
offset
=0
length ID fragflag
=1500 =x
=1
offset
=185
length ID fragflag
=1040 =x
=0
offset
=370
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
IP addressing: introduction
223.1.1.1
IP address: 32-bit
IP addresses
associated with each
interface
223.1.2.1
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.3
223.1.2.2
223.1.3.1
223.1.3.2
IP addressing: introduction
Q: how are interfaces
actually connected?
A: well learn about 223.1.1.2
that in chapter 5, 6.
223.1.1.1
223.1.2.1
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
Subnets
IP
address:
a subnet ?
device interfaces
with same subnet
part of IP address
can physically
reach each other
without intervening
router
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
subnet
223.1.3.1
223.1.3.2
Subnets
223.1.1.0/24
recipe
to determine the
subnets, detach
each interface
from its host or
router, creating
islands of isolated
networks
each isolated
network is called
a subnet
223.1.2.0/24
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
subnet
223.1.3.1
223.1.3.2
223.1.3.0/24
Subnets
223.1.1.2
how many?
223.1.1.1
223.1.1.4
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.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
DHCP overview:
DHCP client-server
scenario
DHCP
server
223.1.1.0/24
223.1.2.1
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
arriving DHCP
client needs
address in this
network
223.1.2.0/24
223.1.3.2
223.1.3.1
223.1.3.0/24
Network Layer 4-38
DHCP client-server
scenario
DHCP server: 223.1.2.5
DHCP discover
src : 0.0.0.0, 68
Broadcast:
is there a
dest.: 255.255.255.255,67
yiaddr:
0.0.0.0out
DHCP
server
transaction
ID: 654
there?
arriving
client
DHCP offer
src: 223.1.2.5, 67
Broadcast:
Im a DHCP
dest: 255.255.255.255,
68
yiaddrr:
223.1.2.4
server! Heres an IP
transaction
654 use
address
youID:can
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
Broadcast:
OK. Ill
yiaddrr: 223.1.2.4
take
that IPID:address!
transaction
655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255,
68
Broadcast:
OK. Youve
yiaddrr: 223.1.2.4
gottransaction
that IPID:
address!
655
lifetime: 3600 secs
Network Layer 4-39
DHCP: example
DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
168.1.1.1
DHCP request
encapsulated in UDP,
encapsulated in IP,
encapsulated in 802.1
Ethernet frame
broadcast (dest:
FFFFFFFFFFFF) on LAN,
received at router
running DHCP
server
Ethernet
demuxed
to
IP demuxed, UDP
demuxed to DHCP
DHCP: example
DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
encapsulation of
DHCP server, frame
forwarded to client,
demuxing up to
DHCP at client
client now knows its
IP address, name
and IP address of
DSN server, IP
address of its firsthop router
local network
(e.g., home network)
10.0.0/24
10.0.0.1
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
1: host 10.0.0.1
sends datagram to
128.119.40.186, 80
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
1
2
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: reply arrives
dest. address:
138.76.29.7, 5001
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.1
10.0.0.2
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Destination unreachable
Source quench
Time exceeded
Parameter problem
redirection
Query
messages
network-layer above
IP:
ICMP msgs carried in IP
datagrams
Type
0
3
3
3
3
3
3
4
Code
0
0
1
2
3
6
7
0
8
9
10
11
12
0
0
0
0
0
description
echo reply (ping)
dest. network unreachable
dest host unreachable
dest protocol unreachable
dest port unreachable
dest network unknown
dest host unknown
source quench (congestion
control - not used)
echo request (ping)
route advertisement
router discovery
TTL expired
bad IP header
3 probes
3 probes
when ICMP
messages arrives,
source records RTTs
stopping criteria:
UDP segment
eventually arrives at
destination host
destination returns
ICMP port
unreachable
message (type 3,
code 3)
source stops
3 probes
Network Layer 4-54
IPv6: motivation
pri
payload len
flow label
hop limit
next hdr
source address
(128 bits)
destination address
(128 bits)
data
32 bits
IPv4 payload
IPv6 datagram
IPv4 datagram
Network Layer 4-58
Tunneling
B
IPv6
IPv6
IPv6
IPv6
IPv4
logical view:
physical view:
IPv4 tunnel
connecting IPv6 routers
IPv6
IPv6
IPv4
IPv6
IPv6
Tunneling
IPv4 tunnel
connecting IPv6 routers
IPv6
IPv6
IPv6
IPv6
IPv4
logical view:
physical view:
flow: X
src: A
dest: F
data
A-to-B:
IPv6
IPv6
IPv6
IPv4
IPv6
IPv6
src:B
dest: E
src:B
dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
flow: X
src: A
dest: F
data
E-to-F:
IPv6
Network Layer 4-60
ARP
ARP
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
routing algorithm
2
2
1
IP destination address in
arriving packets header
1
3 2
Graph abstraction
5
2
2
1
graph: G = (N,E)
w
3
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) }
aside: graph abstraction is useful in other network contexts, e.g.,
P2P, where N is set of peers and E is set of TCP connections
v
2
w
3
Routing algorithm
classification
Q: 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
Q: static or
dynamic?
static:
routes change slowly
over time
dynamic:
routes change more
quickly
periodic update
in response to link
cost changes
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
A Link-State Routing
Algorithm
Dijkstras algorithm
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
Dijsktras 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-70
N'
u
uw
uwx
uwxv
uwxvy
uwxvyz
p(w)
p(x)
7,u
6,w
6,w
3,u
5,u
5,u 11,w
11,w 14,x
10,v 14,x
12,y
p(y)
p(z)
notes:
9
7
4
8
3
y
3
v
Network Layer 4-71
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)
2,x
D(z),p(z)
4,y
4,y
4,y
5
2
v
2
w
3
2
Network Layer 4-72
z
x
link
v
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
Network Layer 4-73
Dijkstras algorithm,
discussion
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Bellman-Ford example
5
2
v
2
w
3
node x:
knows cost to each neighbor v: c(x,v)
maintains its neighbors distance
vectors. For each neighbor v, x
maintains
Dv = [Dv(y): y N ]
Network Layer 4-78
distributed:
each node:
wait for (change in local link
cost or msg from neighbor)
recompute estimates
if DV to any dest has
changed, notify neighbors
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
from
node y
table
x
y
z
from
node z
table
x
y
z
cost to
cost to
x y z
x y z
0 2 7
x 0 2 3
y 2 0 1
z 7 1 0
from
from
node x
table
x
y
z
cost to
x y z
2 0 1
y
7
cost to
x y z
7 1 0
time
Network Layer 4-81
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
0 2 7
x 0 2 3
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
from
x y z
from
x y z
cost to
cost to
cost to
x y z
x y z
2 0 1
x 0 2 7
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
cost to
cost to
x y z
x y z
x 0 2 7
y 2 0 1
z 3 1 0
7 1 0
from
x y z
y
7
cost to
x y z
from
from
node z
table
x
y
z
cost to
x y z
from
from
node y
table
x
y
z
cost to
cost to
from
from
node x
table
x
y
z
x 0 2 3
y 2 0 1
z 3 1 0
time
Network Layer 4-82
60
50
poisoned reverse:
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Hierarchical
routing
Level 1: Regions
Hierarchical
routing
administrative
scale: with 600
autonomy
million destinations:
internet = network of
networks
each network admin may
want to control routing in
its own network
Hierarchical
routing
aggregate routers
into regions,
autonomous
systems (AS)
routers in same AS
run same routing
protocol
intra-AS routing
protocol
routers in different AS
can run different
intra-AS routing
protocol
Interconnected ASes
3c
3a
3b
AS3
2a
1c
1a
1d
2c
AS2
1b AS1
Intra-AS
Routing
algorithm
Inter-AS
Routing
algorithm
Forwarding
table
2b
forwarding table
configured by both
intra- and inter-AS
routing algorithm
intra-AS sets
entries for internal
dests
inter-AS & intra-AS
sets entries for
external dests
Network Layer 4-88
Inter-AS tasks
suppose router in
AS1 receives
datagram destined
outside of AS1:
router should
forward packet to
gateway router,
but which one?
AS1 must:
1. learn which dests
are reachable
through AS2, which
through AS3
2. propagate this
reachability info to
all routers in AS1
job of inter-AS routing!
3c
3b
other
networks
3a
AS3
1c
1a
AS1
1d
2a
1b
2c
2b
other
networks
AS2
Network Layer 4-89
3c
3b
other
networks
3a
AS3
1c
1a
AS1
1d
2a
1b
2c
2b
other
networks
AS2
Network Layer 4-90
3c
3b
other
networks
3a
AS3
1c
1a
AS1
1d
2a
1b
2c
2b
other
networks
AS2
?
Network Layer 4-91
Chapter 4: outline
4.1 introduction
4.2 virtual circuit and
datagram networks
4.3 whats inside a
router
4.4 IP: Internet Protocol
datagram format
IPv4 addressing
ICMP
IPv6
Broadcast routing
duplicate
creation/transmission
R1
R1
duplicate
R2
R2
R3
R4
source
duplication
R3
R4
in-network
duplication