Network Layer: The Data Plane

Содержание

Слайд 2

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 3

Chapter 4: network layer chapter goals: understand principles behind network layer

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

4-

Network Layer: Data Plane

Слайд 4

Network layer transport segment from sending to receiving host on sending

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

4-

Network Layer: Data Plane

Слайд 5

Two key network-layer functions network-layer functions: forwarding: move packets from router’s

Two key network-layer functions

network-layer functions:
forwarding: move packets from router’s input to

appropriate router output
routing: determine route taken by packets from source to destination
routing algorithms

analogy: taking a trip
forwarding: process of getting through single interchange

routing: process of planning trip from source to destination

4-

Network Layer: Data Plane

Слайд 6

Network layer: data plane, control plane Data plane local, per-router function

Network layer: data plane, control plane

Data plane
local, per-router function
determines how datagram

arriving on router input port is forwarded to router output port
forwarding function

Control plane
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

4-

Network Layer: Data Plane

Слайд 7

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

Per-router control plane

Individual routing algorithm components in each and every router

interact in the control plane

5-

Network Layer: Control Plane

1

2

values in arriving
packet header

3

Слайд 8

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

Logically centralized control plane

A distinct (typically remote) controller interacts with local

control agents (CAs)

5-

Network Layer: Control Plane

values in arriving
packet header

Слайд 9

Network service model Q: What service model for “channel” transporting datagrams

Network service model

Q: What service model for “channel” transporting datagrams from

sender to receiver?

example services for individual datagrams:
guaranteed delivery
guaranteed delivery with less than 40 msec delay

example services for a flow of datagrams:
in-order datagram delivery
guaranteed minimum bandwidth to flow
restrictions on changes in inter-packet spacing

4-

Network Layer: Data Plane

Слайд 10

Network layer service models: Network Architecture Internet ATM ATM ATM ATM

Network layer service models:

Network
Architecture
Internet
ATM
ATM
ATM
ATM

Service
Model
best effort
CBR
VBR
ABR
UBR

Bandwidth
none
constant
rate
guaranteed
rate
guaranteed
minimum
none

Loss
no
yes
yes
no
no

Order
no
yes
yes
yes
yes

Timing
no
yes
yes
no
no

Congestion
feedback
no (inferred
via loss)
no
congestion
no
congestion
yes
no

Guarantees ?

4-

Network Layer: Data

Plane
Слайд 11

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 12

Router architecture overview routing processor router input ports router output ports

Router architecture overview

routing
processor

router input ports

router output ports

forwarding data plane (hardware)

operttes in nanosecond timeframe

routing, management
control plane (software)
operates in millisecond
time frame

high-level view of generic router architecture:

4-

Network Layer: Data Plane

Слайд 13

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

line
termination

link
layer
protocol
(receive)

lookup,
forwarding
queueing

Input port functions

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

physical layer:
bit-level reception

data link layer:
e.g., Ethernet
see chapter 5

switch
fabric

4-

Network Layer: Data Plane

Слайд 14

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

line
termination

link
layer
protocol
(receive)

lookup,
forwarding
queueing

Input port functions

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

physical layer:
bit-level reception

data link layer:
e.g., Ethernet
see chapter 5

switch
fabric

4-

Network Layer: Data Plane

Слайд 15

Destination Address Range 11001000 00010111 00010000 00000000 through 11001000 00010111 00010111

Destination Address Range
11001000 00010111 00010000 00000000
through
11001000 00010111 00010111 11111111
11001000 00010111

00011000 00000000
through
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000
through
11001000 00010111 00011111 11111111
otherwise

Link Interface
0
1
2
3

Q: but what happens if ranges don’t divide up so nicely?

Destination-based forwarding

forwarding table

4-

Network Layer: Data Plane

Слайд 16

Longest prefix matching Destination Address Range 11001000 00010111 00010*** ********* 11001000

Longest prefix matching

Destination Address Range
11001000 00010111 00010*** *********
11001000 00010111

00011000 *********
11001000 00010111 00011*** *********
otherwise

DA: 11001000 00010111 00011000 10101010

examples:

DA: 11001000 00010111 00010110 10100001

which interface?

which interface?

when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address.

longest prefix matching

Link interface
0
1
2
3

4-

Network Layer: Data Plane

Слайд 17

Longest prefix matching we’ll see why longest prefix matching is used

Longest prefix matching

we’ll see why longest prefix matching is used shortly,

when we study addressing
longest prefix matching: often performed using ternary content addressable memories (TCAMs)
content addressable: present address to TCAM: retrieve address in one clock cycle, regardless of table size
Cisco Catalyst: can up ~1M routing table entries in TCAM

