Chapter 2: Application Layer

Similar documents
Chapter 2: Application layer

Review of Previous Lecture

Computer Networking Introduction

Application Layer: , DNS

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

Chapter 2 part B: outline

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

Chapter 2 Application Layer

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

Chapter 2 Application Layer

FTP. Mail. File Transfer Protocol (FTP) FTP commands, responses. Electronic Mail. TDTS06: Computer Networks

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

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

CSC 4900 Computer Networks:

Chapter 2 Application Layer

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

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

Chapter II: Application Layer

Lecture 7 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

EECS 3214: Computer Network Protocols and Applications

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

CSC 401 Data and Computer Communications Networks

Foundations of Telematics

CSEN 503 Introduction to Communication Networks

Application Layer: HTTP

Chapter 2 Application Layer

Web caches (proxy server)

Chapter 2 Application Layer

Chapter 2 Application Layer

Application layer. Some network apps. Client-server architecture. Hybrid of client-server and P2P. Pure P2P architecture. Creating a network app

Web, HTTP and Web Caching

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol

Application-Layer Protocols Peer-to-Peer Systems, Media Streaming & Content Delivery Networks

Applications & Application-Layer Protocols: (SMTP) and DNS

Lecture 6 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Application Layer. Goals: Service models. Conceptual aspects of network application protocols Client server paradigm

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline

Chapter 2 Application Layer

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5

Chapter 2. Application Layer. 2: Application Layer 1

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Section 2: Application layer

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

CMSC 332 Computer Networking Web and FTP

Chapter 2 Application Layer

CC451 Computer Networks

CSC358 Week 3. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

WWW: the http protocol

Chapter 2: Application layer

EECS 3214: Computer Network Protocols and Applications

DATA COMMUNICATOIN NETWORKING

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model

Internet applications. 2: Application Layer 1

Computer Networks. Wenzhong Li. Nanjing University

Chapter 2 Application Layer

Network Application. Topic. Principle of Network Application. Principle of Network Application

HyperText Transfer Protocol

CSC 401 Data and Computer Communications Networks

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 6

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

Chapter 2: Application Layer

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Domain Name System (DNS) 김현철 ( 화 ) 정보통신융합서울대학교컴퓨터공학부

Layered Model. DoD Model. ISO/OSI Model

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

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

Chapter 1 Introduction

CS 3516: Advanced Computer Networks

Lecture 7: Application Layer Domain Name System

Chapter P2P file sharing network applications 2.22 Web and HTTP 2.3 FTP DNS

Application Layer Chapter 2

Application Layer. Goals:

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

Introduction to the Application Layer. Computer Networks Term B14

internet technologies and standards

Course on Computer Communication and

Chapter II: Application Layer

Chapter 2 Application Layer

Chapter 2 Application Layer

CS 3516: Advanced Computer Networks

Application Layer Protocols

Chapter 2 outline. 2.1 Principles of app layer protocols

Lecture 6: Application Layer Web proxies, , and SMTP

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

Chapter 2 Application Layer

Applications Layer Protocols. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

Computer Networks and Applications

Lecture 2 - Application Layer. Lecture 1 Review. Application Layer. Principles of network applications. Notes. Notes. Notes. Notes

Goal and A sample Network App

Multimedia: video ... frame i+1

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

Chapter 2: Application Layer. Chapter 2: application layer. outline. Some network apps. Client-server architecture. Application architectures

Chapter 2: application layer

Application Layer. CMPS 4750/6750: Computer Networks

Transcription:

Chapter 2: Application Layer Our goals: Conceptual aspects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm learn about protocols by examining some application-level protocols HTTP SMTP DNS P2P Content distribution networks (CDNs) programming network applications sockets API Application Layer (SSL) 1 Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-2 1

Creating a network app Write programs that run on (different) end systems communicate over network e.g., web server software communicates with browser software No need to write software for network-core devices This approach allows for rapid app development application transport network data link physical application transport network data link physical application transport network data link physical Application Layer (SSL) 3 Application architectures Client-server to scale > racks of servers in a datacenter to improve throughput and response time -> geographically distributed clusters of servers in CDNs Peer-to-peer (P2P) difficult to manage -> super nodes (with some server characteristics) needed in addition to regular peers Application Layer (SSL) 4 2

