Chapter 4 Network Layer

cloutedcoughΔίκτυα και Επικοινωνίες

28 Οκτ 2013 (πριν από 4 χρόνια και 13 μέρες)

124 εμφανίσεις

Network Layer

4
-
1

Chapter 4

Network Layer

Part 3:


Routing

Computer Networking:
A Top Down Approach

5
th

edition.

Jim Kurose, Keith Ross

Addison
-
Wesley, April
2009.


Network Layer

4
-
2

Chapter 4: Network Layer


4. 1 Introduction


4.2 Virtual circuit and
datagram networks


4.3 What’s inside a
router


4.4 IP: Internet
Protocol


Datagram format


IPv4 addressing


ICMP


IPv6


4.5 Routing algorithms


Link state


Distance Vector


Hierarchical routing


4.6 Routing in the
Internet


RIP


OSPF


BGP


4.7 Broadcast and
multicast routing


Routing Algorithms


Need to compute the forwarding tables


Typically, a host is connected to one router
(the
default router

or
first
-
hop router
)


We call this the
source router


The default router of the destination is
called the
destination router


Goal:


Set of routers (nodes)


Links between routers with weights

Network Layer

4
-
3

Routing Algorithms


Method: graph algorithm (undirected)


Graph G = (N, E)


N is set of nodes (routers)


E is collection of edges (physical links)


Represent by endpoints: (x,y)


Edges have a value representing its cost


Could be physical length


Link speed


Monetary cost


We’ll ignore what the cost represents


c(x,y) is the cost on an edge


If edge does not exist, c(x,y) = ∞

Network Layer

4
-
4

Routing Algorithms


Terminology


Path
: a sequence of nodes (x
1
, x
2
, ..x
p
) such
that each of the pairs (x
1
,x
2
), (x
2
,x
3
),…(x
p
-
1
,x
p
)
are edges in E


Cost
: sum of all edge costs along the path


Least
-
cost path
: path between x
1

and x
p

that
has the least cost


In image, least
-
cost

Path from u to w is

(u, x, y, w)


Network Layer

4
-
5

u

y

x

w

v

z

2

2

1

3

1

1

2

5

3

5

Routing Algorithms


Global routing algorithm


Computes the least
-
cost path using complete
global knowledge about the network


Called
link
-
state
(LS)
algorithms

since it knows
the ost of each link in network

Network Layer

4
-
6

Routing Algorithms


Decentralized routing algorithm


Calculation carried out in an iterative
distributed manner


No node has complete information about the
costs of all network links


Each node begins with only the knowledge of
the costs of its own directly attached links


Iterative process used where nodes calculate
and exchange info with neighbors


Distance
-
vector
(DV) algorithm


each node maintains a
vector

of estimates of the
costs to all other nodes in the network


Network Layer

4
-
7

Network Layer

4
-
8

Chapter 4: Network Layer


4. 1 Introduction


4.2 Virtual circuit and
datagram networks


4.3 What’s inside a
router


4.4 IP: Internet
Protocol


Datagram format


IPv4 addressing


ICMP


IPv6


4.5 Routing algorithms


Link state


Distance Vector


Hierarchical routing


4.6 Routing in the
Internet


RIP


OSPF


BGP


4.7 Broadcast and
multicast routing


Network Layer

4
-
9

A Link
-
State Routing Algorithm

Dijkstra’s algorithm


net 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 dest.’s

Notation:


c(x,y):

link cost from node
x to y; = ∞ if not direct
neighbors


D(v):

current value of cost
of path from source to
dest. v


p(v):

predecessor node
along path from source to v


N
'
:

set of nodes whose
least cost path definitively
known


Network Layer

4
-
10

Dijsktra’s Algorithm

1
Initialization:

(our node is
u
)

2 N
'

= {
u
}

3 for all nodes
v


4 if
v

adjacent to
u


5 then
D(v
) =
c(u,v
)

6 else
D(v
) =



7

8
Loop


9 find
w

not in N
'

such that
D(w
) is a minimum

10 add
w

to N
'


11 update
D(v
) for all
v

adjacent to
w

and not in N
'

:

12
D(v
) = min(
D(v
),
D(w
) +
c(w,v
) )

13 /* new cost to
v

is either old cost to
v

or known

14 shortest path cost to
w

plus cost from
w

to
v

*/

