Professional Documents
Culture Documents
Network Layer
Computer Networking:
A Top Down Approach
5th edition.
Jim Kurose, Keith Ross
Addison-Wesley, April
2009.
Network Layer
4-1
services:
4-2
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Network Layer
4-3
Network layer
transport segment from sending to receiving host
on sending side encapsulates segments into
datagrams
on rcving side, delivers segments to transport
layer
network layer protocols in every host, router
router examines header fields in all IP datagrams
passing through it
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
network
data
link
data link
physical
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Network Layer
application
transport
network
data link
physical
4-4
routing algorithms
Network Layer
4-5
3
2
2
1
value in arriving
packets header
0111
1
3 2
Network Layer
4-6
Connection setup
some network architectures:
ATM, frame relay, X.25
before datagrams flow, two end hosts and intervening
routers establish virtual connection
routers get involved
network vs transport layer connection service:
network: between two hosts (may also involve
intervening routers in case of VCs)
transport: between two processes
3rd important function in
Network Layer
4-7
4-8
Service
Model
Guarantees ?
Congestion
Bandwidth Loss Order Timing feedback
ATM
CBR
ATM
VBR
ATM
ABR
ATM
UBR
constant
rate
guaranteed
rate
guaranteed
minimum
none
no
no
no
yes
yes
yes
yes
yes
yes
no
yes
no
no (inferred
via loss)
no
congestion
no
congestion
yes
no
yes
no
no
Network Layer
4-9
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
connectionless service
VC network provides network-layer
connection service
analogous to the transport-layer services,
but:
service: host-to-host
no choice: network provides one or the other
implementation: in network core
Network Layer
4-11
Virtual circuits
source-to-dest path behaves much like telephone
circuit
performance-wise
network actions along source-to-dest path
VC implementation
a VC consists of:
1.
2.
3.
Forwarding table
VC number
22
12
Forwarding table in
northwest router:
Incoming interface
1
2
3
1
32
interface
number
Incoming VC #
12
63
7
97
Outgoing interface
3
1
2
3
Outgoing VC #
22
18
17
87
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
data link
physical
Datagram networks
no call setup at network layer
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-16
Forwarding table
4 billion
possible entries
DestinationAddressRangeLinkInterface
11001000000101110001000000000000
through0
11001000000101110001011111111111
11001000000101110001100000000000
through1
11001000000101110001100011111111
11001000000101110001100100000000
through2
11001000000101110001111111111111
otherwise3
Network Layer 4-17
Which interface?
Which interface?
ATM (VC)
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 control,
error recovery
dumb end systems
simple inside network,
telephones
complexity at edge
complexity inside
many link types
network
different characteristics
uniform service difficult
Network Layer 4-19
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
see chapter 5
Decentralized switching:
Input
Port
Memory
Output
Port
System Bus
Output Ports
Buffering required when datagrams arrive from fabric faster than the
transmission rate
Scheduling discipline chooses among queued datagrams for transmission
buffering when arrival rate via switch exceeds output line speed
N flows,
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Network
layer
IP protocol
addressing conventions
datagram format
packet handling conventions
Routing protocols
path selection
RIP, OSPF, BGP
forwarding
table
ICMP protocol
error reporting
router signaling
Link layer
physical layer
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
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
type of
ver head.
len service
length
fragment
16-bit identifier flgs
offset
time to upper
header
layer
live
checksum
total datagram
length (bytes)
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
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
IP Addressing: introduction
IP address: 32-bit
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
Subnets
IP address:
subnet part (high
order bits)
host part (low order
bits)
Whats a subnet ?
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
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.1.0/24
223.1.2.0/24
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
IP addressing: CIDR
CIDR: Classless InterDomain Routing
subnet portion of address of arbitrary length
address format: a.b.c.d/x, where x is # bits in
subnet portion of address
subnet
part
host
part
Windows: control-panel->network->configuration->tcp/ip>properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: dynamically get
address from as server
plug-and-play
DHCP overview:
host broadcasts DHCP discover msg
DHCP server responds with DHCP offer msg
host requests IP address: DHCP request msg
DHCP server sends address: DHCP ack msg
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.1
223.1.2.1
DHCP
server
223.1.1.1
223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
arriving DHCP
client needs
address in this
network
DHCP discover
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
arriving
client
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
time
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
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
ISP's block
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
.
Organization 7
200.23.30.0/23
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
Send me anything
with addresses
beginning
200.23.16.0/20
Internet
200.23.30.0/23
ISPs-R-Us
Send me anything
with addresses
beginning
199.31.0.0/16
Network Layer 4-48
200.23.16.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
Send me anything
with addresses
beginning
200.23.16.0/20
Internet
200.23.30.0/23
ISPs-R-Us
Organization 1
200.23.18.0/23
Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23
local network
(e.g., home network)
10.0.0/24
10.0.0.4
10.0.0.1
10.0.0.2
138.76.29.7
10.0.0.3
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
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
1
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.1
10.0.0.2
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-54
solution 1: statically
10.0.0.1
138.76.29.7
10.0.0.4
NAT
router
10.0.0.1
IGD
10.0.0.4
138.76.29.7
NAT
router
2. connection to
relay initiated
by client
Client
3. relaying
established
1. connection to
relay initiated
by NATted host
138.76.29.7
10.0.0.1
NAT
router
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
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
Network Layer 4-60
to nth router:
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
IPv6
Initial motivation: 32-bit address space soon
to be completely allocated.
Additional motivation:
Tunneling
Logical view:
Physical view:
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
tunnel
IPv4
IPv4
Tunneling
Logical view:
Physical view:
IPv6
IPv6
IPv6
IPv6
IPv4
Flow: X
Src: A
Dest: F
data
A-to-B:
IPv6
IPv6
IPv6
IPv4
IPv6
IPv6
tunnel
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-68
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
3
2
2
1
value in arriving
packets header
0111
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) }
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-71
v
2
w
3
- e.g., c(w,z) = 5
Static or dynamic?
Static:
routes change slowly
over time
Dynamic:
routes change more
quickly
periodic update
in response to link
cost changes
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Notation:
c(x,y): link cost from node
x to y; = if not direct
neighbors
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-76
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-77
z
x
link
v
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
1
0
A
0 0
C
e
1+e
e
initially
B
1
2+e
D 1+e 1 B
0
0
C
recompute
routing
A
0 0
2+e
1+e
recompute
2+e
D 1+e 1 B
e
0
C
recompute
Network Layer 4-79
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Bellman-Ford example
5
2
v
2
w
3
c(x,v)
Node x maintains distance vector Dx =
[Dx(y): y N ]
Node x also maintains its neighbors
distance vectors
Distributed:
each node notifies
Each node:
wait for (change in local link
cost or msg from neighbor)
recompute estimates
if DV to any dest has
changed, notify neighbors
node x table
cost to
x y z
from
from
x 0 2 7
y
z
node y table
cost to
x y z
cost to
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 7 1 0
x
y 2 0 1
z
node z table
cost to
x y z
from
from
x
y
z 71 0
time
y
7
node x table
cost to
x y z
x
y
z 71 0
from
from
from
from
x 0 2 7
y 2 0 1
z 7 1 0
cost to
x y z
x 0 2 7
y 2 0 1
z 3 1 0
x 0 2 3
y 2 0 1
z 3 1 0
cost to
x y z
x 0 2 3
y 2 0 1
z 3 1 0
y
7
cost to
x y z
from
from
from
x
y 2 0 1
z
node z table
cost to
x y z
x 0 2 3
y 2 0 1
z 7 1 0
cost to
x y z
cost to
x y z
from
from
x 0 2 7
y
z
node y table
cost to
x y z
cost to
x y z
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x 0 2 3
y 2 0 1
z 3 1 0
time
distance vector
if DV changes, notify neighbors
good
news
travels
fast
y
50
At time t1, z receives the update from y and updates its table.
It computes a new least cost to x and sends its neighbors its DV.
At time t2, y receives zs update and updates its distance table.
ys least costs do not change and hence y does not send any
message to z.
60
x
infinity problem!
44 iterations before algorithm
stabilizes: see text (50- 6 = 44,
bouncing back between y and z, until z
to x distance become higher than 50!)
y
50
Poisoned reverse:
If Z routes through Y to get to X :
infinity problem?
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
DV:
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Hierarchical Routing
Our routing study thus far - idealization
all routers identical
network flat
not true in practice
scale: with 200 million
destinations:
cant store all dests in
routing tables!
administrative autonomy
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
Gateway router
Direct link to router in
another AS
intra-AS routing
protocol
routers in different AS
can run different intraAS routing protocol
Interconnected ASes
3c
3a
3b
AS3
1a
2a
1c
1d
1b
Intra-AS
Routing
algorithm
2c
AS2
AS1
Inter-AS
Routing
algorithm
Forwarding
table
2b
forwarding table
configured by both
intra- and inter-AS
routing algorithm
Inter-AS tasks
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!
receives datagram
destined outside of
AS1:
router should
forward packet to
gateway router, but
which one?
3c
3a
3b
AS3
1a
2a
1c
1d
1b
2c
AS2
2b
AS1
Network Layer 4-95
3a
3b
AS3
1a
x
2a
1c
1d
1b AS1
2c
2b
AS2
Network Layer 4-96
3c
3b
3a
AS3
1a
2a
1c
1d
1b
2c
AS2
2b
AS1
Network Layer 4-97
Determine from
forwarding table the
interface I that leads
to least-cost gateway.
Enter (x,I) in
forwarding table
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Intra-AS Routing
also known as Interior Gateway Protocols (IGP)
most common Intra-AS routing protocols:
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
x
y
destination hops
u
1
v
2
w
2
x
3
y
3
z
2
RIP advertisements
distance vectors: exchanged among
neighbors every 30 sec via Response
Message (also called advertisement)
each advertisement: list of up to 25
destination subnets within AS
RIP: Example
z
w
C
Destination Network
w
y
z
x
Next Router
....
A
B
B
--
2
2
7
1
Routing/Forwarding table in D
Network Layer 4-104
RIP: Example
Dest
w
x
z
.
Next
C
hops
1
1
4
...
Advertisement
from A to D
z
x
Destination Network
w
y
z
x
Next Router
....
A
B
B A
--
Routing/Forwarding table in D
2
2
7 5
1
routed
Transprt
(UDP)
network
(IP)
link
physical
Transprt
(UDP)
forwarding
table
forwarding
table
network
(IP)
link
physical
Network Layer 4-107
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
router
advertisements disseminated to entire AS (via
flooding)
Hierarchical OSPF
Hierarchical OSPF
two-level hierarchy: local area, backbone.
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
the de
facto standard
BGP provides each AS a means to:
1.
2.
3.
BGP basics
pairs of routers (BGP peers) exchange routing info over
eBGP session
3c
3a
3b
AS3
1a
AS1
iBGP session
2a
1c
1d
1b
2c
AS2
2b
eBGP session
3c
3a
3b
AS3
1a
AS1
iBGP session
2a
1c
1d
1b
2c
AS2
2b
1.
2.
3.
4.
BGP messages
BGP messages exchanged using TCP.
BGP messages:
B
W
provider
network
customer
network:
C
Y
B
W
provider
network
customer
network:
C
Y
A advertises path AW to B
B advertises path BAW to X
Should B advertise path BAW to C?
Scale:
hierarchical routing saves table size, reduced update
traffic
Performance:
Intra-AS: can focus on performance
Inter-AS: policy may dominate over performance
datagram networks
4.3 Whats inside a
router
4.4 IP: Internet
Protocol
Datagram format
IPv4 addressing
ICMP
IPv6
Internet
RIP
OSPF
BGP
multicast routing
Broadcast Routing
deliver packets from source to all other nodes
source duplication is inefficient:
duplicate
duplicate
creation/transmission
R1
R1
duplicate
R2
R2
R3
R4
source
duplication
R3
R4
in-network
duplication
In-network duplication
flooding: when node receives brdcst pckt,
spanning tree
No redundant packets received by any node
Spanning Tree
First construct a spanning tree
Nodes forward copies only along spanning
tree
A
B
c
D
F
G
D
G
node
A
3
c
4
c
D
Shared tree
Source-based trees
Dijkstras algorithm
S: source
LEGEND
R1
1
R4
R2
3
R3
5
4
R6
R5
6
R7
LEGEND
R1
R4
R2
R5
R3
R6
R7
group members
no need to forward datagrams down subtree
prune msgs sent upstream by router with no
downstream group members
LEGEND
S: source
R1
R4
R2
P
R5
R3
R6
P
R7
Center-based trees
single delivery tree shared by all
one router identified as
center of tree
to join:
R4
2
R5
R3
R6
R7
protocol, RFC1075
flood and prune: reverse path forwarding,
source-based tree
RPF tree based on DVMRPs own routing tables
constructed by communicating DVMRP routers
no assumptions about underlying unicast
initial datagram to mcast group flooded
everywhere via RPF
routers not wanting group: send upstream prune
msgs
DVMRP: continued
Tunneling
Q: How to connect islands of multicast
routers in a sea of unicast routers?
physical topology
logical topology
addressed) datagram
normal IP datagram sent thru tunnel via regular IP unicast to
receiving mcast router
receiving mcast router unencapsulates to get mcast datagram
Dense:
Sparse:
group members
densely packed, in
close proximity.
bandwidth more
plentiful
group membership by
Sparse:
no membership until
join msg
to rendezvous point
(RP)
router sends
R4
join
intermediate routers
update state and
forward join
R1
R2
R3
join
R5
join
R6
R7
rendezvous
point
no one is listening!
R1
R4
join
R2
R3
join
R5
join
R6
R7
rendezvous
point
Chapter 4: summary
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
Internet
RIP
OSPF
BGP
multicast routing