Lecture 12
Fall 2002
• Reminder:
– Project 1 due on Monday, Oct. 7 th
– In-class midterm Wednesday, Oct. 9 th
• Monday’s Class
– Further Topics in Networking
– Review / Question & Answer
CSE331 Fall 2002 2
• Remote Procedure Call (RPC)
– Java’s remote method invocation (RMI)
CSE331 Fall 2002 3
• RMI Demo
• Application-level Protocols
– SMTP: Simple Mail Transfer Protocol
– HTTP: HyperText Transfer Protocol
– SNMP: Simple Network Management Protocol
CSE331 Fall 2002 4
• 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 5
• java –Djava.security.policy=policy Program
CSE331 Fall 2002 6
Application
Presentation
SMTP, HTTP, SNMP
Session
Transport
Network
Data Link
Physical
So far…
CSE331 Fall 2002 7
• 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 8
• Data format RFC822
– Adopted around 1982, extended 1993, 1996
– http://www.faqs.org/rfcs/rfc822.html
– ASCII text
– Header and Body
CSE331 Fall 2002 9
• <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 10
Multipurpose Internet Mail Extensions
• Consists of three parts
1. Additional RFC822 Headers
• MIME-Version:
• Content-Type:
• Content-Transfer-Encoding:
2. Content types (and subtypes)
• text/plain
• text/rich
• image/gif
• application/postscript
• Multipart/mixed; boundary=“…”
CSE331 Fall 2002 11
• 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 12
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
BgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8n
OT04…
• 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 14
Mail gateway
Mail reader
Mail reader
Mail daemon
SMTP/TCP
Mail daemon
SMTP/TCP
Mail daemon
• 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
CSE331 Fall 2002 15
• Client posts commands
– HELO, MAIL, RCPT, DATA, QUIT
• Server responds with code and humanreadable explanation
CSE331 Fall 2002 16
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
17
• 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 18
• 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.1
Host: www.cis.upenn.edu
CSE331 Fall 2002 19
Operation Description
OPTIONS get info about server options
GET
HEAD retrieve document specified by URL retrieve metainfo document by URL
POST
PUT
DELETE
TRACE give info to the server store document under specified URL delete specified URL loopback request message
CONNECT for use by proxy servers
CSE331 Fall 2002 20
• 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 21
• 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 22
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 23
• 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 24