Week 2 / Paper 1. The Design Philosophy of the DARPA Internet Protocols

Similar documents
Network Reading Group

Architectural Principles

Architectural Principles

CS 598: Advanced Internet

Review on The Design Philosophy of the DARPA Internet Protocols by David D. Clark. Presented by : Daminda Perera 16/02/2008

IP Packet Switching. Goals of Todayʼs Lecture. Simple Network: Nodes and a Link. Connectivity Links and nodes Circuit switching Packet switching

Internet Design Principles and Architecture

CS 678 Spring 2013 Network Architecture and Principles

Architectural Principles of the Internet

416 Distributed Systems. Networks review; Day 1 of 2 Jan 5 + 8, 2018

Internet Architecture. CPS 214 (Nick Feamster) January 14, 2008

Internet Design: Big Picture

Design Principles : Fundamentals of Computer Networks Bill Nace

Design Considerations : Computer Networking. Outline

CS 268: Internet Architecture & E2E Arguments. Today s Agenda. Scott Shenker and Ion Stoica (Fall, 2010) Design goals.

TCP/IP Architecture. Brighten Godfrey cs598pbg August slides 2010 by Brighten Godfrey unless otherwise noted

COMP/ELEC 429/556 Introduction to Computer Networks

CSC2209 Computer Networks

EEC-484/584 Computer Networks

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

Lecture-4. TCP/IP-Overview:

TSIN02 - Internetworking

Internet A Brief Tutorial. Jean Walrand EECS U.C. Berkeley

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Internet Architecture and Assumptions. David Andersen CMU Computer Science

TSIN02 - Internetworking

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

The Transmission Control Protocol (TCP)

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

CS 268: Lecture 4 (Internet Architecture & E2E Arguments)

Continuous Real Time Data Transfer with UDP/IP

Networking Technologies and Applications

Reference Models. 7.3 A Comparison of the OSI and TCP/IP Reference Models

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca

TSIN02 - Internetworking

Communications Software. CSE 123b. CSE 123b. Spring Lecture 2: Internet architecture and. Internetworking. Stefan Savage

CE693: Adv. Computer Networking

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Design Considerations : Computer Networking. Outline. Challenge 1: Address Formats. Challenge. How to determine split of functionality

TCP/IP THE TCP/IP ARCHITECTURE

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

CSE 461 Module 10. Introduction to the Transport Layer

TCP/IP Architecture. Brighten Godfrey CS 538 January 24, slides by Brighten Godfrey unless otherwise noted

CSCI-1680 Network Layer: IP & Forwarding John Jannotti

Outline. TCP/IP Internet

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

Lecture 2: Layering & End-to-End

Cross Layer Protocol Design. Radio Communication III

ECE 435 Network Engineering Lecture 15

Distributed Systems /640

Time and Place. Course Web Site. Grading Policy. Advanced Computer Networks. Lecture 1: Introduction to Course

Goal of Today s Lecture. EE 122: Designing IP. The Internet Hourglass. Our Story So Far (Context) Our Story So Far (Context), Con t

ECE 650 Systems Programming & Engineering. Spring 2018

TSIN02 - Internetworking

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

Goal 0: Connecting Networks. Challenge 1: Address Formats. Challenge 2: Different Packet Sizes. Goals [Clark88]

CS 268: Computer Networking

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Network Architecture. TOC Architecture

Simulation of TCP Layer

CS 43: Computer Networks The Network Layer. Kevin Webb Swarthmore College November 2, 2017

Network Architecture COS 461: Computer Networks

Chapter 16 Networking

Peer entities. Protocol Layering. Protocols. Example

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

CE693: Adv. Computer Networking

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

Outline Computer Networking. Functionality Split. Transport Protocols

TCP so far Computer Networking Outline. How Was TCP Able to Evolve

precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet protocol (bottom level)

Networking for Data Acquisition Systems. Fabrice Le Goff - 14/02/ ISOTDAQ