Client-server architecture client/server server: always-on host permanent IP address data centers for scaling clients: communicate with server (speak first) may be intermittently connected may have dynamic IP addresses do not communicate directly with each other Application Layer (SSL) 5 Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and may change IP addresses difficult to manage find content or another peer by broadcast (flooding) NAT traversal problem peer-peer Example: BitTorrent has trackers (super nodes that manage the peers and chunks of a torrent) Application Layer (SSL) 6 3

Processes communicating Process: program running within a host. within same host, two processes communicate using inter-process communication (defined by OS). processes in different hosts communicate by exchanging messages Client process: process that initiates communication Server process: process that waits to be contacted Note: client & server processes run in P2P as well as client-server apps Note: A process in these slides may be a thread instead Application Layer (SSL) 7 Addressing processes to receive messages, process must have an identifier host device has unique 32-bit IP address Q: Is IP address of host on which process runs enough for identifying the process? A: No, many processes can be running on same host identifier includes both IP address and port number associated with process on host. Example port numbers: HTTP server: 80 Mail server: 25 to send HTTP message to gaia.cs.umass.edu web server: IP address: 128.119.245.12 Port number: 80 more shortly Application Layer (SSL) 8 4

App-layer protocol specs Types of messages exchanged, e.g., request, response Message syntax: what fields in messages & how fields are delineated Message semantics meaning of information in fields Rules for when and how processes send & respond to messages Public-domain protocols: defined in RFCs which enable interoperability e.g., HTTP, SMTP Proprietary protocols: e.g., Skype Application Layer (SSL) 9 What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet, email) require 100% reliable data transfer Timing some apps (e.g., Internet t telephony, interactive games) require low delay to be effective Throughput some apps (e.g., audio, video) require minimum amount of throughput h t to be effective other apps ( elastic apps ) make use of whatever throughput they get Security Encryption, data integrity, (in app layer, e.g. SSL/TLS) Application Layer (SSL) 10 5

Transport service requirements of common apps Application Data loss Throughput Time Sensitive file transfer e-mail Web documents interactive audio/video streaming stored audio/video interactive games instant messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic no elastic no elastic (few kbps) no audio: 5kbps-1Mbps yes, 100 s of ms video:10kbps-5mbps same as above yes, few secs few kbps up elastic yes, 100 s of ms yes and no Application Layer (SSL) 11 Internet transport protocols services TCP service: UDP service: connection-oriented: setup unreliable data required between client and transfer between server processes; state info sending and receiving reliable transport: between processes sending and receiving process does not provide: flow control: sender won t connection setup, overwhelm receiver reliability, flow control, congestion control, timing, congestion control: throughput guarantee, or throttle sender when network security is overloaded does not provide: timing, minimum throughput guarantee, security Q: why bother? Why is there a UDP? Application Layer (SSL) 12 6

Internet apps: application & transport protocols Application e-mail remote terminal access Web file transfer streaming multimedia Application layer protocol SMTP [RFC 5321] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e. g., Youtube) Underlying transport protocol TCP TCP TCP TCP TCP Internet telephony SIP[RFC 3261],RTP[RFC 3550], proprietary(e.g., Skype) UDP or TCP Application Layer (SSL) 13 Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-14 7

Web and HTTP First some jargon Web page consists of base HTML-file which includes several referenced objects Object can be HTML file, JPEG image, Java applet, audio file, Each object is addressable by a URL, for example www.someschool.edu/somedept/pic.gif host name path name Application Layer (SSL) 15 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/server model client: browser that requests, receives, displays Web objects server: Web server sends objects in response to requests PC running Explorer Server running Apache Web server Mac running Chrome Application Layer (SSL) 16 8

HTTP overview (continued) Uses TCP: client initiates TCP connection (creates socket) to server, port 80 server accepts TCP connection from client HTTP messages exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed HTTP is stateless server maintains no information about past client requests aside Protocols that maintain state are complex past history (state) must be maintained if server/client crashes, their views of state may be inconsistent, must be reconciled Application Layer (SSL) 17 Nonpersistent HTTP Suppose user enters URL www.someschool.edu/somedepartment/home.index (contains text, references to 10 jpeg images) 1a. HTTP client initiates TCP connection to HTTP server (process) at www.someschool.edu on port 80 2. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object somedepartment/home.index time 1b. HTTP server at host www.someschool.edu waiting for TCP connection at port 80, accepts connection, notifying client 3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket Application Layer (SSL) 18 9

