RFC 486 UNKNOWN FTP · RJE · PROTOCOL DESIGN

FTP: Data transfer revisited

A proposal to merge FTP and RJE into a unified data transfer protocol.

On rfc-editor.org ↗
PUBLISHED
March 1973
AUTHORS
R.D. Bressler
STREAM
Legacy
PROPOSED MERGE
FTP and RJE
CONTEXT
BBN meeting, March 16, 1973
COMMAND CATEGORIES
5: system, parameters, data, file, job
DOI
10.17487/RFC0486

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                           Bob Bressler
RFC #486                                        BBN
NIC #15064                                      20 March 1973


                        Data Transfer Revisited


    A lot of work has recently gone into the development and refinement
of both the RJE and FTP protocols.  Stepping back from the details and
small issues, we can describe the two protocols as 1) a control
connection over which commands are passed, and 2) a data connection over
which uninterpreted (by the server process) data is passed.  Both
protocols deal with the concept of identifying oneself to the server,
setting up parameters, and transferring some data.

    New ideas and concepts, such as the "hot card reader", have been
introduced into one protocol or the other, but these concepts are
generally applicable to both.  In addition, a great deal of effort was
made to make the structures of the two protocols be as similar as
possible.

    This discussion is, of course, leading to the suggestion that we
stop considering these as two separate protocols, and merge them into a
single unit - perhaps resurrecting the name of "data transfer".

    Several advantages besides simplicity are gained by this.  Sites
need only build one server program - given that they can always respond
with "command not implemented".  This will also prevent the RJE users
and servers from having to start up a (possibly) separate FTP user and
server - saving the resulting doubling of programs and Telnet
connections.

    The further advantage of insuring that new ideas and concepts will
be shared by all users and servers will also be realized.  A RJE user
will be able to transfer his deck of cards (file) to storage on another
machine's file system using the "hot card reader" previously defined
only in the RJE protocol.

    The command set of the combined protocol would now consist of
several sets of command types.  These sets include:

    a.  general system commands (e.g., USER, HELP)

    b.  parameter settings (e.g., TYPE, STRU)

    c.  data control (e.g., ABORT, REIN)
    d.  file operation (e.g., STOR, RETR, LIST)

    e.  job execution (e.g., INPUT, OUTPUT, CHANGE)

    I will not try to completely specify the syntax of each command
since they are still being finalized (left as an exercise for the
reader?).

    An implementor who was only interested in file transfer would
implement the general data transfer routines and the small set of file
transfer commands.  Another site might also wish to implement the job
execution commands.

    Users at traditional RJE stations would be able to store their files
on machines that do not support other RJE functions, by using the file
transfer command package in their user machine.  At some later date,
they can connect to a batch server elsewhere on the net and instruct it
to accept its input from the site currently storing the files.  Thus
card reader availability and access to a batch machine would not need to
be concurrent.

    In an effort to get a feel for the complexity of this suggestions,
the latest FTP offering (RFC 454) was compared with the RJE document.
The amount of change to the RJE document was in fact relatively small
(and will perhaps constitute a subsequent RFC).  A possible course of
action, then, would be to take the "official FTP" resulting from the 16
March meeting at BBN and divide the commands into data transfer and file
transfer components.  The RJE documents can then be revised or rewritten
such that the "new" data transfer protocol will also have an RJE subset.
This would be accomplished by recognizing and removing those parts of
the RJE that dealt with data transfer, leaving a command subset dealing
exclusively with job submission and execution.  This course of action is
intended to cause minimal perturbation on current implementations.

    The intention of this suggestion is not to try and pack everything
into a single protocol but to make the large body of common code - the
transfer of data - available to current and new protocols.  New ideas,
be they mail or load sharing, could be developed more easily given the
common availability of this data transfer mechanism.

RB/jm



       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Alex McKenzie with    ]
       [ support from GTE, formerly BBN Corp.             9/99 ]

AI ELI5

On this page
PROBLEMBy 1973, both FTP and Remote Job Entry had evolved to be very similar: a control connection for commands and a data connection for uninterpreted data. Sites had to implement both protocols separately.
MECHANISMMerge FTP and RJE into a single data transfer protocol with optional command subsets: general system commands, parameter settings, data control, file operations, and job execution. Implementations could support just file transfer or add job execution as needed.
INFLUENTIAL PROPOSALThe proposal was not immediately adopted, but influenced protocol design thinking. Modern systems handle file transfer and job submission as separate concerns using different protocols.

§1The Similar Protocols

By March 1973, FTP and Remote Job Entry (RJE) had developed in parallel, each solving different problems but using the same underlying architecture. Both used a control connection for commands and a data connection for uninterpreted data. Both dealt with authentication, parameter setup, and data transfer. New concepts like the "hot card reader" were added to one or the other, but were generally applicable to both.

Two different programs for sending files and jobs between computers were doing almost the same basic things.

§2Unified Data Transfer Protocol

The proposal suggests creating a single data transfer protocol with modular command sets. The basic set includes general system commands (like USER, HELP), parameter settings (TYPE, STRU), data control (ABORT, REIN), file operations (STOR, RETR, LIST), and job execution (INPUT, OUTPUT, CHANGE). A site could implement the file transfer subset, or add job execution commands for full RJE support.

This approach would reduce code duplication: sites need only build one server program, falling back to "command not implemented" for unsupported subsets. It eliminates the need for separate FTP and RJE user and server processes and Telnet connections.

Build one program with optional pieces: basic file transfer works for everyone, but some computers can also handle job requests.

§3Advantages Beyond Simplicity

The proposal identifies several benefits beyond code simplicity. First, new ideas and concepts would be shared by all users and servers. A RJE user could transfer a deck of cards to storage on another machine using the "hot card reader" concept, previously only in RJE. Second, deployment flexibility: users at traditional RJE stations could store files on machines supporting only basic file transfer, then later connect to a batch server and instruct it to pull the files.

This design separated the concerns of file storage and batch job execution, allowing more flexible deployment architectures.

New features would work everywhere, and computers could store files without running jobs, and run jobs later from stored files.

§4References