The Networking Layer

volleyballbeginnerNetworking and Communications

Oct 27, 2013 (3 years and 11 months ago)

92 views

The Networking Layer

Rudra Dutta

CSC 401
-

Fall 2011, Section 001


Copyright Rudra Dutta, NCSU, Fall, 2011

2

Positioning


DLC allows communication between connected computers


Cooperation can create connectivity not present in physical
topology


networking


Lowest layer aware of end
-
to
-
end traffic


Functions:


Forwarding


Routing


Addressing?


We want to understand:


Descriptive


Connectionless and connection
-

oriented, virtual circuits, flow routing


Algorithmic


Dijkstra, flooding, DV, LSA, broadcast

Copyright Rudra Dutta, NCSU, Fall, 2011

3

Concepts


Inter
-
networking


Assume physical (“sub”)network knows how to deliver


Addressing


Physical network computers already have addresses


Do these make sense in broader context?


Consider postal
-

house, subdivision, ...


If not, networking layer addresses must be assigned


Forwarding and Routing


Switching granularity and context


Circuits (L1), packets (L3)


Hierarchical switching


Forwarding Information Base

Copyright Rudra Dutta, NCSU, Fall, 2011

4

Concepts
-

Forwarding / Routing


Forwarding


The act of forwarding PDUs


Where to forward?


Likely to be partially determined by data source/destination


Must be embedded in data


Likely to be partially determined by network factors


Must be stored at node


Forwarding will combine these two types of information


Routing


Path
-
finding


For any and all traffic, determination of path it takes from source to
destination


At a node, must translate into:


Distilling “network factors” above into easy
-
to
-
refer information for
forwarding
-

mapping from data to next
-
hop


Copyright Rudra Dutta, NCSU, Fall, 2011

5

Concept
-

Context


Context is needed to switch data


Wire
-

perfect context (no
-
brains forwarding)


At L3, need context to switch


Meta
-
data

makes it unnecessary to maintain context


Each PDU carries context information (destination, source, ...)


Allows store
-
and
-
forward, therefore utilization, but


Now need to undertake significant forwarding effort for each
packet


Context makes it unnecessary to reinvent the wheel


First send some “special” traffic packets establishing context


Units of traffic following the context establishment forwarded
cheaply, but


To ensure that we do not drop data, must end up wasting
bandwidth


The overhead of context maintenance is also present

Copyright Rudra Dutta, NCSU, Fall, 2011

6

Concepts
-

Forwarding Information Base


A “lookup table” for next
-
hop router


Packet arrives with embedded context (full or partial)


Context information is extracted and looked up in FIB


Packet forwarded to next
-
hop intermediate node

DLC

PHY

NET

DLC

PHY

DLC

PHY

NET

A

R

D

DLC

PHY

NET

Forwarding

Next
-
hop

FIB

Context

Copyright Rudra Dutta, NCSU, Fall, 2011

7

Connection
-
less Forwarding


H1 sends packet 1 to A


A consults FIB


forward to C


C consults FIB


forward to E


E consults FIB


forward to F


F uses LAN to forward to H2



If FIB changes, a following
packet may traverse different
path

A’s FIB

A’s FIB

C’s FIB

E’s FIB

Copyright Rudra Dutta, NCSU, Fall, 2011

8

Connection Oriented Forwarding

A’s FIB

C’s FIB

E’s FIB


H1 sends request to A


A assigns label “1”, forwards
request to C


C assigns label “6”, forwards
request to E


E assigns label “3”, forwards
request to F


F accepts request, replies to
E with label “11”


E notes label, replies to C
with assigned label


C notes label, replies to A
with assigned label


A notes label, replies to H1
with assigned label


H1 sends packets with label
“1” to A on
“virtual circuit”

6

6

3

3

11

Copyright Rudra Dutta, NCSU, Fall, 2011

9

Comparison

Copyright Rudra Dutta, NCSU, Fall, 2011

10

Routing
-

Fundamentals


Different concerns


Correctness and optimality


Robustness, stability, …


More complicated “policy” concerns


Optimality


who decides?