Nonpersistent HTTP (cont.) time 5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects 4. HTTP server closes TCP connection. Application Layer (SSL) 19 Non-Persistent HTTP: Response time Definition of RTT: time for a small packet to travel from client to server and back. Response time: one RTT to initiate TCP connection one RTT for HTTP request and first few bytes of HTTP response to return initiate TCP connection file response time total = 2RTT+ file transmission time RTT request file RTT file received time time time to transmit file Application Layer (SSL) 20 10

Nonpersistent vs. Persistent HTTP Nonpersistent HTTP delay requires 2 additional RTTs for an object most browsers open parallel TCP connections to fetch referenced objects very little additional time for all reference objects but OS overhead to allocate host resources for all TCP connections Persistent HTTP delay server leaves connection open after sending response subsequent HTTP messages between client/server are sent over same connection client sends a new request as soon as it encounters a referenced object (pipelining) as little as one additional RTT for all referenced objects (plus their transmission time) Application Layer (SSL) 21 HTTP history Nonpersistent HTTP At most one object is sent over a TCP connection Version 0.9 (in 1991) only one method (GET) only one object type (HTML) Version 1.0 (in 1996) Persistent HTTP Version 1.1 (since 1999) multiple objects can be sent over single TCP connection between client and server. pipelining of requests Version 2 (since 2015) allows server push multiplexing requests over a single TCP connection without HOL blocking Application Layer (SSL) 22 11

HTTP request message two types of HTTP messages: request, response HTTP request message: ASCII (human-readable format) request line (GET, POST, HEAD commands) Carriage return, line feed indicate end of header lines GET /somedir/page.html HTTP/1.1\r\n Host: www.someschool.edu\r\n User-agent: Mozilla/5.0\r\n header Connection: close\r\n lines Accept-language:fr\r\n \r\n Application Layer (SSL) 23 HTTP request message: general format Application Layer (SSL) 24 12

Uploading form input Post method: Web page often includes form input Input is uploaded to server in entity body GET method: Uses GET method Entity body is empty Input is uploaded in URL field of request line: www.somesite.com/animalsearch?monkeys&banana Application Layer (SSL) 25 Method types HTTP/1.0 GET POST HEAD asks server to leave requested object out of response HTTP/1.1 GET, POST, HEAD PUT uploads file in entity body to path specified in URL field DELETE deletes file specified in the URL field (others) Application Layer (SSL) 26 13

HTTP response message status line (protocol status code status phrase) data, e.g., requested HTML file header lines HTTP/1.1 200 OK\r\n Connection close\r\n Date: Tue, 09 Aug 2011 12:00:15 GMT\r\n Server: Apache/2.2.3 (CentOS)\r\n Last-Modified: Tue, 09 Aug 2011...\r\n Content-Length: 6821\r\n Content-Type: text/html\r\n \r\n data data data data data... Aside: several other methods to indicate length of a response Application Layer (SSL) 27 Cookies: keeping state info client Cookie file usual http request msg usual http response + ebay: 8734 Set-cookie: 1678 server Amazon server creates ID 1678 for user Cookie file amazon: 1678 ebay: 8734 one week klater: Cookie file amazon: 1678 ebay: 8734 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg cookiespecific action cookiespectific action Application Layer (SSL) 28 14

Cookies Application end points keep state at client and server across multiple transactions http messages carry state info but http protocol is stateless What cookies can bring: authorization shopping carts recommendations user session state (Web e-mail) Cookies and privacy: cookies permit sites (including third parties) to learn a lot about you Application Layer (SSL) 29 Web cache (proxy server) Goal: satisfy client request without involving origin servers user sets browser: web accesses via origin cache browser sends all HTTP requests to cache if object is not in cache, request object from origin server, then return object to client else cache returns object client client Proxy server server origin server Application Layer (SSL) 30 15

More about Web caching cache acts as both client and server typically cache is installed by ISP (university, company, residential ISP) Why Web caching? reduce response time for client request reduce traffic on an institution s access link. Application Layer (SSL) 31 Caching example Assumptions average object size = 1 Mbits avg. request rate from institution s browsers to origin servers = 15/sec Internet delay (ISP router to any origin server and back) = 2 sec Consequences utilization on LAN = 15% institutional utilization on access link = 100% network total delay = Internet delay + access link delay + LAN delay = 2 seconds + minutes + 0.01 second many lost packets in reponses public Internet 15 Mbps access link origin servers 100 Mbps LAN institutional cache Assumption: request is very short and takes no time to transmit Application Layer (SSL) 32 16

