63
1 Missing Pieces of the Puzzle EE122 Fall 2011 Scott Shenker http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks to Jennifer Rexford, Ion Stoica, Vern Paxson and other colleagues at Princeton and UC Berkeley

Missing Pieces of the Puzzle

  • Upload
    roxy

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

Missing Pieces of the Puzzle. EE122 Fall 2011 Scott Shenker http:// inst.eecs.berkeley.edu /~ee122/ Materials with thanks to Jennifer Rexford, Ion Stoica , Vern Paxson and other colleagues at Princeton and UC Berkeley. Announcements. Everyone should be signed up and have account - PowerPoint PPT Presentation

Citation preview

Page 1: Missing Pieces of the Puzzle

1

Missing Pieces of the Puzzle

EE122 Fall 2011

Scott Shenkerhttp://inst.eecs.berkeley.edu/~ee122/

Materials with thanks to Jennifer Rexford, Ion Stoica, Vern Paxsonand other colleagues at Princeton and UC Berkeley

Page 2: Missing Pieces of the Puzzle

Announcements• Everyone should be signed up and have account

– If you aren’t see me at end of class

• We lost our grader, so delaying HW#2– Gives us a chance to cover more material…

• Beanbags. Really?

2

Page 3: Missing Pieces of the Puzzle

Agenda for Today• Finish up routing: not as simple as you might think• Discuss missing pieces: preview of rest of class

3

Page 4: Missing Pieces of the Puzzle

Last Time• Link-State Routing• Spread state everywhere• Nodes do local computation over entire graph• Local computation, global state• Doesn’t scale well, involves broadcasts

4

Page 5: Missing Pieces of the Puzzle

This Time• Global computation, local state• We want to limit the distribution of state• So computation must be distributed• The most common example is distance-vector

5

Page 6: Missing Pieces of the Puzzle

6

Distance-Vector

Details in Section

Page 7: Missing Pieces of the Puzzle

Distributed Computation of Routes• More scalable than Link-State

– No global flooding

• Each node computing the outgoing port based on:– Local information (who it is connected to)– Paths advertised by neighbors

• Algorithms differ in what these exchanges contain– Distance-vector: just the distance to each destination– Path-vector: the entire path to each destination

• We will focus on distance-vector for now

7

Page 8: Missing Pieces of the Puzzle

Example of Distributed Computation

8

I am one hop away

I am one hop away

I am one hop away

I am two hops away

I am two hops away

I am two hops away

I am two hops awayI am three hops away

I am three hops away

DestinationI am three hops away

Page 9: Missing Pieces of the Puzzle

Very similar to Monday’s Class• Destination stands up• Announces neighbors

– They stand up

• They announce their neighbors– They stand up

• …..and so on, until source stands• On Monday you started with the source, but paths

are reversible so it doesn’t matter….• Key point: don’t stand up twice!

9

Page 10: Missing Pieces of the Puzzle

Step 1• Destination stands up

10

Page 11: Missing Pieces of the Puzzle

Step 1

11

Page 12: Missing Pieces of the Puzzle

Step 2• Destination stands up• Announces neighbors

– They stand up

12

Page 13: Missing Pieces of the Puzzle

Step 2

13

I am one hop away

I am one hop away

I am one hop away

Page 14: Missing Pieces of the Puzzle

Step 3• Destination stands up• Announces neighbors

– They stand up

• They announce their neighbors– They stand up

14

Page 15: Missing Pieces of the Puzzle

Step 3

15

I am two hops away

I am two hops away

I am two hops away

I am two hops away

Page 16: Missing Pieces of the Puzzle

Why Not Stand Up Twice?• Being called a second time means that there is a

second (and longer) path to you– You already contacted your neighbors the first time– Your distance to destination is based on shorter path

16

Page 17: Missing Pieces of the Puzzle

Basics of Distributed Routing• Nodes advertise their best paths to neighbors• Nodes select among paths offered by neighbors

– Ignore all but the best path

• Iterative process eventually leads to convergence• If “cost” is hopcounts, then nodes find out about

shortest paths first (ignore later ones)– If costs are general, later paths might be better

