Potential Name Syntax. Properties of Naming. Naming and system components. Naming and layering. Replicated storage, consistency

Similar documents
TWO-PHASE COMMIT ATTRIBUTION 5/11/2018. George Porter May 9 and 11, 2018

Domain Name System.

Page 1. Goals for Today" What Is A Protocol?" CS162 Operating Systems and Systems Programming Lecture 10. Protocols, Layering and e2e Argument"

Page 1. CS162 Operating Systems and Systems Programming Lecture 22. Networking III. Automatic Repeat Request

CSE 486/586 Distributed Systems

Networking Overview. CS Computer Security Profs. Vern Paxson & David Wagner

IP ADDRESSES, NAMING, AND DNS

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Naming WHAT IS NAMING? Name: Entity: Slide 3. Slide 1. Address: Identifier:

CE 443: Computer Networks

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

Networking and Internetworking 1

Page 1. TCP Flow Control" TCP Flow Control" TCP Flow Control" CS162 Operating Systems and Systems Programming Lecture 16. Flow Control, DNS"

CS4/MSc Computer Networking. Lecture 3: The Application Layer

Communications Software. CSE 123b. CSE 123b. Spring Lecture 11: Domain Name System (DNS) Stefan Savage. Some pictures courtesy David Wetherall

CSE 123b Communications Software. Overview for today. Names and Addresses. Goals for a naming system. Internet Hostnames

CSE561 Naming and DNS. David Wetherall

The Application Layer: Sockets, DNS

Discovery. RelaKonship Between Layers. Discovery: Mapping Name to Address. RouKng: Mapping Link to Path. What s in a Name? Naming

CSEN 404 Introduction to Networks. Mervat AbuElkheir Mohamed Abdelrazik. ** Slides are attributed to J. F. Kurose

Internet Design Principles

logical link name logical link name name logical link address physical address path

CSEN 503 Introduction to Communication Networks

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols

Chapter 2 Application Layer. Lecture 5 DNS. Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

CS519: Computer Networks. Lecture 6: Apr 5, 2004 Naming and DNS

Domain Name Service. DNS Overview. October 2009 Computer Networking 1

ECE 158A: Lecture 7. Fall 2015

Layering and Addressing CS551. Bill Cheng. Layer Encapsulation. OSI Model: 7 Protocol Layers.

Light at the end of the tunnel Final Lecture: Course Overview

Application Layer Protocols

Network Security Part 3 Domain Name System

Lecture 05: Application Layer (Part 02) Domain Name System. Dr. Anis Koubaa

EECS 122: Introduction to Computer Networks DNS and WWW. Internet Names & Addresses

ECE 650 Systems Programming & Engineering. Spring 2018

CS4700/CS5700 Fundaments of Computer Networks

PRIMARY-BACKUP REPLICATION

Translating Addresses

CS 43: Computer Networks. 10: Naming and DNS September 24, 2018

Important Lessons. Today's Lecture. Two Views of Distributed Systems

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Review for Internet Introduction

Internet Technology 3/2/2016

Network Layering, Naming, and Name Resolution CS 118. Computer Network Fundamentals Peter Reiher. Lecture 9 Page 1 CS 118.

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSE 565 Computer Security Fall 2018

Network layer: Overview. Network Layer Functions

416 Distributed Systems. Distributed File Systems 2 Jan 20, 2016

Advanced Networking. Domain Name System

Advanced Networking. Domain Name System. Purpose of DNS servers. Purpose of DNS servers. Purpose of DNS servers

Operating Systems CS 571

Distributed Systems Homework 1 (6 problems)

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

0 0& Basic Background. Now let s get into how things really work!

CS /15/16. Paul Krzyzanowski 1. Question 1. Distributed Systems 2016 Exam 2 Review. Question 3. Question 2. Question 5.

Telecom Systems Chae Y. Lee. Contents. Overview. Issues. Addressing ARP. Adapting Datagram Size Notes

Naming Computer Networking. Overview. DNS: Domain Name System. Obvious Solutions (1) Obvious Solutions (2)

