Network Layer: The Data Plane: Computer Networking: A Top Down Approach

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 61

Chapter 4

Network Layer:
The Data Plane
Adapted by RenPing.Liu@uts.edu.au
1 September 2019

A note on the use of these Powerpoint slides:


We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs.
They obviously represent a lot of work on our part. In return for use, we only
ask the following: Computer
 If you use these slides (e.g., in a class) that you mention their source
(after all, we’d like people to use our book!)
Networking: A Top
 If you post any slides on a www site, that you note that they are adapted
from (or perhaps identical to) our slides, and note our copyright of this
Down Approach
material.
7th edition
Thanks and enjoy! JFK/KWR
Jim Kurose, Keith Ross
All material copyright 1996-2016 Pearson/Addison Wesley
J.F Kurose and K.W. Ross, All Rights Reserved April 2016
Network Layer: Data Plane 4-1
Chapter 4: outline
4.1 Overview of Network 4.4 Generalized Forward and
layer SDN
• data plane • match
• control plane • action
4.2 What’s inside a router • OpenFlow examples
4.3 IP: Internet Protocol of match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-2


Network layer
application

 transport segment from transport


network

sending to receiving host data link


physical
network network

 on sending side network


data link
data link
physical
data link
physical

encapsulates segments physical network


data link
network
data link

into datagrams physical physical

 on receiving side, delivers network


data link
network
data link

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

in every host, router data link


physical
physical physical

 router examines header


fields in all IP datagrams
passing through it
Network Layer: Data Plane 4-3
Two key network-layer functions
Trip: Forster  Orange

network-layer functions: analogy: taking a trip


routing: determine route  routing: process of
taken by packets from planning trip from source
source to destination to destination
• routing algorithms  forwarding: process of
forwarding: move packets getting through single
from router’s input to interchange
appropriate router output

Network Layer: Data Plane 4-4


Network layer: data plane, control plane
Control plane Data plane
 network-wide logic  local, per-router function
 determines how datagram is  determines how datagram
routed among routers along arriving on router input
end-end path from source host port is forwarded to
to destination host router output port
 two control-plane approaches:  forwarding function
• traditional routing algorithms:
implemented in routers values in arriving
packet header
• software-defined networking
(SDN): implemented in 0111 1

(remote) servers 3
2

Network Layer: Data Plane 4-5


Per-router control plane
Individual routing algorithm components in each and every
router interact in the control plane

Routing
Algorithm
control
plane

data
plane

values in arriving
packet header
0111 1
2
3

Network Layer: Data Plane 5-6


Logically centralized control plane
A distinct (typically remote) controller interacts with local
control agents (CAs)

Remote Controller

control
plane

data
plane

CA
CA CA CA CA
values in arriving
packet header

0111 1
2
3

Network Layer: Data Plane 5-7


Network service model
Q: What service model for “channel” transporting
datagrams from sender to receiver?
example services for example services for a flow
individual datagrams: of datagrams:
 guaranteed delivery  in-order datagram
 guaranteed delivery with delivery
less than 40 msec delay  guaranteed minimum
bandwidth to flow
 restrictions on changes in
inter-packet spacing

Network Layer: Data Plane 4-8


Network layer service models:
Guarantees ?
Network Service Congestion
Architecture Model Bandwidth Loss Order Timing feedback

Internet best effort none no no no no (inferred


via loss)
ATM CBR constant yes yes yes no
rate congestion
ATM VBR guaranteed yes yes yes no
rate congestion
ATM ABR guaranteed no yes no yes
minimum
ATM UBR none no yes no no

Network Layer: Data Plane 4-9


Chapter 4: outline
4.1 Overview of Network 4.4 Generalized Forward and
layer SDN
• data plane • match
• control plane • action
4.2 What’s inside a router • OpenFlow examples
4.3 IP: Internet Protocol of match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-10


Router architecture overview
 high-level view of generic router architecture:
 Four parts:
