


























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of various application layer protocols, including smtp, pop3, imap, http, ftp, electronic mail, dns, and p2p file sharing. It covers their principles, architectures, requirements, and specific applications. The document also discusses the differences between client-server and peer-to-peer paradigms and examines popular application-level protocols such as http, smtp, and dns.
Typology: Study notes
1 / 34
This page cannot be seen from the preview
Don't miss anything!



























2: Application Layer 1
Computer Networking: A Top Down Approach Featuring the Internet, 3 rd^ edition. Jim Kurose, Keith Ross Addison-Wesley, July
2: Application Layer 2
2: Application Layer 3
peer-to-peer paradigm
2: Application Layer 4
2: Application Layer 7
2: Application Layer 8
always-on host permanent IP address server farms for scaling
communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other
2: Application Layer 9
2: Application Layer 10
Internet telephony app Finding address of remote party: centralized server(s) Client-client connection is direct (not through server)
Chatting between two users is P2P Presence detection/location centralized:
2: Application Layer 13 Addressing processes
2: Application Layer 14 Addressing processes
Answer: NO, many processes can be running on same host
HTTP server: 80 Mail server: 25
IP address: 128.119.245. Port number: 80
2: Application Layer 15
e.g., request, response
what fields in messages & how fields are delineated
meaning of information in fields
2: Application Layer 16
2: Application Layer 19
Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietary (e.g. RealNetworks) proprietary (e.g., Vonage,Dialpad) Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP 2: Application Layer 20
app architectures app requirements
2: Application Layer 21
2: Application Layer 22
❒ 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 ❒ HTTP 1.0: RFC 1945 ❒ HTTP 1.1: RFC 2068 PC running Explorer Server running Apache Web server Mac running Safari HTTP request HTTP request HTTP response HTTP response
2: Application Layer 25 Nonpersistent HTTP
www.someSchool.edu/someDepartment/home.index 1a. HTTP client initiates TCP connection to HTTP server (process) at www.someSchool.edu on port 80
(contains text, references to 10 jpeg images) 2: Application Layer 26 Nonpersistent HTTP (cont.)
HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects
Steps 1-5 repeated for each of 10 jpeg objects 4. HTTP server closes TCP connection.
2: Application Layer 27 Non-Persistent HTTP: Response time
time to transmit file initiate TCP connection RTT request file RTT file received time time 2: Application Layer 28 Persistent HTTP Nonpersistent HTTP issues: ❒ requires 2 RTTs per object ❒ OS overhead for each TCP connection ❒ browsers often open parallel TCP connections to fetch referenced objects Persistent HTTP ❒ server leaves connection open after sending response ❒ subsequent HTTP messages between same client/server sent over open connection Persistent without pipelining: ❒ client issues new request only when previous response has been received ❒ one RTT for each referenced object Persistent with pipelining: ❒ default in HTTP/1. ❒ client sends requests as soon as it encounters a referenced object ❒ as little as one RTT for all the referenced objects
2: Application Layer 31
2: Application Layer 32
❒ transfer file to/from remote host ❒ client/server model client: side that initiates transfer (either to/from remote) server: remote host ❒ ftp: RFC 959 ❒ ftp server: port 21 file transfer (^) FTP server FTP user interface FTP client local file system remote file system user at host
2: Application Layer 33 FTP: separate control, data connections ❒ FTP client contacts FTP server at port 21, specifying TCP as transport protocol ❒ Client obtains authorization over control connection ❒ Client browses remote directory by sending commands over control connection. ❒ When server receives file transfer command, server opens 2 nd^ TCP connection (for file) to client ❒ After transferring one file, server closes data connection.
client
server TCP control connection port 21 TCP data connection port 20 ❒ Server opens another TCP data connection to transfer another file. ❒ Control connection: “out of band” ❒ FTP server maintains “state”: current directory, earlier authentication 2: Application Layer 34 FTP commands, responses
❒ sent as ASCII text over control channel ❒ USER username ❒ PASS password ❒ LIST return list of file in current directory ❒ RETR filename retrieves (gets) file ❒ STOR filename stores (puts) file onto remote host
❒ status code and phrase (as in HTTP) ❒ 331 Username OK, password required ❒ 125 data connection already open; transfer starting ❒ 425 Can’t open data connection ❒ 452 Error writing file
2: Application Layer 37 Electronic Mail: mail servers
❒ mailbox contains incoming messages for user ❒ message queue of outgoing (to be sent) mail messages ❒ SMTP protocol between mail servers to send email messages client: sending mail server “server”: receiving mail server mail server user agent user agent user agent mail server user agent user agent mail server user agent
2: Application Layer 38 Electronic Mail: SMTP [RFC 2821] ❒ 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 closure ❒ command/response interaction commands: ASCII text response: status code and phrase
2: Application Layer 39
❒ SMTP uses persistent connections ❒ SMTP requires message (header & body) to be in 7- bit ASCII ❒ SMTP server uses CRLF.CRLF to determine end of message
❒ HTTP: pull ❒ SMTP: push ❒ both have ASCII command/response interaction, status codes ❒ HTTP: each object encapsulated in its own response msg ❒ SMTP: multiple objects sent in multipart msg