Beruflich Dokumente
Kultur Dokumente
Chapter goals:
services:
4-1
Datagram format
IPv4 addressing
NAT
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
4-2
Network layer
on sending side encapsulates
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
application
transport
network
data link
physical
Network Layer
4-3
Routing algorithms
Network Layer
4-4
3
2
2
1
value in arriving
packets header
0111
1
3 2
Network Layer
4-5
Connection setup
important function in
architectures:
some network
4-6
4-7
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-8
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
4-9
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 the core
Virtual circuits
source-to-dest path behaves much like telephone
circuit
performance-wise
network actions along source-to-dest path
Network Layer
4-11
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
application
transport
network
data link 1. Send data
physical
application
transport
2. Receive data network
data link
physical
Network Layer 4-15
Forwarding table
Destination Address Range
4 billion
possible entries
Link Interface
otherwise
3
Network Layer 4-16
Link Interface
0
1
2
3
Examples
DA: 11001000 00010111 00010110 10100001
Which interface?
Which interface?
computers
elastic service, no strict
timing req.
smart end systems
(computers)
can adapt, perform
control, error recovery
simple inside network,
complexity at edge
many link types
different characteristics
uniform service difficult
ATM
evolved from telephony
human conversation:
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
see chapter 5
Decentralized switching:
Memory
Output
Port
System Bus
Output Ports
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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 format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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
upper
time to
Internet
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 format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
IP Addressing: introduction
IP address: 32-bit
identifier for host,
router interface
interface: connection
between host/router
and physical link
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:
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
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
Organization 7
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
.
200.23.30.0/23
Question
Alices IP Add:
Bobs IP Add:
121.36.6.13
121.36.7.18
True or False?
Alice and Bob are in different subnets.
Organization 0
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-44
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-50
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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-53
to nth router:
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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-61
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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-64
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 format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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-69
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-70
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-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
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-73
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-74
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-75
z
x
link
v
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
1
0
A
0 0
C
e
In reality,
link cost =f(traffic
A on link)
2+e A
0
1+e
e
initially
B
1
1+e 1
2+e
0 0
0
Does0that lead
to a 1problem?
1+e
recompute
routing
recompute
2+e
D 1+e 1 B
e
0
C
recompute
Network Layer 4-77
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
Bellman-Ford example
5
2
v
2
w
3
c(x,v)
Node x maintains 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 of msg from neighbor)
recompute estimates
if DV to any dest has
changed, notify neighbors
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
60
4
50
60
y
50
Poissoned reverse:
If Z routes through Y to
get to X :
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 format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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!
routing table exchange
would swamp links!
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 is
configured by both
intra- and inter-AS
routing algorithm
Inter-AS tasks
AS1 needs:
1. to learn which dests
are reachable through
AS2 and which
through AS3
2. to propagate this
reachability info to all
routers in AS1
Job of inter-AS routing!
3c
3a
3b
AS3
1a
2a
1c
1d
1b
2c
AS2
2b
AS1
Network Layer 4-93
Determine from
forwarding table the
interface I that leads
to least-cost gateway.
Enter (x,I) in
forwarding table
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
Intra-AS Routing
Also known as Interior Gateway Protocols (IGP)
Most common Intra-AS routing protocols:
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
x
y
destination hops
u
1
v
2
w
2
x
3
y
3
z
2
RIP advertisements
Distance vectors: exchanged among
RIP: Example
z
w
C
Destination Network
w
y
z
x
Next Router
....
A
B
B
--
2
2
7
1
Routing table in D
Network Layer 4-101
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 table in D
2
2
7 5
1
routed
routed
Transprt
(UDP)
network
(IP)
link
physical
Transprt
(UDP)
forwarding
table
forwarding
table
network
(IP)
link
physical
Network Layer 4-104
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
LS packet dissemination
Topology map at each node
Route computation using Dijkstras algorithm
Hierarchical OSPF
Hierarchical OSPF
Two-level hierarchy: local area, backbone.
Link-state advertisements only in area
each nodes has detailed area topology; only know
direction (shortest path) to nets in other areas.
Area border routers: summarize distances to nets
in own area, advertise to other Area Border routers.
Backbone routers: run OSPF routing limited to
backbone.
Boundary routers: connect to other ASs.
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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 semi-
3c
3a
3b
AS3
1a
AS1
2a
1c
1d
1b
2c
AS2
2b
eBGP session
iBGP session
Network Layer 4-112
2a
1c
1d
1b
2c
AS2
2b
eBGP session
iBGP session
Network Layer 4-113
BGP messages
BGP messages exchanged using TCP.
BGP messages:
OPEN: opens TCP connection to peer and
authenticates sender
UPDATE: advertises new path (or withdraws old)
KEEPALIVE keeps connection alive in absence of
UPDATES; also ACKs OPEN request
NOTIFICATION: reports errors in previous msg;
also used to close connection
B
W
provider
network
customer
network:
C
Y
Figure 4.5
-BGPnew: a simple BGP scenario
B
W
provider
network
customer
network:
C
Y
Figure 4.5
-BGPnew: a simple BGP scenario
Scale:
hierarchical routing saves table size, reduced update
traffic
Performance:
Intra-AS: can focus on performance
Inter-AS: policy may dominate over performance
Datagram format
IPv4 addressing
ICMP
IPv6
Link state
Distance Vector
Hierarchical routing
RIP
OSPF
BGP
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
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
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:
edge router sends unicast join-msg addressed
to center router
join-msg processed by intermediate routers
and forwarded towards center
join-msg either hits existing tree branch for
this center, or arrives at center
path taken by join-msg becomes new branch of
tree for this router
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
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-groupgroup-router processing
router processing
profligate
conservative
increased performance:
less concentration,
shorter paths
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