Lecture 5 - Network Desgn Principles
Lecture 5 - Network Desgn Principles
Lecture 5 - Network Desgn Principles
ACK: Slides use some material from Scott Shenker (UC Berkeley)
My Office Hours
l Tuesdays, 3-4pm
l All of you must drop by my office at least once during the semester
2
Internet is an extremely complicated system
3
Internet is an extremely complicated system
car navigator
Routing Reliable data transfer
link
phone company
smartphone
Windows PC switch
university
Congestion
control
cable company Name to address
mappings 4
4
How do we organize the Internet
functionality and architecture?
5
Recap: Network Modularity Decisions
l How to break system into modules?
l Classic decomposition into tasks
l Both?
Recap: Leads to three design principles
l How to break system into modules?
l Layering
7
Recap: Leads to three design principles
l How to break system into modules?
l Layering
8
Layering
Tasks in Networking
l What does it take to send packets from source to destination?
l Simplistic decomposition:
l Task 1: send along a single wire
11
Resulting Modules (Layers)
l Bits on wire (Physical)
l Deliver packets across an individual link (Datalink)
l Deliver packets across nodes to the destination (Network)
l Deliver packets reliably, to correct application program (Transport)
l Do something with the data (Application)
12
Resulting Modules (Layers)
l Bits on wire (Physical)
l Deliver packets across local network (Datalink)
l Local addresses
l Deliver packets across different networks (Network)
l Global addresses
l Deliver packets reliably, to correct application program (Transport)
l Do something with the data (Application)
13
Five Layers (top-down)
l Application: Providing network support for apps
l Transport (L4): (Reliable) end-to-end delivery
l Network (L3): Global best-effort delivery
l Datalink (L2): Local best-effort delivery
l Physical: Bits on wire
17
Three Internet Design Principles
l How to break system into modules?
l Layering
18
The End-to-End Principle
Placing Network Functionality
l Influential paper: “End-to-End Arguments in System Design” by
Saltzer, Reed, and Clark (‘84)
20
End-End Principle
l Suggests that “specific application-level functions usually cannot,
and preferably should not, be built into the lower levels of the
system – the core of the network”
l Reasoning
l Some functionality can only be correctly implemented at the end-system
l E.g., even if we implement reliability inside the network, the end-systems will still have to
implement it to ensure end-end reliable data transfer
l The functionality may not be needed by all applications
l E.g., not all applications need reliable data transfer (like voice)
l Improves generalizability
l The complexity of the network can be reduced 21
Example: Reliable File Transfer
Host A Host B
Appl. Appl.
23
Reliability inside the network
l Lets examine when you might implement reliability inside the
network
24
25
Reliability inside the network
l Lets examine when you might implement reliability inside the network
l If packets on individual links fail 10% of the time, and are traversing 10
links, then End-End (E2E) loss rate is 65%
l Probability of successful E2E delivery = (1-0.1)10 = 0.35
l E2E loss rate = 1- (1-0.1)10 = 0.65 or 65%
27
Questions?
28