Distributed Naming. EECS 591 Farnam Jahanian University of Michigan. Reading List

04 Identifiers. UUID URI Format Characteristics. Coulouris, Ch 9 rfc3986 Ahmed, 2005 Subharthi, 2009

DNS and Modern Network Services. Amin Vahdat CSE 123b April 27, 2006

page 1 Plain Old DNS WACREN, DNS/DNSSEC Regional Workshop Ouagadougou, October 2016

Intuitive distributed algorithms. with F#

GFS Overview. Design goals/priorities Design for big-data workloads Huge files, mostly appends, concurrency, huge bandwidth Design for failures

NFS: Naming indirection, abstraction. Abstraction, abstraction, abstraction! Network File Systems: Naming, cache control, consistency

Development of the Domain Name System

Venugopal Ramasubramanian Emin Gün Sirer SIGCOMM 04

CSC2231: DNS with DHTs

GFS: The Google File System. Dr. Yingwu Zhu

Availability versus consistency. Eventual Consistency: Bayou. Eventual consistency. Bayou: A Weakly Connected Replicated Storage System

CS 457 Lecture 11 More IP Networking. Fall 2011

GFS: The Google File System

Computer Security CS 426

Eventual Consistency. Eventual Consistency

Networking Basics. EC512 Spring /15/2015 EC512 - Prof. Thomas Skinner 1

Networking and Internetworking 1

Addressing and Routing

ZooKeeper & Curator. CS 475, Spring 2018 Concurrent & Distributed Systems

04 Identifiers UUID. Coulouris, Ch 9 URI. rfc3986 Format. Ahmed, 2005 Characteristics. Subharthi, 2009

2. Introduction to Internet Applications

Network Layer: Internet Protocol

DNS Hierarchical Name Space. BIND Terminology and DNS Name Servers. Distributed Hierarchical Database (1st Approx) Domain Name System (DNS)

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Lecture 2: Layering & End-to-End

CS 3516: Advanced Computer Networks

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

Chapter 3: Naming Page 38. Clients in most cases find the Jini lookup services in their scope by IP

Network Architecture

Introduction to Information Science and Technology 2017 Networking II. Sören Schwertfeger 师泽仁

PUCPR. Internet Protocol. Edgard Jamhour E N G L I S H S E M E S T E R

Summary of MAC protocols

EE 122: Domain Name System

Reminders. EE 122: Domain Name System. Goals of Today!s Lecture. Host Names vs. IP addresses. Separating Naming and Addressing

Application Layer. Applications and application-layer protocols. Goals:

CS 3640: Introduction to Networks and Their Applications

Exam 2 Review. Fall 2011

Distributed systems. Lecture 6: distributed transactions, elections, consensus and replication. Malte Schwarzkopf

CS Amazon Dynamo

Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Page 2. Page 3.

The Google File System

CSC 574 Computer and Network Security. DNS Security

Transcription:

Naming and layering Naming and system components Replicated storage, consistency Caller Callee How to design interface between components? COS 518: Advanced Computer Systems Lecture 2 Mike Freedman Many interactions involve naming things Naming objects that caller asks callee to manipulate Naming caller and callee together 2 Potential Name Syntax Human readable? If users interact with the names Fixed length? If equipment processes at high speed Large name space? If many nodes need unique names Hierarchical names? If the system is very large and/or federated Self-certifying? If preventing spoofing is important 3 Properties of Naming Enabling sharing in applications Multiple components or users can name a shared object. Without names, client-server interface pass entire object by value Retrieval Accessing same object later on, just by remembering name Indirection mechanism Component A knows about name N Interposition: can change what N refers to without changing A Hiding Hides impl. details, don t know where google.com located For security purposes, might only access resource if know name (e.g., dropbox or Google docs URL > knowledge gives access) 4 1

