taking stock ‣ what is a network made of? ‣ how is it shared? ‣ how do we evaluate a network?...

37
Taking Stock What is a network made of? How is it shared? How do we evaluate a network? How is communication architected? 1

Upload: winfred-welch

Post on 18-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Taking Stock

‣ What is a network made of?

‣ How is it shared?

‣ How do we evaluate a network?

‣ How is communication architected?

1

Page 2: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Taking Stock

‣ Basic concepts- components: end-systems, links, switches, routers- performance: delay, throughput

‣ Basic design choices- packet vs. circuit switching- Best-effort vs. guaranteed service- Layering - “Dumb” network, “smart” ends

2

Page 3: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Coming up next

‣ “How”, in detail, by layer- Network layer: next ~two weeks- Transport layer - Midterm- Application layer (HTTP)- A little bit of lower layers (Ethernet, Wireless)- Newer topics (e.g., datacenters, management)

3

Page 4: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

The Network Layer

Page 5: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

MIT switch#2

NYU switch#3

Forwarding Table111010010 MIT

switch#2

switch#5

switch#3

switch#4

Page 6: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Three topics

‣ Addressing

‣ Forwarding

‣ Routing

6

Page 7: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Addressing (for now)

‣ Assume each end-system has a unique address

‣ No particular structure to these addresses

‣ Will cover IP addresses later in the course

7

Page 8: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Forwarding

‣ Local router process that determines the output link (a.k.a “next hop”) for each packet

‣ How - read address from packet’s network layer header

- search forwarding table

8

Page 9: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

MIT switch#2

NYU switch#3

Forwarding Table111010010 MIT

switch#2

switch#5

switch#3

switch#4

switch#1

Page 10: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Routing

‣ Network-wide process that determines the content of forwarding tables

determines the end-to-end path for each destination

10

Page 11: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

MIT switch#2

NYU switch#3

111010010 MIT

switch#2

switch#5

switch#3

switch#4

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Forwarding Table

switch#1

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#6

NYU switch#1

Page 12: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Routing

‣ Network-wide process that determines the content of forwarding tables

determines the end-to-end path for each destination

‣ How - coming up soon

12

Page 13: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Forwarding vs. Routing

‣ Forwarding: “data plane” - Directing one data packet- Each router using local routing state

‣ Routing: “control plane” - Computing the forwarding tables that guide packets- Jointly computed by routers using a distributed algorithm

‣ Very different timescales!

Page 14: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Routing Fundamentals

‣ Validity of routing state

14

Page 15: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Goal (v1)

‣ Find a path to a given destination

‣ How do we know that the state contained in forwarding tables meets our goal?- this is what “validity” of routing state tells us

- [this is non-standard terminology]

15

Page 16: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Local vs. Global View of State

• Local routing state is the forwarding table in a single router– By itself, the state in a single router can’t be evaluated – It must be evaluated in terms of the global context

Page 17: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

MIT switch#2

NYU switch#3

111010010 MIT

switch#2

switch#5

switch#3

switch#4

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Forwarding Table

switch#1

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Page 18: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

• Local routing state is the forwarding table in a single router– By itself, the state in a single router can’t be evaluated – It must be evaluated in terms of the global context

• Global state refers to the collection of forwarding tables in each of the routers– Global state determines which paths packets take

(Will discuss later where this routing state comes from)

Local vs. Global View of State

Page 19: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

“Valid” Routing State

• Global state is “valid” if it produces forwarding decisions that always deliver packets to their destinations

• Goal of routing protocols: compute valid state– But how can you tell if routing state if valid?

• Need a succinct correctness condition for routing– Suggestions?

Page 20: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Necessary and Sufficient Condition

• Global routing state is valid if and only if:– There are no dead ends (other than destination)– There are no loops

• A dead end is when there is no outgoing link (next-hop)– A packet arrives, but the forwarding decision does not yield any

outgoing link

• A loop is when a packet cycles around the same set of nodes forever

Page 21: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

MIT switch#2

NYU switch#3

111010010 MIT

switch#2

switch#5

switch#3

switch#4

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Forwarding Table

switch#1

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Loop!

Page 22: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

to MIT

to UW

to UCB

to NYU

Destination Next Hop

UCB switch#4

UW switch#5

NYU switch#3

111010010 MIT

switch#2

switch#5

switch#3

switch#4

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Forwarding Table

switch#1

Destination Next Hop

UCB switch#1

UW switch#1

MIT switch#1

NYU switch#1

Deadend(to MIT)

Page 23: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Necessary and Sufficient Condition

• Global routing state is valid if and only if:–There are no dead ends (other than destination)–There are no loops

Page 24: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Necessary (“only if”): Easy

• If you run into a deadend before hitting destination, you’ll never reach the destination

• If you run into a loop, you’ll never reach destination

Page 25: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Sufficient (“if”):

• Assume no deadends, no loops

• Packet must keep wandering, but without repeating– If ever enter same switch from same link, will loop

• Only a finite number of possible links for it to visit– It cannot keep wandering forever without looping– Must eventually hit destination

Page 26: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Checking Validity of Routing State

• Focus only on a single destination– Ignore all other routing state

• Mark outgoing link (“next hop”) with arrow– There is only one at each node

• Eliminate all links with no arrows

• Look at what’s left….

Page 27: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Example 1

Page 28: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Pick Destination

Page 29: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Put arrows on outgoing links (to green dot)

Page 30: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Remove Unused Links

Leaves Spanning Tree: Valid

Page 31: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Second Example

Page 32: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Second Example

Is this valid?

Page 33: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Lesson….• Very easy to check validity of routing state for a

particular destination

• Deadends are obvious– Node without outgoing arrow

• Loops are obvious– Disconnected from rest of graph

Page 34: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Goal (for routing)

v1: Find a path to a given destination

v2: Find a least cost path to a given destination

34

Page 35: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

dest. next hopz ?

4

1 2v

u z

v ?

link costs

could represent: -- propagation delay

-- load -- cost

dest. next hopu ?v ?

dest. next hop

z ?u ?

Page 36: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

4

1 2v

u z

least-cost path from u to z: u v z

least cost path from u to v: u v

vv v

v

dest. next hopzu u

z

dest. next hopz

dest. next hopu

v v

Page 37: Taking Stock ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication architected? 1

Least-cost path routing

• Given: router graph & link costs

• Goal: find least-cost path

from each source router to each destination router

Next time: how we compute these