Introduction to: The Architecture of the Internet

Slides:



Advertisements
Similar presentations
End-to-End Arguments in System Design
Advertisements

U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
G Robert Grimm New York University Pulling Back: How to Go about Your Own System Project?
J.H.Saltzer, D.P.Reed, C.C.Clark End-to-End Arguments in System Design Reading Group 19/11/03 Torsten Ackemann.
Feb 20, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements.
Review: – computer networks – topology: pair-wise connection, point-to-point networks and broadcast networks – switching techniques packet switching and.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Protocol Layering Chapter 10. Looked at: Architectural foundations of internetworking Architectural foundations of internetworking Forwarding of datagrams.
CH2 System models.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
1 Next Few Classes Networking basics Protection & Security.
Data and Computer Communications Circuit Switching and Packet Switching.
ECE 259 / CPS 221 Advanced Computer Architecture II (Parallel Computer Architecture) Availability Copyright 2004 Daniel J. Sorin Duke University.
Lecture (Mar 23, 2000) H/W Assignment 3 posted on Web –Due Tuesday March 28, 2000 Review of Data packets LANS WANS.
End-To-End Arguments in System Design J.H. Saltzer, D.P. Reed, and D. Clark Presented by: Amit Mondal.
END-TO-END ARGUMENTS IN SYSTEM DESIGN J.H. Salter, D.P. Reed and D.D. Clark Presented by Sui-Yu Wang.
End-to-End Arguments in System Design CSCI 634, Fall 2010.
Switching. Circuit switching Message switching Packet Switching – Datagrams – Virtual circuit – source routing Cell Switching – Cells, – Segmentation.
Protocols and layering Network protocols and software Layered protocol suites The OSI 7 layer model Common network design issues and solutions.
Network Models.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Introduction to: The Architecture of the Internet
The OSI Model Prof. Choong Seon HONG.
David Wetherall Spring 2000
Lecture 2: Leaf-Spine and PortLand Networks
Computer Architecture and Assembly Language
Chap. 2 Network Models.
Presented by Muhammad Abu Saqer
Packet Switching Datagram Approach Virtual Circuit Approach
The OSI Model and the TCP/IP Protocol Suite
Lessons from The File Copy Assignment
Layered Architectures
Telemedicine.
CT1303 LAN Rehab AlFallaj.
Chapter 6: Transport Layer (Part I)
Introduction to Networking
Understanding the OSI Reference Model
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
The OSI Model and the TCP/IP Protocol Suite
Transport Layer Unit 5.
Protocols and the TCP/IP Suite
Sarah Diesburg Operating Systems COP 4610
Progress leisure OCR GCSE ICT.
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Chapter 20 Network Layer: Internet Protocol
Process-to-Process Delivery:
Fault Tolerance Distributed Web-based Systems
Introduction to: The Architecture of the Internet
Switching Techniques.
OSI Model The Seven Layers
Distributed Algorithms
Lecture 2: Overview of TCP/IP protocol
Andy Wang Operating Systems COP 4610 / CGS 5765
Net 323 D: Networks Protocols
Introduction to: The Architecture of the Internet
Getting Connected (Chapter 2 Part 3)
Protocols and the TCP/IP Suite
Computer Networking A Top-Down Approach Featuring the Internet
Computer Architecture and Assembly Language
LO3 – Understand Business IT Systems
DATA COMMUNICATION Lecture-2.
Overview of Networking
The OSI Model and the TCP/IP Protocol Suite
Congestion Control (from Chapter 05)
CSE 542: Operating Systems
CSE 542: Operating Systems
Announcements You need to register separately for the class mailing list and online paper review system. Do it now so that we can work out any “bugs”.
Error Checking continued
Switching.
Distributed Systems CS
Presentation transcript:

Introduction to: The Architecture of the Internet COMP 117: Internet Scale Distributed Systems (Spring 2017) Introduction to: The Architecture of the Internet Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah

What you should get from today’s session You will learn the difference between circuit and packet switching You will learn about the End-to-End principle, and why it is so useful as a guide to good systems design You will learn about tradeoffs regarding smarts “in the network” vs. at the edges You will learn why E2E is a key philosophical underpinning of the Internet You will start to think about errors and error recovery as a key aspect of system design You will learn why the End-to-End principle enabled Tim BL to innovate without permission from those who control the network

Per Hop Communication

Circuit switching (the way the old phone system worked) When you make a call… …operators would plug in connections to the next hop on the route

Circuit switching (automated dialing) When you make a call… …switches are set to reserve links for a fixed route for the life of the call