Names all around Registers: LD R0, 0x1234 IP addresses: 128.112.132.86 Host names: www.cs.princeton.edu Path names: /courses/archive/spring17/cos518/syllabus.html vs. syllabus.html.. (to parent directory) URLs: http://www.cs.princeton.edu/courses/archive/spring17/cos518/ Email addresses Function names: ls Phone numbers: 609-258-9169 vs. x8-9179 SSNs High-level view of naming Set of possible names Set of possible values that names map to Lookup algorithm that translates name to value Optional context that affects the lookup algorithm 5 6 Helping to understand naming system Name syntax? Values? Context used to resolve name? Who supplies context? Global (context-free) or local names? Different Kinds of Names Host names: www.cs.princeton.edu Mnemonic, variable-length, appreciated by humans Hierarchical, based on organizations IP addresses: 128.112.7.156 Numerical 32-bit address appreciated by routers Hierarchical, based on organizations and topology MAC addresses: 00-15-C5-49-04-A9 Numerical 48-bit address appreciated by adapters Non-hierarchical, unrelated to network topology 7 8 2

Hierarchical Assignment Processes Host names: www.cs.princeton.edu Domain: registrar for each top-level domain (eg,.edu) Host name: local administrator assigns to each host IP addresses: 128.112.7.156 Prefixes: ICANN, regional Internet registries, and ISPs Hosts: static configuration, or dynamic using DHCP MAC addresses: 00-15-C5-49-04-A9 Blocks: assigned to vendors by the IEEE Adapters: assigned by the vendor from its block Case Study: Domain Name System (DNS) Computer science concepts underlying DNS Indirection: names in place of addresses Hierarchy: in names, addresses, and servers Caching: of mappings from names to/from addresses 9 10 Strawman Solution #1: Local File Original name to address mapping Flat namespace /etc/hosts SRI kept main copy Downloaded regularly Count of hosts was increasing: moving from a machine per domain to machine per user Many more downloads Many more updates 11 Strawman Solution #2: Central Server Central server One place where all mappings are stored All queries go to the central server Many practical problems Single point of failure High traffic volume Distant centralized database Single point of update Does not scale Need a distributed, hierarchical collection of servers 12 3

Domain Name System (DNS) Properties of DNS Hierarchical name space divided into zones Distributed over a collection of DNS servers Hierarchy of DNS servers Root servers Top-level domain (TLD) servers Authoritative DNS servers Performing the translations Local DNS servers and client resolvers 13 Distributed Hierarchical base com edu org ac uk zw arpa west foo bar generic domains east my my.east.bar.edu country domains unnamed root ac cam usr usr.cam.ac.uk inaddr 12 34 56 DNS Queries a.cs.princeton.edu wants IP address for www.umass.edu Recursive vs. Iterative Queries local DNS server dns.princeton.edu local DNS server dns.cs.princeton.edu 1 2 10 requesting host a.cs.princeton.edu 9 3 root DNS server for. 4 5 8 6 TLD DNS server for.edu 7 authoritative DNS server for umass.edu dns.umass.edu www.umass.edu 15 DNS Queries DNS query latency: e.g., 1 second Caching to reduce overhead and delay Small # of top-level servers, that change rarely Popular sites visited often Where to cache? Local DNS server Browser 1 2 10 requesting host a.cs.princeton.edu 9 3 root DNS server for. 4 5 8 6 TLD DNS server for.edu 7 authoritative DNS server for umass.edu dns.umass.edu www.umass.edu 16 4

Reliability DNS servers are replicated Name service available if at least one replica is up Queries can be load balanced between replicas UDP used for queries Need reliability: must implement this on top of UDP Try alternate servers on timeout Exponential backoff when retrying same server Same identifier for all queries Don t care which server responds 17 DNS Cache Consistency Goal: Ensuring cached data is up to date DNS design considerations Cached data is read only Explicit invalidation would be expensive Server would need to keep track of all resolvers caching Avoiding stale information Responses include a time to live (TTL) field Delete the cached entry after TTL expires Perform negative caching (for dead links, misspellings) So failures quick and don t overload gtld servers 18 ing ing Partition the system Each layer solely relies on services from layer below Each layer solely exports services to layer above Interface between layers defines interaction Hides implementation details s can change without disturbing other layers 19 5