Caching example (2) possible solution increase bandwidth of access link to, say, 100 Mbps public Internet origin servers consequence utilization on LAN = 15% utilization on access link = 15% Total delay = Internet delay + access link delay + LAN delay = 2 + 0.01 + 0.01 seconds institutional network 100 Mbps access link 100 Mbps LAN often a costly upgrade institutional cache Application Layer (SSL) 33 Caching example (3) possible solution: install cache suppose hit rate is 0.4 consequence 40% requests will be satisfied almost immediately 60% requests satisfied by origin servers utilization of access link reduced to 60%, resulting in negligible delay (say 70 ms) ave. total delay = Internet delay + access link delay + LAN delay = 0.6*(2 + 0.07 + 0.01) + 0.4* (0 + 0 + 0.01) seconds = 1.25 sec institutional network public Internet 15 Mbps access link origin servers 100 Mbps LAN institutional cache Application Layer (SSL) 34 17

Conditional GET Goal: don t send object if cache has up-to-date cached cache version indicatesdateof HTTP request msg cache: date If-modified-since: cached copy in HTTP request <date> to server If-modified-since: HTTP response <date> HTTP/1.1 304 Not Modified server: response contains no object if cached copy is upto-date: HTTP/1.1 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.1 200 OK <data> server object not modified object modified Application Layer (SSL) 35 Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-36 18

Electronic Mail Major components: user agents mail servers simple mail transfer protocol: SMTP User Agent a.k.a. mail reader composing, editing, reading mail messages e.g., Outlook, alpine, Mozilla Thunderbird, iphone mail client user agent mail server SMTP mail server SMTP SMTP outgoing message queue mail server user mailbox user agent user agent user agent user agent user agent Application Layer (SSL) 37 Electronic Mail: mail servers Mail Servers mailbox contains incoming messages for user message queue of outgoing mail (to be sent) mail messages SMTP protocol between mail servers to send email messages client : sender server : receiver Looks like it is the very first (hybrid) P2P system! server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent Application Layer (SSL) 38 19

Mail access protocols user agent SMTP SMTP Mail access protocol sender s mail server receiver s mail server SMTP: for delivery to receiver s server Mail access protocol: for retrieval from server POP: Post Office Protocol [RFC 1939] authorization (agent <-->server) and download user agent IMAP: Internet Mail Access Protocol [RFC 3501] more features (keeps user state across sessions) manipulation of stored msgs in folders on server Web email: use HTTP for both send and receive Application Layer (SSL) 39 Electronic Mail: SMTP uses TCP to reliably transfer email message from client to server, port 25 direct transfer: sending server to receiving server three phases of transfer handshaking (greeting) transfer of messages (persistent connection) closure command/response interaction commands: ASCII text response: status code and phrase messages must be in 7-bit ASCII Application Layer (SSL) 40 20

Sample smtp interaction (after TCP connection established) S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Application Layer (SSL) 41 Try SMTP interaction for yourself: telnet servername 25 see 220 reply from server enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send email without using email client (reader) Log on a UTCS linux machine. Then do telnet mailbox2.cs.utexas.edu 25 (opens TCP conn.) Application Layer (SSL) 42 21

Mail message format SMTP (rfc 5321): protocol for exchanging email msgs rfc 5322: standard for text message format: header lines, e.g., To: From: Subject: different from SMTP commands and responses body the message, ASCII characters only header body blank line Application Layer (SSL) 43 Message format: multimedia extensions Multipurpose Internet Mail Extensions (MIME) additional lines in msg header declare media content types (also multipart content types) MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data Application Layer (SSL) 44 22

Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-45 DNS: Domain Name System People: many identifiers: SSN, name, passport # Internet hosts, routers: IP address (32 bit) - used for addressing datagrams name, e.g., www.yahoo.com - used by humans Required: map between name and IP addresses Domain Name System: distributed database implemented as a hierarchy of many name servers application-layer protocol used to resolve names (address/name translation) note: core Internet function, implemented as applicationlayer protocol complexity at network s edge Application Layer (SSL) 46 23