Once design goals have been decided,


Algorithm must be designed to attain them


Some fundamental approaches to routing exist


Routing may be fixed, or fixed alternate


May be adaptive, or dynamic


Adapting to what? How is information shared?

Copyright Rudra Dutta, NCSU, Fall, 2011

11

Space of Routing Choices


Static vs. dynamic or adaptive


For a node, next
-
hop determined by


Destination only


Source and destination


Particular flow of traffic


Other characteristics


May be bifurcated (split) or non
-
bifurcated


Next
-
hop may be unique or multiple


Deterministically or randomly picked

Copyright Rudra Dutta, NCSU, Fall, 2011

12

Flooding


Simple


forward to everybody else


Generates unbounded copies


Hop count can be introduced to bound


Can be more intelligent if packets can be
recognized


Selective flooding


shortlist of links


Highly robust


Serves as benchmark


Useful as a “phase” in other strategies

Copyright Rudra Dutta, NCSU, Fall, 2011

13

“Optimality Criterion”


Nice characteristic, works for “distance” or “cost”
related routing goals


Based on “sink tree” argument


Goals that can be expressed additively


“Sub
-
path of optimal path must be optimal”

Copyright Rudra Dutta, NCSU, Fall, 2011

14

Finding Shortest Paths


An example where a graph
-
theoretic abstraction is
useful


Abstract networking into vertices and arcs


Weighted arcs


least cost approach


Dijkstra’s algorithm


Finds least cost path to all vertices from one


Based on moving vertices from a set with “tentative” distances
to a set with “fixed” distances


Desirable computational properties


Other algorithms exist


Useful for additive measures of path cost


“Shortest” is better understood as “least additive cost”







Copyright Rudra Dutta, NCSU, Fall, 2011

15

Dijkstra’s Algorithm


Finding shortest distances (and
corresponding paths) from ONE source to
ALL destinations


Easily adapted to vice
-
versa


First, mark source node with
tentative
distance zero


Mark all other nodes
tentatively
with
distance “infinity” (not reachable)


Do iteratively (until all nodes marked):


Pick the node with the least
tentative
distance,
and mark it as
final
distance


call it node X


Pick all outgoing links from this node, for each:


Update the
tentative
distance of the neighbor
IF
:


(Final distance of X + link cost) < Tentative distance
of neighbor


If updated, remember X as previous node of
neighbor

A

5

7

3

2

1

8

1

5

2











5



B

E

C

F

D

G

5

7

3

2

1

8

1

5

2

0







7

3

5

5

A

B

E

C

F

D

G

At the end, previous nodes can be read off to find complete paths

0

Copyright Rudra Dutta, NCSU, Fall, 2011

16

Dijkstra’s Algorithm

A

5

7

3

2

1

8

1

5

2

5

7

3

2

1

8

1

5

2

5

7

3

2

1

8

1

5

2

5

7

3

2

1

8

1

5

2

0

0

0

























7

3

5

7

3

4

6

3

4

4

4

5

5

5

5



B

E

C

F

D

G

A

B

E

C

F

D

G

A

B

E

C

F

D

G

A

B

E

C

F

D

G

0

Copyright Rudra Dutta, NCSU, Fall, 2011

17

Shortest Disjoint Path Pair


Objective: find a pair of paths between a source
a destination that are:


Edge
-
disjoint, or Vertex
-
disjoint


Sum of their lengths is minimum


Observations:


Vertex
-
disjointness implies edge
-
disjointedness


For graph of vertices with degrees 3 or less:

Edge
-
disjointedness implies Vertex
-
disjointedness


Length of vertex
-
disjoint pair ≥ length of edge
-
disjoint pair

Copyright Rudra Dutta, NCSU, Fall, 2011

18

Simple Two
-
step Approach Fails


Obvious approach
-

find one, then other


May not find shortest pair


May not find pair at all even when one exists


Trap topology

A

B

D

Z

E

C

1

1

1

1

1

2

2

Copyright Rudra Dutta, NCSU, Fall, 2011

19

Disjoint Paths Algorithms


