You are on page 1of 35

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
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
Last class Topics
 Chapter 4
 IPv4 addressing
(continue…)
 DHCP
 NAT

Computer
Networking: A Top
Down Approach
7th edition
Jim Kurose, Keith Ross
Pearson/Addison Wesley
April 2016

Network Layer 3-2


Today’s Topics
 Chapter 4
 SDN data plane
 Chapter 5 Control
plane
 Link state routing
protocol
Computer
Networking: A Top
Down Approach
7th edition
Jim Kurose, Keith Ross
Pearson/Addison Wesley
April 2016

Network Layer 3-3


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

Network Layer: Data Plane 4-4


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 routed among routers along end-
port is forwarded to router 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
3
2
(SDN): implemented in
(remote) servers

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: Control 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: Control Plane 5-7


Generalized Forwarding and SDN
Each router contains a flow table that is computed and distributed by a
logically centralized routing controller
1. src=1.2.*.*, dest=3.4.5.*  drop, counter(5)

logically-centralized routing controller

control plane

data plane
local flow table
headers counters actions

1
0100 1101

3 2
values in arriving
4-8
packet’s header
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
local flow table
headers counters actions

Flow table in a router (computed and distributed by


controller) define router’s match+action rules
Network Layer: Data Plane 4-9
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

* : 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
OpenFlow: Flow Table Entries

Rule/Pattern
Action Stats/counter
Header

Packet + byte counters


