CONTENTS
The Internet Kermit Service Daemon (IKSD) is C-Kermit 7.0 running as an Internet service, similar to an FTP or Telnet server. It executes Telnet protocol just like a Telnet server and it transfers files like an FTP server. But unlike an FTP server, IKSD uses the Kermit file transfer protocol.
An IKSD may be accessed on TCP port 1649 using any Telnet client that allows a port specification and also includes Kermit protocol (and, as noted below, it may also be accessed by traditional serial communication programs too). Kermit Project clients are recommended for best results, but third-party commercial, shareware, or freeware clients may also be used.
To access the IKSD at the Kermit Project, instruct your Telnet client to make a connection to:
kermit.columbia.edu kermit
or if that doesn't work:
kermit.columbia.edu 1649
The syntax for specifying the TCP port number varies from client to client. (For starters, try clicking on the link above...)
Why an Internet Kermit Service Daemon when there are already FTP servers?
IKSD can be used interactively by typing commands at its prompt (just as you would use C-Kermit), or in client/server mode.
A client/server connection is possible (as far as we know) only with Kermit Project Telnet clients (since third-party Kermit implementations rarely implement features beyond the bare minimum, and therefore don't include client commands). Recommended clients include:
To make a client/server connection, tell your Telnet client to:
set host kermit.columbia.edu 1649 ; (C-Kermit or Kermit 95) set port tcp kermit.columbia.edu 1649 ; (MS-DOS Kermit)
Now log in to the server like this:
remote login username password
Since you probably don't have a Columbia user ID, you would normally supply "anonymous" (spelled out all the way) or "ftp" (a synonym for "anonymous") as the username, and your email address as the password, for example:
remote login anonymous ivan@abccorp.com remote login ftp olga@xyzcorp.com
Note that you can't send any commands other than REMOTE LOGIN, REMOTE LOGOUT, REMOTE HELP, REMOTE EXIT, and BYE to the IKSD before you have logged in. Also note that when your client is C-Kermit 7.0 and later, LOGIN and LOGOUT may be given without the REMOTE prefix:
login anonymous ivan@abccorp.com login ftp olga@xyzcorp.comDitto for Kermit 95 1.1.18 Beta.
Once logged in, you are situated at the root of the /pub/ftp tree. Use:
remote directory
for a list of directories you can access, then use "remote cd" to change to the desired directory, for example:
remote cd kermit
Whenever you change directories like this, you will receive an orientation message describing what is available in this area. If you would like to disable these messages, tell your client to:
remote set cd-message off
(This command is new to C-Kermit 7.0 and K95 1.1.18).
To find out what commands the server will accept, type:
remote help
Consult your MS-DOS Kermit, C-Kermit, or K95 manual for detailed descriptions. A brief summary follows; syntax may vary according to the Kermit client. Shortcut R-commands (like RCD, RDIR, etc) are available in C-Kermit 7.0 and K95 1.1.18:
The following client commands are generally not accepted by the IKSD from anonymous users:
set host kermit.columbia.edu 1649 ; Make the connection remote login ftp olaf@wwwcorp.com ; Log in remote cd kermit/test/text ; Change to desired directory set file collision update ; Use update mode fast ; Use fast file-transfer settings (1) mget makefile ck[cuw]*.[cwh] ; Get all .txt files that changed (2) bye ; Log out and disconnect
Notes:
The IKSD can be accessed directly by your Telnet client's CONNECT command or terminal emulator (no particular terminal emulation is expected, needed, or used). For direct access with a Kermit Project client, use a TELNET command rather than SET HOST (or add a CONNECT command after your SET HOST command). For other clients, follow the instructions for making a Telnet connection.
Now you should see Username and Password prompts. Respond to them just as you would if logging into UNIX or VMS, e.g.:
Username: olga Password: secret (The password does not echo)
Underlining indicates material that you type. Press the Enter or Return key at the end of the underlined text.
If you do not have a user ID on the server system, supply a username of "anonymous" or "ftp", and your email address as the password:
Username: anonymous Password: olga@olgacorp.com
Once you have logged in successfully, you will see the IKSD interactive command prompt, something like:
(/users/olga/) IKSD>
The current directory is shown in parentheses. For anonymous users, this is initially the root of the /pub/ftp tree (shown as "/"):
(/) IKSD>
What you see is nothing more than C-Kermit 7.0 with its prompt set to say "IKSD" instead of "C-Kermit". You can use any commands here that are accepted by C-Kermit 7.0, as described in the manual, Using C-Kermit, as augmented by the C-Kermit 7.0 release notes, C-Kermit 7.0 update notes, except that:
If you have no idea what to type at the IKSD prompt, try typing the word HELP and then pushing the Enter or Return key.
For file-transfer purposes, interactive-mode IKSD is like C-Kermit in remote mode. If you tell it to SEND a file, you must get your client to receive it. All modern Kermit programs (MS-DOS Kermit 3.15 and later, C-Kermit 6.0 and later, and all versions of K95) support the "autodownload" feature for Kermit protocol, but you might have to enable it first with:
set terminal autodownload on
(Autodownload is enabled by default in Kermit 95 and in C-Kermit 7.0; it must be explicitly enabled in C-Kermit 6.x and in MS-DOS Kermit.)
Assuming you have autodownload enabled in your client, you can initiate all file transfers from the IKSD prompt:
Of course, you can't send files to the IKSD unless you have the appropriate write permission, which is generally lacking for anonymous users.
It is beyond the scope of this document to explain all that is possible at the IKSD prompt. That is the subject of a 622-page book augmented by about a megabyte of online text. In general, the best reason for using interactive IKSD access is that the IKSD (C-Kermit 7.0) might have capabilities lacking from your Telnet/Kermit client. For example, your client might lack Kermit server-oriented commands like GET and REMOTE. It almost certainly lacks the flexible file-selection mechanisms of C-Kermit 7.0 unless it *is* C-Kermit 7.0. So, for example, suppose you want to get a group of files matching several different patterns with a particular range of sizes and dates, except for a certain file you want excluded, and some of them are text and others are binary, and the text files should have their character sets translated:
(/u/ivan/files/) IKSD> set file character-set hp-roman8 (/u/ivan/files/) IKSD> set transfer character-set latin1 (/u/ivan/files/) IKSD> set transfer mode automatic (/u/ivan/files/) IKSD> msend /larger-than:10000 /smaller-than:20001 - /after:24-Dec-1998_0:00:00 /before:1-Jan-1999_0:00:00 - /except:c123.txt /recover c*.txt x*.zip *.tar.gz
To terminate an interactive IKSD session, type LOGOUT or EXIT at the IKSD prompt.
(Note that at some sites, the IKSD might be configured to allow only client/server mode.)
You can switch between client/server and interactive mode whenever you like. To switch from client/server to interactive mode, give the following commands to your client:
finish connect
To switch from interactive to client server mode, give a SERVER command at the IKSD prompt, then escape back to your client (or access its menus, etc).
A striking advantage of IKSD over a traditional FTP server is that IKSD can be accessed by dialup as well as by Telnet connections. This is possible when a terminal server may be dialed that can make a Telnet connection to the host where IKSD is running. Just dial up the terminal server and ask it to make a Telnet connection to port 1649 on the desired host. Everything except tight coupling (next section) works the same (but of course there might be transparency problems, which can be handled in the normal ways -- SET PARITY, SET PREFIXING, etc).
Tight coupling ensures that the Kermit client and Kermit server are always ready to respond to each other using the proper command interface. For example, if the IKSD is in server mode and you give a CONNECT command to the client, the IKSD presents its interactive prompt. Conversely, if you give a SERVER command at the IKSD prompt, the client will return to its own command prompt or menu. If you return to the local command prompt while the IKSD is at its interactive prompt, then any subsequent server oriented commands (SEND, GET, REMOTE ...) automatically put the IKSD into server mode.
Tight coupling relies on a new Kermit-specific Telnet protocol option. Both the Telnet client and Telnet server must implement the KERMIT option. This requires that Telnet be used end-to-end and prevents tight coupling on dialup or multi-hop connections.
Tight coupling requires clients that implement the new protocols. Presently these include:
[Top]