an overview of how packets are routed in the internetweb.stanford.edu/class/cs144/lectures/overview...

40
1 An overview of how packets are routed in the Internet

Upload: ngoduong

Post on 11-May-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

1

An overview of how packets are routed in the Internet

2

Dijkstra’s shortest path first algorithm(example of a “Link State Algorithm”)

1. Exchange link state: A router floods to every other router the state of links connected to it.

- Periodically

- When link state changes

2. Run Dijkstra’s algorithm: Each router independently runs Dijkstra’s shortest path first algorithm.

Each router finds min-cost spanning tree to every other router.

CS144, Stanford University

3

An example: From R8

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

CS144, Stanford University

4

An example: From R8

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

R7

R8

R7

R8

R6

R7

R8

R6R4

Add path of cost 1 Add path of cost 2 Add path of cost 2

…..

5

An example: From R8

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

R7

R8

R6R4

R5

R7

R8

R6R4

R5

R3

Add path of cost 4 Add path of cost 4

6

An example: From R8

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

R7

R8

R6R4

R5

R3

Add path of cost 5 Add path of cost 6

R7

R8

R6R4

R5

R3

R2 R2R1

7

The algorithm

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

0 1 2 3 4 5 6 7

Shortest Path Set

R8

Candidate Set

R3R5

R6R7

Add R7

CS144, Stanford University

8

The algorithm

R7

R6R4R2R1

R8

R5

R3

1 4 4

2

4

41 1

61

5 2

0 1 2 3 4 5 6 7

Shortest Path Set

R8 R8R7 R8R7

R6

R8R7

R6R4

R8R7R6

R4R3

R8R7R6

R4R3R2

R8R7R6

R4R3R2R1

R8R7R6R4R3R2

R1R5

Candidate Set

R3R5

R6R7

R3R5

R6R4

R3R5

R4

R3R5

R2

R5R2

R1

R5R1 R5 Empty

Add R7 R6 R4 R3 R2 R1 R5 Done

CS144, Stanford University

9

Dijkstra’s Algorithm

Questions:1. How long does the algorithm take to run?

2. What happens when link costs change, or when routers/links fail?

CS144, Stanford University

10

Dijkstra’s algorithm in practice

Dijkstra’s algorithm is an example of a Link State algorithm.

- Link state is known by every router.

- Each router finds the shortest path spanning tree to every other router.

It is the basis of OSPF (Open Shortest Path First), a very widely used routing protocol.

CS144, Stanford University

11

Another view of Dijkstra…

CS144, Stanford University

12

B

R5R4

R1

A3

3

2

4

4

2

4

4 R2

R3

CS144, Stanford University Thanks to Prof Jean Walrand, Berkeley

13

B

R5R4

R1

A

R2R3

CS144, Stanford University

14

B

R5

R4

R1

A

3

3

2

4

4

2

4

4 R2 R3

CS144, Stanford University

15

Routing between Autonomous Systems

The Border Gateway Protocol (BGP)

CS144, Stanford University

16

Stanford University Boğaziçi Üniversitesi

All organizations must use the same algorithm to talk to each other

AT&T Superonline

17

18

Border Gateway Protocol (BGP)Basics

BGP is not a link-state or distance-vector routing protocol.

- Instead, BGP uses what is called a “Path vector”

BGP neighbors (“peers”) establish a TCP connection

BGP routers advertise complete paths (a list of AS’s).

- Also called AS_PATH (this is the path vector)

- Example of path advertisement:

“The network 171.64/16 can be reached via the path {AS1, AS5, AS13}”

When a link/router fails, the path is “withdrawn”.

19

Border Gateway Protocol (BGP)Basics

“The network 171.64/16 can be reached via the path {AS1, AS5, AS13}”

Paths with loops are detected locally and ignored.

Local policies pick the preferred path among all advertised paths.

20

Current Version

BGP Version 4 or “BGP-4”

Described in RFC 4271 (2006)

Used by the Internet since 1994

Used to connect all Border Gateways in the Internet

Used internally in some very large private networks

21

Customers and Providers

Customer pays provider to carry its packets.

provider

customer

IP trafficprovider customer

22

Customer-Provider Hierarchy

provider customer IP traffic

23

The Peering Relationship

peer peer

customerproviderPeers provide transit between their respective customers

Peers do not provide transit between peers

Peers (typically) do not exchange $$$

trafficallowed

