Comments on DTP and FTP proposals
Comments on design issues in proposed Data Transfer and File Transfer Protocols.
Braden, R.T., "Comments on DTP and FTP proposals", RFC 238, DOI 10.17487/RFC0238, September 1971, <https://www.rfc-editor.org/info/rfc238>.
@misc{rfc238,
series = {Request for Comments},
number = 238,
howpublished = {RFC 238},
publisher = {RFC Editor},
doi = {10.17487/RFC0238},
url = {https://www.rfc-editor.org/info/rfc238},
author = {R.T. Braden},
title = {{Comments on DTP and FTP proposals}},
pagetotal = 2,
year = 1971,
month = sep,
} RFC text
Network Working Group R. T. Braden
Request for Comments #238 UCLA-CCN
NIC #7663 September 29, 1971
Category:
Updates: RFC #171, RFC #172
COMMENTS ON DTP AND FTP PROPOSALS
Data Transfer Protocol
----------------------
1. In the Descriptor/Count mode, the Information Separators should
have a transaction sequence number field. Otherwise, the receiver
cannot be sure he received all transactions before the separation.
This requires that there be two forms of information separators, one
for Descriptor/Count mode, the other for the DLE mode.
2. The modes-available handshake should not be mandatory, as it makes
no sense in the simplex case. The receiver doesn't care what modes
the transmitter _might_ use; he only cares what mode _is_ used, which
he discovers when the first data or control transaction arrives. Even
in the duplex case, it is not clear what use the receiver should make
of the modes-available information from the transmitter.
File Transfer Protocol
----------------------
1. The protocol allows an end-of-file to be indicated by closing the
connection. This is the same mistake which we made in an early
version of NETRJS. Closing the connection without a File Separator
transaction should only be used to indicate an error, i.e., to abort
the transmission; it should never be used to indicate normal
completion of file transfer. The reason is obvious: there is no way
for the receiver to tell whether CLS indicates normal completion or an
abnormal condition in the other host (e.g. the file transfer program
died).
2. There should be two forms of the _store_ request, one which fails
if a file of the same name already exists, and one which replaces an
existing file of the same name (as now).
3. A service center host may be expected to require username and
password transactions before any others are accepted.
4. There are no error transactions defined for lost data or lost
synch. It is assumed there are handled at the DTP level?
5. All of the defined error codes should be allowed (and encouraged)
to have explanatory text following them.
RTB:gjm
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by BBN Corp. under the ]
[ direction of Alex McKenzie. 12/96 ]
ISO Plain Language
On this page
§1Reviewing DTP and FTP
R. T. Braden of UCLA-CCN comments on proposals for the Data Transfer Protocol and File Transfer Protocol. The note updates RFCs 171 and 172 by identifying issues for the protocol designers to consider.
The comments cover both the transfer of data and the commands used to store and retrieve files.
The author reads draft rules for moving data and files. He lists details that could lead to uncertainty during a transfer.
§2Separators and Mode Negotiation
For Descriptor/Count mode, Braden recommends adding a transaction sequence number to Information Separators so the receiver can tell whether all transactions before the separator arrived. He says separate separator forms are needed for Descriptor/Count and DLE modes.
He also argues that the modes-available handshake should not be mandatory. A receiver can learn which mode the transmitter uses from the first data or control transaction.
A separator should carry enough information to show where it belongs in the transfer. The author also questions making both sides list possible modes before sending begins.
§3File Completion and Requests
The RFC says closing a connection without a File Separator should mean an error or aborted transfer, not normal end-of-file. Otherwise, the receiver cannot tell a completed transfer from a sender that failed.
Other suggestions include separate store requests for creating or replacing a file, allowing service hosts to require user names and passwords, and including explanatory text with error codes.
A normal file ending needs an explicit signal. A connection that simply closes should warn the receiver that something may have gone wrong.