4-

Network Layer: Data Plane

Слайд 18

Switching fabrics transfer packet from input buffer to appropriate output buffer

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

4-

Network Layer: Data Plane

Слайд 19

Switching via memory first generation routers: traditional computers with switching under

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)

4-

Network Layer: Data Plane

Слайд 20

Switching via a bus datagram from input port memory to output

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 speed for access and enterprise routers

bus

4-

Network Layer: Data Plane

Слайд 21

Switching via interconnection network overcome bus bandwidth limitations banyan networks, crossbar,

Switching via interconnection network

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, switch cells through the fabric.
Cisco 12000: switches 60 Gbps through the interconnection network

4-

Network Layer: Data Plane

Слайд 22

Input port queuing fabric slower than input ports combined -> queueing

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

output port contention:
only one red datagram can be transferred. lower red packet is blocked

switch
fabric

4-

Network Layer: Data Plane

Слайд 23

Output ports buffering required when datagrams arrive from fabric faster than

Output ports

buffering required when datagrams arrive from fabric faster than the

transmission rate
scheduling discipline chooses among queued datagrams for transmission

line
termination

link
layer
protocol
(send)

switch
fabric

This slide in HUGELY important!

Datagram (packets) can be lost due to congestion, lack of buffers

Priority scheduling – who gets best performance, network neutrality

4-

Network Layer: Data Plane

Слайд 24

Output port queueing buffering when arrival rate via switch exceeds output

Output port queueing

buffering when arrival rate via switch exceeds output line

speed
queueing (delay) and loss due to output port buffer overflow!

4-

Network Layer: Data Plane

Слайд 25

How much buffering? RFC 3439 rule of thumb: average buffering equal

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

4-

Network Layer: Data Plane

Слайд 26

Scheduling mechanisms scheduling: choose next packet to send on link FIFO

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

queue
(waiting area)

packet
arrivals

packet
departures

link
(server)

4-

Network Layer: Data Plane

Слайд 27

Scheduling policies: priority priority scheduling: send highest priority queued packet multiple

Scheduling policies: priority

priority scheduling: send highest priority queued packet
multiple classes,

with different priorities
class may depend on marking or other header info, e.g. IP source/dest, port numbers, etc.
real world example?

arrivals

departures

packet in service

4-

Network Layer: Data Plane

Слайд 28

Scheduling policies: still more Round Robin (RR) scheduling: multiple classes cyclically

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?

4-

Network Layer: Data Plane

Слайд 29

Weighted Fair Queuing (WFQ): generalized Round Robin each class gets weighted

Weighted Fair Queuing (WFQ):
generalized Round Robin
each class gets weighted amount

of service in each cycle
real-world example?

Scheduling policies: still more

4-

Network Layer: Data Plane

Слайд 30

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 31

The Internet network layer host, router network layer functions: routing protocols

The Internet network layer

host, router network layer functions:

routing protocols
path selection

RIP, OSPF, BGP

ICMP protocol
error reporting
router “signaling”

transport layer: TCP, UDP

link layer

physical layer

network
layer

4-

Network Layer: Data Plane

Слайд 32

IP datagram format how much overhead? 20 bytes of TCP 20

IP datagram format

how much overhead?
20 bytes of TCP
20 bytes of IP
=

40 bytes + app layer overhead

4-

Network Layer: Data Plane

Слайд 33

IP fragmentation, reassembly network links have MTU (max.transfer size) - largest

IP fragmentation, reassembly

network links have MTU (max.transfer size) - largest possible

link-level frame
different link types, different MTUs
large IP datagram divided (“fragmented”) within net
one datagram becomes several datagrams
“reassembled” only at final destination
IP header bits used to identify, order related fragments

fragmentation:
in: one large datagram
out: 3 smaller datagrams

4-

Network Layer: Data Plane

Слайд 34

example: 4000 byte datagram MTU = 1500 bytes 1480 bytes in

example:
4000 byte datagram
MTU = 1500 bytes

1480 bytes in data field

offset =
1480/8


IP fragmentation, reassembly

4-

Network Layer: Data Plane

Слайд 35

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 36

IP addressing: introduction IP address: 32-bit identifier for host, router interface

IP addressing: introduction

IP address: 32-bit identifier for host, router interface
interface:

connection between host/router and physical link
router’s typically have multiple interfaces
host typically has one or two interfaces (e.g., wired Ethernet, wireless 802.11)
IP addresses associated with each interface

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2

223.1.3.1

223.1.1.1 = 11011111 00000001 00000001 00000001