traffic NOTallowed

So how does traffic from the left side reach the right side?

24

“Tier 1” Providers

CS144, Stanford University

“Tier 1”

“Tier 1”

“Tier 1”

“Tier 1”

A tier 1 network is a transit-free network that peers with every other tier 1 network

Examples: AT&T, CenturyLink, Level 3, Deutsche Telekom, Tata, Verizon, …

25

peer peer

customerprovider Peers provide transit between their respective customers

Peers do not provide transit between peers

Peers (often) do not exchange $$$

trafficallowed

“Tier 1”“Tier 1”

“Tier 1”

traffic NOTallowed

26

Open : Establish a BGP session.

Keep Alive : Handshake at regular intervals.

Notification : Shuts down a peering session.

Update : Announcing new routes or withdrawing previously announced routes.

Path attributes

Include: next hop, AS Path, local preference, Multi-exit discriminator, …

Used to select among multiple options for paths.

BGP announcement = prefix + path attributes

BGP Messages

27

BGP Route Selection Summary

Highest Local Preference

Shortest ASPATH

Lowest MED

i-BGP < e-BGP

Lowest IGP cost to BGP egress

Lowest router ID

Traffic Engineering

Enforce relationshipsE.g. prefer customer routes over peer routes

Throw up hands andbreak ties

28

ASPATH Attribute

AS 7018

AS 1239

AS 1755

AS 3549AS 6341

135.207.0.0/16

Prefix Originated

AS 12654

AS 1129

29

ASPATH Attribute

AS 7018135.207.0.0/16AS Path = 6341

AS 1239

AS 1755

AS 3549135.207.0.0/16AS Path = 7018 6341

135.207.0.0/16AS Path = 3549 7018 6341

AS 6341

135.207.0.0/16

Prefix Originated

AS 12654

AS 1129

135.207.0.0/16AS Path = 7018 6341

135.207.0.0/16AS Path = 1239 7018 6341

135.207.0.0/16AS Path = 1755 1239 7018 6341

135.207.0.0/16AS Path = 1129 1755 1239 7018 6341

Pick shorter AS path

30

Which route shouldFrank pick to 13.13.0.0./16?

AS 1

AS 2

AS 4

AS 3

13.13.0.0/16

Frank’s Internet Barn

peer peer

customerprovider

So Many Choices…

32

Summary of BGP

All AS’s in the Internet must connect using BGP-4.

BGP-4 is a path vector algorithm, allowing loops to

be detected easily.

BGP-4 has a rich and complex interface to let AS’s

choose a local, private policy.

Each AS decides a local policy for traffic engineering,

security and any private preferences.

CS144, Stanford University

33

Multicast routing in the Internet

34

Multicast

R7

R6R4R2R1

R8

R5

R3

A

X

B C D

E

35

Multicast

R7

R6R4R2R1

R8

R5

R3

A

X

B C D

E

36

Multicast

Techniques and Principles- Reverse Path Broadcast (RPB) and Pruning

- One versus multiple trees

Practice- IGMP – group management

- DVMRP – the first multicast routing protocol

- PIM – protocol independent multicast

CS144, Stanford University

37

Reverse Path Broadcast (RPB)aka Reverse Path Forwarding (RPF)

CS144, Stanford University

R7

R6R4R2R1

R8

R5

R3

A

X

B C D

E

38

RPB + Pruning

1. Packets delivered loop-free to every end host.

2. Routers with no interested hosts send prune messages towards source.

3. Resulting tree is the minimum cost spanning tree from source to the set of interested hosts.

CS144, Stanford University

39

One tree versus several trees?

R7

R6R4R2R1

R8

R5

R3

A

X

B C D

E

40

Addresses and joining a group

IPv4: Class D addresses are set aside for multicast.

IGMP (Internet group management protocol)

- Between host and directly attached router.

- Hosts ask to receive packets belonging to a particular multicast group.

- Routers periodically poll hosts to ask which groups they want.

- If no reply, membership times out (soft-state).

CS144, Stanford University

41

Multicast in practiceMulticast used less than originally expected

- Most communication is individualized (e.g. time shifting)

- Early implementations were inefficient

- Today, used for some IP TV and fast dissemination

- Some application-layer multicast routing used

Some interesting questions- How to make multicast reliable?

- How to implement flow-control?

- How to support different rates for different end users?

- How to secure a multicast conversation?