OSI ing Model Open Systems Interconnection (OSI) Developed by International Organization for Standardization (OSI) in 1984 Seven layers Presentation Session Five s Summary Lower three layers implemented everywhere Top two layers implemented only at hosts Logically, layers interacts with peer s corresponding layer Internet Protocol (IP) Only five layers The functionalities of the missing layers (i.e., Presentation and Session) are provided by the layer Host A Router Host B Communication model and headers Communication goes down to physical network Then from network peer to peer Then up to relevant layer Net. Net. Frame Net. Frame Net. Host A Router Host B 101010100110101110 101010100110101110 6

Drawbacks of ing N may duplicate layer N-1 functionality E.g., error recovery to retransmit lost data s may need same information E.g., timestamps, maximum transmission unit size ing can hurt performance E.g., hiding details about what is really going on Some layers are not always cleanly separated Inter-layer dependencies for performance reasons Some dependencies in standards (header checksums) Placing Functionality Hugely influential paper: End-to-End Arguments in System Design by Saltzer, Reed, and Clark ( 84) Sacred Text of the Internet Endless disputes about what it means Everyone cites it as supporting their position Headers start to get really big Sometimes header bytes >> actual content Paper Discussion Intro to fault tolerant + consistency 27 28 7

What is fault tolerance? Why is fault tolerance hard? Building reliable systems from unreliable components Three basic steps 1. Detecting errors: discovering presence of an error in a data value or control signal 2. Containing errors: limiting how far errors propagate 3. Masking errors: designing mechanisms to ensure system operates correctly despite error (+ possibly correct error) Failures Propagate Say one bit in a DRAM fails it flips a bit in a memory address the kernel is writing to......causes big memory error elsewhere, or a kernel panic......program is running one of many distributed file system storage servers......a client can t read from FS, so it hangs 29 30 So what to do? 1. Do nothing: silently return the failure 2. Fail fast: detect the failure and report at interface Ethernet station jams medium on detecting collision 3. Fail safe: transform incorrect behavior or values into acceptable ones Failed traffic light controller switches to blinking-red 4. Mask the failure: operate despite failure Retry op for transient errors, use error-correcting code for bit flips, replicate data in multiple places Masking failures We mask failures on one server via Atomic operations Logging and recovery In a distributed system with multiple servers, we might replicate some or all servers But if you give a mouse some replicated servers She s going to need to figure out how to keep the state of the servers consistent (immediately? eventually?) 31 32 8

Reasoning about fault tolerance This is hard! How do we design fault-tolerant systems? How do we know if we re successful? Safety and liveness Often use properties that hold true for every possible execution We focus on safety and liveness properties 33 34 Safety Bad things don t happen No stopped or deadlocked states No error states Examples Mutual exclusion: two processes can t be in a critical section at the same time Bounded overtaking: if process 1 wants to enter a critical section, process 2 can enter at most once before process 1 Liveness Good things happen eventually Examples Starvation freedom: process 1 can eventually enter a critical section as long as process 2 terminates Eventual consistency: if a value in an application doesn t change, two servers will eventually agree on its value 35 36 9

Often a tradeoff Good and bad are application-specific Safety is very important in banking transactions Liveness is very important in social networking sites Eventual Consistency 37 38 Eventual consistency Def n: If no new updates to the object, eventually all accesses will return the last updated value Common: git, iphone sync, Dropbox, Amazon Dynamo Why do people like eventual consistency? Fast read/write of local copy (no primary, no Paxos) Disconnected operation Challenges How do you discover other writes? How do you resolve conflicting writes? 39 Two prevailing styles of discovery Gossip pull ( anti-entropy ) A asks B for something it is trying to find Commonly used for management replicated data Resolve differences between DBs by comparing digests Gossip push ( rumor mongering ): A tells B something B doesn t know Gossip for multicasting Keep sending for bounded period of time: O (log n) Also used to compute aggregates Max, min, avg easy. Sum and count more difficult. Push-pull gossip Combines both : O(n log log n) msgs to spread in O(log n) time 10

Monday reading for everybody Conflict resolution in eventually consistent systems: Bayou 41 11