SlideShare a Scribd company logo
Computer Networking: A
Top-Down Approach
8th
edition
Jim Kurose, Keith Ross
Pearson, 2020
Chapter 5
Network Layer:
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:
๏‚ง 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!)
๏‚ง 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.
For a revision history, see the slide note for this page.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2023
J.F Kurose and K.W. Ross, All Rights Reserved
Network layer control plane: our goals
๏‚งunderstand principles
behind network control
plane:
โ€ข traditional routing algorithms
โ€ข SDN controllers
โ€ข network management,
configuration
๏‚ง instantiation, implementation
in the Internet:
โ€ข OSPF, BGP
โ€ข OpenFlow, ODL and ONOS
controllers
โ€ข Internet Control Message
Protocol: ICMP
โ€ข SNMP, YANG/NETCONF
Network Layer: 5-2
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚งintroduction
๏‚ง routing protocols
๏‚ง link state
๏‚ง distance vector
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-3
Two approaches to structuring network control plane:
๏‚ง per-router control (traditional)
๏‚ง logically centralized control (software defined networking)
Network-layer functions
Network Layer: 5-4
๏‚ง forwarding: move packets from routerโ€™s
input to appropriate router output data plane
control plane
๏‚ง routing: determine route taken by
packets from source to destination
Per-router control plane
Individual routing algorithm components in each and every
router interact in the control plane
Routing
Algorithm
data
plane
control
plane
1
2
0111
values in arriving
packet header
3
Network Layer: 5-5
Software-Defined Networking (SDN) control plane
Remote controller computes, installs forwarding tables in routers
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1
2
0111
3
values in arriving
packet header
Network Layer: 5-6
Per-router
control plane
SDN control
plane
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚งrouting protocols
๏‚ง link state
๏‚ง distance vector
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-8
Routing protocol goal: determine โ€œgoodโ€
paths (equivalently, routes), from sending
hosts to receiving host, through network of
routers
๏‚ง path: sequence of routers packets
traverse from given initial source host to
final destination host
๏‚ง โ€œgoodโ€: least โ€œcostโ€, โ€œfastestโ€, โ€œleast
congestedโ€
๏‚ง routing: a โ€œtop-10โ€ networking challenge!
Routing protocols mobile network
enterprise
network
national or global ISP
datacenter
network
application
transport
network
link
physical
application
transport
network
link
physical
network
link
physical
network
link
physical
network
link
physical
network
link
physical network
link
physical
Network Layer: 5-9
Graph abstraction: link costs
Network Layer: 5-10
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
graph: G = (N,E)
ca,b: cost of direct link connecting a and b
e.g., cw,z = 5, cu,z = โˆž
cost defined by network operator:
could always be 1, or inversely related
to bandwidth, or inversely related to
congestion
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) }
Routing algorithm classification
Network Layer: 5-11
global or decentralized information?
global: all routers have complete
topology, link cost info
โ€ข โ€œlink stateโ€ algorithms
decentralized: iterative process of
computation, exchange of info with neighbors
โ€ข routers initially only know link costs to
attached neighbors
โ€ข โ€œdistance vectorโ€ algorithms
How fast
do routes
change?
dynamic: routes change
more quickly
โ€ข periodic updates or in
response to link cost
changes
static: routes change
slowly over time
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚งrouting protocols
๏‚ง link state
๏‚ง distance vector
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-12
Dijkstraโ€™s link-state routing algorithm
Network Layer: 5-13
๏‚ง centralized: network topology, link
costs known to all nodes
โ€ข accomplished via โ€œlink state
broadcastโ€
โ€ข all nodes have same info
๏‚ง computes least cost 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 destinations
๏‚ง cx,y: direct link cost from node
x to y; = โˆž if not direct
neighbors
๏‚ง D(v): current estimate of cost
of least-cost-path from source
to destination v
๏‚ง p(v): predecessor node along
path from source to v
๏‚ง N': set of nodes whose least-
cost-path definitively known
notation
Dijkstraโ€™s link-state routing algorithm
Network Layer: 5-14
1 Initialization:
2 N' = {u} /* compute least cost path from u to all other nodes */
3 for all nodes v
4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */
5 then D(v) = cu,v /* but may not be minimum cost! */
6 else D(v) = โˆž
7
8 Loop
9
10
11
12
13
14
15 until all nodes in N'
find w not in N' such that D(w) is a minimum
add w to N'
update D(v) for all v adjacent to w and not in N' :
D(v) = min ( D(v), D(w) + cw,v )
/* new least-path-cost to v is either old least-cost-path to v or known
least-cost-path to w plus direct-cost from w to v */
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
v w x y z
Initialization (step 0):
For all a: if a adjacent to u then D(a) = cu,a
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
โˆž
2,x
4,x
2,u
D(v) = min ( D(v), D(x) + cx,v ) = min(2, 1+2) = 2
D(w) = min ( D(w), D(x) + cx,w ) = min (5, 1+3) = 4
D(y) = min ( D(y), D(x) + cx,y ) = min(inf,1+1) = 2
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
4,y
3,y
2,u
D(w) = min ( D(w), D(y) + cy,w ) = min (4, 2+1) = 3
D(z) = min ( D(z), D(y) + cy,z ) = min(inf,2+2) = 4
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
D(w) = min ( D(w), D(v) + cv,w ) = min (3, 2+3) = 3
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
D(z) = min ( D(z), D(w) + cw,z ) = min (4, 3+5) = 4
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
uxyvwz
Dijkstraโ€™s algorithm: an example
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
D(w),p(w)
5,u โˆž
โˆž
1,u
2,u
u
8 Loop
9
10
11
find a not in N' such that D(a) is a minimum
add a to N'
ux
v w x y z
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
โˆž
2,x
4,x
2,u
uxy 4,y
3,y
2,u
uxyv 4,y
3,y
uxyvw 4,y
uxyvwz
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
Dijkstraโ€™s algorithm: an example
Network Layer: 5-27
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
u
y
x
w
v
z
resulting least-cost-path tree from u: resulting forwarding table in u:
v
x
y
w
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destination outgoing link
route from u to v directly
route from u to all
other destinations
via x
Dijkstraโ€™s algorithm: another example
Network Layer: 5-28
w
3
4
v
x
u
5
3
7 4
y
8
z
2
7
9
Step N'
D(v),
p(v)
0
1
2
3
4
5
D(w),
p(w)
D(x),
p(x)
D(y),
p(y)
D(z),
p(z)
u โˆž
โˆž
7,u 3,u 5,u
uw โˆž
11,w
6,w 5,u
14,x
11,w
6,w
uwx
uwxv 14,x
10,v
uwxvy 12,y
notes:
๏‚ง construct least-cost-path tree by tracing predecessor nodes
๏‚ง ties can exist (can be broken arbitrarily)
uwxvyz
v w x y z
Dijkstraโ€™s algorithm: discussion
Network Layer: 5-29
algorithm complexity: n nodes
๏‚ง each of n iteration: need to check all nodes, w, not in N
๏‚ง n(n+1)/2 comparisons: O(n2
) complexity
๏‚ง more efficient implementations possible: O(nlogn)
message complexity:
๏‚ง each router must broadcast its link state information to other n routers
๏‚ง efficient (and interesting!) broadcast algorithms: O(n) link crossings to disseminate a
broadcast message from one source
๏‚ง each routerโ€™s message crosses O(n) links: overall message complexity: O(n2
)
Dijkstraโ€™s algorithm: oscillations possible
Network Layer: 5-30
๏‚ง when link costs depend on traffic volume, route oscillations possible
a
d
c
b
1 1+e
e
0
e
1
1
0 0
initially
a
d
c
b
given these costs,
find new routingโ€ฆ.
resulting in new costs
2+e 0
0
0
1+e 1
a
d
c
b
given these costs,
find new routingโ€ฆ.
resulting in new costs
0 2+e
1+e
1
0 0
a
d
c
b
given these costs,
find new routingโ€ฆ.
resulting in new costs
2+e 0
0
0
1+e 1
๏‚ง sample scenario:
โ€ข routing to destination a, traffic entering at d, c, e with rates 1, e (<1), 1
โ€ข link costs are directional, and volume-dependent
e
1 1
e
1 1
e
1 1
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚งrouting protocols
๏‚ง link state
๏‚ง distance vector
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-31
Based on Bellman-Ford (BF) equation (dynamic programming):
Distance vector algorithm
Network Layer: 5-32
Let Dx(y): cost of least-cost path from x to y.
Then:
Dx(y) = minv { cx,v + Dv(y) }
Bellman-Ford equation
min taken over all neighbors v of x
vโ€™s estimated least-cost-path cost to y
direct cost of link from x to v
Bellman-Ford Example
Network Layer: 5-33
u
y
z
2
2
1
3
1
1
2
5
3
5
Suppose that uโ€™s neighboring nodes, x,v,w, know that for destination z:
Du(z) = min { cu,v + Dv(z),
cu,x + Dx(z),
cu,w + Dw(z) }
Bellman-Ford equation says:
Dv(z) = 5
v
Dw(z) = 3
w
Dx(z) = 3
x
= min {2 + 5,
1 + 3,
5 + 3} = 4
node achieving minimum (x) is
next hop on estimated least-
cost path to destination (z)
Distance vector algorithm
Network Layer: 5-34
key idea:
๏‚ง from time-to-time, each node sends its own distance vector estimate to
neighbors
๏‚ง under minor, natural conditions, the estimate Dx
(y) converge to the
actual least cost dx(y)
Dx
(y) โ† minv
{cx,v + Dv
(y)} for each node y โˆŠ N
๏‚ง when x receives new DV estimate from any neighbor, it updates its
own DV using B-F equation:
Distance vector algorithm:
Network Layer: 5-35
iterative, asynchronous: each local
iteration caused by:
๏‚ง local link cost change
๏‚ง DV update message from neighbor
wait for (change in local link
cost or msg from neighbor)
each node:
distributed, self-stopping: each
node notifies neighbors only when
its DV changes
๏‚ง neighbors then notify their
neighbors โ€“ only if necessary
๏‚ง no notification received, no
actions taken!
recompute DV estimates using
DV received from neighbor
if DV to any destination has
changed, notify neighbors
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = โˆž
Da(d) = 1
Da(e) = โˆž
Da(f) = โˆž
Da(g) = โˆž
Da(h) = โˆž
Da(i) = โˆž
Distance vector: example
Network Layer: 5-36
g h i
1 1
1 1 1
1 1
1 1
8 1
t=0
๏‚ง All nodes have
distance estimates
to nearest
neighbors (only)
A few asymmetries:
๏‚ง missing link
๏‚ง larger cost
d e f
a b c
๏‚ง All nodes send
their local
distance vector to
their neighbors
Distance vector example: iteration
Network Layer: 5-37
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=1
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
Distance vector example: iteration
Network Layer: 5-38
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=1
compute compute compute
compute compute compute
compute compute compute
Distance vector example: iteration
Network Layer: 5-39
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=1
Distance vector example: iteration
Network Layer: 5-40
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=2
Distance vector example: iteration
Network Layer: 5-41
g h i
1 1
1 1 1
1 1
8 1
2 1
d e f
a b c
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=2
compute compute compute
compute compute compute
compute compute compute
Distance vector example: iteration
Network Layer: 5-42
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
All nodes:
๏‚ง receive distance
vectors from
neighbors
๏‚ง compute their new
local distance
vector
๏‚ง send their new
local distance
vector to neighbors
t=2
Distance vector example: iteration
Network Layer: 5-43
โ€ฆ. and so on
Letโ€™s next take a look at the iterative computations at nodes
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = โˆž
Da(d) = 1
Da(e) = โˆž
Da(f) = โˆž
Da(g) = โˆž
Da(h) = โˆž
Da(i) = โˆž
Distance vector example: computation
Network Layer: 5-44
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = โˆž
Db(g) = โˆž
Db(h) = โˆž
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = โˆž
Db(e) = 1
๏‚ง b receives DVs
from a, c, e
a b c
d e f
DV in c:
Dc(a) = โˆž
Dc(b) = 1
Dc(c) = 0
Dc(d) = โˆž
Dc(e) = โˆž
Dc(f) = โˆž
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = โˆž
DV in e:
De(a) = โˆž
De(b) = 1
De(c) = โˆž
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = โˆž
De(h) = 1
De(i) = โˆž
Distance vector example: computation
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = โˆž
Da(d) = 1
Da(e) = โˆž
Da(f) = โˆž
Da(g) = โˆž
Da(h) = โˆž
Da(i) = โˆž
DV in b:
Db(f) = โˆž
Db(g) = โˆž
Db(h) = โˆž
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = โˆž
Db(e) = 1
DV in c:
Dc(a) = โˆž
Dc(b) = 1
Dc(c) = 0
Dc(d) = โˆž
Dc(e) = โˆž
Dc(f) = โˆž
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = โˆž
DV in e:
De(a) = โˆž
De(b) = 1
De(c) = โˆž
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = โˆž
De(h) = 1
De(i) = โˆž
Network Layer: 5-45
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
๏‚ง b receives DVs
from a, c, e,
computes:
a b c
d e f
DV in b:
Db(f) =2
Db(g) = โˆž
Db(h) = 2
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = 2
Db(e) = 1
e
compute
b
Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,โˆž,โˆž} = 8
Db(c) = min{cb,a+Da(c), cb,c +Dc(c), cb,e +De(c)} = min{โˆž,1,โˆž} = 1
Db(d) = min{cb,a+Da(d), cb,c +Dc(d), cb,e +De(d)} = min{9,2,โˆž} = 2
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), cb,e +De(f)} = min{โˆž,โˆž,2} = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), cb,e+De(i)} = min{โˆž,โˆž, โˆž} = โˆž
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), cb,e+De(h)} = min{โˆž,โˆž, 2} = 2
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), cb,e +De(e)} = min{โˆž,โˆž,1} = 1
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), cb,e+De(g)} = min{โˆž,โˆž, โˆž} = โˆž
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = โˆž
Da(d) = 1
Da(e) = โˆž
Da(f) = โˆž
Da(g) = โˆž
Da(h) = โˆž
Da(i) = โˆž
Distance vector example: computation
Network Layer: 5-46
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = โˆž
Db(g) = โˆž
Db(h) = โˆž
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = โˆž
Db(e) = 1
๏‚ง c receives DVs
from b
a b c
d e f
DV in c:
Dc(a) = โˆž
Dc(b) = 1
Dc(c) = 0
Dc(d) = โˆž
Dc(e) = โˆž
Dc(f) = โˆž
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = โˆž
DV in e:
De(a) = โˆž
De(b) = 1
De(c) = โˆž
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = โˆž
De(h) = 1
De(i) = โˆž
Distance vector example: computation
Network Layer: 5-47
g h i
1 1
8 1
t=1
DV in b:
Db(f) = โˆž
Db(g) = โˆž
Db(h) = โˆž
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = โˆž
Db(e) = 1
๏‚ง c receives DVs
from b computes:
a b c
d e f
DV in c:
Dc(a) = โˆž
Dc(b) = 1
Dc(c) = 0
Dc(d) = โˆž
Dc(e) = โˆž
Dc(f) = โˆž
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = โˆž
Dc(a) = min{cc,b+Db(a}} = 1 + 8 = 9
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(d) = min{cc,b+Db(d)} = 1+ โˆž = โˆž
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2
Dc(f) = min{cc,b+Db(f)} = 1+ โˆž = โˆž
Dc(g) = min{cc,b+Db(g)} = 1+ โˆž = โˆž
Dc(i) = min{cc,b+Db(i)} = 1+ โˆž = โˆž
Dc(h) = min{cbc,b+Db(h)} = 1+ โˆž = โˆž
DV in c:
Dc(a) = 9
Dc(b) = 1
Dc(c) = 0
Dc(d) = 2
Dc(e) = โˆž
Dc(f) = โˆž
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = โˆž
compute
* Check out the online interactive
exercises for more examples:
http://gaia.cs.umass.edu/kurose_ross/interactive/
Distance vector example: computation
Network Layer: 5-48
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = โˆž
Db(g) = โˆž
Db(h) = โˆž
Db(i) = โˆž
Db(a) = 8
Db(c) = 1
Db(d) = โˆž
Db(e) = 1
๏‚ง e receives DVs
from b, d, f, h
a b c
DV in f:
Dc(a) = โˆž
Dc(b) = โˆž
Dc(c) = โˆž
Dc(d) = โˆž
Dc(e) = 1
Dc(f) = 0
Dc(g) = โˆž
Dc(h) = โˆž
Dc(i) = 1
DV in e:
De(a) = โˆž
De(b) = 1
De(c) = โˆž
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = โˆž
De(h) = 1
De(i) = โˆž
DV in h:
Dc(a) = โˆž
Dc(b) = โˆž
Dc(c) = โˆž
Dc(d) = โˆž
Dc(e) = 1
Dc(f) = โˆž
Dc(g) = 1
Dc(h) = 0
DV in d:
Dc(a) = 1
Dc(b) = โˆž
Dc(c) = โˆž
Dc(d) = 0
Dc(e) = 1
Dc(f) = โˆž
Dc(g) = 1
Dc(h) = โˆž
Dc(i) = โˆž d e f
g h i
Q: what is new DV computed in e at
t=1?
compute
Distance vector: state information diffusion
t=0 cโ€™s state at t=0 is at c only
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
cโ€™s state at t=0 has propagated to b, and
may influence distance vector computations
up to 1 hop away, i.e., at b
t=1
cโ€™s state at t=0 may now influence distance
vector computations up to 2 hops away, i.e.,
at b and now at a, e as well
t=2
cโ€™s state at t=0 may influence distance vector
computations up to 3 hops away, i.e., at d, f, h
t=3
cโ€™s state at t=0 may influence distance vector
computations up to 4 hops away, i.e., at g, i
t=4
Iterative communication, computation steps diffuses information through network:
t=1
t=2
t=3
t=4
Distance vector: link cost changes
โ€œgood news
travels fastโ€
t0 : y detects link-cost change, updates its DV, informs its neighbors.
t1 : z receives update from y, updates its DV, computes new least cost
to x , sends its neighbors its DV.
t2 : y receives zโ€™s update, updates its DV. yโ€™s least costs do not
change, so y does not send a message to z.
link cost changes:
๏‚ง node detects local link cost change
๏‚ง updates routing info, recalculates local DV
๏‚ง if DV changes, notify neighbors
x z
1
4
50
y
1
Distance vector: link cost changes
link cost changes:
๏‚ง node detects local link cost change
๏‚ง โ€œbad news travels slowโ€ โ€“ count-to-infinity problem:
x z
1
4
50
y
60
โ€ข y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So
y computes โ€œmy new cost to x will be 6, via z); notifies z of new cost of 6 to x.
โ€ข z learns that path to x via y has new cost 6, so z computes โ€œmy new cost to
x will be 7 via y), notifies y of new cost of 7 to x.
โ€ข y learns that path to x via z has new cost 7, so y computes โ€œmy new cost to
x will be 8 via y), notifies z of new cost of 8 to x.
โ€ข z learns that path to x via y has new cost 8, so z computes โ€œmy new cost to
x will be 9 via y), notifies y of new cost of 9 to x.
โ€ฆ
๏‚ง see text for solutions. Distributed algorithms are tricky!
Comparison of LS and DV algorithms
message complexity
LS: n routers, O(n2
) messages sent
DV: exchange between neighbors;
convergence time varies
speed of convergence
LS: O(n2
) algorithm, O(n2
) messages
โ€ข may have oscillations
DV: convergence time varies
โ€ข may have routing loops
โ€ข count-to-infinity problem
robustness: what happens if router
malfunctions, or is compromised?
LS:
โ€ข router can advertise incorrect link cost
โ€ข each router computes only its own
table
DV:
โ€ข DV router can advertise incorrect path
cost (โ€œI have a really low-cost path to
everywhereโ€): black-holing
โ€ข each routerโ€™s DV is used by others:
error propagate thru network
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚ง routing protocols
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-53
our routing study thus far - idealized
๏‚ง all routers identical
๏‚ง network โ€œflatโ€
โ€ฆ not true in practice
Making routing scalable
Network Layer: 5-54
scale: billions of destinations:
๏‚ง canโ€™t store all destinations in
routing tables!
๏‚ง routing table exchange would
swamp links!
administrative autonomy:
๏‚ง Internet: a network of networks
๏‚ง each network admin may want to
control routing in its own network
aggregate routers into regions known as โ€œautonomous
systemsโ€ (AS) (a.k.a. โ€œdomainsโ€)
Internet approach to scalable routing
Network Layer: 5-55
intra-AS (aka โ€œintra-domainโ€):
routing among routers within same
AS (โ€œnetworkโ€)
๏‚ง all routers in AS must run same intra-
domain protocol
๏‚ง routers in different AS can run different
intra-domain routing protocols
๏‚ง gateway router: at โ€œedgeโ€ of its own AS,
has link(s) to router(s) in other ASโ€™es
inter-AS (aka โ€œinter-domainโ€):
routing among ASโ€™es
๏‚ง gateways perform inter-domain
routing (as well as intra-domain
routing)
Interconnected ASes
Network Layer: 5-56
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
intra-AS
routing
intra-AS
routing
intra-AS
routing
inter-AS routing
forwarding
table
forwarding table configured by intra-
and inter-AS routing algorithms
Intra-AS
Routing
Inter-AS
Routing ๏‚ง intra-AS routing determine entries for
destinations within AS
๏‚ง inter-AS & intra-AS determine entries
for external destinations
Inter-AS routing: a role in intradomain forwarding
Network Layer: 5-57
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
other
networks
other
networks
๏‚ง suppose router in AS1 receives
datagram destined outside of AS1:
AS1 inter-domain routing must:
1. learn which destinations reachable
through AS2, which through AS3
2. propagate this reachability info to all
routers in AS1
โ€ข router should forward packet to
gateway router in AS1, but which
one?
Intra-AS routing: routing within an AS
Network Layer: 5-58
most common intra-AS routing protocols:
๏‚ง RIP: Routing Information Protocol [RFC 1723]
โ€ข classic DV: DVs exchanged every 30 secs
โ€ข no longer widely used
๏‚ง EIGRP: Enhanced Interior Gateway Routing Protocol
โ€ข DV based
โ€ข formerly Cisco-proprietary for decades (became open in 2013 [RFC 7868])
๏‚ง OSPF: Open Shortest Path First [RFC 2328]
โ€ข link-state routing
โ€ข IS-IS protocol (ISO standard, not RFC standard) essentially same as OSPF
OSPF (Open Shortest Path First) routing
Network Layer: 5-59
๏‚ง โ€œopenโ€: publicly available
๏‚ง classic link-state
โ€ข each router floods OSPF link-state advertisements (directly over IP
rather than using TCP/UDP) to all other routers in entire AS
โ€ข multiple link costs metrics possible: bandwidth, delay
โ€ข each router has full topology, uses Dijkstraโ€™s algorithm to compute
forwarding table
๏‚ง security: all OSPF messages authenticated (to prevent malicious
intrusion)
Hierarchical OSPF
Network Layer: 5-60
๏‚ง two-level hierarchy: local area, backbone.
โ€ข link-state advertisements flooded only in area, or backbone
โ€ข each node has detailed area topology; only knows direction to reach
other destinations
area border routers:
โ€œsummarizeโ€ distances to
destinations in own area,
advertise in backbone
area 1
area 2
area 3
backbone
internal
routers
backbone router:
runs OSPF limited
to backbone
boundary router:
connects to other ASes
local routers:
โ€ข flood LS in area only
โ€ข compute routing within
area
โ€ข forward packets to outside
via area border router
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚ง routing protocols
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-61
Interconnected ASes
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
intra-AS
routing
intra-AS
routing
intra-AS
routing
inter-AS routing
intra-AS (aka โ€œintra-domainโ€): routing among routers within same
AS (โ€œnetworkโ€)
inter-AS (aka โ€œinter-domainโ€): routing among ASโ€™es
Network Layer Control Plane: 5-62
๏‚ง BGP (Border Gateway Protocol): the de facto inter-domain routing
protocol
โ€ข โ€œglue that holds the Internet togetherโ€
๏‚ง allows subnet to advertise its existence, and the destinations it can
reach, to rest of Internet: โ€œI am here, here is who I can reach, and howโ€
๏‚ง BGP provides each AS a means to:
โ€ข obtain destination network reachability info from neighboring ASes
(eBGP)
โ€ข determine routes to other networks based on reachability information
and policy
โ€ข propagate reachability information to all AS-internal routers (iBGP)
โ€ข advertise (to neighboring networks) destination reachability info
Internet inter-AS routing: BGP
Network Layer Control Plane: 5-63
eBGP, iBGP connections
Network Layer: 5-64
eBGP connectivity
logical iBGP connectivity
1b
1d
1c
1a
2b
2d
2c
2a
3b
3d
3c
3a
AS 2
AS 3
AS 1
1c
โˆ‚
โˆ‚
gateway routers run both eBGP and iBGP protocols
BGP basics
Network Layer: 5-65
๏‚ง when AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c:
โ€ข AS3 promises to AS2 it will forward datagrams towards X
๏‚ง BGP session: two BGP routers (โ€œpeersโ€) exchange BGP messages over
semi-permanent TCP connection:
โ€ข advertising paths to different destination network prefixes (BGP is a โ€œpath
vectorโ€ protocol)
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP advertisement:
AS3, X
BGP protocol messages
๏‚ง BGP messages exchanged between peers over TCP connection
๏‚ง BGP messages [RFC 4371]:
โ€ข OPEN: opens TCP connection to remote BGP peer and authenticates
sending BGP peer
โ€ข UPDATE: advertises new path (or withdraws old)
โ€ข KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs
OPEN request
โ€ข NOTIFICATION: reports errors in previous msg; also used to close
connection
Path attributes and BGP routes
Network Layer: 5-67
๏‚ง BGP advertised route: prefix + attributes
โ€ข prefix: destination being advertised
โ€ข two important attributes:
โ€ข AS-PATH: list of ASes through which prefix advertisement has passed
โ€ข NEXT-HOP: indicates specific internal-AS router to next-hop AS
๏‚ง policy-based routing:
โ€ข gateway receiving route advertisement uses import policy to
accept/decline path (e.g., never route through AS Y).
โ€ข AS policy also determines whether to advertise path to other other
neighboring ASes
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP path advertisement
Network Layer: 5-68
๏‚ง based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all
AS2 routers
AS2,AS3,X
๏‚ง AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a
๏‚ง based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to
AS1 router 1c
AS3, X
Network Layer: 5-69
AS2,AS3,X
๏‚ง AS1 gateway router 1c learns path AS2,AS3,X from 2a
gateway router may learn about multiple paths to destination:
AS3,X
๏‚ง AS1 gateway router 1c learns path AS3,X from 3a
๏‚ง based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path
within AS1 via iBGP
AS3, X
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
AS3,X
AS3,X
AS3,X
BGP path advertisement: multiple paths
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP: populating forwarding tables
AS2,AS3,X
AS3,X
AS3, X
๏‚ง recall: 1a, 1b, 1d learn via iBGP from 1c: โ€œpath to X goes through 1cโ€
๏‚ง at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
1
2
1
2
dest interface
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
local link
interfaces
at 1a, 1d
๏‚ง at 1d: to get to X, use interface 1
1c 1
X 1
AS3,X
AS3,X
AS3,X
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
BGP: populating forwarding tables
๏‚ง recall: 1a, 1b, 1d learn via iBGP from 1c: โ€œpath to X goes through 1cโ€
๏‚ง at 1d: OSPF intra-domain routing: to get to 1c, use interface 1
1
2
๏‚ง at 1d: to get to X, use interface 1
dest interface
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
1c 2
X 2
๏‚ง at 1a: OSPF intra-domain routing: to get to 1c, use interface 2
๏‚ง at 1a: to get to X, use interface 2
2b
2d
2c
2a
AS 2
3b
3d
3c
3a
AS 3
1b
1d
1c
1a
AS 1
X
Hot potato routing
Network Layer: 5-72
๏‚ง 2d learns (via iBGP) it can route to X via 2a or 2c
๏‚ง hot potato routing: choose local gateway that has least intra-domain
cost (e.g., 2d chooses 2a, even though more AS hops to X): donโ€™t worry
about inter-domain cost!
AS3,X
AS1,AS3,X
OSPF link weights
201
112
263
BGP: achieving policy via advertisements
Network Layer: 5-73
B
legend:
customer
network:
provider
network
๏‚ง A advertises path Aw to B and to C
๏‚ง B chooses not to advertise BAw to C!
๏‚ง B gets no โ€œrevenueโ€ for routing CBAw, since none of C, A, w are Bโ€™s customers
๏‚ง C does not learn about CBAw path
๏‚ง C will route CAw (not using B) to get to w
ISP only wants to route traffic to/from its customer networks (does not want
to carry transit traffic between other ISPs โ€“ a typical โ€œreal worldโ€ policy)
w A
y
C
x
A,w
A,w
BGP: achieving policy via advertisements (more)
Network Layer: 5-74
B
ISP only wants to route traffic to/from its customer networks (does not want
to carry transit traffic between other ISPs โ€“ a typical โ€œreal worldโ€ policy)
w A
y
C
x
๏‚ง A,B,C are provider networks
๏‚ง x,w,y are customer (of provider networks)
๏‚ง x is dual-homed: attached to two networks
๏‚ง policy to enforce: x does not want to route from B to C via x
๏‚ง .. so x will not advertise to B a route to C
legend:
customer
network:
provider
network
๏‚ง router may learn about more than one route to destination
AS, selects route based on:
1. local preference value attribute: policy decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. additional criteria
BGP route selection
Network Layer: 5-75
Why different Intra-, Inter-AS routing ?
Network Layer: 5-76
policy:
๏‚ง inter-AS: admin wants control over how its traffic routed, who
routes through its network
๏‚ง intra-AS: single admin, so policy less of an issue
scale:
๏‚ง hierarchical routing saves table size, reduced update traffic
performance:
๏‚ง intra-AS: can focus on performance
๏‚ง inter-AS: policy dominates over performance
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚ง routing protocols
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-77
๏‚ง Internet network layer: historically implemented via
distributed, per-router control approach:
โ€ข monolithic router contains switching hardware, runs proprietary
implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF,
BGP) in proprietary router OS (e.g., Cisco IOS)
โ€ข different โ€œmiddleboxesโ€ for different network layer functions:
firewalls, load balancers, NAT boxes, ..
๏‚ง ~2005: renewed interest in rethinking network control plane
Software defined networking (SDN)
Network Layer: 5-78
Per-router control plane
Individual routing algorithm components in each and every router
interact in the control plane to computer forwarding tables
Routing
Algorithm
data
plane
control
plane
1
2
0111
values in arriving
packet header
3
Network Layer: 4-79
Software-Defined Networking (SDN) control plane
Remote controller computes, installs forwarding tables in routers
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1
2
0111
3
values in arriving
packet header
Network Layer: 4-80
Why a logically centralized control plane?
๏‚ง easier network management: avoid router misconfigurations,
greater flexibility of traffic flows
๏‚ง table-based forwarding (recall OpenFlow API) allows
โ€œprogrammingโ€ routers
โ€ข centralized โ€œprogrammingโ€ easier: compute tables centrally and distribute
โ€ข distributed โ€œprogrammingโ€ more difficult: compute tables as result of
distributed algorithm (protocol) implemented in each-and-every router
๏‚ง open (non-proprietary) implementation of control plane
โ€ข foster innovation: let 1000 flowers bloom
Software defined networking (SDN)
Network Layer: 5-81
SDN analogy: mainframe to PC revolution
Network Layer: 5-82
Vertically integrated
Closed, proprietary
Slow innovation
Small industry
Specialized
Operating
System
Specialized
Hardware
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
Ap
p
App
Specialized
Applications
Horizontal
Open interfaces
Rapid innovation
Huge industry
Microprocessor
Open Interface
* Slide courtesy: N. McKeown
or or
Open Interface
Windows Linux MAC OS
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Traffic engineering: difficult with traditional routing
Network Layer: 5-83
Q: what if network operator wants u-to-z traffic to flow along
uvwz, rather than uxyz?
A: need to re-define link weights so traffic routing algorithm
computes routes accordingly (or need a new routing algorithm)!
link weights are only control โ€œknobsโ€: not much control!
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Traffic engineering: difficult with traditional routing
Network Layer: 5-84
Q: what if network operator wants to split u-to-z
traffic along uvwz and uxyz (load balancing)?
A: canโ€™t do it (or need a new routing algorithm)
Traffic engineering: difficult with traditional routing
Network Layer: 5-85
Q: what if w wants to route blue and red traffic differently from w to z?
A: canโ€™t do it (with destination-based forwarding, and LS, DV routing)
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
We learned in Chapter 4 that generalized forwarding and SDN can
be used to achieve any routing desired
Software defined networking (SDN)
Network Layer: 5-86
data
plane
control
plane
Remote Controller
CA
CA CA CA CA
1: generalized โ€œflow-basedโ€
forwarding (e.g., OpenFlow)
2. control, data plane
separation
3. control plane functions
external to data-plane
switches
โ€ฆ
routing
access
control
load
balance
4. programmable
control
applications
Software defined networking (SDN)
Network Layer: 5-87
Data-plane switches:
๏‚ง fast, simple, commodity switches
implementing generalized data-plane
forwarding (Section 4.4) in hardware
๏‚ง flow (forwarding) table computed,
installed under controller supervision
๏‚ง API for table-based switch control
(e.g., OpenFlow)
โ€ข defines what is controllable, what is not
๏‚ง protocol for communicating with
controller (e.g., OpenFlow)
data
plane
control
plane
SDN Controller
(network operating system)
โ€ฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
Software defined networking (SDN)
Network Layer: 5-88
SDN controller (network OS):
๏‚ง maintain network state
information
๏‚ง interacts with network control
applications โ€œaboveโ€ via
northbound API
๏‚ง interacts with network switches
โ€œbelowโ€ via southbound API
๏‚ง implemented as distributed system
for performance, scalability, fault-
tolerance, robustness
data
plane
control
plane
SDN Controller
(network operating system)
โ€ฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
Software defined networking (SDN)
Network Layer: 5-89
network-control apps:
๏‚ง โ€œbrainsโ€ of control: implement
control functions using lower-
level services, API provided by
SDN controller
๏‚ง unbundled: can be provided by
3rd
party: distinct from routing
vendor, or SDN controller
data
plane
control
plane
SDN Controller
(network operating system)
โ€ฆ
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control
applications
Components of SDN controller
Network Layer: 5-90
Network-wide distributed, robust state management
Communication to/from controlled devices
Link-state info switch info
host info
statistics flow tables
โ€ฆ
โ€ฆ
OpenFlow SNMP
โ€ฆ
network
graph intent
RESTful
API
โ€ฆ
Interface, abstractions for network control apps
SDN
controller
routing access
control
load
balance
communication: communicate
between SDN controller and
controlled switches
network-wide state
management : state of
networks links, switches,
services: a distributed database
interface layer to network
control apps: abstractions API
OpenFlow protocol
Network Layer: 5-91
๏‚ง operates between controller, switch
๏‚ง TCP used to exchange messages
โ€ข optional encryption
๏‚ง three classes of OpenFlow messages:
โ€ข controller-to-switch
โ€ข asynchronous (switch to controller)
โ€ข symmetric (misc.)
๏‚ง distinct from OpenFlow API
โ€ข API used to specify generalized
forwarding actions
OpenFlow Controller
OpenFlow: controller-to-switch messages
Network Layer: 5-92
Key controller-to-switch messages
๏‚ง features: controller queries switch
features, switch replies
๏‚ง configure: controller queries/sets
switch configuration parameters
๏‚ง modify-state: add, delete, modify flow
entries in the OpenFlow tables
๏‚ง packet-out: controller can send this
packet out of specific switch port
OpenFlow Controller
OpenFlow: switch-to-controller messages
Network Layer: 5-93
Key switch-to-controller messages
๏‚ง packet-in: transfer packet (and its
control) to controller. See packet-out
message from controller
๏‚ง flow-removed: flow table entry deleted
at switch
๏‚ง port status: inform controller of a
change on a port.
Fortunately, network operators donโ€™t โ€œprogramโ€ switches by creating/sending
OpenFlow messages directly. Instead use higher-level abstraction at controller
OpenFlow Controller
SDN: control/data plane interaction example
Network Layer: 5-94
Link-state info switch info
host info
statistics flow tables
โ€ฆ
โ€ฆ
OpenFlow SNMP
โ€ฆ
network
graph intent
RESTful
API
โ€ฆ
Dijkstraโ€™s link-state
routing
s1
s2
s3
s4
S1, experiencing link failure uses
OpenFlow port status message to
notify controller
1
SDN controller receives OpenFlow
message, updates link status info
2
Dijkstraโ€™s routing algorithm
application has previously registered
to be called when ever link status
changes. It is called.
3
Dijkstraโ€™s routing algorithm access
network graph info, link state info
in controller, computes new
routes
4
1
2
3
4
SDN: control/data plane interaction example
Network Layer: 5-95
Link-state info switch info
host info
statistics flow tables
โ€ฆ
โ€ฆ
OpenFlow SNMP
โ€ฆ
network
graph intent
RESTful
API
โ€ฆ
Dijkstraโ€™s link-state
routing
s1
s2
s3
s4
link state routing app interacts
with flow-table-computation
component in SDN controller,
which computes new flow tables
needed
5
controller uses OpenFlow to
install new tables in switches
that need updating
6
5
6
1
2
3
4
Google ORION SDN control plane
ORION: Googleโ€™s SDN control plane (NSDIโ€™21): control plane for
Googleโ€™s datacenter (Jupiter) and wide area (B4) networks
Orion SDN architecture and core apps
๏‚ง routing (intradomain, iBGP), traffic
engineering: implemented in applications
on top of ORION core
๏‚ง edge-edge flow-based controls (e.g.,
CoFlow scheduling) to meet contract SLAs
๏‚ง management: pub-sub distributed
microservices in Orion core, OpenFlow for
switch signaling/monitoring
Note: ORION provides intradomain services within Googleโ€™s network
OpenDaylight (ODL) controller
Network Layer: 5-97
Network Orchestrations and Applications
Southbound API
Service Abstraction
Layer (SAL)
config. and
operational data
store
REST/RESTCONF/NETCONF APIs
messaging
OpenFlow NETCONF SNMP OVSDB โ€ฆ
Northbound API
Traffic
Engineering โ€ฆ
Firewalling Load Balancing
Basic Network Functions
Enhanced
Services
โ€ฆ
โ€ฆ
Forwarding
rules mgr.
AAA
Host
Tracker
Stats
mgr.
Switch
mgr.
Topology
processing
Service Abstraction Layer:
๏‚ง interconnects internal,
external applications
and services
ONOS controller
Network Layer: 5-98
Network Applications
Southbound API
Northbound API
Traffic
Engineering โ€ฆ
Firewalling Load Balancing
southbound
abstractions,
protocols
OpenFlow Netconf OVSDB
device link host flow packet
northbound
abstractions,
protocols
REST API Intent
ONOS
distributed
core
statistics
devices
hosts
links
paths flow rules topology
๏‚ง control apps separate
from controller
๏‚ง intent framework: high-
level specification of
service: what rather
than how
๏‚ง considerable emphasis
on distributed core:
service reliability,
replication performance
scaling
๏‚ง hardening the control plane: dependable, reliable, performance-
scalable, secure distributed system
โ€ข robustness to failures: leverage strong theory of reliable distributed
system for control plane
โ€ข dependability, security: โ€œbaked inโ€ from day one?
๏‚ง networks, protocols meeting mission-specific requirements
โ€ข e.g., real-time, ultra-reliable, ultra-secure
๏‚ง Internet-scaling: beyond a single AS
๏‚ง SDN critical in 5G cellular networks
SDN: selected challenges
Network Layer: 5-99
๏‚ง SDN-computed versus router-computer forwarding tables:
โ€ข just one example of logically-centralized-computed versus protocol
computed
๏‚ง one could imagine SDN-computed congestion control:
โ€ข controller sets sender rates based on router-reported (to
controller) congestion levels
SDN and the future of traditional network protocols
Network Layer: 5-100
How will implementation of
network functionality (SDN
versus protocols) evolve?
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚ง routing protocols
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-101
ICMP: internet control message protocol
Network Layer: 4-102
๏‚ง used by hosts and routers to
communicate network-level
information
โ€ข error reporting: unreachable host,
network, port, protocol
โ€ข echo request/reply (used by ping)
๏‚ง network-layer โ€œaboveโ€ IP:
โ€ข ICMP messages carried in IP
datagrams
๏‚ง ICMP message: type, code plus first
8 bytes of IP datagram causing
error
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
Traceroute and ICMP
Network Layer: 4-103
๏‚ง when ICMP message arrives at source: record RTTs
stopping criteria:
๏‚ง UDP segment eventually
arrives at destination host
๏‚ง destination returns ICMP
โ€œport unreachableโ€
message (type 3, code 3)
๏‚ง source stops
3 probes
3 probes
3 probes
๏‚ง source sends sets of UDP segments to
destination
โ€ข 1st
set has TTL =1, 2nd
set has TTL=2, etc.
๏‚ง datagram in nth set arrives to nth router:
โ€ข router discards datagram and sends source
ICMP message (type 11, code 0)
โ€ข ICMP message possibly includes name of
router & IP address
Network layer: โ€œcontrol planeโ€ roadmap
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚ง introduction
๏‚ง routing protocols
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-104
๏‚ง autonomous systems (aka โ€œnetworkโ€): 1000s of interacting
hardware/software components
๏‚ง other complex systems requiring monitoring, configuration,
control:
โ€ข jet airplane, nuclear power plant, others?
What is network management?
Network Layer: 5-105
"Network management includes the deployment, integration
and coordination of the hardware, software, and human
elements to monitor, test, poll, configure, analyze, evaluate,
and control the network and element resources to meet the
real-time, operational performance, and Quality of Service
requirements at a reasonable cost."
Components of network management
Network Layer: 5-106
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
Managing server:
application, typically
with network
managers (humans) in
the loop
Managed device:
equipment with manageable,
configurable hardware,
software components
Data: device โ€œstateโ€
configuration data,
operational data,
device statistics
Network
management
protocol: used by
managing server to query,
configure, manage device;
used by devices to inform
managing server of data,
events.
Network operator approaches to management
Network Layer: 5-107
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
CLI (Command Line Interface)
โ€ข operator issues (types, scripts) direct to
individual devices (e.g., vis ssh)
SNMP/MIB
โ€ข operator queries/sets devices data
(MIB) using Simple Network
Management Protocol (SNMP)
NETCONF/YANG
โ€ข more abstract, network-wide, holistic
โ€ข emphasis on multi-device configuration
management.
โ€ข YANG: data modeling language
โ€ข NETCONF: communicate YANG-compatible
actions/data to/from/among remote devices
SNMP protocol
Network Layer: 5-108
managed device
agent data
managing
server/controller
data
request
response trap message
Two ways to convey MIB info, commands:
request/response mode
managed device
agent data
managing
server/controller
data
trap mode
SNMP protocol: message types
Network Layer: 5-109
GetRequest
GetNextRequest
GetBulkRequest
manager-to-agent: โ€œget me dataโ€
(data instance, next data in list,
block of data).
Message type Function
SetRequest manager-to-agent: set MIB value
Response Agent-to-manager: value, response
to Request
Trap Agent-to-manager: inform manager
of exceptional event
SNMP protocol: message formats
Network Layer: 5-110
โ€ฆ.
PDU
type
(0-3)
Request
ID
Error
Status
(0-5)
Error
Index
Name Value Name Value
Get/set header Variables to get/set
SNMP PDU
message types 0-3
โ€ฆ.
PDU
type
4
Enterprise Agent
Addr
Trap
Type
(0-7)
Specific
code
Time
stamp
Name Value
Trap header Trap info
message type 4
๏‚ง managed deviceโ€™s operational (and some configuration) data
๏‚ง gathered into device MIB module
โ€ข 400 MIB modules defined in RFCโ€™s; many more vendor-specific MIBs
SNMP: Management Information Base (MIB)
Network Layer: 5-111
Object ID Name Type Comments
1.3.6.1.2.1.7.1 UDPInDatagrams 32-bit counter total # datagrams delivered
1.3.6.1.2.1.7.2 UDPNoPorts 32-bit counter # undeliverable datagrams (no application at port)
1.3.6.1.2.1.7.3 UDInErrors 32-bit counter # undeliverable datagrams (all other reasons)
1.3.6.1.2.1.7.4 UDPOutDatagrams 32-bit counter total # datagrams sent
1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port currently in use
agent data
๏‚ง Structure of Management Information (SMI): data definition language
๏‚ง example MIB variables for UDP protocol:
๏‚ง goal: actively manage/configure devices network-wide
๏‚ง operates between managing server and managed network devices
โ€ข actions: retrieve, set, modify, activate configurations
โ€ข atomic-commit actions over multiple devices
โ€ข query operational data and statistics
โ€ข subscribe to notifications from devices
๏‚ง remote procedure call (RPC) paradigm
โ€ข NETCONF protocol messages encoded in XML
โ€ข exchanged over secure, reliable transport (e.g., TLS) protocol
NETCONF overview
Network Layer: 5-112
NETCONF initialization, exchange, close
Network Layer: 5-113
Session initiation,
capabilities exchange: <hello>
Session close: <close-session>
<rpc>
<rpc-reply>
<rpc>
<rpc-reply>
<rpc>
<rpc-reply>
<notification>
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
โ€ฆ
managing
server/controller
data
agent data
Selected NETCONF Operations
Network Layer: 5-114
NETCONF Operation Description
<get-config> Retrieve all or part of a given configuration. A device may have multiple
configurations.
<get> Retrieve all or part of both configuration state and operational state data.
<edit-config> Change specified (possibly running) configuration at managed device.
Managed device <rpc-reply> contains <ok> or <rpcerror> with rollback.
<lock>, <unlock> Lock (unlock) configuration datastore at managed device (to lock out
NETCONF, SNMP, or CLIs commands from other sources).
<create-subscription>, Enable event notification subscription from managed device
<notification>
Sample NETCONF RPC message
Network Layer: 5-115
note message id
change the running configuration
change MTU of Ethernet 0/0 interface to 1500
change a configuration
๏‚ง data modeling language used to specify
structure, syntax, semantics of
NETCONF network management data
โ€ข built-in data types, like SMI
๏‚ง XML document describing device,
capabilities can be generated from
YANG description
๏‚ง can express constraints among data that
must be satisfied by a valid NETCONF
configuration
โ€ข ensure NETCONF configurations satisfy
correctness, consistency constraints
YANG
Network Layer: 5-116
agent data
managing
server/controller
data
NETCONF RPC message
<edit-config>
YANG-generated XML
</edit-config> YANG
generated
Network layer: Summary
Network Layer: 5-117
weโ€™ve learned a lot!
๏‚ง approaches to network control plane
โ€ข per-router control (traditional)
โ€ข logically centralized control (software defined networking)
๏‚ง traditional routing algorithms
โ€ข implementation in Internet: OSPF , BGP
๏‚ง SDN controllers
โ€ข implementation in practice: ODL, ONOS
๏‚ง Internet Control Message Protocol
๏‚ง network management
next stop: link layer!
Network layer, control plane: Done!
๏‚ง network management,
configuration
โ€ข SNMP
โ€ข NETCONF/YANG
๏‚งintroduction
๏‚ง routing protocols
๏‚ง link state
๏‚ง distance vector
๏‚ง intra-ISP routing: OSPF
๏‚ง routing among ISPs: BGP
๏‚ง SDN control plane
๏‚ง Internet Control Message
Protocol
Network Layer: 5-118
Additional Chapter 5 slides
Network Layer: 5-119
Distance vector: another example
Network Layer: 5-120
x y z
x
y
z
0 2 7
โˆž โˆž โˆž
โˆž โˆž โˆž
from
cost to
from
from x y z
x
y
z
0
x y z
x
y
z
โˆž โˆž
โˆž โˆž โˆž
cost to
x y z
x
y
z
โˆž โˆž โˆž
7 1 0
cost to
โˆž
2 0 1
โˆž โˆž โˆž
2 0 1
7 1 0
time
x z
1
2
7
y
Dx()
Dx(y) = min{cx,y + Dy(y), cx,z+ Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{cx,y+ Dy(z), cx,z+ Dz(z)}
= min{2+1 , 7+0} = 3
3
2
Dy()
Dz()
cost to
from
Distance vector: another example
Network Layer: 5-121
x y z
x
y
z
0 2 7
โˆž โˆž โˆž
โˆž โˆž โˆž
cost to
from
from
x y z
x
y
z
โˆž โˆž
โˆž โˆž โˆž
cost to
x y z
x
y
z
โˆž โˆž โˆž
7 1 0
cost to
โˆž
2 0 1
โˆž โˆž โˆž
x z
1
2
7
y
Dx()
Dy()
Dz()
from x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 7
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 3
from
cost to
x y z
x
y
z
0 2 7
from
cost to
2 0 1
7 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
2 0 1
3 1 0
from
x y z
x
y
z
0
2 0 1
7 1 0
3
2
cost to
time
Ad

More Related Content

Similar to Network Layer: Control Plane (Computer Network Course) (20)

Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross
Chapter_5_v8.0Routing Protocol for Computer network from kurose and rossChapter_5_v8.0Routing Protocol for Computer network from kurose and ross
Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross
dutt2309
ย 
Link Prediction in the Real World
Link Prediction in the Real WorldLink Prediction in the Real World
Link Prediction in the Real World
Balaji Ganesan
ย 
Bellmanford
BellmanfordBellmanford
Bellmanford
Abhijeet Gokhale
ย 
IAP presentation-1.pptx
IAP presentation-1.pptxIAP presentation-1.pptx
IAP presentation-1.pptx
HirazNor
ย 
Cnetwork
CnetworkCnetwork
Cnetwork
ADARSHN40
ย 
P5 - Routing Protocols
P5 - Routing ProtocolsP5 - Routing Protocols
P5 - Routing Protocols
Kurniawan Dwi Irianto
ย 
Introduction to Computer Networks
Introduction to Computer NetworksIntroduction to Computer Networks
Introduction to Computer Networks
Venkatesh Iyer
ย 
Intro 2 Computer Networks
Intro 2 Computer NetworksIntro 2 Computer Networks
Intro 2 Computer Networks
rakeshgoswami
ย 
IAP PPT-1.pptx
IAP PPT-1.pptxIAP PPT-1.pptx
IAP PPT-1.pptx
HirazNor
ย 
Week13 lec1
Week13 lec1Week13 lec1
Week13 lec1
syedhaiderraza
ย 
routing1 1X3 Router (capable of routing the data packets.ppt
routing1 1X3 Router (capable of routing the data packets.pptrouting1 1X3 Router (capable of routing the data packets.ppt
routing1 1X3 Router (capable of routing the data packets.ppt
JANARTHANANS22
ย 
Week13 lec2
Week13 lec2Week13 lec2
Week13 lec2
syedhaiderraza
ย 
1 chayes
1 chayes1 chayes
1 chayes
Yandex
ย 
computer networks lab program Bellman Ford.pptx
computer networks lab program Bellman Ford.pptxcomputer networks lab program Bellman Ford.pptx
computer networks lab program Bellman Ford.pptx
ambikavenkatesh2
ย 
IP Address Routing _________________2_IP Routing.pdf
IP Address Routing _________________2_IP Routing.pdfIP Address Routing _________________2_IP Routing.pdf
IP Address Routing _________________2_IP Routing.pdf
amarehope21
ย 
Social network-analysis-in-python
Social network-analysis-in-pythonSocial network-analysis-in-python
Social network-analysis-in-python
Joe OntheRocks
ย 
Data Communications and Networks Network Layer
Data Communications and Networks Network LayerData Communications and Networks Network Layer
Data Communications and Networks Network Layer
SunilKumar481222
ย 
IRJET- Survey on Adaptive Routing Algorithms
IRJET- Survey on Adaptive Routing AlgorithmsIRJET- Survey on Adaptive Routing Algorithms
IRJET- Survey on Adaptive Routing Algorithms
IRJET Journal
ย 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Open Networking Summits
ย 
Week11 lec2
Week11 lec2Week11 lec2
Week11 lec2
syedhaiderraza
ย 
Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross
Chapter_5_v8.0Routing Protocol for Computer network from kurose and rossChapter_5_v8.0Routing Protocol for Computer network from kurose and ross
Chapter_5_v8.0Routing Protocol for Computer network from kurose and ross
dutt2309
ย 
Link Prediction in the Real World
Link Prediction in the Real WorldLink Prediction in the Real World
Link Prediction in the Real World
Balaji Ganesan
ย 
IAP presentation-1.pptx
IAP presentation-1.pptxIAP presentation-1.pptx
IAP presentation-1.pptx
HirazNor
ย 
Cnetwork
CnetworkCnetwork
Cnetwork
ADARSHN40
ย 
Introduction to Computer Networks
Introduction to Computer NetworksIntroduction to Computer Networks
Introduction to Computer Networks
Venkatesh Iyer
ย 
Intro 2 Computer Networks
Intro 2 Computer NetworksIntro 2 Computer Networks
Intro 2 Computer Networks
rakeshgoswami
ย 
IAP PPT-1.pptx
IAP PPT-1.pptxIAP PPT-1.pptx
IAP PPT-1.pptx
HirazNor
ย 
routing1 1X3 Router (capable of routing the data packets.ppt
routing1 1X3 Router (capable of routing the data packets.pptrouting1 1X3 Router (capable of routing the data packets.ppt
routing1 1X3 Router (capable of routing the data packets.ppt
JANARTHANANS22
ย 
1 chayes
1 chayes1 chayes
1 chayes
Yandex
ย 
computer networks lab program Bellman Ford.pptx
computer networks lab program Bellman Ford.pptxcomputer networks lab program Bellman Ford.pptx
computer networks lab program Bellman Ford.pptx
ambikavenkatesh2
ย 
IP Address Routing _________________2_IP Routing.pdf
IP Address Routing _________________2_IP Routing.pdfIP Address Routing _________________2_IP Routing.pdf
IP Address Routing _________________2_IP Routing.pdf
amarehope21
ย 
Social network-analysis-in-python
Social network-analysis-in-pythonSocial network-analysis-in-python
Social network-analysis-in-python
Joe OntheRocks
ย 
Data Communications and Networks Network Layer
Data Communications and Networks Network LayerData Communications and Networks Network Layer
Data Communications and Networks Network Layer
SunilKumar481222
ย 
IRJET- Survey on Adaptive Routing Algorithms
IRJET- Survey on Adaptive Routing AlgorithmsIRJET- Survey on Adaptive Routing Algorithms
IRJET- Survey on Adaptive Routing Algorithms
IRJET Journal
ย 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Open Networking Summits
ย 

Recently uploaded (20)

Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Grapes Innovative Solutions
ย 
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptxMANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
PoulomiDas38
ย 
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
ganeshdukare428
ย 
NDIS Housing: Unlocking Independence Through Tailored Solutions
NDIS Housing: Unlocking Independence Through Tailored SolutionsNDIS Housing: Unlocking Independence Through Tailored Solutions
NDIS Housing: Unlocking Independence Through Tailored Solutions
foundationaccess20
ย 
Care Of The Patient's Colostomy By Garima.pptx
Care Of The Patient's Colostomy By Garima.pptxCare Of The Patient's Colostomy By Garima.pptx
Care Of The Patient's Colostomy By Garima.pptx
NURSING
ย 
JUNE 2023 TO DECEMBER 2020222152423.pptx
JUNE 2023 TO DECEMBER 2020222152423.pptxJUNE 2023 TO DECEMBER 2020222152423.pptx
JUNE 2023 TO DECEMBER 2020222152423.pptx
advamedhospital
ย 
Cares for the Environment Social Media Strategy by Slidesgo.pptx
Cares for the Environment Social Media Strategy by Slidesgo.pptxCares for the Environment Social Media Strategy by Slidesgo.pptx
Cares for the Environment Social Media Strategy by Slidesgo.pptx
slcinzy
ย 
The Future of Gastroenterology Smart Software for Smarter Practices.pdf
The Future of Gastroenterology Smart Software for Smarter Practices.pdfThe Future of Gastroenterology Smart Software for Smarter Practices.pdf
The Future of Gastroenterology Smart Software for Smarter Practices.pdf
Healthray Technologies Pvt. Ltd.
ย 
Basics of MSUS musculoskeletal ultrasound Dr Marwa Abo Elmaaty Besar Mansoura...
Basics of MSUS musculoskeletal ultrasound Dr Marwa Abo Elmaaty Besar Mansoura...Basics of MSUS musculoskeletal ultrasound Dr Marwa Abo Elmaaty Besar Mansoura...
Basics of MSUS musculoskeletal ultrasound Dr Marwa Abo Elmaaty Besar Mansoura...
Internal medicine department, faculty of Medicine Beni-Suef University Egypt
ย 
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
MEDICOTECH LLC
ย 
13May25 Supporting our systems slides.pdf
13May25 Supporting our systems slides.pdf13May25 Supporting our systems slides.pdf
13May25 Supporting our systems slides.pdf
ILC- UK
ย 
Beyond The Stethoscope- A Journey to Patient-Centered Excellence
Beyond The Stethoscope- A Journey to Patient-Centered ExcellenceBeyond The Stethoscope- A Journey to Patient-Centered Excellence
Beyond The Stethoscope- A Journey to Patient-Centered Excellence
Jasper Colin
ย 
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITISHEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
Sneha Thakur
ย 
neurocutaneous syndromes . child neurology
neurocutaneous syndromes . child neurologyneurocutaneous syndromes . child neurology
neurocutaneous syndromes . child neurology
Balqees Majali
ย 
BCLS (basic cardiac life support) modules
BCLS (basic cardiac life support) modulesBCLS (basic cardiac life support) modules
BCLS (basic cardiac life support) modules
Rekhanjali Gupta
ย 
Transform Your Revenue Cycle Management Attain Financial Stability.pptx
Transform Your Revenue Cycle Management Attain Financial Stability.pptxTransform Your Revenue Cycle Management Attain Financial Stability.pptx
Transform Your Revenue Cycle Management Attain Financial Stability.pptx
Unify Healthcare
ย 
Aba Speech Therapy in Mississauga | Bright Steps df
Aba Speech Therapy in Mississauga | Bright Steps dfAba Speech Therapy in Mississauga | Bright Steps df
Aba Speech Therapy in Mississauga | Bright Steps df
Brightsteps
ย 
The Role of MSP Staffing Agencies in Streamlining Workforce Management
The Role of MSP Staffing Agencies in Streamlining Workforce Management The Role of MSP Staffing Agencies in Streamlining Workforce Management
The Role of MSP Staffing Agencies in Streamlining Workforce Management
Clientilo
ย 
Formulation and evaluation of Antidiebatic chocolate.
Formulation and evaluation of Antidiebatic chocolate.Formulation and evaluation of Antidiebatic chocolate.
Formulation and evaluation of Antidiebatic chocolate.
VishalGautam960592
ย 
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptxVenous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Siragusa Vein and Laser
ย 
Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Reimagining Hospital Operations_ The Grapes IDMR Advantage for 21st Century H...
Grapes Innovative Solutions
ย 
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptxMANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
MANAGEMENT OF COMMON CHILD HEALTH PROBLEMS.pptx
PoulomiDas38
ย 
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
Antibiofilm Technology Dressings Driving the Future of Pressure Ulcer and Bur...
ganeshdukare428
ย 
NDIS Housing: Unlocking Independence Through Tailored Solutions
NDIS Housing: Unlocking Independence Through Tailored SolutionsNDIS Housing: Unlocking Independence Through Tailored Solutions
NDIS Housing: Unlocking Independence Through Tailored Solutions
foundationaccess20
ย 
Care Of The Patient's Colostomy By Garima.pptx
Care Of The Patient's Colostomy By Garima.pptxCare Of The Patient's Colostomy By Garima.pptx
Care Of The Patient's Colostomy By Garima.pptx
NURSING
ย 
JUNE 2023 TO DECEMBER 2020222152423.pptx
JUNE 2023 TO DECEMBER 2020222152423.pptxJUNE 2023 TO DECEMBER 2020222152423.pptx
JUNE 2023 TO DECEMBER 2020222152423.pptx
advamedhospital
ย 
Cares for the Environment Social Media Strategy by Slidesgo.pptx
Cares for the Environment Social Media Strategy by Slidesgo.pptxCares for the Environment Social Media Strategy by Slidesgo.pptx
Cares for the Environment Social Media Strategy by Slidesgo.pptx
slcinzy
ย 
The Future of Gastroenterology Smart Software for Smarter Practices.pdf
The Future of Gastroenterology Smart Software for Smarter Practices.pdfThe Future of Gastroenterology Smart Software for Smarter Practices.pdf
The Future of Gastroenterology Smart Software for Smarter Practices.pdf
Healthray Technologies Pvt. Ltd.
ย 
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
www-tumblr-com-medicotechllc32-783346987874549760-optimizing-profit-with-expe...
MEDICOTECH LLC
ย 
13May25 Supporting our systems slides.pdf
13May25 Supporting our systems slides.pdf13May25 Supporting our systems slides.pdf
13May25 Supporting our systems slides.pdf
ILC- UK
ย 
Beyond The Stethoscope- A Journey to Patient-Centered Excellence
Beyond The Stethoscope- A Journey to Patient-Centered ExcellenceBeyond The Stethoscope- A Journey to Patient-Centered Excellence
Beyond The Stethoscope- A Journey to Patient-Centered Excellence
Jasper Colin
ย 
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITISHEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
HEREDITARY AND METABOLIC DISEASE OF BONE OSTEOMYELITIS
Sneha Thakur
ย 
neurocutaneous syndromes . child neurology
neurocutaneous syndromes . child neurologyneurocutaneous syndromes . child neurology
neurocutaneous syndromes . child neurology
Balqees Majali
ย 
BCLS (basic cardiac life support) modules
BCLS (basic cardiac life support) modulesBCLS (basic cardiac life support) modules
BCLS (basic cardiac life support) modules
Rekhanjali Gupta
ย 
Transform Your Revenue Cycle Management Attain Financial Stability.pptx
Transform Your Revenue Cycle Management Attain Financial Stability.pptxTransform Your Revenue Cycle Management Attain Financial Stability.pptx
Transform Your Revenue Cycle Management Attain Financial Stability.pptx
Unify Healthcare
ย 
Aba Speech Therapy in Mississauga | Bright Steps df
Aba Speech Therapy in Mississauga | Bright Steps dfAba Speech Therapy in Mississauga | Bright Steps df
Aba Speech Therapy in Mississauga | Bright Steps df
Brightsteps
ย 
The Role of MSP Staffing Agencies in Streamlining Workforce Management
The Role of MSP Staffing Agencies in Streamlining Workforce Management The Role of MSP Staffing Agencies in Streamlining Workforce Management
The Role of MSP Staffing Agencies in Streamlining Workforce Management
Clientilo
ย 
Formulation and evaluation of Antidiebatic chocolate.
Formulation and evaluation of Antidiebatic chocolate.Formulation and evaluation of Antidiebatic chocolate.
Formulation and evaluation of Antidiebatic chocolate.
VishalGautam960592
ย 
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptxVenous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Venous Ulcers: A Deep Dive into a Common Leg Wound.pptx
Siragusa Vein and Laser
ย 
Ad

Network Layer: Control Plane (Computer Network Course)

  • 1. Computer Networking: A Top-Down Approach 8th edition Jim Kurose, Keith Ross Pearson, 2020 Chapter 5 Network Layer: 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: ๏‚ง 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!) ๏‚ง 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. For a revision history, see the slide note for this page. Thanks and enjoy! JFK/KWR All material copyright 1996-2023 J.F Kurose and K.W. Ross, All Rights Reserved
  • 2. Network layer control plane: our goals ๏‚งunderstand principles behind network control plane: โ€ข traditional routing algorithms โ€ข SDN controllers โ€ข network management, configuration ๏‚ง instantiation, implementation in the Internet: โ€ข OSPF, BGP โ€ข OpenFlow, ODL and ONOS controllers โ€ข Internet Control Message Protocol: ICMP โ€ข SNMP, YANG/NETCONF Network Layer: 5-2
  • 3. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚งintroduction ๏‚ง routing protocols ๏‚ง link state ๏‚ง distance vector ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-3
  • 4. Two approaches to structuring network control plane: ๏‚ง per-router control (traditional) ๏‚ง logically centralized control (software defined networking) Network-layer functions Network Layer: 5-4 ๏‚ง forwarding: move packets from routerโ€™s input to appropriate router output data plane control plane ๏‚ง routing: determine route taken by packets from source to destination
  • 5. Per-router control plane Individual routing algorithm components in each and every router interact in the control plane Routing Algorithm data plane control plane 1 2 0111 values in arriving packet header 3 Network Layer: 5-5
  • 6. Software-Defined Networking (SDN) control plane Remote controller computes, installs forwarding tables in routers data plane control plane Remote Controller CA CA CA CA CA 1 2 0111 3 values in arriving packet header Network Layer: 5-6
  • 8. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚งrouting protocols ๏‚ง link state ๏‚ง distance vector ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-8
  • 9. Routing protocol goal: determine โ€œgoodโ€ paths (equivalently, routes), from sending hosts to receiving host, through network of routers ๏‚ง path: sequence of routers packets traverse from given initial source host to final destination host ๏‚ง โ€œgoodโ€: least โ€œcostโ€, โ€œfastestโ€, โ€œleast congestedโ€ ๏‚ง routing: a โ€œtop-10โ€ networking challenge! Routing protocols mobile network enterprise network national or global ISP datacenter network application transport network link physical application transport network link physical network link physical network link physical network link physical network link physical network link physical Network Layer: 5-9
  • 10. Graph abstraction: link costs Network Layer: 5-10 u y x w v z 2 2 1 3 1 1 2 5 3 5 graph: G = (N,E) ca,b: cost of direct link connecting a and b e.g., cw,z = 5, cu,z = โˆž cost defined by network operator: could always be 1, or inversely related to bandwidth, or inversely related to congestion 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) }
  • 11. Routing algorithm classification Network Layer: 5-11 global or decentralized information? global: all routers have complete topology, link cost info โ€ข โ€œlink stateโ€ algorithms decentralized: iterative process of computation, exchange of info with neighbors โ€ข routers initially only know link costs to attached neighbors โ€ข โ€œdistance vectorโ€ algorithms How fast do routes change? dynamic: routes change more quickly โ€ข periodic updates or in response to link cost changes static: routes change slowly over time
  • 12. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚งrouting protocols ๏‚ง link state ๏‚ง distance vector ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-12
  • 13. Dijkstraโ€™s link-state routing algorithm Network Layer: 5-13 ๏‚ง centralized: network topology, link costs known to all nodes โ€ข accomplished via โ€œlink state broadcastโ€ โ€ข all nodes have same info ๏‚ง computes least cost 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 destinations ๏‚ง cx,y: direct link cost from node x to y; = โˆž if not direct neighbors ๏‚ง D(v): current estimate of cost of least-cost-path from source to destination v ๏‚ง p(v): predecessor node along path from source to v ๏‚ง N': set of nodes whose least- cost-path definitively known notation
  • 14. Dijkstraโ€™s link-state routing algorithm Network Layer: 5-14 1 Initialization: 2 N' = {u} /* compute least cost path from u to all other nodes */ 3 for all nodes v 4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */ 5 then D(v) = cu,v /* but may not be minimum cost! */ 6 else D(v) = โˆž 7 8 Loop 9 10 11 12 13 14 15 until all nodes in N' find w not in N' such that D(w) is a minimum add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min ( D(v), D(w) + cw,v ) /* new least-path-cost to v is either old least-cost-path to v or known least-cost-path to w plus direct-cost from w to v */
  • 15. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) u y x w v z 2 2 1 3 1 1 2 5 3 5 D(w),p(w) 5,u โˆž โˆž 1,u 2,u u v w x y z Initialization (step 0): For all a: if a adjacent to u then D(a) = cu,a
  • 16. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5
  • 17. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 11 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b ) โˆž 2,x 4,x 2,u D(v) = min ( D(v), D(x) + cx,v ) = min(2, 1+2) = 2 D(w) = min ( D(w), D(x) + cx,w ) = min (5, 1+3) = 4 D(y) = min ( D(y), D(x) + cx,y ) = min(inf,1+1) = 2
  • 18. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy
  • 19. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 11 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b ) 4,y 3,y 2,u D(w) = min ( D(w), D(y) + cy,w ) = min (4, 2+1) = 3 D(z) = min ( D(z), D(y) + cy,z ) = min(inf,2+2) = 4
  • 20. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv
  • 21. update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b ) D(w) = min ( D(w), D(v) + cv,w ) = min (3, 2+3) = 3 Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 11 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv 4,y 3,y
  • 22. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv 4,y 3,y uxyvw
  • 23. update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b ) D(z) = min ( D(z), D(w) + cw,z ) = min (4, 3+5) = 4 Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 11 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv 4,y 3,y uxyvw 4,y
  • 24. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv 4,y 3,y uxyvw 4,y uxyvwz
  • 25. Dijkstraโ€™s algorithm: an example Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) D(w),p(w) 5,u โˆž โˆž 1,u 2,u u 8 Loop 9 10 11 find a not in N' such that D(a) is a minimum add a to N' ux v w x y z u y x w v z 2 2 1 3 1 1 2 5 3 5 โˆž 2,x 4,x 2,u uxy 4,y 3,y 2,u uxyv 4,y 3,y uxyvw 4,y uxyvwz update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b )
  • 26. Dijkstraโ€™s algorithm: an example Network Layer: 5-27 u y x w v z 2 2 1 3 1 1 2 5 3 5 u y x w v z resulting least-cost-path tree from u: resulting forwarding table in u: v x y w x (u,v) (u,x) (u,x) (u,x) (u,x) destination outgoing link route from u to v directly route from u to all other destinations via x
  • 27. Dijkstraโ€™s algorithm: another example Network Layer: 5-28 w 3 4 v x u 5 3 7 4 y 8 z 2 7 9 Step N' D(v), p(v) 0 1 2 3 4 5 D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) u โˆž โˆž 7,u 3,u 5,u uw โˆž 11,w 6,w 5,u 14,x 11,w 6,w uwx uwxv 14,x 10,v uwxvy 12,y notes: ๏‚ง construct least-cost-path tree by tracing predecessor nodes ๏‚ง ties can exist (can be broken arbitrarily) uwxvyz v w x y z
  • 28. Dijkstraโ€™s algorithm: discussion Network Layer: 5-29 algorithm complexity: n nodes ๏‚ง each of n iteration: need to check all nodes, w, not in N ๏‚ง n(n+1)/2 comparisons: O(n2 ) complexity ๏‚ง more efficient implementations possible: O(nlogn) message complexity: ๏‚ง each router must broadcast its link state information to other n routers ๏‚ง efficient (and interesting!) broadcast algorithms: O(n) link crossings to disseminate a broadcast message from one source ๏‚ง each routerโ€™s message crosses O(n) links: overall message complexity: O(n2 )
  • 29. Dijkstraโ€™s algorithm: oscillations possible Network Layer: 5-30 ๏‚ง when link costs depend on traffic volume, route oscillations possible a d c b 1 1+e e 0 e 1 1 0 0 initially a d c b given these costs, find new routingโ€ฆ. resulting in new costs 2+e 0 0 0 1+e 1 a d c b given these costs, find new routingโ€ฆ. resulting in new costs 0 2+e 1+e 1 0 0 a d c b given these costs, find new routingโ€ฆ. resulting in new costs 2+e 0 0 0 1+e 1 ๏‚ง sample scenario: โ€ข routing to destination a, traffic entering at d, c, e with rates 1, e (<1), 1 โ€ข link costs are directional, and volume-dependent e 1 1 e 1 1 e 1 1
  • 30. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚งrouting protocols ๏‚ง link state ๏‚ง distance vector ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-31
  • 31. Based on Bellman-Ford (BF) equation (dynamic programming): Distance vector algorithm Network Layer: 5-32 Let Dx(y): cost of least-cost path from x to y. Then: Dx(y) = minv { cx,v + Dv(y) } Bellman-Ford equation min taken over all neighbors v of x vโ€™s estimated least-cost-path cost to y direct cost of link from x to v
  • 32. Bellman-Ford Example Network Layer: 5-33 u y z 2 2 1 3 1 1 2 5 3 5 Suppose that uโ€™s neighboring nodes, x,v,w, know that for destination z: Du(z) = min { cu,v + Dv(z), cu,x + Dx(z), cu,w + Dw(z) } Bellman-Ford equation says: Dv(z) = 5 v Dw(z) = 3 w Dx(z) = 3 x = min {2 + 5, 1 + 3, 5 + 3} = 4 node achieving minimum (x) is next hop on estimated least- cost path to destination (z)
  • 33. Distance vector algorithm Network Layer: 5-34 key idea: ๏‚ง from time-to-time, each node sends its own distance vector estimate to neighbors ๏‚ง under minor, natural conditions, the estimate Dx (y) converge to the actual least cost dx(y) Dx (y) โ† minv {cx,v + Dv (y)} for each node y โˆŠ N ๏‚ง when x receives new DV estimate from any neighbor, it updates its own DV using B-F equation:
  • 34. Distance vector algorithm: Network Layer: 5-35 iterative, asynchronous: each local iteration caused by: ๏‚ง local link cost change ๏‚ง DV update message from neighbor wait for (change in local link cost or msg from neighbor) each node: distributed, self-stopping: each node notifies neighbors only when its DV changes ๏‚ง neighbors then notify their neighbors โ€“ only if necessary ๏‚ง no notification received, no actions taken! recompute DV estimates using DV received from neighbor if DV to any destination has changed, notify neighbors
  • 35. DV in a: Da(a)=0 Da(b) = 8 Da(c) = โˆž Da(d) = 1 Da(e) = โˆž Da(f) = โˆž Da(g) = โˆž Da(h) = โˆž Da(i) = โˆž Distance vector: example Network Layer: 5-36 g h i 1 1 1 1 1 1 1 1 1 8 1 t=0 ๏‚ง All nodes have distance estimates to nearest neighbors (only) A few asymmetries: ๏‚ง missing link ๏‚ง larger cost d e f a b c ๏‚ง All nodes send their local distance vector to their neighbors
  • 36. Distance vector example: iteration Network Layer: 5-37 All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=1 g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c
  • 37. Distance vector example: iteration Network Layer: 5-38 g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=1 compute compute compute compute compute compute compute compute compute
  • 38. Distance vector example: iteration Network Layer: 5-39 g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=1
  • 39. Distance vector example: iteration Network Layer: 5-40 g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=2
  • 40. Distance vector example: iteration Network Layer: 5-41 g h i 1 1 1 1 1 1 1 8 1 2 1 d e f a b c All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=2 compute compute compute compute compute compute compute compute compute
  • 41. Distance vector example: iteration Network Layer: 5-42 g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c All nodes: ๏‚ง receive distance vectors from neighbors ๏‚ง compute their new local distance vector ๏‚ง send their new local distance vector to neighbors t=2
  • 42. Distance vector example: iteration Network Layer: 5-43 โ€ฆ. and so on Letโ€™s next take a look at the iterative computations at nodes
  • 43. DV in a: Da(a)=0 Da(b) = 8 Da(c) = โˆž Da(d) = 1 Da(e) = โˆž Da(f) = โˆž Da(g) = โˆž Da(h) = โˆž Da(i) = โˆž Distance vector example: computation Network Layer: 5-44 g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = โˆž Db(g) = โˆž Db(h) = โˆž Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = โˆž Db(e) = 1 ๏‚ง b receives DVs from a, c, e a b c d e f DV in c: Dc(a) = โˆž Dc(b) = 1 Dc(c) = 0 Dc(d) = โˆž Dc(e) = โˆž Dc(f) = โˆž Dc(g) = โˆž Dc(h) = โˆž Dc(i) = โˆž DV in e: De(a) = โˆž De(b) = 1 De(c) = โˆž De(d) = 1 De(e) = 0 De(f) = 1 De(g) = โˆž De(h) = 1 De(i) = โˆž
  • 44. Distance vector example: computation DV in a: Da(a)=0 Da(b) = 8 Da(c) = โˆž Da(d) = 1 Da(e) = โˆž Da(f) = โˆž Da(g) = โˆž Da(h) = โˆž Da(i) = โˆž DV in b: Db(f) = โˆž Db(g) = โˆž Db(h) = โˆž Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = โˆž Db(e) = 1 DV in c: Dc(a) = โˆž Dc(b) = 1 Dc(c) = 0 Dc(d) = โˆž Dc(e) = โˆž Dc(f) = โˆž Dc(g) = โˆž Dc(h) = โˆž Dc(i) = โˆž DV in e: De(a) = โˆž De(b) = 1 De(c) = โˆž De(d) = 1 De(e) = 0 De(f) = 1 De(g) = โˆž De(h) = 1 De(i) = โˆž Network Layer: 5-45 g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 ๏‚ง b receives DVs from a, c, e, computes: a b c d e f DV in b: Db(f) =2 Db(g) = โˆž Db(h) = 2 Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = 2 Db(e) = 1 e compute b Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,โˆž,โˆž} = 8 Db(c) = min{cb,a+Da(c), cb,c +Dc(c), cb,e +De(c)} = min{โˆž,1,โˆž} = 1 Db(d) = min{cb,a+Da(d), cb,c +Dc(d), cb,e +De(d)} = min{9,2,โˆž} = 2 Db(f) = min{cb,a+Da(f), cb,c +Dc(f), cb,e +De(f)} = min{โˆž,โˆž,2} = 2 Db(i) = min{cb,a+Da(i), cb,c +Dc(i), cb,e+De(i)} = min{โˆž,โˆž, โˆž} = โˆž Db(h) = min{cb,a+Da(h), cb,c +Dc(h), cb,e+De(h)} = min{โˆž,โˆž, 2} = 2 Db(e) = min{cb,a+Da(e), cb,c +Dc(e), cb,e +De(e)} = min{โˆž,โˆž,1} = 1 Db(g) = min{cb,a+Da(g), cb,c +Dc(g), cb,e+De(g)} = min{โˆž,โˆž, โˆž} = โˆž
  • 45. DV in a: Da(a)=0 Da(b) = 8 Da(c) = โˆž Da(d) = 1 Da(e) = โˆž Da(f) = โˆž Da(g) = โˆž Da(h) = โˆž Da(i) = โˆž Distance vector example: computation Network Layer: 5-46 g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = โˆž Db(g) = โˆž Db(h) = โˆž Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = โˆž Db(e) = 1 ๏‚ง c receives DVs from b a b c d e f DV in c: Dc(a) = โˆž Dc(b) = 1 Dc(c) = 0 Dc(d) = โˆž Dc(e) = โˆž Dc(f) = โˆž Dc(g) = โˆž Dc(h) = โˆž Dc(i) = โˆž DV in e: De(a) = โˆž De(b) = 1 De(c) = โˆž De(d) = 1 De(e) = 0 De(f) = 1 De(g) = โˆž De(h) = 1 De(i) = โˆž
  • 46. Distance vector example: computation Network Layer: 5-47 g h i 1 1 8 1 t=1 DV in b: Db(f) = โˆž Db(g) = โˆž Db(h) = โˆž Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = โˆž Db(e) = 1 ๏‚ง c receives DVs from b computes: a b c d e f DV in c: Dc(a) = โˆž Dc(b) = 1 Dc(c) = 0 Dc(d) = โˆž Dc(e) = โˆž Dc(f) = โˆž Dc(g) = โˆž Dc(h) = โˆž Dc(i) = โˆž Dc(a) = min{cc,b+Db(a}} = 1 + 8 = 9 Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1 Dc(d) = min{cc,b+Db(d)} = 1+ โˆž = โˆž Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2 Dc(f) = min{cc,b+Db(f)} = 1+ โˆž = โˆž Dc(g) = min{cc,b+Db(g)} = 1+ โˆž = โˆž Dc(i) = min{cc,b+Db(i)} = 1+ โˆž = โˆž Dc(h) = min{cbc,b+Db(h)} = 1+ โˆž = โˆž DV in c: Dc(a) = 9 Dc(b) = 1 Dc(c) = 0 Dc(d) = 2 Dc(e) = โˆž Dc(f) = โˆž Dc(g) = โˆž Dc(h) = โˆž Dc(i) = โˆž compute * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
  • 47. Distance vector example: computation Network Layer: 5-48 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = โˆž Db(g) = โˆž Db(h) = โˆž Db(i) = โˆž Db(a) = 8 Db(c) = 1 Db(d) = โˆž Db(e) = 1 ๏‚ง e receives DVs from b, d, f, h a b c DV in f: Dc(a) = โˆž Dc(b) = โˆž Dc(c) = โˆž Dc(d) = โˆž Dc(e) = 1 Dc(f) = 0 Dc(g) = โˆž Dc(h) = โˆž Dc(i) = 1 DV in e: De(a) = โˆž De(b) = 1 De(c) = โˆž De(d) = 1 De(e) = 0 De(f) = 1 De(g) = โˆž De(h) = 1 De(i) = โˆž DV in h: Dc(a) = โˆž Dc(b) = โˆž Dc(c) = โˆž Dc(d) = โˆž Dc(e) = 1 Dc(f) = โˆž Dc(g) = 1 Dc(h) = 0 DV in d: Dc(a) = 1 Dc(b) = โˆž Dc(c) = โˆž Dc(d) = 0 Dc(e) = 1 Dc(f) = โˆž Dc(g) = 1 Dc(h) = โˆž Dc(i) = โˆž d e f g h i Q: what is new DV computed in e at t=1? compute
  • 48. Distance vector: state information diffusion t=0 cโ€™s state at t=0 is at c only g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c cโ€™s state at t=0 has propagated to b, and may influence distance vector computations up to 1 hop away, i.e., at b t=1 cโ€™s state at t=0 may now influence distance vector computations up to 2 hops away, i.e., at b and now at a, e as well t=2 cโ€™s state at t=0 may influence distance vector computations up to 3 hops away, i.e., at d, f, h t=3 cโ€™s state at t=0 may influence distance vector computations up to 4 hops away, i.e., at g, i t=4 Iterative communication, computation steps diffuses information through network: t=1 t=2 t=3 t=4
  • 49. Distance vector: link cost changes โ€œgood news travels fastโ€ t0 : y detects link-cost change, updates its DV, informs its neighbors. t1 : z receives update from y, updates its DV, computes new least cost to x , sends its neighbors its DV. t2 : y receives zโ€™s update, updates its DV. yโ€™s least costs do not change, so y does not send a message to z. link cost changes: ๏‚ง node detects local link cost change ๏‚ง updates routing info, recalculates local DV ๏‚ง if DV changes, notify neighbors x z 1 4 50 y 1
  • 50. Distance vector: link cost changes link cost changes: ๏‚ง node detects local link cost change ๏‚ง โ€œbad news travels slowโ€ โ€“ count-to-infinity problem: x z 1 4 50 y 60 โ€ข y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So y computes โ€œmy new cost to x will be 6, via z); notifies z of new cost of 6 to x. โ€ข z learns that path to x via y has new cost 6, so z computes โ€œmy new cost to x will be 7 via y), notifies y of new cost of 7 to x. โ€ข y learns that path to x via z has new cost 7, so y computes โ€œmy new cost to x will be 8 via y), notifies z of new cost of 8 to x. โ€ข z learns that path to x via y has new cost 8, so z computes โ€œmy new cost to x will be 9 via y), notifies y of new cost of 9 to x. โ€ฆ ๏‚ง see text for solutions. Distributed algorithms are tricky!
  • 51. Comparison of LS and DV algorithms message complexity LS: n routers, O(n2 ) messages sent DV: exchange between neighbors; convergence time varies speed of convergence LS: O(n2 ) algorithm, O(n2 ) messages โ€ข may have oscillations DV: convergence time varies โ€ข may have routing loops โ€ข count-to-infinity problem robustness: what happens if router malfunctions, or is compromised? LS: โ€ข router can advertise incorrect link cost โ€ข each router computes only its own table DV: โ€ข DV router can advertise incorrect path cost (โ€œI have a really low-cost path to everywhereโ€): black-holing โ€ข each routerโ€™s DV is used by others: error propagate thru network
  • 52. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚ง routing protocols ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-53
  • 53. our routing study thus far - idealized ๏‚ง all routers identical ๏‚ง network โ€œflatโ€ โ€ฆ not true in practice Making routing scalable Network Layer: 5-54 scale: billions of destinations: ๏‚ง canโ€™t store all destinations in routing tables! ๏‚ง routing table exchange would swamp links! administrative autonomy: ๏‚ง Internet: a network of networks ๏‚ง each network admin may want to control routing in its own network
  • 54. aggregate routers into regions known as โ€œautonomous systemsโ€ (AS) (a.k.a. โ€œdomainsโ€) Internet approach to scalable routing Network Layer: 5-55 intra-AS (aka โ€œintra-domainโ€): routing among routers within same AS (โ€œnetworkโ€) ๏‚ง all routers in AS must run same intra- domain protocol ๏‚ง routers in different AS can run different intra-domain routing protocols ๏‚ง gateway router: at โ€œedgeโ€ of its own AS, has link(s) to router(s) in other ASโ€™es inter-AS (aka โ€œinter-domainโ€): routing among ASโ€™es ๏‚ง gateways perform inter-domain routing (as well as intra-domain routing)
  • 55. Interconnected ASes Network Layer: 5-56 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c intra-AS routing intra-AS routing intra-AS routing inter-AS routing forwarding table forwarding table configured by intra- and inter-AS routing algorithms Intra-AS Routing Inter-AS Routing ๏‚ง intra-AS routing determine entries for destinations within AS ๏‚ง inter-AS & intra-AS determine entries for external destinations
  • 56. Inter-AS routing: a role in intradomain forwarding Network Layer: 5-57 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c other networks other networks ๏‚ง suppose router in AS1 receives datagram destined outside of AS1: AS1 inter-domain routing must: 1. learn which destinations reachable through AS2, which through AS3 2. propagate this reachability info to all routers in AS1 โ€ข router should forward packet to gateway router in AS1, but which one?
  • 57. Intra-AS routing: routing within an AS Network Layer: 5-58 most common intra-AS routing protocols: ๏‚ง RIP: Routing Information Protocol [RFC 1723] โ€ข classic DV: DVs exchanged every 30 secs โ€ข no longer widely used ๏‚ง EIGRP: Enhanced Interior Gateway Routing Protocol โ€ข DV based โ€ข formerly Cisco-proprietary for decades (became open in 2013 [RFC 7868]) ๏‚ง OSPF: Open Shortest Path First [RFC 2328] โ€ข link-state routing โ€ข IS-IS protocol (ISO standard, not RFC standard) essentially same as OSPF
  • 58. OSPF (Open Shortest Path First) routing Network Layer: 5-59 ๏‚ง โ€œopenโ€: publicly available ๏‚ง classic link-state โ€ข each router floods OSPF link-state advertisements (directly over IP rather than using TCP/UDP) to all other routers in entire AS โ€ข multiple link costs metrics possible: bandwidth, delay โ€ข each router has full topology, uses Dijkstraโ€™s algorithm to compute forwarding table ๏‚ง security: all OSPF messages authenticated (to prevent malicious intrusion)
  • 59. Hierarchical OSPF Network Layer: 5-60 ๏‚ง two-level hierarchy: local area, backbone. โ€ข link-state advertisements flooded only in area, or backbone โ€ข each node has detailed area topology; only knows direction to reach other destinations area border routers: โ€œsummarizeโ€ distances to destinations in own area, advertise in backbone area 1 area 2 area 3 backbone internal routers backbone router: runs OSPF limited to backbone boundary router: connects to other ASes local routers: โ€ข flood LS in area only โ€ข compute routing within area โ€ข forward packets to outside via area border router
  • 60. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚ง routing protocols ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-61
  • 61. Interconnected ASes 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c intra-AS routing intra-AS routing intra-AS routing inter-AS routing intra-AS (aka โ€œintra-domainโ€): routing among routers within same AS (โ€œnetworkโ€) inter-AS (aka โ€œinter-domainโ€): routing among ASโ€™es Network Layer Control Plane: 5-62
  • 62. ๏‚ง BGP (Border Gateway Protocol): the de facto inter-domain routing protocol โ€ข โ€œglue that holds the Internet togetherโ€ ๏‚ง allows subnet to advertise its existence, and the destinations it can reach, to rest of Internet: โ€œI am here, here is who I can reach, and howโ€ ๏‚ง BGP provides each AS a means to: โ€ข obtain destination network reachability info from neighboring ASes (eBGP) โ€ข determine routes to other networks based on reachability information and policy โ€ข propagate reachability information to all AS-internal routers (iBGP) โ€ข advertise (to neighboring networks) destination reachability info Internet inter-AS routing: BGP Network Layer Control Plane: 5-63
  • 63. eBGP, iBGP connections Network Layer: 5-64 eBGP connectivity logical iBGP connectivity 1b 1d 1c 1a 2b 2d 2c 2a 3b 3d 3c 3a AS 2 AS 3 AS 1 1c โˆ‚ โˆ‚ gateway routers run both eBGP and iBGP protocols
  • 64. BGP basics Network Layer: 5-65 ๏‚ง when AS3 gateway 3a advertises path AS3,X to AS2 gateway 2c: โ€ข AS3 promises to AS2 it will forward datagrams towards X ๏‚ง BGP session: two BGP routers (โ€œpeersโ€) exchange BGP messages over semi-permanent TCP connection: โ€ข advertising paths to different destination network prefixes (BGP is a โ€œpath vectorโ€ protocol) 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X BGP advertisement: AS3, X
  • 65. BGP protocol messages ๏‚ง BGP messages exchanged between peers over TCP connection ๏‚ง BGP messages [RFC 4371]: โ€ข OPEN: opens TCP connection to remote BGP peer and authenticates sending BGP peer โ€ข UPDATE: advertises new path (or withdraws old) โ€ข KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs OPEN request โ€ข NOTIFICATION: reports errors in previous msg; also used to close connection
  • 66. Path attributes and BGP routes Network Layer: 5-67 ๏‚ง BGP advertised route: prefix + attributes โ€ข prefix: destination being advertised โ€ข two important attributes: โ€ข AS-PATH: list of ASes through which prefix advertisement has passed โ€ข NEXT-HOP: indicates specific internal-AS router to next-hop AS ๏‚ง policy-based routing: โ€ข gateway receiving route advertisement uses import policy to accept/decline path (e.g., never route through AS Y). โ€ข AS policy also determines whether to advertise path to other other neighboring ASes
  • 67. 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X BGP path advertisement Network Layer: 5-68 ๏‚ง based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all AS2 routers AS2,AS3,X ๏‚ง AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a ๏‚ง based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to AS1 router 1c AS3, X
  • 68. Network Layer: 5-69 AS2,AS3,X ๏‚ง AS1 gateway router 1c learns path AS2,AS3,X from 2a gateway router may learn about multiple paths to destination: AS3,X ๏‚ง AS1 gateway router 1c learns path AS3,X from 3a ๏‚ง based on policy, AS1 gateway router 1c chooses path AS3,X and advertises path within AS1 via iBGP AS3, X 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X AS3,X AS3,X AS3,X BGP path advertisement: multiple paths
  • 69. 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X BGP: populating forwarding tables AS2,AS3,X AS3,X AS3, X ๏‚ง recall: 1a, 1b, 1d learn via iBGP from 1c: โ€œpath to X goes through 1cโ€ ๏‚ง at 1d: OSPF intra-domain routing: to get to 1c, use interface 1 1 2 1 2 dest interface โ€ฆ โ€ฆ โ€ฆ โ€ฆ local link interfaces at 1a, 1d ๏‚ง at 1d: to get to X, use interface 1 1c 1 X 1 AS3,X AS3,X AS3,X
  • 70. 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X BGP: populating forwarding tables ๏‚ง recall: 1a, 1b, 1d learn via iBGP from 1c: โ€œpath to X goes through 1cโ€ ๏‚ง at 1d: OSPF intra-domain routing: to get to 1c, use interface 1 1 2 ๏‚ง at 1d: to get to X, use interface 1 dest interface โ€ฆ โ€ฆ โ€ฆ โ€ฆ 1c 2 X 2 ๏‚ง at 1a: OSPF intra-domain routing: to get to 1c, use interface 2 ๏‚ง at 1a: to get to X, use interface 2
  • 71. 2b 2d 2c 2a AS 2 3b 3d 3c 3a AS 3 1b 1d 1c 1a AS 1 X Hot potato routing Network Layer: 5-72 ๏‚ง 2d learns (via iBGP) it can route to X via 2a or 2c ๏‚ง hot potato routing: choose local gateway that has least intra-domain cost (e.g., 2d chooses 2a, even though more AS hops to X): donโ€™t worry about inter-domain cost! AS3,X AS1,AS3,X OSPF link weights 201 112 263
  • 72. BGP: achieving policy via advertisements Network Layer: 5-73 B legend: customer network: provider network ๏‚ง A advertises path Aw to B and to C ๏‚ง B chooses not to advertise BAw to C! ๏‚ง B gets no โ€œrevenueโ€ for routing CBAw, since none of C, A, w are Bโ€™s customers ๏‚ง C does not learn about CBAw path ๏‚ง C will route CAw (not using B) to get to w ISP only wants to route traffic to/from its customer networks (does not want to carry transit traffic between other ISPs โ€“ a typical โ€œreal worldโ€ policy) w A y C x A,w A,w
  • 73. BGP: achieving policy via advertisements (more) Network Layer: 5-74 B ISP only wants to route traffic to/from its customer networks (does not want to carry transit traffic between other ISPs โ€“ a typical โ€œreal worldโ€ policy) w A y C x ๏‚ง A,B,C are provider networks ๏‚ง x,w,y are customer (of provider networks) ๏‚ง x is dual-homed: attached to two networks ๏‚ง policy to enforce: x does not want to route from B to C via x ๏‚ง .. so x will not advertise to B a route to C legend: customer network: provider network
  • 74. ๏‚ง router may learn about more than one route to destination AS, selects route based on: 1. local preference value attribute: policy decision 2. shortest AS-PATH 3. closest NEXT-HOP router: hot potato routing 4. additional criteria BGP route selection Network Layer: 5-75
  • 75. Why different Intra-, Inter-AS routing ? Network Layer: 5-76 policy: ๏‚ง inter-AS: admin wants control over how its traffic routed, who routes through its network ๏‚ง intra-AS: single admin, so policy less of an issue scale: ๏‚ง hierarchical routing saves table size, reduced update traffic performance: ๏‚ง intra-AS: can focus on performance ๏‚ง inter-AS: policy dominates over performance
  • 76. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚ง routing protocols ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-77
  • 77. ๏‚ง Internet network layer: historically implemented via distributed, per-router control approach: โ€ข monolithic router contains switching hardware, runs proprietary implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF, BGP) in proprietary router OS (e.g., Cisco IOS) โ€ข different โ€œmiddleboxesโ€ for different network layer functions: firewalls, load balancers, NAT boxes, .. ๏‚ง ~2005: renewed interest in rethinking network control plane Software defined networking (SDN) Network Layer: 5-78
  • 78. Per-router control plane Individual routing algorithm components in each and every router interact in the control plane to computer forwarding tables Routing Algorithm data plane control plane 1 2 0111 values in arriving packet header 3 Network Layer: 4-79
  • 79. Software-Defined Networking (SDN) control plane Remote controller computes, installs forwarding tables in routers data plane control plane Remote Controller CA CA CA CA CA 1 2 0111 3 values in arriving packet header Network Layer: 4-80
  • 80. Why a logically centralized control plane? ๏‚ง easier network management: avoid router misconfigurations, greater flexibility of traffic flows ๏‚ง table-based forwarding (recall OpenFlow API) allows โ€œprogrammingโ€ routers โ€ข centralized โ€œprogrammingโ€ easier: compute tables centrally and distribute โ€ข distributed โ€œprogrammingโ€ more difficult: compute tables as result of distributed algorithm (protocol) implemented in each-and-every router ๏‚ง open (non-proprietary) implementation of control plane โ€ข foster innovation: let 1000 flowers bloom Software defined networking (SDN) Network Layer: 5-81
  • 81. SDN analogy: mainframe to PC revolution Network Layer: 5-82 Vertically integrated Closed, proprietary Slow innovation Small industry Specialized Operating System Specialized Hardware Ap p Ap p Ap p Ap p Ap p Ap p Ap p Ap p Ap p Ap p App Specialized Applications Horizontal Open interfaces Rapid innovation Huge industry Microprocessor Open Interface * Slide courtesy: N. McKeown or or Open Interface Windows Linux MAC OS
  • 82. 2 2 1 3 1 1 2 5 3 5 v w u z y x Traffic engineering: difficult with traditional routing Network Layer: 5-83 Q: what if network operator wants u-to-z traffic to flow along uvwz, rather than uxyz? A: need to re-define link weights so traffic routing algorithm computes routes accordingly (or need a new routing algorithm)! link weights are only control โ€œknobsโ€: not much control!
  • 83. 2 2 1 3 1 1 2 5 3 5 v w u z y x Traffic engineering: difficult with traditional routing Network Layer: 5-84 Q: what if network operator wants to split u-to-z traffic along uvwz and uxyz (load balancing)? A: canโ€™t do it (or need a new routing algorithm)
  • 84. Traffic engineering: difficult with traditional routing Network Layer: 5-85 Q: what if w wants to route blue and red traffic differently from w to z? A: canโ€™t do it (with destination-based forwarding, and LS, DV routing) 2 2 1 3 1 1 2 5 3 5 v w u z y x We learned in Chapter 4 that generalized forwarding and SDN can be used to achieve any routing desired
  • 85. Software defined networking (SDN) Network Layer: 5-86 data plane control plane Remote Controller CA CA CA CA CA 1: generalized โ€œflow-basedโ€ forwarding (e.g., OpenFlow) 2. control, data plane separation 3. control plane functions external to data-plane switches โ€ฆ routing access control load balance 4. programmable control applications
  • 86. Software defined networking (SDN) Network Layer: 5-87 Data-plane switches: ๏‚ง fast, simple, commodity switches implementing generalized data-plane forwarding (Section 4.4) in hardware ๏‚ง flow (forwarding) table computed, installed under controller supervision ๏‚ง API for table-based switch control (e.g., OpenFlow) โ€ข defines what is controllable, what is not ๏‚ง protocol for communicating with controller (e.g., OpenFlow) data plane control plane SDN Controller (network operating system) โ€ฆ routing access control load balance southbound API northbound API SDN-controlled switches network-control applications
  • 87. Software defined networking (SDN) Network Layer: 5-88 SDN controller (network OS): ๏‚ง maintain network state information ๏‚ง interacts with network control applications โ€œaboveโ€ via northbound API ๏‚ง interacts with network switches โ€œbelowโ€ via southbound API ๏‚ง implemented as distributed system for performance, scalability, fault- tolerance, robustness data plane control plane SDN Controller (network operating system) โ€ฆ routing access control load balance southbound API northbound API SDN-controlled switches network-control applications
  • 88. Software defined networking (SDN) Network Layer: 5-89 network-control apps: ๏‚ง โ€œbrainsโ€ of control: implement control functions using lower- level services, API provided by SDN controller ๏‚ง unbundled: can be provided by 3rd party: distinct from routing vendor, or SDN controller data plane control plane SDN Controller (network operating system) โ€ฆ routing access control load balance southbound API northbound API SDN-controlled switches network-control applications
  • 89. Components of SDN controller Network Layer: 5-90 Network-wide distributed, robust state management Communication to/from controlled devices Link-state info switch info host info statistics flow tables โ€ฆ โ€ฆ OpenFlow SNMP โ€ฆ network graph intent RESTful API โ€ฆ Interface, abstractions for network control apps SDN controller routing access control load balance communication: communicate between SDN controller and controlled switches network-wide state management : state of networks links, switches, services: a distributed database interface layer to network control apps: abstractions API
  • 90. OpenFlow protocol Network Layer: 5-91 ๏‚ง operates between controller, switch ๏‚ง TCP used to exchange messages โ€ข optional encryption ๏‚ง three classes of OpenFlow messages: โ€ข controller-to-switch โ€ข asynchronous (switch to controller) โ€ข symmetric (misc.) ๏‚ง distinct from OpenFlow API โ€ข API used to specify generalized forwarding actions OpenFlow Controller
  • 91. OpenFlow: controller-to-switch messages Network Layer: 5-92 Key controller-to-switch messages ๏‚ง features: controller queries switch features, switch replies ๏‚ง configure: controller queries/sets switch configuration parameters ๏‚ง modify-state: add, delete, modify flow entries in the OpenFlow tables ๏‚ง packet-out: controller can send this packet out of specific switch port OpenFlow Controller
  • 92. OpenFlow: switch-to-controller messages Network Layer: 5-93 Key switch-to-controller messages ๏‚ง packet-in: transfer packet (and its control) to controller. See packet-out message from controller ๏‚ง flow-removed: flow table entry deleted at switch ๏‚ง port status: inform controller of a change on a port. Fortunately, network operators donโ€™t โ€œprogramโ€ switches by creating/sending OpenFlow messages directly. Instead use higher-level abstraction at controller OpenFlow Controller
  • 93. SDN: control/data plane interaction example Network Layer: 5-94 Link-state info switch info host info statistics flow tables โ€ฆ โ€ฆ OpenFlow SNMP โ€ฆ network graph intent RESTful API โ€ฆ Dijkstraโ€™s link-state routing s1 s2 s3 s4 S1, experiencing link failure uses OpenFlow port status message to notify controller 1 SDN controller receives OpenFlow message, updates link status info 2 Dijkstraโ€™s routing algorithm application has previously registered to be called when ever link status changes. It is called. 3 Dijkstraโ€™s routing algorithm access network graph info, link state info in controller, computes new routes 4 1 2 3 4
  • 94. SDN: control/data plane interaction example Network Layer: 5-95 Link-state info switch info host info statistics flow tables โ€ฆ โ€ฆ OpenFlow SNMP โ€ฆ network graph intent RESTful API โ€ฆ Dijkstraโ€™s link-state routing s1 s2 s3 s4 link state routing app interacts with flow-table-computation component in SDN controller, which computes new flow tables needed 5 controller uses OpenFlow to install new tables in switches that need updating 6 5 6 1 2 3 4
  • 95. Google ORION SDN control plane ORION: Googleโ€™s SDN control plane (NSDIโ€™21): control plane for Googleโ€™s datacenter (Jupiter) and wide area (B4) networks Orion SDN architecture and core apps ๏‚ง routing (intradomain, iBGP), traffic engineering: implemented in applications on top of ORION core ๏‚ง edge-edge flow-based controls (e.g., CoFlow scheduling) to meet contract SLAs ๏‚ง management: pub-sub distributed microservices in Orion core, OpenFlow for switch signaling/monitoring Note: ORION provides intradomain services within Googleโ€™s network
  • 96. OpenDaylight (ODL) controller Network Layer: 5-97 Network Orchestrations and Applications Southbound API Service Abstraction Layer (SAL) config. and operational data store REST/RESTCONF/NETCONF APIs messaging OpenFlow NETCONF SNMP OVSDB โ€ฆ Northbound API Traffic Engineering โ€ฆ Firewalling Load Balancing Basic Network Functions Enhanced Services โ€ฆ โ€ฆ Forwarding rules mgr. AAA Host Tracker Stats mgr. Switch mgr. Topology processing Service Abstraction Layer: ๏‚ง interconnects internal, external applications and services
  • 97. ONOS controller Network Layer: 5-98 Network Applications Southbound API Northbound API Traffic Engineering โ€ฆ Firewalling Load Balancing southbound abstractions, protocols OpenFlow Netconf OVSDB device link host flow packet northbound abstractions, protocols REST API Intent ONOS distributed core statistics devices hosts links paths flow rules topology ๏‚ง control apps separate from controller ๏‚ง intent framework: high- level specification of service: what rather than how ๏‚ง considerable emphasis on distributed core: service reliability, replication performance scaling
  • 98. ๏‚ง hardening the control plane: dependable, reliable, performance- scalable, secure distributed system โ€ข robustness to failures: leverage strong theory of reliable distributed system for control plane โ€ข dependability, security: โ€œbaked inโ€ from day one? ๏‚ง networks, protocols meeting mission-specific requirements โ€ข e.g., real-time, ultra-reliable, ultra-secure ๏‚ง Internet-scaling: beyond a single AS ๏‚ง SDN critical in 5G cellular networks SDN: selected challenges Network Layer: 5-99
  • 99. ๏‚ง SDN-computed versus router-computer forwarding tables: โ€ข just one example of logically-centralized-computed versus protocol computed ๏‚ง one could imagine SDN-computed congestion control: โ€ข controller sets sender rates based on router-reported (to controller) congestion levels SDN and the future of traditional network protocols Network Layer: 5-100 How will implementation of network functionality (SDN versus protocols) evolve?
  • 100. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚ง routing protocols ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-101
  • 101. ICMP: internet control message protocol Network Layer: 4-102 ๏‚ง used by hosts and routers to communicate network-level information โ€ข error reporting: unreachable host, network, port, protocol โ€ข echo request/reply (used by ping) ๏‚ง network-layer โ€œaboveโ€ IP: โ€ข ICMP messages carried in IP datagrams ๏‚ง ICMP message: type, code plus first 8 bytes of IP datagram causing error Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header
  • 102. Traceroute and ICMP Network Layer: 4-103 ๏‚ง when ICMP message arrives at source: record RTTs stopping criteria: ๏‚ง UDP segment eventually arrives at destination host ๏‚ง destination returns ICMP โ€œport unreachableโ€ message (type 3, code 3) ๏‚ง source stops 3 probes 3 probes 3 probes ๏‚ง source sends sets of UDP segments to destination โ€ข 1st set has TTL =1, 2nd set has TTL=2, etc. ๏‚ง datagram in nth set arrives to nth router: โ€ข router discards datagram and sends source ICMP message (type 11, code 0) โ€ข ICMP message possibly includes name of router & IP address
  • 103. Network layer: โ€œcontrol planeโ€ roadmap ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚ง introduction ๏‚ง routing protocols ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-104
  • 104. ๏‚ง autonomous systems (aka โ€œnetworkโ€): 1000s of interacting hardware/software components ๏‚ง other complex systems requiring monitoring, configuration, control: โ€ข jet airplane, nuclear power plant, others? What is network management? Network Layer: 5-105 "Network management includes the deployment, integration and coordination of the hardware, software, and human elements to monitor, test, poll, configure, analyze, evaluate, and control the network and element resources to meet the real-time, operational performance, and Quality of Service requirements at a reasonable cost."
  • 105. Components of network management Network Layer: 5-106 managed device managed device managed device managed device managed device agent data agent data agent data agent data agent data managing server/controller data Managing server: application, typically with network managers (humans) in the loop Managed device: equipment with manageable, configurable hardware, software components Data: device โ€œstateโ€ configuration data, operational data, device statistics Network management protocol: used by managing server to query, configure, manage device; used by devices to inform managing server of data, events.
  • 106. Network operator approaches to management Network Layer: 5-107 managed device managed device managed device managed device managed device agent data agent data agent data agent data agent data managing server/controller data CLI (Command Line Interface) โ€ข operator issues (types, scripts) direct to individual devices (e.g., vis ssh) SNMP/MIB โ€ข operator queries/sets devices data (MIB) using Simple Network Management Protocol (SNMP) NETCONF/YANG โ€ข more abstract, network-wide, holistic โ€ข emphasis on multi-device configuration management. โ€ข YANG: data modeling language โ€ข NETCONF: communicate YANG-compatible actions/data to/from/among remote devices
  • 107. SNMP protocol Network Layer: 5-108 managed device agent data managing server/controller data request response trap message Two ways to convey MIB info, commands: request/response mode managed device agent data managing server/controller data trap mode
  • 108. SNMP protocol: message types Network Layer: 5-109 GetRequest GetNextRequest GetBulkRequest manager-to-agent: โ€œget me dataโ€ (data instance, next data in list, block of data). Message type Function SetRequest manager-to-agent: set MIB value Response Agent-to-manager: value, response to Request Trap Agent-to-manager: inform manager of exceptional event
  • 109. SNMP protocol: message formats Network Layer: 5-110 โ€ฆ. PDU type (0-3) Request ID Error Status (0-5) Error Index Name Value Name Value Get/set header Variables to get/set SNMP PDU message types 0-3 โ€ฆ. PDU type 4 Enterprise Agent Addr Trap Type (0-7) Specific code Time stamp Name Value Trap header Trap info message type 4
  • 110. ๏‚ง managed deviceโ€™s operational (and some configuration) data ๏‚ง gathered into device MIB module โ€ข 400 MIB modules defined in RFCโ€™s; many more vendor-specific MIBs SNMP: Management Information Base (MIB) Network Layer: 5-111 Object ID Name Type Comments 1.3.6.1.2.1.7.1 UDPInDatagrams 32-bit counter total # datagrams delivered 1.3.6.1.2.1.7.2 UDPNoPorts 32-bit counter # undeliverable datagrams (no application at port) 1.3.6.1.2.1.7.3 UDInErrors 32-bit counter # undeliverable datagrams (all other reasons) 1.3.6.1.2.1.7.4 UDPOutDatagrams 32-bit counter total # datagrams sent 1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port currently in use agent data ๏‚ง Structure of Management Information (SMI): data definition language ๏‚ง example MIB variables for UDP protocol:
  • 111. ๏‚ง goal: actively manage/configure devices network-wide ๏‚ง operates between managing server and managed network devices โ€ข actions: retrieve, set, modify, activate configurations โ€ข atomic-commit actions over multiple devices โ€ข query operational data and statistics โ€ข subscribe to notifications from devices ๏‚ง remote procedure call (RPC) paradigm โ€ข NETCONF protocol messages encoded in XML โ€ข exchanged over secure, reliable transport (e.g., TLS) protocol NETCONF overview Network Layer: 5-112
  • 112. NETCONF initialization, exchange, close Network Layer: 5-113 Session initiation, capabilities exchange: <hello> Session close: <close-session> <rpc> <rpc-reply> <rpc> <rpc-reply> <rpc> <rpc-reply> <notification> โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ managing server/controller data agent data
  • 113. Selected NETCONF Operations Network Layer: 5-114 NETCONF Operation Description <get-config> Retrieve all or part of a given configuration. A device may have multiple configurations. <get> Retrieve all or part of both configuration state and operational state data. <edit-config> Change specified (possibly running) configuration at managed device. Managed device <rpc-reply> contains <ok> or <rpcerror> with rollback. <lock>, <unlock> Lock (unlock) configuration datastore at managed device (to lock out NETCONF, SNMP, or CLIs commands from other sources). <create-subscription>, Enable event notification subscription from managed device <notification>
  • 114. Sample NETCONF RPC message Network Layer: 5-115 note message id change the running configuration change MTU of Ethernet 0/0 interface to 1500 change a configuration
  • 115. ๏‚ง data modeling language used to specify structure, syntax, semantics of NETCONF network management data โ€ข built-in data types, like SMI ๏‚ง XML document describing device, capabilities can be generated from YANG description ๏‚ง can express constraints among data that must be satisfied by a valid NETCONF configuration โ€ข ensure NETCONF configurations satisfy correctness, consistency constraints YANG Network Layer: 5-116 agent data managing server/controller data NETCONF RPC message <edit-config> YANG-generated XML </edit-config> YANG generated
  • 116. Network layer: Summary Network Layer: 5-117 weโ€™ve learned a lot! ๏‚ง approaches to network control plane โ€ข per-router control (traditional) โ€ข logically centralized control (software defined networking) ๏‚ง traditional routing algorithms โ€ข implementation in Internet: OSPF , BGP ๏‚ง SDN controllers โ€ข implementation in practice: ODL, ONOS ๏‚ง Internet Control Message Protocol ๏‚ง network management next stop: link layer!
  • 117. Network layer, control plane: Done! ๏‚ง network management, configuration โ€ข SNMP โ€ข NETCONF/YANG ๏‚งintroduction ๏‚ง routing protocols ๏‚ง link state ๏‚ง distance vector ๏‚ง intra-ISP routing: OSPF ๏‚ง routing among ISPs: BGP ๏‚ง SDN control plane ๏‚ง Internet Control Message Protocol Network Layer: 5-118
  • 118. Additional Chapter 5 slides Network Layer: 5-119
  • 119. Distance vector: another example Network Layer: 5-120 x y z x y z 0 2 7 โˆž โˆž โˆž โˆž โˆž โˆž from cost to from from x y z x y z 0 x y z x y z โˆž โˆž โˆž โˆž โˆž cost to x y z x y z โˆž โˆž โˆž 7 1 0 cost to โˆž 2 0 1 โˆž โˆž โˆž 2 0 1 7 1 0 time x z 1 2 7 y Dx() Dx(y) = min{cx,y + Dy(y), cx,z+ Dz(y)} = min{2+0 , 7+1} = 2 Dx(z) = min{cx,y+ Dy(z), cx,z+ Dz(z)} = min{2+1 , 7+0} = 3 3 2 Dy() Dz() cost to from
  • 120. Distance vector: another example Network Layer: 5-121 x y z x y z 0 2 7 โˆž โˆž โˆž โˆž โˆž โˆž cost to from from x y z x y z โˆž โˆž โˆž โˆž โˆž cost to x y z x y z โˆž โˆž โˆž 7 1 0 cost to โˆž 2 0 1 โˆž โˆž โˆž x z 1 2 7 y Dx() Dy() Dz() from x y z x y z 0 2 3 from cost to x y z x y z 0 2 7 from cost to x y z x y z 0 2 3 from cost to x y z x y z 0 2 3 from cost to x y z x y z 0 2 7 from cost to 2 0 1 7 1 0 2 0 1 3 1 0 2 0 1 3 1 0 2 0 1 3 1 0 2 0 1 3 1 0 from x y z x y z 0 2 0 1 7 1 0 3 2 cost to time

