Download 0 - SFU Computing Science

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

Deep packet inspection wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

Network tap wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Peering wikipedia , lookup

Computer network wikipedia , lookup

Backpressure routing wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

IEEE 1355 wikipedia , lookup

Airborne Networking wikipedia , lookup

Dijkstra's algorithm wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Routing wikipedia , lookup

Transcript
CMPT 371
Data Communications and Networking
Routing 2
0
© Janice Regan, CMPT 128, 2007-2012
Distance Vector Routing
Each station (router) maintains a global routing table
 Routing table contains one entry for each station
(router) in the network

Each entry includes a measure of the ‘distance’ to a
particular station (router)

Periodically (or when its routing table changes) each
router sends a copy of its routing table to its
neighbors
 When updates (of neighbors routing tables) are
received a routing algorithm is used to update the
local routing table incorporating any changes from
the recently received update
Janice Regan © 2005-1012
1
Bellman Ford Algorithm
 Initialization
D0, x ( y )    y  x
Dh , x ( x )  0  h
 Update for each successive h≥0. For each v≠u
compute
Dh 1, x ( w) 
x
 wherev
min
w
[ Dh , x ( v )  c( v, w)]
is the source node
is
any node
w
is a neighborin g node
h
max imum numberof links in path
c( a, b) cos t for propagation from a to b
Dh , x ( v )
Janice Regan © 2005-1012
least cos t for propagation from x to v in  h links
2
Bellman-Ford Algorithm:
 Find the minimum cost paths from station A to
every other station in the network below
A
6
5
D
6
4
4
4
2
E
F
3
2
I
C
B
2
1
4
4
Janice Regan © 2005-1012
3
J
H
G
4
5
4
I
8
2
K
2
L
3
Initialization
 Set all paths from A to be ∞
(0,∞)
A
D
6
4
4
2
4
4
J
(0,∞)
Janice Regan © 2005-1012
I
2
F
3
(0,∞)
C
4
E
I
4
B
(0,∞)
(0,∞)
(0,∞)
6
5
2
1
(0,∞)
8
H (0,∞)
G
(0,∞)
4
5
3
2
K
2
L
(0,∞)
(0,∞)
4
T
A
A
A
0
B
C
D
E
F
G
H
I
J
K
L
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
Janice Regan © 2005-1012
5
Iteration 1
 Find all minimum cost paths of length 1 hop from the
station A
(A,5)
(0,∞)
A
(0,∞)
(A,1)
C
D
6
4
{
B, E, F}
4
4
(0,∞)
(A,2)
F
3
2
(0,∞)
4
B
E
I
(0,∞)
6
5
2
1
(0,∞)
4
4
J
(0,∞)
Janice Regan © 2005-1012
I
2
8
H (0,∞)
G
(0,∞)
4
5
2
3
K
2
L
(0,∞)
(0,∞)
6
T
A
B
A
A
0
BEF
A
0
A
C
D
∞
∞
∞
5
∞
∞
Janice Regan © 2005-1012
E
F
∞
A
1
A
G
H
I
J
K
∞
∞
2
∞
L
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
7
Iteration 2
 Find all minimum cost paths of length 2 hops from the
station A
A
(A,1)
C
B
D
6
4
E
F
2
I
4
4
{ C,B, E , F G
4
3
(F,5)
(E,3)
(0,∞)
6
5
2
1
(0,∞)
(B,11)
(0,∞)
(F,6) (A,5)
(B,9)
(A,2)
4
4
J
(0,∞)
(F,6)
Janice Regan © 2005-1012
I
2
8
G
(0,∞)
(F,4)
5
I, J,K }
H (0,∞)
4
2
3
K
(0,∞)
(F,7)
2
L
(0,∞)
8
T
A
B
A
A
0
BEF
A
0
CGIJK
A
0
C
D
E
F
∞
∞
∞
A
5
∞
∞
A
1
A
5
11
∞
A
1
AB
Janice Regan © 2005-1012
∞
G
H
I
J
K
L
∞
∞
∞
∞
∞
∞
∞
A
2
∞
∞
∞
∞
∞
∞
A
2
4
∞
7
∞
AF
AE
3
AF
6
AF
9
Iteration 3
 Find all minimum cost paths of length 3 hops from the
