summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc385.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc385.txt')
-rw-r--r--doc/rfc/rfc385.txt339
1 files changed, 339 insertions, 0 deletions
diff --git a/doc/rfc/rfc385.txt b/doc/rfc/rfc385.txt
new file mode 100644
index 0000000..ab2059b
--- /dev/null
+++ b/doc/rfc/rfc385.txt
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+NWG/RFC 385 Abhay K. Bhushan
+NIC 11357 MIT-MAC
+Updates: RFC 354 August 18, 1972
+RFC 354
+
+ COMMENTS ON THE FILE TRANSFER PROTOCOL (RFC 354)
+ ------------------------------------------------
+
+ The following comments pertain to the File Transfer Protocol, NWG/RFC
+ 354. The comments include errata, further discussion, emphasis
+ points, and additions to the protocol. I shall incorporate these
+ comments into the main protocol document after we have had sufficient
+ experience.
+
+ 1. Please note the following corrections:
+ (i) Page 2, line 15: replace user-FTP by server-FTP.
+ (ii) Page 3, line 12: replace III.A by III.C.
+ (iii) Page 15, last para, line 1: replace user s by user is.
+ (iv) Page 28, line 21: replace _CRCRLF_ by _CRLF_.
+ (v) Page 27, line 10: replace 451,451 by 451.
+ (vi) Note that on Page 26, line 15 mode code is S|B|T|H.
+
+ 2. The language of RFC 354 reads that it is recommended for
+ hosts to implement the default parameters. The sense of the
+ word recommended should be taken as required. Thus the
+ required minimum implementations for FTP servers is:
+
+ Type - ASCII (8-bit bytes)
+ Mode - Stream
+ Structure - File
+ Commands - RETR, STOR, USER (and PASS), SOCK and BYE
+
+ 3. The "Print File-ASCII" and "EBCIDIC Print File" types are
+ incorrectly specified (pages 10 and 11, RFC 354). The real
+ problem with print files is of ASA (Fortran) vertical format
+ control. Instead of the two print file types, there should
+ really be three types as described below:
+
+ BCDIC - The sender transfers data using the EBCDIC
+ character code and 8-bit transfer byte size.
+ The _CRLF_ convention is used for vertical format
+ control. This type will be used for efficient
+ transfer of EBCDIC files between systems which
+ use EBCDIC for their internal character
+ representation.
+
+
+
+
+
+
+ [Page 1]
+
+NWG/RFC 385 Page 2
+
+
+ ASCII with ASA vertical format Control - This is the
+ "Print file-ASCII" defined in RFC 354. The
+ server is to transform the data in accordance
+ with ASA (Fortran) vertical format control
+ procedures for printing on printers that
+ still use this standard. The data is to be
+ transferred as 8-bit bytes.
+
+ EBCDIC with ASA vertical format control - This is the
+ EBCDIC Print File defined in RFC 354. The
+ server is to transform the data in accordance
+ with ASA (Fortran) vertical format control
+ standards but using the EBCDIC character code.
+ The data is to be transferred in 8-bit bytes.
+
+ The new types are to be denoted by symbols E for EBCDIC, P
+ for Print file-ASCII and F for Formatted (ASA standard)
+ EBCDIC print file. A discussion of the ASA vertical format
+ control appears in NWG/RFC 189, Appendix C, and in
+ Communications of the ACM, Vol 7, No. 10, p. 606, October
+ 1964. According to the ASA vertical format control
+ standards, the first character of a formatted record is not
+ printed but determines vertical spacing as follows:
+
+ Character Vertical Spacing before printing
+ --------- --------------------------------
+ Blank One line
+ 0 Two lines
+ 1 To first line of next page
+ + No advance
+
+ In addition to the above four, there are more characters
+ (defined in Appendix C, RFC 189) which represent an IBM
+ extension to the ASA standard.
+
+ 4. A comparison of "stream" and "text" modes is in order. The
+ advantages of "stream" mode are:
+ 1) The receiver need not scan the incoming bytes.
+ 2) It is usable with all data types.
+
+ The disadvantages are:
+ 1) The EOF by closing the connection is not reliable.
+
+ 2) The EOR by ASCII _CRLF_ is unreliable as the _CRLF_
+ really may be valid data rather than an EOR. It is
+ an EOR only if the sender and receiver have a _prior_
+ agreement to that effect.
+
+
+
+
+ [Page 2]
+
+NWG/RFC 385 Page 2
+
+
+ 5. In the Block mode the protocol states that left-most bits not
+ containing information should be zero. It appears that some
+ sites have difficulty sending null bytes in the beginning of
+ a block. Since it is really not necessary for these bytes to
+ be zero, these bits are now defined to be "don't care" bits.
+
+ 6. In the use of block mode it is possible for two or more
+ conditions requiring different descriptor codes (suspected
+ errors and either end of record or end of file) to exist
+ simultaneously. Such a possibility may be handled by sending
+ a separate EOR or EOF block with a zero byte count (this is
+ allowed by the protocol). Also it should be noted that an
+ EOF is an implicit EOR.
+
+ 7. It needs to be emphasized again that the user-FTP must
+ "listen" on the data socket prior to sending a command
+ requiring a file transfer. Specifically the user-FTP should
+ not wait for a 255 reply (server data socket) before doing
+ the "listen". (The security check may be come later, as the
+ data connection can be closed if connection is to a socket
+ other than that specified by the 255 reply). Although the
+ protocol suggests that the 255 reply would be sent before
+ making the connection, it does not guarantee that the 255
+ reply would arrive before the initiating RFC at the user
+ site. The above argument also applies to receiving a a close
+ (NCP-CLS) on the data connection before receiving a reply
+ indicating the reason for the close (note assertion on page
+ 24, paragraph 3, RFC 354).
+
+ 8. Although the protocol does not restrict closing or leaving
+ open the data connection in Block and Text modes, it should
+ be emphasized that the closing of the data connection, if it
+ is to be done at all, should be done immediately after the
+ file transfer rather than just after a new transfer command
+ is received. This is because the server and user may have to
+ test whether the data connection is open or not before doing
+ a "listen" or an "init" respectively.
+
+ 9. It should be emphasized again that 'Type' supersedes 'Byte',
+ and that the TYPE command should be sent before the BYTE
+ command.
+
+ 10. It should be noted that both upper and lower case alphabetic
+ characters are to be treated identically in the command
+ syntax. This applies also to the symbols for type, mode,
+ and structure. For example, 'A' and 'a' both indicate ASCII
+ type.
+
+
+
+
+ [Page 3]
+
+NWG/RFC 385 Page 2
+
+
+ 11. It should be noted that in the 'LIST' command, the data
+ transfer is over the data connection in type ASCII.
+
+ 12. The following reply code is to be added:
+
+ 454 FTP: Cannot connect to your data socket.
+
+ This is a fail response any of the commands requiring data
+ transfer (including RETR, STOR, APPE, and LIST)
+
+ 13. Rather than use the append command for sending mail files, a
+ new command 'MLFL' (for mail file) is defined. The syntax
+ of the mail file command is:
+
+ MLFL <user>CRLF
+ where
+ <user> ::= <empty>| <NIC ident>| <sys ident>
+
+ If the user field is empty or blank (one or more spaces),
+ then the mail is destined for a printer or other designated
+ place for site mail. <NIC ident> refers to the standard
+ identification described in the NIC Directory of Network
+ Participant. A serving host may keep a table mapping <NIC
+ ident> into <sys ident>. This would provide for uniform
+ convenient usage. <sys ident> is the user's normal
+ identification at the serving HOST. The use of <sys ident>
+ would allow a network user to send mail to other users who
+ do not have NIC identification but whose <sys ident> is
+ known.
+
+ The intent of this command is to enable a user at the user
+ site to mail data (in form of a file) to another user at the
+ server site. It should be noted that the files to be mailed
+ are transmitted via the data connection in ASCII type.
+ These files should be appended to the destination user's
+ mail by the server in accordance with serving Host mail
+ conventions. The mail my be marked as sent from the
+ particular using HOST and the user specified by the 'USER'
+ command. The reply codes for the "MLFL" command are
+ identical to that in the "APPE" command, as shown below:
+
+ COMMAND SUCCESS FAIL
+ ------- ------- ----
+ MLFL 250 451,454,500-506
+ Sec. reply 252 452,453
+
+ 14. The 'MLFL' command for network mail, though a useful and
+ essential addition to the FTP command repertoire, does not
+
+
+
+ [Page 4]
+
+NWG/RFC 385 Page 2
+
+
+ allow TIP users to send mail conveniently without using
+ third hosts. It would be more convenient for TIP users to
+ send mail over the TELNET connection instead of the data
+ connection as provided by the 'MLFL' command. The following
+ 'MAIL' command is therefore defined to send mail via the
+ TELNET connection:
+
+ MAIL <user>CRLF
+
+ the syntax of <user> is identical to that in the MLFL
+ command described above. After the 'MAIL' command is
+ received, the server is to treat the following lines as text
+ of the mail sent by the user. The mail text is to be
+ terminated by a line containing only a single period, that
+ is the character sequence ".CRLF" in a new line. The
+ following new reply codes are defined to handle the mail
+ command:
+
+ 350 Enter mail, terminate by a line with only a '.'
+ 256 Mail completed.
+
+ The reply codes are:
+
+ COMMAND SUCCESS FAIL
+ ------- ------- ----
+ MAIL 350 450,451,500-506
+ Sec Reply 256
+
+ 15. An additional access control command called account (ACCT)
+ is now defined to facilitate accounting in systems such as
+ TENEX which require in addition to user and password, a
+ separate account specification. The 'ACCT' command is
+ different from the 'PASS' command in that it is not
+ necessarily related to the 'USER' command and may arrive at
+ any time. For example, a user may transfer different files
+ using different accounts. The 'ACCT' command has the same
+ reply codes as the 'PASS' command (230 for success and 430-
+ 432,500-506 for fail). Some servers may require that an
+ account command must be sent before the user is "logged in".
+ For suchcases the success reply to the 'PASS' command could
+ be '330 Enter account'.
+
+ 16. Since password information is quite sensitive, it is
+ desirable in general to "mask" it or suppress type out. It
+ appears that the server has really no fool-proof effective
+ way to achieve this. It is therefore the user-FTP process
+ responsibility to hide the sensitive password information.
+
+
+
+
+ [Page 5]
+
+NWG/RFC 385 Page 2
+
+
+ 17. The FTP is an open-ended protocol designed for easy
+ expandability. Experimental commands may be defined by
+ sites wishing to implement such commands. These
+ experimental commands should begin with the alphabetic
+ character 'X'. Standard reply codes may be used with these
+ commands. If new reply codes need to assigned, these
+ should be chosen between 900 and 999. If the experimental
+ command is useful and of general interest, it shall be
+ included in the FTP command repertoire.
+
+
+
+ [ This RFC was put into machine readable form for entry ]
+ [ into the online RFC archives by BBN Corp. under the ]
+ [ direction of Alex McKenzie. 1/97 ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Page 6]
+