FTP by lachhab04


									File Transfer Protocol

            Dick Steflik
• RFC 959
• uses two TCP Ports
   – one for control
   – one for data transfers
• command-response protocol
• control port uses telnet protocol to negotiate
   – <crlf> is end-of-line character
Active Mode FTP
•   Client connect from a random unprivileged port (n > 1023) to the servers
    command port (21) and sends port command to tell server to connect to n+1
    then listens on the next higher unprivileged port (n+1) for server responses.
    The server connects from it’s data port (20) to the client data port (n+1)

                     Server                               Client

                20            21                   1026            1027




Passive Mode FTP
•   Client opens two random unprivileged ports ( n > 1023 and n+1; ex 1026 and
    1027) and connects the first port (n) to server command port 21 and issues a
    pasv command (server sends port to use for data); client connects to servers
    specified data port, server completes connection.

                     Server                           Client

           20      2024       21               1026            1027




Transfer Files in a Heterogeneous Host Environment

• Due to multiple hardware types and operating systems file
  are converted to four environmentally neutral data type for
  transport and the converted to local types at the destination
   –   ASCII    A     NVT-ASCII
   –   EBCDIC   E     EBCDIC Text
   –   IMAGE    I     Raw binary, series of octets
   –   LOCAL    L     Raw binary using a variable byte size
• Client responsibility to tell server data type to use
• Default data type, unless otherwise specified is ASCII
File Structures

• Operating System store files in different structures
• FTP defined file structures for transporting files
   – File      F      Unstructured, sequence of bytes
   – Record    R      Series of records
   – Page      P      Series of data blocks (pages)
• Default file structure is File (F)
• File Structure specified using STRU command
Transmission Modes

• Mode is used to specify additional coding or sequencing
  performed on data
• independent of data type and file structure
   – Stream          S      stream of bytes, if record structure
                            EOF sent as record indication; if file
                            eof indicated by closing stream
   – Block           B      file sent as sequence of blocks
                            preceded by header info allows restart
                            of an interruped transfer
   – Compressed      C      data compressed using run length
FTP Commands
•   USER   R   User name, userid for access control
•   PASS   O   Password for access control
•   ACCT   O   Account info
•   CWD    O   Change working directory
•   CDUP   O   Change to parent directory
•   SMNT   O   Structure mount, mount a different file system
•   QUIT   R   informs server that client wants out
•   REIN   O   restarts session at authentication phase
•   PORT   R   Host addr and data port to use
FTP Commands (more)
• PASV O Passive; informs server that client will contact
         to set up data connections, ask server to sent
         port info
• TYPE R Data type, type of subsequent transfers
• STRU R File structure
• MODE R Transfer mode
• RETR R Retrieve, download the file from server
• STOR R Store, upload the specified to server
• STOU O Store unique, same as store but server picks
         unique file name
FTP Commands (more)
• APPE O Append, upload file to server, if file name
         exists, append the upload
• ALLO O Allocate, sometimes used to preallocate space
• REST O Restart, restart an interrupted transfer
• RNFR O Rename file from filename
• RNTO O Rename file to
• ABOR O Abort, ask server to abort last command
• DELE O Delete specified file
• RMD O Remove directory
• MKD O Make directory
FTP Commands (more)
•   PWD    O   Print working directory
•   LIST   O   Request directory listing
•   NLST   O   Request just a file name list
•   SITE   O   Site parameters, allow client to specify site
               specific options and parameters
•   SYST   O   request server operating system
•   STAT   O   Request server to send status of current xfr
•   HELP   O   general and command specific
•   NOOP   R   ask server to send a positive reply
FTP Responses
• Each command generates a server response
   – 3 digit code, text, <crlf>
• use 3 digit code as driver for GUI Clients or programatic
• use text for Command line clients
• 1yz - Positive preliminary reply - command is being acted upon;
        expect a final reply code before sending another command
• 2yz - Positive completion reply - command was successfully
        executed; new command may be sent
• 3yz - Positive intermediate reply - command was accepted, but the
        final result is being delayed because other information needs to
        be supplied from the client; reply is used for sequencing
        command groups
• 4yz - Transient negative completion reply - command failed, but the
         condition is temporary
• 5yz - Permanent negative completion reply - command failed and
         will always fail if given again; the command should not be
         attempted again
• x0z - Refers to command syntax
• x1z - Indicates information returned by commands
        requesting information such as status or help
• x2z - Refers to the state of the control or data connections
• x3z - The reply is associated with the login process and
        accounting procedures
• x4z - Reserved for future use
• x5z - Refers to the state of the requested file transfer or
        other file system command

To top