station A
(B,11)
(G,10)
(A,5)
A
C
6
4
4
4
E
F
3
2
I
4
B
2
1
(A,1)
6
5
(0,∞)
(G,8)
D (C,15)
(E,3)
I
(J,10)
4
(I,6)
(A,2)
Janice Regan © 2005-1012
G, H I, J, K, L
H (0,∞)
(K,11)
(G,12)
4
2
3
J
(K,10)
(i,7) (F,6)
8
G
(C,12)
(F,4)
5
4
2
{ C, D
K
2
L (0,∞)
(K,9)
(J,9) (F,7)
10
}
T
A
B
C
D
E
F
G
H
I
J
K
L
A
A 0
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
BEF
A 0 A 5
∞
∞
A 1
A 2
∞
∞
∞
∞
∞
∞
CGIJK
A 0 A 5
AB
11
∞
A 1
A 2
AF
4
∞
AE
3
AF
6
AF
7
∞
CDHL
A 0 A 5
AFG
10
15
A 1
A 2
AF
4
11
AE
3
AF
6
AF
7
Janice Regan © 2005-1012
AFG
AFK
AFK
11
9
Iteration 4
 Find all minimum cost paths of length 4 hops
from the station A
(D,12)
(G,10)
(A,5)
A
(A,1)
D (G,8)
C
B
6
4
E
F
2
I
4
4
4
3
(E,3)
6
5
2
1
(H,15)
4
4
J
(F,6)
Janice Regan © 2005-1012
I
(A,2)
2
D, H, L
}
(D,12)
H (K,11) (L,11)
(C,12)
8
G
(H,19)
4
(F,4)
5
{ C,
2
3
K
2
L
(H,13)
(K,9)
(F,7)
12
T
A
B
C
D
E
F
G
H
I
J
K
L
A
A 0
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
BEF
A 0 A 5
∞
∞
A 1
A 2
∞
∞
∞
∞
∞
∞
CGIJK
A 0 A 5
AB
11
∞
A 1
A 2
AF
4
∞
AE
3
AF
6
AF
7
∞
CDHL
A 0 A 5
AFG
10
AFG
15
A 1
A 2
AF
4
AFK
11
AE
3
AF
6
AF
7
AFK
9
A 0 A 5
AFG
10
AFG
15
A 1
A 2
AF
4
AFK
11
AE
3
AF
6
AF
7
AFK
9
Janice Regan © 2005-1012
13
Distance Vector Routing
 Distributed Bellman-Ford algorithm
 Each station (router) maintains a routing table
 Routing table contains one entry for each station
(router) in the network
 Each entry includes a measure of the ‘distance’ to a
particular station (router)
 ‘distance’ metric may be one of, or a combination of
measures including the following



number of hops
number of packets queued for transmission
delay between stations ( measured using and ECHO
packet which directly measures the transmission time)
Janice Regan © 2005-1012
14
Distance Vector Routing
 Once every T seconds each station i, (router)
sends each of its neighbors (station one hop
distant)
a list,
of estimated delays
d ij
from itself to every station j.
 Similarly each station will receive routing
information from each of its neighbors every T
sec.
d  min [d  l ]

kj
iA
ij
ki
The routing data received are used to update the
routing table of the station
 Note: the existing routing table for station i at time t
is not used directly to compute the routing table for
station i at time t+T, the ‘distance’ to each neighbor
station k, lki, and the delay vectors from each
neighbor station j, dij are used
Janice Regan © 2005-1012
15
First Generation Internet


Distance Vector Routing (ARPANET)
Used the distributed version of the Bellman-Ford algorithm. Network
data updated every 128ms
Di delay vector from node i
 d i1 
 si1  Si successor node vector
d 
 s  sij next node in minimum
i2 
i2 


delay route from i to j
Di 
Si 
  
   N # of nodes in network
 
  lki current estimate of
d iN 
 siN 
delay k to I
A set of neighbor nodes
d kj  min [d ij  lki ]
iA
skj  i
i minimizes expressioni above
Janice Regan © 2005-1012
16
Distance Vector Routing : from node J
Original network
A
5
B
2
1
F
2
4
J
D
4
8
H
G
4
5
4
4
I
6
2
3
4
C
4
E
I
6
3
2
K
2
L
F
I
A
A 2
E
3
F
6
F
7
B
B 4
F
7
F
8
F
9
C
G 8
F 11
F
12
H 12
D
G 6
F
9
F
10
H
8
E
I 5
E
2
I
6
F
8
F
0 0
F
3
F
4
F
5
G
G 2
F
5
F
6
F
7
H
K 5
J 11
K
3
H
4
I
I 3
0
0
I
4
J
7
J
J 4
J
4
0
0
J
3
K
K 5
J
7
K
3
0
0
L
K 7
J
9
K
5
L
2
Delay lJi
lJF
4
J
lJI
4
K
lJK
3
Janice Regan © 2005-1012
17
Calculate new routes at node J
iA
Delay vectors received
Measured
Delay lJi
lJF
4
lJK
3
lJI
4
SF DF SI DI
5
SK DK
A
A 2
E
B
A 7
E 10
F 10
C
G 9
F 13
H
9
D
G 7
F 11
H
6
E
A 5
E
2
F
8
F
0 0
F
4
F
3
G
G 3
F
7
F
6
H
K 3
F 10
H
4
I
I 4
0
0
F
7
J
J 2
J
3
J
4
K
K 3
J
7
0
0
L
K 6
F 10
L
3
Janice Regan © 2005-1012
skj  i
d kj  min [d ij  lki ]
Later time, some routes
weights have changed
F
5
DK  [d k1 , d k 2 ,, d kN ]T
DF+IJF
DF+4
DI+IJI
DI+4
6
11
13
11
9
4
7
7
8
6
7
10
9
14
17
15
6
8
11
14
4
7
11
14
DK+IJK
DK+3
8
13
12
9
11
6
9
7
10
7
3
6
New table
for node J
SJ
DJ
F
F
K
K
I
F
F
K
I
0
K
K
6
11
12
9
6
4
7
7
4
0
3
6
18
First Generation Internet
 The first generation internet routing
algorithm was a distributed version of the
Bellman Ford algorithm
 The distance metric used was queue
length on each outgoing node. This is a
local measure and does not require
information from neighbor nodes
 Routing data exchanges occurred every
128ms
Janice Regan © 2005-1012
19
Problems with first generation
 Algorithm considered only queue length as a measure
of link delay to nearest neighbors, capacity of the link
was not considered. This worked reasonably when all
links had the same capacity, but as the network grew
higher capacity links were introduced.
 Processing time was not considered
 The algorithm responded slowly to congestion and
failure (Count-to-infinity problem)
 Thrashing occurred when packets followed minimal
congestion route rather than aiming for the destination
Janice Regan © 2005-1012
20
Count to Infinity problem
 The example of the distributed Bellman Ford
algorithm we considered assumed that all
stations in the network already knew of the
changes in costs.
 In practice when conditions in a network change,
the change will take time to propagate across the
network.
 Good news propagates quickly across a network
 Bad news propagates slowly across the network
Janice Regan © 2005-1012
21
Count to Infinity problem:
 Consider a linear network with 6 stations
A
B
C
D
E
F
 A is down initially and all other stations know this
 A comes up, at the time of the first exchange of routing
information after A comes up B learns that A is alive
 At the time of the second exchange of routing
information after A comes up C learns that A is alive
 This pattern continues till the time of the sixth data
exchange after A comes up, when F learns that A is
alive. At this point all stations in the network have
learned the good news
Janice Regan © 2005-1012
22
Count to Infinity problem:
 Linear network with 6 stations (all single hop costs 1)
A
B
C
D
E
F
 A is up initially and all other stations know this
 A goes down, at the time of the first exchange of routing
information after A goes down B hears nothing from A.
Since there is no direct path to A, B chooses an indirect
path to A through C (which actually goes through B itself,
but B doesn’t know this)
 The first eight exchanges are illustrated on the next slide.
Janice Regan © 2005-1012
23
Count to Infinity problem:
 Linear network with 6 stations, single hop costs 1)
