Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Ch 2. Application Layer Myungchul Kim [email protected] Principles of application-layer protocols Distributed among two or more end systems – – – Networking applications have application-layer protocols that define the format and order of the messages exchanged between processes, as well as define the actions taken on the transmission or receipt of a message – – Browser (client) – server Processes How processes running on different end systems communicate vs interprocess communication Web: a network application Web application = document formats, browsers, servers, and an application protocol HTTP An application-layer protocol defines: – – – – Types of messages exchanged Syntax of the various message types Semantics of the fields Rules for determining when and how a process sends messages and responds to messages. 2 The host that initiates the session is labeled the client. Fig 2.2 3 Socket – – – Addressing processes – – – A process’s socket can be thought of as the process’s door. API (application programmers’ interface) Application developer has (1) the choice of transport protocols and (2) the ability to fix a few transport-layer parameters such as max buffer and max segment sizes. To identify a process: (1) the name or address of the host and (2) an identifier that specifies the process in the host. IP address globally uniquely identifies the network interface. Destination port number: a web server process with port number 80, a mail server process with port number 25, etc. User agents – – An interface between the user and the network application. The browser also implements the client side of the HTTP protocols. 4 An application’s service requirements – – – – Reliable data transfer: loss-tolerant applications? Bandwidth: bandwidth-sensitive application vs elastic applications Timing: end-to-end delays Fig 2.4 5 Services provided by the Internet Transport Protocols – TCP services – – – – – – – UDP, TCP Connection-oriented service: handshaking procedure, a TCP connection, a full-duplex Reliable transport service: without error and in the proper order Congestion-control mechanisms Real-time applications usually run over UDP rather than TCP TCP does not guarantee a min transmission rate TCP does not provide any delay guarantee TCP guarantee delivery of all data. UDP services – – Lightweight transport protocol Connectionless, no handshaking, no guarantee, no congestion-control 6 – Fig 2.5 7 The Web and HTTP HTTP – – – – – A client and a server Web page: objects (an HTML file, a JPEG image, a Java Applet,…) TCP A stateless protocol: an HTTP server maintains no information about the clients. No relation with a Web page Nonpersistent connections – – – Only a single Web object is transferred over a TCP connection. Most browsers open five to ten parallel TCP connections. RTT (Round Trip Time) 8 – Fig 2.7 9 Persistent connections – – – Without pipelining and with pipelining Without pipelining: the client issues a new request only when the previous response has been received: one RTT HTTP/1.1: persistent connections with pipelining HTTP message format – – – – – ASCII text HTTP request message, response message Request line (GET, POST, HEAD) (pp. 94, 96) Header line Fig 2.8 10 File Transfer: FTP On TCP Out of band: A control connection and a data connection, cf. in-band for HTTP The FTP server must maintain state about the user. Fig 2.11 11 Electronic Mail components – – – User agents Mail servers (mailbox) Simple Mail Transfer Protocol (SMTP) On TCP Fig 2.13 12 Comparison with HTTP – – – – – HTTP: a pull protocol, SMTP: a push protocol SMTP: in seven-bit ASCII format HTTP encapsulates each object in its own HTTP response message. Internet mail places all of the message’s objects into one message. MIME extension for non-ASCII data: Content-Type and ContentTransfer-Encoding Content-Type: text, image, and application 13 Mail Access Protocols – – – A mail server is always on and always connected to the Internet? POP3, IMAP and HTTP Fig 2.14 14 DNS (Directory Service) Hostname -> IP address Domain Name System (DNS) – – – – – – – A distributed database in a hierarchy of name servers An application-layer protocol that allows host and name servers to communicate for the translation service. On UDP Host aliasing Mail server aliasing Load distribution: a set of IP addresses is associated with one canonical hostname. Gethostbyname() in UNIX The problems with a centralized design -> doesn’t scale – – – – A single point of failure Traffic volume Distant centralized database Maintenance 15 The DNS with a large number of name servers – – – Local name servers: configured by hand in a host Root name servers (pp. 126) \Authoritative name servers: each host is registered with an authoritative name server Recursive queries – Fig 2.17 16 Recursive and iterative queries – Fig 2.18 17 DNS caching DNS records – – – – – Resource record (name, value, type, TTL0 Type = A, NS, CNAME, and MX Fig 2.19 Flag: query or reply, authoritative, recursion, … How data gets into the database in the first place? 18