TDTS41 Computer Networks

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

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

58 εμφανίσεις

0

TDTS41 Computer Networks

Lecture 4: Network layer I


Claudiu Duma, cladu@ida.liu.se

IISLAB/IDA

Linköpings universitet


1

Network Layer

Goals:



understand principles behind routing


routing in the Internet

2

Outline


Introduction


Routing algorithms


Link state shortest path first


Distance vector


Hierarchical routing


Routing in the Internet


RIP


OSPF


BGP


3

Network layer


Transport data from
sending to receiving host



IP datagram/packet



Network layer protocols
in
every

host, router


H1

H2

application

transport

network

data link

physical

application

transport

network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical


network

data link

physical

4

Key Network
-
Layer Functions


1
st
: routing:

determine route
taken by packets
from source to dest.



2
nd
: forwarding:

move
packets from router’s
input to appropriate
router output


analogy:


process of planning
trip from source to
dest



process of getting
through single
interchange


5

1

2

3

0111

value in arriving

packet’s header

routing algorithm

local forwarding table

header value

output link

0100

0101

0111

1001

3

2

2

1

Interplay between routing and
forwarding

6

Routing

7

Routing Principles


Minimize the cost of the routing path


Scalability


Local changes should not affect globally


Administrative issues


Different networks belong to different
organizations




8

Routing Algorithms


Simple


Flooding


Those that minimize costs


Link
-
state shortest
-
path
-
first


Distance vector


Those that scale and meet administrative
needs


Intra
-
/Inter
-
autonomous systems routing

9

Routing algorithms that minimize cost

10

Graph abstraction

u

y

x

w

v

z

2

2

1

3

1

1

2

5

3

5



Set of nodes {u,v, w, ..}



Set of edges {(u,v), …}



Cost of links, e.g. c(u,v) = 2



inverse to bandwidth



proportional to congestion





Cost of path (x
1
, x
2
, x
3
,…, x
p
) = c(x
1
,x
2
) + c(x
2
,x
3
) + … + c(x
p
-
1
,x
p
)

Question: What’s the shortest
-
path between u and w?

Note: “shortest
-
path” vs. “least
-
cost
-
path”

11

Link
-
state shortest
-
path
-
first


Routers find, by broadcasts, about all links
in the net (costs).



Each router computes locally the shortest
-
paths from itself to all other routers.


Dijkstra algorithm


12

Dijkstra’s Algorithm

1
Initialization:


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
'


N':

set of nodes whose least cost
path is known

D(v):

current value of cost of path
from
source

to dest. v

13

Distance Vector Routing

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

14

Bellman
-
Ford Example

u

y

x

w

v

z

2

2

1

3

1

1

2

5

3

5

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:

15

Distance Vector Algorithm (1)


D
x
(y)

= estimate of least cost from x to y


Each node x knows:


Its distance vector (DV):
D
x

= [D
x
(y): y
є

N ]


Cost to each neighbor v:
c(x,v)


Its neighbors’ distance vectors:
D
v




16

Distance Vector Algorithm (2)

Basic idea:



Each node periodically sends its own distance
vector estimate to neighbors


When 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)
converges to the actual least cost

d
x
(y)

17

x y z

x

y

z

0 2 7













from

cost to

x y z

x

y

z











x y z

x

y

z







7

1

0



2 0 1

∞ ∞ ∞

x y z

x

y

z

0 2 3

x y z

x

y

z

0 2 3

x y z

x

y

z

0 2 3

2 0 1

3 1 0

2 0 1

3 1 0

2 0 1

3 1 0

x

z

1

2

7

y

node x

node y

node z

x y z

x

y

z

0 2 7

2 0 1

7 1 0

x y z

x

y

z

0 2 7

x y z

x

y

z

0 2 7

2 0 1

7 1 0

2 0 1

7 1 0

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

3

Next hop:

x y z

x y z

x y z

x y z

x y z

