1 / 23

ECE5650

ECE5650. FTP, Email, DNS, and P2P. Recap: HTTP and Web. HTTP request msg format and method types: GET, POST, HEAD, PUT, DELATE HTTP response msg format and status codes Cookies and their usage: Persistent vs Non-Persistent cookies Web cache or proxy server:

hastin
Télécharger la présentation

ECE5650

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE5650 FTP, Email, DNS, and P2P 2: Application Layer

  2. Recap: HTTP and Web • HTTP request msg format and method types: • GET, POST, HEAD, PUT, DELATE • HTTP response msg format and status codes • Cookies and their usage: • Persistent vs Non-Persistent cookies • Web cache or proxy server: • Conditional GET (If-modified-since:) in HTTP header 2: Application Layer

  3. 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P file sharing 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server Examples ofInternet Services 2: Application Layer

  4. 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 for control, port 20 for data FTP user interface FTP client FTP server local file system FTP: the file transfer protocol file transfer user at host remote file system 2: Application Layer

  5. All communication (login, control and data are secured) transfer file to/from remote host same as FTP client/server model network protocol designed by the IETF to provide secure file transfer and manipulation facilities over the secure shell (SSH) protocol. SFTP user interface SFTP client SFTP server local file system SFTP: secure file transfer protocol file transfer over SSH user at host remote file system 2: Application Layer

  6. 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 the persistent control connection. When server receives a command for a file transfer or directory listing, the server opens a TCP data connection to client After transferring one file, server closes connection. TCP control connection port 21 TCP data connection port 20 FTP client FTP server FTP: separate control, data connections • Server opens a second TCP data connection to transfer another file. • Control connection: “out of band” • HTTP sends control info in-band • FTP server maintains “state”: current directory, earlier authentication 2: Application Layer

  7. Sample commands: sent as ASCII text over control channel USER username PASS password LISTreturn list of file in current directory RETR (Get) filenameretrieves (gets) file STOR (Put) filenamestores (puts) file onto remote host Sample return codes 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 FTP commands, responses 2: Application Layer

  8. Access control commands: USER, PASS, ACT, CWD, CDUP, SMNT, REIN, QUIT. Transfer parameter commands: PORT, PASV, TYPE STRU, MODE. Service commands: RETR, STOR, STOU, APPE, ALLO, REST, RNFR, RNTO, ABOR, DELE, RMD, MRD, PWD, LIST, NLST, SITE, SYST, STAT, HELP, NOOP. www.faqs.org/rfcs/rfc959.html All FTP commands (RFC 959) 2: Application Layer

  9. FTP/SFTP is used to transfer files between hosts FTP is an out-of-band protocol: control is sent over server port 21 while data is sent over server port 20. Control connection is persistent and the FTP server must maintain the state of the user. Data connection is non-persistent and initiated by FTP server. FTP Summary 2: Application Layer

  10. Three major components: user agents mail servers simple mail transfer protocol: SMTP User Agent a.k.a. “mail reader” composing, editing, reading mail messages e.g., Eudora, Outlook, elm, Netscape Messenger outgoing, incoming messages stored on server user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server outgoing message queue user mailbox Electronic Mail 2: Application Layer

  11. Mail Servers mailbox contains incoming messages for user messagequeue of outgoing (to be sent) mail messages SMTP protocol between mail servers to send email messages client: sending mail server “server”: receiving mail server user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server Electronic Mail: mail servers 2: Application Layer

  12. 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 messages must be in 7-bit ASCII Electronic Mail: SMTP [RFC 2821] 2: Application Layer

  13. 1) Alice uses UA to compose message and “to” bob@wayne.edu 2) Alice’s UA sends message to her mail server; message placed in message queue 3) Client side of SMTP opens TCP connection with Bob’s mail server 4) SMTP client sends Alice’s message over the TCP connection 5) Bob’s mail server places the message in Bob’s mailbox 6) Bob invokes his user agent to read message user agent user agent mail server mail server Scenario: Alice sends message to Bob 1 2 6 3 4 5 2: Application Layer

  14. Sample SMTP interaction C: telnet smtp.wayne.edu 25 S: 220 mirapointmr3.wayne.edu C: HELO alice S: 250 Hello alice, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@wayne.edu> S: 250 bob@wayne.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 wayne.edu closing connection 2: Application Layer

  15. Try SMTP interaction for yourself: • telnet ece.eng.wayne.edu 25 • see 220 reply from server • enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send email without using email client (reader) 2: Application Layer

  16. SMTP: protocol for exchanging email msgs RFC 822: standard for text message format: header lines, e.g., To: From: Subject: differentfrom SMTP commands. SMTP msg goes into the DATA command body the “message”, 7-bit ASCII characters only SMTP Mail message format header blank line body 2: Application Layer

  17. MIME: multimedia mail extension, RFC 2045, 2056 additional lines in msg header declare MIME content type From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data Message format: multimedia extensions MIME version method used to encode data, quoted-printable is another method multimedia data type, subtype, parameter declaration encoded data where each line is 78 7-bit ASCII characters including CRLF 2: Application Layer

  18. Encoding (not encrypting) method input: 8 bit ASCII data output: one of the 64 values listed in the Base64 encoding table and the “=“ character Process: group the input data in chunks of 3-bytes or 24-bits each break each 24-bit chunk into 4 values that are 6-bits each use the Base64 encoding table to find the character of each value if any chunk is less than 3 bytes then pad it with 0s and use the “=“ for any of these 6 0s. A 6-bit value with all 0s and at least 1 non-padded 0 will be an “A” Smallest base64 encoded output is 4 characters. Base64 encoding scheme (RFC 2045) Example: input is AB A ASCII hex=0x41 B ASCII hex=0x42 16-bits + 8 padded 0s: 0100 0001 0100 0010 0000 0000 4 values that are 6-bits each: 010000-010100-001000-000000 16-20-8-6 padded 0s Base64 output is QUI= 2: Application Layer

  19. SMTP: delivery/storage to receiver’s server Mail access protocol: retrieval from server POP3: Post Office Protocol version 3 [RFC 1939] uses port 110 authorization (agent <-->server) and download IMAP: Internet Mail Access Protocol [RFC 1730] more features (more complex) manipulation of stored msgs on server HTTP: Hotmail , Yahoo! Mail, etc. user agent user agent sender’s mail server SMTP Mail access protocols SMTP access protocol receiver’s mail server 2: Application Layer

  20. authorization phase client commands: user: declare username pass: password server responses +OK (Server accepted prior command) -ERR (server rejected prior command) transaction phase, client: list: list message numbers retr: retrieve message by number dele: delete quit UIDL: “unique-ID listing” list unique message ID for all of the messages present in the users mailbox. Useful for download-and-keep by keeping a file that lists the messages retrieved in earlier sessions, the client can use the UIDL command to determine which messages on the server have already been seen. “Received:” in the msg indicates the SMTP servers that forwarded the msg POP3 protocol C: telnet mail.wayne.edu 110 S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S: . C: retr 1 S: Return-Path: <fromuser@..> S: Received: from b1 by d1 ... S: more data.. S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off 2: Application Layer

  21. More about POP3 Previous example uses “download-and-delete” mode. User cannot re-read the deleted e-mail. “Download-and-keep”: copies of messages on different clients POP3 is stateless across sessions IMAP Keep all messages in one place: the server Allows user to organize messages in folders IMAP keeps user state across sessions: names of folders and mappings between message IDs and folder name POP3 (more) and IMAP 2: Application Layer

  22. SMTP and POP3 uses persistent connections SMTP requires message (header & body) to be in 7-bit ASCII SMTP server uses CRLF.CRLF to determine end of message download-and-delete vs download-and-keep in POP3 All data communications are insecure by default Comparison with HTTP: HTTP: pull data from web server SMTP: push data to mail server both have command/response interaction, status codes HTTP: each object encapsulated in its own response msg SMTP: multiple objects sent in one multipart msg SMPT msg must be in 7-bit ASCII while HTTP has no restriction Email Summary 2: Application Layer

  23. 2.1 Principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P file sharing 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server Examples ofInternet Services 2: Application Layer

More Related