G22.3250-001 Robert Grimm New York University Pulling Back: How to Go about Your Own System Project?

Slides:



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

The End-to-End Principle Anthony D. Joseph Joe Hellerstein CS262a November 28, 2001.
Layering and the network layer CS168, Fall 2014 Sylvia Ratnasamy
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Remote Procedure Call (RPC)
Network Protocols Mark Stanovich Operating Systems COP 4610.
End-to-End Arguments in System Design J.H. Saltzer, D.P. Reed and D.D Clark M.I.T. Laboratory for Computer Science Presented by Jimmy Pierce.
EEC-681/781 Distributed Computing Systems Lecture 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
G Robert Grimm New York University Pulling Back: How to Go about Your Own System Project?
End-To-End Arguments in System Design J.H. Saltzer, D.P. Reed, and D. Clark Presented by: Ryan Huebsch CS294-4 P2P Systems – 9/29/03.
EE 122: Layering and the Internet Architecture Kevin Lai September 4, 2002.
Understanding Networks. Objectives Compare client and network operating systems Learn about local area network technologies, including Ethernet, Token.
Error Checking continued. Network Layers in Action Each layer in the OSI Model will add header information that pertains to that specific protocol. On.
Gursharan Singh Tatla Transport Layer 16-May
1 Review of Important Networking Concepts Introductory material. This slide uses the example from the previous module to review important networking concepts:
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
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.
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.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
CH2 System models.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
Transport Layer OSI Model. The transport layer is responsible for the segmentation and the delivery of a message from one process to another.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,

TCP/IP Transport and Application (Topic 6)
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
SSL/TLS How to send your credit card number securely over the internet.
AS Computing Data Transmission and Networks. Transmission error Detecting errors in data transmission is very important for data integrity. There are.
Networking Basics CCNA 1 Chapter 11.
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.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
A) Describe 3 benefits of a company moving to a wireless network compared to staying with its cabled network(3) b) Describe 2 problems that may occur (2)
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
End-to-End Principle Brad Karp UCL Computer Science CS 6007/GC15/GA07 25 th February, 2009.
CS551: End to End Argument Saltzer88 Christos Papadopoulos (
END-TO-END Arguments in System Design END-TO-END Arguments in System Design J. SaltzerD. Reed D. Clark M.I.T. Laboratory, 1981 Presented By Mohammad Malli.
End-to-End Arguments in System Design CSCI 634, Fall 2010.
Jan.19 th, 2007Seminar In Networks End-To-End Arguments in System Design Ayodele Onibokun Seminar In Networks Jan. 19 th, 2007.
CS533 - Concepts of Operating Systems End-to-End Arguments in System Design Presentation by David Florey.
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Tunneling Continued/ End-to-End Principle CS 4251: Computer Networking II Nick Feamster Spring 2008.
Network Protocols Andy Wang Operating Systems COP 4610 / CGS 5765.
Protocols and layering Network protocols and software Layered protocol suites The OSI 7 layer model Common network design issues and solutions.
Chapter 11 User Datagram Protocol
Presented by Muhammad Abu Saqer
Chapter 14 User Datagram Program (UDP)
Sarah Diesburg Operating Systems COP 4610
Chapter 14 User Datagram Protocol (UDP)
Process-to-Process Delivery:
Distributed Systems CS
Andy Wang Operating Systems COP 4610 / CGS 5765
Net 323 D: Networks Protocols
CSE 542: Operating Systems
Process-to-Process Delivery: UDP, TCP
CSE 542: Operating Systems
Computer Networks Protocols
Distributed Systems CS
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”.
Transport Layer 9/22/2019.
Exceptions and networking
Presentation transcript:

G Robert Grimm New York University Pulling Back: How to Go about Your Own System Project?

The Problem  How to build a system?  Complex systems require structure  Which modules?  Which interfaces?  Which interactions?  System builder require guidance  Hence, design principles and/or hints  Embody experience with previous systems  Embody understanding of problem domain  That’s quite abstract, let’s look at an example

The End-to-End Argument: The Challenge  Let’s assume a system includes communications (duh)  We typically have a communication subsystem (also, duh)  Where should we place functionality?  In the communication subsystem?  In the client and/or server?  In both (redundantly)?

The End-to-End Argument: The Answer  “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the endpoints of the communication system. Therefore, providing that questioned function as a feature of the communication system itself is not possible. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement).”

Careful File Transfer as an Example  Goal: reliably transfer file from A to B  Steps  A: FTP reads file from disk, receiving fixed-size blocks  A: FTP asks communication system to send data  Packet size typically different from block size  Network moves packets  B: Communication system reads packets and passes them to FTP  B: FTP writes data to disk

Careful File Transfer as an Example (cont.)  Things that can go wrong  Read data on A may be incorrect (think disk fault)  File system, communication system, FTP may be buggy  Processor or memory might have a transient error  Network may drop packet, change packet, deliver twice  Either A or B may crash some time into operation  The only safe way of detecting errors  FTP on B reads file back and compare checksum with checksum on A  Retries on mismatch  However, what about performance?

Careful File Transfer as an Example (cont.)  Naïvely retrying will lead to terrible performance  Improve network reliability to avoid whole file retries  Running checksum  But we still need end-to-end checks  Adding functionality at lower levels is tricky  None  bad performance  Too much  Overhead for all applications using subsystem  Subsystem may not have enough information to be efficient  In case of FTP  Retrying in application leads to duplication of functionality  Always providing reliable transport harms other applications

Other Properties That Require End-to-End Checks  Message delivery guarantees  Secure transmission of data  Duplicate message suppression  Guaranteed FIFO message delivery  Transaction management  So, why are we all using TCP and SSL?

Where Are the Ends? Two Illustrative Examples  Internet telephony: The users  We don’t want any reliability from system but rather timely delivery  We accept (some) distortion or drop-outs  After all, we can always say “would you please say that again?”  PC-based answering machine: The user, the disk (!)  We really want an accurate recording  After all, we cannot ask the user

Do We Have Any Other Guidelines?

What Do You Think?