Simple approach (two
-
step) fails with trap
topologies


Remedy
-

“remember” first path found by link
reversal


Replace each link by backward directed arc (“can
undo this link choice”)


Mark arc with cost negative of link cost (“undo
refund”)


Must be able to find shortest paths in presence
of negative
-
cost arcs


Remedy
-

modify Dijkstra’s algorithm

Copyright Rudra Dutta, NCSU, Fall, 2011

20

Dijkstra’s Algorithm


Given:


Undirected graph G with vertices V,


Source node
A
,


Destination node
Z


Edge costs
l
(
ij
)


Use:


N
(
i
)

= set of neighbors of
i
,


d
(
i
)

= distance from
A

to
i
,


S = set of nodes to which shortest distance has NOT
been found,


P
(
i
)

= predecessor of
i

in path from
A

Copyright Rudra Dutta, NCSU, Fall, 2011

21

Dijkstra’s Algorithm

1.
Initialize


d
(A)

= 0;
d
(
i
)

=
l
(
A
i
) for all
i

in
N(A)
,


for all other
i


S = all vertices except
A


P
(
i
)

=
A

for all
i

in S

2.
Select new vertex to label permanently


Choose
j

from S such that
d
(
j
)

= min
d
(
i
)
, for
i

in S


Remove
j

from S


If
j = Z
, then stop; otherwise go to Step 3

3.
Update distances


For all
i

in
N
(
j
)

such that
i

is also in S


If
d
(
j
)

+ l
(
ij
)

< d
(
i
)
, update
d
(
i
)

to
d
(
j
)

+ l
(
ij
)

and set
P
(
i
)

to
j


Back to Step 2

l
(
ij
) cost of edge
ij

N
(
i
) = neighbors of
i

d
(
i
) = distance A to
i

S = nodes
not

found

P
(
i
) = predecessor of

i

Copyright Rudra Dutta, NCSU, Fall, 2011

22

Dijkstra’s
-

Example

l
(
ij
) cost of edge
ij

N
(
i
) = neighbors of
i

d
(
i
) = distance A to
i

S = nodes
not

found

P
(
i
) = predecessor of

i

1.
Initialize


d
(A
)

= 0;
d
(
i
)

=
l
(
A
i
) for all
i

in
N(A)
,


for all other
i


S = all vertices except
A


P
(
i
)

=
A

for all
i

in S

2.
Select new vertex to label
permanently


Choose
j

from S such
that
d
(
j
)

= min
d
(
i
)
, for
i

in
S


Remove
j

from S


If
j

= Z
, then stop;
otherwise go to Step 3

3.
Update distances


For all
i

in
N
(
j
)

such that
i

is also in S


If
d
(
j
)

+
l
(
ij
)

<
d
(
i
)
,
update
d
(
i
)

to
d
(
j
)

+
l
(
ij
)

and set
P
(
i
)

to
j


Back to Step 2

Copyright Rudra Dutta, NCSU, Fall, 2011

23

Negative Cost Arcs


Many reasonable cost metrics are positive
-
only


However, sometimes negatives costs can turn
up


Sometimes introduced by specific desired
transformations of graphs


Graph may have cycles


Cycles with negative total costs exist


Concept of shortest path?


If negative cost arcs, but not cycles?


Specific family of such graphs generated by
useful diverse routing algorithms


Dijkstra’s algorithm fails with negative arc costs

Copyright Rudra Dutta, NCSU, Fall, 2011

24

Failure of Dijkstra
-

Example

l
(
ij
) cost of edge
ij

N
(
i
) = neighbors of
i

d
(
i
) = distance A to
i

S = nodes
not

found

P
(
i
) = predecessor of

i

1.
Initialize


d
(A
)

= 0;
d
(
i
)

=
l
(
A
i
) for all
i

in
N(A)
,


for all other
i


S = all vertices except
A


P
(
i
)

=
A

for all
i

in S

2.
Select new vertex to label
permanently


Choose
j

from S such
that
d
(
j
)

= min
d
(
i
)
, for
i

in
S


Remove
j

from S


If
j