223

1

1

1

4-

Network Layer: Data Plane

Слайд 37

IP addressing: introduction Q: how are interfaces actually connected? A: we’ll

IP addressing: introduction

Q: how are interfaces actually connected?
A: we’ll learn about

that in chapter 5, 6.

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2

223.1.3.1

For now: don’t need to worry about how one interface is connected to another (with no intervening router)

4-

Network Layer: Data Plane

Слайд 38

Subnets IP address: subnet part - high order bits host part

Subnets

IP address:
subnet part - high order bits
host part - low

order bits
what’s a subnet ?
device interfaces with same subnet part of IP address
can physically reach each other without intervening router

network consisting of 3 subnets

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.9

223.1.3.2

223.1.3.1

223.1.1.2

223.1.3.27

223.1.2.2

223.1.2.1

4-

Network Layer: Data Plane

Слайд 39

recipe to determine the subnets, detach each interface from its host

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

subnet mask: /24

Subnets

4-

Network Layer: Data Plane

Слайд 40

how many? 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.2 223.1.2.1 223.1.2.6 223.1.3.2 223.1.3.1 223.1.3.27

how many?

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.2

223.1.2.1

223.1.2.6

223.1.3.2

223.1.3.1

223.1.3.27

223.1.1.2

223.1.7.0

223.1.7.1

223.1.8.0

223.1.8.1

223.1.9.1

223.1.9.2

Subnets

4-

Network Layer: Data Plane

Слайд 41

IP addressing: CIDR CIDR: Classless InterDomain Routing subnet portion of address

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

11001000 00010111 00010000 00000000

subnet
part

host
part

200.23.16.0/23

4-

Network Layer: Data Plane

Слайд 42

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

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”

4-

Network Layer: Data Plane

Слайд 43

DHCP: Dynamic Host Configuration Protocol goal: allow host to dynamically obtain

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

4-

Network Layer: Data Plane

Слайд 44

DHCP client-server scenario 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.9 223.1.3.2

DHCP client-server scenario

223.1.1.0/24

223.1.2.0/24

223.1.3.0/24

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.9

223.1.3.2

223.1.3.1

223.1.1.2

223.1.3.27

223.1.2.2

223.1.2.1

DHCP
server

arriving DHCP
client needs
address in this
network

4-

Network Layer: Data Plane

Слайд 45

DHCP server: 223.1.2.5 arriving client DHCP client-server scenario 4- Network Layer: Data Plane

DHCP server: 223.1.2.5

arriving
client

DHCP client-server scenario

4-

Network Layer: Data Plane

Слайд 46

DHCP: more than IP addresses DHCP can return more than just

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)

4-

Network Layer: Data Plane

Слайд 47

connecting laptop needs its IP address, addr of first-hop router, addr

connecting laptop needs its IP address, addr of first-hop router, addr

of DNS server: use DHCP

router with DHCP
server built into
router

DHCP request encapsulated in UDP, encapsulated in IP, encapsulated in 802.1 Ethernet

Ethernet frame broadcast (dest: FFFFFFFFFFFF) on LAN, received at router running DHCP server

Ethernet demuxed to IP demuxed, UDP demuxed to DHCP

168.1.1.1

DHCP: example

4-

Network Layer: Data Plane

Слайд 48

DCP server formulates DHCP ACK containing client’s IP address, IP address

DCP server formulates DHCP ACK containing client’s IP address, IP address

of first-hop router for client, name & IP address of DNS server

encapsulation of DHCP server, frame forwarded to client, demuxing up to DHCP at client

DHCP: example

router with DHCP
server built into
router

client now knows its IP address, name and IP address of DSN server, IP address of its first-hop router

4-

Network Layer: Data Plane

Слайд 49

DHCP: Wireshark output (home LAN) Message type: Boot Reply (2) Hardware

DHCP: Wireshark output (home LAN)

Message type: Boot Reply (2)
Hardware type: Ethernet
Hardware

address length: 6
Hops: 0
Transaction ID: 0x6b3a11b7
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 192.168.1.101 (192.168.1.101)
Your (client) 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)
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Option: (t=54,l=4) Server Identifier = 192.168.1.1
Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Option: (t=3,l=4) Router = 192.168.1.1
Option: (6) Domain Name Server
Length: 12; Value: 445747E2445749F244574092;
IP Address: 68.87.71.226;
IP Address: 68.87.73.242;
IP Address: 68.87.64.146
Option: (t=15,l=20) Domain Name = "hsd1.ma.comcast.net."