DNS DNS services Hostname to IP address translation Host alias Canonical and alias names Mail server alias Load distribution Replicated Web server: a set of IP addresses for one canonical host name Why not centralized DNS? single point of failure traffic volume distant centralized database maintenance/update doesn t scale! Application Layer (SSL) 47 Distributed, Hierarchical Database Root DNS Servers Top-level domains.com DNS servers.org DNS servers.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS servers DNS servers Client wants IP address for www.amazon.com: 1 st approx: Client queries a root server to find.com DNS server Client queries.com DNS server to get amazon.com DNS server Client queries amazon.com DNS server to get IP address for www.amazon.com Application Layer (SSL) 48 24

DNS: root name servers c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 e. NASA Mt View, CA other sites ) f. Internet Software C. Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) 13 root name servers worldwide m. WIDE Tokyo (5 other sites) Application Layer (SSL) 49 TLD and Authoritative Servers Top-level domain (TLD) servers: responsible for.com,.org,.net,.edu,, and all top-level country domains.uk,.fr,.ca,.jp Verisign maintains servers for.com TLD Educause for.edu TLD Authoritative DNS servers: organization s DNS servers, providing authoritative hostname-to-ip mappings for organization s named hosts (e.g., Web and mail). Can be locally maintained by organization or a service provider Application Layer (SSL) 50 25

Local Name Server does not strictly belong to hierarchy each hisp( (residential lisp, company, university) has one. also called default name server when host makes DNS query, query is sent to its local DNS server which h acts as proxy, forwards query into hierarchy Application Layer (SSL) 51 DNS name resolution example Host at cis.poly.edu wants IP address for gaia.cs.umass.edu It sends a recursive query to local DNS server iterated query: contacted server replies with name of server to contact I don t know this name, but ask this other server 2 local DNS server dns.poly.edu 1 8 requesting host cis.poly.edu root DNS server 3 TLD DNS server 4 5 7 6 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu Application Layer (SSL) 52 26

DNS: caching when (any) name server learns mapping, it caches mapping cached entries timeout (disappear) after some time (e.g., 2 days) TLD servers typically cached in local name servers -Thus root name servers not often visited cached entries may be out-of-date (best effort service) if host changed IP address, this may not be known Internet-wide until all TTLs expire Application Layer (SSL) 53 DNS records DNS: distributed db storing resource records (RR) RR format: (name, value, type, ttl) Type=A name is hostname value is IP address Type=NS name is domain (e.g. foo.com) value is hostname of authoritative name server for this domain Type=CNAME name is alias name for some canonical (the real) name e.g., www.ibm.com is really servereast.backup2.ibm.com value is canonical name Type=MX value is host name of mail server associated with name Application Layer (SSL) 54 27

DNS protocol messages DNS protocol : query and reply messages, both with same message format msg header identification: 16 bit # for query, reply to query uses same # flags: query or reply recursion desired recursion available reply is authoritative Application Layer (SSL) 55 DNS protocol messages (cont.) Name, type fields for a query RRs in response to query records for authoritative servers additional helpful info that may be used Application Layer (SSL) 56 28

Inserting records into DNS Example: just created startup Network Utopia Register name networkutopia.com at a registrar (e.g., Network Solutions) Need to provide registrar with names and IP addresses of your authoritative name servers (primary and secondary) Registrar inserts NS and A resource records for each authoritative server into.com TLD servers: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) Put into authoritative servers, CNAME record for www.networkutopia.com, MX record for networkutopia.com, and How do people get the IP address of your Web site? Application Layer (SSL) 57 Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-58 29

P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses peer-peer Hybrid deployment examples: File distribution, e.g., BitTorrent (has trackers) Internet telephony, e.g., original Skype (had super peers), Application Layer (SSL) 59 File Distribution: Client-Server vs P2P Question : How much time to distribute a file from one server to N peers? u s server upload capacity (bps) Server u i peer i upload u s u 1 d 1 u 2 d2 capacity (bps) d i peer i download capacity (bps) File, size F d N u N Network (with abundant bandwidth) Application Layer (SSL) 60 30

