# Chapter 4 Network Layer

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

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

134 εμφανίσεις

Network Layer

4
-
1

Chapter 4

Network Layer

Part 3:

Routing

Computer Networking:
A Top Down Approach

5
th

edition.

Jim Kurose, Keith Ross

-
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

ICMP

IPv6

4.5 Routing algorithms

Distance Vector

Hierarchical routing

4.6 Routing in the
Internet

RIP

OSPF

BGP

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

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

ICMP

IPv6

4.5 Routing algorithms

Distance Vector

Hierarchical routing

4.6 Routing in the
Internet

RIP

OSPF

BGP

multicast routing

Network Layer

4
-
9

-
State Routing Algorithm

Dijkstra’s algorithm

net topology, link costs
known to all nodes

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

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

w

to N
'

11 update
D(v
) for all
v

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

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

ICMP

IPv6

4.5 Routing algorithms

Distance Vector

Hierarchical routing

4.6 Routing in the
Internet

RIP

OSPF

BGP

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

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

-
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

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

good news travels fast

bad news travels slow
-

“count to infinity” problem!

Assume cost between x and
y increases from 4 to 60

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:

incorrect

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

ICMP

IPv6

4.5
Routing algorithms

Distance Vector

Hierarchical routing

4.6 Routing in the
Internet

RIP

OSPF

BGP

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

LS message would swamp
the net!

DV would never converge!

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

suppose router in AS1
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

ICMP

IPv6

4.5 Routing algorithms

Distance Vector

Hierarchical routing

4.6 Routing in the
Internet

RIP

OSPF

BGP

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)