1. Forward packet to port(s), (fwd(2)
2. Encapsulate and forward to controller, sendToController
3. Drop packet
4. Send to normal processing pipeline
5. Modify Fields

Switch VLAN MAC MAC Eth IP IP IP TCP TCP


Port ID src dst type Src Dst Prot sport dport

Link layer Network layer Transport layer


Examples
Destination-based forwarding:
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Action
Port src dst type ID Src Dst Prot sport dport
* * * * * * 51.6.0.8 * * * port6
IP datagrams destined to IP address 51.6.0.8
should be forwarded to router output port 6
Firewall:
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Forward
Port src dst type ID Src Dst Prot sport dport
* * * * * * * * * 22 drop
do not forward (block) all datagrams destined to TCP port 22

Switch MAC MAC Eth VLAN IP IP IP TCP TCP


Forward
Port src dst type ID Src Dst Prot sport dport
* * * * drop
do* not forward* (block)
* * *
128.119.1.1
all datagrams sent by host
128.119.1.1
Examples
Destination-based layer 2 (switch) forwarding:
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Action
Port src dst type ID Src Dst Prot sport dport
22:A7:23:
* 11:E1:02 * * * * * * * * port3
layer 2 frames from MAC address
22:A7:23:11:E1:02 should be forwarded to output
port 6

NAT

Switch MAC MAC Eth VLAN IP IP IP TCP TCP


Forward
Port src dst type ID Src Dst Prot sport dport
Modify(srcI=200.1.1.
* * * * * 128.119.1.2
* * * * 1.1, srcPort=5001)
forward all datagrams sent by host 128.119.1.2 by
replacing the source IP with 200.1.1.1, srcPort =5001
Network Layer: Data Plane 4-13
OpenFlow abstraction
 match+action: unifies different kinds of devices
 Router  Firewall
• match: longest • match: IP addresses
destination IP prefix and TCP/UDP port
• action: forward out numbers
a link • action: permit or
 Switch deny
• match: destination  NAT
MAC address • match: IP address
• action: forward or and port
flood • action: rewrite
address and port

Network Layer: Data Plane 4-14


OpenFlow example Example: datagrams from
hosts h5 and h6 should
Src: 10.3.0.6 be sent to h3 or h4, via s1
Dst:10.2.0.4
match action and from there to s2
IP Src = 10.3.*.* Host h6
forward(3)
IP Dst = 10.2.*.* 10.3.0.6
1 s3 controller
2

3 4
Host h5
10.3.0.5
Src: 10.3.0.6
Src: 10.3.0.6 Src: 10.3.0.6 Dst:10.2.0.4
Dst:10.2.0.4 Dst:10.2.0.4
1 s1 1 s2
2 Host h4
4 2 4
Host h1 10.2.0.4
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
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-16
Chapter 5
Network Layer:
The Control 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
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: Control Plane 5-17
Chapter 5: network layer control plane
chapter goals: understand principles behind
network control plane
 traditional routing algorithms
 SDN controlllers
 Internet Control Message Protocol
 network management

and their instantiation, implementation in the Internet:


 OSPF, BGP, OpenFlow, ODL and ONOS
controllers, ICMP, SNMP

Network Layer: Control Plane 5-


18
Chapter 5: outline
5.5 The
5.1 introduction
SDN control plane
5.2 ICMP:
5.6 routing The
protocols
Internet Control Message Protocol
5.7link
Network
state management and SNMP
 distance vector
5.3 intra-AS routing in the Internet: OSPF
5.4 routing among the ISPs: BGP

Network Layer: Control Plane 5-


19
Network-layer functions
Recall: two network-layer functions:
 forwarding: move packets
from router’s input to data plane
appropriate router output
 routing: determine route
taken by packets from source control plane
to destination

Two approaches to structuring network control plane:


 per-router control (traditional)
 logically centralized control (software defined networking)

Network Layer: Control Plane 5-


20
Per-router control plane
Individual routing algorithm components in each and every
router interact with each other in control plane to compute
forwarding tables

Routing
Algorithm
control
plane

data
plane

Network Layer: Control Plane 5-


21
Logically centralized control plane
A distinct (typically remote) controller interacts with local
control agents (CAs) in routers to compute forwarding tables

Remote Controller

control
plane

data
plane

CA
CA CA CA CA

Network Layer: Control Plane 5-


22
Chapter 5: outline
5.5 The
5.1 introduction
SDN control plane
5.2 ICMP:
5.6 routing The
protocols
Internet Control Message Protocol
5.7link state management and SNMP
Network
 distance vector
5.3 intra-AS routing in the Internet: OSPF
5.4 routing among the ISPs: BGP

Network Layer: Control Plane 5-


23
Routing protocols

Routing protocol goal: determine “good”


paths (equivalently, routes), from sending hosts to
receiving host, through network of routers
 path: sequence of routers packets will traverse
in going from given initial source host to given
final destination host
 “good”: least “cost”, “fastest”, “least
congested”
 routing: a “top-10” networking challenge!

Network Layer: Control Plane 5-24


Graph abstraction of the network
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
graph: G = (N,E)

N = set of routers = { u, v, w, x, y, z }

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

aside: graph abstraction is useful in other network contexts, e.g.,


P2P, where N is set of peers and E is set of TCP connections

Network Layer: Control Plane 5-25


Graph abstraction: costs
5
c(x,x’) = cost of link (x,x’)
3 e.g., c(w,z) = 5
v w 5
2
u cost could always be 1, or
2
3
1 z inversely related to bandwidth,
1 2 or inversely related to
x 1
y
congestion

cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

key question: what is the least-cost path between u and z ?


routing algorithm: algorithm that finds that least cost path

Network Layer: Control Plane 5-26


Routing algorithm classification
Q: global or decentralized Q: static or dynamic?
information?
static:
global:
 routes change slowly over
 all routers have complete time
topology, link cost info
dynamic:
 “link state” algorithms
 routes change more
decentralized: quickly
 router knows physically- • periodic update
connected neighbors, link
costs to neighbors • in response to link cost
changes
 iterative process of
computation, exchange of
info with neighbors
 “distance vector” algorithms
Network Layer: Control Plane 5-27
Chapter 5: outline
5.5 The
5.1 introduction
SDN control plane
5.2 ICMP:
5.6 routing The
protocols
Internet Control Message Protocol
5.7link state management and SNMP
Network
 distance vector
5.3 intra-AS routing in the Internet: OSPF
5.4 routing among the ISPs: BGP

Network Layer: Control Plane 5-28


A link-state routing algorithmRouter receives
Broadcast
Packet (Dst:
255.255.255.255
1. Step1:Each node Src: Ipu )
computes its link Dst IP= 255.255.255.255 Accept it
state information, Identifier= 9
TTL = 255
Forward further

LSu{(u,x)=5,
(u,w)=3, (u,v)=7} x
9
LSz{(z,x)=9, (z, y)=2} 5 7
 Step2: Each node 4
8
broadcasts/floods its
3
LS to all nodes in the u w y
2
z
network 3
 Step3: Construct graph 7 4
from LS of all nodes v

Network Layer 4-29


A link-state routing algorithm
 Step4: compute
shortest path
 Dijkstra Algorithm
x
9

5 7
4
8
3 w z
u y
2
3
7 4
v

Network Layer 4-30


Dijkstra’s algorithm: example
D(v) D(w) D(x) D(y) D(z)
Step N' p(v) p(w) p(x) p(y) p(z)
0 u 7,u 3,u 5,u ∞ ∞ D(w)=3
1 uw 6,w 5,u 11, w ∞
2 uwx 6,w 11,w 14,x
3 uwxv 10,v 14,x
4 uwxvy 12,y
5 uwxvyz x
9

notes: 5
4
7
 Step5, construct forwarding
8
table
Destination| next hope| distance 3 w z
u y
w | w |3 2
x |x |5 3
V | w |6 7 4
Y |w | 10 v
z |w | 12 Network Layer: Control Plane 5-31
A link-state routing algorithm
Dijkstra’s algorithm
notation:
 c(x,y):
net topology, link from
link cost costsnode x to y; = ∞ if not direct
neighbors
known to all nodes
 D(v):
• accomplished via “link
current value ofstate
cost of path from source to dest. v
broadcast”
 p(v): predecessor
• all nodes have samenode
info along path from source to v
 N': set of nodes
computes whose
least cost least cost path definitively known
paths
from one node (‘source”)
to all other nodes
• gives forwarding table for
that node
 iterative: after k iterations,
know least cost path to k
dest.’s

Network Layer: Control Plane 5-32


Dijsktra’s algorithm
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'

Network Layer: Control Plane 5-33


Dijkstra’s algorithm: another example
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y

* Check out the online interactive exercises for more


examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Network Layer: Control Plane 5-34
Dijkstra’s algorithm: example (2)
resulting shortest-path tree from u:

v w
u z
x y

resulting forwarding table in u:


destination link
v (u,v)
x (u,x)
y (u,x)
w (u,x)
z (u,x)
Network Layer: Control Plane 5-35

You might also like