Network Working Group A. Bhushan Request for Comments: 327 MIT-MAC NIC: 9261 April 27, 1972 DATA AND FILE TRANSFER WORKSHOP NOTES On April 14 and 15, 1972, a Data and File Transfer Workshop was held at M.I.T., Cambridge, Mass. A list of attendees of the meeting for April 14 and 15 is appended to the notes. This note attempts to summarize most of the topics discussed and all of the decisions reached at the workshop meeting. The following is a summary of the talks and discussions on April 14, 1972. Steve Crooker discussed a general theory for Network protocols. Protocols transformations should have a unique inverse, and should be transitive. Transformation to a standard form requires only 2n transformations (n = number of different types of hosts), as compared with n(n-1) transformations with no standard form. A standard approach is preferable for n >= 3. For file transfer, one could define a Network Virtual File Image. There was some discussion on whether it was possible to satisfy the above rules for file structure transformations. No agreement was reached and the problem was abandoned for the present. Further discussion lead to the following formulation of the Workshop goals: To come up with data and file transfer protocol/strategy that satisfies the needs of ARPANET users including Maxi-HOSTs, Mini- HOSTs, TIPs, Datacomputer, RJE, and Mailbox users. Goals for the protocols/strategy were set as: 1. It should preserve the integrity of data. 2. It should preserve the integrity of character representation and interpretation. 3. It should preserve the integrity of structural information, to the extent conveniently possible. 4. It should lead to the development of a Network Virtual File System. Bhushan [Page 1] RFC 327 Data and File Transfer Workshop Notes April 1972 Richard Winter discussed the Datacomputer application. The Datacomputer though usable from terminals directly will not be engineered for direct terminal users, but for use by programs. In Datalanguage a user can define data and file structure, and also how the file/data is to be transferred. Using the data language it is possible to transfer entire files, or only the relevant parts of files. The following is an example of file transfer as currently envisioned in the Datacomputer. LOGIN CREATE CREATE PORT = (for transfer to Datacomputer) = (for transfer from Datacomputer) LOGOUT (CREATE statements are needed only when the description(s) required are not already on file at the Datacomputer. A port description can specify a standard "external name", thus making a port statement optional also. "External name" is 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 discussed the TIP user needs, describing the current capabilities and limitations of TIPs and TIP terminals. TELNET format is the first choice of TIP users, followed by DTP using the indefinite bit stream mode. There are two TIPs with magnetic tape systems which are capable of transferring data between them using the current DTP (RFC 264) in the descriptor count mode (utilizing sequence number option). Bob Braden discussed the RJS protocol and presented some data on RJS use. NETRJS is 1% of CCN job load representing 2,000 jobs, 10,000 sessions and 1,000 hours connect time in the last 5 months. Average job input is of the order of 100,000 bits (400 cards), average job output is 700,000 bits (1,000 lines). Large files have about 10 million bits representing about 8-10 minutes of transmission time. The RJS protocol will be defined in a forthcoming document. Ray Tomlinson described the CPYNET system BBN is using to transfer files among TENEX systems. CPYNET commands are ASCII strings with a fixed syntax. The original connection is closed after a command is accepted, and data is transferred on a new connection using previous socket number, but with possibly a different byte size. The data transfer rate achieved in CPYNET has been about 10 Kb/s. Bhushan [Page 2] RFC 327 Data and File Transfer Workshop Notes April 1972 Abhay Bhushan discussed the evaluation of network protocols and presented some preliminary 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 given system conditions (fixed load, etc.) are: 1) Byte size used for NCP connection. 2) Average message size used for transmission. 3) Data format conversion (e.g., into Network ASCII, DTP Blocks, etc.). 4) Buffer size and I/O mode used (unit or block mode, etc.). 5) Other protocol constraints (acknowledge, error checking, connection procedure, etc.). There was some discussion as to how data and file transfer protocols may be altered to make transfer faster and more efficient by using optimum byte size and minimizing some of the constraints that impose a large overhead. The follow up discussions on DTP and FTP lead to a list of discussion and decision items for the next day. The following is a summary of decisions reached on Saturday, April 15, 1972. 1. Separate connections are to be used for data and control information. 2. 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. 3. The File Transfer and File System commands and their arguments shall be printable ASCII strings, instead of numeric codes, so that they are directly usable by a user at a terminal. The interaction, however, will be optimized for usage by programs. (indirect use). 4. The byte size and user socket for data connection, data representation, and transfer mode to be used in file transfer may be chosen by a user via one or more commands requiring a positive or negative acknowledgment. Bhushan [Page 3] RFC 327 Data and File Transfer Workshop Notes April 1972 5. The following data representations are to be accepted by all servers: 1) Network ASCII (7-bit ASCII in 8-bit field with 8th bit zero). 2) Local Byte (a server option to store data in an efficient manner, the storage scheme should be well publicized). 3) Image (a sequence of bits which should be stored contiguously independent of the byte size chosen for transfer). 4) ASCII Print file (convert ASCII file to a form suitable for printing). 5) EBCDIC Print file (convert EBCDIC file to a form suitable for printing). 6. Record structures are allowed but not mandatory. A user with no record structure in his file should be able to store or retrieve his 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. 7. The following data transfer modes are defined: 1) Byte-Stream - End of File indicated by closing connection. No record structure. 2) Block - File is series of blocks preceded by a count field. Appropriate means provided to indicate end-of- file, end-of-record, and restart markers. 3) ASCII - The file is network-ASCII, end-of-record, and end-of-file are indicated by a special "TELNET-control" character with 8th bit set to "one". 4) File is network-ASCII with an end-of-record defined by CR LF, and end-of-file by closing connection. 5) Hasp compressed file with end-of-record and end-of-file information. Bhushan [Page 4] RFC 327 Data and File Transfer Workshop Notes April 1972 8. A restart procedure will be provided to protect user from system failures (either host or 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 has meaning only to the sender. It could be bit-count, record count, or page count, etc.). The receiver of data would mark the corresponding position of this marker in its own system, and return this information to the user. In the event of a system failure, the user can restart the transfer by supplying this information with a restart command. 9. DTP is no longer a separate protocol but a set of transfer modes or format procedures whose use is defined by the file transfer protocol. 10. 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] Bhushan [Page 5]