CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer...

42
CS 4284 Systems Capstone Godmar Back Networking

Transcript of CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer...

Page 1: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284Systems Capstone

Godmar Back

Networking

Page 2: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Summary

• Basics of Network Layer– Routing (path selection) vs Forwarding

(switching)– Service models– Datagram Networks vs VC Networks– Basics of routers

• Packet classification, Packet Scheduling, AQM

• Next: Routing Algorithms

Page 3: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

The Network Layer• transports segment from

sending to receiving host • on sending side

encapsulates segments into datagrams

• on receiving side, delivers segments to transport layer

• network layer protocols in every host, router

• router examines header fields in all IP datagrams passing through it

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

Page 4: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Key Network-Layer Functions

• forwarding: move packets from router’s input to appropriate router output

• routing: determine route taken by packets from source to dest.

– Routing algorithms

analogy:

• routing: process of planning trip from source to dest

• forwarding: process of getting through single interchange

Page 5: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

1

23

0111

value in arrivingpacket’s header

routing algorithm

local forwarding tableheader value output link

0100010101111001

3221

Interplay between Routing and Forwarding

Page 6: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

Routing Algorithms

Page 7: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

u

yx

wv

z2

2

13

1

1

2

53

5

Graph: G = (N,E)

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), (y,z) }

Graph abstraction

Page 8: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Graph Abstraction: Costs

u

yx

wv

z2

2

13

1

1

2

53

5 • c(x,x’) = cost of link (x,x’)

- e.g., c(w,z) = 5

• cost could always be 1, or inversely related to bandwidth,or inversely related to congestion

Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

Question: What’s the least-cost path between u and z ?

Page 9: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Routing Algorithm ClassificationGlobal or decentralized

information?Global:• all routers have complete

topology, link cost info• “link state” algorithmsDecentralized: • router knows physically-

connected neighbors, link costs to neighbors

• iterative process of computation, exchange of info with neighbors

• “distance vector” algorithms

Static or dynamic?Static: • routes change slowly over

timeDynamic: • routes change more quickly

– periodic update– in response to link cost

changes

Note: Global/decentralized classification does not say where routing computation is performed, it says what information one has when computing routes

Page 10: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Routing

• Routers periodically broadcast link state information– link state messages or LSA (link state advertisement)– broadcast via sequence-number controlled flooding

• All routers acquire complete connectivity + link cost information of entire network

• Each router computes routing table from that obtained topology– Dijkstra’s shortest path to other routers, from

computing router this becomes forwarding table

Page 11: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast

• Goal: every node obtains a copy of this table– and updates as conditions change

u

yx

wv

z2

2

13

1

1

2

53

5u v w x y z

u 0 2 5 1

v 2 0 3 2

w 5 3 0 3 1 5

x 1 2 3 0 1

y 1 1 0 2

z 5 2 0

Page 12: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast (2)• Idea:

– Send n’th row of own adjacency matrix – (conceptually, at least)

– With sender id n– Sequence number k

• On receipt of msg from node n, node m updates n’th row with msg content– update adj[m][n] to note connection

to neighbor with link cost• Controlled flooding, based on

sequence number• First round, everybody sends

u

yx

wv

z2

2

13

1

1

2

53

5

*,0

from node_id

seq number

Page 13: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast (3)

• u’s view after first broadcast

u

yx

wv

z2

2

13

1

1

2

53

5

u v w x y z

u 0 2 5 1

v 0

w 0

x 0

y 0

z 0

Page 14: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast (4)

• v’s view after first broadcast

u

yx

wv

z2

2

13

1

1

2

53

5

u v w x y z

u 0

v 2 0 3 2

w 0

x 0

y 0

z 0

Page 15: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast (5)

• Msgs exchanged in second round

u

yx

wv

z2

2

13

1

1

2

53

5

u,1 0 2 5 1

v,1 2 0 3 2

w,1 5 3 0 3 1 5

x,1 1 2 3 0 1

y,1 1 1 0 2

z,1 5 2 0

Page 16: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Link State Broadcast (6)

• everybody’s view after 2nd broadcast– Link changes will cause

new broadcasts

u

yx

wv

z2

2

13

1

1

2

53

5

u v w x y z

u 0 2 5 1

v 2 0 3 2

w 5 3 0 3 1 5

x 1 2 3 0 1

y 1 1 0 2

z 5 2 0

Page 17: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Dijkstra’s algorithm

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

• Idea:– Keep track of nodes to whom

least cost path is known– Keep track of complement:

“candidate set” – for which you have estimates of cost

• Start with one node– Create estimates for adjacent

nodes• Repeat

– Choose best candidate, update estimates for other candidates based on candidate’s neighbors

– Remove candidate from candidate set and add to known set

• Until done

Page 18: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Dijkstra’s Algorithm1 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'

Page 19: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

2, u 4, x 2, x 2, u 3, y 4, y

3, y 4, y

4, y

2, u 5, u 1, u

Dijkstra’s Algorithm Example

u

yx

wv

z2

2

13

1

1

2

53

5

Step N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z)v w x y z

0 u

1 u

2 ux

3 uxy

5 uxyvw

4 uxyv

Done!

Page 20: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Implementing Link State Routing• “HELLO” neighbor protocol

– Get to know your neighbors– Learn if neighbor moves out (link goes down)

• LSA broadcast protocol– Let the entire world know who your neighbors are

• As soon as you learn who yours are• Whenever your knowledge changes

– Help others broadcast information about their neighbors to entire world (until everybody learns entire topology)

