• No results found

value in arriving packet s header routing algorithm local forwarding table header value output link

N/A
N/A
Protected

Academic year: 2021

Share "value in arriving packet s header routing algorithm local forwarding table header value output link"

Copied!
11
0
0

Loading.... (view fulltext now)

Full text

(1)

Stan Kurkovsky

Computer Networks

Computer Networks

Routing Algorithms

Routing Algorithms

Based on Computer Networking, 4thEdition by Kurose and Ross

Interplay between routing, forwarding Interplay between routing, forwarding

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

(2)

Stan Kurkovsky

Graph abstraction Graph abstraction

•• Graph: G = (N,E)Graph: G = (N,E)

•• N = set of routers = { u, v, w, x, y, z }N = set of routers = { u, v, w, x, y, z }

•• E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

(y,z) }

•• Remark: Graph abstraction is useful in other network contextsRemark: Graph abstraction is useful in other network contexts

•• Example: P2P, where N is set of peers and E is set of TCP connectionsExample: P2P, where N is set of peers and E is set of TCP connections

u y

x

w v

z

2 2 1 3 1 1 2 5 3 5

Graph abstraction: costs Graph abstraction: costs

•• c(x,x’) = cost of link (x,x’)c(x,x’) = cost of link (x,x’) -- e.g., c(w,z) = 5e.g., c(w,z) = 5 •• cost could always be 1, cost could always be 1,

or inversely related to bandwidth, or inversely related to bandwidth, or inversely related to congestion or inversely related to congestion

•• Cost of path (xCost of path (x11, x, x22, x, x33,…, x,…, xpp) = c(x) = c(x11,x,x22) + c(x) + c(x22,x,x33) + … + c(x) + … + c(xpp--11,x,xpp) ) •• Question: What’s the leastQuestion: What’s the least--cost path between u and z ?cost path between u and z ?

•• Routing algorithm: algorithm that finds leastRouting algorithm: algorithm that finds least--cost pathcost path

u y

x

w v

z

2 2 1 3 1 1 2 5 3 5
(3)

Stan Kurkovsky

Routing Algorithm classification Routing Algorithm classification

Global or decentralized Global or decentralized information? information? Global: Global:

•• all routers have complete all routers have complete topology, link cost info topology, link cost info •• “link state” algorithms“link state” algorithms Decentralized:

Decentralized:

•• router knows physicallyrouter knows

physically--connected neighbors, link costs connected neighbors, link costs to neighbors

to neighbors

•• iterative process of computation, iterative process of computation, exchange of info with neighbors exchange of info with neighbors •• “distance vector” algorithms“distance vector” algorithms

Static or dynamic? Static or dynamic? Static:

Static:

•• routes change slowly over timeroutes change slowly over time Dynamic:

Dynamic:

•• routes change more quicklyroutes change more quickly •• periodic updateperiodic update

•• in response to link cost in response to link cost changes

changes

A Link

A Link--State Routing AlgorithmState Routing Algorithm

Dijkstra’s

Dijkstra’s algorithmalgorithm

•• net topology, link costs known to all nodesnet topology, link costs known to all nodes •• accomplished via “link state broadcast” accomplished via “link state broadcast” •• all nodes have same infoall nodes have same info

•• computes least cost paths from one node (‘source”) to all other nodescomputes least cost paths from one node (‘source”) to all other nodes •• gives gives forwarding tableforwarding tablefor that nodefor that node

•• iterative: after k iterations, know least cost path to k destinationsiterative: after k iterations, know least cost path to k destinations

Notation: Notation:

••

c(

c(x,y

x,y):

):

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

••

D(v):

D(v):

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

••

p(v):

p(v):

predecessor node along path from source to vpredecessor node along path from source to v

••

N''::

N

set of nodes whose least cost path definitively knownset of nodes whose least cost path definitively known
(4)

Stan Kurkovsky

Dijsktra’s Algorithm Dijsktra’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'

Dijkstra’s algorithm: example 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
(5)

Stan Kurkovsky

Dijkstra’s algorithm: example (2) 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:

Dijkstra’s algorithm, discussion Dijkstra’s algorithm, discussion

Algorithm complexity:

Algorithm complexity: n nodesn nodes

•• each iteration: need to check all nodes, w, not in Neach iteration: need to check all nodes, w, not in N •• n(n+1)/2 comparisons: O(nn(n+1)/2 comparisons: O(n22))

