320 likes | 494 Views
1DT066 Distributed Information Systems Chapter 2 Applications. 2.1 principles of network applications 2.2 Web and HTTP 2.5 Domain Name Server 2.6 P2P applications. Applications: outline. e-mail web text messaging remote login P2P file sharing multi-user network games
E N D
2.1 principles of network applications 2.2 Web and HTTP 2.5 Domain Name Server 2.6 P2P applications Applications: outline Adapted from: Computer Networking, Kurose/Ross
e-mail web text messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube, Hulu, Netflix) voice over IP (e.g., Skype) real-time video conferencing social networking search … … Some network apps Adapted from: Computer Networking, Kurose/Ross
write programs that: run on (different) end systems communicate over networks e.g., web server software communicates with browser software no need to write software for network-core devices network-core devices do not run user applications applications on end systems allows for rapid app development, propagation Creating a network app application transport network data link physical application transport network data link physical application transport network data link physical Main reason for the success of Internet Adapted from: Computer Networking, Kurose/Ross, pp 109-110
process: runs a program within a host Operating System, OS. within same host, two processes communicate using inter-process communication (defined by OS) Processes on different hosts communicate by exchanging messages client process:process that initiates communication server process:process that waits to be contacted App processes communicating clients, servers Adapted from: Computer Networking, Kurose/Ross, pp 114-115
host machine/device has unique 32-bit IP address to receive messages, process must have identifier that is known to the sender Q: Why is not the IP address enough for identifying the process? identifierincludes both IP address and port numbers 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 Addressing processes • A: no, many processes can be running on same host Adapted from: Computer Networking, Kurose/Ross, pp 116
Application architectures Two dominating architecture/structures of applications: • client-server • peer-to-peer (P2P) Adapted from: Computer Networking, Kurose/Ross, pp 112-113
Client-server architecture server: • always-on host • permanent IP address (i.e. “ I know where you are”) • often at a data center for scaling capacity with demand client: • initiates the contact and communicates with server • may be intermittently connected • may have dynamic IP addresses. (Why not permanent?) • clients do not communicate directly with each other client/server Adapted from: Computer Networking, Kurose/Ross, pp 112-113
P2P architecture peer-peer • end systems (called peers) communicate directly • peers request service from other peers and provide services in return to the others • self scalability – new peers bring new service capacity, (as well as new service demands) • not always-on server. May be switched off and may change IP addresses • complex management. Why? Adapted from: Computer Networking, Kurose/Ross, pp 112-113
types of messages exchanged, e.g., request, response message syntax: different fields in messages, e.g. for application data and control information to other party message semantics meaning of information in control fields (not app data) rules for when and how processes send & respond to messages “open”/standard protocols: defined in RFCs allows for interoperability e.g., HTTP, SMTP “closed”/proprietary protocols: e.g., Skype App-layer protocol defines Adapted from: Computer Networking, Kurose/Ross, pp 117-122
data integrity (i.e. no lost or modified data) some apps (e.g., file transfer, web transactions) require 100% reliable data transfer other apps (e.g., audio) can tolerate some loss timing some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” What transport service does an app need? • throughput • some apps (e.g., multimedia) require minimum amount of throughput to be “effective” • other apps (“elastic apps”) make use of whatever throughput they get • security • encryption, data integrity, … Adapted from: Computer Networking, Kurose/Ross, pp 117-122
Transport service requirements: common apps application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games text messaging throughput elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic data loss no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss time sensitive no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no Adapted from: Computer Networking, Kurose/Ross, pp 117-122
www.someschool.edu/someDept/pic.gif pathname host name Web and HTTP Universal Resource Locator First, a review… • web page consists of objects • object can be HTML file, JPEG image, Java applet, audio file,… • web page consists of a base HTML-file which includes several referenced objects • each object is addressable by a URL, e.g., Adapted from: Computer Networking, Kurose/Ross, pp 122-125
HTTP: hypertext transfer protocol Web’s application layer protocol client/server model client: browser that requests, receives, (using HTTP protocol) and “displays” Web objects server: Web server sends (using HTTP protocol) objects in response to requests HTTP response HTTP response HTTP request HTTP request HTTP overview PC running Firefox browser server running Apache Web server iphone running Safari browser Adapted from: Computer Networking, Kurose/Ross, 126-129
Uses Internets (reliable) transport protocol, TCP: client initiates TCP connection to web server process, usually port 80. server accepts TCP connection from client HTTP messages are exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed HTTP is “stateless” HTTP protocol at server do not maintain any information about previous requests from client HTTP overview (continued) 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. • Why inconsistent? Application Layer Adapted from: Computer Networking, Kurose/Ross, pp 126-129
HTTP request message • two fundamental types of HTTP messages: request, response • Format of a HTTP request message: • Uses ASCII (human-readable format) carriage return character line-feed character request line (GET, POST, HEAD commands) 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 header lines carriage return, line feed at start of line indicates end of header lines Adapted from: Computer Networking, Kurose/Ross pp 126-129
~ ~ ~ ~ ~ ~ ~ ~ value value header field name header field name cr cr lf lf cr lf HTTP request message: general format request line sp sp version cr method URL lf header lines entity body Body == data Adapted from: Computer Networking, Kurose/Ross, pp 130-131
HTTP response message status line (protocol status code status phrase) 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 ... header lines data, e.g., requested HTML file Adapted from: Computer Networking, Kurose/Ross, pp 131-134
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 server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported HTTP response status codes • status code appears in 1st line in server-to-client response message. • some sample codes: Adapted from: Computer Networking, Kurose/Ross, pp 131-134
1. Telnet to your favorite Web server: Trying out HTTP (client side) for yourself opens TCP connection to port 80 (default HTTP server port) at cis.poly.edu. anything typed in sent to port 80 at cis.poly.edu telnet cis.poly.edu 80 • 2. type in a GET HTTP request: by typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server GET /~ross/ HTTP/1.1 Host: cis.poly.edu 3. look at response message sent by HTTP server! (or use Wireshark to look at captured HTTP request/response) Adapted from: Computer Networking, Kurose/Ross, pp 131-134
ebay 8734 usual http request msg Amazon server creates ID 1678 for user usual http response set-cookie: 1678 create entry ebay 8734 amazon 1678 ebay 8734 amazon 1678 usual http request msg cookie: 1678 access cookie- specific action usual http response msg usual http response msg access usual http request msg cookie: 1678 cookie- specific action Cookies: keeping “state” between requests client Amazon server cookie file backend database one week later: Adapted from: Computer Networking, Kurose/Ross, pp 134-136
what cookies can be used for: authorization shopping carts recommendations user session state (Web e-mail) Cookies (continued) aside • cookies and privacy: • cookies permit sites to learn a lot about you • you may supply name and e-mail to sites • how to keep “state”: • protocol endpoints: maintain state at sender/receiver over multiple transactions • cookies: http messages carry state Adapted from: Computer Networking, Kurose/Ross, pp 134-136
Q: how to map between IP address and host name, and vice versa ? Internet hosts, routers: IP address (32 bit) - used for addressing datagrams “name”, e.g., www.yahoo.com - used by humans Domain Name System: application-layer protocol: hosts, name servers communicate to resolvenames (address/name translation) Note: This is a core Internet function, implemented as application-layer protocol Again - complexity at network’s “edge” distributed database implemented in hierarchy of many name servers DNS: domain name system Adapted from: Computer Networking, Kurose/Ross, pp 156-158
It doesn’t scale? single point of failure traffic volume distant centralized database, long delay. maintenance DNS services hostname to IP address translation – demo! host aliasing canonical, alias names mail server aliasing load distribution replicated Web servers: many IP addresses correspond to one name. Why and when? why not centralize DNS DNS: services, structure Adapted from: Computer Networking, Kurose/Ross, pp 156-159
Root DNS Servers org DNS servers edu DNS servers com DNS servers poly.edu DNS servers umass.edu DNS servers pbs.org DNS servers yahoo.com DNS servers amazon.com DNS servers DNS: a distributed, hierarchical database … … client wants IP for www.amazon.com; 1st approx: • client queries Root DNS server, to get .com server • client queries .com DNS server to get the amazon.com DNS server • client queries amazon.com DNS server to get IP address for www.amazon.com Adapted from: Computer Networking, Kurose/Ross, pp 156-158
host at cis.poly.edu wants IP address for gaia.cs.umass.edu local DNS server dns.poly.edu DNS name resolution bottom up example root DNS server 2 3 TLD DNS server 4 5 • iterated query: • contacted server replies with name of server to contact • “I don’t know this name, but ask this server” 6 7 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu Adapted from: Computer Networking, Kurose/Ross, pp 160-163
Local DNS name server • does not strictly belong to hierarchy • each ISP (residential ISP, company, university) has one • also called “default name server” • when host makes DNS query, query is sent to its local DNS server • has local cache of recent name-to-address translation pairs (but may be out of date!) • acts as proxy, forwards query into hierarchy Adapted from: Computer Networking, Kurose/Ross, pp 162-163
once (any) name server learns mapping, it caches mapping cache entries timeout (disappear) after some time (TTL) root name servers not often visited cached entries may be out-of-date (best effort name-to-address translation!) if name host changes IP address, may not be known Internet-wide until all TTLs expire DNS: caching, updating records Adapted from: Computer Networking, Kurose/Ross, pp 162-163
Pure P2P architecture • no always-on server • arbitrary end systems communicate directly • peers are intermittently connected and may change IP addresses. Still participating. examples: • file distribution (BitTorrent) • Streaming (Spotify) • VoIP (Skype) Adapted from: Computer Networking, Kurose/Ross, pp 170-174
File distribution time: client-server • server transmission: mustsequentially send (upload) N filecopies: • time to send one copy: F/us • time to send N copies: NF/us F us di network ui • client: each client must download file copy • dmin = min client download rate • min client download time: F/dmin time to distribute F to N clients using client-server approach Dc-s > max{NF/us,,F/dmin} increases linearly in N Adapted from: Computer Networking, Kurose/Ross, pp 170-174
File distribution time: P2P server transmission: mustupload at least onecopy time to send one copy: F/us F us di • client: each client must download file copy • min client download time: F/dmin network ui • clients: as aggregate must download NF bits • max upload rate (limting max download rate) is us + Sui time to distribute F to N clients using P2P approach DP2P > max{F/us,,F/dmin,,NF/(us + Sui)} increases linearly in N … … but so does this, as each peer brings service capacity Adapted from: Computer Networking, Kurose/Ross, pp 170-174