trio@idis.UUCP (02/25/85)
KERMIT(1) UNIX Programmer's Manual KERMIT(1) NAME kermit - file transfer, virt. terminal over tty link SYNOPSIS kermit c[lbe] [_l_i_n_e] [_b_a_u_d] [_e_s_c] kermit r[ddilb] [_l_i_n_e] [_b_a_u_d] kermit s[ddilb] [_l_i_n_e] [_b_a_u_d] _f_i_l_e ... DESCRIPTION _K_e_r_m_i_t provides reliable file transfer and primitive virtual terminal communication between machines. It has been imple- mented on many different computers, including microproces- sors (see below). The files transferred may be arbitrary ASCII data (7-bit characters) and may be of any length. The file transfer protocol uses small (96 character) checksummed packets, with ACK/NACK responses and timeouts. _K_e_r_m_i_t currently uses a five second timeout and ten retries. The arguments to _k_e_r_m_i_t are a set of flags (no spaces between the flags), three optional args (which, if included, must be in the same order as the flags which indicate their presence), and, if this is a Send operation a list of one or more files. (It is similar in some way to the _t_a_r command structure). _K_e_r_m_i_t has three modes, Connect, Send, and Receive. The first is for a virtual terminal connection, the other two for file transfer. These modes are specified by the first flag, which should be c, s, or r, respectively. Exactly one mode must be specified. The d flag (debug) makes _k_e_r_m_i_t a bit more verbose. The states _k_e_r_m_i_t goes through are printed along with other traces of it's operation. A second d flag will cause _k_e_r_m_i_t to give an even more detailed trace. The i flag (image) allows slightly more efficient file transfer between Unix machines. Normally (on Kermits defined to run on Unix systems) newline is mapped to CRLF on output, CR's are discarded on input, and bytes are masked to 7 bits. If this is set, no mapping is done on newlines, and all eight bits of each byte are sent or received. This is the default for non-Unix kermits. The l flag (line) specifies the tty line that _k_e_r_m_i_t should use to communicate with the other machine. This is speci- fied as a regular filename, like "/dev/ttyh1". If no l option is specified, standard input is used and _k_e_r_m_i_t assumes it is running on the remote host (ie. NOT the machine to which your terminal is attached). Printed 9/22/83 local 1 KERMIT(1) UNIX Programmer's Manual KERMIT(1) The b flag (baud) sets the baud rate on the line specified by the l flag. No changes are made if the b flag is not used. Legal speeds are: 110, 150, 300, 1200, 2400, 4800, 9600. Note that this version of _k_e_r_m_i_t supports this option on Unix systems only. The e flag (escape) allows the user to set the first charac- ter of the two character escape sequence for Connect mode. When the escape character is typed, _k_e_r_m_i_t will hold it and wait for the next character. If the next character is c or C, _k_e_r_m_i_t will close the connection with the remote host. If the second character is the same as the escape character, the escape character itself is passed. Any character other than these two results in a bell being sent to the user's terminal and no characters passwd to the remote host. All other typed characters are passed through unchanged. The default escape character is '^'. The file arguments are only meaningful to a Send _k_e_r_m_i_t. The Receiving _k_e_r_m_i_t will attempt to store the file with the same name that was used to send it. Unix _k_e_r_m_i_ts normally convert outgoing file names to uppercase and incoming ones to lower case (see the f flag). If a filename contains a slash (/) all outgoing kermits will strip off the leading part of the name through the last slash. EXAMPLE For this example we will assume two Unix machines. We are logged onto "unixa" (the local machine), and want to commun- icate with "unixb" (the remote machine). There is a modem on "/dev/tty03". We want to connect to "unixb", then transfer "file1" to that machine. We type: kermit clb /dev/tty03 1200 Kermit answers: Kermit: connected... Now we dial the remote machine and connect the modem. Any- thing typed on the terminal will be sent to the remote machine and any output from that machine will be displayed on our terminal. We hit RETURN, get a "login:" prompt and login. Now we need to start a _k_e_r_m_i_t on the remote machine so that we can send the file over. First we start up the remote, (in this case receiving) _k_e_r_m_i_t, then the local, (sending) one. Remember that we are talking to unixb right now. We type: kermit r (there is now a Receive _k_e_r_m_i_t on unixb) Printed 9/22/83 local 2 KERMIT(1) UNIX Programmer's Manual KERMIT(1) We type ^ (the escape character) and then c to kill the local (Connecting) _k_e_r_m_i_t. Kermit answers: Kermit: disconnected. We type: kermit slb /dev/tty03 1200 file1 Kermit answers: Sending file1 as FILE1 When the transmission is finished, _k_e_r_m_i_t will type either "Send complete", or "Send failed.", depending on the success of the transfer. If we now wanted to transfer a file from unixb (remote) to unixa (local), we would use these com- mands: kermit clb /dev/tty03 1200 (connected to unixb) kermit s file9 ^c (up-arrow c not control-c) (talking to unixa again) kermit rl /dev/tty03 1200 After all the transfers were done, we should connect again, log off of unixb, kill the Connect _k_e_r_m_i_t and hang up the phone. Detail on other implementations and on the protocol is given in the _K_e_r_m_i_t _U_s_e_r_s _G_u_i_d_e, and the _K_e_r_m_i_t _P_r_o_t_o_c_o_l _H_a_n_d_b_o_o_k. FEATURES _K_e_r_m_i_t can interact strangely with the tty driver. In par- ticular, a tty with "hangup on last close" set (stty hup), will reset to 300 Baud between _k_e_r_m_i_t commands. It will also hang up a modem at that time. It is better to run with "stty -hup", and use "stty 0" to explicitly hang up the modem. The KERMIT Protocol uses only printing ASCII characters, Ctrl-A, and CRLF. Ctrl-S/Ctrl-Q flow control can be used "underneath" the Kermit protocol (TANDEM line discipline on Berkeley Unix). Since BREAK is not an ASCII character, _k_e_r_m_i_t cannot send a BREAK to the remote machine. On some systems, a BREAK will be read as a NUL. This _k_e_r_m_i_t does have timeouts when run under Unix, so the protocol is stable when communicating with "dumb" kermits (that don't have timeouts). OTHER IMPLEMENTATIONS _K_e_r_m_i_t_s have been written for TOPS-20, TOPS-10, IBM VM/CMS, Printed 9/22/83 local 3 KERMIT(1) UNIX Programmer's Manual KERMIT(1) Unix, VAX/VMS, RT-11, MS-DOS, CP/M, and Apple DOS. The Unix _k_e_r_m_i_t in use at Ford Aerospace has been tested on v6/PWB, v7, Onyx System III, Bell System V, and Berkeley 4.1. More information is given in the _K_e_r_m_i_t _U_s_e_r_s _G_u_i_d_e. SEE ALSO stty(1) _K_e_r_m_i_t _U_s_e_r_s _G_u_i_d_e, Fourth Edition (4 May 83), Frank da Cruz, Daphne Tzoar, Bill Catchings _K_e_r_m_i_t _P_r_o_t_o_c_o_l _M_a_n_u_a_l, Protocol Version 3 (29 April 83), Frank da Cruz, Bill Catchings Both of the above documents are from the Columbia University Center for Computing Activities, New York, New York, 10027. AUTHORS KERMIT kernel by Bill Catchings, Columbia University Center for Computing Activities KERMIT-Unix adaptation by Chris Maio and Bob Cattani, Colum- bia University Computer Science Dept. Local mods for v6, System III, and System V by Walter Under- wood. Includes bug fixes from Jim Guyton at RAND-Unix. DIAGNOSTICS cannot open _d_e_v_i_c_e The file named in the _l_i_n_e argument did not exist or had the wrong permissions. bad line speed The _b_a_u_d argument was not a legal speed. Could not create _f_i_l_e A Receive _k_e_r_m_i_t could not create the file being sent to it. nothing to connect to A Connect _k_e_r_m_i_t was started without a _l_i_n_e argument. BUGS AND CAVEATS There is no locking on the use of the outgoing line. Several users could run _k_e_r_m_i_t (or anything else) on the line simultaneously. The acronym (_KL10 _Error-free _Reciprocal _Micro _Interconnect over _TTY lines) is charming, but strained. This implementation does not send or process error-message packets. Printed 9/22/83 local 4 KERMIT(1) UNIX Programmer's Manual KERMIT(1) Eight-bit quoting is not implemented. Printed 9/22/83 local 5 -- ----- ----- ----- ----- ----- ----- ----- ----- Nick Trio -If you don't like the answer, Grad Student - Sociology don't ask the question- U. of Pittsburgh ...decvax!mcnc!idis!trio ---All of these views are mine and no one else's. So What?---