• Remember: nodes “select” among offered paths– But what selection criteria are allowed?

17

Page 18: Missing Pieces of the Puzzle

No agreement on metrics?• If the nodes choose their paths according to

different criteria, then bad things might happen• Example

– Node A is minimizing latency– Node B is minimizing loss rate– Node C is minimizing price

• Any of those goals are fine, if globally adopted– Only a problem when nodes use different criteria

18

Page 19: Missing Pieces of the Puzzle

What Happens Here?

19

Low price link

Low loss link

Low delay linkLow loss link

Low delay linkLow price link

Cares about price, then loss

Cares about delay,then price

Cares about loss,then delay

Page 20: Missing Pieces of the Puzzle

Can You Use Any Metric?• Are there any metrics that won’t work, even if

everyone agrees on it?• What about maximizing capacity?

20

Page 21: Missing Pieces of the Puzzle

What Happens Here?

21

All nodes want to maximize capacityA high capacity link gets reduced to low capacity

Page 22: Missing Pieces of the Puzzle

Must agree on loop-avoiding metric• When all nodes minimize same metric• And that metric increases around loops• Then process is guaranteed to converge

• On to the details of the algorithm….– Nothing interesting, but will be on test.

22

Page 23: Missing Pieces of the Puzzle

23

Distance Vector Routing• Each router knows the links to its neighbors

– Does not flood this information to the whole network

• Each router has provisional “shortest path”– E.g.: Router A: “I can get to router B with cost 11 via

next hop router D”

• Routers exchange this Distance-Vector information with their neighboring routers– Vector because one entry per destination

• Routers update their idea of the best path using info from neighbors

• Iterative process converges to set of shortest paths

Page 24: Missing Pieces of the Puzzle

24

Information Flow in Distance Vector

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Page 25: Missing Pieces of the Puzzle

25

Information Flow in Distance Vector

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Page 26: Missing Pieces of the Puzzle

26

Information Flow in Distance Vector

Host A

Host BHost E

Host D

Host C

N1 N2

N3

N4

N5

N7N6

Why is this different from flooding?

Page 27: Missing Pieces of the Puzzle

Bellman-Ford Algorithm• INPUT:

– Link costs to each neighbor– Not full topology

• OUTPUT:– Next hop to each destination and the corresponding cost– Does not give the complete path to the destination

• My neighbors tell me how far they are from dest’n– Compute: (cost to nhbr) plus (nhbr’s cost to destination)– Pick minimum as my choice– Advertise that cost to my neighbors

• Next few slides show the corrosive power of ppt27

Page 28: Missing Pieces of the Puzzle

28

Bellman-Ford - Overview• Each router maintains a table

– Best known distance from X to Y, via Z as next hop = DZ(X,Y)

• Each local iteration caused by: – Local link cost change – Message from neighbor

• Notify neighbors only if least cost path to any destination changes– Neighbors then notify their neighbors if

necessary

wait for (change in local link cost or msg from neighbor)

recompute distance table

if least cost path to any dest has changed, notify neighbors

Each node:

Page 29: Missing Pieces of the Puzzle

Bellman-Ford - Overview• Each router maintains a table

– Row for each possible destination– Column for each directly-attached

neighbor to node– Entry in row Y and column Z of node X

best known distance from X to Y, via Z as next hop = DZ(X,Y)

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

Neighbor (next-hop)

Destinations DC(A, D)

Page 30: Missing Pieces of the Puzzle

Bellman-Ford - Overview• Each router maintains a table

– Row for each possible destination– Column for each directly-attached

neighbor to node– Entry in row Y and column Z of node X

best known distance from X to Y, via Z as next hop = DZ(X,Y)

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

Smallest distance in row Y = shortestDistance of A to Y, D(A, Y)

Page 31: Missing Pieces of the Puzzle

31

Distance Vector Algorithm (cont’d)