Circuit switching (automated dialing) Can we locally recover errors on this hop? Circuit switching (automated dialing) Not with circuit switching When you make a call… …switches are set to reserve links for a fixed route for the life of the call

Circuit switching (automated dialing) Can we reroute a connection? Circuit switching (automated dialing) Sometimes, but it’s difficult while the circuit is active. When you make a call… …switches are set to reserve links for a fixed route for the life of the call

Packet communication When you communicate… …packets of digital data flow through the network

Circuit switching (automated dialing) Can we locally recover errors on this hop? Circuit switching (automated dialing) Only if packets are stored and can be retransmitted: this requires digital transmission When you make a call… …switches are set to reserve links for a fixed route for the life of the call

Can we locally recover errors on this hop? Packet communication Only if packets are stored and can be retransmitted: this requires digital transmission When you make a call… …packets of digital data flow through the network

Circuit switching (automated dialing) Can we reroute a connection? Circuit switching (automated dialing) Sometimes, but it’s difficult while the circuit is active. When you make a call… …switches are set to reserve links for a fixed route for the life of the call

Sending Streams over a Packet Network 1 2 3 4 Input stream Output stream Reliable, end-to-end streams can be sent using unreliable packets (datagrams)!

Sending Streams over a Packet Network Can we reroute a connection? Sending Streams over a Packet Network 1 2 3 4 Input stream Output stream Reliable, end-to-end streams can be sent using unreliable packets (datagrams)!

Sending Streams over a Packet Network Can we reroute a connection? Sending Streams over a Packet Network Rerouting fits naturally with the model 1 2 3 4 Input stream Output stream Reliable, end-to-end streams can be sent using unreliable packets (datagrams)!

End-to-End Arguments

The famous “End-to-End” paper “This paper presents a design principle that helps guide placement of functions among the modules of a distributed computer system. The principle, called the end-to-end argument, suggests that functions placed at low levels of a system may be redundant or of little value when compared with the cost of providing them at that low level. Examples discussed in the paper include bit error recovery, security using encryption, duplicate message suppression, recovery from system crashes, and delivery acknowledgement. Low level mechanisms to support these functions are justified only as performance enhancements.” Abstract: End-to-End Arguments in System Design by Jerry Salzer, David Reed, and David Clark End to end paper is at: http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf

Significance of the end-to-end “argument” Encourages clear thinking about smarts in the network vs at edges ACM SOSP says: “This paper gave system designers, and especially Internet designers, an elegant framework for making sound decisions. A paper that launched a revolution and, ultimately, a religion.” !?!? Became, post-facto, the philosophical rationale for Internet architecture Network neutrality: the network should not discriminate among applications requiring the same quality of service between the same nodes Tim Berners-Lee will tell you that such “neutrality” was essential to his ability to build and deploy a Web that nobody knew they needed See 2006 video: http://www.youtube.com/watch?v=Jev2Um-4_TQ End to end paper is at: http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf

Errors and Error Recovery

Computer systems and networks make mistakes Errors Memories and disks: bits flipped in memory CPUs: wrong answers Communications: messages corrupted, lost, duplicated, delayed Non-determinism Many errors are transient The machine will do something different the next time the program is run! Dealing with non-determinism is deeply different from traditional programming! We need powerful techniques and clean abstractions for dealing with errors

Fail stop and error detection What if your machine computes 2 + 2 = 5 and doesn’t warn anyone of the error? Your program would trust the result! Architectures for dealing with errors Quietly recover to make the error invisible (e.g. ECC memory) Alert some higher level software or hardware and provide facilities for recovery Fail stop When an error occurs, just stop the machine, kill the program, drop the packet etc. Optionally: alert someone Assuming errors are not too frequent, if you can recover from stoppage, then all errors get recovered the same way! This is an example of the end-to-end argument

End-to-end recovery and building inexpensive systems Observation: if we can recover from most any failure of a computer, then failures need not be avoided… …if we don’t mind doing such recovery occasionally, then we can build systems out of less expensive components that fail more often! This is the key idea behind: Packet switching The architecture of the Googleplex and similar “cloud” server farms Use of inexpensive disks in RAID storage systems (Reliable Arrays of Inexpensive Disks)

Summary

Summary The end-to-end argument clarifies many aspects of distributed system design End-to-end guarantees assure correctness In-the-network processing and recovery is sometimes a useful optimization Error handling and associated non-determinism is a key challenge in building practical computing systems End-to-end strategies for error recovery Often simplify implementation and proof-of-correctness for error recovery Effective end-to-end error recovery can facilitate use of inexpensive components and unreliable delivery algorithms