RFC 163 UNKNOWN DATA · PROTOCOLS

Data transfer protocols

An early discussion separating data movement from data interpretation.

On rfc-editor.org ↗
PUBLISHED
May 1971
AUTHORS
V.G. Cerf
STREAM
Legacy
DOI
10.17487/RFC0163

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                            V. Cerf
Request for Comments #163                        19 May 71
NIC #6775                                        UCLA - NMC
Categories:  D.7                                 Computer Science
Updates:  None
Obsoletes:  None


                        DATA TRANSFER PROTOCOLS

This is an informal statement of material discussed at the SJCC.  There
are two peoblems.

   1.  Movement of data from one site to another.
   2.  Interpretation of the data at receiving site.

The first task (1) requires a simple protocol which accomplishes the
following

   1)  Standard connection procedure for connecting
       transmitting and receiving processes

   2)  Standard packaging which allows network to
       collect the transmitted data stream in the
       right order and know when the end of the
       file has been reached.

Standard Connection Procedure

Suppose every HOST has a process charged with the responsibility of
sending and receiving files between -HOSTS-(processes?)[The Data
Manager].  If the Data Manager offers to listen on a given socket for
file xmt requests, then ICP is sufficient to establish a connection
between a serving Data Manager and a using process.

We have completely avoided the discussion of data interpretation, and
also the problem of control.  For instance, we have not said how a
process can ask the Data Manager to send a file of a par- ticular name,
nor how to end the transmission of a file.  This is deferred for later.

Another desirable ability is to have processes transmit files to each
other independent of the HOST Data Manager.  ICP should suffice, for the
creation of a full duplex connection.  File naming, and format
interpretation are left to the individual process to solve.

It is of interest to note that files need not have names.  If two
processes are connected, then the file name is in a sense implicit in
the sending and receiving socket pair.  One imagines, however, that

connections with Data Managers for the purpose of file transmission are
too transient to serve as permanent file names, so information about
file name will be needed by the Data Manager.  This information could be
supplied either embedded in the file transmission data stream, or
supplied over a separate control connection established at ICP time.

It seems reasonable that a Data Manager have a network-wide, fixed
socket number on which it is listening to service data transmission
requests.* In this sense, it acts much like the Network Logger.  For
inter-process file transmission, less rigidity seems called for, and we
can leave such decisions to the individual peocesses communicating with
each other.  Public processes at serving HOSTS could have known (nia
NIC?) sockets over which file transmission is acceptable.

Standard Packaging

We naively imagine that very little in the way of formatting is needed
to move data across the connection.  A few bits (8?) at the beginning of
transmission could specify the formatting protocol (e.g. arbitrary bit
string until connection closed, count field + data, break chars, etc.)
Depending on the selected format mode, the appropriate control bits will
or will not appear interspersed betweeen the data bits.  Message
boundaries are totally transparent.

A way of ending the file, possibly without closing the connection, is
useful, although closing the connection after the RFNM from final
"record" sent is received by the sending process might be adequate
(sufficient, but not palatable?)

----
*ICP causes sockets to be dynamically assigned for the ensuing
conversation (which might be all 1-way).

Control

A great many problems come up if the Data Manager serves as a part of
the HOST filling system.  For example, the Data Manager must know
whether the process it is serving wants to send a file or receive one.
In either case, some sort of file name + qualifiers (user ID, security
codes, access requested, etc.) will be needed to resolve the usual
access legality, and potential file name ambiguities.  This information
can be supplied either within a single full duplex data stream (1 per
ICP request) established by a modified ICP for data transmission.  The
former seems simplier, sufficient, and immediately implementable.

Data transmission between arbitrary processes probably does not need as
much formal control protocol as process-to/from-DM (data Manager)
connection.  Ad hoc procedures can be established by trading information
on previously established connections; regularity is nice, so perhaps a
standard set of control protocols can be devised which work, regardless
of the identity of the processes transmitting data.  Control data must
be formatted and probably identifiable by prefix codes so that
unnecessary control information can be left out if desired.  (I am
thinking specifically of file names.)

It remains to establish a set of format protocols which permit packaging
of data and identification of control information.  This should be the
task of the renamed Data Transmission Committee.

       [ This RFC was put into machine readable form for entry ]
         [ into the online RFC archives by Simone Demmel 5/97 ]

ISO Plain Language

On this page
PROBLEMMoving data between sites and interpreting that data at the receiving site are separate problems.
MECHANISMThe note proposes a standard connection procedure and packaging that preserve order and indicate the end of a file, while leaving interpretation and control for later work.
DESIGN DISCUSSIONIt identifies protocol questions for a data transmission committee rather than specifying a complete transfer protocol.

§1Two Data Transfer Problems

This informal statement of discussion at the SJCC identifies two problems: moving data from one site to another, and interpreting the data at its destination. The RFC focuses on the first problem and explicitly leaves interpretation aside.

A receiving computer must get the data and understand what it means. This note focuses on how to move the data, not how to interpret it.

§2Connection and Packaging

For file movement, the author proposes a standard connection procedure and standard packaging. The network should collect the transmitted stream in the right order and know when it reaches the end of a file. The Initial Connection Protocol is described as sufficient for connecting a serving Data Manager and a using process.

The note considers a Data Manager process at each host, as well as direct file transmission between processes. It raises possible ways to mark a file's end, including closing the connection after the last record.

A transfer needs a standard way to connect and a way to keep data in order and mark when a file ends. A host could use a Data Manager, or programs could connect directly.

§3Naming and Control Are Separate

The note does not define how a process requests a named file or controls a transfer. A Data Manager would need a file name and other qualifiers to resolve access and naming questions. This information might travel in the data stream or on a separate control connection.

For direct process-to-process transfers, file naming and format interpretation are left to the processes. The RFC says a set of format and control protocols remains to be established.

The note does not decide how to name a file, check access or interpret its contents. Those details need separate rules above the basic transfer mechanism.