Layering CS 438: Spring 2014 Instructor: Matthew Caesar

Slides:



Advertisements
Similar presentations
Layering and the network layer CS168, Fall 2014 Sylvia Ratnasamy
Advertisements

Intro (continued) and Design Principles Nick Feamster CS 3251: Computer Networking I Spring 2013.
PROTOCOLS AND ARCHITECTURE Lesson 2 NETS2150/2850.
CS 582 / CMPE 481 Distributed Systems Communications.
1 Katz, Stoica F04 EECS 122: Introduction to Computer Networks Network Architecture Computer Science Division Department of Electrical Engineering and.
1 Probability, Preview, and Principles EE122 Fall 2011 Scott Shenker Materials with thanks to Jennifer Rexford, Ion.
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
CS 268: Lecture 2 (Layering & End-to-End Arguments)
ISOC-Chicago 2001John Kristoff - DePaul University1 Journey to the Center of the Internet John Kristoff DePaul University.
EE 122: Layering and the Internet Architecture Kevin Lai September 4, 2002.
Chapter 1 Read (again) chapter 1.
EE 4272Spring, 2003 EE4272: Computer Networks Instructor: Tricia Chigan Dept.: Elec. & Comp. Eng. Spring, 2003.
1 EE 122: Internet Design Principles Ion Stoica TAs: Junda Liu, DK Moon, David Zats (Materials with thanks to Vern.
Introduction to Management Information Systems Chapter 5 Data Communications and Internet Technology HTM 304 Fall 07.
William Stallings Data and Computer Communications 7 th Edition Chapter 2 Protocols and Architecture.
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 2: Protocols and Architecture.
 The Open Systems Interconnection model (OSI model) is a product of the Open Systems Interconnection effort at the International Organization for Standardization.
1 Review of Important Networking Concepts Introductory material. This slide uses the example from the previous module to review important networking concepts:
Lecture slides prepared for “Business Data Communications”, 7/e, by William Stallings and Tom Case, Chapter 8 “TCP/IP”.
The OSI and TCP/IP Models Last Update Copyright 2009 Kenneth M. Chipps Ph.D.
Plan of attack ‣ What is a network made of? ‣ How is it shared? ‣ How do we evaluate a network? ‣ How is communication organized? 1.
CS 268: Lecture 4 (Internet Architecture & E2E Arguments)
1 Internet Design: Goals and Principles EE122 Fall 2012 Scott Shenker Materials with thanks to Jennifer Rexford,
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
CS 268: Lecture 3 (Layering & End-to-End Arguments)
Review: – computer networks – topology: pair-wise connection, point-to-point networks and broadcast networks – switching techniques packet switching and.
Presentation on Osi & TCP/IP MODEL
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
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.
Protocols and the TCP/IP Suite
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 Taj Mahal, Agra, India.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
Computer Communication & Networks Lecture # 02 Nadeem Majeed Choudhary
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 5: Internet architecture Slides used with.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Introduction Slide 1 A Communications Model Source: generates.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
CS 6401 Internetworking Outline Internet Architecture Best Effort Service Model.
CS 268: Internet Architecture & E2E Arguments Scott Shenker and Ion Stoica (Fall, 2010) 1.
Network Architecture: Design Philosophies IS250 Spring 2010 John Chuang
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
Network Architecture EE 122, Fall 2013 Sylvia Ratnasamy
William Stallings Data and Computer Communications
CS 4700 / CS 5700 Network Fundamentals
End-To-End Arguments in System Design J.H. Saltzer, D.P. Reed, and D. Clark Presented by: Amit Mondal.
Computer Networking Michaelmas/Lent Term M/W/F 11:00-12:00
1 Chapters 2 & 3 Computer Networking Review – The TCP/IP Protocol Architecture.
1. Layered Architecture of Communication Networks: TCP/IP Model
CS 3700 Networks and Distributed Systems
Enterprise Network Systems TCP Mark Clements. 3 March 2008ENS 2 Last Week – Client/ Server Cost effective way of providing more computing power High specs.
CS 4700 / CS 5700 Network Fundamentals Lecture 3: Internet Architecture (Layer cake and an hourglass) Revised 1/11/16.
Introduction to Communication Networks – Dr. Michael Schapira Rothberg A413 Some of the slides were taken from Prof. Scott Shenker,
Network Architecture IS250 Spring 2010 John Chuang
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
OSI Model OSI MODEL. Communication Architecture Strategy for connecting host computers and other communicating equipment. Defines necessary elements for.
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 and Overview of Network and Telecommunications
March 14, 2011 Ion Stoica CS162 Operating Systems and Systems Programming Lecture 14 Protocols, Layering and e2e.
CS4470 Computer Networking Protocols
Layered Architectures
Understanding the OSI Reference Model
E2E Arguments & Project Suggestions (Lecture 4, cs262a)
Networking Theory (part 2)
Computer Networking A Top-Down Approach Featuring the Internet
EEC4113 Data Communication & Multimedia System Chapter 1: Introduction by Muhazam Mustapha, July 2010.
November 26th, 2018 Prof. Ion Stoica
Networking Theory (part 2)
Presentation transcript:

Layering CS 438: Spring 2014 Instructor: Matthew Caesar

Last time: low-level plumbing Today: top-down architecting of the Internet Goals Layering Protocols The end-to-end principle Outline

Architecture is not the implementation itself Architecture is how we structure implementations what functions?, where?, what interfaces? Architecture is the modular design of the network Recall from Lecture #1

How would you go about designing the Internet? Sit down and… List your goals Prioritize them Hence define the service you will offer Architect a solution that implements the service Of course, the original designers of the Internet didn’t do anything of the sort…

Reality The lessons accrued over time; many contributors 1961: packet switching (Baran and Kleinrock) 1967: vision of a robust network (ARPANET) 1972: “best effort inter-networking” proposed (Kahn) 1974: TCP/IP paper (Cerf/Kahn)

Reality The lessons accrued over time; many contributors Many of the lessons were learnt “on the job” E.g., TCP’s congestion control algorithms were developed in response to the Internet meltdowns of the early 1980s

Reality The lessons accrued over time; many contributors Many of the lessons were learnt “on the job” Consensus didn’t come easy 1961: packet switching is proposed 1972: best-effort communication is advocated 1980: IP adopted as the defense standard 1985: NSFnet picks IP 199x: Circuit switching rises (and falls) in the form of ATM 199x: `Quality of Service’ (QoS) rises and falls

Reality The lessons accrued over time; many contributors Many of the lessons were learnt “on the job” Consensus didn’t come easy And progress was ad-hoc “rough consensus and running code.”

Reality The lessons accrued over time; many contributors Many of the lessons were learnt “on the job” Consensus didn’t come easy And progress was ad-hoc Yet, there was also constant dialogue constant introspection constant experimentation, leading to… A strong consistency of vision emerging by the ‘80s, driven by D. Clark, chair of the Internet Arch. Board

Internet Design Goals (from Clark’s SIGCOMM 1988 paper) Connect existing networks Robust in face of failures Support multiple types of delivery services Accommodate a variety of networks Allow distributed management Cost effective Easy host attachment Allow resource accountability

Connect Existing Networks Wanted a single unifying interface that could be used to connect any pair of (existing) networks Interface to be compatible with existing networks couldn’t demand performance capabilities not supported by existing networks had to support existing packet switched networks Led to focus on an inter-networking service based on the best-effort delivery of packets

How would you go about designing the Internet? Sit down and… List your goals Prioritize them Hence define the service you will offer Architect a solution that implements the service

Three steps Decompose the problem into tasks Organize these tasks Assign tasks to entities (who does what)

What does it take to send packets across the globe? Bits on wire Packets on wire Delivery packets within a single physical network Deliver packets across multiple networks Ensure the destination received the data Do something with the data This is decomposition… Now, how do we organize these tasks? Decomposition Datalink Network Transport Application Physical

Dear John, Your days are numbered. --Pat Inspiration… CEO A writes letter to CEO B Folds letter and hands it to administrative aide Aide: Puts letter in envelope with CEO B’s full name Takes to FedEx FedEx Office Puts letter in larger envelope Puts name and street address on FedEx envelope Puts package on FedEx delivery truck FedEx delivers to other company

CEO Aide FedEx CEO Aide FedEx LocationFedex Envelope (FE) The Path of the Letter Letter Envelope Semantic Content Identity “Peers” on each side understand the same things No one else needs to Lowest level has most packaging

The Path Through FedEx Truck Sorting Office Airport FE Sorting Office Airport Truck Sorting Office Airport Crate FE New Crate FE Deepest Packaging (Envelope+FE+Crate) at the Lowest Level of Transport

The Path Through FedEx Truck Sorting Office Airport FE Sorting Office Airport Truck Sorting Office Airport Crate FE New Crate FE Higher “Stack” at Ends Partial “Stack” During Transit Deepest Packaging (Envelope+FE+Crate) at the Lowest Level of Transport Highest Level of “Transit Stack” is Routing

In the context of the Internet Applications …built on… Reliable (or unreliable) transport Best-effort global packet delivery Best-effort local packet delivery Physical transfer of bits Application Transport Network Data link Physical L1 L2 L3 L4 L7 This is not a typo nope, not a typo

In the context of the Internet Application PresentationSession Transport Network Data link Physical The Open Systems Interconnect (OSI) model developed by the ISO included two additional layers that are often implemented as part of the application

Protocols and Layers Communication between peer layers on different systems is defined by protocols ApplicationTransport Network Data link Physical L1 L2 L3 L4 L7 ApplicationTransport Network Data link Physical L1 L2 L3 L4 L7

Friendly greeting Time? 2pm Friendly greeting Thank you What is a Protocol?

E.g., the destination address is in the 1 st four bytes of the packet When A sends B a packet of type X… …B should return a packet of type Y to A … then A should respond with Z ….

What is a Protocol? An agreement between parties on how to communicate Include syntax and semantics how a communication is specified and structured what a communication means Protocols exist at many hardware, software, all levels! Defined by a variety of standards bodies IETF (ietf.org), IEEE, ITU, …

Next: what gets implemented where? ApplicationTransport Network Data link Physical L1 L2 L3 L4 L7 ApplicationTransport Network Data link Physical L1 L2 L3 L4 L7 So we have decomposition and organization

Distributing Layers Across Network Layers are simple if only on a single machine Just stack of modules interacting with those above/below But we need to implement layers across machines Hosts Routers (switches) What gets implemented where?

What gets implemented at the end host Bits arrive on wire, must make it up to application Therefore, all layers must exist at host!

What gets implemented in the network? Bits arrive on wire Physical layer necessary Packets must be delivered to next-hop and across local networks Datalink layer necessary Packets must be delivered between networks for global delivery Network layer necessary The network doesn’t support reliable delivery Transport layer (and above) not supported 28

Switches vs. Routers Switches do what routers do, except they don’t participate in global delivery, just local delivery Switches only need to support Physical and Datalink Don’t need to support Network layer Routers support Physical, Datalink and Network layers Won’t focus on the router/switch distinction When I say switch, I almost always mean router Almost all boxes support network layer these days

Lower three layers implemented everywhere Top two layers implemented only at hosts Transport Network Datalink Physical Transport Network Datalink Physical Network Datalink Physical Application Host AHost BRouter Simple diagram

Application TransportNetworkData link Physical Looking a little closer At the end host Application user space: web server, browser, mail, game Transport and network. Typically part of the operating system Datalink Often written by vendor of the network interface hardware Physical Hardware: network interface card and link

32 Layers interacts with peer’s corresponding layer Transport Network Datalink Physical Transport Network Datalink Physical Network Datalink Physical Application Host AHost BRouter Logical Communication

33 Communication goes down to physical network Then from network peer to peer Then up to relevant layer Transport Network Datalink Physical Transport Network Datalink Physical Network Datalink Physical Application Host AHost BRouter Physical Communication

Trans: Connection ID Net: Source/DestLink: Src/Dest Appl: Get index.html User AUser B Layer Encapsulation

Protocols at different layers There is just one network-layer protocol, IP The “narrow waist” of the Internet hourglass ApplicationTransport Network Data link Physical L1 L2 L3 L4 L7 SMTPHTTPDNSNTPTCPUDPIPEthernetFDDIPPPoptical copper radio PSTN

Implications of Hourglass Single network-layer protocol (IP) Allows arbitrary networks to interoperate Any network that supports IP can exchange packets Decouples applications from low-level networking technologies applications to function on all networks Supports simultaneous innovations above and below IP But changing IP itself is hard (e.g., IPv4  IPv6)

HTTP TCP IP Ethernet interface HTTP TCP IP Ethernet interface IP Ethernet interface Ethernet interface SONET interface SONET interface host router HTTP message TCP segment IP packet A Protocol-Centric Diagram

What are some of the benefits of protocols and layering?

Interoperability Many implementations of many technologies Hosts running FreeBSD, Linux, Windows, MacOS, … People using Mozilla, Explorer, Opera, … Routers made by cisco, juniper, … Hardware made by IBM, Dell, Apple, … And it changes all the time. Phew! But they can all talk together because they use the same protocol(s)

Abstraction & Reuse Multiple choices of protocol at many layers Physical: copper, fiber, air, carrier pigeon Link: ethernet, token ring, SONET, FDDI Transport: TCP, UDP, SCTP But we don’t want to have to write “a web (HTTP) browser for TCP networks running IP over Ethernet on Copper” and another for the fiber version… Protocols provide a standard interface to write to Layers hide the details of the protocols below

Decoupling aids innovation Technologies at each layer pursued by very different communities Innovation at each layer can proceed in parallel

What are some of the drawbacks of protocols and layering?

Drawbacks of Layering Layer N may duplicate lower layer functionality e.g., error recovery to retransmit lost data Information hiding may hurt performance e.g., packet loss due to corruption vs. congestion Headers start to get really big e.g., typical TCP+IP+Ethernet is 54 bytes Layer violations when the gains too great to resist e.g., TCP-over-wireless Layer violations when network doesn’t trust ends e.g., firewalls

Hugely influential paper: “End-to-End Arguments in System Design” by Saltzer, Reed, and Clark (‘84) articulated the “End-to-End Principle” (E2E) Endless debate over what it means Everyone cites it as supporting their position Where to place network functionality?

Some application requirements can only be correctly implemented end-to-end reliability, security, etc. Implementing these in the network is hard every step along the way must be fail proof Hosts Can satisfy the requirement without network’s help Will/must do so, since they can’t rely on the network Basic Observation

Solution 1: make each step reliable, and string them together to make reliable end-to-end process Solution 2: end-to-end check and retry OS Appl. OS Appl. Host AHost B OK Example: Reliable File Transfer

Solution 1 (make each step reliable) is incomplete What happens if any network element misbehaves? Receiver has to do the check anyway! Solution 2 (end to end check) is complete Full functionality can be entirely implemented at application layer with no need for reliability from lower layers Is there any need to implement reliability at lower layers? Discussion

Implementing functionality (e.g., reliability) in the network Doesn’t reduce host implementation complexity Does increase network complexity Probably increases delay and overhead on all applications even if they don’t need the functionality (e.g. VoIP) However, implementing in the network can improve performance in some cases e.g., consider a very lossy link Summary of End-to-End Principle

Don’t implement a function at the lower levels of the system unless it can be completely implemented at this level Unless you can relieve the burden from hosts, don’t bother “Only if sufficient” interpretation

“Only if necessary” interpretation Don’t implement anything in the network that can be implemented correctly by the hosts Make network layer absolutely minimal This E2E interpretation trumps performance issues Increases flexibility, since lower layers stay simple

If hosts can implement functionality correctly, implement it in a lower layer only as a performance enhancement But do so only if it does not impose burden on applications that do not require that functionality “Only if useful” interpretation

Taking stock of where we’re at…

First Step: Basic Concepts and Decisions Plumbing: links, switches Packet Switching winner over circuit switching Best-effort service model

Second Step: Architectural Principles Protocols and Layering End-to-End Principle

Third Step: Design Challenges and Solutions Let’s go layer by layer Physical Datalink Network Transport Application

Two Layers We’ll Worry About Less Physical: Technology dependent Lots of possible solutions Not specific to the Internet Application: Application-dependent Lots of possible solutions

Datalink and Network Layers Both support best-effort delivery Datalink over local scope Network over global scope Key challenge: scalable, robust routing How do we address destinations How to direct packets to destination

Transport Layer Provide reliable delivery over unreliable network