1. routing processor Software
2. Input ports
3. Switching fabrics Hardware
routing, management
4. Output ports control plane (software)
1. routing operates in millisecond
processor time frame
forwarding data plane
(hardware) operates
in nanosecond
3. high-seed
switching
timeframe
fabric

2. router input ports 4. router output ports

Network Layer: Data Plane 4-11


Input port functions
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing

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

Network Layer: Data Plane 4-13


Input port queuing
 fabric slower than input ports combined -> queueing may
occur at input queues
• queueing delay and loss due to input buffer overflow!
 Head-of-the-Line (HOL) blocking: queued datagram at front
of queue prevents others in queue from moving forward

switch switch
fabric fabric

output port contention: one packet time later:


only one red datagram can be green packet
transferred. experiences HOL
lower red packet is blocked blocking

Network Layer: Data Plane 4-14


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
 three types of switching fabrics

memory

memory bus crossbar

Network Layer: Data Plane 4-15


Switching via memory
first generation routers:
 traditional computers with switching under direct control
of CPU
 packet copied to system’s memory
 speed limited by memory bandwidth (2 bus crossings per
datagram)

input output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)

system bus

Network Layer: Data Plane 4-16


Switching via a bus
 datagram from input port memory
to output port memory via a
shared bus
 bus contention: switching speed
limited by bus bandwidth
 32 Gbps bus, Cisco 5600: sufficient bus
speed for access and enterprise
routers

Network Layer: Data Plane 4-17


Switching via interconnection network
(crossbar)
 overcome bus bandwidth limitations
 banyan networks, crossbar, other
interconnection nets initially
developed to connect processors in
multiprocessor
 advanced design: fragmenting
datagram into fixed length cells, crossbar
switch cells through the fabric.
 Cisco 12000: switches 60 Gbps
through the interconnection
network

Network Layer: Data Plane 4-18


Output port queueing

switch
switch
fabric
fabric

at t, packets more one packet time later


from input to output

 buffering when arrival rate via switch exceeds


output line speed
 queueing (delay) and loss due to output port buffer
overflow!
Network Layer: Data Plane 4-19
Output ports

datagram
switch buffer link
fabric layer line
protocol termination
queueing (send)

 buffering required when datagrams


Datagram arrive
(packets) can be lost
from fabric faster than the
due to transmission
congestion, lack of buffers
rate
 scheduling discipline chooses
Priority among
scheduling – who queued
gets best
datagrams for transmission
performance, network neutrality

Network Layer: Data Plane 4-20


How much buffering?
 RFC 3439 rule of thumb: average buffering equal
to “typical” RTT (say 250 msec) times link
capacity C
• e.g., C = 10 Gpbs link: 2.5 Gbit buffer
 recent recommendation: with N flows, buffering
equal to
RTT . C
N

Network Layer: Data Plane 4-21


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 packet
arrivals queue link departures
(waiting area) (server)

Network Layer: Data Plane 4-22


Scheduling policies: priority
priority scheduling: send
high priority queue
(waiting area)
highest priority arrivals departures
queued packet
 multiple classes, with classify link
different priorities low priority queue
(server)
(waiting area)
• class may depend on
marking or other 2
5
header info, e.g. IP arrivals
1 3 4

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?

Network Layer: Data Plane 4-24


Scheduling policies: still more
Weighted Fair Queuing (WFQ):
 generalized Round Robin
 each class gets weighted amount of service in
each cycle
 real-world example? RTA, medicare: true round robin,
or WFQ?

Network Layer: Data Plane 4-25


Chapter 4: outline
4.1 Overview of Network 4.4 Generalized Forward and
layer SDN
• data plane • match
• control plane • action
4.2 What’s inside a router • OpenFlow examples
4.3 IP: Internet Protocol of match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-26


The Internet network layer
host, router network layer functions:

transport layer: TCP, UDP

routing protocols IP protocol


• path selection • addressing conventions
• RIP, OSPF, BGP • datagram format
network • packet handling conventions
layer forwarding
table
ICMP protocol
• error reporting
• router “signaling”

