RFC 327
Data and File Transfer workshop notes
RFC 327: Data and File Transfer Workshop Notes ๐
Okay bestie, here's the deal ๐. This RFC is from A. Bhushan at MIT-MAC, dated April 27, 1972, with NIC number 9261. Its title is Data and File Transfer Workshop Notes. The header doesn't list a category or status, and it doesn't say what this document obsoletes or updates, so I'm not making anything up there ๐.
- RFC number: 327 ๐ฆ
- Title: Data and File Transfer Workshop Notes โจ
- Author: A. Bhushan, MIT-MAC ๐
- NIC number: 9261
- Date: April 27, 1972
- Category, obsoletes, updates: not listed in the header
On April 14 and 15, 1972, a Data and File Transfer Workshop happened at M.I.T. in Cambridge, Mass. ๐ธ The attendee list for April 14 and 15 is at the end. The note tries to sum up most of the topics talked about and every decision the workshop made ๐ซถ.
The April 14 Talks ๐
Steve Crooker talked about a general theory for Network protocols ๐ง . Protocol transformations SHOULD have a unique inverse, and they SHOULD be transitive. Getting to a standard form takes only 2n transformations (n = number of different types of hosts), while having no standard form takes n(n-1) transformations. A standard approach is preferable for n >= 3 ๐.
For file transfer, you could define a Network Virtual File Image ๐. People talked about whether it was possible to follow the rules above for file structure transformations. Nobody agreed, so the problem got shelved for now ๐ญ.
More talking led to this formulation of the Workshop goals ๐ฏ:
To come up with a data and file transfer protocol/strategy that meets the needs of ARPANET users, including Maxi-HOSTs, Mini-HOSTs, TIPs, Datacomputer, RJE, and Mailbox users.
The goals for the protocols/strategy were set as:
- It SHOULD preserve the integrity of data. ๐
- It SHOULD preserve the integrity of character representation and interpretation. ๐ธ
- It SHOULD preserve the integrity of structural information, to the extent conveniently possible. ๐ง
- It SHOULD lead to the development of a Network Virtual File System. ๐
Richard Winter talked about the Datacomputer application ๐ป. Even though you can use it from terminals directly, it won't be engineered for direct terminal users. It's built for programs. In Datalanguage, a user can define data and file structure, and also how the file or data gets transferred. With the data language, you can transfer entire files or just the relevant parts of files โจ. Here's an example of file transfer as currently envisioned for the Datacomputer:
LOGIN <user> <password>
CREATE <file name> <description>
CREATE <port name> <description>
PORT <port name> <external name>
<file name> = <port name> (for transfer to Datacomputer)
<port name> = <file name> (for transfer from Datacomputer)
LOGOUT
(CREATE statements are only needed when the description(s) required are not already on file at the Datacomputer ๐. A port description can specify a standard "external name", which makes a port statement optional too. "External name" is supposed to be a HOST-socket specification. The data transfer is to be in accordance with network data transfer standards. The File and Port descriptions are to be in Datalanguage.)
Alex McKenzie talked about what TIP users need ๐ฑ. He covered what TIPs and TIP terminals can do right now and where they fall short. TIP users' first choice is TELNET format, followed by DTP using the indefinite bit stream mode. Two TIPs with magnetic tape systems can move data between each other using the current DTP (RFC 264) in the descriptor count mode (utilizing sequence number option) ๐งฒ.
Bob Braden talked about the RJS protocol and shared some data on RJS use ๐. NETRJS is 1% of CCN job load, which works out to 2,000 jobs, 10,000 sessions, and 1,000 hours of connect time in the last 5 months ๐ณ. The average job input is around 100,000 bits (400 cards), and the average job output is 700,000 bits (1,000 lines). Big files are about 10 million bits, which is roughly 8-10 minutes of transmission time โฑ๏ธ. The RJS protocol will be defined in a forthcoming document ๐ฎ.
Ray Tomlinson described the CPYNET system BBN uses to move files between TENEX systems ๐ฐ๏ธ. CPYNET commands are ASCII strings with a fixed syntax. The original connection closes once a command is accepted, and the data moves over a new connection that reuses the previous socket number, though possibly with a different byte size. CPYNET has reached a data transfer rate of about 10 Kb/s ๐.
Abhay Bhushan talked about evaluating network protocols and shared some early measurement results ๐. The evaluation criteria for protocols SHOULD include speed (real time delay and transmission rate), efficiency (CPU time or cost), reliability (error rate and failure rate), convenience (ease of use and implementation), and usage (suitability for various application and user classes) ๐ .
The parameters that affect speed and efficiency for a given set of system conditions (fixed load, etc.) are:
- Byte size used for NCP connection.
- Average message size used for transmission.
- Data format conversion (e.g., into Network ASCII, DTP Blocks, etc.).
- Buffer size and I/O mode used (unit or block mode, etc.).
- Other protocol constraints (acknowledge, error checking, connection procedure, etc.).
People talked about how data and file transfer protocols MAY be altered to make transfers faster and more efficient, by using an optimum byte size and cutting down on constraints that add a lot of overhead ๐๏ธ. Kinda iconic.
The April 15 Decisions ๐
The DTP and FTP follow-up talks produced a list of discussion and decision items for the next day ๐. Here's the summary of decisions reached on Saturday, April 15, 1972 ๐.
- Separate connections are to be used for data and control information. ๐
- The control connection is to be a "TELNET" full-duplex connection (NVT-ASCII), established via the ICP. Data connections are to be simplex connections established directly ๐.
- The File Transfer and File System commands and their arguments SHALL be printable ASCII strings, instead of numeric codes, so that they're directly usable by a user at a terminal ๐ป. The interaction, however, will be optimized for usage by programs (indirect use) ๐ค.
- The byte size and user socket for the data connection, data representation, and transfer mode used in file transfer MAY be chosen by a user via one or more commands that require a positive or negative acknowledgment โ .
- The following data representations are to be accepted by all servers ๐:
- Network ASCII (7-bit ASCII in 8-bit field with 8th bit zero).
- Local Byte (a server option to store data in an efficient manner; the storage scheme SHOULD be well publicized).
- Image (a sequence of bits which SHOULD be stored contiguously, independent of the byte size chosen for transfer).
- ASCII Print file (convert ASCII file to a form suitable for printing).
- EBCDIC Print file (convert EBCDIC file to a form suitable for printing).
- Record structures are allowed but not mandatory ๐๏ธ. A user with no record structure in their file SHOULD be able to store or retrieve their file at any host. If a serving host cannot accept record structure, it MUST inform the user of the fact. Any record structure information in the data stream MAY subsequently be discarded ๐๏ธ.
- The following data transfer modes are defined ๐:
- Byte-Stream: End of File is indicated by closing the connection. No record structure.
- Block: The file is a series of blocks preceded by a count field. Appropriate means are provided to indicate end-of-file, end-of-record, and restart markers.
- ASCII: The file is network-ASCII. End-of-record and end-of-file are indicated by a special "TELNET-control" character with the 8th bit set to "one".
- The file is network-ASCII with an end-of-record defined by CR LF, and end-of-file by closing the connection.
- Hasp compressed file with end-of-record and end-of-file information.
- A restart procedure will be provided to protect the user from system failures (either a host or a process dying) ๐. The issue of bits lost or scrambled is handled best at the NCP level. Standard error codes and responses will be provided for storage and I/O channel errors, at the FTP level.
The restart procedure would require that the sender of data insert a special marker in the data stream. The marker only has meaning to the sender, and it could be a bit count, a record count, a page count, etc. The receiver of the data marks the corresponding position of this marker in its own system and returns this information to the user. If a system failure happens, the user can restart the transfer by supplying this information with a restart command ๐.
- DTP is no longer a separate protocol. It's a set of transfer modes or format procedures whose use is defined by the file transfer protocol ๐ช.
- Abhay Bhushan will write the workshop notes and the draft specifications for the new file transfer protocol โ๏ธ.
List of Attendees, Data and File Transfer Workshop ๐ซถ
Abhay Bhushan MIT-MAC April 14,15
Bob Braden UCLA-CCN April 14,15
Arvola Chan MIT-MAC April 14,15
Steve Crocker ARPA April 14
Eric Harslem RAND April 14
John Heafner RAND April 14
Chuck Holland UCSD April 14,15
Alex McKenzie BBN (NET) April 14
Bob Metcalfe MIT-MAC April 14
Hal Murray CCA April 14
Bill Plummer BBN April 14
Jon Postel UCLA April 14
Neal Ryan MIT-MAC April 14,15
Marc Seriff MIT-MAC April 14,15
Bob Thomas BBN April 14
Ray Tomlinson BBN April 14
Dick Watson SRI-ARC April 14,15
Doug Wells MIT-MAC April 14
Jim White SRI-ARC April 14,15
Richard Winter CCA April 14,15
[This RFC was put into machine readable form for entry] [into the online RFC archives by H๏ฟฝl๏ฟฝne Morin, Viag๏ฟฝnie 10/99]
That's the whole RFC, bestie! ๐๐ฆ๐ Workshop, decisions, and attendees all covered.
๐ฆ where this page comes from
- ietf: rfc327 1972-04
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms