0% found this document useful (0 votes)
40 views41 pages

cn chapter 4

Chapter 4 focuses on the network layer and its data plane, detailing the functions of forwarding and routing, as well as the structure and operation of routers. It covers key concepts such as IP addressing, fragmentation, and the differences between traditional routing and software-defined networking (SDN). The chapter also discusses network service models and the process of obtaining IP addresses through methods like DHCP.

Uploaded by

Awais Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views41 pages

cn chapter 4

Chapter 4 focuses on the network layer and its data plane, detailing the functions of forwarding and routing, as well as the structure and operation of routers. It covers key concepts such as IP addressing, fragmentation, and the differences between traditional routing and software-defined networking (SDN). The chapter also discusses network service models and the process of obtaining IP addresses through methods like DHCP.

Uploaded by

Awais Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Chapter 4

Network Layer:
The Data Plane

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
material.
Down Approach
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
• control plane
4.3 IP: Internet Protocol
• datagram format
• fragmentation
• IPv4 addressing
• network address
translation

Network Layer: Data Plane 4-2


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
• generalized forwarding
▪ instantiation, implementation in the Internet

Network Layer: Data Plane 4-3


Network layer
▪ transport segment from
application
transport
network
data link
sending to receiving host 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
physical physical
segments to transport network
data link

layer physical
application

▪ network layer protocols


network transport
data link network network
network physical data link 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-4
Two key network-layer functions

network-layer functions: analogy: taking a trip


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

Network Layer: Data Plane 4-5


Network layer: data plane, control plane

Data plane Control plane


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

Network Layer: Data Plane 4-6


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

Routing
Algorith
control
m
plane

data
plan
e

values in arriving
packet header
0111 1
2
3

Network Layer: Control Plane 5-7


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

Remote Controller

control
plane

data
plan
e
C
A
CA CA CA CA
values in arriving
packet header

0111 1
2
3

Network Layer: Control Plane 5-8


Network service model
Q: What service model for “channel” transporting
datagrams from sender to receiver?
example services for example services for a
individual datagrams: flow 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-9


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-10


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

Network Layer: Data Plane 4-11


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

Network Layer: Data Plane 4-12


IP datagram format
IP protocol version 32 bits
number total datagram
header length type of length (bytes)
ver head. length
(bytes) len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper header
remaining hops live layer checksum
(decremented at
32 bit source IP address
each router)
32 bit destination IP address
upper layer protocol
to deliver payload to options (if any) e.g. timestamp,
record route
how much overhead? data taken, specify
(variable length, list of routers
❖ 20 bytes of TCP
typically a TCP to visit.
❖ 20 bytes of IP
or UDP segment)
❖ = 40 bytes + app
layer overhead

Network Layer: Data Plane 4-13


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-14
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-15


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 of
4.3 IP: Internet Protocol match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-16


IP addressing: introduction
223.1.1.1

▪ IP address: 32-bit 223.1.2.1


identifier for host, router
interface 223.1.1.2

▪ interface: connection
223.1.1.4 223.1.2.9

between host/router and 223.1.3.27


physical link 223.1.1.3
223.1.2.2
• router’s typically have
multiple interfaces
• host typically has one or
223.1.3.1 223.1.3.2
two interfaces (e.g., wired
Ethernet, wireless 802.11)
▪ IP addresses associated
with each interface 223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1

Network Layer: Data Plane 4-17


IP addressing: introduction
223.1.1.1

Q: how are interfaces 223.1.2.1


actually connected?
A: we’ll learn about that223.1.1.2 223.1.1.4 223.1.2.9

in chapter 5, 6.
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

For now: don’t need to worry


about how one interface is
connected to another (with no
A: wireless WiFi interfaces
intervening router)
connected by WiFi base station

Network Layer: Data Plane 4-18


Subnets
▪ 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-19


Subnets
223.1.1.0/24
223.1.2.0/24
223.1.1.1
recipe
▪ 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.3.0/24

subnet mask: /24


Network Layer: Data Plane 4-20
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.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Network Layer: Data Plane 4-21


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-22


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->properti
es
• UNIX: /etc/rc.config
▪ DHCP: Dynamic Host Configuration Protocol:
dynamically get address from as server
• “plug-and-play”

Network Layer: Data Plane 4-23


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-24


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.1.3 223.1.3.27
223.1.2.2 network

223.1.2.0/24

223.1.3.1 223.1.3.2

223.1.3.0/24

Network Layer: Data Plane 4-25


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!
yiaddrr:Here’s an IP
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

Network Layer: Data Plane 4-26


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-27


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 request encapsulated
DHCP

in UDP, encapsulated in IP,


DHCP DHCP 168.1.1.1 encapsulated in 802.1
DHCP UDP Ethernet
▪ Ethernet frame broadcast
DHCP IP
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-28


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-29


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

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23


Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Network Layer: Data Plane 4-30


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”

Network Layer: Data Plane 4-31


Hierarchical addressing: more specific routes

ISPs-R-Us has a more specific route to Organization 1

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

Network Layer: Data Plane 4-32


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

all datagrams leaving local datagrams with source or


network have same single destination in this network
source NAT IP address: have 10.0.0/24 address for
138.76.29.7,different source source, destination (as usual)
port numbers
Network Layer: Data Plane 4-33
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-34


NAT: network address translation
NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr sends datagram to
changes datagram
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

* Check out the online interactive exercises for more


examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Network Layer: Data Plane 4-35
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-36


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 of
4.3 IP: Internet Protocol match-plus-action in
• datagram format action
• fragmentation
• IPv4 addressing
• network address
translation
• IPv6

Network Layer: Data Plane 4-37


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
• no fragmentation allowed

Network Layer: Data Plane 4-38


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-39


Generalized Forwarding and SDN
Each router contains a flow table that is computed and
distributed by a logically centralized routing controller

logically-centralized routing controller

control plane

data plane
local flow table
headers counters actions

1
0100 1101

3 2
values in arriving
packet’s header
Network Layer: Data Plane 4-40
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
• IPv4 addressing tables (destination-based
• NAT forwarding) or flow tables
• IPv6 (generalized forwarding)
computed?
Answer: by the control plane (next
chapter)
Network Layer: Data Plane 4-41

You might also like