link layer

physical layer

Network Layer: Data Plane 4-27


IP datagram format
32 bits total datagram
length (bytes)
ver head. type of length
len service for
fragment fragmentation/
16-bit identifier flgs
offset reassembly
time to upper header IP header:
live layer checksum 20 bytes
32 bit source IP address check header only?

32 bit destination IP address 4B src IP addr


how much overhead?
options (if any)
 20B TCP hdr + 20B IP hdr
4B dst IP
= addr
40B overhead
data  8B UDP hdr + 20B IP hdr
(variable length, = 28B overhead
typically a TCP
or UDP segment)

Network Layer: Data Plane 4-28


IP fragmentation, reassembly
 network links have MTU
(max.transfer size) -
largest possible link-level fragmentation:
frame


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

1480 bytes in length ID fragflag offset


data field =1500 =x =1 =0

offset = length ID fragflag offset


1480/8 =1500 =x =1 =185

length ID fragflag offset


=1040 =x =0 =370

Network Layer: Data Plane 4-30


Chapter 4: outline
4.1 Overview of Network 4.4 Generalized Forward and
layer SDN
• data plane • match
• control plane • action
4.2 What’s inside a router • OpenFlow examples
4.3 IP: Internet Protocol of match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-31


host IP address
223.1.10.5 = 11011111 00000001 00001010 00000101
 IP address: 32-bit, 4-byte 223 1 10 5
identifier for host, router
interface
223.1.10.5
 interface: connection
between host/router and 223.1.1.4 223.1.2.9
physical link
• host typically has one or two
interfaces (e.g., wired 223.1.3.27
Ethernet, wireless 802.11)
• router’s typically have
multiple interfaces
 One IP address for each
interface

Network Layer: Data Plane 4-32


IP address: decimal  binary
223.1.10.5 = 11011111 00000001 00001010 00000101

223 1 10 5

1. Write down binary table:


7 6 5 4 3 2 1 0 i

128 64 32 16 8 4 2 1 2i

2. convert 10 to binary: 10-8=2; 2-2=0. (deduct numbers: high to low)


3. 0 0 0 0 1 0 1 0

2. converting 100 to binary: deduct numbers: high to low


100 - 64 = 36; 36 - 32 = 4; 4 - 4 = 0

3. 0 1 1 0 0 1 0 0 Try 223?

Network Layer: Data Plane 4-33


Subnets
223.1.1.1
Q: how are interfaces
actually connected?
223.1.2.1

223.1.1.2
223.1.1.4 223.1.2.9

223.1.3.27
223.1.1.3
223.1.2.2

A: wired Ethernet interfaces


connected by Ethernet switches
223.1.3.1 223.1.3.2

A: we’ll learn about that in chapter 5, 6.


For now: don’t need to worry
about how one interface is
A: wireless WiFi interfaces
connected to another (with no
connected by WiFi base station
intervening router)
Network Layer: Data Plane 4-34
Subnets in networks
 IP address: 223.1.1.1
• subnet part - high order
bits 223.1.1.2 223.1.2.1
223.1.1.4 223.1.2.9
• host part - low order
bits 223.1.2.2
 what’s a subnet ? 223.1.1.3 223.1.3.27

• device interfaces with subnet


same subnet part of IP
address 223.1.3.1 223.1.3.2

• can physically reach


each other without
intervening router network consisting of 3 subnets

Network Layer: Data Plane 4-35


Subnets
223.1.1.2

 subnet . host# 223.1.2.11

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

Network Layer: Data Plane 4-36


Subnets
223.1.1.0/24
223.1.2.0/24
recipe 223.1.1.1

 to determine the 223.1.1.2 223.1.2.1


subnets, detach each 223.1.1.4 223.1.2.9

interface from its host 223.1.2.2


or router, creating 223.1.1.3 223.1.3.27

islands of isolated subnet