•• more efficient implementations possible: O(nlogn)more efficient implementations possible: O(nlogn) Oscillations possible:

Oscillations possible:

•• e.g., link cost = amount of carried traffice.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 01+e 1

(6)

Stan Kurkovsky

Distance Vector Algorithm Distance Vector Algorithm

Bellman

Bellman--Ford Equation (dynamic programming)Ford Equation (dynamic programming) •• DefineDefine

d

dxx(y) := cost of least(y) := cost of least--cost path from x to ycost path from x to y •• ThenThen

d

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

where min is taken over all neighbors v of x where min is taken over all neighbors v of x

Bellman

Bellman--Ford exampleFord 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

(7)

Stan Kurkovsky

Distance Vector Algorithm Distance Vector Algorithm

•• DDxx(y)(y)= estimate of least cost from x to y= estimate of least cost from x to y •• Distance vector: Distance vector: DDxx= [D= [Dxx(y): y (y): y єє N ]N ]

•• Node x knows cost to each neighbor v: Node x knows cost to each neighbor v: c(x,v)c(x,v) •• Node x maintains Node x maintains DDxx= [D= [Dxx(y): y (y): y єє N ]N ]

•• Node x also maintains its neighbors’ distance vectorsNode x also maintains its neighbors’ distance vectors

•• For each neighbor v, x maintains For each neighbor v, x maintains

D

Dvv= [D= [Dvv(y): y (y): y єє N ]N ]

Basic idea: Basic idea:

•• Each node periodically sends its own distance vector estimate to Each node periodically sends its own distance vector estimate to neighbors

neighbors

•• When a node x receives new DV estimate from neighbor, it updates its When a node x receives new DV estimate from neighbor, it updates its own DV using B

own DV using B--F equation:F equation:

Dx(y) ←minv{c(x,v) + Dv(y)} for each node y N

•• Under minor, natural conditions, the estimate Under minor, natural conditions, the estimate Dx(y) converge to the Dx(y) converge to the actual least cost

actual least cost dx(y) dx(y)

Distance Vector Algorithm Distance Vector Algorithm

Iterative, asynchronous:

Iterative, asynchronous:

each each

local iteration caused by: local iteration caused by: •• local link cost change local link cost change •• DV update message from DV update message from

neighbor neighbor

Distributed:

Distributed:

•• each node notifies neighbors each node notifies neighbors onlyonly

when its DV changes when its DV changes

•• neighbors then notify their neighbors then notify their neighbors if necessary neighbors if necessary

Each node:

Each node:

wait

for (change in local link

cost of msg from neighbor)

recompute

estimates

if DV to any dest has

(8)

Stan Kurkovsky

Distance Vector: link cost changes Distance Vector: link cost changes

Link cost changes: Link cost changes:

•• node detects local link cost change node detects local link cost change •• updates routing info, recalculates updates routing info, recalculates

distance vector distance vector

•• if DV changes, notify neighborsif DV changes, notify neighbors •• “Good news travels fast”“Good news travels fast”

•• At time At time tt00, , yydetects the linkdetects the link--cost change, updates its DV, and informs its cost change, updates its DV, and informs its

neighbors. neighbors.

•• At time At time tt11, , zzreceives the update from receives the update from yyand updates its table. It computes a and updates its table. It computes a

new least cost to

new least cost to xx and sends its neighbors its DV.and sends its neighbors its DV.

•• At time At time tt22, , yyreceives receives zz’s update and updates its distance table. ’s update and updates its distance table. yy’s least costs ’s least costs

do not change and hence

do not change and hence yy does does notnotsend any message to send any message to zz. .

x z 1 4 50 y 1

Distance Vector: link cost changes Distance Vector: link cost changes

Link cost changes: Link cost changes:

•• good news travels fast good news travels fast

•• bad news travels slow bad news travels slow -- “count to infinity” problem!“count to infinity” problem! •• 44 iterations before algorithm stabilizes44 iterations before algorithm stabilizes

Poissoned reverse: Poissoned reverse:

•• If Z routes through Y to get to X :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 tells Y its (Z’s) distance to X is infinite (so Y won’t route to X via Z)

•• will this completely solve count to infinity problem? will this completely solve count to infinity problem?

x z 1 4 50 y 60

(9)

Distance Vector

Distance Vector: example: example