1 Initialization: 2 for all neighbors V do3 if V adjacent to A 4 D(A, V) = c(A,V);5 else 6 D(A, V) = ∞;7 send D(A, Y) to all neighbors loop: 8 wait (until A sees a link cost change to neighbor V /* case 1 */9 or until A receives update from neighbor V) /* case 2 */10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */ /* shortest path from V to some Y has changed */ 14 DV(A,Y) = DV(A,V) + D(V, Y); /* may also change D(A,Y) */15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

• c(i,j): link cost from node i to j• DZ(A,V): cost from A to V via Z• D(A,V): cost of A’s best path to V

Page 32: Missing Pieces of the Puzzle

Example:1st Iteration (C A)

A C12

7

B D3

1

B CB 2 8C ∞ 7D ∞ 8

Node A

A C DA 2 ∞ ∞C ∞ 1 ∞D ∞ ∞ 3

Node B

Node C

A B DA 7 ∞ ∞B ∞ 1 ∞D ∞ ∞ 1

B CA ∞ ∞B 3 ∞C ∞ 1

Node D7 loop: …13 else if (update D(A, Y) from C) 14 DC(A,Y) = DC(A,C) + D(C, Y);15 if (new min. for destination Y)16 send D(A, Y) to all neighbors 17 forever

DC(A, B) = DC(A,C) + D(C, B) = 7 + 1 = 8

DC(A, D) = DC(A,C) + D(C, D) = 7 + 1 = 8

Page 33: Missing Pieces of the Puzzle

Example: 1st Iteration (B A)

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A

A C DA 2 ∞ ∞C ∞ 1 ∞D ∞ ∞ 3

Node B

Node C

A B DA 7 ∞ ∞B ∞ 1D ∞ ∞ 1

Node D7 loop: …13 else if (update D(A, Y) from B) 14 DB(A,Y) = DB(A,B) + D(B, Y);15 if (new min. for destination Y)16 send D(A, Y) to all neighbors 17 forever

DB(A, C) = DB(A,B) + D(B, C) = 2 + 1 = 3

DB(A, D) = DB(A,B) + D(B, D) = 2 + 3 = 5

B CA ∞ ∞B 3 ∞C ∞ 1

Page 34: Missing Pieces of the Puzzle

Example: End of 1st Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A Node B

Node C

A B DA 7 3 ∞B 9 1 4D ∞ 4 1

Node D

B CA 5 8B 3 2C 4 1

End of 1st Iteration All nodes knows the best two-hop

paths

A C DA 2 8 ∞C 9 1 4D ∞ 2 3

Page 35: Missing Pieces of the Puzzle

Example: 2nd Iteration (A B)

A C12

7

B D3

1

B CB 2 8C 3 7D 5 8

Node A Node B

Node C

A B DA 7 3 ∞B 9 1 4D ∞ 4 1

Node D

B CA 5 8B 3 2C 4 1

A C DA 2 3 ∞C 5 1 4D 7 2 3

7 loop: …13 else if (update D(B, Y) from A) 14 DA(B,Y) = DA(B,A) + D(A, Y);15 if (new min. for destination Y)16 send D(B, Y) to all neighbors 17 forever

DA(B, C) = DA(B,A) + D(A, C) = 2 + 3 = 5

DA(B, D) = DA(B,A) + D(A, D) = 2 + 5 = 7

Where does this 5 come from?Where does this 7 come from?What harm does this cause?How could we fix this?

Page 36: Missing Pieces of the Puzzle

Example: End of 2nd Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

A C DA 2 3 11C 5 1 4D 7 2 3

Node B

Node C

A B DA 7 3 6B 9 1 4D 12 4 1

Node D

B CA 5 4B 3 2C 4 1

End of 2nd Iteration All nodes knows the best three-hop paths

Page 37: Missing Pieces of the Puzzle

Example: End of 3rd Iteration

A C12

7

B D3

1

B CB 2 8C 3 7D 4 8

Node A

A C DA 2 3 6C 5 1 4D 7 2 3

Node B

Node C

A B DA 7 3 5B 9 1 4D 11 4 1

Node D

B CA 5 4B 3 2C 4 1

End of 2nd Iteration: Algorithm

Converges!

Page 38: Missing Pieces of the Puzzle

Intuition• Initial state: best one-hop paths• One round: best two-hop paths• Two rounds: best three-hop paths• …• Kth round: best (k+1) hop paths