15
until all nodes in N
'


Network Layer

4
-
11

Dijkstra’s algorithm: example

Step

0

1

2

3

4

5

N
'

u

ux

uxy

uxyv

uxyvw

uxyvwz

D(v),p(v)

2,u

2,u

2,u

D(w),p(w)

5,u

4,x

3,y

3,y

D(x),p(x)

1,u

D(y),p(y)



2,x

D(z),p(z)





4,y

4,y

4,y

u

y

x

w

v

z

2

2

1

3

1

1

2

5

3

5

Network Layer

4
-
12

Dijkstra’s algorithm: example (2)

u

y

x

w

v

z

Resulting shortest
-
path tree from u:

v

x

y

w

z

(u,v)

(u,x)

(u,x)

(u,x)

(u,x)

destination

link

Resulting forwarding table in u:

Network Layer

4
-
13

Dijkstra’s algorithm, discussion

Algorithm complexity:
n nodes


each iteration: need to check all nodes, w, not in N


n(n+1)/2 comparisons: O(n
2
)


more efficient implementations possible: O(nlogn)

Oscillations possible:


e.g., link cost = amount of carried traffic

A

D

C

B

1

1+e

e

0

e

1

1

0

0

A

D

C

B

2+e

0

0

0

1+e

1

A

D

C

B

0

2+e

1+e

1

0

0

A

D

C

B

2+e

0

e

0

1+e

1

initially

… recompute

routing

… recompute

… recompute

Network Layer

4
-
14

Chapter 4: Network Layer


4. 1 Introduction


4.2 Virtual circuit and
datagram networks


4.3 What’s inside a
router


4.4 IP: Internet
Protocol


Datagram format


IPv4 addressing


ICMP


IPv6


4.5 Routing algorithms


Link state


Distance Vector


Hierarchical routing


4.6 Routing in the
Internet


RIP


OSPF


BGP


4.7 Broadcast and
multicast routing


Network Layer

4
-
15

Distance Vector Algorithm

Bellman
-
Ford Equation (dynamic programming)

Define

d
x
(y) := cost of least
-
cost path from x to y


Then


d
x
(y) = min {c(x,v) + d
v
(y) }


where min is taken over all neighbors v of x

v

Network Layer

4
-
16

Bellman
-
Ford example

u

y

x

w

v

z

2

2

1

3

1

1

2

5

3

5

Clearly, d
v
(z) = 5, d
x
(z) = 3, d
w
(z) = 3

d
u
(z) = min { c(u,v) + d
v
(z),


c(u,x) + d
x
(z),


c(u,w) + d
w
(z) }


= min {2 + 5,


1 + 3,


5 + 3} = 4

Node that achieves minimum is next

hop in shortest path


forwarding table

B
-
F equation says:

Network Layer

4
-
17

Distance Vector Algorithm


D
x
(y)

= estimate of least cost from x to y


Node x knows cost to each neighbor v:
c(x,v)


Node x maintains distance vector
D
x

=
[D
x
(y): y
є

N ]


Node x also maintains its neighbors’
distance vectors


For each neighbor v, x maintains

D
v

= [D
v
(y): y
є

N ]



Network Layer

4
-
18

Distance vector algorithm (4)

Basic idea:



From time
-
to
-
time, each node sends its own
distance vector estimate to neighbors


Asynchronous


When a node x receives new DV estimate from
neighbor, it updates its own DV using B
-
F equation:

D
x
(y)


min
v
{c(x,v) + D
v
(y)} for each node y


N


Under minor, natural conditions, the estimate
D
x
(y) converge to the actual least cost

d
x
(y)

Network Layer

4
-
19

Distance Vector Algorithm (5)

Iterative, asynchronous:
each local iteration caused
by:


local link cost change


DV update message from
neighbor

Distributed:


each node notifies
neighbors
only

when its DV
changes


neighbors then notify
their neighbors if
necessary


wait

for (change in local link
cost or msg from neighbor)


recompute

estimates


if DV to any dest has
changed,
notify

neighbors


Each node:

Network Layer

4
-
20

x y z

x

y

z

0 2 7













from

cost to

from

from

x y z

x

y

z

0

from

cost to

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

node x table

node y table

node z table

D
x
(y)

=

min{c(x,y)

+

D
y
(y),

c(x,z)

+

D
z
(y)}