Stan Kurkovsky x y z x y z 0 2 7 ∞ ∞ ∞ ∞ ∞ ∞ fr o m cost to fr o m fr o m x y z x y z 0 2 3 fr o m cost to x y z x y z 0 2 3 fr o m cost to x y z x y z ∞ ∞ ∞ ∞ ∞ cost to x y z x y z 0 2 7 fr o m cost to x y z x y z 0 2 3 fr o m cost to x y z x y z 0 2 3 fr o m cost to x y z x y z 0 2 7 fr o m 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

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2

Dx(z) =min{c(x,y) +

Dy(z), c(x,z) + Dz(z)}

= min{2+1 , 7+0} = 3

Comparison of LS and DV algorithms Comparison of LS and DV algorithms

Message complexity

Message complexity

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

msgs sent

•• DV: DV: exchange between neighbors exchange between neighbors only

only

•• convergence time variesconvergence time varies

Speed of Convergence

Speed of Convergence

•• LS:LS:O(nO(n22) algorithm requires ) algorithm requires O(nE) msgs

O(nE) msgs

•• may have oscillationsmay have oscillations •• DVDV: convergence time varies: convergence time varies

•• may be routing loopsmay be routing loops •• countcount--toto--infinity probleminfinity problem

Robustness:

Robustness:what happens if router what happens if router malfunctions?

malfunctions? LS:

LS:

•• node can advertise incorrect node can advertise incorrect linklink

cost cost

•• each node computes only its each node computes only its ownown

table table

DV: DV:

•• DV node can advertise incorrect DV node can advertise incorrect

path pathcostcost

•• each node’s table used by others each node’s table used by others •• error propagate thru networkerror propagate thru network

(10)

Stan Kurkovsky

Hierarchical Routing Hierarchical Routing

Our routing study thus far

Our routing study thus far -- idealization idealization

•• all routers identical; network “flat” all routers identical; network “flat” … not… nottrue in practicetrue in practice scale:

scale:with 200 million destinations:with 200 million destinations: •• can’t store all dest’s in routing tables!can’t store all dest’s in routing tables! •• routing table exchange would swamp links!routing table exchange would swamp links! administrative autonomy

administrative autonomy

•• internet = network of networksinternet = network of networks

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

•• aggregate routers into regions,aggregate routers into regions,“autonomous systems” (AS)“autonomous systems” (AS) •• routers in same AS run same routing protocolrouters in same AS run same routing protocol

•• “intra“intra--AS” routingAS” routingprotocolprotocol

•• routers in different AS can run different intrarouters in different AS can run different intra--AS routing protocolAS routing protocol

Gateway router Gateway router

•• Direct link to router in another ASDirect link to router in another AS

Interconnected ASes Interconnected ASes

•• Forwarding table is configured by both intraForwarding table is configured by both intra-- and interand inter--AS routing AS routing algorithm

algorithm

•• IntraIntra--AS sets entries for internal destsAS sets entries for internal dests

•• InterInter--AS & IntraAS & Intra--As sets entries for external dests As sets entries for external dests

3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b Intra-AS Routing algorithm Inter-AS Routing algorithm Forwarding table 3c

(11)

Stan Kurkovsky

Inter

Inter--AS tasksAS tasks

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

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

one?

AS1 needs: AS1 needs: 1.

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

2. to propagate this reachability info to all routers in AS1to propagate this reachability info to all routers in AS1 Job of inter

Job of inter--AS routing!AS routing!

3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c

References

Related documents

Driver-partners spend Uber income on: Major reasons they work with Uber 76% say “earning more income to better support myself or my family” 51% say “maintaining a steady

In stage II and III disease, the magnitude of pulmonary parenchymal involvement on X-ray of the chest is out of proportion to the clinical symptoms, particularly

Minimally invasive surgical approach compared with open pancreaticoduodenectomy: a systematic review and meta- analysis on the feasibility and safety. Surg Laparosc Endosc

As found in most of the durability studies of the Lignocellulosic natural erosion control material (Paddy straw Geo-mesh in this case), the method proposed here includes

distance-vector routing: disseminate information about the current costs to each node, rather than the actual topology. its link costs to each of

Connection diagrams page 34/35 Sanitary design - Stainless steel SS 316 L KSR Magnetic Float Switches. Connection cable Impulse contact Impulse contact

Stimulation of the faucial pilars Tongue exercises Delayed / absent swallowing reflex Smooth consistency Head anteflexion Mendelsohn manouvre Tongue exercises Masako manoeuvre

In order to understand the situation of recent and esta- blished HIV infection among Chinese MSM, a compre- hensive multisite cross-sectional study was conducted in seven cities