reply

Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x6b3a11b7
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
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)
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)
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP Request
Option: (61) Client identifier
Length: 7; Value: 010016D323688A;
Hardware type: Ethernet
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Option: (t=50,l=4) Requested IP Address = 192.168.1.101
Option: (t=12,l=5) Host Name = "nomad"
Option: (55) Parameter Request List
Length: 11; Value: 010F03062C2E2F1F21F92B
1 = Subnet Mask; 15 = Domain Name
3 = Router; 6 = Domain Name Server
44 = NetBIOS over TCP/IP Name Server
……

request

4-

Network Layer: Data Plane

Слайд 50

IP addresses: how to get one? Q: how does network get

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

4-

Network Layer: Data Plane

Слайд 51

Hierarchical addressing: route aggregation “Send me anything with addresses beginning 200.23.16.0/20”

Hierarchical addressing: route aggregation

“Send me anything
with addresses
beginning
200.23.16.0/20”

Fly-By-Night-ISP

Organization 0

Organization 7

Internet

Organization

1

ISPs-R-Us

“Send me anything
with addresses
beginning
199.31.0.0/16”

Organization 2

hierarchical addressing allows efficient advertisement of routing
information:

4-

Network Layer: Data Plane

Слайд 52

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

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

“Send me anything
with

addresses
beginning
200.23.16.0/20”

Fly-By-Night-ISP

Organization 0

Organization 7

Internet

Organization 1

ISPs-R-Us

“Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23”

Organization 2

Hierarchical addressing: more specific routes

4-

Network Layer: Data Plane

Слайд 53

IP addressing: the last word... Q: how does an ISP get

IP addressing: the last word...

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

4-

Network Layer: Data Plane

Слайд 54

NAT: network address translation 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 138.76.29.7 local network

NAT: network address translation

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

local network
(e.g., home network)
10.0.0/24

rest of
Internet

datagrams with source or


destination in this network
have 10.0.0/24 address for
source, destination (as usual)

all datagrams leaving local
network have same single source NAT IP address: 138.76.29.7,different source port numbers

4-

Network Layer: Data Plane

Слайд 55

motivation: local network uses just one IP address as far as

motivation: local network uses just one IP address as far as

outside world is concerned:
range of addresses not needed from ISP: just one IP address for all devices
can change addresses of devices in local network without notifying outside world
can change ISP without changing addresses of devices in local network
devices inside local net not explicitly addressable, visible by outside world (a security plus)

NAT: network address translation

4-

Network Layer: Data Plane

Слайд 56

