Download Document 8758485

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Internet protocol suite wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

RapidIO wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Backpressure routing wikipedia , lookup

CAN bus wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Airborne Networking wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

Routing wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Everything2 wikipedia , lookup

IEEE 1355 wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Dijkstra's algorithm wikipedia , lookup

Transcript
1
Link‐State
Rou.ng
Reading:
Sec.ons
4.2
and
4.3.4
COS
461:
Computer
Networks
Spring
2011
Mike
Freedman
hEp://www.cs.princeton.edu/courses/archive/spring11/cos461/
Goals
of
Today’s
Lecture
2
•  Inside
a
router
–  Control
plane:
rou.ng
protocols
–  Data
plane:
packet
forwarding
•  Path
selec.on
–  Minimum‐hop
and
shortest‐path
rou.ng
–  Dijkstra’s
algorithm
•  Topology
change
–  Using
beacons
to
detect
topology
changes
–  Propaga.ng
topology
informa.on
•  Rou.ng
protocol:
Open
Shortest
Path
First
(OSPF)
What
is
Rou.ng?
•  A
famous
quota.on
from
RFC
791
“A
name
indicates
what
we
seek.
An
address
indicates
where
it
is.
A
route
indicates
how
we
get
there.”
‐‐
Jon
Postel
3
Rou.ng
vs.
Forwarding
•  Rou.ng:
control
plane
– Compu.ng
paths
the
packets
will
follow
– Routers
talking
amongst
themselves
– Individual
router
crea,ng
a
forwarding
table
•  Forwarding:
data
plane
– Direc.ng
a
data
packet
to
an
outgoing
link
– Individual
router
using
a
forwarding
table
4
Data
and
Control
Planes
control plane
data plane
Processor
Line card
Line card
Line card
Line card
Switching
Fabric
Line card
Line card
5
6
Where
do
Forwarding
Tables
Come
From?
•  Routers
have
forwarding
tables
–  Map
IP
prefix
to
outgoing
link(s)
•  Entries
can
be
sta.cally
configured
–  E.g.,
“map
12.34.158.0/24
to
Serial0/0.1”
•  But,
this
doesn’t
adapt
–  To
failures
–  To
new
equipment
–  To
the
need
to
balance
load
•  That
is
where
rou.ng
protocols
come
in
Recall
the
Internet
layering
model
host
host
HTTP message
HTTP
TCP segment
TCP
router
IP
Ethernet
interface
HTTP
IP packet
Ethernet
interface
IP
TCP
router
IP packet
SONET
interface
SONET
interface
IP
IP packet
Ethernet
interface
IP
Ethernet
interface
7
Recall
the
Internet
layering
model
host
host
HTTP
HTTP
Pick
best
route
TCP
IP
Control
Plane:
Announce
all
possible
routes
TCP
CPU
CPU
Switching
Fabric
Switching
Fabric
Install
chosen
route
Data
Plane:
Forward
along
1
route/path
IP
8
Compu.ng
Paths
Between
Routers
•  Routers
need
to
know
two
things
–  Which
router
to
use
to
reach
a
des.na.on
prefix
–  Which
outgoing
interface
to
use
to
reach
that
router
u
z
12.34.158.0/24
Interface along the path to z Router z that can reach destination
•  Today’s
class:
how
routers
reach
each
other
–  How
u
knows
how
to
forward
packets
toward
z
9
10
Compu.ng
the
Shortest
Paths
Assuming
you
already
know
the
topology
Shortest‐Path
Rou.ng
•  Path‐selec.on
model
– Des.na.on‐based
– Load‐insensi.ve
(e.g.,
sta.c
link
weights)
– Minimum
hop
count
or
sum
of
link
weights
2
3
2
1
1
1
4
4
5
3
11
Shortest‐Path
Problem
•  Given:
network
topology
with
link
costs
–  c(x,y):
link
cost
from
node
x
to
node
y
–  Infinity
if
x
and
y
are
not
direct
neighbors
•  Compute:
least‐cost
paths
to
all
nodes
–  From
a
given
source
u
to
all
other
nodes
–  p(v):
predecessor
node
along
path
from
source
to
v
2
3
u
2
p(v)
1
1
4
1
5
4
3
v
12
Dijkstra’s
Shortest‐Path
Algorithm
•  Itera.ve
algorithm
–  Ager
k
itera.ons,
know
least‐cost
path
to
k
nodes
•  S:
nodes
whose
least‐cost
path
defini.vely
known
–  Ini.ally,
S
=
{u}
where
u
is
the
source
node
–  Add
one
node
to
S
in
each
itera.on
•  D(v):
current
cost
of
path
from
source
to
node
v
–  Ini.ally,
D(v)
=
c(u,v)
for
all
nodes
v
adjacent
to
u
–  …
and
D(v)
=
∞
for
all
other
nodes
v
–  Con.nually
update
D(v)
as
shorter
paths
are
learned
13
Dijsktra’s
Algorithm
1 Initialization:
S:
Least
cost
path
known
2 S = {u}
3 for all nodes v
D(v): Known
shortest
cost
4
if (v is adjacent to u)
from
source
to
v
5
D(v) = c(u,v)
6
else D(v) = ∞
C(w,v):
Known
cost
from
w
to
v
7
8 Loop: Do
9 find w not in S with the smallest D(w)
10 add w to S
11 update D(v) for all v adjacent to w and not in S:
12
D(v) = min{D(v), D(w) + c(w,v)}
13 until all nodes in S
14
Dijkstra’s
Algorithm
Example
2
3
2
1
1
1
4
4
5
3
15
16
Dijkstra’s
Algorithm
Example
2
Loop: Do
1
3 not in S 1with the smallest D(w)
find w
4
add w to S
2
2
3
2
1
forall v adj to w && not in S:
5
D(v) = min{ D(v), D(w) + c(w,v) }
4
2
3
2
1
1
1
4
4
5
3
4
1
5
4
3
until all nodes in S
1
1
3
2
3
2
1
1
1
4
4
5
3
17
Dijkstra’s
Algorithm
Example
2
3
2
1
1
4
1
4
4
5
3
1
1
4
1
5
4
1
1
1
2
3
2
2
3
5
4
3
2
3
2
3
2
1
1
1
4
4
5
3
18
Shortest‐Path
Tree
•  Shortest‐path
tree
from
u
2
v
3
u
2
1
1
y
5
w 4
s
z
t
3
link
1
4
x
•  Forwarding
table
at
u
v
w
x
y
z
s
t
(u,v)
(u,w)
(u,w)
(u,v)
(u,v)
(u,w)
(u,w)
19
Learning
the
Topology
By
the
routers
talk
amongst
themselves
Link‐State
Rou.ng
•  Each
router
keeps
track
of
its
incident
links
–  Whether
the
link
is
up
or
down
–  The
cost
on
the
link
•  Each
router
broadcasts
the
link
state
–  To
give
every
router
a
complete
view
of
the
graph
•  Each
router
runs
Dijkstra’s
algorithm
–  To
compute
the
shortest
paths
–  …
and
construct
the
forwarding
table
•  Example
protocols
–  Open
Shortest
Path
First
(OSPF)
–  Intermediate
System
–
Intermediate
System
(IS‐IS)
20
Detec.ng
Topology
Changes
•  Beaconing
–  Periodic
“hello”
messages
in
both
direc.ons
–  Detect
a
failure
ager
a
few
missed
“hellos”
“hello”
•  Performance
trade‐offs
–  Detec.on
speed
–  Overhead
on
link
bandwidth
and
CPU
–  Likelihood
of
false
detec.on
21
Broadcas.ng
the
Link
State
•  Flooding
–  Node
sends
link‐state
informa.on
out
its
links
–  And
then
the
next
node
sends
out
all
of
its
links
–  …
except
the
one(s)
where
the
informa.on
arrived
X
A
C
B
D
X
A
C
B
(a)
X
A
C
B
(c)
D
(b)
D
X
A
C
B
(d)
D
22
Broadcas.ng
the
Link
State
•  Reliable
flooding
–  Ensure
all
nodes
receive
link‐state
informa.on
–  …
and
that
they
use
the
latest
version
•  Challenges
–  Packet
loss
–  Out‐of‐order
arrival
•  Solu.ons
–  Acknowledgments
and
retransmissions
–  Sequence
numbers
–  Time‐to‐live
for
each
packet
23
When
to
Ini.ate
Flooding
•  Topology
change
–  Link
or
node
failure
–  Link
or
node
recovery
•  Configura.on
change
–  Link
cost
change
•  Periodically
–  Refresh
the
link‐state
informa.on
–  Typically
(say)
30
minutes
–  Corrects
for
possible
corrup.on
of
the
data
24
25
When
the
Routers
Disagree
(during
transient
periods)
Convergence
•  Gemng
consistent
rou.ng
informa.on
to
all
nodes
–  E.g.,
all
nodes
having
the
same
link‐state
database
•  Consistent
forwarding
ager
convergence
–  All
nodes
have
the
same
link‐state
database
–  All
nodes
forward
packets
on
shortest
paths
–  The
next
router
on
the
path
forwards
to
the
next
hop
2
3
2
1
1
1
4
4
5
3
26
Transient
Disrup.ons
•  Detec.on
delay
–  A
node
does
not
detect
a
failed
link
immediately
–  …
and
forwards
data
packets
into
a
“blackhole”
–  Depends
on
.meout
for
detec.ng
lost
hellos
2
3
2
1
1
4
1
✗
5
4
3
27
28
Transient
Disrup.ons
•  Inconsistent
link‐state
database
–  Some
routers
know
about
failure
before
others
–  The
shortest
paths
are
no
longer
consistent
–  Can
cause
transient
forwarding
loops
2
3
2
1
1
1
4
4
5
3
2
3
2
1
1
4
1
4
3
Convergence
Delay
•  Sources
of
convergence
delay
–  Detec.on
latency
–  Flooding
of
link‐state
informa.on
–  Shortest‐path
computa.on
–  Crea.ng
the
forwarding
table
•  Performance
during
convergence
period
–  Lost
packets
due
to
blackholes
and
TTL
expiry
–  Looping
packets
consuming
resources
–  Out‐of‐order
packets
reaching
the
des.na.on
•  Very
bad
for
VoIP,
online
gaming,
and
video
29
Reducing
Convergence
Delay
•  Faster
detec.on
–  Smaller
hello
.mers
–  Link‐layer
technologies
that
can
detect
failures
•  Faster
flooding
–  Flooding
immediately
–  Sending
link‐state
packets
with
high‐priority
•  Faster
computa.on
–  Faster
processors
on
the
routers
–  Incremental
Dijkstra’s
algorithm
•  Faster
forwarding‐table
update
–  Data
structures
suppor.ng
incremental
updates
30
Scaling
Link‐State
Rou.ng
•  Overhead
of
link‐state
rou.ng
–  Flooding
link‐state
packets
throughout
the
network
–  Running
Dijkstra’s
shortest‐path
algorithm
•  Introducing
hierarchy
through
“areas”
Area 2
Area 1
area
border
router
Area 0
Area 3
Area 4
31
Conclusions
•  Rou.ng
is
a
distributed
algorithm
–  React
to
changes
in
the
topology
–  Compute
the
paths
through
the
network
•  Shortest‐path
link
state
rou.ng
–  Flood
link
weights
throughout
the
network
–  Compute
shortest
paths
as
a
sum
of
link
weights
–  Forward
packets
on
next
hop
in
the
shortest
path
•  Convergence
process
–  Changing
from
one
topology
to
another
–  Transient
periods
of
inconsistency
across
routers
32