Lecture 1 Internet

advertisement
Lecture 12 Overview
TELNET
• 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.
CPE 401/601 Lecture 12 : TELNET protocol
2
Network Virtual Terminal
• intermediate representation of a generic
terminal
• provides a standard language for
communication of terminal control functions
Server
Process
NVT
NVT
TCP
TCP
CPE 401/601 Lecture 12 : TELNET protocol
3
Control 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
CPE 401/601 Lecture 12 : TELNET protocol
4
Command 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
CPE 401/601 Lecture 12 : TELNET protocol
5
A Typical Mail Environment
Internet
Interactive Mail
Access Protocol
SMTP
Mail
Server
Mail Server
IMAP
IMAP
store
POP
Store
Mail
Client
SMTP
POP
SMTP
Mail
Client
CPE 401/601 Lecture 12 : E-mail protocols
6
Terminology
• 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
CPE 401/601 Lecture 12 : E-mail protocols
7
SMTP
• Used to exchange mail messages between
mail servers (Message Transfer Agents)
MTA
SMTP
MTA
SMTP
MTA
File
System
UA
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
UA
8
SMTP 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
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
9
Data 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
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
10
Message Progress
TCP Connection
Establishment
TCP Connection
Termination
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
11
Reply Codes
• Contain a Lot of Information
The first digit
indicates
success, failure,
or incomplete
354
The third digit
is the specific
message for that
category
The second digit is the category
of error message
• Only the reply codes count
– Other information in a reply is purely for humans
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
12
SMTP 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-SIZE 30720000
250-VRFY
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DNS
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
A mailer that supports
extensions responds with a
list of which ones it can do
13
Mail 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
CPE 401/601 Lecture 12 : E-mail protocols - SMTP
14
Multipurpose 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
CPE 401/601 Lecture 12 : E-mail protocols - MIME
15
A sample MIME message
From: trumbo@Opus1.COM (Jan Trumbo)
Subject: small message with Word attachment
To: trumbo@Opus1.COM
MIME-version: 1.0
Content-type: MULTIPART/MIXED; BOUNDARY="Boundary_[ID_nf99lkyavAuSoClF/HeK0Q]"
--Boundary_[ID_nf99lkyavAuSoClF/HeK0Q]
Content-type: text/plain; charset=us-ascii
Joel, attached is a Word document.
- Jan
--Boundary_[ID_nf99lkyavAuSoClF/HeK0Q]
This identical boundary
marker separates the
parts of the mail message
Date: Thu, 19 Sep 1996 16:49:52 -0700
Content-type: application/mac-binhex40; name=tiny_text_Word_doc.doc
Content-disposition: attachment; filename=tiny_text_Word_doc.doc
<Word document and more stuff below here>
CPE 401/601 Lecture 12 : E-mail protocols - MIME
16
Pulling 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
CPE 401/601 Lecture 12 : E-mail protocols
17
POP – Post Office Protocol
• Used to transfer mail from a mail server to a
User Agent
Mail
Server
POP
UA
File
System
CPE 401/601 Lecture 12 : E-mail protocols - POP3
18
POP (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
CPE 401/601 Lecture 12 : E-mail protocols - POP3
19
A POP3 Exchange
> 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
.
CPE 401/601 Lecture 12 : E-mail protocols - POP3
20
POP3 Example Continued
retr 1
+OK 412 octets
Return-Path: <hollingd>
Received: (from hollingd@localhost)
by monte.cs.rpi.edu (8.9.3/8.9.3) id
NAA06943
for joe; Mon, 20 Mar 2000 13:49:54 -0500
Date: Mon, 20 Mar 2000 13:49:54 -0500
From: Dave Hollinger <hollingd@monte.cs.rpi.edu>
Message-Id: <200003201849.NAA06943@monte.cs.rpi.edu>
To: joe@monte.cs.rpi.edu
Status: O
blah
.
CPE 401/601 Lecture 12 : E-mail protocols - POP3
21
Internet 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
CPE 401/601 Lecture 12 : E-mail protocols - IMAP
22
POP vs. IMAP
POP3:
Internet
All Messages
IMAP:
Dr.Amer
Friends
….
Internet
CPE 401/601 Lecture 12 : E-mail protocols
23
WebMail
• Web-base email access
• User agent -> 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
CPE 401/601 Lecture 12 : E-mail protocols - WebMail
24
Lecture 13
File Transfer Protocols
CPE 401 / 601
Computer Network Systems
slides
modified
from
Dave
Hollinger
slides
are are
modified
from
Dave
Hollinger
and Michael
File Transfer Protocols
• File Transfer Protocol (RFC 959)
–
–
–
–
Why FTP?
FTP’s connections
FTP in action
FTP commands/responses
• Trivial File Transfer Protocol (RFC 1350)
– TFTP and TFTP’s message formats
– FTP and TFTP compared
CPE 401/601 Lecture 13 : File Transfer Protocols
26
Why 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
CPE 401/601 Lecture 13 : File Transfer Protocols
27
Problems 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
CPE 401/601 Lecture 13 : File Transfer Protocols
28
File 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
CPE 401/601 Lecture 13 : FTP
29
The FTP Model
PI: Protocol Interpreter
DTP: Data Transfer Protocol
Server PI
File
System
Server DTP
CPE 401/601 Lecture 13 : FTP
User Interface
Control
Data
User
User PI
User DTP
File
System
30
Control 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.
CPE 401/601 Lecture 13 : FTP
31
Control 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).
CPE 401/601 Lecture 13 : FTP
32
FTP’s Connections
client
User
Interface
* Non-persistent
Persistent
command
*Server
Insulates
users
from
“raw”
data
is
listening
on
port
21
*Server“raw”
uses FTP
portcommands
20
* Routes
and
reply
connection
commands
forFTP
connection
requests
for
data server’s
connections
* connection
Receives
replies
server
User
Protocol
Interpreter
Control
Connection
User
Data
Data Transfer
Connection
Function
CPE 401/601 Lecture 13 : FTP
Server
Protocol
21 Interpreter
Server
Data Transfer
20 Function
33
FTP - Connection
Establishment
ftp> open
cse.unr.edu
client
User
Interface
User
Protocol
Interpreter
Connected to cse.unr.edu
220 cse FTP server ready.
530 Please login with USER and PASS
331 Password req for mgunes.
Password:
230 User mgunes logged in.
ftp>
USER
PASS mgunes
mypass
server
Control
Connection
User
Data
Data Transfer
Connection
Function
CPE 401/601 Lecture 13 : FTP
Server
Protocol
Interpreter
Server
Data Transfer
Function
34
FTP - Data Transfer
client
User
Interface
User
Protocol
Interpreter
ls client.txt
-rw-r--r-- mgunes client.txt
226
Data Connection
PORT
200 Closing
LIST
Port
192,168,100,173,19,137
client.txt
Command
Sucessful
150
Data
Connection
will be open shortly
server
Control
Connection
Passive open on
Port 5001
User
Data
Data Transfer
Connection
Function
CPE 401/601 Lecture 13 : FTP
Server
Protocol
Interpreter
Server
Data Transfer
Function
Establish Data Connection
35
FTP - Connection Closing
client
User
Interface
bye
221
Service Closing
QUIT
server
User
Protocol
Interpreter
Control
Connection
User
Data
Data Transfer
Connection
Function
CPE 401/601 Lecture 13 : FTP
Server
Protocol
Interpreter
Server
Data Transfer
Function
36
FTP Connections
CPE 401/601 Lecture 13 : FTP
37
FTP Client Commands
Command
Description
get filename
mget filename*
put filename
Retrieve file from server
mput filename*
open server
bye / close / exit
Copy multiple local files to server*
ls / dir
lcd
cd
List files in current remote dir on server
rhelp / remotehelp
Lists commands the server accepts
Retrieve multiple files from server*
Copy local file to server
Begin login to server
Logoff server
Change local directory
Change remote directory
* Sent to server as multiple command by User Protocol Interpreter
CPE 401/601 Lecture 13 : FTP
38
Data 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
CPE 401/601 Lecture 13 : FTP
39
FTP 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.
CPE 401/601 Lecture 13 : FTP
40
FTP 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 - can’t do).
CPE 401/601 Lecture 13: FTP
41
FTP 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.
CPE 401/601 Lecture 13 : FTP
42
Example 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
CPE 401/601 Lecture 13 : FTP
43
Trivial FTP
Trivial 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
CPE 401/601 Lecture 13 : TFTP
45
Diskless Workstation Booting 1
The call for help
Help! I don't know who I am!
My Ethernet address is:
4C:23:17:77:A6:03
RARP
Diskless
Workstation
CPE 401/601 Lecture 13 : TFTP
46
The answer from the all-knowing
I know all! You are to be
know as: 128.113.45.211
RARP
Server
Diskless
Workstation
RARP REPLY
CPE 401/601 Lecture 13 : TFTP
47
The request for instructions
I need the file named
boot-128.113.45.211
Diskless
Workstation
CPE 401/601 Lecture 13 : TFTP
TFTP Request (Broadcast)
48
The dialog
here is part 1
I got part 1
TFTP
Server
here is part 2
Diskless
Workstation
boot file
CPE 401/601 Lecture 13 : TFTP
TFTP File Transfer
49
TFTP 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
CPE 401/601 Lecture 13 : TFTP
50
TFTP Message Formats
OPCODE
FILENAME
OPCODE BLOCK#
0
MODE
0
DATA
OPCODE BLOCK#
OPCODE BLOCK#
2 bytes
CPE 401/601 Lecture 13 : TFTP
ERROR MESSAGE
0
2 bytes
51
TFTP 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.
CPE 401/601 Lecture 13 : TFTP
52
Read Request
01
0
filename
null terminated ascii string
containing name of file
mode
0
null terminated ascii string
containing transfer mode
2 byte opcode
network byte order
variable length fields!
CPE 401/601 Lecture 13 : TFTP
54
Write Request
02
0
filename
null terminated ascii string
containing name of file
mode
0
null terminated ascii string
containing transfer mode
2 byte opcode
network byte order
variable length fields!
CPE 401/601 Lecture 13 : TFTP
55
TFTP Data Packet
03
block #
data 0 to 512 bytes
2 byte block number
network byte order
2 byte opcode
network byte order
CPE 401/601 Lecture 13 : TFTP
all data packets have 512 bytes
except the last one.
56
TFTP Acknowledgment
04
2 byte opcode
network byte order
CPE 401/601 Lecture 13 : TFTP
block #
2 byte block number
network byte order
57
TFTP Error Packet
05
errcode
2 byte opcode
network byte order
errstring
0
null terminated ascii error string
2 byte error code
network byte order
CPE 401/601 Lecture 13 : TFTP
58
TFTP 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
CPE 401/601 Lecture 13 : TFTP
59
TFTP Connection Establishment
CPE 401/601 Lecture 13 : TFTP
60
TFTP Session
CPE 401/601 Lecture 13 : TFTP
61
Lost 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
"sorcerer’s apprentice syndrome".
CPE 401/601 Lecture 13 : TFTP
62
Sorcerer’s Apprentice Syndrome
send DATA[n]
(time out)
retransmit DATA[n]
receive ACK[n]
send DATA[n+1]
receive ACK[n] (dup)
send DATA[n+1](dup)
...
CPE 401/601 Lecture 13 : TFTP
receive DATA[n]
send ACK[n]
receive DATA[n] (dup)
send ACK[n] (dup)
receive DATA[n+1]
send ACK[n+1]
receive DATA[n+1] (dup)
send ACK[n+1] (dup)
63
The Fix
• Sender should not resend a data packet in
response to a duplicate ACK.
• If sender receives ACK[n]
– don’t send DATA[n+1] if the ACK was a duplicate.
CPE 401/601 Lecture 13 : TFTP
64
Concurrency
• 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.
CPE 401/601 Lecture 13 : TFTP
65
TFTP 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.
CPE 401/601 Lecture 13 : TFTP
66
When 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!
CPE 401/601 Lecture 13 : TFTP
67
Issues
• 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!
CPE 401/601 Lecture 13 : TFTP
68
FTP 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
CPE 401/601 Lecture 13 : TFTP
69
Download