networks
 each isolated network 223.1.3.1 223.1.3.2

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

 how many subnets? 223.1.1.1 223.1.1.4

• 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

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

?.?.?.?/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

Network Layer: Data Plane 4-39


IP addresses: how to get one?
Q: how does network get subnet part of IP addr?
A: gets allocated portion of its provider ISP’s address
space

Q: how does an ISP get block of addresses?


A: ICANN: Internet Corporation for Assigned
Names and Numbers http://www.icann.org/
• allocates addresses
• manages DNS
• assigns domain names, resolves disputes

Network Layer: Data Plane 4-40


IP addresses: how to get one?
Q: How does a host get IP address?

 hard-coded by system admin in a file


• 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”

Network Layer: Data Plane 4-41


DHCP: Dynamic Host Configuration Protocol
goal: allow host to dynamically obtain its IP address from network
server when it joins network
• can renew its lease on address in use
• allows reuse of addresses (only hold address while
connected/“on”)
• support for mobile users who want to join network (more
shortly)
DHCP overview:
• host broadcasts “DHCP discover” msg [optional]
• DHCP server responds with “DHCP offer” msg [optional]
• host requests IP address: “DHCP request” msg
• DHCP server sends address: “DHCP ack” msg

Network Layer: Data Plane 4-42


DHCP client-server scenario

DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1

223.1.1.2 arriving DHCP


223.1.1.4 223.1.2.9
client needs
address in this
223.1.3.27
223.1.2.2 network
223.1.1.3

223.1.2.0/24

223.1.3.1 223.1.3.2

223.1.3.0/24

Network Layer: Data Plane 4-43


DHCP client-server scenario
DHCP server: 223.1.2.5 DHCP discover arriving
client
src : 0.0.0.0, 68
Broadcast: is there a
dest.: 255.255.255.255,67
DHCPyiaddr:
server0.0.0.0
out there?
transaction ID: 654

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

Network Layer: Data Plane 4-44


DHCP: more than IP addresses
DHCP can return more than just allocated IP
address on subnet:
• address of first-hop router for client
• name and IP address of DNS sever
• network mask (indicating network versus host portion
of address)

Network Layer: Data Plane 4-45


DHCP: example
DHCP DHCP  connecting laptop needs
DHCP UDP its IP address, addr of
IP
first-hop router, addr of
DHCP

DHCP Eth
Phy DNS server: use DHCP
 DHCP request encapsulated
DHCP

in UDP, encapsulated in IP,


DHCP DHCP 168.1.1.1 encapsulated in 802.1
DHCP UDP Ethernet
IP
 Ethernet frame broadcast
DHCP

DHCP Eth router with DHCP


Phy server built into (dest: FFFFFFFFFFFF) on LAN,
router received at router running
DHCP server
 Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP

Network Layer: Data Plane 4-46


DHCP: example
DHCP DHCP  DCP server formulates
DHCP UDP DHCP ACK containing
DHCP IP client’s IP address, IP
DHCP Eth address of first-hop
Phy router for client, name &
IP address of DNS server
 encapsulation of DHCP
DHCP DHCP server, frame forwarded
DHCP UDP to client, demuxing up to
DHCP IP DHCP at client
DHCP Eth router with DHCP
DHCP
Phy server built into  client now knows its IP
router address, name and IP
address of DSN server, IP
address of its first-hop
router

Network Layer: Data Plane 4-47


NAT: network address translation
motivation: Run out of public IP addresses! local network
uses just one IP address as far as outside world is
concerned:
 Use one public IP address to the outside
 assigned by ISP
 Use private IP addresses internally
 10.0.0.0/8 Class Private IP address range Subnet mask
 172.16-31.0.0/16 A 10.0.0.0 - 10.255.255.255 255.0.0.0
 192.168.0-255.0/24 B 172.16.0.0 - 172.16.31.255 255.255.0.0
C 192.168.0.0-192.168.255.255 255.255.255.0

Network Layer: Data Plane 4-48


