Comments on RFC 114: A File Transfer Protocol
Rand's short list of comments on the RFC 114 file transfer proposal: a good start, plus nine requests and questions.
Harslem, E. and J.F. Heafner, "Comments on RFC 114: A File Transfer Protocol", RFC 141, DOI 10.17487/RFC0141, April 1971, <https://www.rfc-editor.org/info/rfc141>.
@misc{rfc141,
series = {Request for Comments},
number = 141,
howpublished = {RFC 141},
publisher = {RFC Editor},
doi = {10.17487/RFC0141},
url = {https://www.rfc-editor.org/info/rfc141},
author = {E. Harslem and J.F. Heafner},
title = {{Comments on RFC 114: A File Transfer Protocol}},
pagetotal = 2,
year = 1971,
month = apr,
} RFC text
Network Working Group E. F. Harslem
Request for Comments: 141 J. F. Haefner
NIC 6726 Rand
29 April 1971
COMMENTS ON RFC 141 (A FILE TRANSFER PROTOCOL)
1. A file transfer protocol is needed. Bushan's proposal would
satisfy a particular current need that we have, as well as short-term
envisioned needs.
2. Bushan's protocol would apear to be straight-forward in
implementation, and extensible as claimed.
3. We would like to see implementations of such protocol be
accomplished such that the file transfer program has general and
complete access to the local file storage. That is, it should be
able to access a file that it did not create. For example, if a
program or user creates a file at site X (completely independent of
the file transfer program), it would then be desirable to be able to
retrieve the file via the file transfer program. This is not a
requirement of RFC #114 but we would like to see it implemented where
possible.
4. Since implementation of a subset of transaction types is
specifically permitted, we suggest inclusion of the following
commands (in addition to append).
insert records within a file
delete records from within a file
replace records within a file
Although these operations are not directly supported under IBM
OS/360, we have used them with a non-standard file subsystem under
IBM OS/360 and find them quite useful.
5. In addition to retrieve and lookup, get names of files under my
access control would be useful.
6. The absence of status requests and responses is apparent.
Although this is typically a function associated with a remote job
entry (RJE) system, since the execute request is present it would
seem appropriate to inquire about the status of the process created
by the execute command. This becomes increasingly more important
where the execute is implemented as an RJE-like operation and
scheduling time of the job might be prolonged.
7. When requesting execute, the using host sends parameters upon
receipt of the rr response. Executing a task can be implemented in
several ways. The options our 360 affords are RJE at job level and
the attach macro. Our preference would be the attach macro which
immediately initiates an independent OS task within the partition of
the program issuing the attach (presumably the File Service). Such a
task normally receives parameters upon initiation and can thereafter
receive parameters from a program via some mechanism such as an event
control block. The second method requires special modifications to
the program being executed; hence, it is not desirable. Therefore,
we either need the parameters included in the execute command or will
not actually start execution until parameters are received.
8. Upon abnormal termination, one should include part or all of the
spurious request as well as an identify- ing code to facilitate
precise error recognition.
9. We would be interested in the outcome of the MIT/ Harvard
experiments with the RFC #114 protocol. What were the pitfalls,
etc.?
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by Simone Demmel 4/97 ]
AI ELI5
On this page
§1General Support for the Proposal
The authors say a file transfer protocol is needed and that Bhushan's proposal in RFC 114 would meet a current need at their site as well as short-term needs they foresee. They find it straightforward to implement and extensible, as claimed.
The RFC's title says RFC 141, but the subject throughout is RFC 114.
The reviewers say the plan is useful and not hard to build, and that it can grow later.
§2Requested Access and Commands
The authors want implementations where the file transfer program has general and complete access to local file storage. It should be able to retrieve a file that it did not create, for instance one a user made at site X independently of the file transfer program. This is not a requirement of RFC 114, but they would like to see it where possible.
Because a subset of transaction types is explicitly permitted, they suggest adding commands to insert, delete and replace records within a file, which they have used with a non-standard file subsystem under IBM OS/360. They also want a way to get the names of files under their access control, in addition to retrieve and lookup.
They ask that the helper be able to open any file on the computer, and that it can also add, remove or swap lines inside a file.
§3Status, Execute and Errors
The authors note that status requests and responses are absent. Since an execute request exists, they would like to ask about the status of the process it creates, especially if execution is implemented like remote job entry and scheduling may take a long time.
On execute, the using host sends parameters after the rr response. For their 360, the authors prefer the attach macro, which starts an independent task, but that needs parameters at start. So they want either the parameters included in the execute command or no start until parameters arrive. On abnormal termination, the reply should include part or all of the offending request and an identifying code so the error is recognized precisely.
If you ask the helper to run a job, you should be able to ask how it is going. If something goes wrong, the helper should say exactly what failed.
§4Asking About Experiments
The last comment asks for the outcome of the MIT and Harvard experiments with the RFC 114 protocol, including any pitfalls found. The RFC reports no results itself.
They also ask the first testers to tell everyone what went wrong, so others can learn from it.