Application Protocols
- Telnet
- FTP
- WWW
- SMTP
- NNTP
- IRC
- Multimedia
Telnet
- one of the first ARPAnet applications
- terminal on client:
- must implement terminal functions, e.g. cursor positioning
- generally blocked reading from keyboard AND socket
- single thread: select or poll system calls
- multiple threads
- shell on server:
- must be able to redirect shell input and output
- on Unix, creates a pseudo TTY
Telnet Options
- negotiated at start of connection
- toggle options: WILL, WONT, DO, DONT:
- if I send WILL, DO is ack
- if I send DO, WILL is ack
- if I send WONT, I will not
- if I send DONT, you cannot
- options:
- terminal type
- who echos
- flow control
- environment variables
FTP
- File Transfer Protocol
- the other early ARPAnet application:
- establish control connection
- loop: over control connection, negotiate which file to transfer
- open data connection
- transfer file
- return to "loop"
- uses connection closing to mark end of file
- file transfer modes:
- ASCII (converts Unix "\n" to "\n\r")
- binary (no conversion)
- ftp://host/file
WWW
- HTTP 1.0: close of connection shows end of data
- HTTP 1.1: persistent connections
- SSL: secure socket layer:
- use public keys to negotiate a secret key
- use secret key to encrypt data
- need certification to trust public key (or: how do you know
who you are talking to?)
- Java
- electronic commerce
- information "push"
SMTP
- Simple Mail Transfer Protocol
- keywords based:
- From indicates beginning of message
- "." (on a line by itself) indicates end of message
- many hosts willing to relay (forward) mail
- for security, most hosts only willing to forward within AS
NNTP
- Network News Transfer Protocol
- netnews, usenet
- broadcast somewhat similar to that in project 3:
- "routers" (forwarding systems) keep track of articles they
have already seen, refuse to forward them again
- articles identified by posting system IP, posting system sequence
number
- article expiration, cancellation
- unix clients: rn, trn, xrn
- some web browsers had (have?) ability to read usenet
IRC
- Internet Relay Chat
- similar to telnet
- chat room identified by: system IP, system-specific identifier (string)
Multimedia
- Internet telephony:
- videoconferencing
- desktop: how do you do multimedia without a real-time system?
- fast system
- low quality
- hardware assist
- MIME encodings: how do you know your reader will:
- be able to decompress?
- be able to read your format?