Professional Documents
Culture Documents
Network Layer:
The Data Plane
§ 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!) Computer Networking:
§ 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
A Top-Down Approach
material. 8th edition
Thanks and enjoy! JFK/KWR
Jim Kurose, Keith Ross
Pearson, 2020
All material copyright 1996-2016
J.F Kurose and K.W. Ross, All Rights Reserved
Network Layer: Data Plane 4-1
Chapter 4: network layer
chapter goals:
§ understand principles behind network layer
services, focusing on data plane:
• network layer service models
• forwarding versus routing
• how a router works
• addressing
• generalized forwarding
§ instantiation, implementation in the Internet
• IP protocol
• NAT
§ Generalized Forwarding and SDN
Network Layer: Data Plane 4-2
The Network Layer
Overview
Transport layer
Analogy: Analogy:
Process of getting through Process of planning trip
single interchange. from source to destination.
Network Layer: Data Plane 4-6
Two key network-layer functions
Interplay between forwarding and routing
Routing:
Determines
Forwarding: end-to-end
Determines local path through
forwarding for this network
router.
IP destination address in
arriving packet’s header
1
3 2
Forwarding:
Determines local
forwarding of this
router.
Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 307)
Routing:
Determines end-to-
Forwarding and Routing
end path through
network. (b) The SDN Approach
A distinct Software-Defined Networking (SDN)
(typically
remote)
controller
interacts with
local control
agents (CAs)
Forwarding:
Determines local
forwarding of this
router.
4-11
Figure: A remote controller determines and distributes values in forwarding tables
Routing:
Determines end-to-
Forwarding and Routing
end path through
network. (b) The SDN Approach
Software-Defined Networking (SDN)
Forwarding:
Determines local
forwarding of this
router.
4-12
Figure: A remote controller determines and distributes values in forwarding tables
Network Service Models
v guaranteed delivery.
v guaranteed delivery with bounded delay (e.g. less
than 40 msec delay).
Internet i. successful
Intserv Guaranteeddatagram
yes delivery to
yesdestination
yes yes
ii. 1633
(RFC timing
) or order of delivery
Internet iii. bandwidth
Diffserv (RFC 2475) available to end-end
possible flow possibly
possibly no
Input Ports
Routing Processor
routing, management
routing control plane (software)
processor operates in millisecond
time frame
forwarding data plane
(hardware) operates
in nanosecond
timeframe
high-speed
switching
fabric
physical layer:
bit-level reception
data link layer: decentralized switching:
e.g., Ethernet § using header field values, lookup output
see chapter 6 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-21
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 (SDN): forward based
on any set of header field values
Network Layer: Data Plane 4-22
Destination-based forwarding
forwarding table
Destination Address Range Link Interface
otherwise 3
Switching Fabrics
memory
input output
port memory port
(e.g., (e.g.,
Ethernet) Ethernet)
system bus
Processor copy
datagram into Memory
Datagram
arrives
• Check Dest
• Lookup FT
Copy datagram
to output port
4-32
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
Datagram
gets switch
label
The correct output port
get it à strip label à
send on its ways
4-34
Switching via interconnection network
(crossbar)
§ overcome bus bandwidth limitations
§ banyan networks, crossbar, other
interconnection nets initially
developed to connect processors in
multiprocessor
§ advanced parallelism design:
§ fragmenting datagram into fixed length crossbar
cells on entry
§ switch cells through the fabric,
reassemble datagram at exit
§ Cisco 12000: switches 60 Gbps
through the interconnection
network
Network Layer: Data Plane 4-35
Switching via interconnection network
(crossbar)
Check
Datagram dest. (Y)
Close A-Y à put
arrives
datagram on bus
Y picks up
datagram
switch switch
fabric fabric
datagram
switch buffer link
fabric layer line
protocol termination
queueing (send)
switch
switch
fabric
fabric
v RTT = 400msec
v TCP flows, N = 16
link layer
physical layer
4-45
IP datagram format IPv4 Datagram Format
20 bytes
4-46
IP fragmentation, reassembly
§ network links have MTU
(max.transfer size) -
largest possible link-level
frame
fragmentation:
…
• different link types, in: one large datagram
different MTUs out: 3 smaller datagrams
4-48
IP fragmentation, reassembly
IP fragmentation, reassembly
Fragment #1 length=1500 ID=777 flag=1 offset=0
4-49
IP fragmentation, reassembly
IP fragmentation, reassembly
Data (1480) + Header (20) =
1500 bytes
Why 1480
not 1500?
offset:
0 0
8
Fragments of ... Fragment 1
1472
same datagram 1480 185
Offset value specified in
units of 8-byte chunks ... Fragment 2
2952
2960 370
... Fragment 3
3980
4-50
Exercise
4-51
Solution
Solution:
What is an IP Address?
❖ IP address is used to identify a host within a network.
▪ are written in a so-called dotted decimal notation
▪ Each byte is identified by a decimal number in the range
[0…255]:
❖ Example:
4-54
IPv4 Addressing
Addresses
❖ IP address: 32-bit
identifier for host, router
interface
❖ Interface: connection
between host/router and
physical link.
▪ router's typically have
multiple interfaces.
A: wired Ethernet
interfaces connected
by Ethernet
switches (Link
Layer)
A: wireless WiFi
interfaces connected
by WiFi base station
(AP – access point)
4-56
IPv4 Addressing – Subnet/Subnetting
4-57
IPv4 Addressing
Subnets
Interconnecting
three host
interfaces and
one router
interface forms
a subnet.
What’s a subnet ?
❖ Subnet or subnetwork is a logical, visible subdivision of an IP
network.
❖ The practice of dividing a network into two or more networks
is called subnetting. 4-58
IPv4 Addressing
Subnets
❖ A subnet is a group of host
identified with having the same
223.1.1.0/24
223.1.2.0/24
portion of their IP address
❖ Example:
❖ 223.1.1.1, 223.1.1.2, 223.1.1.3,
223.1.1.4, …
223.1.1.1, 223.1.1.2, 223.1.1.3,
223.1.3.0/24
223.1.1.4, …
❖ This portion is indicated by the
subnet mask with notation /24
❖ Subnet mask defines the subnet
address Network consisting of 3 subnet addresses
➙ 223.1.1.0/24
4-59
IPv4 Addressing
Subnet Mask
4-60
IPv4 Addressing
Subnet Mask
❖ IP address with w.x.y.z /24 address.
4-61
IPv4 Addressing
Subnet Mask
❖ Each IP address can be divided into network portion and
host portion
▪ Network portion (indicated by subnet mask)
• all host with same network portion are in the same subnet
• these host can physically reach each other without intervening
router
▪ Host portion (the remaining bits à {32 bit – subnet mask })
• The individual (unique) address for a host
▪ Example: 192.64.22.31/24
192 64 22 31
11000000 . 01000000 . 00010110 . 00011111
192.64.22.31/24 192 64 22 31
11000000 . 01000000 . 00010110 . 00011111
192.168.1.10
Network address: 192.168.1.0
192.168.1.[00000000]
192.168.1.[11111111]
Broadcast address: 192.168.1.255
4-64
IPv4 Addressing
Example
Subnets Mask
(a) /8 11111111.00000000.00000000.00000000
255.0.0.0
(b) /16 11111111.11111111.00000000.00000000
255.255.0.0
(c) /24 11111111.11111111.11111111.00000000
255.255.255.0
(d) /25 11111111.11111111.11111111.10000000
255.255.255.128
4-65
IPv4 Addressing
Subnets Mask
To determine subnet address:
Example:
If the subnet mask is
255.255.255.0, define
223. 1 . 1 .4 the subnet address.
AND 255.255.255.0
11011111.00000001.00000001.00000100
(AND) 11111111.11111111.11111111.00000000
11011111.00000001.00000001.00000000
4-66
223.1.1.0/24
IPv4 Addressing
Self-Test
Solutions:
223. 1 .x .y
223.1.3.0/24
AND 255.255.255.0
223.1.2.0/24
4-67
IPv4 Addressing
Example
182.126.103.215/30
178.120.188.96/16
16 bits for the network
portion and 16 bits for
host portion
4-69
Class Exercise
4-70
IPv4 Addressing – Type of Addressing
4-71
How to get an IP address?
Type of Addressing
Classful Classless
( old one) ( current)
4-72
How to get an IP address?
4-73
How to get an IP address?
Classful addressing
4-74
How to get an IP address?
Classful addressing
/8 255.0.0.0
/16 255.255.0.0
/24 255.255.255.0
4-75
How to get an IP address?
Classful addressing
Example:
4-76
How to get an IP address?
Classless Inter Domain Routing (CIDR)
11001000.00010111.00010000.00000000
host
Subnet part
part
Network part
21 bits 11 bits
11111111 11111111 11111 00000000000
192.168.1.0/24 à 11000000.10101000.00000001.00000000
4-81
Example: To subnet a small network
192.168.1.0/24 à 11000000.10101000.00000001.00000000
4-82
Example: To subnet a small network
192.168.1.0/24 à 11000000.10101000.00000001.00000000
Subnet 0: à 11000000.10101000.00000001.00000000
192.168.1.0/26
6 bit left for host
The subnet mask for each subnet
is /26 OR 255.255.255.192
4-83
Example: To subnet a small network
Subnet 0: à 11000000.10101000.00000001.00000000
192.168.1.0/26
4-84
Example: To subnet a small network
Subnet 0: à 11000000.10101000.00000001.00000000
192.168.1.0/26
4-85
Example: To subnet a small network
Subnet 0: à 11000000.10101000.00000001.00000000
192.168.1.0/26
192.168.1.[ 00 000000 ]
.[ 00 111111 ] subnet 0; broadcast address = 192.168.1.63
.[ 01 000000 ]
.[ 01 111111 ] subnet 1; broadcast address = 192.168.1.127
.[ 10 000000 ]
.[ 10 111111 ] subnet 2; broadcast address = 192.168.1.191
.[ 11 000000 ]
.[ 11 111111 ] subnet 3; broadcast address = 192.168.1.255
4-86
Example: To subnet a small network
Subnet 0: à 11000000.10101000.00000001.00000000
192.168.1.0/26
4-87
Example: To subnet a small network
4-88
Self Exercise 4.2
study
A B Given a network with hosts and
interconnecting routers.
C (b) 10.90.2.1
255. 0.0.0
10. 0.0.0
4-91
Self study Solution 4.3
11001000.00010111.00000000.00000000 (200.23.0.0/23)
11001000.00010111.00000010.00000000 (200.23.2.0/23)
11001000.00010111.00000100.00000000 (200.23.4.0/23)
11001000.00010111.00000110.00000000 (200.23.6.0/23)
11001000.00010111.00001000.00000000 (200.23.8.0/23)
11001000.00010111.00001010.00000000 (200.23.10.0/23)
11001000.00010111.00001100.00000000 (200.23.12.0/23)
11001000.00010111.00001110.00000000 (200.23.14.0/23)
4-92
Self study Solution 4.3
Solutions:
(d) 11111111.11111111.11111110.00000000
255.255.254.0
11001000.00010111.00000110.00000000 (200.23.6.0/23)
11001000.00010111.00000110.00000001 (200.23.6.1/23)
11001000.00010111.00000110.00000010 (200.23.6.2/23)
11001000.00010111.00000110.00000011 (200.23.6.3/23)
11001000.00010111.00000110.00000100 (200.23.6.4/23)
11001000.00010111.00000110.00000101 (200.23.6.5/23)
192 . 168 . 1 . 0
11000000 . 10101000.00000001.00000000
NP = 24
bits **when subnetting ONLY HOST PORTION
is borrowed from (disturbed)
4 depts. è 4 subnet
So 2x = 4 è x = 2 bits Borrow 2 bits
4-95
Network address 192.168.1.0/24
to divide into SAME/EQUAL SIZED 4 dept : RND, SALES, FIN, HR
Borrow from
STEP 3 : Borrow 2 bits from the host portion this end – THE
LEFTMOST
192 . 168 . 1 . 0
11000000 . 10101000.00000001.00000000
Within the subnet , the HP
STEP 4 : Arrange the new subnets gets all 0 and all 1
192 . 168 . 1 . 0
11000000 . 10101000.00000001.00000000 [0]
.00111111 [63]
.01000000 [64]
.01111111 [127]
.10000000 [128]
4-96
Network address 192.168.1.0/24
to divide into SAME/EQUAL SIZED 4 dept : RND, SALES, FIN, HR
4-97
Network address 192.168.1.0/24
to divide into SAME/EQUAL SIZED 4 dept : RND, SALES, FIN, HR
S0 (subnet 0)
Usable/valid IP address:
STEP 5 : Assign the new subnets 192.168.1.1 to
192 . 168 . 1 . 0 192.168.1.62
11000000 . 10101000.00000001.00000000 000001
S0 - RND .00111111 111110
4-98
SUBNET NETWORK USABLE/VALID IP BROADCAST SUBNET MASK
ADDRESS ADD. RANGE ADDRESS
0 192.168.1.0 192.168.1.1 – 192.168.1.63 /26 OR
192.168.1.62 255.255.255.192
1 192.168.1.64 192.168.1.65 – 192.168.1.127 /26 OR
192.168.1.126 255.255.255.192
2 192.168.1.128 192.168.1.126 – 192.168.1.191 /26 OR
192.168.1.190 255.255.255.192
3 192.168.1.192 192.168.1.190 – 192.168.1.255 /26 OR
192.168.1.254 255.255.255.192
4-99
Obtaining a block of addresses
4-101
Hierarchical addressing: route aggregation
hierarchical addressing allows efficient advertisement of routing
information:
Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”
Organization 0
200.23.16.0/23
“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23
4-104
Dynamic Host Configuration Protocol
(DHCP)
4-105
Dynamic Host Configuration Protocol
(DHCP)
A newly arriving
host, goes through
the DHCP protocol
four-step process
4-106
DHCP – 4 Steps Process
4-107
DHCP – 4 Steps Process
4-108
DHCP – 4 Steps Process
❖ DHCP request
▪ Client choose from among the offers
▪ Respond to its selected offer with a DHCP request
message.
❖ DHCP ACK
▪ The server responds to the DHCP request message with
a DHCP ACK message, confirming the requested
parameters.
4-109
DHCP – 4 Steps Process
4-110
DHCP client-server scenario
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
DHCP can return more than just allocated
IP address on subnet:
223.1.3.0/24 ▪ 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 4-111
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:
server 0.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
transaction
address youID:can
654 use
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
Broadcast: OK. I’ll take
yiaddrr: 223.1.2.4
that IP address!
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255,
Broadcast: 68
OK. You’ve
yiaddrr: 223.1.2.4
got that IPID:
transaction address!
655
lifetime: 3600 secs
4-112
DHCP: example
DHCP DHCP ❖ connecting laptop needs
DHCP UDP its IP address, addr of
DHCP IP
DHCP Eth
first-hop router, addr of
Phy DNS server: use DHCP
DHCP
❖ DHCP request encapsulated
in UDP, encapsulated in IP,
DHCP DHCP 168.1.1.1 encapsulated in 802.1
DHCP UDP Ethernet
DHCP IP
DHCP Eth router with DHCP
Phy server built into ❖ Ethernet frame broadcast
router (dest: FFFFFFFFFFFF) on LAN,
received at router running
DHCP server
❖ Ethernet demuxed to IP, IP
demuxed to UDP, …last
UDP demuxed to DHCP
Network Layer 4-113
DHCP: example
DHCP DHCP
❖ DHCP 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 response by DHCP
DHCP UDP server, frame forwarded
DHCP IP to client, demuxing up to
Eth router with DHCP
DHCP
Phy
DHCP at client
DHCP
server built into
router
❖ client now knows its IP
address, name and IP
address of DNS server, IP
address of its first-hop
router
request reply
Message type: Boot Request (1) Message type: Boot Reply (2)
Hardware type: Ethernet Hardware type: Ethernet
Hardware address length: 6 Hardware address length: 6
Hops: 0 Hops: 0
Transaction ID: 0x6b3a11b7 Transaction ID: 0x6b3a11b7
Seconds elapsed: 0 Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast) Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0) Client IP address: 192.168.1.101 (192.168.1.101)
Your (client) IP address: 0.0.0.0 (0.0.0.0) Your (client) IP address: 0.0.0.0 (0.0.0.0)
Next server IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 192.168.1.1 (192.168.1.1)
Relay agent IP address: 0.0.0.0 (0.0.0.0) Relay agent IP address: 0.0.0.0 (0.0.0.0)
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a) Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Server host name not given Server host name not given
Boot file name not given Boot file name not given
Magic cookie: (OK) Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP Request Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Option: (61) Client identifier Option: (t=54,l=4) Server Identifier = 192.168.1.1
Length: 7; Value: 010016D323688A; Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Hardware type: Ethernet Option: (t=3,l=4) Router = 192.168.1.1
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a) Option: (6) Domain Name Server
Option: (t=50,l=4) Requested IP Address = 192.168.1.101 Length: 12; Value: 445747E2445749F244574092;
Option: (t=12,l=5) Host Name = "nomad" IP Address: 68.87.71.226;
Option: (55) Parameter Request List IP Address: 68.87.73.242;
Length: 11; Value: 010F03062C2E2F1F21F92B IP Address: 68.87.64.146
1 = Subnet Mask; 15 = Domain Name Option: (t=15,l=20) Domain Name = "hsd1.ma.comcast.net."
3 = Router; 6 = Domain Name Server
44 = NetBIOS over TCP/IP Name Server
……
4-116
Chapter 4: outline
4.1 Overview of Network layer
• data plane
• control plane
4.2 What’s inside a router
input ports, switching, output ports
4.3 IP: Internet Protocol
• datagram format
• fragmentation
• IPv4 addressing
• network address translation (NAT)
• IPv6
4.4 Generalized Forwarding and SDN
4-117
NAT: network address translation
rest of local network
Internet (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-119
NAT: network address translation
implementation: NAT router must:
4-120
NAT: network address translation
NAT translation table 1: host 10.0.0.1
2: NAT router WAN side addr LAN side addr
changes datagram sends datagram to
source addr from 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
10.0.0.1, 3345 to …… ……
138.76.29.7, 5001,
updates table S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.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 10.0.0.1, 3345
§ additional motivation:
• header format helps speed processing/forwarding
• header changes to facilitate QoS
4-124
IPv6 datagram format
priority: identify priority among datagrams in flow
flow Label:
• labeling of packets belonging to particular flows for which the sender
requests special handling
• Example: real-time service, media streaming
• But the real definition of flow is still vague (unclear)
next header: identify upper layer protocol for data
Traffic class:
used to give priority to datagrams
certain datagrams within a flow
datagrams from certain applications (for example, ICMP) over
others
Payload length:
What size of data sent (not including header)
If payload is 4bytes à total datagram size = 40 + 4 = 44 bytes
4-125
IPv6 datagram format
Used to give
priority to certain
datagrams
ver pri flow label
payload len next hdr hop limit
source address
(128 bits)
destination address increased the size of the IP
(128 bits) address from 32 to 128 bits
data
32 bits
Network Layer: Data Plane 4-
126
4-126
IPv6 datagram format and other
changes from IPv4
§ IPv6 datagram format:
• Header : 40-byte fixed-length header è allows faster processing of
the IP datagram
• Fragmentation: NO fragmentation allowed
• options: allowed, but outside of header, indicated by “Next Header” field
• Checksum: NO checksum at Network Layer for faster processing
at each hop à use checksum on Transport Layer
• ICMPv6: new version of ICMP
• additional message types, e.g. “Packet Too Big”
• multicast group management functions
4-127
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
4-128
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
4-129
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
data data
A-to-B: E-to-F:
IPv6 B-to-C: B-to-C: IPv6
IPv6 inside IPv6 inside
IPv4 IPv4 4-130
IPv6: adoption
§ Google: 8% of clients access services via IPv6
§ NIST: 1/3 of all US government domains are IPv6
capable
4-131
Chapter 4: outline
4.1 Overview of Network layer
• data plane
• control plane
4.2 What’s inside a router
input ports, switching, output ports
4.3 IP: Internet Protocol
• datagram format
• fragmentation
• IPv4 addressing
• network address translation (NAT)
• IPv6
4.4 Generalized Forwarding and SDN
4-132
(4.4) Generalized Forwarding and SDN
Overview
This considered as
“match-plus-action”
paradigm.
4-133
Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 353)
Generalized Forwarding and SDN
Overview
Generalized Forwarding:
Each packet switch
contains a match-plus-
action flow table that is
computed and distributed
by a remote controller.
4-134
Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 353)
Generalized Forwarding and SDN
Overview
4-135
Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 353)
OpenFlow: Data Plane Abstraction
* : wildcard
1. src=1.2.*.*, dest=3.4.5.* à drop
2. src = *.*.*.*, dest=3.4.*.* à forward(2)
3. src=10.1.2.3, dest=*.*.*.* à send to controller
4-138
4 OpenFlow: Flow Table Entries
4-139
Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 355)
OpenFlow: Flow Table Entries
Examples 1
Destination-based forwarding:
Action
* * * * * * * 51.6.0.8 * * * * port6
* 22:A7:23:
* * * * * * * * * * port3
11:E1:02
Examples 2
Firewall:
Action
* * * * * * * * * * * 22 Drop
Action
* * * * * * 128.119.1.1 * * * * * Drop
Examples 3
match action
IP Src = 10.3.*.*
forward(3) Host h6 Datagrams from
IP Dst = 10.2.*.* 10.3.0.6 hosts h5 and h6
controller
1 s3 should be sent
2
to h3 or h4, via
3 4
Host h5
s1 and from
10.3.0.5 there to s2
1 s1 1 s2
2 Host h4
4 2 4
10.2.0.4
Host h1 3 3
10.1.0.1
Host h2
10.1.0.2 match action
match action Host h3 ingress port = 2
10.2.0.3 forward(3)
ingress port = 1 IP Dst = 10.2.0.3
IP Src = 10.3.*.* forward(4) ingress port = 2
forward(4)
IP Dst = 10.2.*.* IP Dst = 10.2.0.4
4-142