Time to distribute file to N users : Client-Server server sequentially sends N copies: Server F NF/u u d s time 1 1 u d s 2 client i takes F/d i time to download d N u N u 2 Network (with abundant bandwidth) Time to distribute F to N clients is (lower bound) T cs max { NF/u s, F/min(d i ) } i When N is large, min(d i ) > u s /N i Application Layer (SSL) 61 Time to distribute file to N users: P2P server must send one Server copy: F/u s time F u d u 1 1 2 client i takes F/d u d i time to s 2 download NF bits must be uploaded (aggregate) fastest possible upload rate: u s + Σ 1 i N-1 u i d N u N Network (with abundant bandwidth) T P2P max { F/u s, F/min(d i ), NF/(u s + Σu i ) } i Largest value as N u s > (u s + Σu i )/N and, for large N, min(d i ) > (u s + Σu i )/N i Application Layer (SSL) 62 31

Client-server vs. P2P: example Client upload rate = u for all i, F/u = 1 min., u s = 10u, d min u 3.5 Minimum Distribution Tim me 3 2.5 2 1.5 1 05 0.5 P2P Client-Server NF / u = NF /(10 u) s = N /10 min. as N 2 servers N 1 NF /( u + u ) = F / u = 1 min. s i= 1 i 0 0 5 10 15 20 25 30 35 What if more than 1 server? I.e., a data center Application Layer (SSL) 63 N Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP 2.7 socket 24DN 2.4 DNS programming with UDP and TCP Application Layer 2-64 32

Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out of door it relies on transport infrastructure on other side of door which delivers message to socket at receiving process host or server process socket TCP with buffers, variables controlled by OS controlled by app developer Internet host or server process socket TCP with buffers, variables Application Layer (SSL) 65 Socket programming Goal: learn how to write client and server programs which communicate by sending data into sockets, reading data out of sockets Socket API introduced in BSD4.1 UNIX, 1981 sockets are explicitly created, used, then released by applications client/server paradigm API: choice of a transport protocol and ability to specify a few parameters reliable byte stream unreliable datagram Application Layer (SSL) 66 33

Socket programming with TCP Before client contact: server process must first be running server must have created socket (door) that welcomes client s contact Client contacts server by: creating client-local TCP socket specifying IP address, port number of server process When client makes connect call: client TCP establishes connection to server TCP When contacted by client, server TCP creates a new connection socket for server process to communicate with client allows server to talk with multiple clients source IP address and port number used to distinguish clients (more in Chap 3) application viewpoint TCP provides reliable, in-order transfer of byte stream between client and server Application Layer (SSL) 67 Socket API for TCP (BSD Unix) Client side socket(), returns client socket id connect(), need to specify server IP address and port, sends conn req send(), sends to client socket recv(), receives from client socket close(), closes connection note: OS supplies local IP address and port for client Server side socket(), returns server socket id bind(), binds server socket to server IP address and port listen(), willing to accept conn req on server socket accept(), accepts new conn req and returns its connection socket id recv(), receives from connection socket send(), sends to connection socket close(), closes connection Application Layer (SSL) 68 34

Client/server socket interaction: TCP server (running on hostid) create socket: port=x serversocket = socket() serversocket.bind() serversocket.listen() wait for incoming connection request connectionsocket = serversocket.accept() TCP connection setup client create socket: clientsocket = socket() connect to hostid, port=x recv request from connectionsocket t send request using clientsocket send reply to connectionsocket close connectionsocket Note: syntax is neither complete nor precise recv reply from clientsocket close clientsocket Application Layer 69 Socket programming with UDP UDP: no connection between client and server no handshaking sender explicitly attaches IP address and port of destination to every packet server must extract IP address, port of sender from every received packet UDP: transmitted data may be received out of order, or lost application viewpoint UDP provides unreliable transfer of groups of bytes ( datagrams ) between client and server Application Layer (SSL) 70 35

Socket API for UDP (BSD Unix) Client side Server side socket(), returns client socket(), returns server socket id socket id sendto(), sends to client bind(), binds server socket, need to specify socket to server IP destination s IP address and address and port port recvfrom(), receives recvfrom(), receives from from server socket: client socket: data and data and sender s IP sender s IP address and port address and port sendto(), sends to bind(), optional server socket, need to specify destination s IP note: needs timeout address and port management; OS supplies local IP address and port for client if bind() not used Application Layer (SSL) 71 Client/server socket interaction: UDP server (running on serverip) create socket: port= x serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind() recv datagram with client s address from serversocket send reply pywith client s address to serversocket client create socket: clientsocket = socket(af_inet, SOCK_DGRAM) create datagram with server IP address and port=x; send datagram to clientsocket recv datagram with server s address from clientsocket close clientsocket Note: syntax is neither complete nor precise Application Layer 72 36