=

min{
2
+
0

,

7
+
1
}

=

2

D
x
(z)

=

min{
c(x,y)

+



D
y
(z),

c(x,z)

+

D
z
(z)
}


=

min{
2
+
1

,

7
+
0
}

=

3

3

2

Network Layer

4
-
21

x y z

x

y

z

0 2 7













from

cost to

from

from

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











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

x y z

x

y

z







7

1

0

cost to



2 0 1

∞ ∞ ∞

2 0 1

7 1 0

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

time

x

z

1

2

7

y

node x table

node y table

node z table

D
x
(y)

=

min{c(x,y)

+

D
y
(y),

c(x,z)

+

D
z
(y)}



=

min{
2
+
0

,

7
+
1
}

=

2

D
x
(z)

=

min{
c(x,y)

+



D
y
(z),

c(x,z)

+

D
z
(z)
}


=

min{
2
+
1

,

7
+
0
}

=

3

Network Layer

4
-
22

Distance Vector: link cost changes

Link cost changes:


node detects local link cost change


updates routing info, recalculates

distance vector


if DV changes, notify neighbors

“good

news

travels

fast”

x

z

1

4

50

y

1

At time
t
0
,
y

detects the link
-
cost change, updates its DV,

and informs its neighbors.


At time
t
1
,
z

receives the update from
y

and updates its table.

It computes a new least cost to
x

and sends its neighbors its DV.


At time
t
2
,
y

receives
z
’s update and updates its distance table.

y
’s least costs do not change and hence
y

does
not

send any

message to
z
.


Network Layer

4
-
23

Distance Vector: link cost changes

Link cost changes:


good news travels fast


bad news travels slow
-

“count to infinity” problem!


Assume cost between x and
y increases from 4 to 60


Before link cost
changes D
y
(x) = 4, D
y
(z)
= 1, D
z
(y) = 1, D
z
(x) = 5.


x

z

1

4

50

y

60

Network Layer

4
-
24

Distance Vector: link cost changes

x

z

1

4

50

y

60

1.
At time
t
0

y detects the link
-
cost
change. Computes new min
-
cost path
to x of:


D
y
(x) = min{c(y,x)+D
x
(x), c(y,z) + D
z
(x)}


= min{60 + 0, 1 + 5} = 6


We know this is wrong; but y only
knows that c(y,x) = 60 and that z could
get to x with cost of 5.


Routing loop:
in order to get to x, y
goes through z and z routes through y.


A packet will bounce back and forth
between y and z forever!


2.
Since node y has computed a new min cost
to x, it informs z of its new distance vector
at time
t
1


3.
z receives y’s new DV which indicates
that y’s min cost to x is 6. z computes new
distance vector with


D
z
(x) = min {50 + 1, 1 + 6} = 7.


z’s DV has changed, so it notifies y at time
t
2



4.
Now y receives z’s new DV, so it recalc,
determines D
y
(z) = 8, etc.

5.

Takes 44 iterations!!

Network Layer

4
-
25

Distance Vector: link cost changes

Poisoned reverse:



If Z routes through Y to
get to X :


Z tells Y its (Z’s) distance
to X is infinite (so Y won’t
route to X via Z)


Z continues to tell this lie
as long as it routes to x via
y


will this completely solve
count to infinity problem?


No…loops involving 3 or
more nodes will not be
detected by the
poisoned reverse
technique

x

z

1

4

50

y

60

Network Layer

4
-
26

Comparison of LS and DV algorithms

Message complexity


LS:

with n nodes, E links,
O(nE) msgs sent


DV:
exchange between
neighbors only


convergence time varies

Speed of Convergence


LS:

O(n
2
) algorithm requires
O(nE) msgs


may have oscillations


DV
: convergence time varies


may be routing loops


count
-
to
-
infinity problem

Robustness:

what happens
if router malfunctions?

LS:



node can advertise
incorrect
link

cost


each node computes only
its
own

table

DV:


DV node can advertise
incorrect
path

cost


each node’s table used by
others


error propagate thru
network




LS and DV algorithms


Are essentially the
only

algorithms used in
practice in the intenet.


Lots of theoretical work done on
algorithms

Network Layer

4
-
27

Network Layer

4
-
28

Chapter 4: Network Layer


4. 1 Introduction


4.2 Virtual circuit and
datagram networks