Editor's Notes

  • #1: Version History 8.0 (May 2020) All slides reformatted for 16:9 aspect ratio All slides updated to 8th edition material Use of Calibri font, rather that Gill Sans MT Add LOTS more animation throughout lighter header font Re-do of network management slides; redo of Bellman-Ford slides 8.2 (changes over 8.0) improved animations of Dijkstraโ€™s algorithm and Bellman Ford various improvements to BGP SDN: added Google Orion (2021 Google network SDN control plane)
  • #62: Each router then locally runs Dijkstraโ€™s shortest-path algorithm to determine a shortest-path tree to all subnets, with itself as the root node.
  • #63: Since an inter-AS routing protocol involves coordination among multiple ASs, communicating ASs must run the same inter-AS routing protocol. In fact, in the Internet, all ASs run the same inter-AS routing protocol, called the Border Gateway Protocol, more commonly known as BGP
  • #96: and so in this sense a migration away from โ€œprotocolsโ€ is indeed underway! Explain structure of Orion in figure Repeat after each reveal: no protocol Coflows: โ€œa collection of flows between two groups of machines with associated semantics and a collective objectiveโ€; [Sigcommโ€™13, Sigcommโ€™15, Sigcommโ€™18]. Not unlike multiprocessor scheduling in the 1980โ€™s
  ็ฟป่ฏ‘๏ผš