You are on page 1of 30

Chapter 5

Network Layer:
The Control Plane (Part
1/3)

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-1
Chapter 5: network layer control plane
chapter goals: understand principles behind network
control plane
▪ traditional routing algorithms
▪ SDN controllers
▪ 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-2


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

Network Layer: Control Plane 5-3


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


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


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


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

Network Layer: Control Plane 5-7


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


Graph abstraction of the network
5

v 3 w
2 5
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) }

Network Layer: Control Plane 5-9


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


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-11
Chapter 5: outline
5.1 introduction 5.5 The SDN control plane
5.2 routing protocols 5.6 ICMP: The Internet
▪ link state Control Message
▪ distance vector Protocol
5.3 intra-AS routing in the 5.7 Network management
Internet: OSPF and SNMP
5.4 routing among the ISPs:
BGP

Network Layer: Control Plane 5-12


A link-state routing Protocol
Dijkstra’s algorithm notation:
▪ network topology, link costs ▪ c(x,y): link cost from node x
known to all nodes to y if x , y are neighbors else
• accomplished via “link state = ∞ if not direct neighbors
broadcast” ▪ D(v): current value of cost of
• all nodes have same info path from source to
▪ computes least cost paths destination v
from one node (‘source”) to ▪ p(v): predecessor node along
all other nodes path from source to v
• gives forwarding table for that ▪ N': set of nodes whose least
node cost path definitively known
▪ iterative: after k iterations,
know least cost path to k
destinations
Network Layer: Control Plane 5-13
Find the shortest Path using Dijkstra algorithm

Network Layer 4-16


Dijkstra’s algorithm: another example
From Source node ‘u’

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

v 3 w
2 5 D(v) = min( D(v), D(w) + c(w,v) )
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-17
Dijkstra’s algorithm: example
resulting shortest-path tree from u:

v w
u z
x y

resulting forwarding table in u:


destination link notes:
❖ construct shortest path tree by
v (u,v) tracing predecessor nodes
x (u,x)
y (u,x)
w (u,x)
z (u,x)
Network Layer: Control Plane 5-18
Dijkstra’s algorithm, discussion
oscillations possible:
▪ e.g., ‘link cost’ = amount of carried traffic:
Possible solution:
▪ Make link cost independent of traffic load
▪ Randomize time of link state advertisement
• prevent the routers from running the routing algorithm simultaneously. If this is not
done carefully, the routers will tend to self-synchronize.

1
A 1+e A A A
2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0
C 0 1 1+e 0
1 C C C
1
e
given these costs, given these costs, given these costs,
initially find new routing…. find new routing…. find new routing….
resulting in new costs resulting in new costs resulting in new costs
Network Layer: Control Plane 5-19
Chapter 5: outline
5.1 introduction 5.5 The SDN control plane
5.2 routing protocols 5.6 ICMP: The Internet
▪ link state Control Message
▪ distance vector Protocol
5.3 intra-AS routing in the 5.7 Network management
Internet: OSPF and SNMP
5.4 routing among the ISPs:
BGP

Network Layer: Control Plane 5-22


Distance vector algorithm
Bellman-Ford equation
let
dx(y) := cost of least-cost path from x to y
then
dx(y) = min {c(x,v) + dv(y) }
v

cost from neighbor v to destination y


cost to neighbor v

min taken over all neighbors v of x


Network Layer: Control Plane 5-23
Bellman-Ford example
clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
5

v 3 w
2 5
u 2 1 z B-F equation says:
3
1
x y 2 dx(y) = minv {c(x,v) + dv(y) }
1
Now using B-F equation:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
node achieving minimum is next
hop in shortest path, used in forwarding table
Network Layer: Control Plane 5-24
Distance vector algorithm
key idea:
▪ from time-to-time, each node sends its own
distance vector estimate to neighbors
▪ when x receives new DV estimate from neighbor,
it updates its own DV using B-F equation:

Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N

❖ under minor, natural conditions, the estimate Dx(y)


converge to the actual least cost dx(y)

Network Layer: Control Plane 5-26


y
2 1
node x cost to cost to
table x y z x y z x z
7
x 0 2 7 x

from
from

y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0

node y cost to
table x y z
x ∞ ∞ ∞
from

y 2 0 1
z ∞∞ ∞

node z cost to
table x y z
x ∞∞ ∞
from

y ∞∞ ∞
z 7 1 0
time
Network Layer: Control Plane 5-28
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to
table x y z x y z
x 0 2 7 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0

node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
from

y 2 0 1 7
z ∞∞ ∞

node z cost to
table x y z
x ∞∞ ∞
from

y ∞∞ ∞
z 7 1 0
time
Network Layer: Control Plane 5-30
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x cost to cost to = min{2+1 , 7+0} = 3
table x y z x y z
x 0 2 7 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0

node y cost to cost to


table x y z x y z
x ∞ ∞ ∞ x 0 2 7 y
2 1
from

from

y 2 0 1 y 2 0 1
z ∞∞ ∞ z 7 1 0 x z
7

node z cost to cost to


table x y z x y z

x ∞∞ ∞ x 0 2 7
from

y 2 0 1
from

y ∞∞ ∞
z 7 1 0 z 3 1 0
time
Dz(x) = min{c(z,x) + Dx(x), c(z,y) + Dy(x)} Dz(y) = min{c(x,z) + Dx(y), c(z,y) + Dy(y)}
= min{7+0 , 1+2} = 3 = min{7+2 , 1+0} = 1
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x cost to cost to cost to = min{2+1 , 7+0} = 3
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1

from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 y
2 1
from

from

y 2 0 1 y 2 0 1

from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
x z
7

node z cost to cost to cost to


table x y z x y z x y z

x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from
y 2 0 1 y 2 0 1
from

y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Dz(x) = min{c(z,x) + Dx(x), c(z,y) + Dy(x)} Dz(y) = min{c(x,z) + Dx(y), c(z,y) + Dy(y)}
= min{7+0 , 1+2} = 3 = min{7+2 , 1+0} = 1
Distance vector: link cost changes
link cost changes: 1
❖ node detects local link cost change y
4 1
❖ updates routing info, recalculates x z
distance vector 50
❖ if DV changes, notify neighbors

“good t0 : y detects link-cost change, updates its DV, informs its


news neighbors.
travels t1 : z receives update from y, updates its table, computes new
fast” least cost to x , sends its neighbors its DV.

t2 : y receives z’s update, updates its distance table. y’s least costs
do not change, so y does not send a message to z.

* Check out the online interactive exercises for more


examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Network Layer: Control Plane 5-36
Distance vector: link cost changes

Network Layer 4-37


Distance vector: Poisoned Reverse
60
y
4 1
x z
50

Network Layer 4-38


Comparison of LS and DV algorithms
▪ LS: robustness: what happens if
• suffers from ‘oscillation router malfunctions?
problem’
• A lot of advertisements have
LS:
to be flooded to the network • node can advertise incorrect
▪ DV: link cost
• suffers from count-to-infinity • each node computes only its
problem own table
• Takes time in convergence DV:
• DV node can advertise
incorrect path cost
• each node’s table used by
others
• error propagate thru
network

Network Layer: Control Plane 5-41


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

Network Layer: Control Plane 5-42

You might also like