summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc412.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc412.txt')
-rw-r--r--doc/rfc/rfc412.txt563
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc412.txt b/doc/rfc/rfc412.txt
new file mode 100644
index 0000000..78c2834
--- /dev/null
+++ b/doc/rfc/rfc412.txt
@@ -0,0 +1,563 @@
+
+
+
+
+
+
+Work Information Center # 12404 G. Hicks
+Request for Comments # 412 Utah
+ 27-Nov-72
+
+
+
+ User FTP Documentation
+
+ The attached document is the HELP file for the Utah-10
+implementation of the User FTP Process. This is what the user has
+typed on his console when he types 'HELP<cr>', and as such is the only
+documention produced to date.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Page 1]
+
+User FTP Documentation Detailed Command Listing
+
+
+ FTP User Documentation
+ November 27, 1972
+
+
+I. Control Characters
+
+ There are several control characters that have meaning to the FTP
+Process. First, the abort character is <control-z> (SUB), next for
+editing, only <control-r>, <control-a>, <control-h>, <control-v>,
+<control-w>, <alt-mode>, <eol>, <space>, <control-x> and <rub-out> have
+any meaning, <control-a> (SOH) and <control-h> (BS) are the character
+delete keys. <control-w> is the word delete character, Note: When dowing
+the ' funktion, this character will delete the entire line typed.
+<control-v> says take the next character literally. <alt-mode> (ESC)
+terminates the command giving helpful noise words, <eol> and <space> are
+terminators also. These last two will give no command completion or
+noise words. All three echo as a space however. <control-x> (CAN) and
+<rub-out> (DEL) are the command abort characters. <control-r> (DC2) will
+retype the line as the command interpreter sees it. When using the ? as
+a prompter, for initial commands, it will type-out all commands that
+begin with that particular character string. If it is typed in a sub-
+command field, it will type out the prompt message only if it is the
+first character typed. At all other times, it will be accepted as part
+of the typed string.
+
+
+II. General Information
+
+ The FTP user process is designed to make transferring files from
+one host on the ARPANET to another much easier than it has been up until
+now. To this end, the command language was designed to be as natural as
+possible.
+
+ The command interpreter is, of course, part of this idea.
+Therefore, to help the user as much as possible, there are several ways
+to find out what is expected in the form of commands, file-names, user-
+names, etc. When the user has typed nothing, typing a ? will cause the
+interpreter to type out all the commands that are available to the user.
+If the user has typed anything at all, then it will respond with all
+commands that begin with the particular character string.
+
+ So that the command language was as easy to learn as possible, the
+command interpreter will 'see' nothing that is not part of a legal
+command. If the user types anything that is not expected, the character
+is not echoed and a bell is echoed instead.
+
+
+
+
+
+
+ [Page 2]
+
+User FTP Documentation Detailed Command Listing
+
+
+III. Brief Command Listing
+
+ The commands that are expected and their syntax are listed below.
+NOTE: UPPER and lower case letters are identical.
+
+
+<host-name>
+D<decimal host number>
+<octal host number>
+;<any string> (useful for comments to a person that is
+linked to you)
+MODE <mode name>
+RETREIVE <remote file> (to) <local file>
+GET <remote file> (to) <local file>
+SEND <local file> (to) <remote file>
+STORE <local file> (to) <remote file>
+APPEND <local file> (to) <remote file>
+RENAME <remote file> (to be) <new remote file name>
+DELETE <remote file>
+BYE
+COPY <direction descriptor> <file group> (to) <file group>
+ (see detailed description below)
+LOGOUT
+DDT
+LIST <file group> (to file) <local file name>
+SOCKET (NOT IMPLEMENTED YET)
+ALLOCATE <decimal number of bytes>
+QUIT
+ foreign host)
+HOST <any valid ARPANET host name or number>
+USER <remote user name>
+PASSWORD <password for remote user's name>
+ACCOUNT <string or number for remote user's name>
+STATUS (see description of status command below)
+LOGIN <user name> <password> <optional account> <to host>
+BYTE <decimal byte size>
+TYPE <type descriptor>
+STRUCTURE <structure descriptor>
+TENEX
+ASCII
+VERBOSE
+
+
+
+
+
+
+
+
+
+
+ [Page 3]
+
+User FTP Documentation Detailed Command Listing
+
+
+IV. Detailed Description of the Commands
+
+ The commands and their syntax are described in greater detail
+ blow. The words in parenthesis are noise words. NOTE: upper and
+ lower case are identical. Unless otherwise noted in the command
+ description, all commands described are implemented.
+
+<host name> or <host number>
+ Performs the ICP to the indicated host with explanatory remarks if
+ the ICP is not possible.
+
+MODE <mode descriptor>
+ Sets the mode of the data transfer connection according to the
+ following sub-commandos:
+
+ STREAM: bit stream, end of file is indicated by the data connection
+ closing.
+
+ BLOCK: formats (or expects formatted) data into blocks.
+
+ TEXT: Sends or retreives text. Forces TYPE ASCII and BYTE 8. This
+ command sends the appropiate commands to the foreign host, then sends
+ the data using the TELNET codes for EOR and EOF as per the FTP
+ Protocol.
+
+ HASP: compress data.
+
+ NOTE: Of the above sub-commands, only MODE STREAM and MODE TEXT are
+ implemented at present.
+
+RETREIVE (file) <remote file> (to file) <local file name>
+ Sends the retr command to the remote server, sets up the data
+ connection according to any previous MODE, TYPE, BYTE commands. Puts
+ the data coming on the the data connection into the local file
+ specified.
+
+GET (file) <remote file name> (to file) <local file name>
+ See description of RETREIVE.
+
+STORE (local file) <file name> (onto file) <remote file>
+ Accepts a local file name, does the formatting according to any
+ previous BYTE, TYPE, MODE commands and sends it to the foreign host.
+
+SEND (local file) <file name> (onto file) <remote file>
+ See description of STORE.
+
+APPEND (local file) <file name> (to remote file) <remote file>
+ Does the same as a store except that the file is appended to the
+
+
+
+ [Page 4]
+
+User FTP Documentation Detailed Command Listing
+
+
+ remote file rather that just writing over the file.
+
+RENAME (existing file) <file name> (to be) <new file name>
+ Accepts the name of n old remote file and asks for a new file name,
+ sends the appropiate commands and names to the foreign host causing
+ the old file name to be replaced by the new file name.
+
+DELETE (file) <file name>
+ This command causes the remote file to be marked for deletion. It
+ does require that the command be confirmed twice.
+
+BYE
+ Takes no arguments. Causes the server to terminate the current
+ session with the user. The program will return to the EXEC MODE when
+ the command has been acknowledged by the remote server.
+
+COPY
+ This command does a variety of things. First. it allows the user do
+ describe a file group. EG: *.mac, *.sav, etc. The *'s may be for
+ foreign files or local files according to the following sub-commands:
+
+ REMOTE (remote file group) <remote file grouping>:
+ Causes the user FTP to ask the server for the file in <remote file
+ grouping>. Then asks the user to specify where each file is to go. A
+ typical sequence might look like the following:
+
+ !copy remote (remote file group) ftp.*
+ Please be patient. Getting remote file names.
+ Got them.
+ !copy (file) <HICKS>FTP.MAC;| (to file) ftp.mac [New file]
+ [Messages and etc. follow with the above line being
+ repeated for each file in the remote file group.]
+
+ LOCAL (local file grouping) <local file group>:
+ Causes the user FTP to accept the file group specified, and send the
+ file names to the server leaving off the <directory name> and version
+ number of the local file. The user may not specify *'d devices of *'d
+ directorys. A line for this might look like the following:
+ !copy local (local file group) ftp.*;*
+ [Confirm]
+
+ Next, if the user does not specify any *'s for either the remote file
+ or the local file, this command is exactly like the RETREIVE or STORE
+ command described earlier.
+LOGOUT
+ Takes no arguments. See description of BYE command for more details.
+
+
+
+
+
+ [Page 5]
+
+User FTP Documentation Detailed Command Listing
+
+
+RESET
+ Takes no arguments. Causes the user process to close all connections
+ (if necessary), all files (if necessary), and reset the programs
+ parameters to their defaults.
+
+DDT
+ If DDT is loaded, just starts DDT. If DDT is not loaded, it will load
+ DDT and then start it at its initial start-up location. This command
+ will casue an abnormal interrupt if DDT is not found.
+
+LIST (file group) <remote file group> (to file) <local file>
+ Esentially causes the remote server to do a directory command. The
+ default is *.* and since the listing will come on the data connection,
+ the user must specify a local file. A sample line might look like the
+ following: !list (file group) *.* (going to file) tty: [ok]
+
+SOCKET <socket descriptor>
+ Will accept a socket descriptor for the data to go to or come from. At
+ present it is NOT IMPLEMENTED because we have not decided on the
+ format of the command to the server.
+
+ALLOCATE <decimal number of bytes>
+ Accepts as its argument a decimal number of bytes (of the specified
+ size) telling the server how many bytes of storage to reserve for the
+ next store of append.
+
+QUIT
+ Takes no arguments. Returns the console to the EXEC. The program may
+ be continued with no harm done.
+
+ This command allows the user to send arbitrary strings to the remote
+ server. At present, when talking to a TENEX site, it is only useful
+ for doing the 'MAIL' command. Other sites may have help commands of
+ whatever.
+
+HOST <ARPANET host name of number>
+ Allows the user to specify an ARPANET host without actually connecting
+ to the host. This specified host will be the ont that is connected to
+ (or the attempt will be made anyway) when the next 'immediate' command
+ is executed. EG: LOGIN, RETREIVE, STORE, LIST, etc.
+
+USER (name is) <remote user's name>
+ Sets the user name for the remote system. Useful for systems that
+ require no password for the specified name. Does nothing until an
+ user must be 'logged into' the remote system. The programm knows this
+ and so will not let the user execute any commands (RETREIVE, STORE,
+ APPEND, LIST, STATUS, RENAME, DELETE) until he has at least specified
+ a remote user name. The LOGIN command does this as does this command.
+
+
+
+ [Page 6]
+
+User FTP Documentation Detailed Command Listing
+
+
+STATUS (of the) <sub-cmd> (at host) <ARPANET host>
+ Accepts as its argument one of the following sub-commands:
+ SERVICE (at host) <ARPANET host name or number>: Attempts to
+ perform the ICP to the specified host. Does not disturb any existing
+ connections.
+ <ARPANET host name or number>: See description of STATUS SERVICE
+ above.
+
+ STATUS (of file) <remote file group>: Similar to the LIST
+ command described above except that the listing does not gone back on
+ the data connection but on the TELNET connection. See LIST command for
+ more details.
+ <COMMAND-TERMINATOR>: Just sneds the STAT command.
+ Typically, is good for finding out where your are and perhaps who you
+ are.
+
+PASSWORD (is) <passowrd for remote user's name>
+ Sets the password for the remote user's name. It is NOT echoed and
+ does nothing until the next 'immediate' command is executed.
+
+ACCOUNT (is) <account number or string>
+ Accepts a string of number that can be charged for any activity the
+ user specifies. EG: STORE, RETREIVE or APPEND. Useful only for systems
+ that require this information of course. Also does nothing until the
+ next immediate command is executed.
+
+LOGIN <user name> <password> <optional account>
+ the format of this command is identical to the TENEX login command. It
+ accepts a user name, password, and an optional account number. If no
+ host has been specified, it will ask for the host to be connected to.
+ This command will cause the ICP to take place if necessary.
+
+BYTE (size is) <decimal byte size>
+ This command sets the byte size for the data connection. The default
+ byte size is 8 bytes.
+
+Type (is) <type descriptor>
+ Takes as its argument one of the following subcommands:
+ TENEX: Shorthand that sets TYPE IMAGE and BYTE 36.
+ EBCDIC: Says that the data will be Ebcdic.
+ PRINT: Says that the data is an Ascii print file with ASA vertical
+ format controls.
+ LOCAL: Forces the user and server FTP to accept whatever
+ byte size the user has specified. For the present, this type is
+ treated the same as for IMAGE TYPE.
+ IMAGE: Does the same as LOCAL. Just forces the user and server FTP to
+ accept the specified byte size without doing any translation as is
+ done for ASCII type. For most efficient usage of this command, the
+
+
+
+ [Page 7]
+
+User FTP Documentation Detailed Command Listing
+
+
+ matching byte size should be BYTE 36 when using TENEX sites as
+ servers.
+ ASCII: Sets TYPE ASCII and 8 bit bytes. Useful for text files.
+ NOTE: Of the above sub-commands, only PRINT and EBCDIC are not
+ implemented yet.
+
+STRUCTURE (is) <file structure descriptor>
+ Accepts as its argument one of the following sub-commands:
+ REDORD: Says the data on the data connection has record
+ structure information contained in it. NOTE: Since TENEX NOT support
+ record structured files per se, this mode only useful for sending text
+ files to or retreiving text files from non-TENEX sites. The <EOL> in
+ these files is converted to the TELNET EOR code for transmission and
+ EOR to <EOL> etc. for reception.
+
+ File: Says the data stream has no record structure information in it.
+
+TENEX
+ See description under TYPE TENEX.
+
+ASCII
+ See description under TYPE ASCII.
+
+VERBOSE
+ This command sets the command completion/no completion flag. The
+ program assumes the NO VERBOSE mode and thus does not complete
+ commands when <space> or <eol> is used as a command terminator It also
+ causes the noise words to be typed if in the verbose mode.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Page 8]
+
+User FTP Documentation Detailed Command Listing
+
+
+V. Sample Session using the FTP
+
+ The following scenario shows some uses of the FTP.
+ Everything that the user types is underlined.
+
+ UTAH-TENEX 1.29.03 EXEC 1.38
+ LOGIN (USER) HICKS (PASSOWRD) (ACCOUNT #) 1200
+ JOB 24 ON TTY2 11-NOV-72 1:51
+ TERMINAL (TYPE IS) 4
+ ftp
+ FTP User Process 1.10 5-NOV-72. Type Help<cr> for help.
+ !login (user) network (password) (account) 4 (to host) case-10
+ CONNECTION IS OPEN TO CASE-10.
+ < CASE-10 FTP Server 1.14.0 - at SAT 11-NOV-72 2:00-EST
+ !tenex ? confirm with carriage return
+ tenex
+ !copy remote (remote group) ftp.*
+ Please be patient. Getting remote file-names.
+ Got them.
+ !copy (file) <NETWORK>FTP.MAC:32 (no file) ftp.mac [new file]
+ < IMAGE retreive of <NETWORK>FTP.MAC;32 startet.
+ < Transfer completed.
+ !copy (file) <NETWORK>FTP.SAV;5 (fo file) FTP.SAV;5 [new version]
+ < IMAGE retreive of <NETWORK>FTP.SAV;5 started.
+ < Transfer completed.
+ !copy (file) <NETWORK>FTP.REL;1 (to file) xxx
+ !copy (file) <NETWORK>FTP.HELP;5 (to file) ftp.help [New version]
+ copy (file) <NETWORK>FTP.HELP;5 (to file) FTP.HELP;1
+ < IMAGE retreive of <NETWORK>FTP.HELP;5 started.
+ < Transfer completed.
+ Done...
+ !usc-isi
+ Closing connections to CASE-10.
+ CONNECTION IS OPEN TO USC-ISI.
+ < USC-ISI FTP Server 1.14.0 - at SAT 11-NOV-72 2:15-PST
+ !log
+ user hicks
+ (password)
+ (account) ? account number or string for remote user's name
+ log
+ (user) hicks
+ (password)
+ (account) |
+ !send (local file) ftp.sav;5 (to remote file) ftp.sav
+ < STORE of <HICKS>FTP.SAV;P777752;a|, IMAGE type, started.
+ < Transfer completed.
+ !cp r acs.mac (to local file) acs.mac [new file]
+ < IMAGE Retreive of <HICKS>ACS.MAC;3 started.
+
+
+
+ [Page 9]
+
+User FTP Documentation Detailed Command Listing
+
+
+ < Transfer completed.
+ !copy 1 ? Local file group, *'s ok - TENEX sites only,
+ copy 1 ftp.*
+ [Confirm]
+ < Store of <HICKS>FTP.MAC;1;P777752;A1, IMAGE type, Started.
+ < Transfer completed.
+ < Store of <HICKS>FTP.SAV;2;P777753;A1, IMAGE type, Started.
+ < Transfer completed.
+ < copy of <HICKS>FTP.HELP;1;P777752;A1 IMAGE type, Started,
+ < Transfer completed.
+ !bye
+ !< BYE command recieved.
+ < Therefore connection terminated.
+ logout
+ [logout message go here]
+
+
+
+
+
+
+ [ This RFC was put into machine readable form for entry ]
+ [ into the online RFC archives by Gottfried Janik 6/97 ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Page 10]
+