x y z

x y y

x y z

y y z

y

y

18

Count to infinity problem


Solution: Poisoned reverse


If Z routes through Y to get to
X, Z tells Y that D
z
(x) = ∞.



A variant of split horizon


Do not advertise a route back
to the interface from which
you have learned about it!

x

z

1

4

50

y

60

y

z

D
z
(x) = 5

D
y
(x) = 6

D
y
(x) = 6

D
z
(x) = 7

D
z
(x) = 7

D
y
(x) = 8

.

.

.

D
z
(x) = 49

D
y
(x) = 50

D
y
(x) = 8

D
z
(x) = 7

.

.

.

.

.

.

D
y
(x) = 50

D
z
(x) = 50

But not through y!

After the cost change occurs …

19

Comparison of LS
-
SPF and DV algorithms

Message complexity


LS
-
SPF:

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


DV:
exchange between
neighbors only


convergence time varies

Speed of Convergence


LS
-
SPF:

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


may have oscillations


DV
: convergence time varies


may have routing loops


count
-
to
-
infinity problem

Robustness:

what happens
if router malfunctions?

LS
-
SPF:



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

20

Hierarchical routing

21

Hierarchical Routing

scale:

with 200 million
destinations:


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


routing table exchange
would swamp links!




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

22

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

Autonomous systems (AS)


Internal and gateway routers


Two routing protocols:


intra
-
AS routing


inter
-
AS routing


Routers in same AS run same
intra
-
AS routing protocol

Intra
-
AS

Routing

algorithm

Inter
-
AS

Routing

algorithm

Forwarding

table

23

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

Inter
-
AS tasks


Suppose a router in
AS1 receives datagram
for which dest is
outside of AS1


Router should forward
packet towards one of
the gateway routers,
but which one?

AS1 needs:

1.
to learn which dests
are reachable through
AS2 and which
through AS3

2.
to propagate this
reachability info to all
routers in AS1

Job of inter
-
AS routing!

24

Example: Setting forwarding table
in router 1d


Suppose AS1 learns from the inter
-
AS protocol that subnet
x

is reachable from AS3 (gateway 1c) but not from 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.


Router 1d puts in forwarding table entry
(x,I)
.

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

25

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 the 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 the job of inter
-
AS routing protocol!


Hot potato routing:

send packet towards closest of
two routers.


26

Intra
-
AS Routing

27

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)

28

RIP ( Routing Information Protocol)


Distance vector algorithm


Included in BSD
-
UNIX Distribution in 1982


Distance metric: # of hops (max = 15 hops)


RIP advertisements, containing DVs


Exchanged every 30 sec among neighbors


Each advertisement list of up to 25 destination
nets within AS


If no advertisement heard after 180 sec
--
>
neighbor/link declared dead



29

RIP Table Processing


RIP routing tables managed by
application
-
level

process called route
-
d (daemon)


advertisements sent in UDP packets, periodically
repeated (port 520)

physical

link

network forwarding


(IP) table

Transprt


(UDP)

routed

physical

link

network


(IP)

Transprt


(UDP)

routed

forwarding

table

30

OSPF

31

OSPF (Open Shortest Path First)


“open”: publicly available


Uses LS
-
SPF algorithm


LS packet dissemination


Topology map at each node


Route computation using Dijkstra’s algorithm


Link weights can be configured by net admin


OSPF advertisement carries one entry per neighbor
router


Advertisements disseminated to
entire

AS (via
flooding)


Carried in OSPF messages directly over IP (rather than TCP
or UDP)

32

OSPF “advanced” features (not in RIP)


Security:

all OSPF messages authenticated (to
prevent malicious intrusion)


Multi
ple same
-
cost
path
s allowed (only one path in
RIP)


For each link, multiple cost metrics for different
TOS
(e.g., satellite link cost set “low” for best effort;
high for real time)


Hierarchical

OSPF in large domains.


33

