Title: Lecture 12 Overview
1Lecture 12 Overview
2TELNET
- TELNET is a protocol that provides
- general,
- bi-directional,
- eight-bit byte oriented communications
- Over TCP connection
- data and control over the same connection
- Many application protocols are built upon the
TELNET protocol - Used to test HTTP, FTP, SMTP, POP3, IRC, etc.
3Network Virtual Terminal
- intermediate representation of a generic terminal
- provides a standard language for communication of
terminal control functions
Server Process
NVT
NVT
TCP
TCP
4Control Functions
- TELNET includes support for a series of control
functions commonly supported by servers - This provides a uniform mechanism for
communication of (the supported) control functions
5Command Structure
- Commands start with a special character called
the Interpret as Command escape character - The IAC code is 255
- If a 255 is sent as data, it must be followed by
another 255 - If IAC is found and the next byte is IAC
- a single byte is presented to application/terminal
- If IAC is followed by any other code
- the TELNET layer interprets this as a command
6A Typical Mail Environment
Interactive Mail Access Protocol
SMTP
IMAP
Mail Server
Mail Server
Mail Client
IMAP store
POP Store
SMTP
POP
SMTP
Mail Client
7Terminology
- User Agent
- end-user mail program
- Message Transfer Agent
- responsible for communicating with remote hosts
and transmitting/receiving email - both a client and server
- Mail Exchanger
- host that takes care of email for a domain
8SMTP
- Used to exchange mail messages between mail
servers (Message Transfer Agents)
MTA
MTA
MTA
SMTP
SMTP
File System
UA
UA
9SMTP Protocol
- SMTP sender is the client
- SMTP receiver is the server
- Alternating dialogue
- client sends command and server responds with
command status message - Order of the commands is important!
- Status messages include
- ASCII encoded numeric status code (like HTTP,FTP)
and - text string
10Data Format
- ASCII only
- must convert binary to an ASCII representation to
send via email - What if we want to send a line containing only a
period? - Sender prepends a period to any line staring with
a period (in the message) - Receiver strips the leading period in any line
that starts with a period and has more stuff
11Message Progress
TCP Connection Establishment
TCP Connection Termination
12Reply Codes
- Contain a Lot of Information
- Only the reply codes count
- Other information in a reply is purely for humans
The first digit indicates success, failure, or
incomplete
The third digit is the specific message for that
category
The second digit is the category of error message
13SMTP Extensions (EHLO)
- A mailer supporting extensions uses EHLO instead
of HELO in the greeting
telnet mail.unr.edu 25 Trying
134.197.1.112... 220 smtp.unr.edu ESMTP
Postfix EHLO 250-smtp.unr.edu 250-PIPELINING 250-S
IZE 30720000 250-VRFY 250-ENHANCEDSTATUSCODES 250-
8BITMIME 250 DNS
A mailer that supports extensions responds with a
list of which ones it can do
14Mail Headers
- Email messages contain many headers
- some headers are created by the UA
- some are automatically added by the MTA
- Every MTA adds (at least) a Received header
- Some of the headers are parsed by intermediate
MTAs - but the message content is ignored and passed on
transparently
15Multipurpose Internet Mail Extensions
- Defines extensions to support binary attachments
of arbitrary format - Images, Audio, Video and multi-media messages
- Text having unlimited line length or overall
length - Multiple objects in a single message
- Character sets other than ASCII
- Multi-font messages
- Requires more capable UAs to interpret messages
16A sample MIME message
- From trumbo_at_Opus1.COM (Jan Trumbo)
- Subject small message with Word attachment
- To trumbo_at_Opus1.COM
- MIME-version 1.0
- Content-type MULTIPART/MIXED BOUNDARY"Boundary_
ID_nf99lkyavAuSoClF/HeK0Q" - --Boundary_ID_nf99lkyavAuSoClF/HeK0Q
- Content-type text/plain charsetus-ascii
- Joel, attached is a Word document. - Jan
- --Boundary_ID_nf99lkyavAuSoClF/HeK0Q
- Date Thu, 19 Sep 1996 164952 -0700
- Content-type application/mac-binhex40
nametiny_text_Word_doc.doc - Content-disposition attachment
filenametiny_text_Word_doc.doc - ltWord document and more stuff below heregt
This identical boundary marker separates the
parts of the mail message
17Pulling Emails
- Offline (POP3 model)
- Client connects to server and pulls all email
down to client - Everything is stored on the client
- Online (Original IMAP model)
- Client connects to server for every transaction
- Everything is stored on the server
- Disconnected (Later IMAP model)
- Client and server share storage burden
- Server is always authoritative and client must
synchronize to server
18POP Post Office Protocol
- Used to transfer mail from a mail server to a
User Agent
Mail Server
POP
UA
File System
19POP (version 3)
- Similar to SMTP command/reply lockstep
- Minimizes server resources
- Used to retrieve mail for a single user
- requires authentication
- Commands and replies are ASCII lines
- Replies start with OK or -ERR
- Replies may contain multiple lines
- POP has no security
- Except when used with SSL, TLS
20A POP3 Exchange
- gt telnet monte pop3
- Trying 128.213.8.110...
- Connected to monte.cs.rpi.edu (128.213.8.110).
- Escape character is ''.
- OK POP3 monte.cs.rpi.edu v7.59 server ready
- user joe
- OK User name accepted, password please
- pass joepw
- OK Mailbox open, 1 messages
- stat
- OK 1 412
- list
- OK Mailbox scan listing follows
- 1 412
- .
21POP3 Example Continued
- retr 1
- OK 412 octets
- Return-Path lthollingdgt
- Received (from hollingd_at_localhost)
- by monte.cs.rpi.edu (8.9.3/8.9.3) id
NAA06943 - for joe Mon, 20 Mar 2000 134954 -0500
- Date Mon, 20 Mar 2000 134954 -0500
- From Dave Hollinger lthollingd_at_monte.cs.rpi.edugt
- Message-Id lt200003201849.NAA06943_at_monte.cs.rpi.ed
ugt - To joe_at_monte.cs.rpi.edu
- Status O
- blah
- .
22Internet Message Access Protocol
- On-line, off-line, or disconnected mode operation
- Server-side Mailbox Manipulation
- Multiple mailbox support
- Control of all folders everywhere
- Online performance optimization
- User can check email header or search a string
before downloading - Real authentication
23POP vs. IMAP
POP3
All Messages
Whole message
IMAP
Dr.Amer
Friends
.
headers
24WebMail
- Web-base email access
- User agent -gt web browser
- User agent-mail server communication based on
HTTP - HTTP to send messages from user to the mail
server of the user - HTTP to get mail from the mail server of the
destination
25Lecture 13File Transfer Protocols
- CPE 401 / 601
- Computer Network Systems
slides are modified from Dave Hollinger
slides are modified from Dave Hollinger and
Michael
26File Transfer Protocols
- File Transfer Protocol (RFC 959)
- Why FTP?
- FTPs connections
- FTP in action
- FTP commands/responses
- Trivial File Transfer Protocol (RFC 1350)
- TFTP and TFTPs message formats
- FTP and TFTP compared
27Why do we need a FTP Service?
- Purpose To Transfer files between two computers
- Goals of FTP Service
- Promote sharing of files (programs and/or data)
- Encourage indirect/implicit use of remote
computers - Shield users from variations in file storage
among hosts - Transfer data reliably and efficiently
28Problems of File Transfer
- At first, file transfer may seem simple
- Heterogeneous systems use different
- Operating Systems
- Character Sets
- Naming Conventions
- Directory Structures
- File Structures and Formats
- FTP need to address and resolve these problems
29File Transfer Protocol
- Exchange and manipulate files over TCP
- Separate control and data connections between the
client and server applications - RFC 959 includes information and details
- parameters for commands
- lists of reply status codes
- protocol state diagrams
- support for a variety of file structures
- sample sessions
30The FTP Model
PI Protocol Interpreter DTP Data Transfer
Protocol
User Interface
User
Control
Server PI
User PI
Data
File System
File System
User DTP
Server DTP
31Control and Data Connections
- Control functions (commands) and reply codes are
transferred over the control connection. - All data transfer takes place over the data
connection. - The control connection must be up while data
transfer takes place.
32Control Connection
- The control connection is the well known
service. - The control connection uses the TELNET protocol.
- Commands and replies are all line oriented text
(default is ASCII).
33FTPs Connections
client
User Interface
server
User Protocol Interpreter
Server Protocol Interpreter
Control Connection
21
User Data Transfer Function
Server Data Transfer Function
Data Connection
20
34FTP - Connection Establishment
ftpgt open cse.unr.edu
Connected to cse.unr.edu 220 cse FTP server
ready. 530 Please login with USER and PASS
client
331 Password req for mgunes. Password
User Interface
230 User mgunes logged in. ftpgt
USER mgunes
PASS mypass
server
User Protocol Interpreter
Server Protocol Interpreter
Control Connection
User Data Transfer Function
Server Data Transfer Function
Data Connection
35FTP - Data Transfer
client
ls client.txt
-rw-r--r-- mgunes client.txt
User Interface
226 Closing Data Connection
PORT 192,168,100,173,19,137
200 Port Command Sucessful
LIST client.txt
150 Data Connection will be open shortly
server
User Protocol Interpreter
Server Protocol Interpreter
User Protocol Interpreter
Server Protocol Interpreter
Control Connection
Passive open on Port 5001
User Data Transfer Function
Server Data Transfer Function
Data Connection
Establish Data Connection
36FTP - Connection Closing
bye
client
User Interface
221 Service Closing
QUIT
server
User Protocol Interpreter
Server Protocol Interpreter
Control Connection
User Data Transfer Function
Data Connection
Server Data Transfer Function
37FTP Connections
38FTP Client Commands
Command Description
get filename Retrieve file from server
mget filename Retrieve multiple files from server
put filename Copy local file to server
mput filename Copy multiple local files to server
open server Begin login to server
bye / close / exit Logoff server
ls / dir List files in current remote dir on server
lcd Change local directory
cd Change remote directory
rhelp / remotehelp Lists commands the server accepts
Sent to server as multiple command by User
Protocol Interpreter
39Data Transfer Modes
- STREAM
- file is transmitted as a stream of bytes
- BLOCK
- file is transmitted as a series of blocks
preceded by headers containing count and
descriptor code - COMPRESSED
- uses a simple compression scheme on transmitted
blocks
40FTP Replies
- All replies are sent over control connection.
- Replies are a single line containing
- 3 digit status code (sent as 3 numeric chars).
- text message.
- The FTP spec. includes support for multiline text
replies.
41FTP Reply Status Code
- First digit of status code indicates type of
reply - 1 Positive Preliminary Reply (got it, but
wait). - 2 Positive Completion Reply (success).
- 3 Positive Intermediate Reply (waiting for
more information). - 4 Transient Negative Completion (error - try
again). - 5 Permanent Negative Reply (error - cant do).
42FTP Reply Status Code
- 2nd digit indicates function groupings.
- 0 Syntax (problem with command syntax).
- 1 Information (reply to help or status cmds).
- 2 Connections (problem with a connection).
- 3 Authentication (problem with login).
- 4 Unspecified.
- 5 File system (related to file system).
- 3rd digit indicates specific problem within
function group.
43Example FTP Responses
- 120 Service will be ready shortly
- 200 Command OK
- 230 User login OK
- 331 User name OK password is needed
- 421 Service not available
- 530 User not logged in
- 552 Requested action aborted exceeded
storage allocation
44Trivial FTP
45Trivial FTP (TFTP)
- Simple and small
- 5 message formats
- Runs on UDP
- Designed to fit in ROM
- Uses a stop and wait protocol
- NO BUILT IN SECURITY FEATURES (login)
- Used only to read and write files from/to a
server - Cannot list directories
- Useful for bootstrapping diskless systems
- Workstations
- X terminals
46Diskless Workstation Booting 1
Help! I don't know who I am! My Ethernet address
is 4C231777A603
Diskless Workstation
RARP
47The answer from the all-knowing
RARP Server
I know all! You are to be know as 128.113.45.211
Diskless Workstation
RARP REPLY
48The request for instructions
I need the file named boot-128.113.45.211
Diskless Workstation
TFTP Request (Broadcast)
49The dialog
TFTP Server
here is part 1
I got part 1
here is part 2
Diskless Workstation
boot file
TFTP File Transfer
50TFTP Protocol
- 5 message types
- Read request
- Write request
- Data
- ACK (acknowledgment)
- Error
- Each is an independent UDP Datagram
- Each has a 2 byte opcode (1st 2 bytes)
- The structure of the rest of the datagram depends
on the opcode
51TFTP Message Formats
52TFTP transfer modes
- octet for transferring binary files.
- no translation done.
- netascii for transferring text files.
- all lines end with \r\n (CR,LF).
- provides standard format for transferring text
files. - both ends responsible for converting to/from
netascii format.
53NetAscii Transfer Mode
- Unix - end of line marker is just '\n'
- receiving a file
- you need to remove '\r' before storing data.
- sending a file
- you need to replace every '\n' with "\r\n" before
sending
54Read Request
01
filename
0
mode
0
null terminated ascii string containing name of
file
null terminated ascii string containing transfer
mode
2 byte opcode network byte order
variable length fields!
55Write Request
02
filename
0
mode
0
null terminated ascii string containing name of
file
null terminated ascii string containing transfer
mode
2 byte opcode network byte order
variable length fields!
56TFTP Data Packet
03
block
data 0 to 512 bytes
2 byte block number network byte order
2 byte opcode network byte order
all data packets have 512 bytes except the last
one.
57TFTP Acknowledgment
04
block
2 byte block number network byte order
2 byte opcode network byte order
58TFTP Error Packet
05
errcode
errstring
0
null terminated ascii error string
2 byte opcode network byte order
2 byte error code network byte order
59TFTP Error Codes (16 bit int)
- 0 - not defined
- 1 - File not found
- 2 - Access violation
- 3 - Disk full
- 4 - Illegal TFTP operation
- 5 - Unknown port
- 6 - File already exists
- 7 - No such user
60TFTP Connection Establishment
61TFTP Session
62Lost Data Packets
- Original Protocol Specification
- Sender uses a timeout with retransmission.
- sender could be client or server.
- Duplicate data packets must be recognized and ACK
retransmitted. - This original protocol suffers from the
"sorcerers apprentice syndrome".
63Sorcerers Apprentice Syndrome
send DATAn (time out) retransmit
DATAn receive ACKn send DATAn1 receive
ACKn (dup) send DATAn1(dup) ...
receive DATAn send ACKn receive DATAn
(dup) send ACKn (dup) receive DATAn1 send
ACKn1 receive DATAn1 (dup) send ACKn1
(dup)
64The Fix
- Sender should not resend a data packet in
response to a duplicate ACK. - If sender receives ACKn
- dont send DATAn1 if the ACK was a duplicate.
65Concurrency
- TFTP servers use a "well known address"
- UDP port number
- How would you implement a concurrent server?
- forking (alone) may lead to problems!
- Can provide concurrency without forking, but it
requires lots of bookkeeping.
66TFTP Concurrency
- According to the protocol, the server may create
a new udp port and send the initial response from
this new port. - The client should recognize this, and send all
subsequent messages to the new port.
67When is it over?
- There is no length of file field sent!
- All data messages except the last one contain 512
bytes of data. - message length is 2 2 512 516
- The last data message might contain 0 bytes of
data!
68Issues
- What if more than 65535 chunks are sent?
- 65536 blocks x 512 bytes/block 33,554,432
bytes. - The RFC does not address this issue!
- Remember that the network can duplicate packets!
69FTP vs. TFTP
- FTP provides (minimal) security through login
procedure - TFTP has NO login procedure
- FTP Provides a reliable service through its use
of TCP - TFTP must handle its own retransmissions since it
uses UDP - FTP uses two connections
- TFTP uses one connection (stop and wait)
- FTP provides many commands
- TFTP can only read and write files