• This must eventually converge….but how does it respond to changes in cost?

38

Page 39: Missing Pieces of the Puzzle

39

Distance Vector: Link Cost Changes

A C14

50

B1

“goodnews travelsfast”

A CA 4 6C 9 1

Node B

A BA 50 5B 54 1

Node C

Link cost changes heretime

Algorithm terminates

loop: 8 wait (until A sees a link cost change to neighbor V9 or until A receives update from neighbor V) /10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */14 DV(A,Y) = DV(A,V) + D(V, Y); 15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

A CA 1 6C 9 1

A BA 50 5B 54 1

A CA 1 6C 9 1

A BA 50 2B 51 1

A CA 1 3C 3 1

A BA 50 2B 51 1

Page 40: Missing Pieces of the Puzzle

40

DV: Count to Infinity Problem

A C14

50

B60

“badnews travelsslowly”

Node B

Node C

Link cost changes here time

loop: 8 wait (until A sees a link cost change to neighbor V9 or until A receives update from neighbor V) /10 if (c(A,V) changes by ±d) /* case 1 */11 for all destinations Y that go through V do 12 DV(A,Y) = DV(A,Y) ± d 13 else if (update D(V, Y) received from V) /* case 2 */14 DV(A,Y) = DV(A,V) + D(V, Y); 15 if (there is a new minimum for destination Y)16 send D(A, Y) to all neighbors 17 forever

A CA 4 6C 9 1

A BA 50 5B 54 1

A CA 60 6C 9 1

A BA 50 5B 54 1

A CA 60 6C 9 1

A BA 50 7B 101 1

A CA 60 8C 9 1

A BA 50 7B 101 1More like avoidance: believe

anything if it hides the bad news

Page 41: Missing Pieces of the Puzzle

41

Distance Vector: Poisoned Reverse

A C14

50

B60• If B routes through C to get to A:

- B tells C its (B’s) distance to A is infinite (so C won’t route to A via B)

Node B

Node C

Link cost changes here; C updates D(C, A) = 60 as B has advertised D(B, A) = ∞

timeAlgorithm terminates

A CA 4 6C 9 1

A BA 50 5B ∞ 1

A CA 60 6C 9 1

A BA 50 5B ∞ 1

A CA 60 6C 9 1

A BA 50 ∞B ∞ 1

A CA 60 51C 9 1

A BA 50 ∞B ∞ 1

A CA 60 51C 9 1

A BA 50 ∞B ∞ 1

Page 42: Missing Pieces of the Puzzle

Will PR Solve C2I Problem Completely?

42

A C1

B

D

1

1 11 1

2 2

∞ ∞

100

100 1003

4

∞ 4

56

Page 43: Missing Pieces of the Puzzle

Another Distributed Loop Avoidance• Exchange entire paths, not just cost of paths

– My path to the destination is <n1, n2, n3, …>– Path-vector routing (PV)

• Nodes can use arbitrary metrics to choose paths– No need to agree on single metric– Each node can evaluate the path independently

• No loops, but algorithm might not converge

• Previous example of multiple criteria showed this 43

Page 44: Missing Pieces of the Puzzle

Scary Thought• The Internet’s interdomain routing is based on PV• Domains can use arbitrary criteria to choose paths• There is no guarantee that the entire Internet

routing system won’t oscillate• We’ve just been “lucky” so far….

44

Page 45: Missing Pieces of the Puzzle

Another Scary Thought• In both DV and PV, what happens when node lies

– UCB’s router says: “Sure, I’m one hop away from MIT”– What happens to traffic destined for MIT?

• This has happened, major outages

• Could this happen with Link-State?

45

Page 46: Missing Pieces of the Puzzle

Routing: Just the Beginning• Link state and distance-vector (and path vector)

are the deployed routing paradigms• But we know how to do much, much better…• Stay tuned for a later lecture where we:

– Reduce convergence time to zero– Respond to failures instantly!

46

Page 47: Missing Pieces of the Puzzle

Missing Pieces

47

Page 48: Missing Pieces of the Puzzle

