tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search

RFC 1415

 
 
 

FTP-FTAM Gateway Specification

Part 2 of 3, p. 18 to 38
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 18 
6. Document Type Support

   The set of FTAM document types supported by the FTP-FTAM gateway is a
   subset of the document types identified in the Stable Implementation
   Agreements for Open Systems Interconnection Protocols:  Part 9 - FTAM
   Phase 2, produced by the March 1992 Open Systems Environment
   Implementors' Workshop [NIST92].  This subset was chosen for its
   equivalence to those document types supported by FTP.  The set
   includes:

                FTAM-1    "ISO FTAM Unstructured text file

                FTAM-3    "ISO FTAM Unstructured binary file

                NBS-9     "NBS-9 FTAM File directory file"

      FTAM document types map to FTP document types as follows:

                FTAM      <->       FTP
                ----------------------------------

                FTAM-1    <->       ASCII

                FTAM-3    <->       8 bit binary

                NBS-9     <->       Directory

   Gateway support for FTAM-1 and FTAM-2 is required, whereas support
   for NBS-9 is recommended.

6.1. Notes on NBS-9

   NBS-9 is optional in GOSIP versions 1 and 2 [NIST91].  NBS-9 will be
   superseded by its replacement when ISO/IEC ISP 10607-2 and ISO/IEC
   ISP 10607-2/Amendment 1 are published [NIST92].

   For conformance to NBS-9, an FTAM Responder is only required to
   return the <Filename> file attribute, subject to local security and
   access control.  All other requested attributes need not be returned.

   Systems supporting the NBS-9 document type shall make available an
   NBS-9 document called 'DIRLIS'.  This document can be used to obtain
   a listing of files and their associated attributes from a remote
   Filestore.