implementation: NAT router must: outgoing datagrams: replace (source IP address, port

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

NAT: network address translation

4-

Network Layer: Data Plane

Слайд 57

10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 138.76.29.7 NAT translation table WAN side addr

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

NAT translation table
WAN side addr LAN side addr

138.76.29.7, 5001 10.0.0.1, 3345
……

……

3: reply arrives
dest. address:
138.76.29.7, 5001

4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345

NAT: network address translation

4-

Network Layer: Data Plane

* Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/

Слайд 58

16-bit port-number field: 60,000 simultaneous connections with a single LAN-side address!

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?

NAT: network address translation

4-

Network Layer: Data Plane

Слайд 59

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 60

IPv6: motivation initial motivation: 32-bit address space soon to be completely

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

4-

Network Layer: Data Plane

Слайд 61

IPv6 datagram format priority: identify priority among datagrams in flow flow

IPv6 datagram format

priority: identify priority among datagrams in flow
flow Label: identify

datagrams in same “flow.”
(concept of“flow” not well defined).
next header: identify upper layer protocol for data

data

destination address
(128 bits)

source address
(128 bits)

payload len

next hdr

hop limit

flow label

pri

ver

32 bits

4-

Network Layer: Data Plane

Слайд 62

Other changes from IPv4 checksum: removed entirely to reduce processing time

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

4-

Network Layer: Data Plane

Слайд 63

Transition from IPv4 to IPv6 not all routers can be upgraded

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 source, dest addr

IPv4 header fields

IPv4 datagram

IPv6 datagram

4-

Network Layer: Data Plane

Слайд 64

Tunneling physical view: IPv4 IPv4 C D 4- Network Layer: Data Plane

Tunneling

physical view:

IPv4

IPv4

C

D

4-

Network Layer: Data Plane

Слайд 65

physical view: C D Tunneling IPv4 IPv4 4- Network Layer: Data Plane

physical view:

C

D

Tunneling

IPv4

IPv4

4-

Network Layer: Data Plane

Слайд 66

IPv6: adoption Google: 8% of clients access services via IPv6 NIST:

IPv6: adoption

Google: 8% of clients access services via IPv6
NIST: 1/3 of

all US government domains are IPv6 capable
Long (long!) time for deployment, use
20 years and counting!
think of application-level changes in last 20 years: WWW, Facebook, streaming media, Skype, …
Why?

4-

Network Layer: Data Plane

Слайд 67

4.1 Overview of Network layer data plane control plane 4.2 What’s

4.1 Overview of Network layer
data plane
control plane
4.2 What’s inside a router
4.3

IP: Internet Protocol
datagram format
fragmentation
IPv4 addressing
network address translation
IPv6

4.4 Generalized Forward and SDN
match
action
OpenFlow examples of match-plus-action in action

Chapter 4: outline

4-

Network Layer: Data Plane

Слайд 68

Generalized Forwarding and SDN 2 3 0100 1101 values in arriving

Generalized Forwarding and SDN

2

3

0100 1101

values in arriving
packet’s header

1

control plane

data plane

Each router

contains a flow table that is computed and distributed by a logically centralized routing controller

4-

Network Layer: Data Plane

Слайд 69

OpenFlow data plane abstraction flow: defined by header fields generalized forwarding:

OpenFlow data plane abstraction

flow: defined by header fields
generalized forwarding: simple packet-handling

rules
Pattern: match values in packet header fields
Actions: for matched packet: drop, forward, modify, matched packet or send matched packet to controller
Priority: disambiguate overlapping patterns
Counters: #bytes and #packets

Flow table in a router (computed and distributed by controller) define router’s match+action rules

4-

Network Layer: Data Plane

Слайд 70

OpenFlow data plane abstraction flow: defined by header fields generalized forwarding:

OpenFlow data plane abstraction

flow: defined by header fields
generalized forwarding: simple packet-handling

rules
Pattern: match values in packet header fields
Actions: for matched packet: drop, forward, modify, matched packet or send matched packet to controller
Priority: disambiguate overlapping patterns
Counters: #bytes and #packets

src=1.2.*.*, dest=3.4.5.* ? drop
src = *.*.*.*, dest=3.4.*.* ? forward(2)
3. src=10.1.2.3, dest=*.*.*.* ? send to controller

* : wildcard

Слайд 71

OpenFlow: Flow Table Entries Switch Port MAC src MAC dst Eth

OpenFlow: Flow Table Entries

Switch
Port

MAC
src

MAC
dst

Eth
type

VLAN
ID

IP
Src

IP
Dst

IP
Prot

TCP
sport

TCP
dport

Rule

Action

Stats

Forward packet to port(s)
Encapsulate and forward to controller
Drop

packet
Send to normal processing pipeline
Modify Fields

Packet + byte counters

Link layer

Network layer

Transport layer

Слайд 72

Destination-based forwarding: * * * * * * 51.6.0.8 * *

Destination-based forwarding:

*

*

*

*

*

*

51.6.0.8

*

*

*

port6

Examples

IP datagrams destined to IP address 51.6.0.8 should be forwarded

to router output port 6

*

*

*

*

*

*

*

*

*

22

drop

Firewall:

do not forward (block) all datagrams destined to TCP port 22

*

*

*

*

*

128.119.1.1

*

*

*

*

drop

do not forward (block) all datagrams sent by host 128.119.1.1

Слайд 73

Destination-based layer 2 (switch) forwarding: * * * * * *

Destination-based layer 2 (switch) forwarding:

*

*

*

*

*

*

*

*

*

port3

Examples

layer 2 frames from MAC address 22:A7:23:11:E1:02

should be forwarded to output port 6

22:A7:23:
11:E1:02

4-

Network Layer: Data Plane

Слайд 74

OpenFlow abstraction Router match: longest destination IP prefix action: forward out

OpenFlow abstraction

Router
match: longest destination IP prefix
action: forward out a link
Switch
match: destination

MAC address
action: forward or flood

Firewall
match: IP addresses and TCP/UDP port numbers
action: permit or deny
NAT
match: IP address and port
action: rewrite address and port

match+action: unifies different kinds of devices

4-

Network Layer: Data Plane

Слайд 75

OpenFlow example Host h1 10.1.0.1 Host h2 10.1.0.2 Host h4 10.2.0.4

OpenFlow example

Host h1
10.1.0.1

Host h2
10.1.0.2

Host h4
10.2.0.4

Host h3
10.2.0.3

Host h5
10.3.0.5

s1

s2

s3

1

2

3

4

1

2

3

4

1

2

3

4

Host h6
10.3.0.6

Example: datagrams from hosts

h5 and h6 should be sent to h3 or h4, via s1 and from there to s2