Where are we?• We have covered the “fundamentals”

– How to deliver packets (routing)– How to build reliable delivery on an unreliable network

• With this, we could build a decent network

• But couldn’t actually do anything with the network– Too many missing pieces

• Today: identify those pieces– Will guide what we cover rest of semester 48

Page 49: Missing Pieces of the Puzzle

Scenario: Jane Wants Her Music• Jane is sitting in her dorm room, with a laptop

• Has overwhelming urge to listen to John Cage

• What needs to happen to make this possible?

• Go one step at a time

49

Page 50: Missing Pieces of the Puzzle

What Are The Steps Involved?• Accessing the network from laptop

– Wireless or ethernet– Network management (someone needs to make it work)

• Mapping “real world name” to “network name”• Mapping network name to location• Download content from location

– Finding nearby content

• Addressing general security concerns– Verifying that this is the right content– And that no one can tell what she’s downloading

50

Page 51: Missing Pieces of the Puzzle

Access Networks• If access network is “switched”, we understand it

– Just like any other packet-switched network

• If the access network is shared medium, then we need to figure out how to share the medium– Wireless– Classical ethernet

51

Page 52: Missing Pieces of the Puzzle

Media Access Control (MAC)• Carrier sense: (CSMA)

– Don’t send if someone else is sending

• Collision detection: (CD)– Stop if you detect someone else was also sending

• Collision avoidance: (CA)– How to arrange transmissions so that they don’t collide

52

Page 53: Missing Pieces of the Puzzle

Network Management• Control how network interconnects to Internet

– Interdomain routing

• Keep unwanted traffic off network– Firewalls and access control

• Share limited number of public addresses– NAT

• Keep links from overloading– Traffic engineering

Most undeveloped part of the Internet architecture

53

Page 54: Missing Pieces of the Puzzle

Current Network Management• No abstractions, no layers• Just complicated distributed algorithms

– Such as routing algorithms

• Or manual configuration– Such as Access Control Lists and Firewalls

54

Page 55: Missing Pieces of the Puzzle

Future Network Management• Clean abstractions• No complicated distributed algorithms• Treat networks like systems…

Last lecture of class….

55

Page 56: Missing Pieces of the Puzzle

“Real World Name” to “Network Name”• Jane knows what music she wants

• Doesn’t know how to tell network what she wants

• Need to map “real world name” to network name

• Search engine!– Maps keywords to URL

56

How can we do this?

Page 57: Missing Pieces of the Puzzle

Map Network Name to Location• “Name resolution” converts name to location

• We would like location to be nearby copy– Speeds up download – Reduce load on backbone and access networks

57

Page 58: Missing Pieces of the Puzzle

How is this done today?• Name resolution: Domain Name System (DNS)

– Hand in a domain, get back an IP address

• Nearby copy of the data?– CDNs: content distribution networks (like Akamai)

• P2P systems can also point you to nearby content

58

Page 59: Missing Pieces of the Puzzle

Download Data from Location• Need a reliable transfer protocol: TCP

– Must share network with others: congestion control

• But must be able to use URL to retreive content– Need higher-level protocol like HTTP to coordinate

59

Page 60: Missing Pieces of the Puzzle

Ensuring Security• Privacy: prevent sniffers from knowing what she

downloaded (“it was for EE122, I promise!”)• Integrity: ensure data wasn’t tampered with during

its trip through network• Provenance: ensure that music actually came from

the music company (and not some imposter)

60

Page 61: Missing Pieces of the Puzzle

How do we do this today?• Cryptographic measures enable us to do all three• Public Key cryptography is crucial

– No need to share secrets beforehand

61

Page 62: Missing Pieces of the Puzzle

Scenario Requires• Media Access Control• Network management• Naming and name resolution• Content distribution networks• And perhaps P2P• Congestion control• HTTP• Cryptographic measures to secure content

62

Page 63: Missing Pieces of the Puzzle

Rest of Course• Details of IP and TCP

– Bringing reality to general concepts

• Filling in pieces of name resolution and HTTP• Congestion control• Advanced routing• Security• Ethernet and Wireless• Network Management

63