Lecture 10 FTP - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Lecture 10 FTP

Description:

Server uses port 20. for data connections. FTP's Connections Establishment ... 220 cse FTP server ready. 530 Please login with USER and PASS. USER mgunes ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 49
Provided by: mgu8
Category:
Tags: ftp | ftp | lecture | server

less

Transcript and Presenter's Notes

Title: Lecture 10 FTP


1
Lecture 10FTP TFTP
  • CPE 401 / 601Computer Network Systems

slides are modified from Dave Hollinger and
Michael mgunes
2
Overview
  • 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

3
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

4
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

5
The 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
6
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.

7
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).

8
FTPs 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
9
FTPs Connections 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
10
FTPs Connections 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
11
FTPs Connections 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
12
FTP Connections
13
FTP Client Commands (issued by user interface)
Sent to server as multiple command by User
Protocol Interpreter
14
Access Control Commands
  • USER specify user
  • PASS specify password
  • CWD change directory
  • CDUP change directory to parent
  • QUIT logout

15
Transfer Parameter Commands
  • PORT publish local data port
  • PASV server should listen
  • TYPE establish data representation
  • MODE establish transfer mode
  • STRU establish file structure

16
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 (EOF, EOR, restart marker).
  • COMPRESSED
  • uses a simple compression scheme - compressed
    blocks are transmitted.

17
Service Commands
  • RETR retrieve file
  • STOR send file
  • STOU send file and save as unique
  • APPE send file and append
  • ABOR abort prev. service command
  • PWD print working directory
  • LIST transfer list of files over data link

18
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.

19
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 - cant do).

20
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.

21
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

22
RFC 959
  • The RFC includes lots more information and many
    details including
  • parameters for commands
  • lists of reply status codes
  • protocol state diagrams
  • support for a variety of file structures
  • sample sessions

23
(No Transcript)
24
Trivial FTP (TFTP)
  • Used only to read and write files from/to a
    remote server
  • Cannot list directories
  • Useful for bootstrapping diskless systems
  • Workstations
  • X terminals
  • 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)

25
Diskless Workstation Booting 1The call for help
Help! I don't know who I am! My Ethernet address
is 4C231777A603
Diskless Workstation
RARP
26
The answer from the all-knowing
RARP Server
I know all! You are to be know as 128.113.45.211
Diskless Workstation
RARP REPLY
27
The request for instructions
I need the file named boot-128.113.45.211
Diskless Workstation
TFTP Request (Broadcast)
28
The dialog
TFTP Server
here is part 1
I got part 1
here is part 2
Diskless Workstation
boot file
TFTP File Transfer
29
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.

30
TFTP Message Formats
31
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.

32
NetAscii 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

33
Read 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!
34
Write 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!
35
TFTP 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.
36
TFTP Acknowledgment
04
block
2 byte block number network byte order
2 byte opcode network byte order
37
TFTP Error Packet
05
errcode
errstring
0
null terminated ascii error string
2 byte opcode network byte order
2 byte error code network byte order
38
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

39
TFTP Connection Establishment
40
TFTP Session
41
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
    "sorcerers apprentice syndrome".

42
Sorcerers 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)
43
The 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.

44
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.

45
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.

46
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!

47
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!

48
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
Write a Comment
User Comments (0)
About PowerShow.com