Application Layer e- web instant messaging remote login P2P file sharing multi- network games streaming stored video (YouTube) voice over IP real-time video conferencing cloud computing Creating a network app Write programs that run on end systems communicate over network e.g., web - browser No need to write software for network-core devices application transport network data link physical application transport network data link physical application transport network data link physical Application 2-1 Application 2-2 Client- architecture Pure P2P architecture / : always-on permanent IP address farms for scaling s: communicate with not always connected dynamic IP addresses do not communicate directly with each other no always-on end systems directly communicate peer-peer peers are not always connected and change IP addresses Application 2-3 Application 2-4 Hybrid of - and P2P Skype voice-over-ip P2P application : finding address of remote party - speech: direct Processes communicating process: program running within a host. processes communicate by exchanging messages process: process that initiates communication process: process that waits to be contacted Application 2-5 Application 2-6 1
Sockets Addressing processes process sends/receives messages to/from its socket socket analogous to door host or process socket Transport layer controlled by app developer Internet host or process socket Transport layer a process must have an identifier host has unique IP address identifier includes both IP address and port number example port numbers: HTTP : 80 Mail : 25 controlled by OS Application 2-7 Application 2-8 App-layer protocol defines types of messages e.g., request, response message syntax: what fields in messages message semantics meaning of information in fields rules for when and how processes send & respond to messages public-domain protocols: defined in RFCs e.g., HTTP, proprietary protocols: e.g., Skype What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer) require 100% reliable data transfer Timing some apps (e.g., Internet telephony, games) require low delay Throughput some apps (e.g., multimedia) require minimum throughput to work other apps ( elastic apps ) make use of whatever throughput they get Application 2-9 Application 2-10 Internet transport protocols services Web and HTTP TCP service: connection-oriented: setup required between and processes reliable transport flow control congestion control does not provide: timing, minimum throughput guarantees UDP service: unreliable data transfer between sending and receiving process web page consists of objects object can be HTML file, JPEG image, audio file, web page: base HTML-file + referenced objects each object has a URL example URL: www.someschool.edu/somedept/pic.gif host name path name Application 2-11 Application 2-12 2
HTTP overview HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol / model : browser : Web PC running Explorer Mac running Chrome Server running Web Uses TCP: initiates TCP connection to accepts TCP connection from HTTP messages exchanged between browser and Web TCP connection closed HTTP is stateless maintains no information about past requests protocols that maintain state are complex! past history (state) must be maintained if / crashes, their views of state may be inconsistent Application 2-13 Application 2-14 HTTP connections HTTP request message non-persistent HTTP one object sent over TCP connection. persistent HTTP multiple objects can be sent over single TCP connection two types of HTTP messages: request, response HTTP request message: request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines carriage return character line-feed character GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n Application 2-15 Application 2-16 HTTP response message status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso-8859-1\r\n \r\n data data data data data... HTTP response status codes status code in 1st line in -> response some sample codes: 200 OK request succeeded, requested object later in this msg 301 Moved Permanently requested object moved, new location specified later in this msg (Location:) 400 Bad Request request msg not understood by 404 Not Found requested document not found on this 505 HTTP Version Not Supported Application 2-17 Application 2-18 3
User- state: cookies many Web sites use cookies four components: 1) cookie header line of HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on s host, managed by s browser 4) back-end database at Web site example: Susan always access Internet from PC visits specific e- commerce site for first time when initial HTTP requests arrives at site, site creates: unique ID entry in backend database for ID Cookies: keeping state (cont.) ebay 8734 cookie file ebay 8734 amazon 1678 one week later: ebay 8734 amazon 1678 usual http request msg usual http response Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg Amazon creates ID 1678 for create entry cookiespecific action access backend database Application 2-19 Application 2-20 Web caches (proxy ) More about Web caching Goal: satisfy request without involving origin sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns object else cache requests object from origin, then returns object to Proxy origin origin cache is and typically cache is installed by ISP (university, company, residential ISP) why Web caching? reduce response time for request reduce traffic on an institution s access link Application 2-21 Application 2-22 Conditional GET : the file transfer protocol Goal: don t send object if cache has up-to-date cached version cache: specify date of cached copy in HTTP request : response contains no object if cached copy is up-to-date: cache HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> object not modified before <date> object modified after <date> at host interface local file system file transfer transfer file to/from remote host ftp: RFC 959 ftp : port 21 remote file system Application 2-23 Application 2-24 4
: separate control, data connections contacts at port 21, TCP is transport protocol authorized over control connection browses remote directory by sending commands over control connection. when receives file transfer command, opens 2 nd TCP connection (for file) to after transferring one file, closes data connection. TCP control connection, port 21 TCP data connection, port 20 opens another TCP data connection to transfer another file. maintains state : current directory, earlier authentication Application 2-25 Electronic Mail Three major components: s s simple transfer protocol: User Agent reader composing, editing, reading messages e.g., Outlook, Mozilla Thunderbird, iphone outgoing, incoming messages stored on outgoing message queue box Application 2-26 Electronic Mail: s Electronic Mail: [RFC 2821] Mail Servers box contains incoming messages for message queue of outgoing (to be sent) messages protocol between s to send e messages uses TCP to reliably transfer e message from to, port 25 direct transfer: sending to receiving three phases of transfer handshaking (greeting) transfer of messages closure Application 2-27 Application 2-28 Mail message format Mail access protocols : protocol for exchanging e msgs RFC 822: standard for text message format: header lines, e.g., To: From: Subject: body the message header body blank line access protocol sender s receiver s : delivery/storage to receiver s access protocol: retrieval from POP: Post Office Protocol authorization and download IMAP: Internet Mail Access Protocol more features manipulation of stored msgs on HTTP: g, Hot, Yahoo! Mail, etc. Application 2-29 Application 2-30 5
DNS DNS services hostname to IP address translation load distribution replicated Web s: set of IP addresses for one canonical name Why not centralize DNS? single point of failure traffic volume distant centralized database maintenance doesn t scale! Distributed, Hierarchical Database Root DNS Servers com DNS s org DNS s edu DNS s yahoo.com DNS s amazon.com DNS s pbs.org DNS s poly.edu umass.edu DNS s DNS s wants IP for www.amazon.com; 1 st approx: queries a root to find com DNS queries com DNS to get amazon.com DNS queries amazon.com DNS to get IP address for www.amazon.com Application 2-31 Application 2-32 DNS: Root name s TLD and Authoritative Servers a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) 13 root name s worldwide Top-level domain (TLD) s: responsible for com, org, net, edu etc. and country domains, e.g.: se, uk, fr, ca Authoritative DNS s: organization s DNS s, hostname to IP mappings for organization s s maintained by organization or service provider Application 2-33 Application 2-34 DNS name resolution example host wants IP address for eit.lth.se local DNS 1 2 8 requesting host root DNS 3 4 5 7 TLD DNS 6 authoritative DNS DNS name resolution example recursive query: puts burden of name resolution on contacted name local DNS 1 2 8 requesting host root DNS 7 6 5 3 4 authoritative DNS TLD DNS Application 2-35 Application 2-36 6
Minimum Distribution Time DNS: caching and updating records DNS s learn mapping, it caches mapping cache entries timeout after some time TLD s typically cached in local name s Thus root name s not often visited DNS protocol, messages DNS protocol : query and reply messages, both with same message format Header identification: 16 bit # for query, reply to query uses same # flags: query or reply recursion desired recursion available reply is authoritative Application 2-37 Application 2-38 Pure P2P architecture File Distribution: Server-Client vs P2P no always-on end systems directly communicate peers are not always connected and change IP addresses peer-peer Question : How much time to distribute file from one to N peers? File, size F Server u 1 d 1 u 2 u s d2 u s : upload bandwidth u i : peer i upload bandwidth d i : peer i download bandwidth d N u N Network (with abundant bandwidth) Application 2-39 Application 2-40 Server- vs. P2P: example 3.5 3 2.5 2 P2P Client-Server File distribution: BitTorrent P2P file distribution tracker: tracks peers participating in torrent torrent: group of peers exchanging chunks of a file 1.5 1 0.5 0 0 5 10 15 20 25 30 35 N obtain list of peers peer trading chunks Application 2-41 Application 2-42 7
BitTorrent file divided into 256KB chunks. peer joining torrent: has no chunks, but will accumulate them over time registers with tracker to get list of peers, connects to subset of peers ( neighbors ) while downloading, peer uploads chunks to other peers. peers may come and go once peer has entire file, it may (selfishly) leave or (altruistically) remain BitTorrent Pulling Chunks at any given time, different peers have different subsets of file chunks periodically, a peer (Alice) asks each neighbor for list of chunks that they have. Alice sends requests for her missing chunks rarest first Sending Chunks: tit-for-tat Alice sends chunks to four neighbors currently sending her chunks at the highest rate re-evaluate top 4 every 10 secs every 30 secs: randomly select another peer, starts sending chunks newly chosen peer may join top 4 Application 2-43 Application 2-44 P2P example: Skype pairs of s communicate proprietary application-layer protocol hierarchical overlay with SNs Index maps names to IP addresses; distributed over SNs Skype login Skype s (SC) Supernode (SN) Application 2-45 8