– Maintain sequence numbers to prevent circular forwarding

• The two can be combined (design choice)

Page 21: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Dijkstra’s algorithm, discussionAlgorithm complexity: n nodes, assume |E| << n2

• each iteration: need to check all nodes, w, not in N• n(n+1)/2 comparisons: O(n2)• more efficient implementations possible: O(nlogn)

Oscillations possible:• If, for instance, link cost = amount of carried traffic

A

D

C

B1 1+e

e0

e

1 1

0 0

A

D

C

B2+e 0

001+e1

A

D

C

B0 2+e

1+e10 0

A

D

C

B2+e 0

001+e1

initially… recompute

routing… recompute … recompute

Page 22: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Distance Vector Algorithm (1)

Bellman-Ford Equation (dynamic programming)

Define

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

Then

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

where min is taken over all neighbors of x

Page 23: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Bellman-Ford Example (2)

u

yx

wv

z2

2

13

1

1

2

53

5Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3

du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, 5 + 3} = 4

Node that achieves minimum is nexthop in shortest path forwarding table➜

B-F equation says:

Page 24: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Distance Vector Algorithm (3)

• Dx(y) = estimate of least cost from x to y• Distance vector: Dx = [Dx(y): y N ]• Node x knows cost to each neighbor v:

c(x,v)• Node x maintains Dx = [Dx(y): y N ]• Node x also maintains its neighbors’

distance vectors (at least temporarily)– For each neighbor v, x maintains Dv = [Dv(y): y N ]

Page 25: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Distance Vector Algorithm (4)

Basic Idea: • Each node periodically sends its own distance

vector estimate to neighbors• When a node x receives new DV estimate from

neighbor, it updates its own DV using B-F equation:

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

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

Page 26: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

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 of msg from neighbor)

recompute estimates

if DV to any dest has

changed, notify neighbors

Each node:

Page 27: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Example DV Routing

- 1 2 5

1 - 4

2 4 - 1

5 1 -

1

25 4

1

0

1

2

3

Page 28: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Example (cont’d)

- 1 2 5

1 - 4

2 4 - 1

5 1 -

1

2

5

4

1

- 1 2 3- 1 2 3

1 - 3 41 - 3 5

2 3 - 12 3 - 1

3 5 1 -

time

3 4 1 -

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

Page 29: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Example (cont’d)

• Converged after 3 iterations

• What if link cost changes?

0 1 2 30 - 1 2 31 1 - 3 42 2 3 - 13 3 4 1 -

Page 30: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

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

“goodnews travelsfast”

x z14

50

y1

At time t0, y detects the link-cost change, updates its DV, and informs its neighbors.

At time t1, 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 t2, 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.

Page 31: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Count-To-Infinity

5051-

1-51

-15

60

501

x z14

50

y60

x

y

z

- 4 5

4 - 1

5 1 -

Before change:

5051-

1-8

-150

5051-

1-6

-150

5051-

1-51

-17

y to x via z

z to x via y

y to x via z

51

51 50

50

Page 32: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Distance Vector: Link Cost Changes

Link cost changes:• good news travels fast • bad news travels slow - “count to infinity”

problem!• 44 iterations before algorithm stabilizes

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)

• will this completely solve count to infinity problem?

x z14

50

y60

Page 33: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Poisoned Reverse

- 51 50

51 - 1

5 1 -

60

501

- 51 50

6 - 1

50 1 -

x z14

50

y60

- 51 50

51 - 1

5 1 -

After change:

5051-

1-51

-150

y to x via z

z to x via x

- 1

Don’t tell z dist to x

x

y

z

5051-

1-51

-150

Page 34: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

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(n2) 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 propagates thru

network

Page 35: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

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

Page 36: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Hierarchical Routing

• aggregate routers into regions, “autonomous systems” (AS)

• routers in same AS run same routing protocol– “intra-AS” routing

protocol– routers in different

AS may run different intra-AS routing protocols

Gateway router• Direct link to router

in another AS

• Example: – [AS1312]

Page 37: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

Intra-ASRouting algorithm

Inter-ASRouting algorithm

Forwardingtable

3c

Interconnected ASes

• Forwarding table is 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

Page 38: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

3c

Inter-AS tasks• Suppose 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!

Page 39: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

3c

Inter-AS tasks (cont’d)• Suppose 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?

Scenario 1

Destination x is reachable through single AS

Inter-AS must propagate this information inside AS

AS3 advertises route to x

AS2 does not advertise route to x

Spread in AS1:use gateway 1c

to get to x

Least cost path to 1c is interface l, add (x,

l) to routing table

Page 40: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

3c

Hot Potato Routing• Suppose 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?

Scenario 2:

Destination is reachable through multiple AS:

Hot potato routing: send packet towards closest of two routers

Page 41: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

3b

1d

3a

1c2aAS3

AS1

AS21a

2c2b

1b

3c

Hot Potato Routing• Suppose 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?

Scenario 2:

Destination is reachable through multiple AS:

Hot potato routing: send packet towards closest of two routers

AS3 advertises route to x

AS2 advertises route to x

Spread in AS1:1c and 1b lead to

x

1b is closer than 1c, interface k leads to 1b, so add (x, k) to

routing table

Page 42: CS 4284 Systems Capstone Godmar Back Networking. CS 4284 Spring 2013 Summary Basics of Network Layer –Routing (path selection) vs Forwarding (switching)

CS 4284 Spring 2013

Summary

• Routing algorithms:– Link State– Distance Vector

• Hierarchical Routing– AS: autonomous systems

• Next: application to Internet/IP