Professional Documents
Culture Documents
Network Layer: The Data Plane: Computer Networking: A Top Down Approach
Network Layer: The Data Plane: Computer Networking: A Top Down Approach
Network Layer: The Data Plane: Computer Networking: A Top Down Approach
Network Layer:
The Data Plane
Adapted by RenPing.Liu@uts.edu.au
1 September 2019
segments to transport
physical physical
network
data link
layer network
physical
application
transport
network layer protocols network
data link
physical
network
data link
network
data link
(remote) servers 3
2
Routing
Algorithm
control
plane
data
plane
values in arriving
packet header
0111 1
2
3
Remote Controller
control
plane
data
plane
CA
CA CA CA CA
values in arriving
packet header
0111 1
2
3
physical layer:
bit-level reception
data link layer: decentralized switching:
e.g., Ethernet using header field values, lookup output
see chapter 5 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-12
Input port functions
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing
physical layer:
bit-level reception
decentralized switching:
data link layer: using header field values, lookup output
e.g., Ethernet port using forwarding table in input port
see chapter 5 memory (“match plus action”)
• destination-based forwarding: forward based
only on destination IP address (traditional)
• generalized forwarding (e.g. SDN): forward
based on any set of header field values
switch switch
fabric fabric
memory
input output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)
system bus
switch
switch
fabric
fabric
datagram
switch buffer link
fabric layer line
protocol termination
queueing (send)
packet packet
arrivals queue link departures
(waiting area) (server)
source/dest, port
numbers, etc. packet
in 1 3 2 4 5
• real world example? service
departures
1 3 2 4 5
airline:
• first/business class
• economy class
Network Layer: Data Plane 4-23
Scheduling policies: still more
Round Robin (RR) scheduling:
multiple classes
cyclically scan class queues, sending one complete
packet from each class (if available)
real world example?
2
1 3 4 5
arrivals
packet
in 1 3 2 4 5
service
departures
1 3 3 4 5 RTA, medicare: true round robin, or?
link layer
physical layer
…
in: one large datagram
• different link types, out: 3 smaller datagrams
different MTUs
large IP datagram divided
(“fragmented”) within net reassembly
• one datagram becomes
several datagrams
• “reassembled” only at …
final destination
• IP header bits used to
identify, order related
fragments
Network Layer: Data Plane 4-29
IP fragmentation, reassembly
length ID fragflag offset
example: =4000 =x =0 =0
4000 byte datagram
one large datagram becomes
MTU = 1500 bytes several smaller datagrams
223 1 10 5
128 64 32 16 8 4 2 1 2i
3. 0 1 1 0 0 1 0 0 Try 223?
223.1.1.2
223.1.1.4 223.1.2.9
223.1.3.27
223.1.1.3
223.1.2.2
223.1.1.3 223.1.1.3
street . house# 223.1.1.1 223.1.2.1
Smith St . 3
223.1.3.1
223.1.1.4
223.1.2.12
Write IP address
• IP address: 223.1.1.3
subnet mask: 255.255.255.0
223.1.3.11 223.1.3.12
• shorthand: 223.1.1.3/24
is called a subnet
• 223.1.1.0/24 223.1.3.0/24
Subnet mask:
• /24 or 255.255.255.0 subnet mask: /24
Network Layer: Data Plane 4-37
Subnets ?.?.?.?/24 223.1.1.2
• 6 223.1.1.3
subnet address?
• 223.1.1.0/24 223.1.9.2 223.1.7.2
• …
?.?.?.?/24 ?.?.?.?/24
• 223.1.9.0/24
host IP address? 223.1.9.1 ?.?.?.?/24 223.1.7.1
router IP address? 223.1.8.1 223.1.8.2
223.1.2.6 223.1.3.27
?.?.?.?/24
?.?.?.?/24
Network Layer: Data Plane 4-38
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 host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23
DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1
223.1.2.0/24
223.1.3.1 223.1.3.2
223.1.3.0/24
DHCP offer
src: 223.1.2.5, 67
Broadcast: I’m a DHCP
dest: 255.255.255.255, 68
server! Here’s an IP
yiaddrr: 223.1.2.4
address youID:can
transaction 654 use
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
Broadcast: OK. I’ll take
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
that IP address!
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
Broadcast: OK. You’ve
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
got that IPID:
transaction address!
655
lifetime: 3600 secs
DHCP Eth
Phy DNS server: use DHCP
DHCP request encapsulated
DHCP
192.168.1.3
192.168.1.4
192.168.1.2
138.76.29.7
192.168.1.3
data
32 bits
Network Layer: Data Plane 4-56
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
IPv6 datagram
IPv4 datagram
Network Layer: Data Plane 4-58
Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6 IPv6 IPv6
A B C D 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:
IPv6 B-to-C: B-to-C: IPv6
IPv6 inside IPv6 inside
IPv4 IPv4 Network Layer: Data Plane 4-60
Chapter 4: done!
4.1 Overview of Network 4.4 Generalized Forward and
layer: data plane and SDN
control plane • match plus action
4.2 What’s inside a router • OpenFlow example
4.3 IP: Internet Protocol
• datagram format
• fragmentation Question: how do forwarding tables
• IPv4 addressing (destination-based forwarding) or
• NAT flow tables (generalized
• IPv6 forwarding) computed?
Answer: by the control plane (next
chapter)