As per Relevance of the word equivalent, we have this rfc below:
Network Working Group J.
Request for Comments: 1415 R.
Open Networks, Inc
January 1993
FTP-FTAM Gateway
Status of the
This RFC specifies an IAB standards track protocol for the
community, and requests discussion and suggestions for improvements
Please refer to the current edition of the "IAB Official
Standards" for the standardization state and status of this protocol
Distribution of this memo is unlimited
This memo describes a dual protocol stack application layer
that performs protocol translation, in an interactive environment
between the FTP and FTAM file transfer protocols
Two key assumptions are made: 1) POSIX file naming conventions
hierarchical organization, rather than proprietary conventions are
use; and 2) X.500 Directory Services are available
The authors of this RFC would like to express their appreciation
the individuals and organizations that participated in
implementation of the FTP-FTAM Application Layer Gateway and
fielding on the MILNET. Implementation credits go to Mr. John Scott
formerly of the MITRE Corporation, while fielding credits
extended to James Graham and R. Greg Lavender of Open Networks, Inc
(formerly NetWorks One) and Robert Cooney of the Naval Computer
Telecommunications Station (NCTS) Washington. Dr. Marshall Rose
to be commended for recognizing the importance of the FTP-
gateway and promulgating it as a part of the ISO
Environment (ISODE). The following individuals have
valuable editorial comments: Larry Friedman, Donna Vincent
Michael Resnick of Digital Equipment Corporation; Robert Cooney
NCTS; and S.E. Hardcastle-Kille of University College London.
of the FTP-FTAM Gateway Request for Comments effort was provided
Open Networks Inc. and the Defense Information Systems Agency (DISA),
formerly the Defense Communications Agency. DISA sponsors
Len Tabacchi, George Bradshaw, Tom Clarke, and Betsy Turner
Mindel & Slaski [Page 1]
RFC 1415 FTP-FTAM Gateway Specification January 1993
Table of
1. Introduction..................................................2
1.1. Relationship to Other Work ................................3
1.2. Overview of Gateway Operation .............................4
2. Gateway Architecture..........................................6
3. Network Naming and Addressing.................................8
4. Use of the Gateway Services...................................9
4.1. FTP-Initiated Gateway Service .............................9
4.2. FTAM-Initiated Gateway Service ...........................11
4.3. Summary of Usage .........................................12
5. Gateway State Variables and Transitions......................13
5.1. FTP-Initiated Gateway Service ............................14
5.2. FTAM-Initiated Gateway Service ...........................16
6. Document Type Support........................................18
6.1. Notes on NBS-9 ...........................................18
7. Functional Comparison of FTP and FTAM........................19
7.1. Loss of Functionality ....................................20
8. Mapping of Protocol Functions and Representations.............20
8.1. FTP-Initiated Gateway Service .............................22
8.2. FTAM-Initiated Gateway Service ............................38
9. Mapping between FTP Reply Codes and FTAM Parameters...........47
9.1. FTP Reply Codes to FTAM Parameters ........................48
9.2. FTAM Parameters to FTP Reply Codes ........................50
9.3. Future Mapping Problem ....................................54
9.4. Error Handling ............................................54
10. Implementation and Configuration Guidelines..................54
10.1. Robustness ...............................................54
10.2. Well-Known TCP/IP Port ...................................55
10.3. Gateway Listener Processes ...............................55
10.4. Implementation Testing ...................................55
10.5. POSIX File Naming and Organization .......................55
11. Security Considerations......................................55
12. References...................................................56
13. Authors' Addresses...........................................58
1.
The TCP/IP and OSI protocol suites will coexist in the
community for several years to come. As more and more OSI hosts
fielded on the Internet, the requirement for gateways between the
protocol suites becomes more pressing
This specification describes an application layer gateway
interoperability between the TCP/IP File Transfer Protocol (FTP)
the OSI File Transfer, Access, and Management (FTAM) protocol.
proposed application layer gateway is based on a bi-directional
of mappings between the FTP and FTAM protocols. Since the
Mindel & Slaski [Page 2]
RFC 1415 FTP-FTAM Gateway Specification January 1993
have quite different command structures, the mappings between
are not one-to-one. This paper assumes knowledge of the
Transfer Protocol (FTP) [RFC959] and the File Transfer, Access,
Management Protocol (FTAM) [ISO8571-1,2,3,4,5].
Two important goals of the mappings are to
Provide FTP users with as much emulated FTP capability on
FTAM Responder as possible,
Provide FTAM users with as much emulated FTAM capability on
FTP Server as possible
Though it is anticipated that the application layer gateway will
implemented on full protocol suites of both TCP/IP and OSI, at
one implementation of such a gateway (included in the ISO
Environment) can be configured to operate FTAM over either OSI
TCP/IP lower-layer services
1.1. Relationship to Other
Ideas presented in this specification are based on lessons learned
fielding the gateway on the MILNET, operational at NCTS
D.C. since 1989, and on the efforts of M. A. Wallace et al. of
National Institute of Standards and Technology (NIST) [NIST86].
1986, NIST published a design document for an FTP-FTAM gateway
Since that time, at least one implementation (for a subset of the
and FTAM protocols) of the gateway has been developed [MITRE87]
is included with the ISODE. This implementation is based on the
protocol translator gateway design [NIST86].
This document's contribution to the advancement of the FTP-
gateway concept is to
* Enhance the user interaction capability provided by the
implementation of the FTP-FTAM application layer gateway
* Clarify and enhance the mappings (FTP to FTAM, FTAM to FTP
documented by NIST
* Provide guidelines for fielding the FTP-FTAM application
gateway on the Internet so that it is useful as an
resource
* Produce a formal specification for the FTP-FTAM gateway
for implementors to use in building additional FTP-
gateways
Mindel & Slaski [Page 3]
RFC 1415 FTP-FTAM Gateway Specification January 1993
* Provide a formal specification for organizations wishing
procure FTP-FTAM gateways
1.2. Overview of Gateway
The gateway provides a virtual end-to-end application file
service. As data is sent via FTP, the gateway immediately maps
requested function to FTAM and passes it to the FTAM host. In
similar fashion, but using a different set of mappings, an
request is sent to the gateway, immediately mapped to an
function, and passed along to the FTP host
In FTP, the two parties involved in a file transfer are the
and Server. The Client is responsible for initiating a connection
the Server. Once the connection is established, all service
originate from the Client. The FTP-FTAM gateway does not support
FTP three node model
In FTAM, the two parties involved in a file transfer are
Initiator and Responder. The Initiator is responsible for
a connection to the Responder. Once the connection is established
either the Initiator or Responder may issue service requests to
other
The FTP-FTAM gateway provides two sets of services
1. FTP-Initiated Gateway
Utilized when an FTP Client contacts the FTP-FTAM gateway
instigate a file transfer with an FTAM Responder
2. FTAM-Initiated Gateway
Utilized when an FTAM Initiator contacts the FTP-
gateway to instigate a file transfer with an FTP Server
The gateway services' names were selected to identify the roles
the FTP-FTAM gateway plays when performing file transfers.
example, when a file transfer is instigated by an FTP Client,
contacts the FTP Server portion of the gateway, which maps
information to the FTAM Initiator portion of the gateway, which
turn contacts the remote FTAM Responder. This example scenario
the FTP-Initiated Gateway Services
Figure 1 illustrates the perspective of the application process
the FTP-Initiated service. Figure 2 illustrates that of the FTAM
Initiated service
Mindel & Slaski [Page 4]
RFC 1415 FTP-FTAM Gateway Specification January 1993
TCP Host OSI
+--------------+ +------------------+
| FTP Client | | FTAM Responder |
+--------------+ +------------------+
| |
| |
| |
| FTP-FTAM Gateway |
| +--------------------------------+ |
+-- | FTP Server FTAM Initiator | --+
+--------------------------------+
Figure 1 - FTP-Initiated Gateway
Mindel & Slaski [Page 5]
RFC 1415 FTP-FTAM Gateway Specification January 1993
TCP Host OSI
+--------------+ +------------------+
| FTP Server | | FTAM Initiator |
+--------------+ +------------------+
| |
| |
| |
| |
| FTP-FTAM Gateway |
| +--------------------------------+ |
+-- | FTP Client FTAM Responder | --+
+--------------------------------+
Figure 2 - FTAM-Initiated Gateway
2. Gateway
The gateway architecture, termed a protocol translator [NIST86],
depicted in Figure 3. It implements TCP/IP and OSI protocol
with an application level process providing the link between the two
The link between FTP and FTAM is defined by two sets of
mappings, one each for the FTP-Initiated and FTAM-Initiated
sets
Mindel & Slaski [Page 6]
RFC 1415 FTP-FTAM Gateway Specification January 1993
+------------+ +-------------+
| FTP Host | | FTAM Host |
+------------+ +-------------+
| |
| |
| |
| |
| +---------------------------------+ |
| | FTP - FTAM | |
| | Gateway Application | |
| |---------------------------------| |
| | FTP | FTAM | |
| |----------------+----------------| |
| | TCP/IP | TP4/et al | |
| +---------------------------------+ |
| /|\ /|\ |
| | | |
+------------+ +-------------+
Figure 3 - Gateway Protocol
A fundamental aspect of this gateway architecture is that data
mapped and transmitted immediately; i.e., no transferred file
ever reside on the gateway file system. In the context of
document, the term "filesystem" refers to the file access
maintenance mechanisms provided by the operating system. This
of gateway filesystem interaction helps speed up the end-to-end
transfer. Another speed-enhancing feature of this architecture
that both the FTP and FTAM network connections can
Mindel & Slaski [Page 7]
RFC 1415 FTP-FTAM Gateway Specification January 1993
simultaneously. Additional advantages include
1. FTP and FTAM hosts require no modification to utilize
services
2. Users require no knowledge of the other protocol
3. Gateway access control is not impaired (since users
directly access the gateway filesystem).
4. No additional filesystem space is required on the gateway
5. Interactive nature of protocols is preserved
6. Users become aware of fatal errors immediately
Disadvantages of this design include the initial coding
required to develop the gateway and the subsequent re-coding
required to keep it current
3. Network Naming and
The network naming and addressing schemes used by FTP (Domain
(DN), IP Addresses) and FTAM (Distinguished Names,
Addresses) are quite different. This issue is quite apparent when
user of one protocol needs to identify a destination host of
other protocol
In the TCP/IP naming and addressing scheme, the identity of the
Server is its DN and its IP address [RFC1101]. To initiate
connection to an FTP Server, the FTP Client looks up a DN in
the Domain Name System (DNS) or static host table and obtains an
address
In the OSI naming and addressing scheme, the identity of the
Responder service is its Distinguished Name in the OSI
(X.500 or static table) and its Presentation address.
Distinguished Name is an authoritative description of the service.
Presentation address consists of a Presentation selector, a
selector, a transport selector, and a network address. To initiate
connection to an FTAM Responder, the FTAM Initiator contacts the
Directory, presents the Distinguished Name of the desired
Responder and asks for the Presentation address attribute
with that name
An alternative to the direct use of Distinguished Names is to
"User Friendly Naming", as defined in [Kille92]. Gateway support
"User Friendly Naming" is recommended, but not required
Mindel & Slaski [Page 8]
RFC 1415 FTP-FTAM Gateway Specification January 1993
4. Use of the Gateway
4.1. FTP-Initiated Gateway
The FTP Client uses the FTP-Initiated gateway service to utilize
resources of an FTAM Responder
To initiate a file transfer from an FTP Client, the Client
to the FTP-Initiated gateway service via TCP/IP. The gateway
establishes a connection, via OSI, to the FTAM Responder. At
point, the user can initiate file transfer operations
The FTP Client is responsible for providing the gateway with
authoritative Distinguished Name, or a User Friendly Name, of
desired OSI filestore. It is the responsibility of the gateway
resolve this Distinguished Name, or User Friendly Name, to
corresponding Presentation address
The logon sequence taken by an FTP Client when initiating a
transfer with an FTAM Responder is given below
% ftp
ftp> site Distinguished-Name-of-FTAM
ftp> user
ftp> pass
The "ftp gateway" command initiates the connection between the
Client and the gateway. Once connected to the gateway, the
Client should identify the desired FTAM Responder service via
Responder's Distinguished Name, or User Friendly Name, which
resolved by an algorithm running on the Directory Services provider
This information is sent via a "site Distinguished-Name-of-
Responder" or "site UFN-of-FTAM Responder" command
Upon receipt of a Distinguished Name or a User Friendly Name, it
the gateway's responsibility to resolve it to the
Address associated with that name. This resolution is done
contacting the OSI Directory (X.500 or local static table)
presenting the Distinguished Name or User Friendly Name. Once
Presentation address is obtained, the gateway can attempt
connection with the ultimate destination file transfer
represented by this Presentation address
The userid is passed via the "user username" command, and
password is passed via the "pass password". If the FTAM
requires a password, a password prompt should appear after
the "user username" command. It is anticipated that
authentication mechanisms will be required for DoD gateways in
Mindel & Slaski [Page 9]
RFC 1415 FTP-FTAM Gateway Specification January 1993
future
Using a specific example, suppose an FTAM Responder has the
Distinguished Name
CountryName = "US
Organization = "Open Networks
OrganizationalUnit = "Network Services
CommonName = "netwrx1"
CommonName = "FTAM service
and the FTP-FTAM gateway is available at "washdc1-osigw.navy.mil".
The FTP user action will appear as
% ftp washdc1-osigw.navy.
ftp> site "c=US@o=Open Networks@ou=Network Services@cn=netwrx
@cn=FTAM service
ftp> user
ftp> pass ***********
The "ftp washdc1-osigw.navy.mil" command initiates the
between the FTP Client and the FTP-FTAM gateway at the
Navy Yard, Washington D.C. Once connected, the OSI filestore at
Networks is identified via its Distinguished Name, "@c=US@o=
Networks@ou=Network Services@cn=netwrx1@cn=FTAM service".
Alternatively, a User Friendly Name, such as
"netwrx1, Open Networks, us
can be specified, enabling the following FTP user action
% ftp washdc1-osigw.navy.
ftp> site "netwrx1, Open Networks, us
ftp> user
ftp> pass ***********
As this example indicates, use of an intermediate gateway is
transparent. To partially alleviate this awkwardness, the
can be made more transparent through the registration of the
host in the DNS using the address of the gateway [RFC1279].
An example will clarify this point. Suppose that the "netwrx1,
Networks, us" FTAM host is registered in the TCP/IP DNS with the
of "ftam-service.netwrx1.com" and the IP address of the "washdc1-
osigw.navy.mil" gateway. In this example, the following set of
actions is required
Mindel & Slaski [Page 10]
RFC 1415 FTP-FTAM Gateway Specification January 1993
% ftp ftam-service.netwrx1.
ftp> user
ftp> pass ***********
Since the "ftam-service.netwrx1.com" really points to the
address, the first command will connect the FTP Client to
gateway. The gateway will then use the name (using [RFC1279])
determine where the actual FTAM host is resident. Gateway
for RFC1279 is recommended, but not required
4.2. FTAM-Initiated Gateway
The FTAM Initiator uses the FTAM-Initiated gateway service to
the resources of an FTP Server
To initiate a file transfer from an FTAM Initiator, the
connects to the FTAM-Initiated gateway service via OSI. The
then establishes a connection, via TCP/IP, to the FTP Server.
this point, the user can initiate file transfer operations
The FTAM Initiator is responsible for providing the gateway with
authoritative DN of the desired TCP/IP filestore. It is
responsibility of the gateway to resolve this DN to its
IP address
The logon sequence taken by an FTAM Initiator when initiating a
transfer with an FTP Server is given below
% ftam
ftam> user username@DNS-
ftam> pass
The "ftam gateway" command initiates the connection between the
Initiator and the gateway. Once connected, userid and TCP/
filestore are identified in the "username@DNS-string" argument to
user command. If the FTP Server requires a password, a
prompt should appear after issuing the user command
The gateway should incorporate the BIND Resolver functionality
that upon receipt of a Domain Name, the Gateway FTP Client
resolve it via the distributed Domain Name System
Using a specific example, suppose that a FTP Server has the
Domain Name: "ftp-service.netwrx1.com" and an FTP-FTAM gateway
available at
Mindel & Slaski [Page 11]
RFC 1415 FTP-FTAM Gateway Specification January 1993
CountryName = "US
Organization = "GOV
OrganizationalUnit = "DOD
OrganizationalUnit = "DISA
Locality = "Washington Navy Yard
CommonName = "wnyosi7"
The FTAM user action will appear as
% ftam @c=US@o=GOV@ou=DOD@ou=DISA@l=Washington Navy
@cn=wnyosi
ftam> user mindel@ftp-service.netwrx1.
ftam> pass ***********
Alternatively, a User Friendly Name could be used rather than
Distinguished Name
As mentioned in the previous section, "Use of the FTP-
Gateway Service", use of an intermediate gateway is not transparent
The gateway can be made more transparent through the registration
the FTP host in the X.500 OSI Directory. By querying the X.500
Directory, the gateway can identify where the actual host
resident
For example, suppose that the FTP Server in the previous
("ftp-service.netwrx1.com") is registered in the X.500 Directory
the following Distinguished Name
CountryName = "US
Organization = "Open Networks
OrganizationalUnit = "Network Services
CommonName = "netwrx1"
CommonName = "FTP service
and the Presentation Address of the FTP-FTAM gateway. This approach
described in [RFC1279], would permit the following user interactions
% ftam @c=US@o=Open Networks@ou=Network
@cn=netwrx1@cn=FTP Service
ftam> user
ftam> pass ***********
4.3. Summary of
As shown in the discussions of the FTP-Initiated and FTAM-
Gateway Services, the gateway user does not have access to
gateway filesystem; he merely makes use of the gateway
procedure to specify the ultimate destination userid and password
Mindel & Slaski [Page 12]
RFC 1415 FTP-FTAM Gateway Specification January 1993
Two methods of interaction with the gateway were described. In
former, the user must
1. Be aware that a gateway is required to reach
destination FTP or FTAM host
2. Determine which gateway is most appropriate for
respective source-destination pair
3. Explicitly connect to the gateway host prior to
to the destination host
Needless to say, the exchange of files between FTP and FTAM
requires more effort than that required for the exchange of
between a pair of hosts utilizing the same file transfer protocol
The latter, more transparent method does not necessarily require
the user determine which gateway is most appropriate for
respective source-destination pair. In fact, filestore
providers are registered using the address of a
gateway. With this approach, the user
1. Must be aware that a gateway is required to reach
destination FTP or FTAM host
2. Need not determine which gateway is most appropriate
access their ultimate destination host
3. Need not explicitly connect to the gateway prior
connecting to the destination FTP or FTAM host
5. Gateway State Variables and
As described, the FTP-FTAM gateway provides two sets of services
FTP-Initiated and FTAM-Initiated. Each service has its own
exclusive set of state variables and transitions
deterministically define the actions of the gateway. Gateway
for these state variables and transitions is required
For conciseness in this discussion, FTP-Initiated will be
with "FTP-I", and FTAM-Initiated will be abbreviated with "FTAM-I".
Concerning error conditions, if a connection is dropped when
gateway is in any state other than FTP-I:Initial-State or FTAM
I:Initial-State, then the gateway will issue a fatal error message
the host with the remaining connection, and then drop
connection. If the remaining host is an FTP Client, then the
will send an ABOR, QUIT, and 426 reply code (Connection closed
Mindel & Slaski [Page 13]
RFC 1415 FTP-FTAM Gateway Specification January 1993
transfer aborted). If it is an FTAM Initiator, then the gateway
send an F-P-ABORT with a <Diagnostic> value with identifier 1011
(Lower layer failure), as well as any known .
Other error conditions are not addressed in this discussion
5.1. FTP-Initiated Gateway
The set of state variables for the FTP-Initiated Gateway
follow
State Variable State
----------------------------------------------------------------
FTP-I:Initial-State Initial state of FTP-Initiated
service
Gateway is waiting for an FTP Client
issue a USER command in order
proceed with connection
with remote FTAM Responder. If SITE
ACCT commands are sent while
for USER command, save arguments
subsequent use
FTP-I:Wait-for-PASS Gateway has already received
command from FTP Client, as well
userid and destination host DN
Gateway is waiting for the
Responder logon password
FTP-I:Wait-for-PAddress Gateway has already received
command from FTP Client. Gateway
resolving the provided FTAM Responder'
address to a Presentation Address.
provided address may be a
Name, User Friendly Name, or
Name. Resolution will typically
done using X.500 directory services
FTP-I:Wait-for-Connection Gateway has initiated a connection
the FTAM Responder and is waiting
notification as to whether or not
logon is successful
FTP-I:Wait-for-ClientCmd Connection exists between FTP
and FTAM Responder. Gateway is
for next command or response from
Mindel & Slaski [Page 14]
RFC 1415 FTP-FTAM Gateway Specification January 1993
Client. Commands and responses
mapped as they are received
FTP-I:Wait-for-RespondrCmd Connection exists between FTP
and FTAM Responder. Gateway is
for next command or response from
Responder. Commands and responses
mapped as they are received
Each of the possible state transitions is provided in the
of Section 5.1. For each state transition, the actions causing
transition are listed
5.1.1. FTP-I:Initial-State --> FTP-I:Initial-
1. Gateway receives SITE or ACCT command from FTP Client
SITE argument includes Distinguish Name of FTAM Responder
5.1.2. FTP-I:Initial-State --> FTP-I:Wait-for-
1. Gateway receives USER command from FTP Client.
include Distinguished Name of FTAM Responder and userid
FTAM responder
5.1.3. FTP-I:Wait-for-PASS --> FTP-I:Wait-for-
1. Gateway receives PASS command from FTP Client
5.1.4. FTP-I:Wait-for-PAddress --> FTP-I:Wait-for-
1. Gateway resolves received Distinguished Name, User
Name, or Domain Name of FTAM Responder to OSI
address
2. Gateway sends F-INITIALIZE to FTAM Responder
Presentation Address in Presentation Address>,
userid in <Initiator Identity>, and password in <
Password>.
5.1.5. FTP-I:Wait-for-Connection --> FTP-I:Wait-for-
1. Gateway receives of "Success" .
2. Gateway sends 230 reply code (User Logged In) to
Client
5.1.6. FTP-I:Wait-for-ClientCmd --> FTP-I:Wait-for-
1. Gateway receives command or response from FTP Client
maps it to FTAM protocol, as defined in section 8.1.
Mindel & Slaski [Page 15]
RFC 1415 FTP-FTAM Gateway Specification January 1993
5.1.7. FTP-I:Wait-for-RespondrCmd --> FTP-I:Wait-for-
1. Gateway receives command or response from FTAM
and maps it to FTP protocol, as defined in section 8.1.
5.1.8. FTP-I:Wait-for-ClientCmd --> FTP-I:Wait-for-
1. Gateway receives QUIT command from FTP Client; maps QUIT
per Section 8.1.
5.2. FTAM-Initiated Gateway
The set of state variables for the FTAM-Initiated Gateway
follow
State Variable State
----------------------------------------------------------------
FTAM-I:Initial-State Initial state of FTAM-Initiated
Service
Gateway is waiting for an
Initiator to issue an F-
command in order to proceed
connection establishment with
FTP Server
FTAM-I:Wait-for-IPAddress Gateway has already received F
INITIALIZE from FTAM Initiator
Gateway is resolving the provided
Server's address to an IP address.
provided address may be a Domain Name
Distinguished Name, or User
Name
FTAM-I:Wait-for-Connection Gateway has initiated a connection
the FTP Server and is waiting
notification as to whether or not
logon is successful
FTAM-I:Wait-for-InitiatrCmd Connection exists between
Initiator and FTP Server. Gateway
waiting for next command or
from FTAM Initiator. Commands
responses are mapped as they
received
Mindel & Slaski [Page 16]
RFC 1415 FTP-FTAM Gateway Specification January 1993
FTP-I:Wait-for-ServerCmd Connection exists between
Initiator and FTP Server. Gateway
waiting for next command or
from FTP Server. Commands
responses are mapped as they
received
Each of the possible state transitions is provided in the
of Section 5.2. For each state transition, the actions causing
transition are listed
5.2.1. FTAM-I:Initial-State --> FTAM-I:Wait-for-
1. Gateway receives F-INITIALIZE from FTAM Initiator.
Name of FTP Server is either in
Address> or in the "@host" portion of the <
Identity> parameter. The userid is in <
Identity>, and password is in Password
parameter
5.2.2. FTAM-I:Wait-for-IPAddress --> FTAM-I:Wait-for-
1. Gateway resolves received Domain Name, Distinguished Name
or User Friendly Name of FTP Server to IP address
2. Gateway sends USER to FTP Server
3. Gateway sends PASS to FTP Server
5.2.3. FTAM-I:Wait-for-Connection --> FTAM-I:Wait-for-
1. Gateway receives 230 reply code (User Logged In) from
Server
2. Gateway sends of "Success" to
Initiator
5.2.4 FTAM-I:Wait-for-InitiatrCmd --> FTAM-I:Wait-for-
1. Gateway receives command or response from FTAM
and maps it to FTP protocol, as defined in section 8.2.
5.2.5. FTAM-I:Wait-for-ServerCmd --> FTAM-I:Wait-for-
1. Gateway receives command or response from FTP Server
maps it to FTAM protocol, as defined in section 8.2.
5.2.6. FTAM-I:Wait-for-InitiatrCmd --> FTAM-I:Wait-for-
1. Gateway receives F-CLOSE primitive from FTAM Initiator
maps F-CLOSE as per Section 8.2.
Mindel & Slaski [Page 17]
RFC 1415 FTP-FTAM Gateway Specification January 1993
6. Document Type
The set of FTAM document types supported by the FTP-FTAM gateway is
subset of the document types identified in the Stable
Agreements for Open Systems Interconnection Protocols: Part 9 -
Phase 2, produced by the March 1992 Open Systems
Implementors' Workshop [NIST92]. This subset was chosen for
equivalence to those document types supported by FTP. The
includes
FTAM-1 "ISO FTAM Unstructured text
FTAM-3 "ISO FTAM Unstructured binary
NBS-9 "NBS-9 FTAM File directory file
FTAM document types map to FTP document types as follows
FTAM <->
----------------------------------
FTAM-1 <->
FTAM-3 <-> 8 bit
NBS-9 <->
Gateway support for FTAM-1 and FTAM-2 is required, whereas
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
superseded by its replacement when ISO/IEC ISP 10607-2 and ISO/
ISP 10607-2/Amendment 1 are published [NIST92].
For conformance to NBS-9, an FTAM Responder is only required
return the <Filename> file attribute, subject to local security
access control. All other requested attributes need not be returned
Systems supporting the NBS-9 document type shall make available
NBS-9 document called 'DIRLIS'. This document can be used to
a listing of files and their associated attributes from a
Filestore
Mindel & Slaski [Page 18]
RFC 1415 FTP-FTAM Gateway Specification January 1993
7. Functional Comparison of FTP and
A comprehensive comparison of the services offered by FTP and FTAM
beyond the scope of this specification. What follows is an
of several key points. Refer to [NIST 86a] and [ROSE90] for a
complete discourse on this topic
FTAM is not a superset of FTP; each protocol has functions that
it performs. The set of FTAM functions is, however, larger than
set of FTP functions
FTP combines file management and file transfer into one
engine, whereas FTAM separates management and transfer as they
to files
The file transfer services of both FTP and FTAM expect a
underlying end-to-end service. At a minimum, this service
the capability to transfer entire files between remote hosts and
display remote filenames
In addition to this basic file transfer service, FTAM supports
capability to: access a few records from a file server, create
network file system (similar to Sun's Network File System),
printing and spooling, and access remote database records. FTP
not support these additional capabilities
FTP uses TELNET services to set up a connection between the
Client and FTP Server. A three-digit reply code followed
explanatory text indicates the status of the preceding request
provides diagnostic information explaining each transaction
FTAM relies on the Association Control Service Element (ACSE)
start and stop the network for network file interaction. Generally
the ASCE establishes the application association and
application context needed to support the FTAM protocol
The FTAM protocol is modularized so as to keep the allowable
of actions in any particular state relatively small. There are
more possible sequences of FTP operations than possible sequences
FTAM operations [NIST86].
Because FTAM is more robust than FTP, FTAM allows greater
for conveying information about files. FTAM deals only with
of application processes, and leaves data representation and
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
Mindel & Slaski [Page 19]
RFC 1415 FTP-FTAM Gateway Specification January 1993
is that once the FTAM Initiator has established a connection with
remote host, either the Initiator or Responder can request
of the other. In the FTP realm, the Client both initiates
connection and requests all services
The FTP Client knows the real properties of the remote
filesystem. FTAM, in contrast, embraces a conceptual model of
filesystem, labeled a virtual filestore model. The virtual
is a collection of files, each of which has a name that
identifies it. Each file has a set of attributes, such as
information and contents, which is the data associated with the file
One file attribute is the <Contents Type> of the file, typically
value "FTAM-1", "FTAM-3", or "NBS-9". The FTAM Initiator only
the properties of the corresponding Responder and virtual filestore
not the real properties of the filesystem on the remote host
7.1. Loss of
As happens whenever two dissimilar protocols, or languages for
matter, are translated, some loss of functionality is inevitable
With reference to the FTP-FTAM gateway, several of the most
losses of functionality are
1. Diagnostics passed between protocols may not be
translated
2. The FTAM partial file (record) transfer may not
supported
3. Some FTAM attributes are not supported by FTP
The primary goal of the gateway protocol mappings are to
this loss of functionality. As this gateway specification
subsequent implementations evolve, means to partially overcome
of functionality may become more obvious. For example, the
may be able to emulate file record transfers between FTAM
and FTP Servers
8. Mapping of Protocol Functions and
The mappings presented are based upon the FTAM
implementation as defined in Stable Implementation Agreements
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
Request for Comments [RFC959]. The mappings are strongly
by the work of M. A. Wallace et. al. at NIST [NIST86] and John
Mindel & Slaski [Page 20]
RFC 1415 FTP-FTAM Gateway Specification January 1993
at MITRE [MITRE87].
A key goal of the mappings presented in this document is to
the loss of functionality between the two protocols. The
approach taken to implement the mappings is left to the discretion
the gateway implementor. The focus of the protocol function
representation mappings is on non-error encumbered processing.
mapping of diagnostic and error messages is treated separately
section 9.
At a minimum, the FTAM implementation in the FTP-FTAM gateway
for Implementation Profiles T1 (Simple File Transfer) and M
(Management), as defined in [NIST92], is required.
Implementation Profiles correspond to the A/111 and A/13 Profiles
Standards Promotion and Application Group in Europe,
[NIST92].
At a minimum, the gateway support for the following is required
ASCII and 8 bit binary file types. It should also support
File Stream Mode
The following FTAM document types: FTAM-1 (unstructured
file), FTAM-3 (unstructured binary file), and NBS-9 (set
directory entries).
POSIX file naming and organization conventions are assumed in
mappings; i.e., files in the systems are assumed to be organized in
hierarchical structure in which all of the non-terminal nodes
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.,
Values of arguments and parameters are enclosed in
marks; e.g., "Success
Mindel & Slaski [Page 21]
RFC 1415 FTP-FTAM Gateway Specification January 1993
FTP Service Commands and FTAM Primitives are in uppercase; e.g., F
8.1. FTP-Initiated Gateway
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
gateway service
2. Map the request to the (set of) corresponding
Initiator function(s).
3. Acting as an FTAM Initiator, send the FTAM
function(s) to the FTAM Responder
4. Accept information returned to the FTAM Initiator side
the gateway. This information originated at the
Responder
5. Map this returned information to the protocol
understood by the FTP Server side of the gateway
6. Send this returned information from the FTP Server side
the gateway to the FTP Client
For each FTP protocol function, the FTAM protocol functions
to map it are identified
FTP
------------------------------------------------------------------
ABOR F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-
ACCT F-INITIALIZE
ALLO
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-
CDUP F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-
Mindel & Slaski [Page 22]
RFC 1415 FTP-FTAM Gateway Specification January 1993
CWD F-BEGIN-GROUP, F-END-GROUP, F-DESELECT, F-
DELE F-BEGIN-GROUP, F-DELETE, F-END-GROUP, F-
HELP
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-
MKD
MODE
NLST F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F
END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-
NOOP
PASS F-
PASV
PORT
PWD F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-READ-ATTRIBUTES
F-
QUIT F-P-ABORT or F-U-ABORT, F-
REIN F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-
REST F-CHECK, F-
RETR F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F
END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-
RMD
RNFR F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-
RNTO F-BEGIN-GROUP, F-CHANGE-ATTRIBUTES, F-DESELECT, F-END
GROUP, F-
SITE F-
SMNT
Mindel & Slaski [Page 23]
RFC 1415 FTP-FTAM Gateway Specification January 1993
STAT
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-
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-
STRU
TYPE
USER F-
The remainder of this section presents detailed mapping
for each of the FTP protocol functions. Gateway support for
mappings is required
8.1.1.
1. Send F-CANCEL to FTAM Responder
2. Send the following grouped request to the FTAM Responder
F-BEGIN-
F-
F-
F-END-
3. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
codes to FTP Client
4. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
8.1.2.
1. Set parameter value for issuing F-INITIALIZE
FTAM Responder
2. If Presentation Address>, <Initiator Identity>,
Password> parameters are available,
connection with FTAM Responder
Otherwise wait for additional ACCT commands
3. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
codes to FTP Client
4. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
Mindel & Slaski [Page 24]
RFC 1415 FTP-FTAM Gateway Specification January 1993
FTAM Responder
Note
a. The ACCT command will be effective with the next
command
8.1.3.
1. Return a 200 reply code to FTP Client
8.1.4.
1. Save current pathname by appending saved CWD string
<pathname> argument. If no saved CWD string, proceed
step 12.
2. Send the following grouped request to FTAM Responder
F-BEGIN-
F-
F-READ-
Save <Contents Type> parameter
F-
F-END-
3. If the <Contents Type> parameter value returned with
F-READ-ATTRIBUTES has a value of "NBS-9", proceed to
12.
4. Send the following grouped request to the FTAM responder
F-BEGIN-
F-
Set the parameter in the F-CREATE
"Select Old File".
F-
F-END-
5. If the file existed, set the <Contents Type> parameter
the F-CREATE to match that returned by
F-READ-ATTRIBUTES
6. If the file did not exist and no previous FTP TYPE "Image
command was issued, then set the <Contents Type>
to "FTAM-1";
Otherwise, set the <Contents Type> parameter to "FTAM-3".
7. Send F-WRITE, with Transfer Specification,
Operation> parameter set to "File Extend", to
Responder
8. Loop reading data from FTP data connection, sending
data in F-DATA PDUs until end-of-file on the
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
Mindel & Slaski [Page 25]
RFC 1415 FTP-FTAM Gateway Specification January 1993
F-BEGIN-
F-
F-
F-END-
12. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
13. Translate FTP Client reply codes to equivalent
and <Diagnostic> parameters and
parameters to FTAM Responder
Note
a. <pathname> argument is assumed to be a filename,
to the currently saved CWD
b. CWD of the FTAM system must be defined prior to issuance
APPE
8.1.5.
1. Determine parent directory from saved CWD string. If
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-
F-
F-
F-END-
4. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
5. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
Note
a. A POSIX file organization is assumed; i.e., files in
systems are organized in a hierarchical structure in
all of the non-terminal nodes are directories and all
the terminal nodes are any other type of file
b. If the parent directory does not exist, the current
directory remains unchanged
c. CWD of the FTAM system must be defined prior to issuance
CDUP
8.1.6.
1. Save <pathname> argument as CWD string
2. Set <Contents Type> parameter to "NBS-9".
Mindel & Slaski [Page 26]
RFC 1415 FTP-FTAM Gateway Specification January 1993
3. Send the following grouped request to FTAM Responder
F-BEGIN-
F-
F-
F-END-
4. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
5. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
Note
a. The <pathname> argument is assumed to be an
directory specification
b. If the specified directory does not exist, the
working directory remains unchanged
c. Saved CWD string is used in other FTP-to-FTAM mappings
such as APPE
8.1.7.
1. Save current pathname by appending saved CWD string
<pathname> argument. If no saved CWD string, proceed
step 3.
2. Send the following grouped request to FTAM Responder
F-BEGIN-
F-
F-
F-END-
3. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
4. Translate FTP Client reply codes to equivalent
parameters and send parameters to FTAM Responder
Note
a. <pathname> argument is assumed to be a filename,
to the currently saved CWD
b. CWD of the FTAM system must be defined prior to issuance
DELE
8.1.8.
1. If no argument is provided, send
information about the implementation of the gateway to
FTP Client. If an argument is provided, send more
information
Mindel & Slaski [Page 27]
RFC 1415 FTP-FTAM Gateway Specification January 1993
2. Return the FTP reply code 214 to the FTP Client
8.1.9.
1. If <pathname> argument is provided, proceed to step 3.
2. Save current pathname by appending saved CWD string
<pathname> argument; If no saved CWD string, proceed
step 11.
3. Send the following grouped request to the FTAM Responder
F-BEGIN-
F-
F-READ-
Save <Filename>, <Contents Type>,
Modification>, and
F-
F-END-
4. If the <Contents Type> parameter of the F-READ-
is not "NBS-9", then return the <Filename>, <
Type>, Modification>, and
parameter values, obtained with the
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-
F-
F-
F-END-
6. Send F-READ to FTAM Responder
7. Loop reading F-DATA until F-DATA-END. As data is received
write the <Filename>, , <Contents Type>,
and Modification> parameter values
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-
F-
F-
F-END-
10. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
11. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
Note
a. Assume the <pathname> argument is relative to the
CWD, whether filename or directory specification
Mindel & Slaski [Page 28]
RFC 1415 FTP-FTAM Gateway Specification January 1993
b. CWD of the FTAM system must be defined prior to issuance
LIST
c. Transfers over data connection should be in ASCII
e. If list of files with full directory/file specification
received from FTAM Responder, then gateway should
list to strip off directory portion
8.1.10.
1. Return a 502 reply code (Command not implemented) to
FTP Client
Note
a. As indicated in the NIST Stable Implementation
for FTAM [NIST92], creation or deletion of NBS-9 files
outside the scope of the agreements
8.1.11.
1. If <argument> is "Stream", return 200 reply code to
Client; Otherwise return a 504 reply code (Command
implemented for that parameter).
8.1.12.
1. If <pathname> argument is provided, use <pathname>
as <Filename> parameter value in F-SELECT issued in step 3.
2. If no argument is provided, use saved CWD value
<Filename> parameter value in F-SELECT issued in step 3;
no CWD string is saved and no argument is provided,
to step 9.
3. Set <Contents Type> parameter to "NBS-9".
4. Send the following grouped request to the FTAM Responder
F-BEGIN-
F-
F-
F-END-
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
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-
F-
F-
F-END-
9. Translate FTAM Responder and <Diagnostic
Mindel & Slaski [Page 29]
RFC 1415 FTP-FTAM Gateway Specification January 1993
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
10. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
Note
a. As per RFC 959 (FTP), the NLST <pathname> argument is
directory
b. Assume the argument is relative to the saved CWD,
filename or directory specification
c. CWD of the FTAM system must be defined prior to issuance
NLST
d. Transfers over data connection should be in ASCII
e. Gateway should parse full directory/file
received from FTAM Responder to strip off
portion. This is required to support the "FTP
get" function that pipes NLST output to the STOR command
8.1.13.
1. Return a 200 reply code to FTP Client
8.1.14.
1. Set Password> parameter for F-INITIALIZE
2. If Presentation Address>, Identity>,
Password> are available, issue F- INITIALIZE
FTAM Responder
3. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
4. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
8.1.15.
1. Wait for data transfer on default data port or data
specified by PORT command
2. Return a 200 reply code to FTP Client
8.1.16.
1. Return a 200 reply code to FTP Client
Mindel & Slaski [Page 30]
RFC 1415 FTP-FTAM Gateway Specification January 1993
8.1.17.
1. If there is a saved CWD string, return it to the FTP
and proceed to step 4.
2. Set <Contents Type> attribute to "NBS-9".
3. Send the following grouped request to FTAM Responder
F-BEGIN-
F-
F-READ-
F-
F-END-
4. Return the current directory name to the FTP client
5. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
6. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
8.1.18.
1. If user is not logged in, proceed to step 5.
2. If file transfer is in progress, send F-P-ABORT
F-U-ABORT to FTAM Responder
3. If file transfer is not in progress, send and F-
to FTAM Responder
4. Return charge information to FTP Client
5. Translate FTAM Responder and <Diagnostic
parameters to equivalent FTP reply code(s) and send
code(s) to FTP Client
6. Translate FTP Client reply codes to equivalent FTAM <
Result> and <Diagnostic> parameters and send parameters
FTAM Responder
8.1.19.
1. Flush all I/O and account information
2. Allow all transfers in progress to be completed
3. Set all parameters