CSCD 330 Network Programming

Defining Networks with the OSI Model. Module 2

Applied Networks & Security

Introduction... xiii Chapter 1: Introduction to Computer Networks and Internet Computer Networks Uses of Computer Networks...

Chapter 6. (Week 12) The Transport Layer (CONTINUATION) ANDREW S. TANENBAUM COMPUTER NETWORKS FOURTH EDITION PP

Network Layer (1) Networked Systems 3 Lecture 8

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

416 Distributed Systems. Networks review; Day 2 of 2 And start of RPC Jan 13, 2016

CSE 486/586: Distributed Systems

The Client Server Model and Software Design

Network Model: Each layer has a specific function.

CS4700/CS5700 Fundamentals of Computer Networks

Chapter 09 Network Protocols

Introduction to Networks and the Internet

L6: OSI Reference Model

What is the difference between unicast and multicast? (P# 114)

Networking and Internetworking 1

Internetworking Models The OSI Reference Model

Computer Networks. General Course Information. Addressing and Routing. Computer Networks 9/8/2009. Basic Building Blocks for Computer Networks

Networking interview questions

Computer Networks. Lecture 9 Network and transport layers, IP, TCP, UDP protocols

CS155b: E-Commerce. Lecture 3: Jan 16, How Does the Internet Work? Acknowledgements: S. Bradner and R. Wang

CSCI Computer Networks

OSI Transport Layer. objectives

Network Architecture

CN1047 INTRODUCTION TO COMPUTER NETWORKING CHAPTER 6 OSI MODEL TRANSPORT LAYER

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

Transcription:

Week 2 / Paper 1 The Design Philosophy of the DARPA Internet Protocols David D. Clark ACM CCR, Vol. 18, No. 4, August 1988 Main point Many papers describe how the Internet Protocols work But why do they work as they do? What was the motivation for the design choices made? Essentially, what was their design philosophy Information-Centric Networks 02a-1

Introduction The DARPA Internet Protocols DARPA (previously ARPA) funded development of the Internet The paper captures 15 years of experience Robert Kahn and Vinton Cerf designed TCP/IP in 1973 DARPA eventually made TCP/IP mandatory David Clark assumed responsibility in 1981 Van Jacobson redesigned TCP congestion control in 1987 Why are these protocols the way they are? The design has evolved over time The datagram was not always as prominent as it became The Transport / Network split did not even exist This paper outlines the original design principles It also acknowledges that some of them were not met! Information-Centric Networks 02a-2

Fundamental Goal Multiplexed utilization of existing interconnected networks Originally, the ARPANET and the ARPA packet radio network Local area networks did not even exist! But it was always assumed that other networks would show up The alternative would be a unified network It may have led to better performance But it was not deemed to be practical Separate networks better reflected administrative boundaries The multiplexing technique chosen was packet switching It fit existing applications better than circuit switching Existing networks were also packet switched Networks would be interconnected by gateways Essentially these were store and forward packet switches Information-Centric Networks 02a-3

Second level goals The interconnection technique should be effective Effective means, in order of importance 1. Communication continues despite failures 2. Multiple types of service must be supported 3. A variety of networks must be accommodated 4. Distributed resource management must be permitted 5. The architecture must be cost effective 6. Host attachment must require a low level of effort 7. The resources used must be accountable The order is very important! A military network places survival on top A commercial network could place accountability on top Cost effectiveness is below the multiple types of service Information-Centric Networks 02a-4

Survivability Survivability in the face of failure Two entities must continue communicating despite failures If there is a path between them, they should keep communicating Synchronization is lost only if there is total partition This implies that the network should avoid maintaining state Conversation state must not be kept inside the network E.g. packets transmitted or acknowledged, flow control data Otherwise failures would require the applications to be reset Therefore, conversation state is kept at the endpoints Fate sharing: conversation state is lost only if an endpoint fails Much easier to engineer than in-network state replication Consequences of fate sharing Packet switches are stateless (datagram model) Endpoints are responsible for the transport layer Information-Centric Networks 02a-5

Types of Service Support of multiple types of service Different requirements in speed, latency, reliability The traditional network service was a virtual circuit Bi-directional reliable data delivery Remote login: low delay File transfer: high throughput TCP attempts to provide both But TCP cannot handle everything XNET: cross-internet debugger How can you expect reliable transmission in a buggy endpoint? Real time delivery of speech (teleconferencing) No point in retransmissions and they also introduce delays The network should work well with other services Information-Centric Networks 02a-6

Types of Service The split between TCP and IP Originally a single protocol existed, but TCP did not fit everything IP kept the best effort datagram delivery service UDP exported this service to higher layers TCP added the virtual circuit service What do the underlying networks provide? No assumptions are made, datagrams are enough But the architecture does not exploit better services It proved hard to support multiple types of service Each underlying network worked best with a specific service X.25 works better for reliable services Ethernet works better for unreliable services Information-Centric Networks 02a-7

Varieties of networks The Internet supports all kinds of networks Slow and fast, reliable and unreliable, wired and wireless Many more have been added since the paper was written Minimal requirements for Internet support Ability to transport reasonably sized datagrams (>100 bytes) Reasonable (not perfect) reliability Some suitable for of addressing nodes is needed No need for anything else Sequenced delivery Broadcast or multicast Packet priorities Error reporting Everything else is engineered at the transport layer Information-Centric Networks 02a-8

Other Goals The three top goals were met quite well The rest were not met or engineered that well! Distributed management partially works Routing is distributed and differs at each domain Policy routing is tough to do (see later lectures on BGP) Cost effectiveness depends on the circumstances A 40 byte TCP/IP header is overkill for remote login End-to-end retransmissions are wasteful Host attachment is complicated The endpoint needs to implement complex transport protocols Bad transport implementations hurt the network Accountability is basically non existent! Information-Centric Networks 02a-9

Architecture and Implementation The Internet architecture is very flexible by design Network performance depends on lot on the realization What networks are connected, what protocols are implemented How can one engineer a specific performance goal? What is the required bandwidth? What are the reliability requirements? The issue is not verifying correctness, but predicting performance Simulations are usually not enough due to complexity The operating system is very critical due to reliance on endpoints Back of the envelope calculations are common! Performance goals have not been addressed well Even though it was one of the main goals of the designers Hard to specify network parameters for procurement contracts! Information-Centric Networks 02a-10

Datagrams Datagrams are the fundamental unit of transport No need for connection state in the network Can be used to build different services Allow many different networks to be incorporated The use of datagrams turned out to be very important Datagrams do not reflect the intended Internet usage UDP does export datagram services to higher layers But very few applications actually are content with it! Simple query/response service (e.g. DNS) UDP is nearly always used as a basis Reliability or delay smoothing are commonly added The datagram is a building block, not a service in itself Information-Centric Networks 02a-11

TCP How did TCP evolve to its present state? Note that it has hardly changed since 1988! TCP uses byte based flow control for many reasons Insertion of control data in the stream (dropped, ad hoc solutions) Fragmentation of packets (dropped, IP does that) Grouping of many small transmissions (used) More exact flow control (used) In retrospect, packet based flow control would also be useful TCP uses the PSH flag as an indicator Originally an EOL flag was used to delimit records But it was insufficient for packets with many records A lot of different solutions were debated and tried In the end EOL was dropped as it was not generalized enough Information-Centric Networks 02a-12

Retrospective The Internet works well for its top priorities But these priorities do not always match user needs This became even clearer in the 1990s The datagram is a good case It made the network very flexible and popular But it makes accounting and resource management complex Packet flows Sequences of related datagrams Ideally recognized by the network But without requiring state that must be replicated The network should keep working if that state was lost This is called soft state Lack of flow support shows how hard it is to change the Internet! Information-Centric Networks 02a-13