SMTP Protocol
Total Page:16
File Type:pdf, Size:1020Kb
CS 280 Lecture 4: Application Layer, Email, DNS, P2P John Magee 21 September 2016 Most slides adapted from Kurose and Ross, Computer Networking 7/e Source material copyright 1996-2016 1 J.F Kurose and K.W. Ross Chapter 2: outline Last Class: 2.1 principles of network Next Class: applications 2.6 video streaming and 2.2 Web and HTTP content distribution networks Today: 2.7 socket programming with UDP and TCP 2.3 electronic mail • SMTP, POP3, IMAP 2.4 DNS 2.5 P2P applications Application Layer 2-2 outgoing Electronic mail message queue user mailbox Three major components: user agent . user agents . mail servers mail user server . simple mail transfer agent protocol: SMTP SMTP mail user server agent User Agent SMTP . a.k.a. “mail reader” SMTP user agent . composing, editing, reading mail server mail messages user . e.g., Outlook, Thunderbird, agent iPhone mail client user . outgoing, incoming agent messages stored on server Application Layer 2-3 Electronic mail: mail servers mail servers: user agent . mailbox contains incoming messages for user mail user server . message queue of outgoing agent (to be sent) mail messages SMTP mail user . SMTP protocol between server agent mail servers to send email SMTP messages SMTP user agent • client: sending mail mail server server • “server”: receiving mail user server agent user agent Application Layer 2-4 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 (like HTTP) • commands: ASCII text • response: status code and phrase . messages must be in 7-bit ASCI Application Layer 2-5 Scenario: Alice sends message to Bob 1) Alice uses UA to compose 4) SMTP client sends Alice’s message “to” message over the TCP [email protected] connection 2) Alice’s UA sends message 5) Bob’s mail server places the to her mail server; message message in Bob’s mailbox placed in message queue 6) Bob invokes his user agent 3) client side of SMTP opens to read message TCP connection with Bob’s mail server 1 user mail user mail agent agent server server 2 3 4 6 5 ’ Alice s mail server Bob’s mail server Application Layer 2-6 Sample SMTP interaction S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... 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 hamburger.edu closing connection Application Layer 2-7 Try SMTP interaction for yourself: . telnet servername 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) HOWEVER: Most mail servers now require authentication. WHY? Application Layer 2-8 SMTP: final words . SMTP uses persistent comparison with HTTP: connections . HTTP: pull . SMTP requires message (header & body) to be in . SMTP: push 7-bit ASCII . both have ASCII . SMTP server uses command/response CRLF.CRLF to interaction, status codes determine end of message . HTTP: each object encapsulated in its own response message . SMTP: multiple objects sent in multipart message Application Layer 2-9 Mail message format SMTP: protocol for exchanging email messages header blank RFC 822: standard for text line message format: . header lines, e.g., • To: body • From: • Subject: different from SMTP MAIL FROM, RCPT TO: commands! . Body: the “message” • ASCII characters only Application Layer 2-10 Mail access protocols mail access user SMTP SMTP user agent protocol agent (e.g., POP, IMAP) sender’s mail receiver’s mail server server . SMTP: delivery/storage to receiver’s server . mail access protocol: retrieval from server • POP: Post Office Protocol [RFC 1939]: authorization, download • IMAP: Internet Mail Access Protocol [RFC 1730]: more features, including manipulation of stored messages on server • HTTP: gmail, Hotmail, Yahoo! Mail, etc. Application Layer 2-11 POP3 protocol S: +OK POP3 server ready C: user bob authorization phase S: +OK . client commands: C: pass hungry S: +OK user successfully logged on • user: declare username • pass: password C: list . server responses S: 1 498 • S: 2 912 +OK S: . • -ERR C: retr 1 transaction phase, client: S: <message 1 contents> . list message numbers S: . list: C: dele 1 . retr: retrieve message by number C: retr 2 S: <message 1 contents> . dele: delete S: . quit C: dele 2 C: quit S: +OK POP3 server signing off Application Layer 2-12 POP3 (more) and IMAP more about POP3 IMAP . previous example uses . keeps all messages in one POP3 “download and place: at server delete” mode . allows user to organize • Bob cannot re-read e- messages in folders mail if he changes . keeps user state across client sessions: “ . POP3 download-and- • names of folders and keep”: copies of messages mappings between on different clients message IDs and folder . POP3 is stateless across name sessions Application Layer 2-13 Chapter 2: outline 2.1 principles of network 2.5 P2P applications applications 2.6 video streaming and 2.2 Web and HTTP content distribution 2.3 electronic mail networks • SMTP, POP3, IMAP 2.7 socket programming 2.4 DNS with UDP and TCP Application Layer 2-14 DNS: domain name system people: many identifiers: Domain Name System: • SSN, name, passport # . distributed database Internet hosts, routers: implemented in hierarchy of • IP address (32 bit) - many name servers used for addressing . application-layer protocol: hosts, datagrams name servers communicate to • “name”, e.g., resolve names (address/name www.yahoo.com - translation) used by humans • note: core Internet function, Q: how to map between IP implemented as application- address and name, and layer protocol vice versa ? • complexity at network’s “edge” Application Layer 2-15 DNS: services, structure DNS services why not centralize DNS? . hostname to IP address . single point of failure translation . traffic volume . host aliasing . distant centralized database • canonical, alias names . maintenance . mail server aliasing . load distribution A: doesn‘t scale! • replicated Web servers: many IP addresses correspond to one name Application Layer 2-16 DNS: a distributed, hierarchical database Root DNS Servers … … com DNS servers org DNS servers edu DNS servers clarku.edu holycross.edu yahoo.com pbs.org amazon.com DNS serversDNS servers DNS servers DNS servers DNS servers client wants IP for www.amazon.com; 1st approximation: . client queries root server to find com DNS server . client queries .com DNS server to get amazon.com DNS server . client queries amazon.com DNS server to get IP address for www.amazon.com Application Layer 2-17 DNS: root name servers . contacted by local name server that can not resolve name . root name server: • contacts authoritative name server if name mapping not known • gets mapping • returns mapping to local name server c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD k. RIPE London (17 other sites) h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA m. WIDE Tokyo f. Internet Software C. (5 other sites) Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA 13 logical root name (5 other sites) “servers” worldwide b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA •each “server” replicated (41 other sites) g. US DoD Columbus, many times OH (5 other sites) Application Layer 2-18 TLD, authoritative servers top-level domain (TLD) servers: • responsible for com, org, net, edu, aero, jobs, museums, and all top-level country domains, e.g.: uk, fr, ca, jp • Network Solutions maintains servers for .com TLD • Educause for .edu TLD authoritative DNS servers: • organization’s own DNS server(s), providing authoritative hostname to IP mappings for organization’s named hosts • can be maintained by organization or service provider Application Layer 2-19 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 Application Layer 2-20 DNS name root DNS server resolution example 2 . 3 host at TLD DNS server magee.clarku.edu wants 4 IP address for gaia.cs.umass.edu 5 local DNS server iterated query: cube.clarku.edu . contacted server 7 6 replies with name of 1 8 server to contact authoritative DNS server . “I don’t know this dns.cs.umass.edu name, but ask this requesting host server” magee.clarku.edu gaia.cs.umass.edu Application Layer 2-21 DNS name root DNS server resolution example 2 3 7 recursive query: 6 . puts burden of name TLD DNS resolution on server contacted name local DNS server server cube.clarku.edu 5 4 . heavy load at upper 1 8 levels of hierarchy? authoritative DNS server dns.cs.umass.edu requesting host magee.clarku.edu gaia.cs.umass.edu Application Layer 2-22 Try it yourself: DNS Utility: nslookup Example: nslookup www.clarku.edu Will use the default DNS server. nslookup www.clarku.edu 8.8.8.8 Will use Google’s DNS server at 8.8.8.8 Check the command line for options. Application Layer 2-23 DNS: caching, updating records . once (any) name server learns mapping, it caches mapping • cache entries timeout (disappear) after some time (TTL) • TLD servers typically cached in local name servers • thus root name servers not often visited .