4.3 What’s inside a
router


4.4 IP: Internet
Protocol


Datagram format


IPv4 addressing


ICMP


IPv6


4.5
Routing algorithms


Link state


Distance Vector


Hierarchical routing


4.6 Routing in the
Internet


RIP


OSPF


BGP


4.7 Broadcast and
multicast routing


Network Layer

4
-
29

Hierarchical Routing

scale:

with 200 million
destinations:


can’t store all dest’s in
routing tables!


routing table exchange
would swamp links!



LS message would swamp
the net!


DV would never converge!



administrative autonomy


internet = network of
networks


each network admin may
want to control routing in its
own network

Our routing study thus far
-

idealization


all routers identical


network “flat”

… not

true in practice

Network Layer

4
-
30

Hierarchical Routing


aggregate routers into
regions,

“autonomous
systems” (AS)


An AS is a group of
routers under the same
admin control (e.g.,
same ISP)


routers in same AS run
same routing protocol


Called the
“intra
-
AS”
routing

protocol


routers in different AS
can run different intra
-
AS routing protocol

Gateway router


Direct link to router in
another AS

Network Layer

4
-
31

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

Intra
-
AS

Routing

algorithm

Inter
-
AS

Routing

algorithm

Forwarding

table

3c

Interconnected ASes


forwarding table
configured by both
intra
-

and inter
-
AS
routing algorithm


intra
-
AS sets entries
for internal dests


inter
-
AS & intra
-
As
sets entries for
external dests

AS1, AS2, AS3
could run
different
routing algms

Routers 1b, 1c, 2a,
3a are
gateway

routers

If there is only one
connection to outside
net, routing between
Ases is easy

Network Layer

4
-
32

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

Inter
-
AS tasks


suppose router in AS1
receives datagram
destined outside of
AS1:


router should
forward packet to
gateway router, but
which one?

AS1 must:

1.
learn which dests are
reachable through
AS2, which through
AS3

2.
propagate this
reachability info to all
routers in AS1

Job of inter
-
AS routing!

Network Layer

4
-
33

Example: Setting forwarding table in router 1d


suppose AS1 learns (via inter
-
AS protocol) that subnet
x

reachable via AS3 (gateway 1c) but not via AS2.


inter
-
AS protocol propagates reachability info to all
internal routers.


router 1d determines from intra
-
AS routing info that
its interface
I

is on the least cost path to 1c.


installs forwarding table entry
(x,I)

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

x

Network Layer

4
-
34

Example: Choosing among multiple ASes


now suppose AS1 learns from inter
-
AS protocol that
subnet
x

is reachable from AS3
and

from AS2.


to configure forwarding table, router 1d must
determine towards which gateway it should forward
packets for dest
x
.


this is also job of inter
-
AS routing protocol!


3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

x

Network Layer

4
-
35

Learn from inter
-
AS

protocol that subnet

x is reachable via

multiple gateways

Use routing info

from intra
-
AS

protocol to determine

costs of least
-
cost

paths to each

of the gateways

Hot potato routing:

Choose the gateway

that has the

smallest least cost

Determine from

forwarding table the

interface I that leads

to least
-
cost gateway.

Enter (x,I) in

forwarding table

Example: Choosing among multiple ASes


now suppose AS1 learns from inter
-
AS protocol that
subnet
x

is reachable from AS3
and

from AS2.


to configure forwarding table, router 1d must
determine towards which gateway it should forward
packets for dest
x
.


this is also job of inter
-
AS routing protocol!


hot potato routing:

send packet towards closest of
two routers.


Network Layer

4
-
36

Chapter 4: Network Layer


4. 1 Introduction


4.2 Virtual circuit and
datagram networks


4.3 What’s inside a
router


4.4 IP: Internet
Protocol


Datagram format


IPv4 addressing


ICMP


IPv6


4.5 Routing algorithms


Link state


Distance Vector


Hierarchical routing


4.6 Routing in the
Internet


RIP


OSPF


BGP


4.7 Broadcast and
multicast routing


Network Layer

4
-
37

Intra
-
AS Routing


also known as
Interior Gateway Protocols (IGP)


most common Intra
-
AS routing protocols:



RIP: Routing Information Protocol



OSPF: Open Shortest Path First



IGRP: Interior Gateway Routing Protocol (Cisco
proprietary)