Question? Leave a message!

Network Services and Applications

Network Services and Applications
Dr.GriffinWood Profile Pic
Dr.GriffinWood,United Kingdom,Teacher
Published Date:23-07-2017
Website URL
Network Services and Applications EECS 489 Computer Networks Z. Morley Mao Wednesday Jan 17, 2007 1 Mao W07 Acknowledgement: Some slides taken from Kurose&Ross and Katz&Stoicaƒ Adminstrivia Homework 1 was assigned, due 1/23 - To be completed individually 2 Mao W07ƒƒ ƒ Principles of network applications Our goals: learn about protocols by examining popular conceptual, application-level implementation protocols aspects of network application protocols - HTTP - FTP - transport-layer - SMTP / POP3 / IMAP service models - DNS - client-server paradigm programming network applications - peer-to-peer paradigm - socket API 3 Mao W07ƒƒƒ ƒƒƒƒƒƒƒ Some network apps E-mail Internet telephone Web Real-time video conference Instant messaging Massive parallel Remote login computing P2P file sharing Multi-user network games Streaming stored video clips What’s your favorite network application? 4 Mao W07ƒƒ Creating a network application application Write programs that transport network - run on different end data link physical systems and - communicate over a network. - e.g., Web: Web server software communicates with browser software No software written application application for devices in network transport transport network core network data link data link physical physical - Network core devices do not function at app layer - This design allows for rapid app development 5 Mao W07ƒƒƒ Application architectures Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P What is the key difference? 6 Mao W07Client-server architecture server: - always-on host - permanent IP address - server farms for scaling • Question: how do server farms still maintain a single IP address externally? clients: - communicate with server - may be intermittently connected - may have dynamic IP addresses - do not communicate directly with each other 7 Mao W07ƒƒƒƒ Pure P2P architecture no always on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses example: Gnutella Highly scalable Why? But difficult to manage 8 Mao W07Hybrid of client-server and P2P Napster - File transfer P2P - File search centralized: • Peers register content at central server • Peers query same central server to locate content Instant messaging - Chatting between two users is P2P - Presence detection/location centralized: • User registers its IP address with central server when it comes online • User contacts central server to find IP addresses of buddies 9 Mao W07ƒ ƒƒ Processes communicating Client process: process Process: program running that initiates within a host. communication within same host, two Server process: process processes communicate that waits to be using inter-process contacted communication (defined Q: does it have to have a fixed by OS). port? processes in different Note: applications with hosts communicate by P2P architectures have exchanging messages client processes & server processes 10 Mao W07ƒƒ ƒ Sockets host or host or process sends/receives server server messages to/from its socket controlled by app developer process socket analogous to door process - sending process shoves socket socket message out of door TCP with TCP with Internet buffers, - sending process relies on buffers, variables variables transport infrastructure on other side of door which brings message to socket at controlled receiving process by OS API: (1) choice of transport protocol; (2) ability to fix a few parameters 11 Mao W07ƒƒƒ ƒƒ Addressing processes For a process to Identifier includes receive messages, it both the IP address must have an and port numbers identifier associated with the A host has a unique process on the host. 32-bit IP address Example port Q: does the IP numbers: address of the host on - HTTP server: 80 which the process - Mail server: 25 runs suffice for identifying the process? Have you heard of “port knocking”? 12 Mao W07ƒƒƒƒ ƒƒƒƒ Application-layer protocol defines Types of messages Public-domain exchanged, e.g., protocols: request & response defined in RFCs messages allows for Syntax of message types: what fields in interoperability messages & how - eg, HTTP, SMTP fields are delineated Proprietary protocols: Semantics of the - eg, KaZaA fields, i.e., meaning of information in fields Rules for when and how processes send & respond to messages What’s the advantage/disadvantage of proprietary protocols? 13 Mao W07ƒƒ ƒ ƒƒ What transport service does an app need? Data loss Bandwidth some apps (e.g., audio) can some apps (e.g., tolerate some loss multimedia) require minimum amount of other apps (e.g., file bandwidth to be transfer, telnet) require “effective” 100% reliable data transfer other apps (“elastic apps”) make use of Timing whatever bandwidth they some apps (e.g., get Internet telephony, interactive games) require low delay to be “effective” 14 Mao W07Transport service requirements of common apps Time Sensitive Application Bandwidth Data loss no file transfer elastic no loss no e-mail ? ? no Web documents ? ? yes, 100’s msec real-time audio/video audio: 5kbps-1Mbps loss-tolerant video:10kbps-5Mbps yes, few secs stored audio/video same as above ? yes, 100’s msec interactive games few kbps up ? yes and no instant messaging ? elastic 15 Mao W07ƒƒ ƒƒƒƒƒ Internet transport protocol services UDP service: TCP service: unreliable data transfer connection-oriented: setup between sending and required between client and server processes receiving process reliable transport between does not provide: sending and receiving connection setup, reliability, process flow control, congestion flow control: sender won’t control, timing, or overwhelm receiver bandwidth guarantee congestion control: throttle sender when network Q: why bother? Why is there a overloaded UDP? does not provide: timing, minimum bandwidth guarantees What other properties are desirable? What combination of properties are desirable? 16 Mao W07Internet apps: application, transport protocols Application Underlying Application layer protocol transport protocol e-mail SMTP RFC 2821 TCP remote terminal access Telnet RFC 854 ? Web HTTP RFC 2616 ? file transfer FTP RFC 959 TCP streaming multimedia proprietary ? (e.g. RealNetworks) Internet telephony proprietary (e.g., Dialpad) ? 17 Mao W07ƒƒƒƒƒ Web and HTTP First some jargon Web page consists of objects Object can be HTML file, JPEG image, Java applet, audio file,… Web page consists of base HTML-file which includes several referenced objects Each object is addressable by a URL Example URL: host name path name Have you heard of “PageRank”? 18 Mao W07ƒƒƒƒ HTTP request HTTP response HTTP overview HTTP: hypertext transfer protocol Web’s application layer PC running protocol Explorer client/server model - client: browser that requests, receives, “displays” Web objects Server running - server: Web server Apache Web sends objects in server response to requests HTTP 1.0: RFC 1945 Mac running HTTP 1.1: RFC 2068 Navigator 19 Mao W07 HTTP request H TP r s o s T e p n eƒ ƒƒ ƒƒƒƒ HTTP overview (continued) HTTP is “stateless” Uses TCP: server maintains no client initiates TCP information about connection (creates socket) past client requests to server, port 80 server accepts TCP aside connection from client Protocols that maintain “state” are HTTP messages complex (application-layer protocol past history (state) must be messages) exchanged maintained between browser (HTTP if server/client crashes, their client) and Web server views of “state” may be (HTTP server) inconsistent, must be reconciled TCP connection closed Is it better to have a stateful protocol? 20 Mao W07