(rev. 01/25/2008) 
 
Notes On Chapter Thirty-Four
-- File Transfer and Remote File Access
 
-  34.1 Introduction 
     
     -  File Transfer Protocol (FTP) is well-established software
	  that uses the client-server paradigm
     
 
 -  34.2 Generalized File Transfer 
      
     -  In the early days of networking it quickly became apparent that
	    there was a need for general file transfer
	  software  - to transfer various types of files between
	  various types of computers.  
      -  Complications:
          
          -   conventions for naming files vary.
	       
          
 -   file formats, protection methods, and data
	       representation vary.
          
 
      
 -  34.3 The File Transfer Protocol (FTP)  
     
     -   FTP:
          
          -   deals well with differences between
	       computing systems,
          
-  permits transfer of arbitrary data, and
          
 -  deals well with file permissions and ownership.
 
           
      -  FTP has been around longer than IP or TCP.
     
 
 
 -  34.4  FTP General Model and User Interface 
      
     -   There are many different programs that use FTP.
	   (You have to make a distinction between a program named
	  "ftp" and the protocol itself "FTP.") 
      -  FTP accommodates both batch and interactive styles of file transfer,
	  but it is most commonly used interactively. 
      -   A program can run FTP code without user
	  intervention.  
     
 
 
 -  34.5 FTP Commands 
     
     -  Many FTP programs are based on the old BSD unix file transfer
	  program (ftp) 
      -  
	  Figure 34.1 on page 515 of the fourth edition lists the commands
	  provided by BSD ftp.
      
 
 -  34.6 Connections, Authorization, and File Permission  
     
     -   A user of FTP has to login as a user on the
	  remote machine.   
      -  After this authentication FTP establishes a control connection
          between the client and server. 
      -   The client uses the control connection to send
	  commands to the server.  
     
 
 
 -  34.7 Anonymous File Access 
     
     -   There is a special mode of FTP use where the
	  user logs in as "anonymous"  [usually the alias "ftp" is
	  accepted - for those of us who don't want to (or can't :-) spell out
	  "anonymous".]  
      -   Access is granted with no password, or
	  just by requiring the user to enter an e-mail address. 
      -  Anonymous FTP is useful for allowing  downloads
	  and uploads of material that is "posted" in a shared public area of
	  a host's file system - electronic bulletin boards. 
     
 
 
 -  34.8  File Transfer In Either Direction  
     
     -  One can transfer files from local to remote with  send, put, or mput.  
      -  One can transfer files from remote to local with  get or mget.  
      -  However these operations are constrained by whatever access
	  restrictions have been placed on directories and files.
	  
     
 
 
 -  34.9  Wildcard Expansion in File Names 
     
     -  One may use  wildcard characters  with
	  mput or mget. 
      
 -  34.10 File Name Translation  
     
     -  Sometimes when we transfer files from one computer to another, we
          need to change the names of files because of incompatible naming
	  rules.  BSD ftp has commands for specifying how names should be
	  changed.  For example you can use mget with a wildcard and all the
	  filenames will be mapped from lower-case to upper-case and/or
	  extensions of .txt will be changed to .ASC. 
      
 -  34.11 Changing Directories and Listing Contents  
     
     -  To allow users to deal with the directory system on the remote
	  computer,  FTP supports pwd,
	  cd, cdup, dir, and ls commands.
	   
      
 -  34.12 File Types and Transfer Modes  
     
     -  FTP can transfer in  text mode or binary mode.
	   
      -   Text mode is for files that consist solely of
	  sequences of characters  separated into lines. 
      -   Binary mode is for everything else.  
          
      -   Text mode will handle translation 
	  between text representation differences between machines.  For
	  example it will substitute the linefeed only convention of unix for
	  the carriage-return, linefeed convention of DOS and Windows.
	  
      -   Binary mode does no translation  -- just
	  transfers bit-for-bit.  
      
 -  34.13 Example FTP Session  
     
     -  The example is on pages 520-522 of the fourth edition.  You can
          successfully connect to ftp.cs.purdue.edu with ftp and perform the
	  interaction illustrated.  Try it!
	  
      
 -  34.14 Verbose Output  
     
     -  ftp has a verbose command that toggles verbose and quiet
	  modes of operation.  
      
 -  34.15 Client-Server Interaction in FTP  
     
     -  The client does not just pass all the characters typed by the user
	  to the server. 
      -   The client interprets what the user types and
	  sends commands to the server (when necessary) that achieve the
	  result desired by the user.  
      -  The client and server communicate  using the
	  language of FTP -- the protocol.  
     
 
 
 -  34.16 Control and Data Connections  
     
     -   For each file transfer the client and the
	  server form a separate connection  -- distinct from the
	  original control connection.  
      -   The control connection persists for the
	  duration of a session  (what happens between an open and a
	  close) but each data connection is terminated after transferring one
	  file.  
      -  The  FTP server on the remote host acts as a
	  client when it opens a data connection  back to the local
	  host.  
      
 -  34.17 Data Connections And End Of File  
     
     -  
           Advantages of having separate control and data
	  connections:   
          
	  
          -  Implementation is simple -  no problem
	       distinguishing data from control commands.    
	  
           -   Client can control the file transfer
	       interactively  -- for example s/he can send an abort
	       command in the middle of the transfer. 
	  
           -  The  sender does not have to state the size
	       of the file before starting the transfer.   
	       The sender may write to the end of the file while the
	       (beginning of) the file is being transferred. 
	       The  sender closes the data connection to
	       signal that the transfer has completed.  The receiver
	       gets the end-of-file condition from the underlying protocol.
	       
	  
           
      
 -  34.18  Trivial File Transfer Protocol  
	   
     
     -  TFTP is Trivial File Transfer Protocol. 
 
      -   TFTP uses UDP  and FTP uses TCP.
	  
      -  TFTP is not interactive. 
 
      -  TFTP can only get public files that it already "knows about."
          
      -   TFTP software can be small enough so that TFTP,
	  UDP, and IP will all fit in ROM.   
      -   Diskless workstations commonly use TFTP when
	  they boot.   
 
      -  A ROM program in the client broadcasts a request, establishes a
	  connection with a boot server,  uses TFTP to
	  download an image of an OS, and executes the OS.   
      -  It can be cost-effective to use diskless clients that mount file
	  systems from file servers (or clients with only low-capacity local
	  disks). 
      -  It is easy to "upgrade" the OS of a large number of diskless
	  workstations.  Just change the software they download from the boot
	  server.  
      
 -  34.19 Network File System  
     
     -   NFS uses UDP to transfer file blocks across a
	  network between a client host and a server.  
      -  NFS makes it possible for a client to  mount a
	  remote file system  onto an arbitrary location in its
	  directory "tree."  
      -  NFS is an alternative to FTP.   NFS is for
	  block-at-a-time transfers  while FTP is oriented towards
	  transferring whole files.  
      
 -  34.20 Summary