Hierarchical OSPF

Hierarchically structured OSPF autonomous system

34

Inter
-
AS Routing

35

Internet inter
-
AS routing: BGP


BGP (Border Gateway Protocol):

the

de
facto standard


BGP provides each AS a means to:

1.
Obtain subnet reachability information from
neighboring ASs.

2.
Propagate the reachability information to all
routers internal to the AS.

3.
Determine “good” routes to subnets based on
reachability information and policy.


Allows a subnet to advertise its existence
to rest of the Internet:
“I am here”

36

BGP basics


Pairs of routers (BGP peers) exchange routing info over semi
-
permanent (“long
-
lived”) TCP connections:
BGP sessions



When AS2 advertises a prefix to AS1, AS2 is
promising

it will
forward any datagrams destined to that prefix towards the
prefix.


AS2 can aggregate prefixes in its advertisement

3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

eBGP
e
xternal session

iBGP
i
nternal session

37

Distributing reachability info


Example:


3a sends reach. info to 1c


1c distributes this reach. info to all routers in
AS1


1b can then re
-
advertise the new reach info to
AS2 over the 1b
-
to
-
2a eBGP session


3b

1d

3a

1c

2a

AS3

AS1

AS2

1a

2c

2b

1b

3c

eBGP session

iBGP session

38

Path attributes & BGP routes


When advertising a prefix, advert includes
BGP attributes.


prefix + attributes = “route”


Two important attributes:


AS
-
PATH:

contains the ASes through which the
advert for the prefix passed:


E.g. AS 67 AS 17


NEXT
-
HOP:

Indicates the specific internal
-
AS
router to next
-
hop AS.


39

ASN examples


ASN Network


3356 Level3


3549 Global Crossing


2529 Demon UK


4589 Easynet


5459 LINX

40

Some AS
-
Paths known by
PeakWebHosting's BGP routers

AS path: 6453[Teleglobe], 3356[Level3], 2529[Demon UK], 5459[LINX]


AS path: 20248[NetVMG], 3356[Level3], 2529[Demon UK], 5459[LINX]


AS path: 3356[Level3], 2529[Demon UK], 5459[LINX]


AS path: 174[PSI/Cogent], 2914[Verio], 5413[GX Networks], 5459[LINX]


AS path: 2914[Verio], 5413[GX Networks], 5459[LINX]


AS path: 19151[WebUseNet], 3257[Tiscali Backbone], 5459[LINX]


AS path: 6327[Shaw Cable], 4589[Easynet], 5459[LINX]


AS path: 3549[Global Crossing], 5459[LINX]

41

BGP route selection


Router may learn about more than 1 route
to some prefix. Router must select route.


Elimination rules:

1.
Local preference value attribute: policy
decision

2.
Shortest AS
-
PATH

3.
Closest NEXT
-
HOP router: hot potato routing

4.
Additional criteria

42

BGP routing policy


A,B,C are
provider networks


X,W,Y are customer (of provider networks)


X is
dual
-
homed:

attached to two networks


X does not want to route from B via X to C


.. so X will not advertise to B a route to C


43

BGP routing policy (2)


A advertises to B the path AW


B advertises to X the path BAW


Should B advertise to C the path BAW?


No way! B gets no “revenue” for routing CBAW since neither
W nor C are B’s customers


B wants to force C to route to w via A


B wants to route
only
to/from its customers!


44

Why different Intra
-

and Inter
-
AS routing ?


Policy:



Inter
-
AS: admin wants control over how its traffic
routed, who routes through its net.


Intra
-
AS: single admin, so no policy decisions needed

Scale:


hierarchical routing saves table size, reduced update
traffic

Performance
:



Intra
-
AS: can focus on performance


Inter
-
AS: policy may dominate over performance

45

Summary

What we’ve covered:


Network layer’s functions


Routing principles


Hierarchical routing


Internet routing protocols: RIP,
OSPF, BGP