[net.sources] Man pages for Kermit

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?---