Top      Up      ToC       Page 19 
7. Functional Comparison of FTP and FTAM

   A comprehensive comparison of the services offered by FTP and FTAM is
   beyond the scope of this specification.  What follows is an analysis
   of several key points.  Refer to [NIST 86a] and [ROSE90] for a more
   complete discourse on this topic.

   FTAM is not a superset of FTP; each protocol has functions that only
   it performs.  The set of FTAM functions is, however, larger than the
   set of FTP functions.

   FTP combines file management and file transfer into one protocol
   engine, whereas FTAM separates management and transfer as they relate
   to files.

   The file transfer services of both FTP and FTAM expect a reliable
   underlying end-to-end service.  At a minimum, this service includes
   the capability to transfer entire files between remote hosts and to
   display remote filenames.

   In addition to this basic file transfer service, FTAM supports the
   capability to:  access a few records from a file server, create a
   network file system (similar to Sun's Network File System), handle
   printing and spooling, and access remote database records.  FTP does
   not support these additional capabilities.

   FTP uses TELNET services to set up a connection between the FTP
   Client and FTP Server.  A three-digit reply code followed by
   explanatory text indicates the status of the preceding request and
   provides diagnostic information explaining each transaction.

   FTAM relies on the Association Control Service Element (ACSE) to
   start and stop the network for network file interaction.  Generally,
   the ASCE establishes the application association and related
   application context needed to support the FTAM protocol.

   The FTAM protocol is modularized so as to keep the allowable number
   of actions in any particular state relatively small.  There are many
   more possible sequences of FTP operations than possible sequences of
   FTAM operations [NIST86].

   Because FTAM is more robust than FTP, FTAM allows greater flexibility
   for conveying information about files.  FTAM deals only with aspects
   of application processes, and leaves data representation and data
   management facilities to other OSI service elements.

   In contrast to the Client/Server model present in the FTP scheme,
   FTAM is based on the Initiator/Responder model.  The key distinction

Top      Up      ToC       Page 20 
   is that once the FTAM Initiator has established a connection with a
   remote host, either the Initiator or Responder can request services
   of the other.  In the FTP realm, the Client both initiates a
   connection and requests all services.

   The FTP Client knows the real properties of the remote host
   filesystem.  FTAM, in contrast, embraces a conceptual model of a
   filesystem, labeled a virtual filestore model.  The virtual filestore
   is a collection of files, each of which has a name that uniquely
   identifies it.  Each file has a set of attributes, such as ownership
   information and contents, which is the data associated with the file.
   One file attribute is the <Contents Type> of the file, typically of
   value "FTAM-1", "FTAM-3", or "NBS-9".  The FTAM Initiator only knows
   the properties of the corresponding Responder and virtual filestore,
   not the real properties of the filesystem on the remote host.

7.1. Loss of Functionality

   As happens whenever two dissimilar protocols, or languages for that
   matter, are translated, some loss of functionality is inevitable.
   With reference to the FTP-FTAM gateway, several of the most blatant
   losses of functionality are:

        1. Diagnostics passed between protocols may not be precisely
           translated.

        2. The FTAM partial file (record) transfer may not be
           supported.

        3. Some FTAM attributes are not supported by FTP.

   The primary goal of the gateway protocol mappings are to minimize
   this loss of functionality. As this gateway specification and
   subsequent implementations evolve, means to partially overcome loss
   of functionality may become more obvious.  For example, the gateway
   may be able to emulate file record transfers between FTAM Initiators
   and FTP Servers.

8. Mapping of Protocol Functions and Representations

   The mappings presented are based upon the FTAM protocol
   implementation as defined in Stable Implementation Agreements for
   Open Systems Interconnection Protocols:  Part 9 - FTAM Phase 2,
   produced by the March 1992 Open Systems Environment Implementors'
   Workshop [NIST92], and in [ISO8571-1], [ISO8571-2],[ISO8571-
   3],[ISO8571-4], and [ISO8571-5].  The FTP protocol as defined in
   Request for Comments [RFC959].   The mappings are strongly influenced
   by the work of M. A. Wallace et. al. at NIST [NIST86] and John Scott

Top      Up      ToC       Page 21 
   at MITRE [MITRE87].

   A key goal of the mappings presented in this document is to minimize
   the loss of functionality between the two protocols.  The specific
   approach taken to implement the mappings is left to the discretion of
   the gateway implementor.  The focus of the protocol function and
   representation mappings is on non-error encumbered processing.  The
   mapping of diagnostic and error messages is treated separately in
   section 9.

   At a minimum, the FTAM implementation in the FTP-FTAM gateway support
   for Implementation Profiles T1 (Simple File Transfer) and M1
   (Management), as defined in [NIST92], is required.  These
   Implementation Profiles correspond to the A/111 and A/13 Profiles of
   Standards Promotion and Application Group in Europe, respectively
   [NIST92].

   At a minimum, the gateway support for the following is required:

      ASCII and 8 bit binary file types.  It should also support FTP
      File Stream Mode.

      The following FTAM document types: FTAM-1 (unstructured text
      file), FTAM-3 (unstructured binary file), and NBS-9 (set of
      directory entries).

   POSIX file naming and organization conventions are assumed in these
   mappings; i.e., files in the systems are assumed to be organized in a
   hierarchical structure in which all of the non-terminal nodes are
   directories and all of the terminal nodes are any other type of file.

   The following terminology is used in the mapping specifications:

      argument .......FTP Service Command argument, as used in [RFC959].

      parameter ......FTAM Service Primitive parameters and attributes,
                      as enumerated in Tables 6, 50, and 51 of [ISO8571-
                      3].

   The following notation is used in the mapping specifications:

      Arguments and parameters are enclosed in angle brackets; e.g.,
      <Action Result>

      Values of arguments and parameters are enclosed in quotation
      marks; e.g., "Success"

Top      Up      ToC       Page 22 
      FTP Service Commands and FTAM Primitives are in uppercase; e.g., F-
      INITIALIZE

8.1.  FTP-Initiated Gateway Service

   The protocol mapping between FTP and FTAM may be one-to-zero (i.e.,
   not mappable), one-to-one, or one-to-many.

   The general steps taken by the FTP-FTAM gateway to provide the FTP-
   Initiated service are:

        1. Accept an FTP Client request at the FTP Server side of the
           gateway service.

        2. Map the request to the (set of) corresponding FTAM
           Initiator function(s).

        3. Acting as an FTAM Initiator, send the FTAM Initiator
           function(s) to the FTAM Responder.

        4. Accept information returned to the FTAM Initiator side of
           the gateway.  This information originated at the FTAM
           Responder.

        5. Map this returned information to the protocol form
           understood by the FTP Server side of the gateway.

        6. Send this returned information from the FTP Server side of
           the gateway to the FTP Client.

   For each FTP protocol function, the FTAM protocol functions required
   to map it are identified:

   FTP       FTAM

   ------------------------------------------------------------------

   ABOR      F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP

   ACCT      F-INITIALIZE,

   ALLO      none

   APPE      F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
             DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
             F-TRANSFER-END, F-WRITE

   CDUP      F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT

Top      Up      ToC       Page 23 
   CWD       F-BEGIN-GROUP, F-END-GROUP, F-DESELECT, F-SELECT

   DELE      F-BEGIN-GROUP, F-DELETE, F-END-GROUP, F-SELECT

   HELP      none

   LIST      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
             END-GROUP, F-OPEN, F-READ, F-READ-ATTRIBUTES, F-SELECT, F-
             TRANSFER-END

   MKD       none

   MODE      none

   NLST      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
             END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END

   NOOP      none

   PASS      F-INITIALIZE

   PASV      none

   PORT      none

   PWD       F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-READ-ATTRIBUTES,
             F-SELECT

   QUIT      F-P-ABORT or F-U-ABORT, F-TERMINATE

   REIN      F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP

   REST      F-CHECK, F-RESTART

   RETR      F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F-
             END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END

   RMD       none

   RNFR      F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT

   RNTO      F-BEGIN-GROUP, F-CHANGE-ATTRIBUTES, F-DESELECT, F-END-
             GROUP, F-SELECT

   SITE      F-INITIALIZE

   SMNT      none

Top      Up      ToC       Page 24 
   STAT      none

   STOR      F-BEGIN-GROUP,F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
             DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
             F-TRANSFER-END, F-WRITE

   STOU      F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F-
             DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT,
             F-TRANSFER-END, F-WRITE

   STRU      none

   TYPE      none

   USER      F-INITIALIZE

   The remainder of this section presents detailed mapping procedures
   for each of the FTP protocol functions.  Gateway support for these
   mappings is required.

8.1.1. ABOR

        1. Send F-CANCEL to FTAM Responder.
        2. Send the following grouped request to the FTAM Responder.
           F-BEGIN-GROUP
           F-CLOSE
           F-DESELECT
           F-END-GROUP
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           codes to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

8.1.2. ACCT

        1. Set <Account> parameter value for issuing F-INITIALIZE to
           FTAM Responder.
        2. If <Called Presentation Address>, <Initiator Identity>, and
           <Filestore Password> parameters are available, attempt
           connection with FTAM Responder;
           Otherwise wait for additional ACCT commands.
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           codes to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to

Top      Up      ToC       Page 25 
           FTAM Responder.

        Note:
        a. The ACCT command will be effective with the next PASS
           command.

8.1.3. ALLO

        1. Return a 200 reply code to FTP Client.

8.1.4. APPE

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 12.
        2. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-READ-ATTRIBUTES
                Save <Contents Type> parameter value
            F-DESELECT
            F-END-GROUP
        3. If the <Contents Type> parameter value returned with the
           F-READ-ATTRIBUTES has a value of "NBS-9", proceed to step
           12.
        4. Send the following grouped request to the FTAM responder.
            F-BEGIN-GROUP
            F-CREATE
                Set the <Override> parameter in the F-CREATE to
                "Select Old File".
            F-OPEN
            F-END-GROUP
        5. If the file existed, set the <Contents Type> parameter in
           the F-CREATE to match that returned by the
           F-READ-ATTRIBUTES.
        6. If the file did not exist and no previous FTP TYPE "Image"
           command was issued, then set the <Contents Type> parameter
           to "FTAM-1";
           Otherwise, set the <Contents Type> parameter to "FTAM-3".
        7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
           Operation> parameter set to "File Extend", to FTAM
           Responder.
        8. Loop reading data from FTP data connection, sending the
           data in F-DATA PDUs until end-of-file on the FTP
           connection.
        9. Send F-DATA-END to FTAM Responder.
        10. Send F-TRANSFER-END to FTAM Responder.
        11. Send the following grouped request to the FTAM Responder.

Top      Up      ToC       Page 26 
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        12. Translate FTAM Responder <Action Result> and <Diagnostic>
            parameters to equivalent FTP reply code(s) and send reply
            code(s) to FTP Client.
        13. Translate FTP Client reply codes to equivalent FTAM
            <Action Result> and <Diagnostic> parameters and send
            parameters to FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. CWD of the FTAM system must be defined prior to issuance of
           APPE.

8.1.5. CDUP

        1. Determine parent directory from saved CWD string.  If no
           saved CWD string, proceed to step 4.
        2. Set <Contents Type> parameter to "NBS-9".
        3. Send the following grouped request to FTAM Responder.
           F-BEGIN-GROUP
           F-SELECT
           F-DESELECT
           F-END-GROUP
        4. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        5. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. A POSIX file organization is assumed; i.e., files in the
           systems are organized in a hierarchical structure in which
           all of the non-terminal nodes are directories and all of
           the terminal nodes are any other type of file.
        b. If the parent directory does not exist, the current working
           directory remains unchanged.
        c. CWD of the FTAM system must be defined prior to issuance of
           CDUP.

8.1.6. CWD

        1. Save <pathname> argument as CWD string.
        2. Set <Contents Type> parameter to "NBS-9".

Top      Up      ToC       Page 27 
        3. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-DESELECT
            F-END-GROUP
        4. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        5. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. The <pathname> argument is assumed to be an absolute
           directory specification.
        b. If the specified directory does not exist, the current
           working directory remains unchanged.
        c. Saved CWD string is used in other FTP-to-FTAM mappings,
           such as APPE.

8.1.7. DELE

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 3.
        2. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-DELETE
            F-END-GROUP
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM
           parameters and send parameters to FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. CWD of the FTAM system must be defined prior to issuance of
           DELE.

8.1.8. HELP

        1. If no <string> argument is provided, send helpful
           information about the implementation of the gateway to the
           FTP Client.  If an argument is provided, send more specific
           information.

Top      Up      ToC       Page 28 
        2. Return the FTP reply code 214 to the FTP Client.

8.1.9. LIST

        1. If <pathname> argument is provided, proceed to step 3.
        2. Save current pathname by appending saved CWD string with
           <pathname> argument; If no saved CWD string, proceed to
           step 11.
        3. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-READ-ATTRIBUTES
                Save <Filename>, <Contents Type>, <Data/Time of Last
           Modification>, and <Filesize> parameters
            F-DESELECT
            F-END-GROUP
        4. If the <Contents Type> parameter of the F-READ-ATTRIBUTES
           is not "NBS-9", then return the <Filename>, <Contents
           Type>, <Date/Time of Last Modification>, and <Filesize>
           parameter values, obtained with the previous
           F-READ-ATTRIBUTES, to the FTP data connection;
           and proceed to step 8.
        5. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-OPEN
            F-END-GROUP
        6. Send F-READ to FTAM Responder.
        7. Loop reading F-DATA until F-DATA-END.  As data is received,
           write the <Filename>, <Permitted Actions>, <Contents Type>,
           and <Date/Time of Last Modification> parameter values from
           the PDU to the FTP data connection.
        8. Send F-TRANSFER-END to FTAM Responder.
        9. Send the following grouped request to the FTAM responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        10. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        11. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. Assume the <pathname> argument is relative to the saved
           CWD, whether filename or directory specification.

Top      Up      ToC       Page 29 
        b. CWD of the FTAM system must be defined prior to issuance of
           LIST.
        c. Transfers over data connection should be in ASCII.
        e. If list of files with full directory/file specification is
           received from FTAM Responder, then gateway should parse
           list to strip off directory portion.

8.1.10. MKD

        1. Return a 502 reply code (Command not implemented) to the
           FTP Client.

        Note:
        a. As indicated in the NIST Stable Implementation Agreements
           for FTAM [NIST92], creation or deletion of NBS-9 files is
           outside the scope of the agreements.

8.1.11. MODE

        1. If <argument> is "Stream", return 200 reply code to FTP
           Client; Otherwise return a 504 reply code (Command not
           implemented for that parameter).

8.1.12. NLST

        1. If <pathname> argument is provided, use <pathname> argument
           as <Filename> parameter value in F-SELECT issued in step 3.
        2. If no argument is provided, use saved CWD value as
           <Filename> parameter value in F-SELECT issued in step 3; If
           no CWD string is saved and no argument is provided, proceed
           to step 9.
        3. Set <Contents Type> parameter to "NBS-9".
        4. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-OPEN
            F-END-GROUP
        5. Send F-READ to FTAM Responder.
        6. Loop reading F-DATA until F-DATA-END.  As data is received,
           write the filenames and other useful information from the
           PDU to the FTP data connection.
        7. Send F-TRANSFER-END to FTAM Responder.
        8. Send the following grouped request to the FTAM responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        9. Translate FTAM Responder <Action Result> and <Diagnostic>

Top      Up      ToC       Page 30 
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        10. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. As per RFC 959 (FTP), the NLST <pathname> argument is a
           directory.
        b. Assume the argument is relative to the saved CWD, whether
           filename or directory specification.
        c. CWD of the FTAM system must be defined prior to issuance of
           NLST.
        d. Transfers over data connection should be in ASCII.
        e. Gateway should parse full directory/file specifications
           received from FTAM Responder to strip off directory
           portion.  This is required to support the "FTP multiple
           get" function that pipes NLST output to the STOR command.

8.1.13. NOOP

        1. Return a 200 reply code to FTP Client.

8.1.14. PASS

        1. Set <Filestore Password> parameter for F-INITIALIZE.
        2. If <Called Presentation Address>, <User Identity>, and
           <Filestore Password> are available, issue F- INITIALIZE to
           FTAM Responder.
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

8.1.15. PASV

        1. Wait for data transfer on default data port or data port
           specified by PORT command.
        2. Return a 200 reply code to FTP Client.

8.1.16. PORT

        1. Return a 200 reply code to FTP Client.

Top      Up      ToC       Page 31 
8.1.17. PWD

        1. If there is a saved CWD string, return it to the FTP client
           and proceed to step 4.
        2. Set <Contents Type> attribute to "NBS-9".
        3. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-READ-ATTRIBUTES
            F-DESELECT
            F-END-GROUP
        4. Return the current directory name to the FTP client.
        5. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        6. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

8.1.18. QUIT

        1. If user is not logged in, proceed to step 5.
        2. If file transfer is in progress, send F-P-ABORT or
           F-U-ABORT to FTAM Responder.
        3. If file transfer is not in progress, send and F-TERMINATE
           to FTAM Responder.
        4. Return charge information to FTP Client.
        5. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        6. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

8.1.19. REIN

        1. Flush all I/O and account information.
        2. Allow all transfers in progress to be completed.
        3. Set all parameters to default values.
        4. Send F-CANCEL to FTAM Responder.
        5. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        6. Leave the control connection open.
        7. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply

Top      Up      ToC       Page 32 
           code(s) to FTP Client.
        8. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. Typically followed by a USER command.

8.1.20. REST

        1. Send F-CHECK to FTAM Responder.
        2. Send F-RESTART to FTAM Responder.
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Notes:
        a. Will only have affect on FTAM Responder if the restart
           functional unit is negotiated on F-INITIALIZE.
        b. Refer to ISO 8571-3 for additional subtleties of FTAM
           checkpoint and restart.

8.1.21. RETR

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 9.
        2. Set <Contents Type> parameter to appropriate type of file.
        3. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-OPEN
            F-END-GROUP
        4. If file does not exist, proceed to step 9.
        5. Send F-READ to FTAM Responder.
        6. Loop reading F-DATA until F-DATA-END.  As data is received,
           write it to the FTP data connection.
        7. Send F-TRANSFER-END to FTAM Responder.
        8. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        9. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply

Top      Up      ToC       Page 33 
           code(s) to FTP Client.
        10. Translate FTP Client reply codes to equivalent FTAM <Action
            Result> and <Diagnostic> parameters and send parameters to
            FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. CWD of the FTAM system must be defined prior to issuance of
           RETR.

8.1.22. RMD

        1. Return a 502 reply code (Command not implemented) to the
           FTP Client.

        Note:
        a. As indicated in the NIST Stable Implementation Agreements
           for FTAM [NIST92], creation or deletion of NBS-9 files is
           outside the scope of the agreements.

8.1.23. RNFR

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 3.
        2. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
                Get <Filename> parameter value from RNFR <pathname>
           argument.
            F-DESELECT
            F-END-GROUP
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. Together with RNTO, this command causes a file to be
           renamed.
        c. CWD of the FTAM system must be defined prior to issuance of
           RNFR.

Top      Up      ToC       Page 34 
8.1.24. RNTO

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 3.
        2. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-CHANGE-ATTRIBUTES
                Get <Filename> parameter from arguments provided by
                RNTO and previous RNFR.
            F-DESELECT
            F-END-GROUP
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. Together with RNFR, this command causes a file to be
           renamed.
        c. CWD of the FTAM system must be defined prior to issuance of
           RNTO.

8.1.25. SITE

        1. Save the specified destination address information.
        2. Set the <Called Presentation Address> parameter value equal
           to the <string> argument.  This parameter will be used when
           the F-INITIALIZE is sent to the FTAM Responder.
        3. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        4. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. The <string> argument to the SITE command may include a
           Distinguished Name or a User Friendly Name.

Top      Up      ToC       Page 35 
8.1.26. SMNT

        1. Return a 502 reply code to FTP Client.

        Note:
        a. Argument is ignored.

8.1.27. STAT

        1. Provide the gateway session status to the FTP Client.
        2. Return a 211 reply code to FTP Client.

        Note:
        a. Argument is ignored.

8.1.28. STOR

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 11.
        2. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-READ-ATTRIBUTES
                Save <Contents Type> parameter value
            F-DESELECT
            F-END-GROUP
        3. If the <Contents Type> parameter returned with the F-READ-
           ATTRIBUTES indicates a directory,  proceed to step 11.
        4. Send the following grouped request to the FTAM responder.
            F-BEGIN-GROUP
            F-CREATE
                Set the <Override> parameter in the F-CREATE to
                "Delete and create with new attributes.".
            F-OPEN
            F-END-GROUP
        5. If the file existed, set the <Contents Type> parameter in
           the F-CREATE to match the F-READ-ATTRIBUTES.  If the file
           did not exist, set the <Contents Type> parameter to
           "FTAM-1".  If TYPE "Image" was previously requested, set
           the <Contents Type> parameter to "FTAM-3".
        6. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
           Operation> parameter set to "File Extend", to FTAM Responder.
        7. Loop reading data from FTP data connection, sending the
           data in F-DATA PDUs until end-of-file on the FTP
           connection.
        8. Send F-DATA-END to FTAM Responder.
        9. Send F-TRANSFER-END to FTAM Responder.

Top      Up      ToC       Page 36 
        10. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        11. Translate FTAM Responder <Action Result> and <Diagnostic>
            parameters to equivalent FTP reply code(s) and send reply
            code(s) to FTP Client.
        12. Translate FTP Client reply codes to equivalent FTAM
            <Action Result> and <Diagnostic> parameters and send
            parameters to FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. CWD of the FTAM system must be defined prior to issuance of
           STOR.

8.1.29. STOU

        1. Save current pathname by appending saved CWD string with
           <pathname> argument.  If no saved CWD string, proceed to
           step 11.
        2. Send the following grouped request to FTAM Responder.
            F-BEGIN-GROUP
            F-SELECT
            F-READ-ATTRIBUTES
                Save <Contents Type> parameter value
            F-DESELECT
            F-END-GROUP
        3. If the file already exists, proceed to step 12.
        4. If the <Contents Type> parameter returned with the F-READ-
           ATTRIBUTES indicates a directory, proceed to step 11.
        5. Send the following grouped request to the FTAM responder.
            F-BEGIN-GROUP
            F-CREATE
                Set the <Override> parameter in the F-CREATE to
                "Delete and create with new attributes.".
            F-OPEN
            F-END-GROUP
        6. If the file existed, set the <Contents Type> parameter in
           the F-CREATE to match the F-READ-ATTRIBUTES.  If the file
           did not exist, set the <Contents Type> parameter to
           "FTAM-1".  If TYPE "Image" was previously requested, set
           the <Contents Type> parameter to "FTAM-3".
        7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU
           Operation> parameter set to "File Extend", to FTAM Responder.
        8. Loop reading data from FTP data connection, sending the

Top      Up      ToC       Page 37 
           data in F-DATA PDUs until end-of-file on the FTP
           connection.
        9. Send F-DATA-END to FTAM Responder.
        10. Send F-TRANSFER-END to FTAM Responder.
        11. Send the following grouped request to the FTAM Responder.
            F-BEGIN-GROUP
            F-CLOSE
            F-DESELECT
            F-END-GROUP
        12. Translate FTAM Responder <Action Result> and <Diagnostic>
            parameters to equivalent FTP reply code(s) and send reply
            code(s) to FTP Client.
        13. Translate FTP Client reply codes to equivalent FTAM
            <Action Result> and <Diagnostic> parameters and send
            parameters to FTAM Responder.

        Note:
        a. <pathname> argument is assumed to be a filename, relative
           to the currently saved CWD.
        b. Same as STOR, except the name of the created file must be
           unique in that directory.
        c. CWD of the FTAM system must be defined prior to issuance of
           STOU.

8.1.30. STRU

        1. If <structure code> argument is not "File", return 504
           reply code to FTP Client; Otherwise return 200 reply code
           to FTP Client.

8.1.31. SYST

        1. Return 502 reply code to FTP client.

8.1.32. TYPE

        1. If no <type code> argument is provided, set <Contents Type>
           parameter equal to "FTAM-1".
        2. If argument is provided, and equal to "ASCII", set <Contents
           Type> parameter to "FTAM-1".
        3. If argument is provided, and equal to "Image", set <Contents
           Type> parameter to "FTAM-3".
        4. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        5. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

Top      Up      ToC       Page 38 
        Note:
        a. Default to ASCII if no <type code> argument is provided.

8.1.33. USER

        1. Set <Initiator Identity> parameter for issuing F-INITIALIZE
           to FTAM Responder.
        2. If the destination address was specified in the Domain Name
           used to attach to the gateway, use it to set the value of
           the <Called Presentation Address> parameter of the
           to-be-issued F-INITIALIZE command.
        3. If the destination address is not known, check if it was
           specified in a previously issued SITE command.  If
           available, set <Called Presentation Address> parameter for
           issuing F-INITIALIZE to FTAM Responder.
        4. If the destination address is still not available, check if
           it is encoded in the user identity (e.g., user@host). If
           encoded, set <Called Presentation Address> parameter for
           issuing F-INITIALIZE to FTAM Responder using the "host"
           portion.
        5. If no destination address is available, proceed to step 7.
        6. Prompt user for password.
        7. Translate FTAM Responder <Action Result> and <Diagnostic>
           parameters to equivalent FTP reply code(s) and send reply
           code(s) to FTP Client.
        8. Translate FTP Client reply codes to equivalent FTAM <Action
           Result> and <Diagnostic> parameters and send parameters to
           FTAM Responder.

        Note:
        a. A USER command should be acceptable in any state.
        b. Multiple mechanisms are available for specifying the
           destination address: 1) Domain Name used in connecting to
           gateway (see section 4, Use of Gateway Services); 2) SITE
           command argument; and 3) user@host format.



(page 38 continued on part 3)

Next RFC Part