= Z
, then stop;
otherwise go to Step 3

3.
Update distances


For all
i

in
N
(
j
)

such that
i

is also in S


If
d
(
j
)

+
l
(
ij
)

<
d
(
i
)
,
update
d
(
i
)

to
d
(
j
)

+
l
(
ij
)

and set
P
(
i
)

to
j


Back to Step 2

Copyright Rudra Dutta, NCSU, Fall, 2011

25

Dijkstra’s Algorithm
-

Modified

1.
Initialize


d
(A)

= 0;
d
(
i
)

=
l
(
A
i
) for all
i

in
N(A)
,


for all other
i


S = all vertices except
A


P
(
i
)

=
A

for all
i

in S

2.
Select new vertex to label permanently


Choose
j

from S such that
d
(
j
)

= min
d
(
i
)
, for
i

in S


Remove
j

from S


If
j = Z
, then stop; otherwise go to Step 3

3.
Update distances


For all
i

in
N
(
j
)

such that
i

is also in S


If
d
(
j
)

+ l
(
ij
)

< d
(
i
)
, update
d
(
i
)

to
d
(
j
)

+ l
(
ij
)

and set
P
(
i
)

to
j





Back to Step 2

-----------------------------

Also add
i

back to S

S =
ϕ

l
(
ij
) cost of edge
ij

N
(
i
) = neighbors of
i

d
(
i
) = distance A to
i

S = nodes
not

found

P
(
i
) = predecessor of

i

Copyright Rudra Dutta, NCSU, Fall, 2011

26

Modified Dijkstra
-

Example

l
(
ij
) cost of edge
ij

N
(
i
) = neighbors of
i

d
(
i
) = distance A to
i

S = nodes
not

found

P
(
i
) = predecessor of

i

1.
Initialize


d
(A
)

= 0;
d
(
i
)

=
l
(
A
i
) for all
i

in
N(A)
,


for all other
i


S = all vertices except
A


P
(
i
)

=
A

for all
i

in S

2.
Select new vertex to label
permanently


Choose
j

from S such
that
d
(
j
)

= min
d
(
i
)
, for
i

in
S


Remove
j

from S


If
S =
ϕ
, then stop;
otherwise go to Step 3

3.
Update distances


For all
i

in
N
(
j
)

such that
i

is also in S


If
d
(
j
)

+
l
(
ij
)

<
d
(
i
)
,
update
d
(
i
)

to
d
(
j
)

+
l
(
ij
)

and set
P
(
i
)

to
j


Also add
i

back to S


Back to Step 2

Copyright Rudra Dutta, NCSU, Fall, 2011

27

Bhandari’s Algorithm

1.
Find the shortest path from A to Z with the modified
Dijkstra algorithm

2.
Replace each edge of the shortest path by a single arc
directed towards the source vertex

3.
Make the length of each of the above arcs negative

4.
Find the shortest path from A to Z in the modified graph
with the modified Dijkstra algorithm

5.
Transform to the original graph, and erase any
interlacing edges of the two paths found

6.
Group the remaining edges to obtain the shortest pair
of edge
-
disjoint paths

Copyright Rudra Dutta, NCSU, Fall, 2011

28

Bhandari’s Algorithm
-

Example

Copyright Rudra Dutta, NCSU, Fall, 2011

29

Distance Vector (DV) “Routing”


Asynchronous, iterative distributed computation


exchange of routing information: (destination, min_distance)


exchange info with neighbors only


computation step: based on Bellman
-
Ford method


Find for
each destination


cost of least cost path


next node (neighbor) on least cost path (not complete path)


Routers do not store or compute the network topology; they
only store distance / next hop information


Used by many protocols: RIP, BGP, ISO IDRP, Novel IPX


Advertise distances to route prefixes (networks, subnets, hosts), not
routers


Copyright Rudra Dutta, NCSU, Fall, 2011

30

Bellman's Equation

7

3

I can get you to
54.0.0.0 for $10

Hey,
I

can get
you there for $8!


For any node
A
,


Edge costs
l
(
ij
) =


Cost of link from
i