Private IP Address
local network
Internet
(e.g., campus, home network)
public IP address:
private IP address:
138.76.29.7 192.168.1.1
192.168.1.0/24
192.168.1.4
192.168.1.2
138.76.29.7

192.168.1.3

• Private IP address is free!


• Cannot go to public Internet

Network Layer: Data Plane 4-49


NAT: network address translation
rest of local network
Internet (e.g., campus, home network)
192.168.1.0/24 192.168.1.1

192.168.1.4
192.168.1.2
138.76.29.7

192.168.1.3

all datagrams leaving local datagrams with source or


network have same single destination in this network
source NAT IP address: have 192.168.1.0/24 address for
138.76.29.7,different source source, destination (as usual)
port numbers
Network Layer: Data Plane 4-50
NAT: network address translation
implementation: NAT router must:

 outgoing datagrams: replace (source IP address, port #) of


every outgoing datagram to (NAT IP address, new port #)
. . . remote clients/servers will respond using (NAT IP
address, new port #) as destination addr

 remember (in NAT translation table) every (source IP address,


port #) to (NAT IP address, new port #) translation pair

 incoming datagrams: replace (NAT IP address, new port #) in


dest fields of every incoming datagram with corresponding
(source IP address, port #) stored in NAT table

Network Layer: Data Plane 4-51


NAT: network address translation
NAT translation table 1: host 192.168.1.1
2: NAT router WAN side addr LAN side addr
changes datagram sends datagram to
source addr from 138.76.29.7, 5001 192.168.1.1, 3345 128.119.40.186, 80
192.168.1.1, 3345 to …… ……
138.76.29.7, 5001,
updates table S: 192.168.1.1, 3345
D: 128.119.40.186, 80
192.168.1.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 192.168.1.4
192.168.1.2
138.76.29.7 S: 128.119.40.186, 80
D: 192.168.1.1, 3345
4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 192.168.1.3
4: NAT router
3: reply arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 192.168.1.1, 3345

* Check out the online interactive exercises for more


examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Network Layer: Data Plane 4-52
NAT: network address translation
 16-bit port-number field:
• 60,000 simultaneous connections with a single
LAN-side address!
 NAT is controversial:
• routers should only process up to layer 3
• address shortage should be solved by IPv6
• violates end-to-end argument
• NAT possibility must be taken into account by app
designers, e.g., P2P applications
• NAT traversal: what if client wants to connect
to server behind NAT?
Network Layer: Data Plane 4-53
Chapter 4: outline
4.1 Overview of Network 4.4 Generalized Forward and
layer SDN
• data plane • match
• control plane • action
4.2 What’s inside a router • OpenFlow examples
4.3 IP: Internet Protocol of match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-54


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

IPv6 datagram format:


• fixed-length 40 byte header
• IPv6 address: 128 bits, 16 bytes
• no fragmentation allowed

Network Layer: Data Plane 4-55


IPv6 datagram format
IPv6 Address: 16 bytes 128 bits
priority: identify priority among datagrams in flow
flow Label: identify datagrams in same “flow.”
next header: identify upper layer protocol for data
ver pri flow label
payload len next hdr hop limit
source address IPv6 header:
(128 bits) 40 Bytes
destination address
(128 bits)

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

Network Layer: Data Plane 4-57


Transition from IPv4 to IPv6
 not all routers can be upgraded simultaneously
• no “flag days”
• how will network operate with mixed IPv4 and
IPv6 routers?
 tunneling: IPv6 datagram carried as payload in IPv4
datagram among IPv4 routers
IPv4 header fields IPv6 header fields
IPv4 payload
IPv4 source, dest addr IPv6 source dest addr
UDP/TCP payload

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

Network Layer: Data Plane 4-59


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

flow: X src:B src:B flow: X


src: A dest: E src: A
dest: F
dest: E
dest: F
Flow: X Flow: X
Src: A Src: A
data Dest: F Dest: F data

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)

Network Layer: Data Plane 4-61

You might also like