A
INITIALLY
AFTER 1 EXCHANGE
AFTER 2 EXCHANGES
AFTER 3 EXCHANGES
AFTER 4 EXCHANGES
AFTER 5 EXCHANGES
AFTER 6 EXCHANGES
AFTER 7 EXCHANGES
AFTER 8 EXCHANGES
B
1
3
3
5
5
7
7
9
9
Janice Regan © 2005-1012
C
2
2
4
4
6
6
8
8
10
D
3
3
3
5
5
7
7
9
9
F
E
4
4
4
4
6
6
8
8
10
5
5
5
5
5
7
7
9
9
24
Count to Infinity problem:
 Linear network with 6 stations (all single hop
costs 1)
A
B
C
D
E
F
 The number of iterations necessary to
indicate that the link to 1 is down (cost
infinite) is in fact infinite. It is clear that the
delay increases as the number of iterations
increase, but it is still necessary to ‘count to
infinity’ to reach the correct link costs for link
A-B down.
Janice Regan © 2005-1012
25
Poison Reverse

Consider router A in a network



Router A’s neighbors are routers B, and C
Any entry in A’s routing table will be either
1.
learned from B’s routing table
distance to B + the distance from B to the destination
2. Learned from C’s routing table
distance to C + the distance from C to the destination
Poison reverse means the routing table that A sends to its
neighbors will be different for each neighbor
1. Routes learned from B’s routing table will have costs set to
∞ when A’s table is sent back to B
2. Routes learned from C’s routing table will have costs set to
∞ when A’s table is sent back to C
Janice Regan © 2005-1012
26
Why Poison Reverse
 Removes the possibility of loops between two neighboring