Chapter 2: outline 2.1 principles of 2.5 P2P applications network 26 2.6 video streaming applications and content 2.2 Web and HTTP distribution 2.3 electronic mail networks (CDNs) SMTP, POP3, IMAP 2.7 socket 24DNS 2.4 programming with UDP and TCP Application Layer 2-73 Video Streaming and CDNs: context video traffic: major consumer of Internet bandwidth Netflix, YouTube: 37%, 16% of downstream residential ISP traffic in 2015 ~1B YouTube users, ~75M Netflix users challenge: scale ~1B users? single mega-video server won t work challenge: heterogeneity different users have different capabilities and bandwidths (e.g., wired versus mobile) solution: distributed, application-level infrastructure Application Layer 2-74 37

Multimedia: video CBR: (constant bit rate): video encoding rate fixed spatial coding example: instead of sending N values of same color (all purple), send only two values: color value (purple) and number of repeated values (N).... VBR: (variable bit rate): video encoding rate changes as amount of spatial, temporal coding changes examples: MPEG-1 (CD-ROM) 1.5 Mbps MPEG-2 (DVD) 3-6 Mbps MPEG-4 (often used in Internet < 1 Mbps) frame i temporal coding example: instead of sending complete frame at i+1, send only differences from frame i frame i+1 Application Layer 2-75 Streaming stored video: simple scenario: video server (stored video) Internet client Video can be compressed to essentially any bit rate by trading image quality E.g., Internet video from 100Kbps for low quality to over 3 Mbps for high-definition movies Application Layer 2-76 38

Streaming multimedia: DASH Dynamic, Adaptive Streaming over HTTP server: divides video file into multiple chunks chunks stored, encoded at different rates manifest file: provides URLs for different chunks client: periodically measures server-to-client bandwidth consulting manifest, requests one chunk at a time chooses maximum coding rate sustainable at current bandwidth can choose different coding rates at different points in time Application Layer 2-77 Streaming multimedia: DASH (cont.) intelligence at client: client determines when to request chunk -so that t buffer starvation, or overflow does not occur what encoding rate to request - higher quality when more bandwidth available where to request chunk may ypossibly request from another server that has higher available bandwidth (less congested path) [actually client will need help from CDN] Application Layer 2-78 39

Content distribution networks challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? option 1: single, large mega-server single point of failure point of network congestion long path to distant clients multiple copies of same video sent over outgoing links.this solution doesn t scale Application Layer 2-79 Content distribution networks option 2: third-party CDN multiple copies of videos at geographically distributed, store/serve sites: enter deep: place CDN servers deep into many access networks close to users e.g., used by Akamai, 1700 locations bring home: smaller number (10 s) of larger clusters in IXPs/POPs near (but not within) access networks e.g., used by Limelight option 3: private CDN, e.g., Google and NetFlix use both enter-deep and bring-home servers Application Layer 2-80 40

CDN content access: DNS redirect Bob (client) requests video http://video.netcinema.com/6y7b23v video stored in KingCDN.com 1. Bob clicks on URL for video 1 http://video.netcinema.com/6y7b23v on netcinema.com web page netcinema.com netcinema s authoratative DNS 6. request video from KINGCDN server, streamed via HTTP 3. netcinema s DNS returns hostname 1105.KingCDN.com 4 3 KingCDN.com 2 5 2. Client resolves video.netcinema.com via local DNS Bob s local DNS server KingCDN authoritative DNS 4&5. Local DNS resolves 1105.KingCDN.com from KingCDN s authoritative DNS, which returns the IP address of a KingCDN server Bob s client then establishes a direct TCP connection with the KingCDN server and issues an HTTP GET request for video Application Layer 2-81 Cluster selection strategy (proprietary) copies of content stored at CDN servers subscriber requests content from CDN directed d to nearby copy, retrieves content t may choose different copy if network path is congested where s Madmen? manifest file Application Layer 2-82 41

Case study: Netflix Netflix registration, accounting servers 1 1. Bob manages Netflix account 2. Bob browses Netflix video 2 Amazon cloud 3. Manifest file returned for requested video 3 upload copies of multiple versions of video to CDN servers CDN server Netflix CDN server CDN server 4. DASH streaming Application Layer 2-83 End of Chapter 2 Application Layer (SSL) 84 42