to
j
, if exists


∞, otherwise


Beyond neighborhood, trust

neighbors’ claims


D(
i
,
j
) = min
k

{
l
(
ik
) + D(
k
,
j
)}


D(
i
,
i
) = 0



A

forms vector of
D(A,
j
)
, distributes to neighbors


So does every other node


Nodes collectively and iteratively learn about better and better
paths


A

D(A,54.0.0.0 =
min (3+10, 7+8)

Copyright Rudra Dutta, NCSU, Fall, 2011

31

Distance
-
Vector Algorithm (Each Router)


Start with a distance vector consisting of the value


"0" for itself


"infinity" for every other destination


Link cost to neighbors is available, through direct
measurement, or administrator configuration


Transmit its distance vector to each of its neighbors


when the link to the neighbor first comes up


whenever the information changes


triggered updates


periodically (even if there are no changes)


Saves the
most recent distance vector
from each
neighbor


Calculates its own distance vector using Bellman's
equation


Iterate


DV Example

Copyright Rudra Dutta, NCSU, Fall, 2011

32

D

E

C

A

B

1

2

1

5

1

2

8

D(
i
,
j
) = min
k

{
l
(
ik
) + D(
k
,
j
)}

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

0

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

0

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

(=
\

-

-

-

B’s DV

-

0

-

-

-

C’s DV

-

(=
\

-

-

-

D’s DV

-

(=
\

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

-

(=
\

-

-

B’s DV

-

-

(=
\

-

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

(=
\

-

-

A

B

C

D

E

A’s DV

-

-

-

-

(=
\

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

(=
\

D’s DV

-

-

-

-

(=
\

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

(=
\

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

0

-

E’s DV

-

-

-

(=
\

-

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

(=
\

-

-

-

-

C’s DV

(=
\

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

(=
\

-

-

-

-

DV Example

Copyright Rudra Dutta, NCSU, Fall, 2011

33

D

E

C

A

B

1

2

1

5

1

2

8

D(
i
,
j
) = min
k

{
l
(
ik
) + D(
k
,
j
)}

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

0

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

0

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

1

0

1

8

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

0

-

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

-

0

-

-

-

C’s DV

2

1

0

-

1

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

0

-

-

-

-

B’s DV

-

-

-

-

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

0

-

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

-

0

-

-

-

C’s DV

-

-

-

-

-

D’s DV

-

8

-

0

2

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

-

0

-

-

-

C’s DV

-

-

0

-

-

D’s DV

-

-

-

-

-

E’s DV

-

-

-

-

0

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

-

-

-

-

-

C’s DV

2

1

0

-

1

D’s DV

-

8

-

0

2

E’s DV

5

-

1

2

0

DV Example

Copyright Rudra Dutta, NCSU, Fall, 2011

34

D

E

C

A

B

1

2

1

5

1

2

8

D(
i
,
j
) = min
k

{
l
(
ik
) + D(
k
,
j
)}

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

1

0

1

8

-

C’s DV

2

1

0

-

1

D’s DV

-

8

-

0

2

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

1

0

1

8

-

C’s DV

2

1

0

-

1

D’s DV

-

-

-

-

-

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

1

0

1

8

-

C’s DV

-

-

-

-

-

D’s DV

-

8

-

0

2

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

1

0

1

8

-

C’s DV

2

1

0

-

1

D’s DV

-

-

-

-

-

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

1

0

1

8

2

C’s DV

2

1

0

-

1

D’s DV

-

8

-

0

2

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

1

0

1

8

-

C’s DV

2

1

0

3

1

D’s DV

-

-

-

-

-

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

0

1

2

-

5

B’s DV

-

-

-

-

-

C’s DV

2

1

0

-

1

D’s DV

-

8

-

0

2

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

1

0

1

8

-

C’s DV

-

-

-

-

-

D’s DV

7

8

3

0

2

E’s DV

5

-

1

2

0

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

8

-

C’s DV

2

1

0

-

1

D’s DV

-

-

-

-

-

E’s DV

5

-

1

2

0

DV Example

Copyright Rudra Dutta, NCSU, Fall, 2011

35

D

E

C

A

B

1

2

1

5

1

2

8

D(
i
,
j
) = min
k

{
l
(
ik
) + D(
k
,
j
)}

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

8

2

C’s DV

2

1

0

3

1

D’s DV

7

8

3

0

2

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

8

2

C’s DV

2

1

0

3

1

D’s DV

-

-

-

-

-

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

-

-

-

-

-

C’s DV

2

1

0

3

1

D’s DV

7

8

3

0

2

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

1

0

1

8

2

C’s DV

-

-

-

-

-

D’s DV

7

8

3

0

2

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

8

2

C’s DV

2

1

0

3

1

D’s DV

-

-

-

-

-

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

4

2

C’s DV

2

1

0

3

1

D’s DV

7

8

3

0

2

E’s DV

-

-

-

-

-

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

1

0

1

8

2

C’s DV

2

1

0

3

1

D’s DV

-

-

-

-

-

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

0

1

2

7

3

B’s DV

-

-

-

-

-

C’s DV

2

1

0

3

1

D’s DV

7

8

3

0

2

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

-

-

-

-

-

B’s DV

1

0

1

8

2

C’s DV

-

-

-

-

-

D’s DV

5

4

3

0

2

E’s DV

3

2

1

2

0

A

B

C

D

E

A’s DV

0

1

2

5

3

B’s DV

1

0

1

8

2

C’s DV

2

1

0

3

1

D’s DV

-

-

-

-

-

E’s DV

3

2

1

2

0

Copyright Rudra Dutta, NCSU, Fall, 2011

36

DV Routing (cont'd)


Events causing recalculation of the distance
vector


receive from a neighbor a distance vector containing
new info


when link goes down


discard / disregard distance
vector from the neighbor on the other end of that link


how determine link / neighbor is down?


how long does it take to determine this?

Copyright Rudra Dutta, NCSU, Fall, 2011

37

Properties and Problems


DV algorithm eventually will converge on
shortest paths


as long as state of the links / routers remains stable


no requirement for updates to be synchronized


During convergence, non
-
shortest paths and
loops may develop


"good news travels fast, bad news travels slowly"


count
-
to
-
infinity problem

Copyright Rudra Dutta, NCSU, Fall, 2011

38

The Count
-
to
-
Infinity Problem


“Good news”


availability of a link /
router


“Bad news”


failure of a
link / router

Copyright Rudra Dutta, NCSU, Fall, 2011

39

How to Find Arc Costs?


Must know arc costs to neighbors


Depending on cost metric, may be possible to measure


Beyond that, may trust neighbors’ claims


Local, do not have full picture of network


Cannot run Dijkstra or equivalent


Or may attempt to exchange local information


Full model of network can be built


Either way, routing information must be exchanged


Bootstrapping problem
-

solved by flooding


The exchange mechanism is a distributed algorithm,
and often becomes known as a “routing method”


Actually, a “dynamic routing protocol”


More correctly, a “dynamic routing enablement protocol”

Copyright Rudra Dutta, NCSU, Fall, 2011

40

Link State Protocols


Each router distributes information it has to every other
router


Information is in the form of
LSA
’s


(myID, neighborID, link cost)


Distribution is by controlled flooding


Distribute along each link but receiving one


Now, each router has complete information


OSPF is a prevalent example


SPF with LSA to find arc costs

Copyright Rudra Dutta, NCSU, Fall, 2011

41

LSA Routing Algorithm

Each router does the following

1.
“Meets the (immediately adjacent) neighbors” and
learns their IDs

2.
Builds an LSA containing IDs and distance to each of
its neighbors

3.
Transmits the LSA to
all

other routers


How? Most complex and critical piece of link
-
state routing
algorithm

4.
Stores the most recent LSA from
every other router

in
the network


Not just from its immediate neighbors!

5.
Creates a “map” of the network topology from LSAs

6.
Computes routes (to store in forwarding table) from its
local map of the topology

Copyright Rudra Dutta, NCSU, Fall, 2011

42

Generating LSAs


A router generates LSAs
periodically



background
refresh rate


A router also generates LSAs when its local
environment changes


it has a new neighbor (router comes online)


a link goes down (indicated by absence of "Hello" packets)


the cost of a link to an existing neighbor has changed


Limiting the overhead (network bandwidth) consumed
by routing messages, particularly LSAs


set a minimum interval between successive updates

Copyright Rudra Dutta, NCSU, Fall, 2011

43

Forwarding LSAs


Flooding
except

to transmitting neighbor


Infinite number of packets


Hop
-
limited would still result in exponential number of
packets


LSA flooding can use information in LSA


Each router stores the most recent copy of LSAs
from all routers


easy to recognize duplicate LSAs


Each router floods an LSA only once


an LSA will travel over each link of the network exactly once


generally,
O
(
n
) packets propagated


Actually, could be more (simultaneity)

Copyright Rudra Dutta, NCSU, Fall, 2011

44

LSA Forwarding


Router A below transmits its LSA across the network shown below,
using LSA Flooding. In one flooding “step” an LSA can be
transmitted to any and all adjacent neighbors. Over what links is
the LSA flooded in step #1? In step #2? Continue answering this
question until the final step, whatever that is.


Issue of simultaneity becomes clear when doing this example

.

A

B

D

E

F

C

Copyright Rudra Dutta, NCSU, Fall, 2011

45

Why DV / LSA ?


Loop
-
freeness in LSA


But not impossible to attain in DV


“Local” character of DV


Less overhead, storage


But does not scale well


Luckily, advantages are in different zones


Small scale and simplicity


DV


Large scale and optimality


LSA

Copyright Rudra Dutta, NCSU, Fall, 2011

46

Hierarchical Routing


Divide and conquer


Group destinations into logical localities


Break routing into two phases


Between groups


Groups may not be directly connected


Inside a group


For both phases, use some other strategy


Can be generalized into more levels


Application in Ad Hoc routing

Copyright Rudra Dutta, NCSU, Fall, 2011

47

Broadcast Routing


Destination is “all hosts”, not a single one


Special case of multicasting


Flooding is obvious choice for distributing to
networks


But assumes each networks has “broadcast”
semantics


Otherwise need to unicast to each host, impractical


Multidestination routing


Replicate only when necessary



Spanning tree of routers


Flood on spanning tree routers

Copyright Rudra Dutta, NCSU, Fall, 2011

48

Spanning Tree


Tree
-

a connected graph with no cycles


Spanning tree
-

a subgraph of original graph
that is a tree and included every node


Must have exactly N
-
1 links


Efficient broadcast

Copyright Rudra Dutta, NCSU, Fall, 2011

49

Broadcast


Reverse Path Forwarding


An attempt to obtain the benefits of a spanning tree
with no extra information or overhead


With tree, when a broadcast packet arrives


It is from either from the “parent”


Must be forwarded to all “children”


Like flooding


all interfaces except the one packet came in over


Or from a “child”


Must be discarded, to avoid duplication


But how to establish parent
-
child relation without
overhead of forming spanning tree?


Use sink tree for the source


“If this packet originates at A, comes to me through X”


Forward if X is my next
-
hop router to A (to all neighbors except X)


Otherwise discard

Copyright Rudra Dutta, NCSU, Fall, 2011

50

Multi
-
level Forwarding


Special case of Generalized Protocol Layering


“Links” of one network are really “paths” of a
different one


“Virtual” or “logical” links


Can occur on multiple levels


Virtual links may be instantiated by physical layer


Optical networks: “lightpaths”


Wireless networks: recent approaches using OFDM


Or may be instantiated as “virtual” circuits


Different networking layers at different levels
may have differing routing strategies/goals


May be “obviously sub
-
optimal” when viewed globally

Copyright Rudra Dutta, NCSU, Fall, 2011

51

Summary


Network layer allows separate physical
networks to cooperate


Context may or may not be utilized to minimize
forwarding effort


Dual concerns of forwarding and routing


Various fundamental approaches to routing


Real strategies can be designed from combination of
these approaches