Modularity and Applications David Clark MIT July, 2012.

Slides:



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

Brief-out: Isolation Working Group Topic discussion leader: Ken Birman.
Architecture from the top down David D. Clark MIT CSAIL April, 2009.
End-to-End and Innovation Geoff Huston Chief Scientist, APNIC.
Information-centric networking: Concepts for a future Internet David D. Clark, Karen Sollins MIT CFP November, 2012.
The Challenges of CORBA Security It is important to understand that [CORBAsecurity] is only a (powerful) security toolbox and not the solution to all security.
Application design and the end-to-end arguments David D. Clark MIT CFP MIT Communications Futures Program Bi-annual meeting, May 30-31, 2007 Philadelphia,
Layering and the network layer CS168, Fall 2014 Sylvia Ratnasamy
Information-Centric Networks02b-1 Week 2 / Paper 2 Tussle in Cyberspace: Defining Tommorow’s Internet –David D. Clark, John Wroclawski, Karen R. Sollins.
4/27/2015Slide 1 Rethinking the design of the Internet: The end to end arguments vs. the brave new world Marjory S. Blumenthal Computer Science and Telecomms.
Chapter 12 Network Security.
CSCE 715 Ankur Jain 11/16/2010. Introduction Design Goals Framework SDT Protocol Achievements of Goals Overhead of SDT Conclusion.
Think. Learn. Succeed. Aura: An Architectural Framework for User Mobility in Ubiquitous Computing Environments Presented by: Ashirvad Naik April 20, 2010.
ToNC workshop Next generation architecture H. Balakrishnan, A. Goel, D. Johnson, S. Muthukrishnan, S.Tekinay, T. Wolf DAY 2, Feb
CS 268: Future Internet Architectures Ion Stoica May 1, 2006.
Internet Research Needs a Critical Perspective Towards Models –Sally Floyd –IMA Workshop, January 2004.
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.
Tussle in cyberspace: Defining tomorrow ’ s internet D.Clark, J.Wroclawski, K.Sollins & R.Braden Presented by: Ao-Jan Su (Slides in courtesy of: Baoning.
Portland: A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric Offense Kai Chen Shih-Chi Chen.
CS 268: Future Internet Architectures Ion Stoica May 6, 2003.
Postmodern Internet Architecture Defense Zhaosheng Zhu Kevin Tan.
Data Communications and Networks
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
Network Architecture and Protocol Concepts. Network Architectures (1) The network provides one or more communication services to applications –A service.
Chapter 4: Managing LAN Traffic
What does it take to define an architecture? (Part 2) David D. Clark July, 2012.
FIND experimental requirements David D. Clark. FIND Future Internet Design (FIND) is an NSF program (now folded in to NetSE) to envision the Internet.
Feb 20, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements.
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
Tussel in Cyberspace Based on Slides by I. Stoica.
Economics and industry structure David D. Clark MIT July, 2012.
1 An Introduction to the future of the Internet (part 1) David Clark MIT CSAIL July 2012.
An efficient secure distributed anonymous routing protocol for mobile and wireless ad hoc networks Authors: A. Boukerche, K. El-Khatib, L. Xu, L. Korba.
Knowledge plane based on high level declaration of intent assemble, re-assemble, detect failures & repair focus of this rant failure detection & repair.
Architecting for Innovation ACM SIGCOMM Computer Communication Review 2011 July Presenter :許耀中
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
1 Internet Firewalls What it is all about Concurrency System Lab, EE, National Taiwan University R355.
Standard for a Convergent Digital Home Network for Heterogeneous Technologies Zhimeng Du 12/5/2013.
What are the main differences and commonalities between the IS and DA systems? How information is transferred between tasks: (i) IS it may be often achieved.
Tussle in Cyberspace: Defining Tomorrow’s Internet Offense by Ahamed Mohammed.
Tussle in cyberspace: Defining tomorrow’s internet D.Clark, J.Wroclawski, K.Sollins, R.Braden Presenter: Baoning Wu.
Network Architecture: Design Philosophies IS250 Spring 2010 John Chuang
An Approach To Automate a Process of Detecting Unauthorised Accesses M. Chmielewski, A. Gowdiak, N. Meyer, T. Ostwald, M. Stroiński
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
A Quality of Service Architecture that Combines Resource Reservation and Application Adaptation Ian Foster, Alain Roy, Volker Sander Report: Fu-Jiun Lu.
Second Line Intrusion Detection Using Personalization DISA Sponsored GWU-CS.
OS Services And Networking Support Juan Wang Qi Pan Department of Computer Science Southeastern University August 1999.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Daniel J. Weitzner End-to-End Semantic Accountability: Policy and Technology Design Requirements for The Policy Aware Web 25 October 2006 Daniel J. Weitzner.
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.
Tussle in Cyberspace: Defining Tomorrow’s Internet Presented by: Khoa To.
End-to-End Principle Brad Karp UCL Computer Science CS 6007/GC15/GA07 25 th February, 2009.
Incentives Alignment Whitepaper Progress since Athens.
Conceiving “Availability” 1. It seems like the basic objective “All” a network does is make stuff available. – We view with suspicion networks that transform.
CS533 - Concepts of Operating Systems End-to-End Arguments in System Design Presentation by David Florey.
Design Considerations for the Common MIH Protocol Functions draft-hepworth-mipshop-mih-design-considerations-01 Ele Hepworth (*), Robert Hancock, Srinivas.
Presented by: JungChun Lu. Goal Propose a design methodology suitable for operating system programs which: Permits synchronous procedure call between.
Tunneling Continued/ End-to-End Principle CS 4251: Computer Networking II Nick Feamster Spring 2008.
Firewalls. Overview of Firewalls As the name implies, a firewall acts to provide secured access between two networks A firewall may be implemented as.
1 Anonymity. 2 Overview  What is anonymity?  Why should anyone care about anonymity?  Relationship with security and in particular identification 
Introduction to: The Architecture of the Internet
Presented by Muhammad Abu Saqer
Distributed Systems (Section B)
Introduction to: The Architecture of the Internet
CSE 542: Operating Systems
CSE 542: Operating Systems
Chapter 6: Architectural Design
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”.
Architecture and Principles
Presentation transcript:

Modularity and Applications David Clark MIT July, 2012

Modularity We have two well-known kinds. Modules with horizontal (red) interfaces: layers. Modules with vertical (blue) interfaces: peer or autonomy. Applications TCP IP

Layers Basic principle: dependency. Higher layers “depend” or “make use of” lower layers. Not the other way. Is this a useful basis for modularity? In the larger (socio-economic) context, this is false. All “layers” depend on each other. Computer scientists love layered design. I am suspicious of its power.

Vertical interfaces Reflect the distributed aspect of the network. Physical Economic/autonomous modules IP BGP among AS regions. Applications SMTP between servers. Seems fundamental. Come back to this.

A design principle The end-to-end arguments. Saltzer, J., Reed, D., and Clark, D.D., "End-to-End Arguments in System Design", ACM Transactions on Computer Systems, Vol. 2, No. 4, pp , November 1984.End-to-End Arguments in System Design An argument about proper placement of function in a system. A correctness argument, subsequently burdened with other claims not supported by the paper.

Two quotes from the E2E paper “In a system that includes communications, one usually draws a modular boundary around the communication subsystem and defines a firm interface between it and the rest of the system.” “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system.”

Modularity We have two well-known kinds. Modules with horizontal (red) interfaces: layers. Modules with vertical (blue) interfaces: peer or autonomy. Applications TCP IP

Up and out Out: I have control of my computer. Up: The application understands what constitutes correct operation, so it must take steps to assure that it is achieved. Echoes of argument about availability: end node must be able to detect failures and exercise choice to recover.

Event-driven modularity Events: Send a packet, receive a packet, timer goes off. Applications TCP IP Applications TCP IP Applications TCP IP Packet Timer

Why event-driven modules? Helps explicate cross-layer functional relationships, and dynamic dependencies. Guides implementation. Upcalls. Cross-layer modules. Look at events at different granularity. Send/receive a packet. Retrieve and view a web page.

Why study dynamic dependency? Helps explicate cross-layer functional relationships. De-emphasize layers. Cross-layer functions are a critical and central issue Even if event-driven modules are not. Many critical aspect of networking are not “layered”: Security, Availability, Performance, Quality of Experience. Some are layered only by force: Economics (structural separation). If you are trying to explain why an application “works”, you need to look cross-layers at “what happens”.

Performance is cross-layer Obtaining desired performance is a cross-layer objective. Physical: buy/configure bandwidth. Physical: deal with technology features. IP: use QoS tools. In future: routing, multipath Application: adapt to observed behavior, reconfigure pattern of distribution, adapt coding/quality, use economic discipline. The current term for application performance is Quality of Experience. QoE. (How to measure—good question.)

Performance interfaces Applications TCP IP General tradeoff No tradeoff Quality of experience No explicit protocols Overlays, CDNS, etc.

A look at applications After all, they are the justification for networks. Look at design issues, modularity, and network dependence.

In the early days… We did not give much guidance to application designers. Was not a reliable byte stream and the DNS enough? Our view of application design was simple. Two party interaction. (Except )

As things evolved came down with spam and viruses. The Web came down with caches, proxies and Akamai. Structures generally got more complex.

Today and looking forward Applications are often very complex. Composed of lots of servers and services. Web 2.0, mashups, cloud computing, huge server farms and the likes. Their structure reflects the economic (and other) incentives of the designers. We need to study the “architecture of control” as well as the “architecture of performance”.

Thesis: Availability depends on trustworthy components, not security mechanisms. Ability to select among components depends on “vertical” interfaces. Future applications will offer a range of “operating modes” or “communication patterns”. A major determinant of which pattern or mode is used will be the trust among the communicating parties and the other parties relevant to the situation (e.g. the ISPs, etc.) Trust requires a baseline of identity. Trust and identity will be foundational for tomorrow’s applications. Lots of ways to get these functions wrong.

Modularity We have two well-known kinds. Modules with horizontal (red) interfaces: layers. Modules with vertical (blue) interfaces: peer or autonomy. Applications TCP IP

Trust When there is application-level trust among components. Remove constraints and protection. E.g. use end-to-end encryption. More efficient and flexible. When there is lack of trust. Must impose constraints to compensate. virus checkers, strip macros, etc.

Two quotes from the E2E paper “In a system that includes communications, one usually draws a modular boundary around the communication subsystem and defines a firm interface between it and the rest of the system.” “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system.”

Why did we say this? The network was and is flakey. The end-node was a trustworthy platform on which to depend. Reliability checks can compensate for unreliable network. But today the end-node is perhaps the least trustworthy part of the system. Today the issue is both technical reliability and tussle (actors with adverse interests.) Does this eliminate the E2E argument, or motivate us to dig deeper?

A more general form A possible re-framing of E2E is “trust-to-trust”. Original: “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system.” Revised: “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at points where it can be trusted to perform its job properly.” Begs the question “trusted by whom”, and who has the power to dictate the answer.

Power, control and choice Application designers can design in the preferred range of patterns. Initiators of operations (e.g. the invoking end- points) can attempt to pick among these alternatives. The potential for choice Network operators can control which patterns are allowed. In the end, topology trumps, but in the end, a blunt instrument. The encryption escalation.

Conclusions for applications These patterns transcend specific application objectives. They apply to broad classes of applications. Most application designers will benefit from guidance as to how to think about and implement them. What I have been calling design patterns. In many cases, the factor that will determine which pattern is preferred is assessment of which actors are most trustworthy. So management of trust, and by extension identity, must be a first order capability, at least inside the application. Trust assumptions will span applications.

Relate to network How does this relate to the network and the abstraction of its services? I discussed the performance aspects of the service. Consider the problem of finding a component. Many of the FIA proposals include an anycast feature. Anycast to a service or a unit of information. But should the network be picking the preferred component? Must be in an equivalence class with respect to trust, and who defines that class? NDN takes the position that “the network” must be able to detect a forgery. How bypass a failed component using anycast addresses?

Application design The function itself: The “purpose” of the application Performance Classic parameters Correct operation Perhaps in the face of attack Availability Dealing with failures as well as attacks. Power and balance of control Economics

A new modularity goal--isolation Can we isolate those design objectives. Sorry—the answer seems to be no. When the application picks a version of a component, it must simultaneously take into account: Performance—find one that is close and not congested. Trust—find one that does what I want. Availability—find one that is working. Perhaps an ordering can isolate them?

Conclusions Many important functions are cross-layer. Applications must build availability out of diverse components. Trust and trustworthy components are the key to availability. The details of packet transfer are a small part of the story.