COLUMBIA UNIVERSITY CENTER FOR COMPUTING ACTIVITIES NEW YORK, NY 10025 (212) 854-8543 or -3508 NEWS RELEASE JULY 1, 1989 FOR USE UPON RECEIPT THE FIRST INTERNATIONAL KERMIT CONFERENCE, MOSCOW, USSR, MAY 29-31, 1989 "Kermit" is a protocol developed at Columbia University that has become a worldwide de-facto standard for transferring files between computers. A brief history and description of the Kermit file transfer protocol is given in Appendix A. Columbia University has always made a point of sharing its Kermit software. Several years ago, Kermit programs found their way into the Soviet Union via the European Space Agency. In March 1986, Kermit was used to transfer data gathered by the Soviet VEGA spacecraft to the European Space Operations Center in West Germany in a cooperative East-West effort to study Halley's comet at close range. Soon thereafter, Soviet computer specialists began to develop Kermit programs for their own computers. As the popularity of Kermit grew in the USSR, Soviet scientists made contact with Columbia's Kermit Development and Distribution Center, managed by Christine M. Gianone, for clarifications about the protocol and updates to the software. In the discussions which followed, it became clear that there was great interest in Kermit not only in the Soviet Union, but also in the other Eastern Bloc countries, and the idea of an international conference was born. The First International Kermit Conference was sponsored by the International Center for Scientific and Technical Information (ICSTI), Moscow, through the efforts of Dr. Juri Gornostaev, Head of ICSTI's Computer Department, and Professor A. Butrimenko, Director of ICSTI. ICSTI is an information resource center for the USSR and ten other Easter Bloc countries. It was the first international gathering devoted entirely to Kermit. The conference was attended by more than 70 computer specialists from Eastern Bloc countries including Hungary, East Germany, Poland, Bulgaria, Mongolia, Czechoslovakia, Cuba, and many parts of the USSR. The conference was conducted by: Christine Gianone Manager, Kermit Development and Distribution, Columbia University Frank da Cruz Manager, Network Planning, Columbia University Gianone and da Cruz lectured in English, which was translated into Russian. There were lively question-and-answer sessions after each lecture, followed by practice in the computer laboratory. Hundreds of pages of lecture notes were printed by ICSTI and distributed to the conference participants. On May 29, Gianone and da Cruz discussed the history and philosophy of Kermit, and gave a detailed introduction to the use of Kermit programs, including advanced features such as the Kermit script programming language, which allows users to create automated, unattended file transfer sessions. The attendees proved very familiar with Kermit, some at the user level, others at the implementation and theory level. The discussions which followed showed that Kermit plays a key role in data communications in the Soviet Union and Eastern Bloc countries. On May 30, Gianone and da Cruz explained the Kermit prococol itself, concentrating on the design decisions which have made it adaptable to nearly every kind of computer, file system, or communication environment, and on Kermit's extensibility mechanisms which allow new features to be added to the protocol without introducing incompatibilities with older Kermit programs. Detailed analysis of Kermit's performance options -- data compression, long packets, and sliding windows -- gave the audience tools for evaluating and predicting the performance of Kermit programs in various communication environments. On May 31, Gianone presented a Kermit protocol extension for international character sets. This is the first major extension to the Kermit protocol since 1985, and it is designed to address the increasing internationalization of inter-computer communications. The mechanisms of this extension, which are summarized in Appendix B, will allow text written in languages other than English to be transferred between unlike computers and still retain its original appearance. Gianone's presentation was followed by a series of presentations from other conference attendees (See Appendix C for complete program). Gianone and da Cruz also visited other computing installations in Moscow, including: . VNIIPAS, the All-Union Institute of Automated Systems of the National Centre for Automated Data Exchange. Programmers here have developed an integrated software system that includes electronic mail, conferencing, data search & retrieval, etc, with Kermit as its communication mechanism. . INION, the Institute of Scientific Information for Social Science, where Kermit is used extensively. RESULTS OF THE CONFERENCE The international character set extension was discussed. It emerged that at least five different codes are in use for representing Cyrillic characters on Soviet computers: KOI-7, KOI-8, DKOI, EBCDIC, and ECMA-113. Without the extension to Kermit, each Soviet Kermit program would have to know its own codes plus all the others in order to transfer Cyrillic text files. Multiply this situation by all the world's languages, and all the different ways that computers have of representing them, to appreciate the difficulties encountered when trying to transfer text in any language between any two computers. The Kermit extension reduces this problem to manageable size by specifying a small set of standard codes and the means by which one Kermit program can identify them to the other. After some discussion, the basic ideas of the international character set extension were endorsed by the conference. Gianone presented ICSTI with a complete, up-to-date set of Kermit programs and documentation on magnetic tape and diskette. By agreement, ICSTI in Moscow will join other regional Kermit Distribution centers that have been set up by Gianone on previous trips to Japan, France, and Switzerland, as well as those in England, the Netherlands, Australia, and other parts of the world that receive Kermit materials from Columbia by network or by post. ICSTI's Kermit Distribution will serve the Soviet Union and other Eastern-Bloc countries, and ICSTI will become a center for coordinating Kermit program development in those countries. The link between Columbia University and ICSTI considerably augments the worldwide pool of Kermit programming expertise, and for the first time the Eastern-Block countries will have convenient access to the vast body of current Kermit program source and documentation. ICSTI has already published Russian-language translations of Gianone's Kermit manuals for several popular computers, as well as for their own home-grown versions. ICSTI presented Columbia with a version of Kermit it had developed for IBM's CICS MVS subsystem, which is already being studied by Western computer experts for inclusion in the broader IBM mainframe Kermit family of programs which, until now, did not support IBM's CICS subsystem. Perhaps the greatest benefit of the conference was the face-to-face meeting of people from from different worlds: East meets West. The problems of data communications are remarkably similar in all parts of the world, and the computer specialists from the widely scattered countries represented at the conference shared a large body of common experience. APPENDIX A: THE KERMIT FILE TRANSFER PROTOCOL The world is populated with many millions of computers -- PCs, minicomputers, mainframe computers, supercomputers -- used for academic, research, business, medical, manufacturing, and many other purposes, and increasingly also in the home. The need for these computers to communicate with each other -- to share information -- has become increasingly commonplace. Yet the means to do this is not always readily apparent. The manufacturers may offer: . Magnetic media, such as disks or tapes. But these are usually incompatible between computers of different manufacture. Even when possible, data transfer by this method can be impractical if the computers are separated by long distances or national boundaries. . Computer networks. But these are usually expensive, often vendor-specific, and always difficult to install and manage. And usually impractical if long distances or national boundaries are involved. But there is one communication mechanism that almost all computers have in common: the asynchronous serial communication port that is commonly used with a modem. This is standard equipment on almost every computer. By connecting their serial ports, two computers can transfer data. If the computers are close by, then a simple cable provides the necessary connection. If they are far apart, then modems may be used to make the connection through the telephone system. Potentially any two computers in the world can transfer data. But data transfer is not necessarily information transfer. Before information can be successfully transferred, several problems must be overcome: 1. Incompatibility of data format. Different computers may use different codes to represent characters, and may use different formats for representing lines of text. 2. Synchronization. If one computer sends data faster than the other computer can process it, data will be lost. 3. Errors. If there is noise, static, electrical interference on the connection, data can be corrupted during transfer. To overcome these problems, we designed the Kermit File Transfer Protocol in 1981. (The Kermit protocol was named after Kermit the Frog, star of the television series, THE MUPPET SHOW, and is used by permission of Henson Associates, Inc., New York City.) Kermit is a universal file transfer protocol, in that it can work on any kind of computer at all. In order to have Kermit file transfer between two computers, a Kermit program must be written for each computer. The computer user establishes a physical connection between the two computers, activates the Kermit program on each computer, and then the two Kermit programs transfer the data in special messages called "packets". The format of the packets is standard, so that any two Kermit programs can communicate with each other. Therefore, the Kermit program for each computer only has to know about its own local conventions for data representations and the Kermit standard. It does not need to know anything about any other kind of computer. Kermit packets, and the rules for formatting and transmitting them, allow any two computers to transfer information correctly and completely. The exchange of packets provides the necessary synchronization. The packets include an error-checking field, or "checksum", which allows the receiver to determine if a packet has been damaged in transmission and if so to request retransmission. And textual data within a packet is encoded and formatted in a standard way, so that all Kermit programs know how to convert between Kermit's "transfer syntax" and their own local data storage conventions. The Kermit file transfer protocol was designed at Columbia University in 1981 to allow reliable data transfer among Columbia's computers: CP/M microcomputers, the IBM PC, DECSYSTEM-20 timesharing systems, and IBM System/370 series mainframes. The software, documentation, and the protocol specification were freely shared with other universities, as well as with corporations and government agencies, in the USA and other countries. Before long versions of Kermit appeared for other systems too: the DEC PDP-11 and VAX, UNIX, the Apple II and Macintosh, Commodore micromputers, CDC and Cray supercomputers, etc. These new versions were contributed to Columbia University in the same spirit in which Columbia shared its original versions. Kermit has since become one of the most popular and widely implemented software programs in existence, owing in large part to Columbia's philosophy of sharing. Program source code is available so that users may make fixes or improvements, adapt existing programs to new computers, or ensure that there are no hidden viruses. The protocol specification is open and public. The software is free, and it is not copy-protocted. In fact, copying and sharing of Kermit programs is encouraged. Kermit programs, however, do bear a copyright notice in order to protect the authors and users from entrepreneurs who might try to turn Kermit into a commercial product. After a few years of uncoordinated Kermit development, Columbia University established a Center for Kermit Development and Distribution, managed by Christine M. Gianone. Connected by computer network to universities and research organizations throughout the world, this center coordinates the development and distribution of Kermit programs. There now exist Kermit programs for about 350 different computers and operating systems, from the smallest PC to the largest supercomputer. These programs are obtained by organizations in the corporate, government, and private sectors via wide-area network connections to Columbia, or else by mail order. As of June 1989, Columbia has sent Kermit programs by mail to about 12,000 sites, about half of them corporate, in all states of the USA and more than 60 other countries. Countless other sites have obtained Kermit over the networks. Since copying and sharing is encouraged, any given shipment might serve hundreds or thousands of people. For example, a single Kermit disk sent to a US government agency is duplicated and furnished to about 10,000 medical research scientists and other workers. As the popularity of Kermit spread, Gianone and the staff of the Kermit Development and Distribution Center have been invited to discuss Kermit at computer gatherings in the US, Europe, the Far East, and now the Soviet Union. Further information about Kermit may be obtained by writing to: Kermit Distribution Columbia University Center for Computing Activities 612 West 115th Street New York, NY 10025 APPENDIX B, EXTENSION TO KERMIT PROTOCOL FOR INTERNATIONAL CHARACTER SETS Kermit has always been able to transfer text files between any two computers, no matter how differently they represent text internally. To do this, Kermit transfers text in ASCII, with lines of text terminated by carriage return and line feed (CRLF). This is Kermit's "transfer syntax" for text files: _____________________________________________________________________________ KERMIT NORMAL TEXT TRANSFER SYNTAX (DEFAULT) "SET FILE TYPE TEXT" "SET FILE TYPE TEXT" SENDER RECEIVER | ^ | | Convert from local Convert from ASCII character set to ASCII. to local character set. Convert from local record format Convert from CRLF-terminated lines to CRLF-terminated lines. to local record format. | | | file data | +---------------------------------------------+ ASCII _____________________________________________________________________________ Using this mechanism, two totally different kinds of computers can exchange text files, for example a UNIX system with ASCII stream text files and an IBM mainframe with EBCDIC record-oriented text files (ASCII and EBCDIC are two totally different code systems for representing alphabetic, numeric, punctuation, and other characters). But ASCII only includes enough letters and symbols for English and the few other languages that can be written using only the letters A-Z with no diacritical marks (like Dutch, and German without umlauts). As soon as you want to transfer files containing accented vowels, c-cedillas, etc, not to mention files written in Greek, Arabic, Hebrew, Russian, Japanese, or Chinese, you will find that Kermit can transfer them OK, but if the receiving system is not the same as the originating one, the result will look like garbage. This is because different computer vendors use different codes for the same special characters. For example, an Apple Macintosh, an IBM PC, and a DEC VAX use totally different codes for, say, A-umlaut, C-Cedilla, E-grave, etc. Since there are hundreds or thousads of computer vendors in the world and nobody controls what codes they use to represent characters, it is clearly impractical to require that every computer have knowledge of every other computer's codes. Therefore, only a few standardized codes should be used for file transfer. Then, each computer only has to know its own codes and the standard ones, and does not need specific knowledge of any other kind of computer. The extension to Kermit has two levels, the first for files composed of any single code other than ASCII, and the second for files made up of a mixture of character codes. LEVEL 1 Level 1 will allow the use of any single character code in the transfer syntax. Such codes include ISO Latin Alphabet 1, which can be used to write most Western European languages, or ISO Latin/Cyrillic, which can be used to write Russian, Ukrainian, etc, or ISO Latin/Hebrew for Hebrew or Yiddish, or JIS X 0208 for Japanese, or any other single character set. (ISO is the International Organization for Standardization, JIS is the Japan Industrial Standard). _____________________________________________________________________________ EXTENSION LEVEL-1 TRANSFER SYNTAX - A SINGLE CHARACTER SET OTHER THAN ASCII "SET FILE CHARACTER-SET XXX" "SET FILE CHARACTER-SET YYY" "SET TRANSFER-SYNTAX LATIN1-ISO" "SET TRANSFER-SYNTAX LATIN1-ISO" SENDER RECEIVER | ^ | | Convert from local character Convert from specified character set to specified character set. set to local character set. Convert from local record format Convert from CRLF-terminated lines to CRLF-terminated lines to local record format. | | | file data | +---------------------------------------------+ Selected Character Set _____________________________________________________________________________ For example, a French-language document can be exchanged in this way between an Apple Macintosh and an IBM PC, both of which have the necessary characters for French, but use different codes to represent them. ISO Latin Alphabet 1 can be used as the transfer syntax. Level 1 will accommodate most of today's computers, all over the world, which use only a single character set. LEVEL 2 Level 2 of the Kermit protocol extension will allow for transfer of files in a mixture of alphabets, registered in the International Register of Coded Character Sets, by embedding the alphabet designation and shift "escape sequences" defined in ISO Standard 2022, and the alphabet designators listed in the ISO International Register of Coded Character Sets, in the data stream: _____________________________________________________________________________ EXTENSION LEVEL-2 ISO-2022 TRANSFER SYNTAX - MULTIPLE CHARACTER SETS "SET TRANSFER-SYNTAX ISO-2022" "SET TRANSFER-SYNTAX ISO-2022" SENDER RECEIVER | ^ | | Convert from local Convert from registered character sets to standard character sets registered standard sets. to local character sets. Convert from local record format Convert from CRLF-terminated lines to CRLF-terminated lines to local record format. | | | | | File data, designators, and shifts | +---------------------------------------------+ designated character sets _____________________________________________________________________________ For example, a file containing Roman, Russian, and Greek characters can use the ISO Latin/Cyrillic and ISO Latin/Greek alphabets. The initial alphabet is designated by an escape sequence, and whenever there is a change of alphabet, another escape sequence is used to identify the new alphabet: characters in Latin/Cyrillic characters in Latin/Greek characters in Latin/Cyrillic The usefulness of Level 2 will become apparent in the future, as computer manufacturers begin to bow to the needs of the international computer market and start to employ mechanisms for storing text in multiple alphabets. APPENDIX C, CONFERENCE AGENDA May 29, 1989: Christine Gianone and Frank da Cruz, Columbia University, New York, "Introduction to Kermit" May 30, 1989: C. Gianone and F. da Cruz, "Kermit Protocol, Theory, and Operation" May 31, 1989: C. Gianone, "A Kermit Protocol Extension for International Character Sets" A. Gruzdev, NPO Informatika, Ivanovo, USSR, "Use of Kermit Protocol for Interconnection of Homogeneous PC and Minicomputer Networks" A. Smirnov and V. Rejma, EstNIINTI, Tallinn, Estonia, USSR, "Adaptation of Kermit Programs for EC and SVM Mainframes and Iskra 1030 PCs" A speaker from Moscow Ministry of Radio Industry: "Use of Kermit in a PC Network for Secondary Schools". Milan Motl and F. Zednik, Sigma Concern, Olomouc, Czechoslovakia, "Use of Kermit Program Products in Heterogeneous Computer Networks" I. Shmeikal, High Economic School, Prague, Czechoslovakia, "Terminal Network and Experience in Implementation of Kermit Programs in the DOS-4 ES Mainframe Environment" Gennadiy I. Cherkes, Computer Research Institute, Minsk, USSR, "Asynchronous Data Transmission on the EC-1840 PC" Vladimir D. Novikov, VNIIPAS Institute of Automated Systems, Moscow, USSR, "Experiments and Prolems in the Use of Kermit Programs in the National Automatic Data Exchange Centre, USSR" Konstantin Vinogradov, International Centre for Scientific and Technical Information (ICSTI), Moscow, USSR, "Development and Implementation of Kermit Programs for PCs, Minicomputers, and Mainframes" Juri Gornostaev, ICSTI, Moscow, USSR, "Proposals on the Arrangement of Distribution of Kermit Products to Member Countries of ICSTI". BIBLIOGRAPHY [1] Gianone, Christine M., "The Kermit User Guide", Columbia University Center for Computing Activities, New York City, 1989. [2] Gianone, Christine M., and Frank da Cruz, "A Kermit Protocol Extension for International Character Sets", technical paper, Columbia University Center for Computing Activities, New York City, 1989. [3] da Cruz, Frank, "Kermit, A File Transfer Protocol", Digital Press, Bedford, MA, 1987. [4] de Broeck, Paul, "Kermit Aids in Giotto Project", Kermit News, Volume 2, Number 1, Columbia University Center for Computing Activities, New York City, November 1987. [5] Lowe, Sue J., "Kermit to Speak non-ASCII: Greek, Russian, et al.", Data Communications Magazine, June 1989. [6] "Paketi Prekladnikh Programm Teleobrabotki Dannikh na MikroEVM", ICSTI, Moscow, 1987. (end)