nodes

Does not remove the possibility of longer loops
Example: loop between neighboring nodes
Router B determines the cost to destination X should pass through
router C
This information is sent to router C (poison reverse means that the path
to X has cost ∞)
The connection between router C and X has failed, so C is looking for
an alternate route to X
Without poison reverse C could choose to route to X through B not
knowing B’s path through X included C
With poison reverse the cost of the link through B is ∞ so C will choose
any other path in preference and avoid the count to infinity problem
Janice Regan © 2005-1012
27
Second generation internet
 Distributed Dijkstra (Link State Routing)
 Developed to correct the problems of the first
generation algorithms.
 Followed these steps:

Find neighbors (addresses) and measure delay to
neighbors
 Send a packet containing addresses and delays to
neighbors information to all other routers
 Receive similar packets from other routers and use
the information to construct shortest path to every
other router using Dijkstra’s algorithm
Janice Regan © 2005-1012
28
Second generation internet
 Developed to correct the problems of the first
generation algorithms.
 Followed these steps:

Find neighbors (addresses) using a HELLO packet
 Measure delay to neighbors using an ECHO packet to
measure round trip time ( may include queuing time)
 Send a packet containing addresses and delays to
neighbors information to all other routers every ten
seconds using flooding
 Receive similar packets from other routers and use the
information to construct shortest path to every other
router using Dijkstra’s algorithm
Janice Regan © 2005-1012
29
Problems: second generation
 Flooding caused significant overhead
 The assumption that the measured packet delay was a
good predictor of future link delay sometimes lead to
oscillations.
 When two paths connect two subnets oscillation may
occur:






One path between subnets become congested
The second path is chosen for subsequent traffic.
All traffic is then routed through the second path causing
congestion on that path and low use on the original path.
The original path is chosen for subsequent traffic
The original path again becomes congested and the cycle
repeats
At any time only one of the two paths is being fully utilized
Janice Regan © 2005-1012
30
Third generation internet
 To correct the shortcomings of the second generation
internet a new distance metric was devised.
 The measured delay, T, is converted to a utilization
(cost), ρ, using a single server queuing model. The
service time, Ts, for a standard is the network wide
average packet size divided by the data rate.
  2(Ts  T ) /(Ts  2T )

The result is smoothed by averaging it with the
previous estimate, to give an average utilization at
step n U(n)
U (n  1)  12 [  (n  1)  U (n)]

The link cost is set as a function of the average
utilization that is designed to provide a reasonable
estimate of cost while avoiding oscillations
Janice Regan © 2005-1012
31
Random Routing
 Simple and robust. Similar to flooding but reduces the
traffic load created by flooding.
 Each station randomly chooses one of its neighbors to
send the packet to rather than sending it to all neighbors.
 For an intermediate station, the station is selected from
nearest neighbors excluding the station the packet
originated from
 Each nearest neighbor is assigned a probability. The sum
of the probabilities for all nearest neighbors is 1.

 The probability for the ith nearest neighbor is based on
some cost measure, for example data rates
Pi= (Data rate of Link i)/(
Janice Regan © 2005-1012
data rates for all nearest neighbors)
32