Академический Документы
Профессиональный Документы
Культура Документы
Network Layer:
The Data Plane
4-1
4-2
Network layer
transport segment from
sending to receiving
host
on sending side
encapsulates segments
into datagrams
on receiving 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
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
4-3
routing: process of
route taken by packets
planning trip from
from source to
source to
destination
routing algorithms
destination
4-4
Data plane
local, per-router
function
determines how
datagram arriving on
router input port is
forwarded to router
output port
values in arriving
forwarding
function
packet header
1
0111
3
network-wide logic
determines how datagram is
routed among routers along
end-end path from source host
to destination host
two control-plane approaches:
traditional routing
algorithms: implemented
in routers
software-defined
networking (SDN):
implemented in (remote)
servers
Network Layer: Data Plane
4-5
Routing
Algorithm
control
plane
data
plane
values in arriving
packet header
1
0111
3
5-6
CA
CA
values in arriving
packet header
CA
CA
CA
0111
3
2
Network Layer: Control Plane
5-7
in-order datagram
delivery
guaranteed minimum
bandwidth to flow
restrictions on
changes in interpacket spacing
Network Layer: Data Plane
4-8
Network
Architecture
Internet
Service
Model
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
4-9
routing
processor
routing, management
control plane (software)
operates in millisecond
time frame
forwarding data plane
(hardware) operttes
in nanosecond
timeframe
high-seed
switching
fabric
4-10
link
layer
protocol
(receive)
lookup,
forwarding
switch
fabric
queueing
physical layer:
bit-level reception
data link layer:
e.g., Ethernet
see chapter 5
decentralized switching:
using header field values, lookup output
port using forwarding table in input port
memory (match plus action)
goal: complete input port processing at
line speed
queuing: if datagrams arrive faster than
forwarding rate into switch fabric
Network Layer: Data Plane
4-11
physical layer:
bit-level reception
data link layer:
e.g., Ethernet
see chapter 5
link
layer
protocol
(receive)
lookup,
forwarding
switch
fabric
queueing
decentralized switching:
using header field values, lookup output
port using forwarding table in input port
memory (match plus action)
destination-based forwarding: forward
based only on destination IP address
(traditional)
generalized forwarding: forward based
on any set of header field values
Network Layer: Data Plane
4-12
Destination-based
forwarding forwarding table
Destination Address Range
Link Interface
otherwise
4-13
Link interface
otherwise
examples:
DA: 11001000 00010111 00010110 10100001
DA: 11001000 00010111 00011000 10101010
which interface?
which interface?
Network Layer: Data Plane
4-14
4-15
Switching fabrics
transfer packet from input buffer to
appropriate output buffer
switching rate: rate at which packets
can be transfer from inputs to outputs
often measured as multiple of input/output line rate
N inputs: switching rate N times line rate desirable
memory
bus
crossbar
4-16
input
port
(e.g.,
Ethernet)
memory
output
port
(e.g.,
Ethernet)
system bus
4-17
bus
4-18
crossbar
4-19
switch
fabric
4-20
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
4-21
switch
fabric
at t, packets more
from input to output
switch
fabric
4-22
4-23
Scheduling mechanisms
scheduling: choose next packet to send on link
FIFO (first in first out) scheduling: send in
order of arrival to queue
real-world example?
discard policy: if packet arrives to full queue: who to
discard?
tail drop: drop arriving packet
priority: drop/remove on priority basis
random: drop/remove randomly
packet
arrivals
queue
link
(waiting area) (server)
packet
departures
4-24
Scheduling policies:
priority
priority scheduling:
send highest
priority queued
packet
multiple classes,
with different
priorities
arrivals
departures
classify
low priority queue
(waiting area)
link
(server)
2
5
1 3
arrivals
packet
in
service
departures
4-25
2
5
1 3
arrivals
packet
in
service
departures
4-26
4-27
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
4-28
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.
4-29
IP fragmentation,
reassembly
fragmentation:
in: one large datagram
out: 3 smaller datagrams
reassembly
4-30
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
4-31
Chapter 4: outline
4.1 Overview of Network 4.4 Generalized
layer
Forward and SDN
data plane
match
control plane
action
4.2 Whats inside a
OpenFlow
router
examples of
4.3 IP: Internet Protocol
match-plus-action
in action
datagram format
fragmentation
IPv4 addressing
network address
translation
IPv6
Network Layer: Data Plane
4-32
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
4-33
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
4-34
Subnets
IP address:
subnet part - high
order bits
host part - low
order bits
whats 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
4-35
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
4-36
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
4-37
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
4-38
4-39
DHCP overview:
4-40
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: Data Plane
4-41
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:Heres
223.1.2.4 an IP
server!
transaction ID: 654
address
lifetime:you
3600 can
secs use
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
Broadcast:
OK. Ill
yiaddrr: 223.1.2.4
taketransaction
that IPID:address!
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: Data Plane
4-42
4-43
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
Ethernet demuxed to IP
demuxed, UDP
demuxed to DHCP
Network Layer: Data Plane
4-44
DHCP: example
DCP server formulates
DHCP ACK containing
clients IP address, IP
address of first-hop
router for client, name &
IP address of DNS server
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
router with DHCP
server built into
router
4-45
DHCP:
Wireshark
output (home
LAN)
request
reply
4-46
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
4-47
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
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
4-49
4-50
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
4-51
4-52
4-53
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
* Check out the online interactive exercises for more
examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
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
4-54
4-55
IPv6: motivation
initial motivation: 32-bit address space
soon to be completely allocated.
additional motivation:
header format helps speed
processing/forwarding
header changes to facilitate QoS
4-56
pri
payload len
flow label
hop limit
next hdr
source address
(128 bits)
destination address
(128 bits)
data
32 bits
4-57
4-58
IPv4 payload
IPv6 datagram
IPv4 datagram
Network Layer: Data Plane
4-59
Tunneling
B
IPv6
IPv6
IPv6
IPv6
IPv4
logical view:
physical view:
IPv4 tunnel
connecting IPv6 routers
IPv6
IPv6
IPv4
IPv6
IPv6
4-60
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: Data Plane
4-61
IPv6:
adoption
Why?
Network Layer: Data Plane
4-62
control plane
data plane
local flow table
headers counters actions
0100 1101
1
3 2
values in arriving
packets header
4-63
4-64
Action
Stats
MAC
dst
Link layer
Eth
type
IP
Src
IP
Dst
IP
Prot
TCP
TCP
sport dport
Examples
Destination-based forwarding:
Switch MAC
Port
src
Firewall:
Switch MAC
Port
src
Switch MAC
Port
src
IP
Prot
TCP TCP
Action
sport dport
51.6.0.8 *
IP
Dst
IP
Prot
TCP TCP
sport dport
IP
Dst
IP
Prot
TCP TCP
sport dport
port6
IP
Dst
22
Forward
drop
Forward
drop
*
*
*
*
do not forward (block)
all datagrams
sent by
host 128.119.1.1
*
128.119.1.
1
Examples
Destination-based layer 2 (switch) forwarding:
Switch MAC
Port
src
22:A7:23:
11:E1:02
IP
Dst
IP
Prot
TCP TCP
Action
sport dport
port3
4-68
OpenFlow abstraction
Firewall
match: IP
addresses and
TCP/UDP port
numbers
action: permit or
deny
NAT
match: IP
address and port
action: rewrite
address and port
Network Layer: Data Plane
4-69
datagrams from
OpenFlow exampleExample:
hosts h5 and h6 should
match
action
IP Src = 10.3.*.*
forward(3)
IP Dst = 10.2.*.*
Host h6
10.3.0.6
1
2
3
s3
controller
Host h5
10.3.0.5
1
2
Host h1
10.1.0.1
match
ingress port = 1
IP Src = 10.3.*.*
IP Dst = 10.2.*.*
action
forward(4)
s1
s2
1
4
Host h2
10.1.0.2
match
Host h3
10.2.0.3
Host h4
10.2.0.4
action
ingress port = 2
forward(3)
IP Dst = 10.2.0.3
ingress port = 2
forward(4)
IP Dst = 10.2.0.4