240 likes | 256 Views
Explore Simple Mail Transfer Protocol (SMTP), HyperText Transfer Protocol (HTTP), and Simple Network Management Protocol (SNMP) in-depth, including data formats, MIME encoding, and protocol dialog examples. Learn about mail gateways, application-level protocols, and common features.
E N D
CSE331:Introduction to Networksand Security Lecture 12 Fall 2002
Announcements • Reminder: • Project 1 due on Monday, Oct. 7th • In-class midterm Wednesday, Oct. 9th • Monday’s Class • Further Topics in Networking • Review / Question & Answer CSE331 Fall 2002
Recap • Remote Procedure Call (RPC) • Java’s remote method invocation (RMI) CSE331 Fall 2002
Today • RMI Demo • Application-level Protocols • SMTP: Simple Mail Transfer Protocol • HTTP: HyperText Transfer Protocol • SNMP: Simple Network Management Protocol CSE331 Fall 2002
Java RMI Permissions • Socket permissions in a policy file // policy.pol grant { permission java.net.SocketPermission "<IP>:1024-65535", "connect,accept,listen,resolve"; permission java.net.SocketPermission "*:1099", "connect,resolve"; }; CSE331 Fall 2002
Running Java programs with policies • java –Djava.security.policy=policy Program CSE331 Fall 2002
Protocol Stack Revisited Application SMTP, HTTP, SNMP Presentation Session Transport Network So far… Data Link Physical CSE331 Fall 2002
Common Features • SMTP, HTTP, SNMP • Request/Reply protocols built on TCP or UDP • Designed to handle a fixed set of messages • Companion data format • Many applications Protocol Data Format Programs SMTP RFC 822 and MIME Pine, NSMail, Eudora,… HTTP HTML Explorer, Netscape, Opera SNMP MIB snmpget, snmpset,… CSE331 Fall 2002
SMTP: Simple Mail Transfer Protocol • Data format RFC822 • Adopted around 1982, extended 1993, 1996 • http://www.faqs.org/rfcs/rfc822.html • ASCII text • Header and Body CSE331 Fall 2002
RFC822 Headers • <CRLF>-terminated lines containing pairs of form type: value • Many valid Header types • Some headers filled out by client • To: stevez@cis.upenn.edu • Subject: CSE331 • Others filled out by mail delivery system • Date: • Received: • From: CSE331 Fall 2002
MIME: Multipurpose Internet Mail Extensions • Consists of three parts • Additional RFC822 Headers • MIME-Version: • Content-Type: • Content-Transfer-Encoding: • Content types (and subtypes) • text/plain • text/rich • image/gif • application/postscript • Multipart/mixed; boundary=“…” CSE331 Fall 2002
MIME Encoding • Mail systems assume ASCII • Only 64 valid characters A-Z, a-z, 0-9, +, / • Some datatypes include arbitrary binary data (e.g. JPEG) • Base64 encoding • 3 bytes of data map to 4 ASCII Characters • A=0,B=1,… • Also 7bit ASCII encoding • Human readable CSE331 Fall 2002
From: Steve Zdancewic <stevez@cis.upenn.edu> MIME-Version: 1.0 To: stevez@cis.upenn.edu Subject: Example Mail Content-Type: multipart/mixed; boundary="------------020307000708030506070607" This is a multi-part message in MIME format. --------------020307000708030506070607 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit This is the body. --------------020307000708030506070607 Content-Type: text/plain; name="example.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="example.txt" Hello --------------020307000708030506070607 Content-Type: image/jpeg; name="doc.jpg" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="doc.jpg" /9j/4AAQSkZJRgABAQEASABIAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAIBgYH BgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04…
SMTP • Mail Reader • User edits/reads/search e-mail • Mail Daemon • Process running on each host (port 27) • Uses SMTP/TCP to transmit mail to daemons on other machines • Most daemons based on Berkley’s sendmail • Mail Gateways • Store and forward e-mail (much like IP router) • Buffers on disk • Attempts to resend CSE331 Fall 2002
SMTP Mail Gateways Mail reader Mail reader Mail daemon Mail daemon Mail gateway • No need for explicit host in e-mail address • User can receive mail at different machines • Recipient’s machine may not be up • Mail gateway can hold message for later Mail daemon SMTP/TCP SMTP/TCP CSE331 Fall 2002
SMTP Dialogs • Client posts commands • HELO, MAIL, RCPT, DATA, QUIT • Server responds with code and human-readable explanation CSE331 Fall 2002
Example SMTP Dialog HELO seas.upenn.edu 250 Hello daemon@smtpauth.seas.upenn.edu [158.130.12.180] MAIL FROM:<stevez@seas.upenn.edu> 250 OK RCPT TO:<billg@microsoft.com> 250 OK RCPT TO:<ted@microsoft.com> 550 No such user here DATA 354 Start mail input; end with <CRLF>.<CRLF> Blah blah blah… <CRLF>.<CRLF> 250 OK QUIT 221 Closing Connection
HTTP: HyperText Transfer Protocol • Text-oriented protocol on top of TCP • http://www.w3.org/Protocols/ • Messages have the form START_LINE <CRLF> MESSAGE_HEADER <CRLF> <CRLF> MESSAGE_BODY <CRLF> CSE331 Fall 2002
HTTP Request Messages • START_LINE: Operation URL Version • Absolute URL:GET http://www.cis.upenn.edu/ HTTP/1.1 • Using the MESSAGE_HEADER • Relative URL:GET / HTTP/1.1Host: www.cis.upenn.edu CSE331 Fall 2002
HTTP Request Operations Operation Description OPTIONS get info about server options GET retrieve document specified by URL HEAD retrieve metainfo document by URL POST give info to the server PUT store document under specified URL DELETE delete specified URL TRACE loopback request message CONNECT for use by proxy servers CSE331 Fall 2002
HTTP Response Messages • START_LINE Version Code Reason • HTTP/1.1 202 Accepted • HTTP/1.1 404 Not Found Code Type Example Reasons 1xx Information request received 2xx Success action successfully accepted 3xx Redirection further action must be taken 4xx Client Error request contains bad syntax 5xx Server Error server didn’t fulfill valid request CSE331 Fall 2002
HTTP Caching • Store a copy of the data closer to the client • Browser caches web pages • ISPs can cache pages • Sites can cache pages at proxies • How to cache changing web pages? • Server assigns expiration date using Expires header • Set of cache directives that specify whether documents can be cached, for how long, etc. • Not easy to cache dynamic content CSE331 Fall 2002
SNMP:Simple Network Management Protocol • Specialized request/reply protocol • Two basic operations: GET and SET • Runs on UDP • Companion data: Management Info. Database (MIB) • Stores information about various protocols running on nodes in the network • Example uses: • Measure # packets dropped/received • Watch for faulty hardware/software • Determine # IP datagram reassemblies that are aborted CSE331 Fall 2002
MIP-II Variables • System • Where located, Uptime, Name • Interfaces • Physical addresses, # packets sent/received • ARP • Contents of address translation table • IP • Routing table • # packets forwarded • Reassembly statistics • Drop counts • TCP • # of passive/active opens • # timeouts, default timeout settings CSE331 Fall 2002