%!PS-Adobe-2.0 %%Title: kproto.mss %%DocumentFonts: (atend) %%Creator: Frank da Cruz,718W,0000, and Scribe 7(1700) %%CreationDate: 25 February 2000 18:00 %%Pages: (atend) %%EndComments % PostScript Prelude for Scribe. /BS {/SV save def 0.0 792.0 translate .01 -.01 scale} bind def /ES {showpage SV restore} bind def /SC {setrgbcolor} bind def /FMTX matrix def /RDF {WFT SLT 0.0 eq {SSZ 0.0 0.0 SSZ neg 0.0 0.0 FMTX astore} {SSZ 0.0 SLT neg sin SLT cos div SSZ mul SSZ neg 0.0 0.0 FMTX astore} ifelse makefont setfont} bind def /SLT 0.0 def /SI { /SLT exch cvr def RDF} bind def /WFT /Courier findfont def /SF { /WFT exch findfont def RDF} bind def /SSZ 1000.0 def /SS { /SSZ exch 100.0 mul def RDF} bind def /AF { /WFT exch findfont def /SSZ exch 100.0 mul def RDF} bind def /MT /moveto load def /XM {currentpoint exch pop moveto} bind def /UL {gsave newpath moveto dup 2.0 div 0.0 exch rmoveto setlinewidth 0.0 rlineto stroke grestore} bind def /LH {gsave newpath moveto setlinewidth 0.0 rlineto gsave stroke grestore} bind def /LV {gsave newpath moveto setlinewidth 0.0 exch rlineto gsave stroke grestore} bind def /BX {gsave newpath moveto setlinewidth exch dup 0.0 rlineto exch 0.0 exch neg rlineto neg 0.0 rlineto closepath gsave stroke grestore} bind def /BX1 {grestore} bind def /BX2 {setlinewidth 1 setgray stroke grestore} bind def /PB {/PV save def newpath translate 100.0 -100.0 scale pop /showpage {} def} bind def /PE {PV restore} bind def /GB {/PV save def newpath translate rotate div dup scale 100.0 -100.0 scale /showpage {} def} bind def /GE {PV restore} bind def /FB {dict dup /FontMapDict exch def begin} bind def /FM {cvn exch cvn exch def} bind def /FE {end /original-findfont /findfont load def /findfont {dup FontMapDict exch known{FontMapDict exch get} if original-findfont} def} bind def /BC {gsave moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath clip} bind def /EC /grestore load def /SH /show load def /MX {exch show 0.0 rmoveto} bind def /W {0 32 4 -1 roll widthshow} bind def /WX {0 32 5 -1 roll widthshow 0.0 rmoveto} bind def /RC {100.0 -100.0 scale 612.0 0.0 translate -90.0 rotate .01 -.01 scale} bind def /URC {100.0 -100.0 scale 90.0 rotate -612.0 0.0 translate .01 -.01 scale} bind def /RCC {100.0 -100.0 scale 0.0 -792.0 translate 90.0 rotate .01 -.01 scale} bind def /URCC {100.0 -100.0 scale -90.0 rotate 0.0 792.0 translate .01 -.01 scale} bind def %%EndProlog %%Page: 0 1 BS 0 SI 15 /Times-Bold AF 20511 29045 MT (KERMIT PROTOCOL MANUAL)SH 10 /Times-Italic AF 29082 31761 MT (Sixth Edition)SH /Times-Roman SF 28819 36545 MT (Frank da Cruz)SH 20860 38937 MT (Columbia University Center for Computing Activities)SH 25862 40133 MT (New York, New York 10027)SH 29638 43721 MT (June 1986)SH 26610 52093 MT (Copyright \050C\051 1981,1986)SH 20111 53289 MT (Trustees of Columbia University in the City of New York)SH /Times-Italic SF 18901 55681 MT (Permission is granted to any individual or institution to copy or)SH 19362 56877 MT (use this document, except for explicitly commercial purposes.)SH ES %%Page: 1 2 BS 0 SI 13 /Times-Bold AF 24025 8071 MT (Preface to the Sixth Edition)SH 10 /Times-Roman AF 8280 10444 MT (The sixth edition \050June 1986\051 of the)12 W /Times-Italic SF 22946 XM (Kermit Protocol Manual)12 W /Times-Roman SF 33121 XM (is being issued) 12 W( for two major reasons: to correct minor)11 W 8280 11640 MT (errors in the fifth edition, and to include new sections on two major) 86 W( protocol extensions: long packets and sliding)87 W 8280 12836 MT (windows. No) 286 W( attempt) 18 W( has been made to reorganize, rewrite, or otherwise improve the protocol manual. The Kermit)17 W 8280 14032 MT (protocol has been presented in an entirely different -- hopefully more thorough,) 66 W( organized, coherent, and useful \050if)67 W 8280 15228 MT (not more formal\051 -- manner in the book,)25 W /Times-Italic SF 24727 XM (Kermit, A File Transfer Protocol)25 W /Times-Roman SF (, by Frank da) 25 W( Cruz, Digital Press, Bedford)24 W 8280 16424 MT (MA \0501987\051, ISBN 0-932376-88-6, DEC order number EY-6705E-DP. If you have the) 88 W( book, you won't need this)89 W 8280 17620 MT (protocol manual. On the other hand, if you) 70 W( don't have the book, this manual should still contain all the necessary)69 W 8280 18816 MT (information. The)250 W /Times-Italic SF 15557 XM (Kermit Protocol Manual)SH /Times-Roman SF 25696 XM (will continue to be freely distributed in perpetuity.)SH 8280 21208 MT (The bare-bones C-language Kermit program that appeared as an appendix in previous editions has been removed. It)15 W 8280 22404 MT (was not a particularly good example of how to write a Kermit) 70 W( program, and made the manual unnecessarily thick.)69 W 8280 23600 MT (For sample Kermit programs, see the source code) 35 W( for any of the hundreds of Kermit implementations, or follow the)36 W 8280 24796 MT (program fragments in the book.)SH 13 /Times-Bold AF 24098 28155 MT (Preface to the Fifth Edition)SH 10 /Times-Roman AF 8280 30528 MT (The fifth edition) 52 W( \050March 1984\051 attempts to clarify some fine points that had been left ambiguous in the 4th edition,)51 W 8280 31724 MT (particularly with respect to when and how prefix encoding is done, and when it) 29 W( is not, and about switching between)30 W 8280 32920 MT (block check types. A mechanism is suggested) 102 W( \050in the Attributes section\051 for file archiving, and several attributes)101 W 8280 34116 MT (have been rearranged and some others added \050this should do no harm, since) 203 W( no one to date has attempted to)204 W 8280 35312 MT (implement the attributes packet\051. A more) 27 W( complete protocol state table is provided, a few minor additions are made)26 W 8280 36508 MT (to the collection of packet types.)SH 13 /Times-Bold AF 23520 39867 MT (Preface to the Fourth Edition)SH 10 /Times-Roman AF 8280 42240 MT (The fourth edition \050November 1983\051 of the Kermit Protocol Manual incorporates some new ideas that) SH( grew from our)1 W 8280 43436 MT (experience in attempting) 140 W( to implement some of the features described in earlier editions, particularly user/server)139 W 8280 44632 MT (functions. These) 292 W( include a mechanism to allow batch transfers to be interrupted gracefully for either the current file)22 W 8280 45828 MT (or the entire batch of files; a "capability mask"; a protocol extension for) 13 W( passing file attributes. In addition, numbers)12 W 8280 47024 MT (are now written in decimal notation rather than octal, which was confusing to many readers.) 250 W( Also,) 752 W( several)251 W 8280 48220 MT (incompatible changes were made in minor areas where no attempts at an implementation had) 56 W( yet been made; these)55 W 8280 49416 MT (include:)SH /Symbol SF 10070 51321 MT (\267)SH /Times-Roman SF 10780 XM (The format and interpretation of the operands to the server commands.)SH /Symbol SF 10070 52979 MT (\267)SH /Times-Roman SF 10780 XM (Usurpation of the reserved fields 10-11 of the Send-Init packet, and addition of new reserved fields.)SH 8280 54770 MT (Most of the remaining material has been rewritten and reorganized, and much new material) 165 W( added, including a)166 W 8280 55966 MT (section on the recommended vocabulary for documentation and commands.)SH 8280 58358 MT (The previous edition of the Protocol Manual attempted to define "protocol version 3";) 121 W( this edition abandons that)120 W 8280 59554 MT (concept. Since) 532 W( Kermit development is an unorganized, disorderly, distributed enterprise, no requirement can) 141 W( be)142 W 8280 60750 MT (imposed on Kermit implementors to include a certain) 105 W( set of capabilities in their implementations. Rather, in this)104 W 8280 61946 MT (edition we attempt to define the basic functionality of Kermit, and then describe various optional functions.)SH 8280 64338 MT (The key principle is that any implementation of) 92 W( Kermit should work with any other, no matter how advanced the)93 W 8280 65534 MT (one or how primitive the other. The capability mask and other Send-Init fields attempt to promote this principle.)SH ES %%Page: 2 3 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 50115 XM (Page 2)SH 46800 50 6120 5709 UL 13 /Times-Bold AF 24139 8071 MT (Acknowledgements)SH 10 /Times-Roman AF 6120 10444 MT (Bill Catchings and I designed the basic Kermit protocol at Columbia University in 1981.) 82 W( For) 413 W( ideas, we looked at)81 W 6120 11640 MT (some of the ANSI) 306 W( models \050X3.57, X3.66\051, the ISO OSI model, some real-world "asynchronous protocols")307 W 6120 12836 MT (\050including the Stanford Dialnet and TTYFTP projects, the University of Utah Small FTP project\051, as well as at) 54 W( file)53 W 6120 14032 MT (transfer on full-blown networks like DECnet and ARPAnet.)SH 6120 16424 MT (Bill wrote the first two) 388 W( programs to implement the protocol, one for the DEC-20, one for a CP/M-80)389 W 6120 17620 MT (microcomputer, and in the process worked out most of the details and heuristics) 141 W( required for basic file transfer.)140 W 6120 18816 MT (Meanwhile, Daphne Tzoar and Vace) 94 W( Kundakci, also of Columbia, worked out the additional details necessary for)95 W 6120 20012 MT (IBM mainframe communication, while writing IBM VM/CMS and PC-DOS versions.)SH 6120 22404 MT (Much credit should also go to Bernie Eiben of Digital) 141 W( Equipment Corporation for promoting widespread use of)140 W 6120 23600 MT (Kermit and for adding many insights into how it should operate, to Nick Bush and Bob McQueen of) 185 W( Stevens)186 W 6120 24796 MT (Institute of Technology, for many contributions to the) 191 W( "advanced" parts of the protocol, and for several major)190 W 6120 25992 MT (Kermit implementations, and to Leslie Spira and her group at The Source Telecomputing) 135 W( for adding full-duplex)136 W 6120 27188 MT (sliding window capability to the Kermit protocol.)SH 6120 29580 MT (Thanks to the) 32 W( many people all over the world who have contributed new Kermit implementations, who have helped)31 W 6120 30776 MT (with Kermit distribution through various user groups, and who have contributed to the quality of) 12 W( the protocol and its)13 W 6120 31972 MT (many implementations by reporting) 210 W( or fixing problems, criticizing the design, or suggesting new features. In)209 W 6120 33168 MT (particular, thanks to Ted Toal of Nevada City, CA, for a detailed) 169 W( list of corrections to the fifth edition of this)170 W 6120 34364 MT (manual.)SH 6120 36756 MT (And above all, thanks to Christine Gianone for taking charge of Kermit at Columbia; for keeping it alive, healthy,)71 W 6120 37952 MT (and strong; for promoting its development and use all over the world; for setting its) 26 W( tone and direction; for fostering)27 W 6120 39148 MT (its spirit. Without her guidance and perserverance, Kermit might have faded from the scene years ago.)SH 6120 41540 MT (The Kermit protocol was named after Kermit the Frog, star of the television series) 113 W( THE MUPPET SHOW. The)112 W 6120 42736 MT (name is used by permission of Henson Associates, Inc., New York City.)SH 13 /Times-Bold AF 26524 46095 MT (Disclaimer)SH 10 /Times-Italic AF 6120 48466 MT (No warranty of the software nor) 70 W( of the accuracy of the documentation surrounding it is expressed or implied, and)71 W 6120 49662 MT (neither the authors nor Columbia University acknowledge) 107 W( any liability resulting from program or documentation)106 W 6120 50858 MT (errors.)SH ES %%Page: 3 4 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 52275 XM (Page 3)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (1. Introduction)SH 10 /Times-Roman AF 8280 10566 MT (This manual describes the Kermit protocol. It is assumed that you understand the) 97 W( purpose and operation of the)98 W 8280 11762 MT (Kermit file transfer facility, described in the)108 W /Times-Italic SF 26921 XM (Kermit Users Guide)107 W /Times-Roman SF (, and basic terminology of data communications)107 W 8280 12958 MT (and computer programming.)SH 14 /Times-Bold AF 8280 16560 MT (1.1. Background)SH 10 /Times-Roman AF 8280 18678 MT (The Kermit file transfer protocol is intended for use in an environment where there may) 114 W( be a diverse mixture of)115 W 8280 19874 MT (computers -- micros, personal computers, workstations, laboratory computers, timesharing systems --) 26 W( from a variety)25 W 8280 21070 MT (of manufacturers. All these) 98 W( systems need have in common is the ability to communicate in ASCII over ordinary)99 W 8280 22266 MT (serial telecommunication lines.)SH 8280 24658 MT (Kermit was originally designed at Columbia University to meet the) 419 W( need for file transfer between our)418 W 8280 25854 MT (DECSYSTEM-20 and IBM 370-series mainframes and various microcomputers.) 190 W( It) 632 W( turned out that the diverse)191 W 8280 27050 MT (characteristics of these three kinds of systems resulted in a design that was general enough to fit) 28 W( almost any system.)27 W 8280 28246 MT (The IBM mainframe, in particular, strains most common assumptions about how computers communicate.)SH 14 /Times-Bold AF 8280 31848 MT (1.2. Overview)SH 10 /Times-Roman AF 8280 33966 MT (The Kermit protocol is specifically designed for character-oriented transmission over) SH( serial telecommunication lines.)1 W 8280 35162 MT (The design allows for the restrictions and peculiarities of the medium and the requirements) 134 W( of diverse operating)133 W 8280 36358 MT (environments -- buffering, duplex, parity, character set, file organization, etc.) 26 W( The) 303 W( protocol is carried out by Kermit)27 W 8280 37554 MT (programs on each end of the serial connection sending "packets" back and forth; the) 91 W( sender sends file names, file)90 W 8280 38750 MT (contents, and control information; the receiver acknowledges \050positively or negatively\051 each packet.)SH 8280 41142 MT (The packets have a layered design, more or less) 17 W( in keeping with the ANSI and ISO philosophies, with the outermost)18 W 8280 42338 MT (fields used by the) 67 W( data link layer to verify data integrity, the next by the session layer to verify continuity, and the)66 W 8280 43534 MT (data itself at the application level.)SH 8280 45926 MT (Connections between systems are established by) 131 W( the ordinary user. In a typical case, the user runs Kermit on a)132 W 8280 47122 MT (microcomputer, enters terminal) 20 W( emulation, connects to a remote host computer \050perhaps by dialing up\051, logs in, runs)19 W 8280 48318 MT (Kermit on the remote host, and then issues) 85 W( commands to that Kermit to start a file transfer, "escapes" back to the)86 W 8280 49514 MT (micro, and issues commands to that Kermit to start its side of the) 32 W( file transfer. Files may be transferred singly or in)31 W 8280 50710 MT (groups.)SH 8280 53102 MT (Basic Kermit) 48 W( provides only file transfer, and that is provided for)49 W /Times-Italic SF 34814 XM (sequential files only)49 W /Times-Roman SF (, though the protocol attempts)49 W 8280 54298 MT (to allow for various types of sequential files. Microcomputer) 188 W( implementations of Kermit are also expected to)187 W 8280 55494 MT (provide terminal emulation, to facilitate the initial connection.)SH 8280 57886 MT (More advanced) 41 W( implementations simplify the "user interface" somewhat by allowing the Kermit on the remote host)42 W 8280 59082 MT (to run as a "server", which can transfer files in either direction) 76 W( upon command from the local "user" Kermit. The)75 W 8280 60278 MT (server can also provide additional functionality, such as file management, messages, mail, and) 170 W( so forth. Other)171 W 8280 61474 MT (optional features also exist, including a) 61 W( variety of block check types, a mechanism for passing 8-bit data through a)60 W 8280 62670 MT (7-bit communication link, a way to compressing a repeated sequence of characters, and so forth.)SH 8280 65062 MT (As local area networks become more) 120 W( popular, inexpensive, and standardized, the demand for Kermit and similar)121 W 8280 66258 MT (protocols may dwindle, but will never) 39 W( wither away entirely. Unlike hardwired networks, Kermit gives the ordinary)38 W 8280 67454 MT (user the power to establish reliable error-free connections) 5 W( between)6 W /Times-Italic SF 35180 XM (any two)6 W /Times-Roman SF 38581 XM (computers; this may always be necessary)6 W 8280 68650 MT (for one-shot or long-haul connections.)SH ES %%Page: 4 5 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 50115 XM (Page 4)SH 46800 50 6120 5709 UL 14 /Times-Bold AF 6120 8138 MT (1.3. General Terminology)SH 10 /Times-Roman AF 6120 10256 MT (TTY: This is the term commonly used for a device which is connected to a) 99 W( computer over an EIA RS-232 serial)98 W 1944 50 6120 10456 UL 6120 11452 MT (telecommunication line. This device is most commonly an ASCII) 38 W( terminal, but it may be a microcomputer or even)39 W 6120 12648 MT (a large multi-user computer emulating an ASCII terminal.) 80 W( Most) 408 W( computers provide hardware \050RS-232 connectors)79 W 6120 13844 MT (and UARTs\051 and software \050device drivers\051 to support TTY) 196 W( connections; this is what makes TTY-oriented file)197 W 6120 15040 MT (transfer protocols like Kermit possible on almost any system at little or no cost.)SH 6120 17432 MT (LOCAL: When two machines are connected, the LOCAL machine is the one which you interact with directly, and)59 W 3333 50 6120 17632 UL 6120 18628 MT (which is in control of the terminal. The "local Kermit" is the one that runs on the local) 73 W( machine. A local Kermit)74 W 6120 19824 MT (always communicates over an external device \050the micro's communication port, an assigned TTY line, etc\051.)SH 6120 22216 MT (REMOTE: The REMOTE machine is the one on the far side of the connection, which you must interact with)179 W 4111 50 6120 22416 UL 6120 23412 MT ("through" the local machine. The "remote Kermit" runs on) 250 W( the remote machine. A remote Kermit usually)251 W 6120 24608 MT (communicates over its own "console", "controlling terminal", or "standard i/o" device.)SH 6120 27000 MT (HOST: Another) 105 W( word for "computer", usually meaning a computer that can provide a home for multiple users or)104 W 2611 50 6120 27200 UL 6120 28196 MT (applications. This) 278 W( term should be avoided) 14 W( in Kermit lore, unless preceded immediately by LOCAL or REMOTE, to)15 W 6120 29392 MT (denote which host is meant.)SH 6120 31784 MT (SERVER: An implementation of remote Kermit that can accept commands) 155 W( in packet form from a local Kermit)154 W 3834 50 6120 31984 UL 6120 32980 MT (program, instead of directly from the user.)SH 6120 35372 MT (USER: In addition to its usual use to denote the person using a system or program, "user" will also be) 41 W( used refer to)42 W 2556 50 6120 35572 UL 6120 36568 MT (the local Kermit program, when the remote Kermit is a server.)SH 14 /Times-Bold AF 6120 40170 MT (1.4. Numbers)SH 10 /Times-Roman AF 6120 42288 MT (All numbers in the following text are expressed in decimal \050base 10\051 notation unless otherwise specified.)SH 3444 50 7648 42488 UL 6120 44680 MT (Numbers are also referred to in terms of their bit positions in a computer word. Since Kermit may be) 39 W( implemented)38 W 6120 45876 MT (on computers with various word sizes, we start numbering the bits from the) 74 W( "right" -- bit 0 is the least significant.)75 W 6120 47072 MT (Bits 0-5 are the 6 least significant bits; if they were all set to one, the value would be 63.)SH 6120 49464 MT (A special) 183 W( quirk in terminology, however, refers to the high order bit of a character as it is transmitted on the)182 W 6120 50660 MT (communication line, as the "8th bit". More properly, it is bit 7, since) 66 W( we start counting from 0. References to the)67 W 6120 51856 MT ("8th bit" generally are with regard to that bit which) 90 W( ASCII transmission sets aside for use as a parity bit. Kermit)89 W 6120 53052 MT (concerns itself with whether this bit) 38 W( can be usurped for the transmission of data, and if not, it may resort to "8th-bit)39 W 6120 54248 MT (prefixing".)SH 14 /Times-Bold AF 6120 57850 MT (1.5. Character Set)SH 10 /Times-Roman AF 6120 59968 MT (All characters are in ASCII \050American national Standard Code for Information Interchange\051 representation,) 68 W( ANSI)67 W 4053 50 7716 60168 UL 6120 61164 MT (standard X3.4-1968. All implementations of Kermit transmit and receive characters only in ASCII. The) 125 W( ASCII)126 W 6120 62360 MT (character set is listed in Appendix III.)SH 6120 64752 MT (ASCII character mnemonics:)SH 11664 50 6120 64952 UL 6120 66543 MT (NUL)SH 10120 XM (Null, idle, ASCII character 0.)SH 6120 67648 MT (SOH)SH 10120 XM (Start-of-header, ASCII character 1 \050Control-A\051.)SH 6120 68753 MT (SP)SH 10120 XM (Space, blank, ASCII 32.)SH 6120 69858 MT (CR)SH 10120 XM (Carriage return, ASCII 13 \050Control-M\051.)SH 6120 70963 MT (LF)SH 10120 XM (Linefeed, ASCII 10 \050Control-J\051.)SH ES %%Page: 5 6 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 52275 XM (Page 5)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (CRLF)SH 12280 XM (A carriage-return linefeed sequence.)SH 8280 8991 MT (DEL)SH 12280 XM (Delete, rubout, ASCII 127.)SH 8280 11383 MT (A control character is considered to be) 77 W( any byte whose low order 7 bits are in the range 0 through 31, or equal to)76 W 6824 50 9329 11583 UL 8280 12579 MT (127. In) 250 W( this document, control characters are written in several ways:)SH 8280 14370 MT (Control-A)SH 12280 15475 MT (This denotes ASCII character 1, commonly referred to as "Control-A". Control-B is ASCII character) 81 W( 2,)80 W 12280 16580 MT (and so forth.)SH 8280 18157 MT (CTRL-A)SH 12280 XM (This is a common abbreviation for "Control-A".) 143 W( A) 537 W( control character is generally typed at a computer)144 W 12280 19262 MT (terminal by holding down the key marked CTRL and) 68 W( pressing the corresponding alphabetic character, in)67 W 12280 20367 MT (this case "A".)SH /Courier SF 8280 21944 MT (^A)SH /Times-Roman SF 12280 XM ("Uparrow" notation for CTRL-A. Many computer systems "echo" control characters in this fashion.)SH 8280 24336 MT (A printable ASCII character is considered to be any character in the range 32 \050SP\051 through 126 \050tilde\051.)SH 10330 50 9252 24536 UL 14 /Times-Bold AF 8280 27938 MT (1.6. Conversion Functions)SH 10 /Times-Roman AF 8280 30056 MT (Several conversion functions are useful in the description) 15 W( of the protocol and in the program example. The machine)16 W 8280 31252 MT (that Kermit runs on need operate only on integer data; these are functions that operate upon the) 91 W( numeric value of)90 W 8280 32448 MT (single ASCII characters.)SH /Courier SF 8280 34177 MT (tochar\050x\051 = x+32)SH /Times-Roman SF 10280 35282 MT (Transforms the integer)141 W /Times-Italic SF 20062 XM (x)SH /Times-Roman SF (, which is assumed to) 141 W( lie in the range 0 to 94, into a printable ASCII character; 0)140 W 10280 36387 MT (becomes SP, 1 becomes ")SH /Courier SF (!)SH /Times-Roman SF (", 3 becomes ")SH /Courier SF (#)SH /Times-Roman SF (", etc.)SH /Courier SF 8280 37964 MT (unchar\050x\051 = x-32)SH /Times-Roman SF 10280 39069 MT (Transforms the character)44 W /Times-Italic SF 20658 XM (x)SH /Times-Roman SF (, which is assumed to be in the printable range \050SP through tilde\051, into an integer) 44 W( in)43 W 10280 40174 MT (the range 0 to 94.)SH /Courier SF 8280 41751 MT (ctl\050x\051 = x XOR 64)SH /Times-Roman SF 10280 42856 MT (Maps between) 128 W( control characters and their printable representations, preserving the high-order bit. If)127 W /Times-Italic SF 52771 XM (x)SH /Times-Roman SF 53592 XM (is a)127 W 10280 43961 MT (control character, then)SH /Courier SF 12680 45616 MT (x = ctl\050ctl\050x\051\051)SH /Times-Roman SF 10280 47333 MT (that is, the same function is used to controllify and uncontrollify. The argument is assumed to be a true control)18 W 10280 48438 MT (character \0500 to 31, or 127\051, or the result of applying)182 W 8 SS 33082 XM (CTL)SH 10 SS 35025 XM (to a true control character \050i.e. 63 to 95\051. The)181 W 10280 49543 MT (transformation is a mnemonic one --)SH /Courier SF 25111 XM (^A)SH /Times-Roman SF 26561 XM (becomes A and vice versa.)SH 14 /Times-Bold AF 8280 53145 MT (1.7. Protocol Jargon)SH 10 /Times-Roman AF 8280 55263 MT (A Packet) 113 W( is a clearly delimited string of characters, comprised of "control fields" nested around data; the control)114 W 2666 50 9365 55463 UL 8280 56459 MT (fields allow a Kermit program to determine) 143 W( whether the data has been transmitted correctly and completely. A)142 W 8280 57655 MT (packet is the unit of transmission in the Kermit protocol.)SH 8280 60047 MT (ACK stands for "Acknowledge". An ACK is a packet that is sent) 27 W( to acknowledge receipt of another packet. Not to)28 W 2111 50 8280 60247 UL 8280 61243 MT (be confused with the ASCII character ACK.)SH 8280 63635 MT (NAK stands for "Negative Acknowledge". A NAK is a) 10 W( packet sent to say that a corrupted or incomplete packet was)9 W 2166 50 8280 63835 UL 8280 64831 MT (received, the wrong packet was received, or an expected packet was not received.) 136 W( Not) 524 W( to be confused with the)137 W 8280 66027 MT (ASCII character NAK.)SH 8280 68419 MT (A timeout is an event that can occur if expected data does not arrive within a specified) 171 W( amount of time. The)170 W 3056 50 9423 68619 UL 8280 69615 MT (program generating the input) 142 W( request can set a "timer interrupt" to break it out of a nonresponsive read, so that)143 W 8280 70811 MT (recovery procedures may be activated.)SH ES %%Page: 6 7 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 50115 XM (Page 6)SH 46800 50 6120 5709 UL ES %%Page: 7 8 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 52275 XM (Page 7)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (2. Environment)SH 14 SS 8280 11874 MT (2.1. System Requirements)SH 10 /Times-Roman AF 8280 13992 MT (The Kermit protocol requires that)SH /Courier SF (:)SH /Symbol SF 10070 15897 MT (\267)SH /Times-Roman SF 10780 XM (The host can send and receive characters using 7- or 8-bit ASCII) 221 W( encoding over an EIA RS-232)220 W 10780 17002 MT (physical connection, either hardwired or dialup.)SH /Symbol SF 10070 18991 MT (\267)SH /Times-Roman SF 10780 XM (All printable ASCII characters are acceptable as input to the host and will) 105 W( not be transformed in any)104 W 8 SS 12446 19759 MT (1)SH 10 SS 10780 20104 MT (way)SH 12846 XM (. Similarly,) 280 W( any intervening network) 15 W( or communications equipment \050"smart modems", TELENET,)16 W 10780 21209 MT (terminal concentrators, port selectors, etc\051) 341 W( must not transform or swallow any printable ASCII)340 W 10780 22314 MT (characters.)SH /Symbol SF 10070 24303 MT (\267)SH /Times-Roman SF 10780 XM (A single ASCII)62 W /Times-Italic SF 17438 XM (control character)62 W /Times-Roman SF 24839 XM (can pass from one system to) 62 W( the other without transformation. This)63 W 10780 25408 MT (character is used for packet synchronization. The character is) 21 W( normally Control-A \050SOH, ASCII 1\051, but)20 W 10780 26513 MT (can be redefined.)SH /Symbol SF 10070 28502 MT (\267)SH /Times-Roman SF 10780 XM (If a host requires a line terminator for terminal input, that terminator must be a) 106 W( single ASCII control)107 W 10780 29607 MT (character, such as CR or LF, distinct from the packet synchronization character.)SH /Symbol SF 10070 31596 MT (\267)SH /Times-Roman SF 10780 XM (When using a job's controlling terminal for file transfer,) 56 W( the system must allow the Kermit program to)55 W 10780 32701 MT (set the terminal to no echo, infinite width \050no "wraparound" or CRLF insertion) 236 W( by the operating)237 W 10780 33806 MT (system\051, and no "formatting" of incoming or outgoing characters \050for) 36 W( instance, raising lowercase letters)35 W 10780 34911 MT (to uppercase,) 3 W( transforming control characters to printable sequences, etc\051. In short, the terminal must be)4 W 10780 36016 MT (put in "binary" or "raw" mode, and, hopefully, restored afterwards to normal operation.)SH /Symbol SF 10070 38005 MT (\267)SH /Times-Roman SF 10780 XM (The host's terminal input processor should be capable of receiving a single burst of 40 to 100) 10 W( characters)9 W 10780 39110 MT (at normal transmission speeds. This is the typical size of packet.)SH 8280 40901 MT (Note that most of these requirements rule out the use of Kermit through IBM) 117 W( 3270 / ASCII protocol converters,)118 W 8280 42097 MT (except those \050like the Series/1 or 7171 running the Yale ASCII package\051 that can be put in "transparant mode.")SH 8280 44489 MT (Kermit does)SH /Times-Italic SF 13446 XM (not)SH /Times-Roman SF 14974 XM (require:)SH /Symbol SF 10070 46394 MT (\267)SH /Times-Roman SF 10780 XM (That the connection run at any particular baud rate.)SH /Symbol SF 10070 48383 MT (\267)SH /Times-Roman SF 10780 XM (That the system can do XON/XOFF or any other) 16 W( kind of flow control. System- or hardware-level flow)15 W 10780 49488 MT (control can help, but it's not necessary. See section 3.7.)SH /Symbol SF 10070 51477 MT (\267)SH /Times-Roman SF 10780 XM (That the system is capable of full duplex operation. Any mixture of half) 120 W( and full duplex systems is)121 W 10780 52582 MT (supported.)SH /Symbol SF 10070 54571 MT (\267)SH /Times-Roman SF 10780 XM (That the system can transmit or receive 8-bit bytes. Kermit will take advantage of 8-bit) 41 W( connections to)40 W 10780 55676 MT (send binary files; if an 8-bit connection is not possible, then binary files) 52 W( may be sent using an optional)53 W 10780 56781 MT (prefix encoding.)SH 10800 50 8280 69359 UL 6 SS 9080 70767 MT (1)SH 8 SS 9380 71076 MT (If they are translated to) 38 W( another character set, like EBCDIC, the Kermit program must be able to reconstruct the packet as it appeared on the)39 W 8280 72000 MT (communication line, before transformation.)SH ES %%Page: 8 9 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 50115 XM (Page 8)SH 46800 50 6120 5709 UL 14 /Times-Bold AF 6120 8138 MT (2.2. Printable Text versus Binary Data)SH 10 /Times-Roman AF 6120 10256 MT (For transmission between unlike systems, files must be assigned to either of two catagories:)SH /Times-Italic SF 43089 XM (printable text)SH /Times-Roman SF 48700 XM (or)SH /Times-Italic SF 49783 XM (binary)SH /Times-Roman SF (.)SH 6120 12648 MT (A printable text file is one that can make) 14 W( sense on an unlike system -- a document, program source, textual data, etc.)13 W 6120 13844 MT (A binary file is one that will) 51 W( not \050and probably can not\051 make sense on an unlike system -- an executable program,)52 W 6120 15040 MT (numbers stored in internal format, etc. On systems with 8-bit bytes, printable ASCII files will have the) 60 W( high order)59 W 8 SS 16709 15891 MT (2)SH 10 SS 6120 16236 MT (bit of each byte set to zero)6 W 17365 XM (\050since ASCII is a 7-bit code\051) 6 W( whereas binary files will use the high order bit of each byte)5 W 6120 17432 MT (for data, in which case its value can vary from byte to byte.)SH 6120 19824 MT (Many computers) 43 W( have no way to distinguish a printable file from a binary file -- especially one originating from an)44 W 6120 21020 MT (unlike system --) 112 W( so the user may have to give an explicit command to Kermit to tell it whether to perform these)111 W 6120 22216 MT (conversions.)SH 12 /Times-Bold AF 6120 25332 MT (2.2.1. Printable Text Files)SH 10 /Times-Roman AF 6120 27274 MT (A primary goal of Kermit is for printable text files to be useful on the target system) 63 W( after transfer. This requires a)64 W 6120 28470 MT (standard representation for text during transmission. Kermit's standard) 181 W( is simple: 7-bit ASCII characters, with)180 W 6120 29666 MT ("logical records" \050lines\051 delimited by CRLFs. It is the responsibility of systems that) 72 W( do not store printable files in)73 W 6120 30862 MT (this fashion to perform the necessary conversions upon input and) 20 W( output. For instance, IBM mainframes might strip)19 W 6120 32058 MT (trailing blanks on output and add them back on) 71 W( input; UNIX would prepend a CR to its normal record terminator,)72 W 6120 33254 MT (LF, upon output and discard it upon input. In addition,) 90 W( IBM mainframes must do EBCDIC/ASCII translation for)89 W 6120 34450 MT (text files.)SH 6120 36842 MT (No other conversions \050e.g. tab expansion\051 are) 96 W( performed upon text files. This representation is chosen because it)97 W 6120 38038 MT (corresponds to the way text files are stored on most microcomputers and on many other systems.) 28 W( In) 304 W( many common)27 W 6120 39234 MT (cases, no transformations are necessary at all.)SH 12 /Times-Bold AF 6120 42350 MT (2.2.2. Binary Files)SH 10 /Times-Roman AF 6120 44292 MT (Binary files are transmitted as though they were a sequence of characters.) 19 W( The) 289 W( difference from printable files is that)20 W 6120 45488 MT (the status of the "8th bit" must be preserved. When binary) 161 W( files are transmitted to an unlike system, the main)160 W 6120 46684 MT (objective is that they can be brought back to the original system \050or one like it\051) 15 W( intact; no special conversions should)16 W 6120 47880 MT (be done during transmission, except to make the data fit the transmission medium.)SH 6120 50272 MT (For binary files, eight bit character transmission is permissible as long as the) 113 W( two Kermit programs involved can)112 W 6120 51468 MT (control the value of the parity bit, and no intervening communications equipment will change its value.) 13 W( In) 277 W( that case,)14 W 6120 52664 MT (the 8th bit of a transmitted character will match that of the original data byte,) 75 W( after any control-prefixing has been)74 W 6120 53860 MT (done. When) 328 W( one or both sides cannot control the parity bit, a special prefix character may be) 39 W( inserted, as described)40 W 6120 55056 MT (below.)SH 6120 57448 MT (Systems that do) 93 W( not store binary data in 8-bit bytes, or whose word size is not a multiple of 8, may make special)92 W 6120 58644 MT (provisions for "image mode" transfer of binary files.) 28 W( This) 308 W( may be done within the basic protocol by having the two)29 W 6120 59840 MT (sides implicitly agree upon a scheme for packing the data into 7- or 8-bit ASCII characters, or else) 17 W( the more flexible)16 W 6120 61036 MT (\050but optional\051 file attributes feature may be used.) 55 W( The) 361 W( former method is used on PDP-10 36-bit word machines, in)56 W 6120 62232 MT (which text is stored five 7-bit bytes per word; the value of the "odd bit" is sent as the parity bit of every 5th word.)SH 10800 50 6120 69359 UL 6 SS 6920 70767 MT (2)SH 8 SS 7220 71076 MT (There are some exceptions, such) 34 W( as systems that store text files in so-called "negative ASCII", or text files produced by word processors that)35 W 6120 72000 MT (use the high order bit to indicate underline or boldface attributes.)SH ES %%Page: 9 10 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 52275 XM (Page 9)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (3. File Transfer)SH 10 /Times-Roman AF 8280 10566 MT (The file transfer protocol takes place over) 55 W( a)54 W /Times-Italic SF 26379 XM (transaction)SH /Times-Roman SF (. A) 358 W( transaction is an exchange of packets beginning with a)54 W 8 SS 41693 11417 MT (3)SH 10 SS 8280 11762 MT (Send-Init \050S\051 packet, and ending with a Break Transmission) 2 W( \050B\051 or Error \050E\051 packet)3 W 42093 XM (, and may include the transfer of)3 W 8280 12958 MT (one or more files, all in the same direction.) 47 W( In) 342 W( order to minimize the unforseen, Kermit packets do not contain any)46 W 8280 14154 MT (control characters except one specially designated to mark) 26 W( the beginning of a packet. Except for the packet marker,)27 W 8280 15350 MT (only printable characters are transmitted. The following sequence characterizes basic Kermit operation; the)56 W /Times-Italic SF 52414 XM (sender)SH /Times-Roman SF 8280 16546 MT (is the machine that is sending files; the)SH /Times-Italic SF 24057 XM (receiver)SH /Times-Roman SF 27583 XM (is the machine receiving the files.)SH 10280 18337 MT (1.)SH 11280 XM (The sender transmits a Send-Initiate \050S\051 packet to) 77 W( specify its parameters \050packet length, timeout, etc;)78 W 11280 19442 MT (these are explained below\051.)SH 10280 21652 MT (2.)SH 11280 XM (The receiver sends an ACK \050Y\051 packet, with its own parameters in the data field.)SH 10280 23862 MT (3.)SH 11280 XM (The sender transmits a File-Header \050F\051 packet, which contains the file's name in the data field.) 82 W( The)412 W 11280 24967 MT (receiver ACKs the F packet, with no data) 52 W( in the data field of the ACK \050optionally, it may contain the)53 W 11280 26072 MT (name under which the receiver will store the file\051.)SH 10280 28282 MT (4.)SH 11280 XM (The sender sends the contents of the file, in) 66 W( Data \050D\051 packets. Any data not in the printable range is)65 W 11280 29387 MT (prefixed and replaced by a printable equivalent. Each D packet is acknowledged before) 5 W( the next one is)6 W 11280 30492 MT (sent.)SH 10280 32702 MT (5.)SH 11280 XM (When all) 46 W( the file data has been sent, the sender sends an End-Of-File \050Z\051 packet. The receiver ACKs)45 W 11280 33807 MT (it.)SH 10280 36017 MT (6.)SH 11280 XM (If there is another file to send, the process is repeated beginning at step 3.)SH 10280 38227 MT (7.)SH 11280 XM (When no) 53 W( more files remain to be sent, the sender transmits an End-Of-Transmission \050B\051 packet. The)54 W 11280 39332 MT (receiver ACKs it. This ends the transaction, and closes the logical connection) 4 W( \050the physical connection)3 W 11280 40437 MT (remains open\051.)SH 8280 42228 MT (Each packet has a)68 W /Times-Italic SF 15938 XM (sequence number)68 W /Times-Roman SF (, starting with 0 for the Send Init. The) 68 W( acknowledgment \050ACK or NAK\051 for a)69 W 8280 43424 MT (packet has the same packet number as the packet being) 98 W( acknowledged. Once an acknowledgment is successfully)97 W 8280 44620 MT (received the packet number is increased by one, modulo 64.)SH 8280 47012 MT (If the sender is remote, it waits for a certain amount of) 244 W( time \050somewhere in the 5-30 second range\051 before)245 W 8280 48208 MT (transmitting the Send-Init, to give the user time to escape back to the local Kermit and tell it to receive files.)SH 8280 50600 MT (Each transaction starts fresh, as if no) 17 W( previous transaction had taken place. For example, the sequence number is set)16 W 8280 51796 MT (back to zero, and parameters are reset to their default or user-selected values.)SH 14 /Times-Bold AF 8280 55398 MT (3.1. Conditioning the Terminal)SH 10 /Times-Roman AF 8280 57516 MT (Kermit is most commonly run with the user sitting at a microcomputer, connected) 11 W( through a communications port to)12 W 8280 58712 MT (a remote timesharing system. The) 152 W( remote Kermit is using its job's own "controlling terminal" for file transfer.)151 W 8280 59908 MT (While the microcomputer's port is an ordinary device, a timesharing job's controlling terminal) 39 W( is a special one, and)40 W 8280 61104 MT (often performs many services that would interfere with normal operation of Kermit. Such services) 42 W( include echoing)41 W 8280 62300 MT (\050on full duplex systems\051, wrapping lines by inserting carriage return linefeed sequences at the) 200 W( terminal width,)201 W 8280 63496 MT (pausing at the end of a screen or page full of text, displaying system) 56 W( messages, alphabetic case conversion, control)55 W 8280 64692 MT (character intepretation, and so forth.) 78 W( Mainframe) 407 W( Kermit programs should be prepared to disable as many of these)79 W 8280 65888 MT (services as possible before) 4 W( packet communication begins, and to restore them to their original condition at the end of)3 W 8280 67084 MT (a transaction. Disabling these services is usually known as "putting the terminal in binary mode.")SH 10800 50 8280 70283 UL 6 SS 9080 71691 MT (3)SH 8 SS 9380 72000 MT (A transaction should also be considered terminated when one side or the other has stopped without sending an Error packet.)SH ES %%Page: 10 11 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 10)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (Kermit's use of printable control character equivalents, variable packet lengths, redefinable) 105 W( markers and prefixes,)106 W 6120 9082 MT (and allowance for any characters at all to appear between packets with no adverse effects provide a great deal) 100 W( of)99 W 6120 10278 MT (adaptability for those systems that do not allow certain \050or any\051 of these features to be disabled.)SH 14 /Times-Bold AF 6120 13880 MT (3.2. Timeouts, NAKs, and Retries)SH 10 /Times-Roman AF 6120 15998 MT (If a Kermit program is) 16 W( capable of setting a timer interrupt, or setting a time limit on an input request, it should do so)17 W 6120 17194 MT (whenever attempting) 11 W( to read a packet from the communication line, whether sending or receiving files. Having read)10 W 6120 18390 MT (a packet, it should turn off the timer.)SH 6120 20782 MT (If the sender times out waiting for an acknowledgement, it should send the) 23 W( same packet again, repeating the process)24 W 6120 21978 MT (a certain number of times up) 112 W( to a retry limit, or until an acknowledgement is received. If the receiver times out)111 W 6120 23174 MT (waiting for a packet, it) 50 W( can send either a NAK packet for the expected packet or another ACK for the last packet it)51 W 6120 24370 MT (got. The) 250 W( latter is preferred.)SH 6120 26762 MT (If a packet from the sender is garbled or lost in transmission) 26 W( \050the latter is detected by a timeout, the former by a bad)25 W 6120 27958 MT (checksum\051, the receiver sends a NAK for the garbled or missing packet. If an ACK or a NAK from the receiver) 47 W( is)48 W 6120 29154 MT (garbled or lost, the sender ignores it; in that case, one side or the other will time out and retransmit.)SH 6120 31546 MT (A retry count is maintained,) 87 W( and there is a retry threshold, normally set around 5. Whenever a packet is resent --)86 W 6120 32742 MT (because of) 91 W( a timeout, or because it was NAK'd -- the counter is incremented. When it reaches the threshold, the)92 W 6120 33938 MT (transaction is terminated and the counter reset.)SH 6120 36330 MT (If neither side is capable of timing out, a facility for manual intervention must be available on) 123 W( the local Kermit.)122 W 6120 37526 MT (Typically, this will) 50 W( work by sampling the keyboard \050console\051 periodically; if input, such as a CR, appears, then the)51 W 6120 38722 MT (same action is taken as if a) 11 W( timeout had occurred. The local Kermit keeps a running display of the packet number or)10 W 6120 39918 MT (byte count on the screen to) 109 W( allow the user to detect when traffic has stopped. At this point, manual intervention)110 W 6120 41114 MT (should break the deadlock.)SH 6120 43506 MT (Shared systems which can become sluggish when heavily used should adjust their own timeout intervals on) 72 W( a per-)71 W 6120 44702 MT (packet basis, based on the system load, so that file transfers won't fail simply because the system was too slow.)SH 6120 47094 MT (Normally, only one side should be doing timeouts, preferably the side with) 300 W( the greatest knowledge of the)301 W 6120 48290 MT ("environment" -- system) 34 W( load, baud rate, and so forth, so as to optimally adjust the timeout interval for each packet.)33 W 6120 49486 MT (If both sides are timing out, their intervals should differ sufficiently to minimize collisions.)SH 14 /Times-Bold AF 6120 53088 MT (3.3. Errors)SH 10 /Times-Roman AF 6120 55206 MT (During file transfer, the sender) 36 W( may encounter an i/o error on the disk, or the receiver may attempt to write to a full)37 W 6120 56402 MT (or write-protected device. Any condition that will prevent successful transmission of the file is) 6 W( called a "fatal error".)5 W 6120 57598 MT (Fatal errors should be detected, and the transfer shut down) 16 W( gracefully, with the pertinent information provided to the)17 W 6120 58794 MT (user. Error) 250 W( packets provide a mechanism to do this.)SH 6120 61186 MT (If a fatal error takes place on either the sending or receiving) 48 W( side, the side which encountered the error should send)47 W 6120 62382 MT (an Error \050E\051 packet. The E packet contains a brief textual error message in the data field.) 120 W( Both) 492 W( the sender and)121 W 6120 63578 MT (receiver should) 146 W( be prepared to receive an Error packet at any time during the transaction. Both the sender and)145 W 6120 64774 MT (receiver of the Error packet should halt, or go back into into user command) 61 W( mode \050a server should return to server)62 W 6120 65970 MT (command wait\051. The side that is local should print the error message on the screen.)SH 6120 68362 MT (There is no provision for sending nonfatal error messages, warnings, or information messages during) 54 W( a transaction.)53 W 6120 69558 MT (It would be possible to add such a feature, but this would require both sides agree to use it through setting) 16 W( of a bit in)17 W 6120 70754 MT (the capability mask, since older) 130 W( Kermits that did not know about such a feature would encounter an unexpected)129 W 6120 71950 MT (packet type and would enter the fatal error state. In any case, the utility) 10 W( of such a feature is questionable, since there)11 W ES %%Page: 11 12 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 11)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (is no guarantee that the) 23 W( user will be present to see such messages at the time they are sent; even if they are saved up)22 W 8280 9082 MT (for later perusal in a "message box", their significance may be long past by) 75 W( the time the user reads them. See the)76 W 8280 10278 MT (section on Robustness, below.)SH 14 /Times-Bold AF 8280 13880 MT (3.4. Heuristics)SH 10 /Times-Roman AF 8280 15998 MT (During any transaction, several heuristics are useful:)SH 10280 17789 MT (1.)SH 11280 XM (A NAK for the current packet is equivalent to an ACK) 124 W( for the previous packet \050modulo 64\051. This)123 W 11280 18894 MT (handles the common situation in which a packet is successfully received,) 133 W( and then ACK'd, but the)134 W 11280 19999 MT (ACK is lost. The ACKing side then times out waiting for the next) 32 W( packet and NAKs it. The side that)31 W 11280 21104 MT (receives a NAK for packet)SH /Times-Italic SF 22192 XM (n+1)SH /Times-Roman SF 24117 XM (while waiting for an ACK for packet)SH /Times-Italic SF 39086 XM (n)SH /Times-Roman SF 39836 XM (simply sends packet)SH /Times-Italic SF 48141 XM (n+1)SH /Times-Roman SF (.)SH 10280 23314 MT (2.)SH 11280 XM (If packet)9 W /Times-Italic SF 15074 XM (n)SH /Times-Roman SF 15833 XM (arrives more) 9 W( than once, simply ACK it and discard it. This can happen when the first ACK)10 W 11280 24419 MT (was lost. Resending the ACK is necessary)SH /Times-Italic SF 28639 XM (and)SH /Times-Roman SF 30389 XM (sufficient -- don't write the packet out to the file again!)SH 10280 26629 MT (3.)SH 11280 XM (When opening a) 77 W( connection, discard the contents of the line's input buffer before reading or sending)76 W 11280 27734 MT (the first packet. This is especially important if the other side is) 15 W( in receive mode \050or acting as a server\051,)16 W 11280 28839 MT (in which case it may have been sending out periodic NAKs for your expected) 267 W( SEND-INIT or)266 W 11280 29944 MT (command packet.) 118 W( If) 487 W( you don't do this, you may find that there are sufficient NAKs to prevent the)119 W 11280 31049 MT (transfer -- you send a Send-Init, read the response, which) 231 W( is an old NAK, so you send another)230 W 11280 32154 MT (Send-Init, read the next old NAK, and so forth, up to the retransmission limit, and give up before)147 W 11280 33259 MT (getting to the ACKs that are waiting in line behind all) 15 W( the old NAKs. If the number of NAKs is below)14 W 11280 34364 MT (the cutoff, then each packet may be transmitted multiply.)SH 10280 36574 MT (4.)SH 11280 XM (Similarly, before sending a packet, you should) 107 W( clear the input buffer \050after looking for any required)108 W 11280 37679 MT (handshake character\051. Failure to clear the buffer could result) 150 W( in propogation of the repetition of a)149 W 11280 38784 MT (packet caused by stacked-up NAKs.)SH 10280 40994 MT (5.)SH 11280 XM (If an ACK arrives) 86 W( for a packet that has already been ACK'd, simply ignore the redundant ACK and)87 W 11280 42099 MT (wait for the next ACK, which should be on its way.)SH 14 /Times-Bold AF 8280 45701 MT (3.5. File Names)SH 10 /Times-Roman AF 8280 47819 MT (The syntax for file names can) 16 W( vary widely from system to system. To avoid problems, it is suggested that filenames)15 W 8280 49015 MT (be represented in the File Header) 106 W( \050F\051 packet in a "normal form", by default \050that is, there should be an option to)107 W 8280 50211 MT (override such conversions\051.)SH 10280 52002 MT (1.)SH 11280 XM (Delete all pathnames and attributes from the file specification. The) 169 W( file header packet should not)168 W 11280 53107 MT (contain directory or device names; if it does, it) 105 W( may cause the recipient to try to store the file in an)106 W 11280 54212 MT (inaccessible or nonexistent area, or it may result in a very strange filename.)SH 10280 56422 MT (2.)SH 11280 XM (After stripping) 25 W( any pathname, convert the remainder of the file specification to the form ")24 W /Times-Italic SF (name)SH /Courier SF (.)SH /Times-Italic SF (type)SH /Times-Roman SF (",)SH 11280 57527 MT (with no restriction on length \050except that it fit in the data field of the F packet\051, and:)SH 13336 59318 MT (a.)SH 14280 XM (Include no more than one dot.)SH 13280 60423 MT (b.)SH 14280 XM (Not begin or end with a dot.)SH 13336 61528 MT (c.)SH 14280 XM (The)SH /Times-Italic SF 16085 XM (name)SH /Times-Roman SF 18501 XM (and)SH /Times-Italic SF 20195 XM (type)SH /Times-Roman SF 22111 XM (fields contain digits and uppercase letters.)SH 8280 63319 MT (Special characters like)225 W /Courier SF 18202 XM ("$")SH /Times-Roman SF (,)SH /Courier SF 20727 XM ("_")SH /Times-Roman SF (,)SH /Courier SF 23252 XM ("-")SH /Times-Roman SF (,)SH /Courier SF 25777 XM ("&")SH /Times-Roman SF (, and so forth should be disallowed,) 225 W( since they're sure to cause)226 W 8280 64515 MT (problems on one system or another.)SH 8280 66907 MT (The recipient, of course, cannot depend upon the sender) 30 W( to follow this convention, and should still take precautions.)29 W 8280 68103 MT (However, since most file systems embody the) 34 W( notion of a file name and a file type, this convention will allow these)35 W 8280 69299 MT (items to be expressed in a way that an unlike system can understand. The) 145 W( particular notation is chosen simply)144 W 8280 70495 MT (because it is the most common.)SH ES %%Page: 12 13 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 12)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (The recipient must worry about the length of the name and type) 72 W( fields of the file name. If either is too long, they)73 W 6120 9082 MT (must be truncated. If the result \050whether truncated or not\051 is the same as the) 26 W( name of a file that already exists in the)25 W 6120 10278 MT (same area, the recipient should have the ability to take some special action to avoid writing over the original file.)SH 6120 12670 MT (Kermit implementations that convert file specifications to normal form) 29 W( by default should have an option to override)30 W 6120 13866 MT (this feature. This would be most useful when transferring files between like systems, perhaps used in) 72 W( conjunction)71 W 6120 15062 MT (with "image mode") 14 W( file transfer. This could allow, for instance, one UNIX system to send an entire directory tree to)15 W 6120 16258 MT (another UNIX system.)SH 14 /Times-Bold AF 6120 19860 MT (3.6. Robustness)SH 10 /Times-Roman AF 6120 21978 MT (A major feature of the Kermit protocol is the ability to transfer multiple files. Whether a particular Kermit program)25 W 6120 23174 MT (can actually send multiple files depends on the capabilities of the program and the) 173 W( host operating system \050any)174 W 6120 24370 MT (Kermit program can receive multiple files\051.)SH 6120 26762 MT (If a Kermit program) 75 W( can send multiple files, it should make every attempt to send the entire group specified. If it)74 W 6120 27958 MT (fails to send a particular file,) 22 W( it should not terminate the entire batch, but should go on the the next one, and proceed)23 W 6120 29154 MT (until an attempt has been made to send each file in the group.)SH 6120 31546 MT (Operating in this robust manner, however, gives rise to a problem: the user must be notified of a) 32 W( failure to send any)31 W 6120 32742 MT (particular file. Unfortunately, it is not sufficient to print a message to the) 215 W( screen since the user may not be)216 W 6120 33938 MT (physically present. A better solution would be to have the sender optionally keep a log of the transaction, giving the)SH 6120 35134 MT (name of each file) 91 W( for which an attempt was made, and stating whether the attempt was successful, and if not, the)92 W 6120 36330 MT (reason. Additional) 250 W( aids to robustness are described in the Optional Features section, below.)SH 14 /Times-Bold AF 6120 39932 MT (3.7. Flow Control)SH 10 /Times-Roman AF 6120 42050 MT (On full duplex connections, XON/XOFF flow control) 25 W( can generally be used in conjunction with Kermit file transfer)24 W 6120 43246 MT (with no ill effects.) 3 W( This) 257 W( is because XOFFs are sent in the opposite direction of packet flow, so they will not interfere)4 W 6120 44442 MT (with the packets themselves. XON/XOFF, therefore, need not be implemented by) 7 W( the Kermit program, but can done)6 W 6120 45638 MT (by the host system.) 171 W( If) 593 W( the host system provides this capability, it should be used -- if both sides can respond)172 W 6120 46834 MT (XON/XOFF signals, then buffer overruns and the resulting costly packet retransmissions can be avoided.)SH 6120 49226 MT (Beware, however, of the following situation: remote) 121 W( Kermit is sending periodic NAKs, local system is buffering)120 W 6120 50422 MT (them on the operating) 39 W( system level \050because the user has not started the local end of the file transfer yet\051; local line)40 W 6120 51618 MT (buffer becomes full, local systems sends XOFF, remote starts buffering) 90 W( them up on its end, user finally starts file)89 W 6120 52814 MT (transfer on local end, clears buffer, local operating system) 106 W( sends XON, and then all the remotely buffered NAKs)107 W 6120 54010 MT (show up, causing the packet echoing problem described above, despite the buffer clearing.)SH 6120 56402 MT (Flow control via modem signals can also be used when available.)SH 6120 58794 MT (Note that flow control should not be confused) 104 W( with "handshake" or "line turnaround" techniques that are used on)103 W 6120 59990 MT (simplex or half-duplex communication lines. In fact, the two techniques are mutually exclusive.)SH ES %%Page: 13 14 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 13)SH 46800 50 8280 5709 UL 14 /Times-Bold AF 8280 8138 MT (3.8. Basic Kermit Protocol State Table)SH 10 /Times-Roman AF 8280 10256 MT (The Kermit protocol can be described as) 14 W( a set of states and transitions, and rules for what to do when changing from)15 W 8280 11452 MT (one state to another. State changes occur based on the type of packets that) 60 W( are sent or received, or errors that may)59 W 8280 12648 MT (occur. Packets) 348 W( always go back and forth; the sender of a file always sends data packets of) 49 W( some kind \050init, header,)50 W 8280 13844 MT (data\051 and the receiver always returns ACK or NAK packets.)SH 8280 16236 MT (Upon entering a given state, a) 48 W( certain kind of packet is either being sent or is expected to arrive -- this is shown on)47 W 8280 17432 MT (top of the description of that state. As a) 74 W( result of the action, various responses may occur; these are shown in the)75 W 8280 18628 MT (EVENT column. For each event, an appropriate ACTION is taken, and the protocol enters a NEW STATE.)SH 8280 21020 MT (The following table specifies basic) 105 W( Kermit operation. Timeouts and error conditions have been omitted from the)104 W 8280 22216 MT (following table for simplicity, but the action is as described above. Server operation) 131 W( and some of the advanced)132 W 8280 23412 MT (features are also omitted. A full-blown state table is given subsequently.)SH ES %%Page: 14 15 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 14)SH 46800 50 6120 5709 UL /Courier SF 8520 7824 MT (STATE EVENT) 1200 W( ACTION NEW) 6000 W( STATE)SH 3000 50 8520 8024 UL 3000 50 13320 8024 UL 3600 50 22920 8024 UL 5400 50 39720 8024 UL /Courier-Oblique SF 11520 9479 MT (-- SEND STATES --)SH 8520 11134 MT (Send Send-Init Packet:)SH /Courier SF 8520 12165 MT (S Get) 3600 W( NAK,bad ACK \050None\051) SH( S)15000 W 13320 13196 MT (Get good ACK) SH( Set) 1800 W( remote's params, open file SF)SH 13320 14227 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 15882 MT (Send File-Header Packet)SH /Courier SF 8520 16913 MT (SF Get) 3000 W( NAK,bad ACK \050None\051) SH( SF)15000 W 13320 17944 MT (Get good ACK) SH( Get) 1800 W( bufferful of file data) SH( SD)3000 W 13320 18975 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 20630 MT (Send File-Data Packet)SH /Courier SF 8520 21661 MT (SD Get) 3000 W( NAK,bad ACK \050None\051) SH( SD)15000 W 13320 22692 MT (Get good ACK) SH( Get) 1800 W( bufferful of file data) SH( SD)3000 W 13320 23723 MT (\050End of file\051) SH( \050None\051) 1200 W( SZ)15000 W 13320 24754 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 26409 MT (Send EOF Packet)SH /Courier SF 8520 27440 MT (SZ Get) 3000 W( NAK,bad ACK \050None\051) SH( SZ)15000 W 13320 28471 MT (Get good ACK) SH( Get) 1800 W( next file to send) SH( SF)6000 W 13320 29502 MT (\050No more files\051 \050None\051) SH( SB)15000 W 13320 30533 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 32188 MT (Send Break \050EOT\051 Packet)SH /Courier SF 8520 33219 MT (SB Get) 3000 W( NAK,bad ACK \050None\051) SH( SB)15000 W 13320 34250 MT (Get good ACK) SH( \050None\051) 1800 W( C)15000 W 13320 35281 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 11520 36936 MT (-- RECEIVE STATES --)SH 8520 38591 MT (Wait for Send-Init Packet)SH /Courier SF 8520 39622 MT (R Get) 3600 W( Send-Init) SH( ACK) 1200 W( w/local params) SH( RF)7800 W 13320 40653 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 42308 MT (Wait for File-Header Packet)SH /Courier SF 8520 43339 MT (RF Get) 3000 W( Send-Init) SH( ACK) 1200 W( w/local params)SH 23520 44370 MT (\050previous ACK was lost\051) SH( RF)4200 W 13320 45401 MT (Get Send-EOF) SH( ACK) 1800 W( \050prev ACK lost\051) SH( RF)7200 W 13320 46432 MT (Get Break) SH( ACK) 3600 W( C)16800 W 13320 47463 MT (Get File-Header Open file, ACK) SH( RD)10200 W 13320 48494 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 8520 50149 MT (Wait for File-Data Packet)SH /Courier SF 8520 51180 MT (RD Get) 3000 W( previous)SH 13920 52211 MT (packet\050D,F\051 ACK) 1800 W( it again) SH( RD)11400 W 13320 53242 MT (Get EOF) SH( ACK) 4800 W( it, close the file) SH( RF)5400 W 13320 54273 MT (Get good data) SH( Write) 1200 W( to file, ACK) SH( RD)7800 W 13320 55304 MT (\050Other\051 \050None\051) 4800 W( A)15000 W /Courier-Oblique SF 11520 56959 MT (-- STATES COMMON TO SENDING AND RECEIVING --)SH /Courier SF 8520 58614 MT (C \050Send) 3600 W( Complete\051) SH( start)19200 W 8520 59645 MT (A \050"Abort"\051) 3600 W( start)22800 W ES %%Page: 15 16 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 15)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (4. Packet Format)SH 14 SS 8280 11874 MT (4.1. Fields)SH 10 /Times-Roman AF 8280 13992 MT (The Kermit protocol is built around exchange of packets of the following format:)SH /Courier SF 10680 15647 MT (+------+-------------+-------------+------+------------+-------+)SH 10680 16678 MT (| MARK | tochar\050LEN\051 | tochar\050SEQ\051 | TYPE |) SH( DATA |) 1800 W( CHECK |)SH 10680 17709 MT (+------+-------------+-------------+------+------------+-------+)SH /Times-Roman SF 8280 19426 MT (where all fields consist of ASCII characters. The fields are:)SH 8280 21217 MT (MARK)SH 12280 XM (The synchronization character that marks the beginning) 34 W( of the packet. This should normally be CTRL-A,)33 W 3000 50 8280 21417 UL 12280 22322 MT (but may be redefined.)SH 8280 23899 MT (LEN)SH 12280 XM (The number of ASCII characters within the packet that follow) 47 W( this field, in other words the packet length)48 W 1944 50 8280 24099 UL 12280 25004 MT (minus two. Since this number is transformed to) 105 W( a single character via the)104 W /Courier SF 43379 XM (tochar\050\051)SH /Times-Roman SF 48533 XM (function, packet)104 W 12280 26109 MT (character counts of 0 to 94 \050decimal\051 are permitted, and 96 \050decimal\051) 39 W( is the maximum total packet length.)40 W 12280 27214 MT (The length does not include end-of-line or padding characters, which are outside the) 4 W( packet and are strictly)3 W 12280 28319 MT (for the benefit of the operating system or communications equipment, but it does include the) 45 W( block check)46 W 12280 29424 MT (characters.)SH 8280 31001 MT (SEQ)SH 12280 XM (The packet sequence number, modulo 64, ranging from 0) 85 W( to 63. Sequence numbers "wrap around" to 0)84 W 1889 50 8280 31201 UL 12280 32106 MT (after each group of 64 packets.)SH 8280 33683 MT (TYPE)SH 12280 XM (The packet type, a single ASCII character. The following packet types are required:)SH 2500 50 8280 33883 UL 12280 35474 MT (D)SH 14280 XM (Data packet)SH 12280 36579 MT (Y)SH 14280 XM (Acknowledge \050ACK\051)SH 12280 37684 MT (N)SH 14280 XM (Negative acknowledge \050NAK\051)SH 12280 38789 MT (S)SH 14280 XM (Send initiate \050exchange parameters\051)SH 12280 39894 MT (B)SH 14280 XM (Break transmission \050EOT\051)SH 12280 40999 MT (F)SH 14280 XM (File header)SH 12280 42104 MT (Z)SH 14280 XM (End of file \050EOF\051)SH 12280 43209 MT (E)SH 14280 XM (Error)SH 12280 44314 MT (Q)SH /Times-Italic SF 14280 XM (Reserved for internal use)SH /Times-Roman SF 12280 45419 MT (T)SH /Times-Italic SF 14280 XM (Reserved for internal use)SH /Times-Roman SF 12280 47210 MT (The NAK packet is) 122 W( used only to indicate that the expected packet was not received correctly, never to)123 W 12280 48315 MT (supply other kinds of) 1 W( information, such as refusal to perform a requested service. The NAK packet)SH /Times-Italic SF 52302 XM (always)SH /Times-Roman SF 12280 49420 MT (has an empty) 98 W( data field. The T "packet" is used internally by many Kermit programs to indicate that a)99 W 12280 50525 MT (timeout occurred.)SH 8280 52102 MT (DATA)SH 12280 XM (The "contents" of the packet, if any contents are required in) 5 W( the given type of packet, interpreted according)4 W 2777 50 8280 52302 UL 12280 53207 MT (to the packet type. Control characters \050bytes whose low order 7 bits are in the ASCII control range 0-31,)44 W 12280 54312 MT (or 127\051 are preceded by a special prefix character, normally ")132 W /Courier SF (#)SH /Times-Roman SF (", and "uncontrollified" via)131 W /Courier SF 50346 XM (ctl\050\051)SH /Times-Roman SF (. A)512 W 12280 55417 MT (prefixed sequence may not be broken across packets.) 31 W( Logical) 313 W( records in printable files are delimited with)32 W 12280 56522 MT (CRLFs, suitably prefixed \050e.g. ")140 W /Courier SF (#M#J)SH /Times-Roman SF ("\051. Logical) 530 W( records need not correspond to packets. Any prefix)139 W 12280 57627 MT (characters are included in the count. Optional encoding for 8-bit data and) 21 W( repeated characters is described)22 W 12280 58732 MT (later. The) 299 W( data fields of all packets are subject to prefix encoding,)24 W /Times-Italic SF 39281 XM (except)SH /Times-Roman SF 42109 XM (the S, I, and A packets and their)24 W 12280 59837 MT (acknowledgements, which must)SH /Times-Italic SF 25334 XM (not)SH /Times-Roman SF 26862 XM (be encoded.)SH 8280 61414 MT (CHECK)SH 12280 XM (A block check on the characters in the packet between, but not including, the mark and the block check)82 W 3389 50 8280 61614 UL 12280 62519 MT (itself. The) 322 W( check for each packet is computed by both hosts, and must agree if a packet is to) 36 W( be accepted.)35 W 12280 63624 MT (A single-character arithmetic checksum) 166 W( is the normal and required block check. Only six bits of the)167 W 12280 64729 MT (arithmetic sum are included. In order that all the bits of each data character contribute to this quantity, bits)3 W 12280 65834 MT (6 and) 43 W( 7 of the final value are added to the quantity formed by bits 0-5. Thus if)44 W /Times-Italic SF 44777 XM (s)SH /Times-Roman SF 45460 XM (is the arithmetic sum of)44 W 12280 66939 MT (the ASCII characters, then)SH /Courier-Oblique SF 14680 68594 MT (check)SH /Courier SF 18280 XM (= tochar\050\050)SH /Courier-Oblique SF (s)SH /Courier SF 25480 XM (+ \050\050)SH /Courier-Oblique SF (s)SH /Courier SF 29080 XM (AND 192\051/64\051\051 AND 63\051)SH /Times-Roman SF 12280 70311 MT (This is the default block check, and all Kermits must be capable of performing it. Other) 85 W( optional block)84 W 12280 71416 MT (check types are described later.)SH ES %%Page: 16 17 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 16)SH 46800 50 6120 5709 UL /Times-Roman SF 10120 7886 MT (The block check is based) 58 W( on the ASCII values of all the characters in the packet, including control fields)59 W 10120 8991 MT (and prefix characters.) 128 W( Non-ASCII) 505 W( systems must translate to ASCII before performing the block check)127 W 10120 10096 MT (calculation.)SH 14 /Times-Bold AF 6120 13698 MT (4.2. Terminator)SH 10 /Times-Roman AF 6120 15816 MT (Any line terminator that is required by the system may be) 26 W( appended to the packet; this is carriage return \050ASCII 15\051)27 W 6120 17012 MT (by default. Line terminators are not considered part of the packet, and are) 70 W( not included in the count or checksum.)69 W 6120 18208 MT (Terminators are not necessary to the protocol, and are invisible to it, as) 38 W( are any characters that may appear between)39 W 6120 19404 MT (packets. If) 272 W( a host cannot do single character input from a TTY line, then a terminator) 11 W( will be required when sending)10 W 6120 20600 MT (to that host. The terminator can be specified in the initial connection exchange.)SH 6120 22992 MT (Some Kermit implementations also use the terminator for another reason --) 181 W( speed. Some systems are not fast)182 W 6120 24188 MT (enough to) 25 W( take in a packet and decode it character by character at high baud rates; by blindly reading and storing all)24 W 6120 25384 MT (characters between the MARK and the EOL, they are) 48 W( able to absorb the incoming characters at full speed and then)49 W 6120 26580 MT (process them at their own rate.)SH 14 /Times-Bold AF 6120 30182 MT (4.3. Other Interpacket Data)SH 10 /Times-Roman AF 6120 32300 MT (The space between packets may be) 127 W( used for any desired purpose. Handshaking characters may be necessary on)126 W 6120 33496 MT (certain connections, others may require screen control or other sequences to keep the packets flowing.)SH 14 /Times-Bold AF 6120 37098 MT (4.4. Encoding, Prefixing, Block Check)SH 10 /Times-Roman AF 6120 39216 MT (MARK, LEN, SEQ, TYPE, and CHECK are)40 W /Times-Italic SF 24537 XM (control fields)40 W /Times-Roman SF (. Control) 330 W( fields are always literal single-character fields,)40 W 6120 40412 MT (except that the CHECK field may be) 131 W( extended by one or two additional check characters. Each control field is)130 W 6120 41608 MT (encoded by)SH /Courier SF 10952 XM (tochar\050\051)SH /Times-Roman SF 16002 XM (or taken literally, but never prefixed. The control fields never contain 8-bit data.)SH 6120 44000 MT (The DATA field contains a string of data characters in which any control characters are encoded printably and)154 W 6120 45196 MT (preceded with the control prefix. The decision to prefix a character in this way depends upon) 31 W( whether its low order)30 W 6120 46392 MT (7 bits are in the) 41 W( ASCII control range, i.e. 0-31 or 127. Prefix characters that appear in the data must themselves be)42 W 6120 47588 MT (prefixed by the control prefix, but unlike) 183 W( control characters, these retain their literal value in the packet. The)182 W 6120 48784 MT (character to be prefixed is considered a prefix character if its low-order 7 bits corresponds to an active) 184 W( prefix)185 W 6120 49980 MT (character, such as)SH /Courier SF 13450 XM (#)SH /Times-Roman SF 14300 XM (\050ASCII 35\051,)SH /Times-Italic SF 19327 XM (regardless of the setting of its high-order bit)SH /Times-Roman SF (.)SH 6120 52372 MT (During decoding, any character that follows the control prefix, but) 141 W( is not in the control range, is taken literally.)140 W 6120 53568 MT (Thus, it does no harm to prefix a printable character, even if that character does not happen to be an active prefix.)SH 6120 55960 MT (The treatment of the high order \050"8th"\051 bit of a data byte is as follows:)SH /Symbol SF 7910 57865 MT (\267)SH /Times-Roman SF 8620 XM (If the communication channel allows 8 data bits per character, then the original value of) 77 W( the 8th bit is)78 W 8620 58970 MT (retained in the prefixed character. For instance, a data byte corresponding to a Control-A with the 8th)59 W 8620 60075 MT (bit set would be send as a control prefix, normally ")61 W /Courier SF (#)SH /Times-Roman SF (", without the 8th) 61 W( bit set, followed by)62 W /Courier SF 46220 XM (ctl\050^A\051)SH /Times-Italic SF 8620 61180 MT (with)SH /Times-Roman SF 10593 XM (the 8th bit set. In binary notation, this would be)SH /Courier SF 11020 62835 MT (00100011 11000001)SH /Times-Roman SF 8620 64552 MT (In this case, the 8th bit is figured into all block check calculations.)SH /Symbol SF 7910 66541 MT (\267)SH /Times-Roman SF 8620 XM (If the communication channel or one of the hosts requires) 71 W( parity on each character, and both sides are)70 W 8620 67646 MT (capable of) 113 W( 8th-bit prefixing, then the 8th bit will be used for parity, and must)114 W /Times-Italic SF 41298 XM (not)SH /Times-Roman SF 42940 XM (be included in the)114 W 8620 68751 MT (block check. 8th bit prefixing is an option feature described in greater detail in Section 6, below.)SH /Symbol SF 7910 70740 MT (\267)SH /Times-Roman SF 8620 XM (If parity is being used but 8th-bit prefixing is)49 W /Times-Italic SF 27310 XM (not)SH /Times-Roman SF 28887 XM (being done, then the value of the 8th bit of) 49 W( each data)48 W 8620 71845 MT (byte will be lost and binary files will not be transmitted correctly. Again, the 8th) 1 W( bit does not figure into)2 W ES %%Page: 17 18 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 17)SH 46800 50 8280 5709 UL /Times-Roman SF 10780 7886 MT (the block check.)SH 8280 10278 MT (The data fields of all packets are subject to prefix encoding,)130 W /Times-Italic SF 33871 XM (except)SH /Times-Roman SF 36805 XM (S, I, and A packets, and) 130 W( the ACKs to those)129 W 8280 11474 MT (packets \050see below\051.)SH ES %%Page: 18 19 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 18)SH 46800 50 6120 5709 UL ES %%Page: 19 20 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 19)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (5. Initial Connection)SH 10 /Times-Roman AF 8280 10566 MT (Initial connection occurs when the user has started up) 86 W( a Kermit program on both ends of the physical connection.)87 W 8280 11762 MT (One Kermit has been directed \050in one way or another\051 to send a file, and the other to receive it.)SH 8280 14154 MT (The receiving Kermit waits for a "Send-Init" packet from the sending) 17 W( Kermit. It doesn't matter whether the sending)16 W 8280 15350 MT (Kermit is started before or after the receiving) 215 W( Kermit \050if before, the Send-Init packet should be retransmitted)216 W 8280 16546 MT (periodically until the receiving Kermit acknowledges it\051.) 48 W( The) 345 W( data field of the Send-Init packet is optional; trailing)47 W 8280 17742 MT (fields can be omitted \050or left blank, i.e. contain a space\051 to accept or specify default values.)SH 8280 20134 MT (The Send-Init packet contains a string of configuration information in its data field. The receiver sends an ACK for)25 W 8280 21330 MT (the Send-Init, whose data field contains its own configuration parameters. The data field of the Send-Init and the)85 W 8280 22526 MT (ACK to the Send-Init are)50 W /Times-Italic SF 18834 XM (literal)SH /Times-Roman SF (, that is, there is no prefix encoding.) 50 W( This) 352 W( is because the two parties will not know)51 W /Times-Italic SF 8280 23722 MT (how)SH /Times-Roman SF 10197 XM (to do prefix encoding until)SH /Times-Italic SF 21113 XM (after)SH /Times-Roman SF 23252 XM (the configuration data is exchanged.)SH 8280 26114 MT (It is important to note that newly invented fields are added at the right, so) 18 W( that old Kermit programs that do not have)17 W 8280 27310 MT (code to handle the new fields will act as if they were not there. For this) 117 W( reason, the default value for any field,)118 W 8280 28506 MT (indicated by blank, should result in the behavior that occurred before the new field was defined or added.)SH /Courier SF 10080 30161 MT (1 2 3 4 5 6 7 8 9 10...)3000 W 9480 31192 MT (+------+------+------+------+------+------+------+------+------+-------)SH 9480 32223 MT (| MAXL | TIME | NPAD | PADC | EOL | QCTL | QBIN | CHKT | REPT | CAPAS)SH 9480 33254 MT (+------+------+------+------+------+------+------+------+------+-------)SH /Times-Roman SF 8280 34971 MT (The fields are as follows \050the first) 15 W( and second person "I" and "you" are used to distinguish the two sides\051. Fields are)14 W 8280 36167 MT (encoded printably using the)SH /Courier SF 19612 XM (tochar\050\051)SH /Times-Roman SF 24662 XM (function unless indicated otherwise.)SH 8280 37958 MT (1. MAXL)SH 13280 XM (The maximum length packet I want to receive, a number) 103 W( up to 94 \050decimal\051. \050This really means the)104 W 2944 50 9280 38158 UL 13280 39063 MT (biggest value I want to see in a LEN field.\051 You respond with the maximum you) 4 W( want me to send. This)3 W 13280 40168 MT (allows systems to adjust to each other's buffer sizes, or to the condition of the transmission medium.)SH 8280 41745 MT (2. TIME)SH 13280 XM (The number of seconds after which I want you to time me out while waiting for a packet from me. You)12 W 2444 50 9280 41945 UL 13280 42850 MT (respond with the amount of time I should wait for packets) 148 W( from you. This allows the two sides to)147 W 13280 43955 MT (accommodate to different line speeds) 41 W( or other factors that could cause timing problems. Only one side)42 W 13280 45060 MT (needs to time out. If both sides time out, then the timeout intervals should not be close together.)SH 8280 46637 MT (3. NPAD)SH 13280 XM (The number of padding) 214 W( characters I want to precede each incoming packet; you respond in kind.)213 W 2722 50 9280 46837 UL 13280 47742 MT (Padding may be necessary when sending to a half) 42 W( duplex system that requires some time to change the)43 W 13280 48847 MT (direction of transmission, although in practice this situation is more commonly handled by) 378 W( a)377 W 13280 49952 MT ("handshake" mechanism.)SH 8280 51529 MT (4. PADC)SH 13280 XM (The control character I need for padding, if any, transformed by)94 W /Courier SF 40112 XM (ctl\050\051)SH /Times-Roman SF 43456 XM (\050)SH /Times-Italic SF (not)SH /Courier SF 45412 XM (tochar\050\051)SH /Times-Roman SF (\051 to make it)95 W 2667 50 9280 51729 UL 13280 52634 MT (printable. You) 310 W( respond in) 30 W( kind. Normally NUL \050ASCII 0\051, some systems use DEL \050ASCII 127\051. This)29 W 13280 53739 MT (field is to be ignored if the value NPAD is zero.)SH 8280 55316 MT (5. EOL)SH 13280 XM (The character I need to terminate an incoming packet, if) 39 W( any. You respond in kind. Most systems that)40 W 1944 50 9280 55516 UL 13280 56421 MT (require a line terminator for) 15 W( terminal input accept carriage return for this purpose \050note, because there is)14 W 13280 57526 MT (no way to specify that no EOL should be sent, it would have) 94 W( been better to use)95 W /Courier SF 46601 XM (ctl\050\051)SH /Times-Roman SF 49946 XM (for this field)95 W 13280 58631 MT (rather than)SH /Courier SF 17834 XM (tochar\050\051)SH /Times-Roman SF (, but it's too late now\051.)SH 8280 60208 MT (6. QCTL)SH 13280 XM (\050verbatim\051 The printable ASCII character I will use to quote control characters, normally and by) 17 W( default)16 W 2611 50 9280 60408 UL 13280 61313 MT (")SH /Courier SF (#)SH /Times-Roman SF (". You) 250 W( respond with the one you will use.)SH /Times-Italic SF 8280 63705 MT (The following fields relate to the use of OPTIONAL features of the Kermit protocol, described in section 6.)SH /Times-Roman SF 8280 65496 MT (7. QBIN)SH 13280 XM (\050verbatim\051 The printable ASCII character) 73 W( I want to use to quote characters which have the 8th bit set,)74 W 2444 50 9280 65696 UL 13280 66601 MT (for transmitting binary files when the parity bit cannot be used for) 133 W( data. Since this kind of quoting)132 W 13280 67706 MT (increases both processor and transmission overhead, it is) 121 W( normally to be avoided. If used, the quote)122 W 13280 68811 MT (character must be in the range ASCII) 230 W( 33-62 \050")229 W /Courier SF (!)SH /Times-Roman SF (" through ")229 W /Courier SF (>)SH /Times-Roman SF ("\051 or 96-126 \050")229 W /Courier SF (`)SH /Times-Roman SF (" through ")229 W /Courier SF (~)SH /Times-Roman SF ("\051, but)229 W 13280 69916 MT (different from the control-quoting character. This field is interpreted as follows:)SH /Courier SF 13280 71707 MT (Y)SH /Times-Roman SF 15280 XM (I agree to 8-bit quoting if you request it \050I don't need it\051.)SH ES %%Page: 20 21 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 20)SH 46800 50 6120 5709 UL /Courier SF 11120 7886 MT (N)SH /Times-Roman SF 13120 XM (I will not do 8-bit quoting \050I don't know how\051.)SH /Courier SF 11120 8991 MT (&)SH /Times-Roman SF 13120 XM (\050or any other character in the range 33-62 or 96-126\051 I need to do 8-bit quoting using this character)11 W 13120 10096 MT (\050it will be done if the other) 219 W( Kermit puts a)218 W /Courier SF 31971 XM (Y)SH /Times-Roman SF 33039 XM (in this field, or responds with the same prefix)218 W 13120 11201 MT (character, such as)SH /Courier SF 20450 XM (&)SH /Times-Roman SF (\051. The) 250 W( recommended 8th-bit quoting prefix character is ")SH /Courier SF (&)SH /Times-Roman SF (".)SH /Times-Italic SF 11120 12306 MT (Anything Else)SH /Times-Roman SF 16953 XM (: 8-bit quoting will not be done.)SH 11120 14097 MT (Note that this scheme allows either side to initiate the request, and the order does not matter. For)162 W 11120 15202 MT (instance, a micro capable of 8-bit communication will normally put) 214 W( a ")213 W /Courier SF (Y)SH /Times-Roman SF (" in this field whereas a)213 W 11120 16307 MT (mainframe that uses parity will always put an ")109 W /Courier SF (&)SH /Times-Roman SF (". No) 468 W( matter) 109 W( who sends first, this combination will)110 W 11120 17412 MT (result in election of 8th-bit quoting.)SH 6120 18989 MT (8. CHKT)SH 11120 XM (\050Verbatim\051 Check Type, the method for detecting errors.) 8 W( "1") 265 W( for single-character checksum \050the normal)7 W 2722 50 7120 19189 UL 11120 20094 MT (and required method\051, "2" for two-character checksum \050optional\051,) 74 W( "3" for three-character CRC-CCITT)75 W 11120 21199 MT (\050optional\051. If) 350 W( your response agrees, the designated method will be used; otherwise) 50 W( the single-character)49 W 11120 22304 MT (checksum will be used.)SH 6120 23881 MT (9. REPT)SH 11120 XM (The prefix character I will use to indicate a repeated character.) 68 W( This) 387 W( can be any printable character in)69 W 2445 50 7120 24081 UL 11120 24986 MT (the range ASCII 33-62 or 96-126, but different) 66 W( from the control and 8th-bit prefixes. SP \05032\051 denotes)65 W 11120 26091 MT (no repeat count processing is to be) 39 W( done. Tilde \050")40 W /Courier SF (~)SH /Times-Roman SF ("\051 is the recommended and normal repeat prefix. If)40 W 11120 27196 MT (you don't respond identically, repeat counts will not be done. Groups of at least) 190 W( 3 or 4 identical)189 W 11120 28301 MT (characters may be transmitted more efficiently using a repeat) 509 W( count, though an individual)510 W 11120 29406 MT (implementation may wish to set a different threshhold.)SH 6120 30983 MT (10-?. CAPAS)SH 3223 50 8397 31183 UL 11120 32088 MT (A bit mask, in which each bit position corresponds to a capability of Kermit, and is set to) 140 W( 1 if that)141 W 11120 33193 MT (capability is present,) 9 W( or 0 if it is not. Each character contains a 6-bit field \050transformed by)8 W /Courier SF 47537 XM (tochar\050\051)SH /Times-Roman SF (\051,)SH 11120 34298 MT (whose low order bit is set to 1 if another capability) 98 W( byte follows, and to 0 in the last capability byte.)99 W 11120 35403 MT (The capabilities defined so far are:)SH /Courier SF 12120 37192 MT (#1)SH /Times-Italic SF 14120 XM (Reserved)SH /Courier SF 12120 38297 MT (#2)SH /Times-Italic SF 14120 XM (Reserved)SH /Courier SF 12120 39402 MT (#3)SH /Times-Roman SF 14120 XM (Ability to accept "A" packets \050file attributes\051)SH /Courier SF 12120 40507 MT (#4)SH /Times-Roman SF 14120 XM (Ability to do full duplex sliding window protocol)SH /Courier SF 12120 41612 MT (#5)SH /Times-Roman SF 14120 XM (Ability to transmit and receive extended-length packets)SH 11120 43403 MT (The capability byte as defined so far would then look like:)SH /Courier SF 11720 45058 MT (bit5 bit4 bit3 bit2 bit1 bit0)SH 11120 46089 MT (+----+----+----+----+----+----+)SH 11120 47120 MT (| #1 | #2 | #3 | #4 | #5 | 0 |)SH 11120 48151 MT (+----+----+----+----+----+----+)SH /Times-Roman SF 11120 49868 MT (If all these capabilities were) 148 W( "on", the value of the byte would be 76 \050octal\051. When capability 6 is)147 W 11120 50973 MT (added, the capability mask will look like this:)SH /Courier SF 11720 52628 MT (bit5 bit4 bit3 bit2 bit1 bit0) SH( bit5) 1800 W( bit4 bit3 bit2 bit1 bit0)SH 11120 53659 MT (+----+----+----+----+----+----+ +----+----+----+----+----+----+)1200 W 11120 54690 MT (| #1 | #2 | #3 | #4 | #5 | 1 |) SH( |) 1200 W( #6 | -- | -- | -- | -- | 0 |)SH 11120 55721 MT (+----+----+----+----+----+----+ +----+----+----+----+----+----+)1200 W /Times-Roman SF 6120 57438 MT (CAPAS+1. WINDO)SH 3443 50 10907 57638 UL 11120 58543 MT (Window size \050see section 7.2\051.)SH 6120 60120 MT (CAPAS+2. MAXLX1)SH 4166 50 10907 60320 UL 11120 61225 MT (Extended packet length \050see section 7.1\051.)SH 6120 62802 MT (CAPAS+3. MAXLX2)SH 4166 50 10907 63002 UL 11120 63907 MT (Extended packet length \050see section 7.1\051.)SH 6120 66299 MT (The receiving Kermit responds with an ACK) 180 W( \050"Y"\051 packet in the same format to indicate its own preferences,)179 W 6120 67495 MT (options, and parameters. The ACK need not contain the same number of fields as the) 122 W( the Send-Init. From that)123 W 6120 68691 MT (point, the) 280 W( two Kermit programs are "configured" to communicate with each other for the remainder of the)279 W 6120 69887 MT (transaction. In) 336 W( the case) 43 W( of 8th-bit quoting, one side must specify the character to be used, and the other must agree)44 W 6120 71083 MT (with a "Y" in the same field, but the order in which this occurs does not matter.) 59 W( Similarly) 367 W( for checksums -- if one)58 W ES %%Page: 21 22 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 21)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (side requests 2 character checksums and the other side responds with a "1" or with) 163 W( nothing at all, then single-)164 W 8280 9082 MT (character checksums will be done, since not all implementations) 105 W( can be expected to do 2-character checksums or)104 W 8280 10278 MT (CRCs. And) 371 W( for repeat counts; if the repeat field of the send-init and the ACK do not agree, repeat processing will)61 W 8280 11474 MT (not be done.)SH 8280 13866 MT (All Send-Init fields are optional.) 122 W( The) 493 W( data field may be left totally empty. Similarly, intervening fields may be)121 W 8280 15062 MT (defaulted by setting them to blank. Kermit implementations should know what to do in) 66 W( these cases, namely apply)67 W 8280 16258 MT (appropriate defaults. The defaults should be:)SH 10280 18049 MT (MAXL:)SH 14280 XM (80)SH 10280 19154 MT (TIME:)SH 14280 XM (5 seconds)SH 10280 20259 MT (NPAD:)SH 14280 XM (0, no padding)SH 10280 21364 MT (PADC:)SH 14280 XM (0 \050NUL\051)SH 10280 22469 MT (EOL:)SH 14280 XM (CR \050carriage return\051)SH 10280 23574 MT (QCTL:)SH 14280 XM (the character "#")SH 10280 24679 MT (QBIN:)SH 14280 XM (space, can't do 8-bit quoting)SH 10280 25784 MT (CHKT:)SH 14280 XM ("1", single-character checksum)SH 10280 26889 MT (REPT:)SH 14280 XM (No repeat count processing)SH 10280 27994 MT (CAPAS:)SH 14280 XM (All zeros \050no special capabilities\051)SH 10280 29099 MT (WINDO:)SH 14280 XM (Blank \050zero\051 - no sliding windows)SH 10280 30204 MT (MAXLX1:)SH 14280 31309 MT (Blank \050zero\051 - no extended length packets)SH 10280 32414 MT (MAXLX2:)SH 14280 33519 MT (Blank \050zero\051 - no extended length packets)SH 8280 35911 MT (There are no prolonged negotiations in the initial connection sequence -- there is one Send-Init and one ACK) 119 W( in)118 W 8280 37107 MT (reply. Everything) 250 W( must be settled in this exchange.)SH 8280 39499 MT (The very first Send-Init may not get through if the) 91 W( sending Kermit makes wrong assumptions about the receiving)92 W 8280 40695 MT (host. For) 254 W( instance, the receiving host may require certain parity, some) 2 W( padding, handshaking, or a special end of line)1 W 8280 41891 MT (character in order to read the Send-Init packet. For this reason,) 7 W( there should be a way for the user the user to specify)8 W 8280 43087 MT (whatever may be necessary to get the first packet through.)SH 8280 45479 MT (A parity field is not provided in the Send-Init packet because it could not be) 38 W( of use. If the sender requires a certain)37 W 8280 46675 MT (kind of parity, it will also be sending it.) 161 W( If) 573 W( the receiver does not know this in advance, i.e.)162 W /Times-Italic SF 47701 XM (before)SH /Times-Roman SF 50668 XM (getting the)162 W 8280 47871 MT (Send-Init, it will not be able to read the Send-Init packet.)SH ES %%Page: 22 23 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 22)SH 46800 50 6120 5709 UL ES %%Page: 23 24 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 23)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (6. Optional Features)SH 10 /Times-Roman AF 8280 10566 MT (The foregoing sections) 122 W( have discussed basic, required operations for any Kermit implementation. The following)121 W 8280 11762 MT (sections discuss optional and advanced features.)SH 14 /Times-Bold AF 8280 15364 MT (6.1. 8th-Bit and Repeat Count Prefixing)SH 10 /Times-Roman AF 8280 17482 MT (Prefix quoting of control characters is mandatory.) 109 W( In) 469 W( addition, prefixing may also be used for 8-bit quantities or)110 W 8280 18678 MT (repeat counts, when both Kermit programs agree to do so. 8th-bit prefixing can allow 8-bit) 12 W( binary data pass through)11 W 8280 19874 MT (7-bit physical links. Repeat count prefixing) 1 W( can improve the throughput of certain kinds of files dramatically; binary)2 W 8280 21070 MT (files \050particularly executable programs\051 and structured text \050highly) 65 W( indented or columnar text\051 tend to be the major)64 W 8280 22266 MT (beneficiaries.)SH 8280 24658 MT (When more than one type of prefixing is in effect, a single data character can) 49 W( be preceded by more than one prefix)50 W 8280 25854 MT (character. Repeat) 358 W( count) 54 W( processing can only be requested by the sender, and will only be used by the sender if the)53 W 8280 27050 MT (receiver agrees. 8th-bit prefixing is a special) 61 W( case because its use is normally not desirable, since it increases both)62 W 8280 28246 MT (processing and transmission overhead. However, since) 160 W( it is the only straightforward mechanism for binary file)159 W 8280 29442 MT (transfer available to those systems that usurp the parity bit, a receiver must be able to request the sender to do) 4 W( 8th-bit)5 W 8280 30638 MT (quoting, since most senders will not normally do it by default.)SH 8280 33030 MT (The repeat prefix is followed immediately by a single-character repeat count,) 124 W( encoded printably via)123 W /Courier SF 50030 XM (tochar\050\051)SH /Times-Roman SF (,)SH 8280 34226 MT (followed by the character itself \050perhaps) 103 W( prefixed by control or 8th bit prefixes, as explained below\051. The repeat)104 W 8280 35422 MT (count may express values from 0 to 94. If a) 57 W( character appears more than 94 times in a row, it must be "cut off" at)56 W 8280 36618 MT (94, emitted with) 143 W( all appropriate prefixes, and "restarted". The following table should clarify Kermit's prefixing)144 W 8280 37814 MT (mechanism \050the final line shows how a sequence of 120 consecutive NULs would be encoded\051:)SH /Courier SF 18480 39469 MT (Prefixed With)6000 W 10680 40500 MT (Character Representation) 1800 W( Repeat) 2400 W( Count for 8)SH 5400 50 10680 40700 UL 8400 50 18480 40700 UL 10800 50 29880 40700 UL 12480 41531 MT (A A) 6600 W( ~\050A) 9000 W( ["\050") 1200 W( is ASCII 40 - 32 = 8])SH 12480 42562 MT (^A #A) 6000 W( ~\050#A)8400 W 12480 43593 MT ('A &A) 6000 W( ~\050&A)8400 W 12480 44624 MT ('^A &#A) 5400 W( ~\050&#A)7800 W 12480 45655 MT (# ##) 6600 W( ~\050##)8400 W 12480 46686 MT ('# &##) 6000 W( ~\050&##)7800 W 12480 47717 MT (& #&) 6600 W( ~\050#&)8400 W 12480 48748 MT ('& &#&) 6000 W( ~\050&#&)7800 W 12480 49779 MT (~ #~) 6600 W( ~\050#~)8400 W 12480 50810 MT ('~ &#~) 6000 W( ~\050&#~)7800 W 12480 51841 MT (NUL #@) 5400 W( ~~#@~:#@) 8400 W( [120 NULs])SH 8280 53558 MT (A)SH /Times-Roman SF 9202 XM (represents any printable character,)72 W /Courier SF 23457 XM (^A)SH /Times-Roman SF 24979 XM (represents any control character,)72 W /Courier SF 38512 XM ('x)SH /Times-Roman SF 40034 XM (represents any) 72 W( character with the 8th)71 W 8280 54754 MT (bit set. The)62 W /Courier SF 13500 XM (#)SH /Times-Roman SF 14412 XM (character is used) 62 W( for control-character prefixing, and the)63 W /Courier SF 37656 XM (&)SH /Times-Roman SF 38569 XM (character for 8-bit prefixing. The repeat)63 W 8280 55950 MT (count must always precede any other prefix character. The repeat count is taken literally \050after transformation by)87 W /Courier SF 8280 57146 MT (unchar\050\051)SH /Times-Roman SF (; for instance ")80 W /Courier SF (#)SH /Times-Roman SF (" and ")80 W /Courier SF (&)SH /Times-Roman SF (" immediately following a ")80 W /Courier SF (~)SH /Times-Roman SF (" denote repeat counts, not control characters or)81 W 8280 58342 MT (8-bit characters. The control prefix character ")53 W /Courier SF (#)SH /Times-Roman SF (" is most closely bound to the data character, then the 8-bit) 53 W( prefix,)52 W 8280 59538 MT (then the repeat count; in other words, the order) 51 W( is: repeat prefix and count, 8-bit prefix, control prefix, and the data)52 W 8280 60734 MT (character itself. To illustrate, note that)SH /Courier SF 24027 XM (&#A)SH /Times-Roman SF 26077 XM (is)SH /Times-Italic SF 26994 XM (not)SH /Times-Roman SF 28522 XM (equivalent to)SH /Courier SF 33966 XM (#&A)SH /Times-Roman SF (.)SH 8280 63126 MT (When the parity bit is available for data, then) 80 W( 8th-bit prefixing should not be done, and the 8th bit of the prefixed)79 W 8280 64322 MT (character will have the same value as the 8th bit of the original data byte. In that case, the table looks like this:)SH ES %%Page: 24 25 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 24)SH 46800 50 6120 5709 UL /Courier SF 16320 7824 MT (Prefixed With)6000 W 8520 8855 MT (Character Representation) 1800 W( Repeat) 2400 W( Count for 8)SH 5400 50 8520 9055 UL 8400 50 16320 9055 UL 10800 50 27720 9055 UL 10320 9886 MT ('A 'A) 6000 W( ~\050'A)8400 W 10320 10917 MT ('^A #'A) 5400 W( ~\050#'A)7800 W 10320 11948 MT ('# #'#) 6000 W( ~\050#'#)7800 W 10320 12979 MT ('& '&) 6000 W( ~\050'&)8400 W 10320 14010 MT ('~ #'~) 6000 W( ~\050#'~)7800 W /Times-Roman SF 6120 15727 MT (Note that since 8th bit prefixing is not being done, ")23 W /Courier SF (&)SH /Times-Roman SF (" is not being used as an 8th bit prefix character, so) 23 W( it does not)24 W 6120 16923 MT (need to be prefixed with ")119 W /Courier SF (#)SH /Times-Roman SF (". Also,) 488 W( note that the) 119 W( 8th bit is set on the final argument of the repeat sequence, no)118 W 6120 18119 MT (matter how long, and not on any of the prefix characters.)SH 6120 20511 MT (Finally, remember the following rules:)SH /Symbol SF 7910 22416 MT (\267)SH /Times-Italic SF 8620 XM (Prefixed sequences must not be broken across packets.)SH /Symbol SF 7910 24074 MT (\267)SH /Times-Italic SF 8620 XM (Control, 8th-bit, and repeat count prefixes must be distinct.)SH /Symbol SF 7910 25732 MT (\267)SH /Times-Italic SF 8620 XM (Data fields of all) 151 W( packets must pass through the prefix encoding mechanism, except for S, I, and A)152 W 8620 26837 MT (packets, and ACKs to those packets, whose data fields must not be encoded.)SH /Times-Roman SF 6120 28628 MT (In the first rule above, note that a prefixed sequence means a single character and) 31 W( all its prefixes, like)30 W /Courier SF 47388 XM (~%&#X)SH /Times-Roman SF (,)SH /Times-Italic SF 50918 XM (not)SH /Times-Roman SF 52476 XM (a)SH 6120 29824 MT (sequence like)SH /Courier SF 11785 XM (#M#J)SH /Times-Roman SF (, which is)SH /Times-Italic SF 18296 XM (two)SH /Times-Roman SF 19991 XM (prefixed sequences.)SH 14 /Times-Bold AF 6120 33426 MT (6.2. Server Operation)SH 10 /Times-Roman AF 6120 35544 MT (A Kermit server is a Kermit) 34 W( program running remotely with no "user interface". All commands to the server arrive)35 W 6120 36740 MT (in packets from the local Kermit. SERVER operation is much) 36 W( more convenient than basic operation, since the user)35 W 6120 37936 MT (need never again interact directly with the remote Kermit program after once starting it up) 142 W( in server mode, and)143 W 6120 39132 MT (therefore need not issue complementary SEND and RECEIVE commands on the two) 141 W( sides to get a file transfer)140 W 6120 40328 MT (started; rather, a single command \050such as SEND or GET\051 to the local Kermit suffices. Kermit) 117 W( servers can also)118 W 6120 41524 MT (provide services beyond file transfer.)SH 6120 43916 MT (Between transactions, a Kermit server waits) 27 W( for packets containing server commands. The packet sequence number)26 W 6120 45112 MT (is always set back to 0 after a transaction. A Kermit server in command wait should be looking for packet) 72 W( 0, and)73 W 6120 46308 MT (command packets sent to servers should also be packet 0. Certain server commands will result in the exchange of)63 W 6120 47504 MT (multiple packets. Those operations proceed exactly like file transfer.)SH 6120 49896 MT (A Kermit server program waiting for a command) 117 W( packet is said to be in "server command wait". Once put into)118 W 6120 51092 MT (server command wait, the server should never leave it until) 17 W( it gets a command packet telling it to do so. This means)16 W 6120 52288 MT (that after any transaction is terminated, either normally or by any kind of error, the server must go) 193 W( back into)194 W 6120 53484 MT (command wait. While in command wait,) 62 W( a server may elect to send out periodic NAKs for packet 0, the expected)61 W 6120 54680 MT (command packet. Since the user may be disconnected from the server for long periods of) 38 W( time \050hours\051, the interval)39 W 6120 55876 MT (between these NAKs should be significantly) 6 W( longer than the normal timeout interval \050say, 30-60 seconds, rather than)5 W 6120 57072 MT (5-10\051. The) 372 W( periodic NAKs are useful for breaking the deadlock that would) 61 W( occur if a local program was unable to)62 W 6120 58268 MT (time out, and sent a command that was lost. On the other hand, they can cause problems for) 28 W( local Kermit programs)27 W 6120 59464 MT (that cannot clear their input buffers,) 11 W( or for systems that do XON/XOFF blindly, causing the NAKs to buffered in the)12 W 6120 60660 MT (server's host system output buffer, to be suddenly released en masse when an) 5 W( XON appears. For this reason, servers)4 W 6120 61856 MT (should have an option to set the command-wait wakeup interval, or to disable it altogher.)SH 6120 64248 MT (Server operation must) 100 W( be implemented in two places: in the server itself, and in any Kermit program that will be)101 W 6120 65444 MT (communicating with a server. The) 20 W( server must have code to read the server commands from packets and respond to)19 W 6120 66640 MT (them. The) 400 W( user Kermit must have code to parse the user's server-related commands, to form the server command)76 W 6120 67836 MT (packets, and to handle the responses to those server commands.)SH ES %%Page: 25 26 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 25)SH 46800 50 8280 5709 UL 12 /Times-Bold AF 8280 8004 MT (6.2.1. Server Commands)SH 10 /Times-Roman AF 8280 9946 MT (Server commands are listed below. Not all of them have been implemented, and some may never be, but) 53 W( their use)52 W 8280 11142 MT (should be reserved. Although server-mode operation is optional, certain commands should be) 11 W( implemented in every)12 W 8280 12338 MT (server. These) 345 W( include Send-Init \050S\051, Receive-Init \050R\051, and the Generic Logout \050GL\051 and/or Finish \050GF\051 commands.)47 W 8280 13534 MT (If the server) 128 W( receives a command it does not understand, or cannot execute, it should respond with an Error \050E\051)129 W 8280 14730 MT (packet containing a message like "Unimplemented Server Command") 24 W( and both sides should set the packet sequence)23 W 8280 15926 MT (number back to 0, and the server should remain in server command wait. Only a GL or GF command should)157 W 8280 17122 MT (terminate server operation.)SH 8280 19514 MT (Server commands are as follows:)SH 8280 21305 MT (S)SH 10280 XM (Send Initiate \050exchange parameters, server waits for a file\051.)SH 8280 22410 MT (R)SH 10280 XM (Receive Initiate \050ask the server to send the specified files\051.)SH 8280 23515 MT (I)SH 10280 XM (Initialize \050exchange parameters\051.)SH 8280 24620 MT (X)SH 10280 XM (Text header. Allows transfer of text to the user's screen in response to a generic or) 11 W( host command. This works)10 W 10280 25725 MT (just like file transfer except that the destination "device" is the) 20 W( screen rather than a file. Data field may contain)21 W 10280 26830 MT (a filename, title, or other heading.)SH 8280 27935 MT (C)SH 10280 XM (Host Command. The data field contains a) 81 W( string to be executed as a command by the host system command)80 W 10280 29040 MT (processor.)SH 8280 30145 MT (K)SH 10280 XM (Kermit Command. The) 63 W( data field contains a string in the interactive command language of the Kermit server)64 W 10280 31250 MT (\050normally a SET command\051 to be executed as if it were typed in at command level.)SH 8280 32355 MT (G)SH 10280 XM (Generic Kermit Command.) 61 W( Single) 371 W( character in data field \050possibly followed by operands, shown in {braces},)60 W 10280 33460 MT (optional fields in [brackets]\051 specifies the command:)SH 10280 35251 MT (I)SH 12280 XM (Login [{*user[*password[*account]]}])SH 10280 36356 MT (C)SH 12280 XM (CWD, Change Working Directory [{*directory[*password]}])SH 10280 37461 MT (L)SH 12280 XM (Logout, Bye)SH 10280 38566 MT (F)SH 12280 XM (Finish \050Shut down the server, but don't logout\051.)SH 10280 39671 MT (D)SH 12280 XM (Directory [{*filespec}])SH 10280 40776 MT (U)SH 12280 XM (Disk Usage Query [{*area}])SH 10280 41881 MT (E)SH 12280 XM (Erase \050delete\051 {*filespec})SH 10280 42986 MT (T)SH 12280 XM (Type {*filespec})SH 10280 44091 MT (R)SH 12280 XM (Rename {*oldname*newname})SH 10280 45196 MT (K)SH 12280 XM (Copy {*source*destination})SH 10280 46301 MT (W)SH 12280 XM (Who's logged in? \050Finger\051 [{*user ID or network host[*options]}])SH 10280 47406 MT (M)SH 12280 XM (Send a short Message {*destination*text})SH 10280 48511 MT (H)SH 12280 XM (Help [{*topic}])SH 10280 49616 MT (Q)SH 12280 XM (Server Status Query)SH 10280 50721 MT (P)SH 12280 XM (Program {*[program-filespec][*program-commands]})SH 10280 51826 MT (J)SH 12280 XM (Journal {*command[*argument]})SH 10280 52931 MT (V)SH 12280 XM (Variable {*command[*argument[*argument]]})SH 10280 54722 MT (Asterisk as used above \050")173 W /Courier SF (*)SH /Times-Roman SF ("\051 represents a single-character length field,) 173 W( encoded using)174 W /Courier SF 46794 XM (tochar\050\051)SH /Times-Roman SF (, for the)174 W 10280 55827 MT (operand that follows it; thus lengths) 9 W( from 0 to 94 may be specified. This allows multiple operands to be clearly)8 W 10280 56932 MT (delimited regardless of their contents.)SH 8280 58723 MT (Note that field length encoding is used within the data field of) 19 W( all Generic command packets, but not within the data)20 W 8280 59919 MT (fields of the other packets, such as S, I, R, X, K, and C.)SH 8280 62311 MT (All server commands that send arguments in their data fields should pass through the prefix encoding) 73 W( mechanism.)72 W 8280 63507 MT (Thus if a data character or length field happens) 15 W( to correspond to an active prefix character, it must itself be prefixed.)16 W 8280 64703 MT (The field length denotes the length of the field)90 W /Times-Italic SF 27893 XM (before)SH /Times-Roman SF 30788 XM (prefix encoding) 90 W( and \050hopefully\051)89 W /Times-Italic SF 44142 XM (after)SH /Times-Roman SF 46370 XM (prefix decoding. For)89 W 8280 65899 MT (example, to send a) 52 W( generic command with two fields, "ABC" and "ZZZZZZZZ", first each field would be prefixed)53 W 8280 67095 MT (by)SH /Courier SF 9598 XM (tochar\050\051)SH /Times-Roman SF 14716 XM (of its length, in this case)68 W /Courier SF 25096 XM (tochar\0503\051)SH /Times-Roman SF 30814 XM (and)SH /Courier SF 32576 XM (tochar\0508\051)SH /Times-Roman SF (, giving ")68 W /Courier SF (#ABC\050ZZZZZZZZ)SH /Times-Roman SF (". But) 384 W( ")67 W /Courier SF (#)SH /Times-Roman SF (" is)67 W 8280 68291 MT (the normal control prefix character so it must be prefixed itself, and the eight Z's can be condensed to 3) 53 W( characters)54 W 8280 69487 MT (using a repeat prefix \050if) 23 W( repeat counts are in effect\051, so the result after encoding would be ")22 W /Courier SF (##ABC\050~\050Z)SH /Times-Roman SF (" \050assuming)22 W 8280 70683 MT (the repeat prefix is tilde \050")55 W /Courier SF (~)SH /Times-Roman SF ("\051. The) 360 W( recipient would decode) 55 W( this back into the original ")56 W /Courier SF (#ABC\050ZZZZZZZZ)SH /Times-Roman SF (" before)56 W 8280 71879 MT (attempting to extract the two fields.)SH ES %%Page: 26 27 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 26)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (Since a generic command must fit into a single packet, the program sending the command) 99 W( should ensure that the)98 W 6120 9082 MT (command actually fits, and should not include length fields that point beyond the end of the packet.) 182 W( Servers,)615 W 6120 10278 MT (however, should be defensive and not attempt to process any characters beyond the end) 27 W( of the data field, even if the)26 W 6120 11474 MT (argument length field would lead them to do so.)SH 12 /Times-Bold AF 6120 14590 MT (6.2.2. Timing)SH 10 /Times-Roman AF 6120 16532 MT (Kermit does not provide a mechanism for suspending and) 33 W( continuing a transaction. This means that text sent to the)34 W 6120 17728 MT (user's screen should not be frozen for long periods \050i.e. not longer than the timeout period times the retry threshold\051.)SH 6120 20120 MT (Between transactions, when the server has no tasks) 101 W( pending, it may send out periodic NAKs \050always with type 1)100 W 6120 21316 MT (checksums\051 to prevent a deadlock in case a command was sent to it but was lost. These NAKs can) 76 W( pile up in the)77 W 6120 22512 MT (local "user" Kermit's input buffer \050if it has one\051, so the user Kermit should be prepared to) 129 W( clear its input buffer)128 W 6120 23708 MT (before sending a command to a server. Meanwhile,) 16 W( servers should recognize that some systems provide no function)17 W 6120 24904 MT (to do this \050or even when they do, the process can be foiled by system flow control firmware\051) 67 W( and should therefore)66 W 6120 26100 MT (provide a way turn off or slow down the command-wait NAKs.)SH 12 /Times-Bold AF 6120 29216 MT (6.2.3. The R Command)SH 10 /Times-Roman AF 6120 31158 MT (The R packet, generally sent by a local Kermit program whose user) 40 W( typed a GET command, tells the server to send)41 W 6120 32354 MT (the files specified by the name in the) 89 W( data field of the R packet. Since we can't assume that the two Kermits are)88 W 6120 33550 MT (running on like systems, the local \050user\051 Kermit must parse the file specification) 67 W( as a character string, send it as-is)68 W 6120 34746 MT (\050but encoded\051 to the server, and let the server take care of validating its syntax and looking up the) 27 W( file. If the server)26 W 6120 35942 MT (can open and read the specified file, it sends a Send-Init \050S\051 packet --)66 W /Times-Italic SF 34899 XM (not an acknowledgement!)67 W /Times-Roman SF 45626 XM (-- to the user, and)67 W 6120 37138 MT (then completes the file-sending transaction, as described above.)SH 6120 39530 MT (If the server cannot send the file, it should respond with an error \050E\051 packet containing a) 148 W( reason, like "File not)147 W 6120 40726 MT (found" or "Read access required".)SH 6120 43118 MT (Thus, the only two) 9 W( valid responses to a successfully received R packet are an S packet or an E packet. The R packet)10 W 6120 44314 MT (is not ACK'd.)SH 12 /Times-Bold AF 6120 47430 MT (6.2.4. The K Command)SH 10 /Times-Roman AF 6120 49372 MT (The K packet can contain a character string which the server interprets as a command in its) 218 W( own interactive)217 W 6120 50568 MT (command language. This facility is useful for achieving the same effect as a) 10 W( direct command without having to shut)11 W 6120 51764 MT (down the server, connect back to the remote system, continue) 239 W( it \050or start a new one\051, and issue the desired)238 W 6120 52960 MT (commands. The) 628 W( server) 189 W( responds with an ACK if the command was executed successfully, or an error packet)190 W 6120 54156 MT (otherwise. The) 606 W( most likely use for the) 178 W( K packet might be for transmitting SET commands, e.g. for switching)177 W 6120 55352 MT (between text and binary file modes.)SH 12 /Times-Bold AF 6120 58468 MT (6.2.5. Short and Long Replies)SH 10 /Times-Roman AF 6120 60410 MT (Any request made of a) 141 W( server may be answered in either of two ways, and any User Kermit that makes such a)142 W 6120 61606 MT (request should be prepared for either kind of reply:)SH /Symbol SF 7910 63511 MT (\267)SH /Times-Italic SF 8620 XM (A short reply)139 W /Times-Roman SF (. This) 528 W( consists of a single ACK packet, which may contain text in) 139 W( its data field. For)138 W 8620 64616 MT (instance, the user might send a disk space query to the server, and) 97 W( the server might ACK the request)98 W 8620 65721 MT (with a short character string in the data field, such) 22 W( as "12K bytes free". The user Kermit should display)21 W 8620 66826 MT (this text on the screen.)SH /Symbol SF 7910 68815 MT (\267)SH /Times-Italic SF 8620 XM (A long reply)46 W /Times-Roman SF (. This) 344 W( proceeds exactly like a file transfer \050and in some cases it may be a file transfer\051. It)47 W 8620 69920 MT (begins with one of the following:)SH 7 /Symbol AF 10548 71585 MT (\267)SH 10 /Times-Roman AF 11120 71735 MT (A File-Header \050F\051 packet \050optionally followed) 223 W( by one or more Attributes packets; these are)222 W ES %%Page: 27 28 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 27)SH 46800 50 8280 5709 UL /Times-Roman SF 13280 7886 MT (discussed later\051;)SH 7 /Symbol AF 12708 9394 MT (\267)SH 10 /Times-Roman AF 13280 9544 MT (A Text-Header \050X\051 packet.)SH 7 /Symbol AF 12708 11052 MT (\267)SH 10 /Times-Roman AF 13280 11202 MT (A Send-Init \050S\051 Packet, followed by an X or F packet.)SH 10780 12993 MT (After the X or F packet comes an arbitrary number of Data \050D\051 packets, then an) 11 W( End-Of-File \050Z\051 packet,)12 W 10780 14098 MT (and finally a Break-Transmission \050B\051 packet, as for ordinary file transfer.)SH 8280 15889 MT (A long reply should begin with an) 112 W( S packet unless an I-packet exchange has already taken place,)111 W /Times-Italic SF 49053 XM (and)SH /Times-Roman SF 50914 XM (the type 1)111 W 8280 17085 MT (\050single-character\051 block check is being used.)SH 12 /Times-Bold AF 8280 20201 MT (6.2.6. Additional Server Commands)SH 10 /Times-Roman AF 8280 22143 MT (The following server commands request the server to perform tasks) 83 W( other than sending or receiving files. Almost)84 W 8280 23339 MT (any of these can have either short or long replies. For instance, the Generic Erase) 138 W( \050GE\051 command may elicit a)137 W 8280 24535 MT (simple ACK, or a stream of packets containing the names) 226 W( of all the files it erased \050or didn't erase\051. These)227 W 8280 25731 MT (commands are now described) 148 W( in more detail; arguments are as provided in commands typed to the user Kermit)147 W 8280 26927 MT (\050subject to prefix encoding\051; no transformations to any kind of normal or canonic) 94 W( form are done -- filenames and)95 W 8280 28123 MT (other operands are in the syntax of the server's host system.)SH 8280 29914 MT (I)SH 10280 XM (Login. For) 474 W( use when) 112 W( a Kermit server is kept perpetually running on a dedicated line. This lets a new user)111 W 10280 31019 MT (obtain an identity on the server's host system. If the data field is empty, this removes) 1 W( the user's identity, so that)2 W 10280 32124 MT (the next user does not get access to it.)SH 8280 33701 MT (L)SH 10280 XM (Logout, Bye. This shuts down the) 65 W( server entirely, causing the server itself to log out its own job. This is for)64 W 10280 34806 MT (use when the server has been started up manually by the user, who) 16 W( then wishes to shut it down remotely. For a)17 W 10280 35911 MT (perpetual, dedicated server, this command simply removes the server's access rights to the current) 43 W( user's files,)42 W 10280 37016 MT (and leaves the server waiting for a new login command.)SH 8280 38593 MT (F)SH 10280 XM (Finish. This) 366 W( is to allow the user to shut down the server, putting its terminal back into normal \050as opposed to)58 W 10280 39698 MT (binary or raw\051 mode, and putting the server's job back at system) 6 W( command level, still logged in, so that the user)5 W 10280 40803 MT (can connect back to the job. For) 228 W( a perpetual, dedicated server, this command behaves as the L \050BYE\051)229 W 10280 41908 MT (command.)SH 8280 43485 MT (C)SH 10280 XM (CWD. Change) 307 W( Working Directory. This sets the default directory or area for file transfer on the server's host.)28 W 10280 44590 MT (With no operands, this command sets the default area to be the user's own default area.)SH 8280 46167 MT (D)SH 10280 XM (Directory. Send) 332 W( a directory listing to the user. The user program can display it on the terminal or store it) 41 W( in a)42 W 10280 47272 MT (file, as) 101 W( it chooses. The directory listing should contain file sizes and creation dates as well as file names, if)100 W 10280 48377 MT (possible. A) 340 W( wildcard or other file-group designator may be specified to ask) 45 W( the server list only those files that)46 W 10280 49482 MT (match. If) 250 W( no operand is given, all files in the current area should be shown.)SH 8280 51059 MT (U)SH 10280 XM (Disk Usage Query. The server) 75 W( responds with the amount of space used and the amount left free to use, in K)74 W 10280 52164 MT (bytes \050or other units, which should be specified\051.)SH 8280 53741 MT (E)SH 10280 XM (Erase \050delete\051. Delete the specified file or file group.)SH 8280 55318 MT (T)SH 10280 XM (Type. Send) 316 W( the specified file or file group, indicating \050by starting with an X packet rather than) 33 W( an F packet, or)34 W 10280 56423 MT (else by using the Type attribute\051 that the file is to be displayed on the screen, rather than stored.)SH 8280 58000 MT (R)SH 10280 XM (Rename. Change) 410 W( the name of) 80 W( the file or files as indicated. The string indicating the new name may contain)79 W 10280 59105 MT (other attributes, such as protection code, permitted in file specifications by the host.)SH 8280 60682 MT (K)SH 10280 XM (Copy. Produce) 250 W( a new copy of the file or file group, as indicated, leaving the source file\050s\051 unmodified.)SH 8280 62259 MT (W)SH 10280 XM (Who's logged in? \050Finger\051. With no arguments, list all the users who are logged in on the server's) 11 W( host system.)12 W 10280 63364 MT (If an argument is specified, provide more detailed information on the specified user or network host.)SH 8280 64941 MT (M)SH 10280 XM (Short Message. Send the given short \050single-packet\051 message to the indicated user's screen.)SH 8280 66518 MT (P)SH 10280 XM (Program. This) 318 W( command) 34 W( has two arguments, program name \050filespec\051, and command\050s\051 for the program. The)33 W 10280 67623 MT (first field is required, but) 48 W( may be left null \050i.e. zero length\051. If it is null, the currently loaded program is "fed")49 W 10280 68728 MT (the specified command. If not null, the specified program is loaded and started; if a program command is given)3 W 10280 69833 MT (it is fed to the program as an initial command \050for) 153 W( instance, as a command line argument on systems that)154 W 10280 70938 MT (support that concept\051. In any case, the output of the program is) 70 W( sent back in packets as either a long or short)69 W ES %%Page: 28 29 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 28)SH 46800 50 6120 5709 UL /Times-Roman SF 8120 7886 MT (reply, as described above.)SH 6120 9463 MT (J)SH 8120 XM (Journal. This) 250 W( command controls server transaction logging. The data field contains one of the following:)SH /Courier SF 8120 11254 MT (+)SH /Times-Roman SF 10120 XM (Begin/resume logging transactions. If a filename is given,) 70 W( close any currently open transaction and then)71 W 10120 12359 MT (open the specified file as the) 137 W( new transaction log. If no name given, but a log file was already open,)136 W 10120 13464 MT (resume logging to that file. If no filename was given) 63 W( and no log was open, the server should open a log)64 W 10120 14569 MT (with a default name, like)SH /Courier SF 20285 XM (TRANSACTION.LOG)SH /Times-Roman SF (.)SH /Courier SF 8120 16146 MT (-)SH /Times-Roman SF 10120 XM (Stop logging transactions, but don't close the current transaction log file.)SH /Courier SF 8120 17723 MT (C)SH /Times-Roman SF 10120 XM (Stop logging and close the current log.)SH /Courier SF 8120 19300 MT (S)SH /Times-Roman SF 10120 XM (Send the transaction log as a file. If it was open, close it first.)SH 8120 21091 MT (Transaction logging is the recording of the progress) 133 W( of file transfers. It should contain entries showing the)132 W 8120 22196 MT (name of each file transferred, when the transfer began and) 13 W( ended, whether it completed successfully, and if not,)14 W 8120 23301 MT (why.)SH /Courier SF 6120 24878 MT (V)SH /Times-Roman SF 8120 XM (Set or Query a variable. The)84 W /Times-Italic SF 20538 XM (command)SH /Times-Roman SF 24760 XM (can be S or Q.) 84 W( The first argument is the variable name. The second)83 W 8120 25983 MT (argument, if any, is the value.)SH 8120 27774 MT (S)SH 10120 XM (Set the specified variable to the specified) 105 W( value. If the value is null, then undefine the variable. If the)106 W 10120 28879 MT (variable is null then do nothing.) 48 W( If) 345 W( the variable did not exist before, create it. The server should respond)47 W 10120 29984 MT (with an ACK if successful, and Error packet otherwise.)SH 8120 31561 MT (Q)SH 10120 XM (Query the value of the named variable. If no variable is supplied, display the value of all) 22 W( active variables.)23 W 10120 32666 MT (The server responds with either a short or long) 71 W( reply, as described above. If a queried variable does not)70 W 10120 33771 MT (exist, a null value is returned.)SH 8120 35562 MT (Variables are named by character strings, and have) 104 W( character string values, which may be static or dynamic.)105 W 8120 36667 MT (For instance, a server might have built-in variables like "system name" which never changes, or others) 128 W( like)127 W 8120 37772 MT ("mail status" which, when queried, cause the server to check to see if the user has any new mail.)SH 12 /Times-Bold AF 6120 40888 MT (6.2.7. Host Commands)SH 10 /Times-Roman AF 6120 42830 MT (Host commands are conceptually simple, but may be hard to implement on some systems. The C packet contains) 35 W( a)36 W 6120 44026 MT (text string in its data field which is simply fed to the server's host system command processor; any output from) 43 W( the)42 W 6120 45222 MT (processor is sent back to the user in Kermit packets, as either a short or long reply.)SH 6120 47614 MT (Implementation of this facility under UNIX, with its forking process structure and i/o redirection via pipes, is quite)49 W 6120 48810 MT (natural. On) 250 W( other systems, it could be virtually impossible.)SH 12 /Times-Bold AF 6120 51926 MT (6.2.8. Exchanging Parameters Before Server Commands)SH 10 /Times-Roman AF 6120 53868 MT (In basic Kermit, the Send-Init exchange is always) 33 W( sufficient to configure the two sides to each other. During server)32 W 6120 55064 MT (operation, on the other hand, some transactions may not begin with a Send-Init packet. For instance,) 35 W( when the user)36 W 6120 56260 MT (sends an R packet to ask the server to send a file, the server chooses what block check option) 36 W( to use. Or if the user)35 W 6120 57456 MT (requests a directory listing, the server does not know what packet length to use.)SH 6120 59848 MT (The solution to this problem is the "I" \050Init-Info\051 packet. It is exactly like) 64 W( a Send-Init packet, and the ACK works)65 W 6120 61044 MT (the same way too. However, receipt of an I packet does not) 184 W( cause transition to file-send state. The I-packet)183 W 6120 62240 MT (exchange simply allows the two sides to set their parameters, in preparation for the next transaction.)SH 6120 64632 MT (Servers should be able to receive and ACK "I" packets when in server command wait. User) 37 W( Kermits need not send)38 W 6120 65828 MT ("I" packets, however; in that case, the server will assume all the defaults for the user listed) 37 W( on page 21, or whatever)36 W 6120 67024 MT (parameters have been set by other means \050e.g. SET commands typed to the server before it was put in server mode\051.)SH 6120 69416 MT (User Kermits which send) 5 W( I packets should be prepared to receive and ignore an Error packet in response. This could)6 W 6120 70612 MT (happen if the server has not implemented I packets.)SH ES %%Page: 29 30 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 29)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (The I packet, together with its ACK, constitute a complete transaction, separate from) 12 W( the S-packet or other exchange)11 W 8280 9082 MT (that follows it. The packet number remains at zero after the I-packet exchange.)SH 14 /Times-Bold AF 8280 12684 MT (6.3. Alternate Block Check Types)SH 10 /Times-Roman AF 8280 14802 MT (There are two optional kinds of block checks:)SH 8280 16593 MT (Type 2)SH 2805 50 8280 16793 UL 10280 17698 MT (A two-character checksum based on) 42 W( the low order 12 bits of the arithmetic sum of the characters in the packet)41 W 10280 18803 MT (\050from the LEN field through the last data character, inclusive\051 as follows:)SH /Courier SF 18080 20458 MT (1 2)7800 W 12680 21489 MT (--------+----------------+---------------+)SH 12680 22520 MT (...data | tochar\050b6-b11\051 | tochar\050b0-b5\051 |)SH 12680 23551 MT (--------+----------------+---------------+)SH /Times-Roman SF 10280 25268 MT (For instance, if the 16-bit result is 154321 \050octal\051, then the 2 character block check would be ")SH /Courier SF (C1)SH /Times-Roman SF (".)SH 8280 26845 MT (Type 3)SH 2805 50 8280 27045 UL 10280 27950 MT (Three-character 16-bit CRC-CCITT.) 119 W( The CRC calculation treats the data it operates upon as a string of bits)118 W 10280 29055 MT (with the low order bit of the first character first and the high order bit of) 1 W( the last character last. The initial value)2 W 10280 30160 MT (of the CRC is taken as 0;) 64 W( the 16-bit CRC is the remainder after dividing the data bit string by the polynomial)63 W 8 SS 10891 30928 MT (16)SH 12866 XM (12)SH 14841 XM (5)SH 10 /Times-Italic AF 10280 31273 MT (X)SH /Times-Roman SF 11691 XM (+)SH /Times-Italic SF (X)SH /Times-Roman SF 13666 XM (+)SH /Times-Italic SF (X)SH /Times-Roman SF 15241 XM (+1 \050this calculation can actually be done a) 241 W( character at a time, using a simple table lookup)242 W 10280 32378 MT (algorithm\051. The) 250 W( result is represented as three printable characters at the end of the packet, as follows:)SH /Courier SF 18080 34033 MT (1 2) 8400 W( 3)7800 W 12680 35064 MT (--------+-----------------+----------------+---------------+)SH 12680 36095 MT (...data | tochar\050b12-b15\051 | tochar\050b6-b11\051 | tochar\050b0-b5\051 |)SH 12680 37126 MT (--------+-----------------+----------------+---------------+)SH /Times-Roman SF 10280 38843 MT (For instance, if the 16-bit result) 20 W( is 154321 \050octal\051, then the 3 character block check would be ")19 W /Courier SF (-C1)SH /Times-Roman SF (". The) 288 W( CRC)19 W 10280 39948 MT (technique chosen here agrees with many hardware implementations \050e.g. the VAX CRC instruction\051.)SH 8280 41739 MT (Here is an algorithm for Kermit's CRC-CCITT calculation:)SH /Courier SF 11880 43394 MT (crc = 0)SH /Courier-Oblique SF 37080 XM (Start CRC off at 0)SH /Courier SF 11880 44425 MT (i = )SH /Courier-Oblique SF 37080 XM (First byte to include)SH /Courier SF 9480 46080 MT (A: c) 600 W( = )SH /Courier-Oblique SF 37080 XM (Get current byte)SH /Courier SF 11880 47111 MT (if \050parity not NONE\051 then c = c AND 127;)SH /Courier-Oblique SF 37080 XM (Mask off any parity bit)SH /Courier SF 11880 48142 MT (q = \050crc XOR c\051 AND 15;)SH /Courier-Oblique SF 37080 XM (Do low-order 4 bits)SH /Courier SF 11880 49173 MT (crc = \050crc / 16\051 XOR \050q * 4225\051;)SH 11880 50204 MT (q = \050crc XOR \050c / 16\051\051 AND 015;)SH /Courier-Oblique SF 37080 XM (And high 4 bits)SH /Courier SF 11880 51235 MT (crc = \050crc / 16\051 XOR \050q * 4225\051;)SH 11880 52266 MT (i = i + 1)SH /Courier-Oblique SF 37080 XM (Position of next byte)SH /Courier SF 11880 53297 MT (LEN = LEN - 1)SH /Courier-Oblique SF 37080 XM (Decrement packet length)SH /Courier SF 11880 54328 MT (if \050LEN > 0\051 goto A)SH /Courier-Oblique SF 37080 XM (Loop till done)SH 9480 55983 MT (At this point, the)SH /Courier SF 20880 XM (crc)SH /Courier-Oblique SF 23280 XM (variable contains the desired quantity.)SH /Times-Roman SF 8280 57700 MT (Thanks to Andy Lowry of Columbia's) 90 W( CS department for this "tableless" CRC algorithm \050actually, it uses a table)91 W 8280 58896 MT (with one entry -- 4225\051.)78 W /Courier SF 18774 XM (AND)SH /Times-Roman SF 20902 XM (is the bitwise AND operation,)78 W /Courier SF 33513 XM (XOR)SH /Times-Roman SF 35641 XM (the bitwise exclusive OR, ")78 W /Courier SF (*)SH /Times-Roman SF (" is) 78 W( multiplication,)77 W 8280 60092 MT (and ")SH /Courier SF (/)SH /Times-Roman SF (" signifies integer division \050")SH /Courier SF (crc / 16)SH /Times-Roman SF (" is equivalent to shifting the)SH /Courier SF 39117 XM (crc)SH /Times-Roman SF 41167 XM (quantity 4 bits to the right\051.)SH 8280 62484 MT (The single-character checksum has proven) 89 W( quite adequate in practice. The other options can be used only if both)90 W 8280 63680 MT (sides agree to do so via Init packet \050S or I\051 exchange.) 10 W( The) 269 W( 2 and 3 character block checks should only be used under)9 W 8280 64876 MT (conditions of severe line noise and packet corruption.)SH 8280 67268 MT (Since type 2 and 3 block) 5 W( checks are optional, not all Kermits can be expected to understand them. Therefore, during)6 W 8280 68464 MT (initial connection, communication must begin using the type 1 block check. If type 2) 49 W( or 3 block checks are agreed)48 W 8280 69660 MT (to during the "I" or "S" packet) 90 W( exchange, the switch will occur)91 W /Times-Italic SF 34577 XM (only after)91 W /Times-Roman SF 38870 XM (the Send-Init has been sent and ACK'd)91 W 8280 70856 MT (with a type 1 block check.) 25 W( This) 299 W( means that the first packet with a type 2 or 3 block check must always be an "F" or)24 W ES %%Page: 30 31 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 30)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT ("X" packet. Upon completion of a transaction, both sides must) 122 W( switch back to type 1 \050to allow for the fact that)123 W 6120 9082 MT (neither side has any way of knowing when the other side has been stopped) 70 W( and restarted\051. The transaction is over)69 W /Times-Italic SF 6120 10278 MT (after)SH /Times-Roman SF 8291 XM (a "B" or "E" packet has been sent and) 32 W( ACK'd, or after any error that terminates the transaction prematurely or)33 W 6120 11474 MT (abnormally.)SH 6120 13866 MT (A consequence of the foregoing rule is that if a type 2 or 3 block check is to) 24 W( be used, a long reply sent by the server)23 W /Times-Italic SF 6120 15062 MT (must)SH /Times-Roman SF 8320 XM (begin with a Send-Init \050S\051 packet, even if an I packet exchange had already occurred. If) 61 W( type 1 block checks)62 W 6120 16258 MT (are being used, the S packet can be skipped and the transfer can start with an X or F packet.)SH 6120 18650 MT (A server that has completed a) 112 W( transaction and is awaiting a new command may send out periodic NAKs for that)111 W 6120 19846 MT (command \050packet 0\051. Those NAKs must have type 1 block checks.)SH 6120 22238 MT (The use of alternate block check types can cause certain complications. For instance, if the server gets) 85 W( a horrible)86 W 6120 23434 MT (error \050so bad that it doesn't even send an error packet\051 and reverts to command wait, sending NAKs for packet) 92 W( 0)91 W 6120 24630 MT (using a type 1) 21 W( block check, while a transfer using type 2 or 3 block checks was in progress, neither side will be able)22 W 6120 25826 MT (to read the other's packets. Communication can also grind) 76 W( to a halt if A sends a Send-Init requesting, say, type 3)75 W 6120 27022 MT (block checks, B ACKs the request, switches to type 3 and) 18 W( waits for the X or F packet with a type 3 block check, but)19 W 6120 28218 MT (the ACK was lost, so A resends the S packet with a type 1) 47 W( block check. Situations like this will ultimately resolve)46 W 6120 29414 MT (themselves after the two sides retransmit up to their) 69 W( retry threshhold, but can be rectified earlier by the use of two)70 W 6120 30610 MT (heuristics:)SH /Symbol SF 7910 32515 MT (\267)SH /Times-Roman SF 8620 XM (The packet reader can assume that if the packet type is "S", the block check type is 1.)SH /Symbol SF 7910 34173 MT (\267)SH /Times-Roman SF 8620 XM (A NAK packet never has anything in its data field. Therefore,) 138 W( the block check type can always be)137 W 8620 35278 MT (deduced by the packet reader from the length field of a NAK. In fact, it) 39 W( is the value of the length field)40 W 8620 36383 MT (minus 2. A NAK can therefore be thought of as a kind of "universal synchronizer".)SH 6120 38174 MT (These heuristics tend to violate the layered nature of the protocol, since the packet reader) 22 W( should normally be totally)21 W 6120 39370 MT (unconcerned with the packet type \050which is of) 42 W( interest to the application level which invokes the packet reader\051. A)43 W 6120 40566 MT (better design would have had each packet include an indicator of the type of) 63 W( its own block check; this would have)62 W 6120 41762 MT (allowed the block check type to be changed dynamically during) 52 W( a transaction to adapt to changing conditions. But)53 W 6120 42958 MT (it's too late for that now...)SH 14 /Times-Bold AF 6120 46560 MT (6.4. Interrupting a File Transfer)SH 10 /Times-Roman AF 6120 48678 MT (This section describes an optional feature of the Kermit protocol to allow graceful interruption of file transfer.) 28 W( This)305 W 6120 49874 MT (feature is unrelated to server operation.)SH 6120 52266 MT (To interrupt sending a file, send an EOF \050"Z"\051 packet in place of the next) 28 W( data packet, including a "D" \050for Discard\051)29 W 6120 53462 MT (in the data field. The recipient ACKs the Z packet) 89 W( normally, but does not retain the file. This does not interfere)88 W 6120 54658 MT (with older Kermits on the receiving end; they) 80 W( will not inspect the data field and will close the file normally. The)81 W 6120 55854 MT (mechanism can be triggered by typing an interrupt character at the console of the sending) 116 W( Kermit program. If a)115 W 6120 57050 MT (\050wildcard\051 file group is being) 37 W( sent, it is possible to skip to the next file or to terminate the entire batch; the protocol)38 W 6120 58246 MT (is the same) 45 W( in either case, but the desired action could be selected by different interrupt characters, e.g. CTRL-X to)44 W 6120 59442 MT (skip the current file, CTRL-Z to skip the rest of the batch.)SH 6120 61834 MT (To interrupt receiving) 87 W( a file, put an "X" in the data field of an ACK for a Data packet. To interrupt receiving an)88 W 6120 63030 MT (entire file group, use a "Z". The) 66 W( user could trigger this mechanism by typing an interrupt character, say, CTRL-X)65 W 6120 64226 MT (and CTRL-Z, respectively,) 109 W( at the receiving Kermit's console. A sender that was aware of the new feature, upon)110 W 6120 65422 MT (finding one of these codes, would act as described above, i.e. send a "Z") 59 W( packet with a "D" code; a sender that did)58 W 6120 66618 MT (not implement this feature) 20 W( would simply ignore the codes and continue sending. In this case, and if the user wanted)21 W 6120 67814 MT (the whole batch to be cancelled \050or only one file was being) 67 W( sent\051, the receiving Kermit program, after determining)66 W 6120 69010 MT (that the sender had ignored the "X" or "Z" code, could send an Error \050E\051 packet to stop the transfer.)SH 6120 71402 MT (The sender may also choose to send a Z packet) 127 W( containing the D code when it detects that the file it is sending)128 W ES %%Page: 31 32 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 31)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (cannot be sent correctly and completely -- for) 129 W( instance, after sending some packets correctly, it gets an i/o error)128 W 8280 9082 MT (reading the file. Or, it notices that the "8th bit" of a file byte is set when the file is being sent as) 55 W( a text file and no)56 W 8280 10278 MT (provision has been made for transmitting the 8th bit.)SH 14 /Times-Bold AF 8280 13880 MT (6.5. Transmitting File Attributes)SH 10 /Times-Roman AF 8280 15998 MT (The optional Attributes \050A\051 packet provides a mechanism for) 66 W( the sender of a file to provide additional information)65 W 8280 17194 MT (about it. This packet can be sent if the receiver has indicated its ability to process it by setting the Attributes bit) 47 W( in)48 W 8280 18390 MT (the capability mask. If both sides set this bit in) 156 W( the Kermit capability mask, then the sender, after sending the)155 W 8280 19586 MT (filename in the "F" packet and receiving an acknowledgement, may \050but does not have to\051 send an "A") 94 W( packet to)95 W 8280 20782 MT (provide file attribute information.)SH 8280 23174 MT (Setting the Attributes bit in the capability) 53 W( mask does)52 W /Times-Italic SF 30004 XM (not)SH /Times-Roman SF 31584 XM (indicate support for any particular attributes, only that the)52 W 8280 24370 MT (receiver is prepared to accept the "A" packet.)SH 8280 26762 MT (The attributes are given in the data field of the "A" packet.) 85 W( The) 422 W( data field consists of 0 or more subfields, which)86 W 8280 27958 MT (may occur in any order. Each subfield is of the following form:)SH /Courier SF 10680 29613 MT (+-----------+----------------+------+)SH 10680 30644 MT (| ATTRIBUTE | tochar\050LENGTH\051 | DATA |)SH 10680 31675 MT (+-----------+----------------+------+)SH /Times-Roman SF 8280 33392 MT (where)SH 8280 35183 MT (ATTRIBUTE)SH 13280 36288 MT (is a single printable character other than space,)SH 8280 37865 MT (LENGTH)SH 13280 XM (is the length of the data characters \0500 to 94\051, with 32 added to produce a single printable character, and)SH 8280 39442 MT (DATA)SH 13280 XM (is)SH /Times-Italic SF 14197 XM (length)SH /Times-Roman SF 16947 XM (characters worth of data, all printable characters.)SH 8280 41233 MT (No quoting or prefixing is done on any of this data.)SH 8280 43625 MT (More than one attribute packet may be sent. The only requirement is that all) 218 W( the A packets for a file must)219 W 8280 44821 MT (immediately follow its File header \050or X\051 packet, and precede the first Data packet.)SH 8280 47213 MT (There may be 93 different attributes, one for each of the 93 printable ASCII characters) 41 W( other than space. These are)40 W 8280 48409 MT (assigned in ASCII order.)SH /Courier SF 8280 50200 MT (!)SH /Times-Roman SF 9130 XM (\050ASCII 33\051)SH 13280 51305 MT (Length. The) 324 W( data field gives the length in K) 37 W( \0501024\051 bytes, as a printable decimal number, e.g. "!#109".)36 W 13280 52410 MT (This will allow the receiver to) 24 W( determine in advance whether there is sufficient room for the file, and/or)25 W 13280 53515 MT (how long the transfer will take.)SH /Courier SF 8280 55092 MT (")SH /Times-Roman SF 9130 XM (\050ASCII 34\051)SH 13280 56197 MT (Type. The) 478 W( data field can contain some indicator of the nature of the file.) 114 W( Operands) 480 W( are enclosed in)115 W 13280 57302 MT ({braces}, optional items in [brackets]. The braces and brackets do not actually appear in the packet.)SH 13280 59093 MT (A[{xx}])SH 17280 XM (ASCII text, containing no 8-bit quantities, logical records \050lines\051 delimited) 132 W( by the \050quoted\051)131 W 17280 60198 MT (control character sequence) 36 W( {xx}, represented here by its printable counterpart \050MJ = CRLF, J)37 W 17280 61303 MT (= LF, etc\051. For instance AMJ means that the appearance of)11 W /Courier SF 41415 XM (#M#J)SH /Times-Roman SF 44076 XM (\050the normal prefixed CRLF)11 W 17280 62408 MT (sequence\051 in a file data packet indicates the end of a record,) 150 W( assuming the current control)151 W 17280 63513 MT (prefix is ")SH /Courier SF (#)SH /Times-Roman SF (". If) 250 W( {xx} is omitted, MJ will be assumed.)SH 13280 65090 MT (B[{xx}])SH 17280 XM (Binary. {xx}) 250 W( indicates in what manner the file is binary:)SH 17280 66881 MT (8)SH 19280 XM (\050default\051 The file is a sequence of 8-bit) 104 W( bytes, which must be saved as is. The 8th bit)103 W 19280 67986 MT (may be sent "bare",) 209 W( or prefixed according to the Send-Init negotiation about 8th-bit)210 W 19280 69091 MT (prefixing.)SH 17280 70668 MT (36)SH 19280 XM (The file is a PDP-10 format binary file, in which five 7-bit bytes) 77 W( are fit into one 36-bit)76 W 19280 71773 MT (word, with the final bit of each word being represented) 91 W( as the "parity bit" of every 5th)92 W ES %%Page: 32 33 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 32)SH 46800 50 6120 5709 UL /Times-Roman SF 17120 7886 MT (character \050perhaps prefixed\051.)SH 11120 9677 MT (D{x})SH /Times-Italic SF 15120 XM (Moved from here to FORMAT attribute)SH /Times-Roman SF 11120 11254 MT (F{x})SH /Times-Italic SF 15120 XM (Moved from here to FORMAT attribute)SH /Times-Roman SF 11120 12831 MT (I[{x}])SH 15120 XM (Image. The) 478 W( file is being sent exactly as it is represented on the system of origin. For use)114 W 15120 13936 MT (between like systems. There are {x} usable bits per character, before prefixing. For) 14 W( instance,)15 W 15120 15041 MT (to send binary data from) 48 W( a system with 9-bit bytes, it might be convenient to send three 6-bit)47 W 15120 16146 MT (characters for every two 9-bit bytes. Default {x} is 8.)SH /Courier SF 6120 17937 MT (#)SH /Times-Roman SF 6970 XM (\050ASCII 35\051)SH 11120 19042 MT (Creation Date, expressed as ")289 W /Courier SF ([yy]yymmdd[ hh:mm[:ss]])289 W /Times-Roman SF (" \050ISO standard date format\051, e.g.)288 W /Courier SF 11120 20147 MT (831009 23:59)SH /Times-Roman SF (. The) 352 W( time is) 51 W( optional; if given, it should be in 24-hour format, and the seconds may)52 W 11120 21252 MT (be omitted, and a single space should separate the time from the date.)SH /Courier SF 6120 22829 MT ($)SH /Times-Roman SF 6970 XM (\050ASCII 36\051)SH 11120 23934 MT (Creator's ID, expressed as a character string of the given length.)SH /Courier SF 6120 25511 MT (%)SH /Times-Roman SF 6970 XM (\050ASCII 37\051)SH 11120 26616 MT (Account to charge the file to, character string.)SH /Courier SF 6120 28193 MT (&)SH /Times-Roman SF 6970 XM (\050ASCII 38\051)SH 11120 29298 MT (Area in which to store the file, character string.)SH /Courier SF 6120 30875 MT (')SH /Times-Roman SF 6970 XM (\050ASCII 39\051)SH 11120 31980 MT (Password for above, character string.)SH /Courier SF 6120 33557 MT (\050)SH /Times-Roman SF 6970 XM (\050ASCII 40\051)SH 11120 34662 MT (Block Size. The file has, or is to be stored with, the given block size.)SH /Courier SF 6120 36239 MT (\051)SH /Times-Roman SF 6970 XM (\050ASCII 41\051)SH 11120 37344 MT (Access:)SH 11120 39135 MT (N)SH 13120 XM (New, the normal case -- create a new file of the given name.)SH 11120 40240 MT (S)SH 13120 XM (Supersede \050overwrite\051 any file of the same name.)SH 11120 41345 MT (A)SH 13120 XM (Append to file of the given name.)SH /Courier SF 6120 43136 MT (*)SH /Times-Roman SF 6970 XM (\050ASCII 42\051)SH 11120 44241 MT (Encoding:)SH 11120 46032 MT (A)SH 13120 XM (ASCII, normal ASCII encoding with any necessary prefixing, etc.)SH 11120 47137 MT (H)SH 13120 XM (Hexadecimal "nibble" encoding.)SH 11120 48242 MT (E)SH 13120 XM (EBCDIC \050sent as if it were a binary file\051.)SH 11120 49347 MT (X)SH 13120 XM (Encrypted.)SH 11120 50452 MT (Q{x})SH 13120 51557 MT (Huffman Encoded for compression. First)SH /Times-Italic SF 30034 XM (x)SH /Times-Roman SF 30728 XM (bytes of the file are the key.)SH /Courier SF 6120 53348 MT (+)SH /Times-Roman SF 6970 XM (\050ASCII 43\051)SH 11120 54453 MT (Disposition \050operands are specified in the syntax of the receiver's host system\051:)SH 11120 56244 MT (M{user\050s\051})SH 19120 XM (Send the file as Mail to the specified user\050s\051.)SH 11120 57821 MT (O{destination})SH 19120 XM (Send the file as a lOng) 42 W( terminal message to the specified destination \050terminal, job,)43 W 19120 58926 MT (or user\051.)SH 11120 60503 MT (S[{options}])SH 19120 XM (Submit the file as a batch job, with any specified options.)SH 11120 62080 MT (P[{options}])SH 19120 XM (Print the file on) 82 W( a system printer, with any specified options, which may specify a)81 W 19120 63185 MT (particular printer, forms, etc.)SH 11120 64762 MT (T)SH 19120 XM (Type the file on the screen.)SH 11120 66339 MT (L[{aaa}])SH 19120 XM (Load the file into memory at the given address, if any.)SH 11120 67916 MT (X[{aaa}])SH 19120 XM (Load the file into memory at the given address and eXecute it.)SH 11120 69493 MT (A)SH 19120 XM (Archive the file; save) 35 W( the file together with the attribute packets that preceded it, so)36 W 19120 70598 MT (that it) 81 W( can be sent back to the system of origin with all its attributes intact. A file)80 W 19120 71703 MT (stored in this way) 62 W( should be specially marked so that the Kermit that sends it back)63 W ES %%Page: 33 34 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 33)SH 46800 50 8280 5709 UL /Times-Roman SF 21280 7886 MT (will recognize the attribute information as distinct from the file data.)SH 8280 9677 MT (, \050ASCII 44\051)SH 13280 10782 MT (Protection. Protection) 620 W( code for the file, in the syntax of the receiver's host file system.) 185 W( With) 622 W( no)186 W 13280 11887 MT (operand, store according to the system's default protection for the destination area.)SH 8280 13464 MT (- \050ASCII 45\051)SH 13280 14569 MT (Protection. Protection) 298 W( code) 24 W( for the file with respect to the "public" or "world", expressed generically in)25 W 13280 15674 MT (a 6-bit quantity \050made printable by)SH /Courier SF 27445 XM (tochar\050\051)SH /Times-Roman SF (\051, in which the bits have the following meaning:)SH 13280 17465 MT (b0:)SH 15280 XM (Read Access)SH 13280 18570 MT (b1:)SH 15280 XM (Write Access)SH 13280 19675 MT (b2:)SH 15280 XM (Execute Access)SH 13280 20780 MT (b3:)SH 15280 XM (Append Access)SH 13280 21885 MT (b4:)SH 15280 XM (Delete Access)SH 13280 22990 MT (b5:)SH 15280 XM (Directory Listing)SH 13280 24781 MT (A one in the bit position means allow the corresponding type of access, a zero means prohibit it. For)76 W 13280 25886 MT (example, the letter "E" in this field would allow read, execute, and directory listing access)414 W 13280 26991 MT (\050)SH /Courier SF (unchar\050"E"\051 = 69-32 = 37 = 100101)SH /Times-Roman SF 33663 XM (binary\051.)SH 8280 28568 MT (. \050ASCII 46\051)SH 13280 29673 MT (Machine and operating system of origin. This is useful in conjunction with) 157 W( the archive disposition)158 W 13280 30778 MT (attribute. It) 258 W( allows a file, once archived,) 4 W( to be transferred among different types of systems, retaining its)3 W 13280 31883 MT (archive status, until it finds its way to a machine with the right characteristics to de-archive it. The)125 W 13280 32988 MT (systems are denoted by codes; the first character is) 58 W( the major system designator, the second designates)57 W 13280 34093 MT (the specific model or operating system. A third character may) 3 W( be added to make further distinctions, for)4 W 13280 35198 MT (instance operating system version. The systems below) 69 W( do not form a complete collection; many more)68 W 13280 36303 MT (can and probably will be added.)SH 13280 38094 MT (A)SH 15280 XM (Apple microcomputers)SH 15280 39885 MT (1)SH 17280 XM (Apple II, DOS)SH 15280 40990 MT (2)SH 17280 XM (Apple III)SH 15280 42095 MT (3)SH 17280 XM (Macintosh)SH 15280 43200 MT (4)SH 17280 XM (Lisa)SH 13280 44991 MT (B)SH 15280 XM (Sperry \050Univac\051 mainframes)SH 15280 46782 MT (1)SH 17280 XM (1100 series, EXEC)SH 15280 47887 MT (2)SH 17280 XM (9080, VS9)SH 13280 49678 MT (C)SH 15280 XM (CDC mainframes)SH 15280 51469 MT (1)SH 17280 XM (Cyber series, NOS)SH 15280 52574 MT (2)SH 17280 XM (Cyber series, NOS-BE)SH 15280 53679 MT (3)SH 17280 XM (Cyber series, NOS-VE)SH 15280 54784 MT (4)SH 17280 XM (Cyber series, SCOPE)SH 13280 56575 MT (D)SH 15280 XM (DEC Systems)SH 15280 58366 MT (1)SH 17280 XM (DECsystem-10/20, TOPS-10)SH 15280 59471 MT (2)SH 17280 XM (DECsystem-10/20, TOPS-20)SH 15280 60576 MT (3)SH 17280 XM (DECsystem-10/20, TENEX)SH 15280 61681 MT (4)SH 17280 XM (DECsystem-10/20, ITS)SH 15280 62786 MT (5)SH 17280 XM (DECsystem-10/20, WAITS)SH 15280 63891 MT (6)SH 17280 XM (DECsystem-10/20, MAXC)SH 15280 64996 MT (7)SH 17280 XM (VAX-11, VMS)SH 15280 66101 MT (8)SH 17280 XM (PDP-11, RSX-11)SH 15280 67206 MT (9)SH 17280 XM (PDP-11, IAS)SH 15280 68311 MT (A)SH 17280 XM (PDP-11, RSTS/E)SH 15280 69416 MT (B)SH 17280 XM (PDP-11, RT-11)SH 15280 70521 MT (C)SH 17280 XM (Professional-300, P/OS)SH 15280 71626 MT (D)SH 17280 XM (Word Processor \050WPS or DECmate\051, WPS)SH ES %%Page: 34 35 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 34)SH 46800 50 6120 5709 UL /Times-Roman SF 11120 7886 MT (E)SH 13120 XM (Honeywell mainframes)SH 13120 9677 MT (1)SH 15120 XM (MULTICS systems)SH 13120 10782 MT (2)SH 15120 XM (DPS series, running CP-6)SH 13120 11887 MT (3)SH 15120 XM (DPS series, GCOS)SH 13120 12992 MT (4)SH 15120 XM (DTSS)SH 11120 14783 MT (F)SH 13120 XM (Data General machines)SH 13120 16574 MT (1)SH 15120 XM (RDOS)SH 13120 17679 MT (2)SH 15120 XM (AOS)SH 13120 18784 MT (3)SH 15120 XM (AOS/VS)SH 11120 20575 MT (G)SH 13120 XM (PR1ME machines, PRIMOS)SH 11120 22233 MT (H)SH 13120 XM (Hewlett-Packard machines)SH 13120 24024 MT (1)SH 15120 XM (HP-1000, RTE)SH 13120 25129 MT (2)SH 15120 XM (HP-3000, MPE)SH 11120 26920 MT (I)SH 13120 XM (IBM 370-series and compatible mainframes)SH 13120 28711 MT (1)SH 15120 XM (VM/CMS)SH 13120 29816 MT (2)SH 15120 XM (MVS/TSO)SH 13120 30921 MT (3)SH 15120 XM (DOS)SH 13120 32026 MT (4)SH 15120 XM (MUSIC)SH 13120 33131 MT (5)SH 15120 XM (GUTS)SH 13120 34236 MT (6)SH 15120 XM (MTS)SH 11120 36027 MT (J)SH 13120 XM (Tandy microcomputers, TRSDOS)SH 11120 37685 MT (K)SH 13120 XM (Atari computers)SH 13120 39476 MT (1)SH 15120 XM (Home computers, DOS)SH 13120 40581 MT (2)SH 15120 XM (ST series)SH 11120 42372 MT (L)SH 13120 XM (Commodore micros)SH 13120 44163 MT (1)SH 15120 XM (Pet)SH 13120 45268 MT (2)SH 15120 XM (64)SH 13120 46373 MT (3)SH 15120 XM (Amiga)SH 11120 48164 MT (M)SH 13120 XM (Miscellaneous mainframes and minis with proprietary operation systems:)SH 13120 49955 MT (1)SH 15120 XM (Gould/SEL minis, MPX)SH 13120 51060 MT (2)SH 15120 XM (Harris, VOS)SH 13120 52165 MT (3)SH 15120 XM (Perkin-Elmer minis, OS/32)SH 13120 53270 MT (4)SH 15120 XM (Prime, Primos)SH 13120 54375 MT (5)SH 15120 XM (Tandem, Nonstop)SH 13120 55480 MT (6)SH 15120 XM (Cray, CTSS)SH 13120 56585 MT (7)SH 15120 XM (Burroughs \050subtypes may be necessary here\051)SH 13120 57690 MT (8)SH 15120 XM (GEC 4000, OS4000)SH 13120 58795 MT (9)SH 15120 XM (ICL machines)SH 13120 59900 MT (A)SH 15120 XM (Norsk Data, Sintran III)SH 13120 61005 MT (B)SH 15120 XM (Nixdorf machines)SH 11120 62796 MT (N)SH 13120 XM (Miscellaneous micros and workstations:)SH 13120 64587 MT (1)SH 15120 XM (Acorn BBC Micro)SH 13120 65692 MT (2)SH 15120 XM (Alpha Micro)SH 13120 66797 MT (3)SH 15120 XM (Apollo Aegis)SH 13120 67902 MT (4)SH 15120 XM (Convergent, Burroughs, and similar systems with CTOS, BTOS)SH 13120 69007 MT (5)SH 15120 XM (Corvus, CCOS)SH 13120 70112 MT (6)SH 15120 XM (Cromemco, CDOS)SH 13120 71217 MT (7)SH 15120 XM (Intel x86/3x0, iRMX-x86)SH ES %%Page: 35 36 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 35)SH 46800 50 8280 5709 UL /Times-Roman SF 15280 7886 MT (8)SH 17280 XM (Intel MDS, ISIS)SH 15280 8991 MT (9)SH 17280 XM (Luxor ABC-800, ABCDOS)SH 15280 10096 MT (A)SH 17280 XM (Perq)SH 15280 11201 MT (B)SH 17280 XM (Motorola, Versados)SH 13280 12992 MT (O-T)SH /Times-Italic SF 15280 XM (Reserved)SH /Times-Roman SF 13280 14650 MT (U)SH 15280 XM (Portable Operating or File Systems)SH 15280 16441 MT (1)SH 17280 XM (UNIX)SH 15280 17546 MT (2)SH 17280 XM (Software Tools)SH 15280 18651 MT (3)SH 17280 XM (CP/M-80)SH 15280 19756 MT (4)SH 17280 XM (CP/M-86)SH 15280 20861 MT (5)SH 17280 XM (CP/M-68K)SH 15280 21966 MT (6)SH 17280 XM (MP/M)SH 15280 23071 MT (7)SH 17280 XM (Concurrent CP/M)SH 15280 24176 MT (8)SH 17280 XM (MS-DOS)SH 15280 25281 MT (9)SH 17280 XM (UCSD p-System)SH 15280 26386 MT (A)SH 17280 XM (MUMPS)SH 15280 27491 MT (B)SH 17280 XM (LISP)SH 15280 28596 MT (C)SH 17280 XM (FORTH)SH 15280 29701 MT (D)SH 17280 XM (OS-9)SH 8280 31492 MT (/ \050ASCII 47\051)SH 13280 32597 MT (Format of the data within the packets.)SH 13280 34388 MT (A{xx})SH 21280 XM (Variable length delimited records, terminated by the) 289 W( character sequence {xx},)288 W 21280 35493 MT (where xx is a string of one or more control characters, represented here) 143 W( by their)144 W 21280 36598 MT (unprefixed printable equivalents, e.g.)SH /Courier SF 36416 XM (MJ)SH /Times-Roman SF 37866 XM (for)SH /Courier SF 39282 XM (^M^J)SH /Times-Roman SF 41932 XM (\050CRLF\051.)SH 13280 38175 MT (D{x})SH 21280 XM (Variable length undelimited records. Each logical record begins) 478 W( with an)477 W 21280 39280 MT ({x}-character ASCII decimal length field \050similar to ANSI) 97 W( tape format "D"\051. For)98 W 21280 40385 MT (example, ")SH /Courier SF (D$)SH /Times-Roman SF (" would indicate 4-digit length fields, like "0132".)SH 13280 41962 MT (F{xxxx})SH 21280 XM (Fixed-length undelimited records. Each logical record is {xxxx} bytes long.)SH 13280 43539 MT (R{x})SH 21280 XM (For record-oriented transfers, to be used) 158 W( in combination with one of the formats)157 W 21280 44644 MT (given above. Each record) 118 W( begins \050in the case of D format, after the length field\051)119 W 21280 45749 MT (with an x-character long) 39 W( position field indicating the byte position within the file at)38 W 21280 46854 MT (which this record is to be stored.)SH 13280 48431 MT (M{x})SH 21280 XM (For record-oriented transfers, to be used in combination) 157 W( with one of the formats)158 W 21280 49536 MT (given above. Maximum record length for a variable-length record.)SH 8280 51327 MT (0 \050ASCII 48\051)SH 13280 52432 MT (Special system-dependent parameters for storing the file on the system of origin, for) 119 W( specification of)120 W 13280 53537 MT (exotic attributes not covered explicitly) 45 W( by any of the Kermit attribute descriptors. These are given as a)44 W 13280 54642 MT (character string in the system's own language, for example a) 201 W( list of DCB parameters in IBM Job)202 W 13280 55747 MT (Control Language.)SH 8280 57324 MT (1-@ \050ASCII 49\051)SH 13280 58429 MT (Exact byte count of the file as it is stored on the sender's system, before any) 182 W( conversions \050e.g. to)183 W 13280 59534 MT (canonic form\051. Of limited usefulness) 100 W( when transferring text files between systems that represent text)99 W 13280 60639 MT (boundaries differently.)SH 8280 62216 MT (2-@ \050ASCII 50-64\051)SH /Times-Italic SF 13280 63321 MT (Reserved)SH /Times-Roman SF 8280 65112 MT (Other attributes can be imagined, and can be added later if needed. However, two important points should be noted:)SH /Symbol SF 10070 67017 MT (\267)SH /Times-Roman SF 10780 XM (The receiver may have absolutely no way of honoring, or even recording, a given attribute.) 219 W( For)687 W 10780 68122 MT (instance, CP/M-80 has no slot for creation date or creator's ID) 52 W( in its FCB; the DEC-20 has no concept)53 W 10780 69227 MT (of block size, etc.)SH /Symbol SF 10070 71216 MT (\267)SH /Times-Roman SF 10780 XM (The sender may have) 217 W( no way of determining the correct values of any of the attributes. This is)216 W ES %%Page: 36 37 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 36)SH 46800 50 6120 5709 UL /Times-Roman SF 8620 7886 MT (particularly true when sending files of foreign origin.)SH 6120 10278 MT (The "A" packet mechanism only provides a way) 113 W( to send certain information about a file to the receiver, with no)114 W 6120 11474 MT (provision or guarantee about what the receiver may do with it.) 40 W( That) 329 W( information may be obtained directly from the)39 W 6120 12670 MT (file's directory entry \050FCB, FDB,)SH /Courier SF 19758 XM (...)SH /Times-Roman SF (\051, or specified via user command.)SH 6120 15062 MT (The ACK to the "A" packet may in turn have information in its data field. However, no) 71 W( complicated negotiations)72 W 6120 16258 MT (about file attributes may take place, so the net result is that the) 49 W( receiver may either refuse the file or accept it. The)48 W 6120 17454 MT (receiver may reply to the "A" packet with any of the following codes in the data field of the ACK packet:)SH 6120 19245 MT ()SH 10120 XM (\050empty data field\051 I accept the file, go ahead and send it.)SH 6120 20822 MT (N[{xxx}])SH 10120 XM (I refuse the file as specified, don't send it; {xxx} is a string of zero) 113 W( or more of the attribute characters)114 W 10120 21927 MT (listed above, to specify what attributes I object to \050e.g. ")91 W /Courier SF (!)SH /Times-Roman SF (" means it's too) 91 W( long, ")90 W /Courier SF (&)SH /Times-Roman SF (" means I don't have)90 W 10120 23032 MT (write access to the specified area, etc\051.)SH 6120 24609 MT (Y[{xxx}])SH 10120 XM (I agree to receive the) 25 W( file, but I cannot honor attributes {xxx}, so I will store the file according to my own)26 W 10120 25714 MT (defaults.)SH 6120 27291 MT (Y)SH 10120 XM (\050degenerate case of Y{xxx}, equivalent to , above\051)SH 6120 29683 MT (How the receiver actually) 75 W( replies is an implementation decision. A NAK in response to the "A" packet means, of)74 W 6120 30879 MT (course, that the receiver did not receive the "A" correctly, not that it refuses to receive the file.)SH 14 /Times-Bold AF 6120 34481 MT (6.6. Advanced Kermit Protocol State Table)SH 10 /Times-Roman AF 6120 36599 MT (The simple table presented previously is sufficient for a basic Kermit) 15 W( implementation. The following is a state table)16 W 6120 37795 MT (for the full Kermit protocol, including both server mode and sending commands to a server Kermit. It) 120 W( does not)119 W 6120 38991 MT (include handling of the file attributes packet \050A\051.) 110 W( Note) 472 W( that states whose names start with "Send" always send a)111 W 6120 40187 MT (packet each time they) 140 W( are entered \050even when the previous state was the same\051. States whose name starts with)139 W 6120 41383 MT ("Rec", always wait for a packet to be received) 95 W( \050up to the timeout value\051, and process the received packet. States)96 W 6120 42579 MT (whose names do not include either send or receive do not process packets directly.) 43 W( These) 334 W( are states which perform)42 W 6120 43775 MT (some local operation and then change to another state.)SH 6120 46167 MT (The initial state) 108 W( is determined by the user's command. A "server" command enters at)109 W /Courier SF 42230 XM (Rec_Server_Idle)SH /Times-Roman SF (. A)468 W 6120 47363 MT ("send" command enters) 47 W( at)46 W /Courier SF 17009 XM (Send_Init)SH /Times-Roman SF (. A) 342 W( "receive" command \050the old non-server version, not a "get" command\051)46 W 6120 48559 MT (enters at)264 W /Courier SF 10258 XM (Rec_Init)SH /Times-Roman SF (. Any) 778 W( generic command, the "get" command, and the "host" command enter at either)265 W /Courier SF 6120 49755 MT (Send_Server_Init)SH /Times-Roman SF 15970 XM (or)SH /Courier SF 17053 XM (Send_Gen_Cmd)SH /Times-Roman SF (, depending upon the expected response.)SH 6120 52147 MT (Under "Rec'd Msg", the packet type of the incoming message is shown, followed) 253 W( by the packet number in)252 W 6120 53343 MT (parentheses; \050n\051 means the current packet number,) 152 W( \050n-1\051 and \050n+1\051 mean the previous and next packet numbers)153 W 6120 54539 MT (\050modulo 64\051, \0500\051) 1 W( means packet number zero. Following the packet number may be slash and a letter, indicating some)SH 6120 55735 MT (special signal in the data field. For instance)16 W /Courier SF 24095 XM (Z\050n\051/D)SH /Times-Roman SF 27961 XM (indicates a Z \050EOF\051 packet, sequence number)16 W /Times-Italic SF 46568 XM (n)SH /Times-Roman SF (, with a "D" in)16 W 6120 56931 MT (the data field.)SH 6120 59323 MT (Under "Action", ")10 W /Courier SF (r+)SH /Times-Roman SF (" means that the retry count) 10 W( is incremented and compared with a threshhold; if the threshhold is)9 W 6120 60519 MT (exceeded, an) 242 W( Error packet is sent and the state changes to "Abort". ")243 W /Courier SF (n+)SH /Times-Roman SF (" means that the packet number is)243 W 6120 61715 MT (incremented, modulo 64, and the retry count,)SH /Times-Italic SF 24395 XM (r)SH /Times-Roman SF (, is set back to zero.)SH /Courier SF 6120 63370 MT (State Rec'd) 1200 W( Msg) SH( Action) 3600 W( Next) 10200 W( state)SH 3000 50 6120 63570 UL 5400 50 10920 63570 UL 3600 50 20520 63570 UL 6000 50 34920 63570 UL 6120 65025 MT (Rec_Server_Idle --)SH /Courier-Oblique SF 17520 XM (Server idle, waiting for a message)SH /Courier SF 8520 66680 MT (Set n and r to 0)SH 10920 68335 MT (I\0500\051 Send) 6600 W( ACK) SH( Rec_Server_Idle)9000 W 10920 69366 MT (S\0500\051 Process) 6600 W( params,)SH 21120 70397 MT (ACK with params, n+) SH( Rec_File)1800 W 10920 71428 MT (R\0500\051 Save) 6600 W( file name) SH( Send_Init)5400 W ES %%Page: 37 38 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 37)SH 46800 50 8280 5709 UL /Courier SF 13080 7824 MT (K, C or G\0500\051) SH( Short) 1800 W( reply:)SH 23280 8855 MT (ACK\0500\051/reply Rec_Server_Idle)6000 W 22680 9886 MT (Long reply:)SH 23280 10917 MT (init needed) SH( Send_Init)6600 W 23280 11948 MT (init not needed, n+) SH( Open_File)1800 W 13080 13603 MT (Timeout Send) 4800 W( NAK\0500\051) SH( Rec_Server_Idle)7200 W 13080 14634 MT (Other Send) 6000 W( E) SH( Rec_Server_Idle)10200 W 8280 16289 MT (Rec_Init --)SH /Courier-Oblique SF 15480 XM (Entry point for non-server RECEIVE command)SH /Courier SF 10680 17944 MT (Set n and r to 0)SH 13080 19599 MT (S\0500\051 Process) 6600 W( params, send)SH 23280 20630 MT (ACK with params, n+) SH( Rec_File)1800 W 13080 21661 MT (Timeout Send) 4800 W( NAK\0500\051, r+) SH( Rec_Init)4800 W 13080 22692 MT (Other Send) 6000 W( E) SH( Abort)10200 W 8280 24347 MT (Rec_File --)SH /Courier-Oblique SF 15480 XM (Look for a file header or EOT message)SH /Courier SF 13080 26002 MT (F\050n\051 Open) 6600 W( file, ACK, n+) SH( Rec_Data)3000 W 13080 27033 MT (X\050n\051 Prepare) 6600 W( to type on)SH 23280 28064 MT (screen, ACK, n+) SH( Rec_Data)4200 W 13080 29095 MT (B\050n\051 ACK) 6600 W( Complete)12000 W 13080 30126 MT (S\050n-1\051 ACK) 5400 W( with params, r+) SH( Rec_File)2400 W 13080 31157 MT (Z\050n-1\051 ACK,) 5400 W( r+) SH( Rec_File)9600 W 13080 32188 MT (Timeout Resend) 4800 W( ACK\050n\051, r+) SH( Rec_File)3600 W 13080 33219 MT (Other Send) 6000 W( E) SH( Abort)10200 W 8280 34874 MT (Rec_Data --)SH /Courier-Oblique SF 15480 XM (Receive data up to end of file)SH /Courier SF 13080 36529 MT (D\050n\051 Store) 6600 W( data, ACK, n+;)SH 23280 37560 MT (If interruption wanted)SH 23280 38591 MT (include X or Z in ACK Rec_Data)SH 13080 39622 MT (D\050n-1\051 Send) 5400 W( ACK, r+) SH( Rec-Data)6600 W 13080 40653 MT (Z\050n\051 Close) 6600 W( file, ACK, n+) SH( Rec_File)2400 W 13080 41684 MT (Z\050n\051/D Discard) 5400 W( file, ACK, n+) SH( Rec_File)1200 W 13080 42715 MT (F\050n-1\051 Send) 5400 W( ACK, r+) SH( Rec_Data)6600 W 13080 43746 MT (X\050n-1\051 Send) 5400 W( ACK, r+) SH( Rec_Data)6600 W 13080 44777 MT (Timeout Send) 4800 W( ACK\050n-1\051, r+) SH( Rec_Data)3600 W 13080 45808 MT (Other Send) 6000 W( E) SH( Abort)10200 W 8280 47463 MT (Send_Init --)SH /Courier-Oblique SF 16080 XM (Also entry for SEND command)SH /Courier SF 10680 49118 MT (Set n and r to 0, send S\0500\051 with parameters)SH 13080 50773 MT (Y\0500\051 Process) 6600 W( params, n+) SH( Open_File)3000 W 13080 51804 MT (N, Timeout) SH( r+) 3000 W( Send_Init)12600 W 13080 52835 MT (Other r+ Send_Init)6000 W 8280 54490 MT (Open_File --)SH /Courier-Oblique SF 16080 XM (Open file or set up text to send)SH /Courier SF 37080 56145 MT (Send_File)SH 8280 57800 MT (Send_File --)SH /Courier-Oblique SF 16080 XM (Send file or text header)SH /Courier SF 10680 59455 MT (Send F or X\050n\051)SH 13080 61110 MT (Y\050n\051, N\050n+1\051) SH( Get) 1800 W( first buffer of) SH( Send_Data) 2400 W( or Send_Eof if)SH 23280 62141 MT (data, n+) SH( empty) 9000 W( file or text)SH 13080 63172 MT (N, Timeout) SH( r+) 3000 W( Send_File)12600 W 13080 64203 MT (Other Abort)20400 W 8280 65858 MT (Send_Data --)SH /Courier-Oblique SF 16080 XM (Send contents of file or textual information)SH /Courier SF 10680 67513 MT (Send D\050n\051 with current buffer)SH ES %%Page: 38 39 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 38)SH 46800 50 6120 5709 UL /Courier SF 10920 7824 MT (Y\050n\051, N\050n+1\051) SH( n+,) 1800 W( Get next buffer) SH( Send_Data) 2400 W( or Send_Eof if)SH 35520 8855 MT (at end of file or text)SH 10920 9886 MT (Y\050n\051/X or Z) SH( n+) 2400 W( Send_Eof)12600 W 10920 10917 MT (N, Timeout) SH( r+) 3000 W( Send_Data)12600 W 10920 11948 MT (Other Abort)20400 W 6120 13603 MT (Send_Eof --)SH /Courier-Oblique SF 13320 XM (Send end of file indicator)SH /Courier SF 8520 15258 MT (Send Z\050n\051; if interrupting send Z\050n\051/D)SH 10920 16913 MT (Y\050n\051, N\050n+1\051) SH( Open) 1800 W( next file, n+) SH( Send_File) 3000 W( if more, or)SH 34920 17944 MT (Send_Break if no more)SH 35520 18975 MT (or if interrupt "Z".)SH 10920 20006 MT (N, Timeout) SH( r+) 3000 W( Send_Eof)12600 W 10920 21037 MT (Other Abort)20400 W 6120 22692 MT (Send_Break --)SH /Courier-Oblique SF 14520 XM (End of Transaction)SH /Courier SF 8520 24347 MT (Send B\050n\051)SH 10920 26002 MT (Y\050n\051, N\0500\051) SH( Complete)17400 W 10920 27033 MT (N\050n\051, Timeout) SH( Send_Break)15600 W 10920 28064 MT (Other Abort)20400 W 6120 29719 MT (Send_Server_Init -)SH /Courier-Oblique SF 17520 XM (Entry for Server commands which expect large response.)SH /Courier SF 8520 31374 MT (Send I\0500\051 with parameters)SH 10920 33029 MT (Y\0500\051 Process) 6600 W( params) SH( Send_Gen_Cmd)5400 W 10920 34060 MT (N, Timeout) SH( r+) 3000 W( Send_Server_Init)12600 W 10920 35091 MT (E Use) 8400 W( default params) SH( Send_Gen_Cmd)3000 W 10920 36122 MT (Other Abort)20400 W 6120 37777 MT (Send_Gen_Cmd -)SH /Courier-Oblique SF 15120 XM (Entry for Server commands which expect short response \050ACK\051)SH /Courier SF 8520 39432 MT (Send G, R or C\0500\051)SH 10920 41087 MT (S\0500\051 Process) 6600 W( params,)SH 21120 42118 MT (ACK with params, n+) SH( Rec_File)1800 W 10920 43149 MT (X\0501\051 Setup) 6600 W( to type on)SH 21120 44180 MT (terminal, n+) SH( Rec_Data)6000 W 10920 45211 MT (Y\0500\051 Type) 6600 W( data on TTY) SH( Complete)4200 W 10920 46242 MT (N, Timeout) SH( r+) 3000 W( Send_Gen_Cmd)12600 W 10920 47273 MT (Other Abort)20400 W 6120 48928 MT (Complete --)SH /Courier-Oblique SF 13320 XM (Successful Completion of Transaction)SH /Courier SF 10920 50583 MT (Set n and r to 0;)SH 10920 51614 MT (If server, reset params, enter Rec_Server_Idle)SH 10920 52645 MT (otherwise exit)SH 6120 54300 MT (Abort --)SH /Courier-Oblique SF 11520 XM (Premature Termination of Transaction)SH /Courier SF 8520 55955 MT (Reset any open file, set n and r to 0)SH 10920 57610 MT (If server, reset params, enter Rec_Server_Idle)SH 10920 58641 MT (otherwise exit)SH 6120 60296 MT (Exit, Logout states)SH 10920 61327 MT (Exit or Logout)SH /Times-Roman SF 6120 63719 MT (Note that the generic commands determine the next state as follows:)SH 8120 65510 MT (1.)SH 9120 XM (If the command is not supported, an error packet is sent and the next state is "Abort".)SH 8120 67720 MT (2.)SH 9120 XM (If the command generates a response which can be fit into the data portion of an ACK, an ACK is sent)14 W 9120 68825 MT (with the text \050quoted as necessary\051 in the data portion.)SH 8120 71035 MT (3.)SH 9120 XM (If the command generates a large response or must send a file, nothing) 413 W( is sent from the)414 W ES %%Page: 39 40 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 39)SH 46800 50 8280 5709 UL /Courier SF 11280 7886 MT (Rec_Server_Idle)SH /Times-Roman SF 20720 XM (state, and the next state is either)190 W /Courier SF 35048 XM (Send_Init)SH /Times-Roman SF 40888 XM (\050if either no I message was)189 W 11280 8991 MT (received or if alternate block check types are to be used\051, or)197 W /Courier SF 37776 XM (Open_File)SH /Times-Roman SF 43624 XM (\050if an I message was)198 W 11280 10096 MT (received and the single character block check is to be used\051.)SH 10280 12306 MT (4.)SH 11280 XM (If the command is Logout, an ACK is sent and the new state is Logout.)SH 10280 14516 MT (5.)SH 11280 XM (If the command is Exit, an ACK is sent and the new state is Exit.)SH ES %%Page: 40 41 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 40)SH 46800 50 6120 5709 UL ES %%Page: 41 42 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 41)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (7. Performance Extensions)SH 10 /Times-Roman AF 8280 10566 MT (The material in this chapter was added in 1985-86) 40 W( to address the inherent performance problems of a stop-and-wait)39 W 8280 11762 MT (protocol like Kermit.)SH 14 /Times-Bold AF 8280 15364 MT (7.1. Long Packets)SH 10 /Times-Roman AF 8280 17482 MT (A method is provided to allow the formation of long Kermit packets. Questions as to) 296 W( the desirability or)297 W 8280 18678 MT (appropriateness of this extension to the Kermit protocol are not addressed. All numbers are in) 96 W( decimal \050base 10\051)95 W 8280 19874 MT (notation, all arithmetic is integer arithmetic.)SH 8280 22266 MT (In order for long packets to be) 125 W( exchanged, the sender must set the bit for Capability #5 \050the LONGP bit\051 in the)126 W 8280 23462 MT (CAPAS field of the Send-Init \050S or I\051 packet,)SH /Courier SF 11280 25117 MT (bit5 bit4 bit3 bit2 bit1 bit0)SH 10680 26148 MT (+----+----+----+----+----+----+)SH 10680 27179 MT (| #1 | #2 | #3 | #4 | #5 | 0 |)SH 10680 28210 MT (+----+----+----+----+----+----+)SH 24480 29241 MT (^)SH 24480 30272 MT (|)SH 23280 31303 MT (LONGP)SH /Times-Roman SF 8280 33020 MT (and also furnish the MAXLX1 and MAXLX2 \050extended length 1 and 2\051 fields, as follows:)SH /Courier SF 13080 34675 MT (10 CAPAS+1) 7800 W( CAPAS+2 CAPAS+3)600 W 10680 35706 MT (---+-------+- -+--------+--------+--------+)2400 W 12480 36737 MT (| CAPAS | ... | WINDO | MAXLX1 | MAXLX2 |)SH 10680 37768 MT (---+-------+- -+--------+--------+--------+)2400 W 22680 38799 MT (^)SH 22680 39830 MT (|)SH /Times-Roman SF 21480 40861 MT (\050currently field 11, because CAPAS is still 1 byte\051)SH 8280 42578 MT (where WINDO is the window size \050a separate Kermit protocol extension\051, and MAXLX1 and MAXLX2 are each a)38 W 8280 43774 MT (printable ASCII character in the range SP \050space, ASCII 32\051 to ~ \050tilde, ASCII 126\051, formed as follows:)SH 10680 45491 MT (MAXLX1)SH /Courier SF 15446 XM (= tochar\050)SH /Times-Roman SF (m)SH /Courier SF 22224 XM (/)SH /Times-Roman SF 23424 XM (95)SH /Courier SF (\051)SH /Times-Roman SF 10680 46522 MT (MAXLX2)SH /Courier SF 15446 XM (= tochar\050)SH /Times-Roman SF (m)SH /Courier SF 22224 XM (MOD)SH /Times-Roman SF 24624 XM (95)SH /Courier SF (\051)SH /Times-Roman SF 8280 48239 MT (\050where m is) 196 W( the intended maximum length,)197 W /Courier SF 27100 XM (/)SH /Times-Roman SF 28147 XM (signifies integer division, and)197 W /Courier SF 41018 XM (MOD)SH /Times-Roman SF 43265 XM (is the modulus operator\051, to)197 W 8280 49435 MT (indicate the longest extended-length packet it will accept) 156 W( as input. The receiver responds with an ACK packet)155 W 8280 50631 MT (having the same) 99 W( bit also set in the CAPAS field, and with the MAXLX1 and MAXLX2 fields set to indicate the)100 W 8280 51827 MT (maximum length packet it will accept.)SH 8280 54219 MT (The maximum length expressible by this construct is 95 x 94 + 94, or 9024.)SH 8280 56611 MT (Since the sender can not know in advance whether the receiver is capable of extended headers,) 16 W( the Send-Init MAXL)15 W 8280 57807 MT (field must also be set in the normal manner for compatibility.)SH 8280 60199 MT (If the receiver responds favorably to an extended-length packet bid \050that is, if its ACK has the) 25 W( LONGP bit set in the)26 W 8280 61395 MT (CAPAS field\051, then the combined value of its MAXLX1,MAXLX2 fields is used. If the LONGP bit is set but the)61 W 8280 62591 MT (MAXLX1,MAXLX2 pair is missing, then the value 500 will be used by default.)SH 8280 64983 MT (If the response is unfavorable \050the LONGP) 36 W( bit is not set in the receiver's CAPAS field\051, then extended headers will)37 W 8280 66179 MT (not be used and the MAXL field will supply the maximum packet length.)SH 8280 68571 MT (After the Send-Init has been sent and acknowledged with) 7 W( agreement to allow extended headers, all packets up to and)6 W 8280 69767 MT (including the B or E packet which terminates the transaction \050and its acknowledgement\051 are allowed -- but not)157 W 8280 70963 MT (required -- to have extended headers; extended and normal packets may be freely mixed by both Kermits.)SH ES %%Page: 42 43 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 42)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (The normal Kermit packet length field \050LEN\051 specifies the number of bytes to follow, up to and including) 25 W( the block)24 W 6120 9082 MT (check. Since) 341 W( at least 3 bytes must follow \050SEQ, TYPE, and CHECK\051, a value of 0, 1, or 2 is never encountered in)46 W 6120 10278 MT (the LEN field of a valid unextended Kermit packet.) 33 W( When) 314 W( extended packets have been negotiated, the LEN field is)32 W 6120 11474 MT (treated as follows for the duration of the transaction:)SH /Symbol SF 7910 13379 MT (\267)SH /Times-Roman SF 8620 XM (If)SH /Courier SF 9536 XM (unchar\050LEN\051 >)SH /Times-Roman SF 17586 XM (2 then the packet is a normal, unextended packet.)SH /Symbol SF 7910 14484 MT (\267)SH /Times-Roman SF 8620 XM (If)SH /Courier SF 9536 XM (unchar\050LEN\051 =)SH /Times-Roman SF 17586 XM (0 then the packet has a "Type 0" extended header.)SH /Symbol SF 7910 15589 MT (\267)SH /Times-Roman SF 8620 XM (If)SH /Courier SF 9536 XM (unchar\050LEN\051 =)SH /Times-Roman SF 17586 XM (1 or 2, the packet is invalid and should cause an Error.)SH 6120 17380 MT ("Lengths" of 1 and 2 are reserved for future use in Type 1 and 2 extended headers, yet to be specified.)SH 6120 19772 MT (A Type 0 extended packet has the following layout:)SH /Courier SF 6120 21427 MT (+------+-----+-----+------+-------+-------+--------+---- ----+-------+)3600 W 6120 22458 MT (| MARK |) SH( |) 2400 W( SEQ | TYPE | LENX1 | LENX2 | HCHECK | DATA ....) SH( |) 1800 W( CHECK |)SH 6120 23489 MT (+------+-----+-----+------+-------+-------+--------+---- ----+-------+)3600 W 21720 24520 MT (| Extended Header) SH( |)4200 W /Times-Roman SF 6120 26237 MT (The blank length field \050SP =)49 W /Courier SF 18033 XM (tochar\0500\051)SH /Times-Roman SF (\051 indicates that the first 3 bytes of what is normally) 49 W( the data field is now)50 W 6120 27433 MT (an extended header of Type 0, in which the number) 43 W( of bytes remaining in the packet, up to and including the block)42 W 6120 28629 MT (check, is)SH /Courier-Oblique SF 8520 30284 MT (extended-length)SH /Courier SF 18120 XM (= \05095 x unchar\050LENX1\051\051 + unchar\050LENX2\051)SH /Times-Roman SF 6120 32001 MT (and HCHECK is a header checksum, formed exactly like a Type-1 Kermit block) 108 W( check, but from the sum of the)109 W 6120 33197 MT (ASCII values of the SEQ, TYPE, LENX1, and LENX2 fields:)SH /Courier-Oblique SF 9120 34852 MT (s)SH /Courier SF 10320 XM (= LEN + SEQ + TYPE + LENX1 + LENX2)SH 9120 36507 MT (HCHECK = tochar\050\050)SH /Courier-Oblique SF (s)SH /Courier SF 20520 XM (+ \050\050)SH /Courier-Oblique SF (s)SH /Courier SF 24120 XM (& 192\051/64\051\051 & 63\051)SH /Times-Roman SF 6120 38224 MT (where)SH /Courier SF 8813 XM (&)SH /Times-Roman SF 9663 XM (is the bitwise AND operator.)SH 6120 40616 MT (Since the value of the extended length field) 67 W( must be known accurately in order to locate the end of the packet and)66 W 6120 41812 MT (the packet block check, it is vital that this information not be corrupted before it is used.) 118 W( The) 487 W( header checksum)119 W 6120 43008 MT (prevents this.)SH 6120 45400 MT (The extended header, like the normal header itself, is)10 W /Times-Italic SF 27677 XM (not)SH /Times-Roman SF 29215 XM (prefix-encoded. This) 270 W( is because it is used at) 10 W( datalink level,)9 W 6120 46596 MT (before decoding takes place. Therefore) 194 W( the entity responsible for building packets must leave 3 spaces at the)195 W 6120 47792 MT (beginning of the data field,) 7 W( and the datalink function \050spack\051 fills in LENX1, LENX2, and HCHECK based upon the)6 W 6120 48988 MT (data actually entered into the packet,) 222 W( after encoding. The packet receiving datalink function \050rpack\051 behaves)223 W 6120 50184 MT (accordingly.)SH 6120 52576 MT (The packet block check is formed in the usual manner, based) 81 W( on all packet bytes beginning with LEN and ending)80 W 6120 53772 MT (with the last character in the data field. The block check may be Type 1, 2, or 3,) 178 W( depending upon what was)179 W 6120 54968 MT (negotiated, but longer packets are more likely to be) 282 W( corrupted than shorter ones and should therefore have)281 W 6120 56164 MT (higher-order block checks if possible.) 75 W( This) 402 W( proposal does not change the way block check type is negotiated, and)76 W 6120 57360 MT (does not require that Type 2 or 3 block check be implemented.)SH 8 SS 50090 59407 MT (15)SH 10 SS 6120 59752 MT (With long packets, the possibility exists that the arithmetic sum of the) 87 W( characters in a packet will exceed 2)86 W 50890 XM (, and)86 W 6120 60948 MT (will overflow a) 152 W( 16-bit word, or become negative. The checksum function would have to be modified to guard)153 W 6120 62144 MT (against this, for instance by always setting the high four bits of the sum to zero before adding in the next byte.)SH 6120 64536 MT (Implementation can be a bit tricky. The Kermit program should be set up) 91 W( to use normal, untextended packets by)90 W 6120 65732 MT (default -- that is, to) 64 W( mimic the behavior of original, "classic" Kermit. Even when the program believes itself to be)65 W 6120 66928 MT (capable of sending and receiving) 362 W( long packets, it has no knowledge of what devices may lie along the)361 W 6120 68124 MT (communication path, whose buffers might) 45 W( not be long enough to accommodate bursts of data of the desired length.)46 W 6120 69320 MT (Long packets) 61 W( should be elected when the user has explicitly elected them with a SET command. The current SET)60 W 6120 70516 MT (SEND PACKET-LENGTH command will do; if the number is larger than) 229 W( 94, then the program will --)230 W 6120 71712 MT (transparently to the user -- try to negotiate long packets.) 23 W( A) 294 W( finer degree of control can be accomplished by included)22 W ES %%Page: 43 44 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 43)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (SET commands to explicitly enable or disable the use of long packets.)SH 8280 10278 MT (Once long packets are successfully negotiated, the program should be prepared to back off when errors) 33 W( occur, since)34 W 8280 11474 MT (the very size of the packets may be the cause of the errors. Upon timeout or receipt of a NAK \050or) 6 W( extra copies of the)5 W 8280 12670 MT (previous packet\051, the sender should be prepared to reconstruct the current packet) 32 W( at, say, half its size, down to some)33 W 8280 13866 MT (reasonable minimum, before retransmission. Even when) 11 W( the size itself is not the problem, this makes retransmission)10 W 8280 15062 MT (less painful under noisy conditions.)SH 8280 17454 MT (Long packets and sliding windows may be used at the same time, though the benefits from) 108 W( doing so may not be)109 W 8280 18650 MT (worth the trouble of coding the dynamic buffer allocation required \050for n buffers of size m, negotiated at) 62 W( Send-Init)61 W 8280 19846 MT (time\051. It's) 250 W( also worth noting that the benefit/cost ratio of long packets declines after a length of about 1000, at) SH( which)1 W 8280 21042 MT (point the benefit of additional length is less than 1%, and the cost of retransmission is very high.)SH 14 /Times-Bold AF 8280 24644 MT (7.2. Sliding Windows)SH 10 /Times-Roman AF 8280 26762 MT (The sliding window extension to Kermit was proposed and developed by a) 69 W( group at The Source Telecomputing in)68 W 8280 27958 MT (McLean, Virginia, led by Leslie Spira and including) 107 W( Hugh Matlock and John Mulligan, who wrote the following)108 W 8280 29154 MT (material. Like) 422 W( other extensions, this one is designed for "upward compatibility" with Kermits that) 86 W( do not support)85 W 8280 30350 MT (this extension.)SH 8280 32742 MT (The windowing protocol as defined for the Kermit file transfer protocol is based) 307 W( on the main premise of)308 W 8280 33938 MT (continuously sending) 248 W( data packets up to the number defined by a set window size. These data packets are)247 W 8280 35134 MT (continuously acknowledged by the receive side and the) 114 W( ideal transfer occurs as long as they are transmitted with)115 W 8280 36330 MT (good checksums, they are transmitted in sequential) 79 W( order and there are no lost data packets or acknowledgements.)78 W 8280 37526 MT (The various error conditions define the details of the windowing protocol and are best examined on a case basis.)SH 8280 39918 MT (There are five stages that describe the overall sequence of events in the) 133 W( Kermit protocol. Three of these stages)134 W 8280 41114 MT (deviate from the original) 1 W( protocol in order to add the windowing feature. Stages 1 through 5 are briefly described on)SH 8280 42310 MT (the following page.) 109 W( The) 470 W( three stages \0501, 3 and 4\051 which deviate from the original protocol are then described in)110 W 8280 43506 MT (greater detail in the pages that follow.)SH 12 /Times-Bold AF 8280 46622 MT (7.2.1. Overall Sequence of Events)SH 10 /Times-Roman AF 8280 48564 MT (STAGE 1 - Propose and Accept Windowing)SH 17775 50 8280 48764 UL 10280 49669 MT (The send side requests windowing in the) 24 W( transmission of the Send-Initiate \050S\051 packet. The receive side accepts)25 W 10280 50774 MT (windowing by sending an acknowledgement \050ACK packet\051 for the Send-Initiate packet.)SH 8280 52351 MT (STAGE 2 - Send and Accept File-Header Packet)SH 19523 50 8280 52551 UL 10280 53456 MT (The send side transmits) 112 W( the File-Header \050F\051 packet and waits for the receive side to acknowledge it prior to)113 W 10280 54561 MT (transmitting any data.)SH 8280 56138 MT (STAGE 3 - Transfer Data)SH 10330 50 8280 56338 UL 10280 57243 MT (The sending routine transmits Data \050D\051 packets) 92 W( one after the other until the protocol window is closed. The)93 W 10280 58348 MT (receiving side ACKs good data, stores data to disk as necessary and NAKs bad data.)SH 10280 59925 MT (When the sender receives an ACK, the window may be rotated and the next packet sent. If the sender) 24 W( receives)23 W 10280 61030 MT (a NAK, the data packet concerned is retransmitted.)SH 8280 62607 MT (STAGE 4 - Send and Accept End_of_File Packet)SH 19747 50 8280 62807 UL 10280 63712 MT (As the sender is reading the file) 39 W( for data to send, it will eventually reach the end of the file. It then waits until)38 W 10280 64817 MT (all outstanding data packets have been acknowledged, and then sends an End-of_File \050Z\051 packet.)SH 10280 66394 MT (When the receive side gets the End-of-File packet it stores the rest of the data to disk, closes the file, and) 8 W( ACKs)9 W 10280 67499 MT (the End-of_File packet.)SH 10280 69076 MT (The protocol then returns to Stage 2, sending and acknowledging any further File-Header \050F\051 packets.)SH ES %%Page: 44 45 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 44)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (STAGE 5 - End of Transmission)SH 13138 50 6120 8086 UL 8120 8991 MT (Once the End-of-File packet has been sent) 83 W( and acknowledged and there are no more files to send, the sender)84 W 8120 10096 MT (transmits the End-of-Transmission \050B\051 packet in order to end the) 11 W( ongoing transaction. Once the receiver ACKs)10 W 8120 11201 MT (this packet, the transaction is ended and the logical connection closed.)SH 12 /Times-Bold AF 6120 13789 MT (Stage 1 - Propose and Accept Windowing)SH 10 /Times-Roman AF 6120 15203 MT (The initial connection as currently defined for the Kermit protocol will need to change) 29 W( only in terms of the contents)30 W 6120 16399 MT (of the Send-Initiate packet. The receiving Kermit) 133 W( waits for the sending Kermit to transmit the Send-Initiate \050S\051)132 W 6120 17595 MT (packet and the sending packet does not proceed) 1 W( with any additional transmission until the ACK has been returned by)2 W 6120 18791 MT (the receiver.)SH 6120 21183 MT (The contents of the Send-Init packet, however, will be slightly revised. The data field) 167 W( of the Send-Init packet)166 W 6120 22379 MT (currently contains all of the configuration parameters. The first six fields of the Send-Init) 179 W( packet are fixed as)180 W 6120 23575 MT (follows:)SH /Courier SF 7920 25230 MT (1 2 3 4 5 6)4200 W 7320 26261 MT (+--------+--------+--------+--------+--------+--------+)SH 7320 27292 MT (| MAXL) SH( |) 1200 W( TIME) SH( |) 1200 W( NPAD) SH( |) 1200 W( PADC) SH( |) 1200 W( EOL) SH( |) 1800 W( QCTL) SH( |)1200 W 7320 28323 MT (+--------+--------+--------+--------+--------+--------+)SH /Times-Roman SF 6120 30040 MT (Fields 7 through 10) 19 W( are optional features of Kermit and fields 7 through 9 will also remain unchanged as defined for)18 W 6120 31236 MT (the existing protocol:)SH /Courier SF 7920 32891 MT (7 8 9 10)4200 W 7320 33922 MT (+--------+--------+--------+--------+)SH 7320 34953 MT (| QBIN) SH( |) 1200 W( CHKT) SH( |) 1200 W( REPT) SH( |) 1200 W( CAPAS |)SH 7320 35984 MT (+--------+--------+--------+--------+)SH /Times-Roman SF 6120 38376 MT (The windowing capability constitutes a fourth capability and) 59 W( the fourth bit of the capability field will be set to 1 if)60 W 6120 39572 MT (the Kermit implementation can handle windowing:)SH /Courier SF 9120 41227 MT (bit5 bit4 bit3 bit2 bit1 bit0)SH 8520 42258 MT (+----+----+----+----+----+----+)SH 8520 43289 MT (| #1 | #2 | #3 | #4 | #5 | 0 |)SH 8520 44320 MT (+----+----+----+----+----+----+)SH 19320 45351 MT (^)SH 19320 46382 MT (|)SH 18720 47413 MT (SWC)SH /Times-Roman SF 21120 XM (\050sliding window capability\051)SH 6120 49805 MT (The remaining fields of the Send-Init packet are either) 95 W( reserved for future use by the standard Kermit protocol or)94 W 6120 51001 MT (reserved for local site implementations.) 60 W( The) 371 W( four fields following the capability field are reserved for the standard)61 W 6120 52197 MT (Kermit protocol. The field following the capability mask is used to specify the "Window Size":)SH /Courier SF 10920 53852 MT (10 CAPAS+1) 7800 W( CAPAS+2 CAPAS+3)600 W 8520 54883 MT (---+-------+- -+--------+--------+--------+)2400 W 10320 55914 MT (| CAPAS | ... | WINDO | MAXLX1 | MAXLX2 |)SH 8520 56945 MT (---+-------+- -+--------+--------+--------+)2400 W 20520 57976 MT (^)SH 20520 59007 MT (|)SH /Times-Roman SF 19320 60038 MT (\050currently field 11, because CAPAS is still 1 byte\051)SH 6120 61755 MT (WINDO is the window size to be used, encoded printably using the)90 W /Courier SF 34446 XM (tochar\050\051)SH /Times-Roman SF 39586 XM (function. The) 430 W( window size may)89 W 6120 62951 MT (range from 1 to 31 inclusive.)SH 6120 65343 MT (The sender will specify the window size it wishes to use and) 79 W( the receiver will reply \050in the ACK packet\051 with the)80 W 6120 66539 MT (window size it wishes to use. The window size actually used will be the minimum of the two. If) 5 W( the receiver replies)4 W 6120 67735 MT (with a window size of 0 then no windowing will be done.)SH ES %%Page: 45 46 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 45)SH 46800 50 8280 5709 UL 12 /Times-Bold AF 8280 8004 MT (Stage 3 - Transfer Data)SH 10 /Times-Roman AF 8280 9418 MT (The sequence of events required for the transmission of data packets and confirmation of) SH( receipts constitute the main)1 W 8280 10614 MT (functions of the windowing protocol. There are four main functions which can) 167 W( be identified within this stage.)166 W 8280 11810 MT (These are:)SH /Symbol SF 10070 13715 MT (\267)SH /Times-Roman SF 10780 XM (the sender's processing of the data packets,)SH /Symbol SF 10070 14820 MT (\267)SH /Times-Roman SF 10780 XM (the receiver's handling of incoming packets,)SH /Symbol SF 10070 15925 MT (\267)SH /Times-Roman SF 10780 XM (the sender's handling of the confirmations,)SH /Symbol SF 10070 17030 MT (\267)SH /Times-Roman SF 10780 XM (the error handling on both sides.)SH 8280 18821 MT (The following discussion details the specific actions required) 39 W( for each of these functions. Refer to the state table at)40 W 8280 20017 MT (the end of this document for the specific action taken on a "received message" basis for the full protocol.)SH 8280 22409 MT (The Sender's Processing of Data Packets)SH 16413 50 8280 22609 UL 8280 24801 MT (The sender instigates the transmission by sending the first data) 141 W( packet and then operating in a cyclical mode of)140 W 8280 25997 MT (sending data until the defined window is closed.)SH 8280 28389 MT (Data to be sent must) 113 W( be read from the file, encoded into the Kermit Data packet, and saved in a Send-Table. A)114 W 8280 29585 MT (Send-Table entry consists of the data) 72 W( packet itself \050which makes convenient the re-send of a NAK'd packet\051, a bit)71 W 8280 30781 MT (which keeps track of whether the packet has been ACK'd \050the ACK'd bit\051, and a retry counter. The table) 69 W( is large)70 W 8280 31977 MT (enough to hold all the packets for the protocol window.)SH 8280 34369 MT (Before each transmission, the input buffer is checked and input is processed,) 74 W( as described below. Transmission is)73 W 8280 35565 MT (stopped if the protocol window "closes", that is, if the Send-Table is full.)SH 8280 37957 MT (The Receiver's Handling of Incoming Packets)SH 18524 50 8280 38157 UL 8280 40349 MT (The receiver keeps its own table as) 4 W( it receives incoming data packets. This allows the receiver to receive subsequent)5 W 8280 41545 MT (packets while it is waiting for a re-send of an erroneous or lost packet.) 27 W( In) 303 W( other words, the incoming packets do not)26 W 8280 42741 MT (have to be received in sequential order and can still be written to disk in order.)SH 8280 45133 MT (A Receive-Table entry consists) 55 W( of the data packet, a bit which keeps track of whether a good version of the packet)56 W 8280 46329 MT (has been received \050the) 140 W( ACK'd bit\051, and a retry counter for the NAKs we send to request retransmissions of the)139 W 8280 47525 MT (packet. The) 250 W( table is large enough to hold all the packets for the protocol window.)SH 8280 49917 MT (The different possibilities for a received packet are:)SH 10280 51708 MT (1.)SH 11280 XM (A new packet, the next sequential one \050the usual case\051)SH 10280 52813 MT (2.)SH 11280 XM (A new packet, not the next sequential one \050some were lost\051)SH 10280 53918 MT (3.)SH 11280 XM (An old packet, retransmitted)SH 10280 55023 MT (4.)SH 11280 XM (An unexpected data packet)SH 10280 56128 MT (5.)SH 11280 XM (Any packet with a bad checksum)SH 8280 57919 MT (These are now discussed separately:)SH 10280 59710 MT (1.)SH 11280 XM (The next new packet has sequence number .) 97 W( The) 445 W( packet is ACK'd,)98 W 11280 60815 MT (and the Receive-Table is checked for space. If it is) 84 W( full \050already contains window_size entries\051 then)83 W 11280 61920 MT (the oldest) 124 W( entry is written to disk. \050This entry should have the ACK'd bit set. If not, the receiver)125 W 11280 63025 MT (aborts the file transfer.\051 The received packet is then stored in the Receive-Table,) 56 W( with the ACK'd bit)55 W 11280 64130 MT (set.)SH 10280 66340 MT (2.)SH 11280 XM (If the packet received has sequence number in the) 299 W( range to)300 W 11280 67445 MT ( then it is a new packet, but some have been) 14 W( lost. \050The upper)13 W 11280 68550 MT (limit here represents the) 79 W( highest packet the sender could send within its protocol window. Note that)80 W 11280 69655 MT (the requirement to test for this case is what limits the) 76 W( maximum window_size to half of the range of)75 W 11280 70760 MT (possible sequence numbers\051 We ACK the packet, and) 196 W( NAK all packets that were skipped. \050The)197 W 11280 71865 MT (skipped packets are those from to \051)58 W ES %%Page: 46 47 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 46)SH 46800 50 6120 5709 UL /Times-Roman SF 9120 7886 MT (The Receive-Table is then checked. The table may have to be) 98 W( rotated to accomodate the packet, as)99 W 9120 8991 MT (with case 1. \050This) 40 W( time, several table entries may have to be written to disk. As before, if any do not)39 W 9120 10096 MT (have the ACK'd bit set, they will trigger an abort.\051 The packet is then stored) 122 W( in the table, and the)123 W 9120 11201 MT (ACK'd bit set.)SH 8120 13411 MT (3.)SH 9120 XM (A retransmitted packet will have sequence number in the range ) 56 W( to . The packet is ACK'd, then placed in the table, setting the ACK'd bit.)SH 8120 16726 MT (4.)SH 9120 XM (A packet with sequence number outside of) 83 W( the range from to is ignored.)SH 8120 20041 MT (5.)SH 9120 XM (If the packet received has a bad checksum, we must) 14 W( decide whether to generate a NAK, and if so, with)13 W 9120 21146 MT (what sequence number. The best action may depend on) 39 W( the configuration and channel error rate. For)40 W 9120 22251 MT (now, we adopt the following heuristic: If there are unACK'd entries in) 43 W( our Receive-Table, we send a)42 W 9120 23356 MT (NAK for) 81 W( the oldest one. Otherwise we ignore the packet. \050Notice that this will occur in a common)82 W 9120 24461 MT (case: when) 298 W( things have been going smoothly and one packet) 24 W( gets garbled. In this case, when we later)23 W 9120 25566 MT (receive the next packet we will NAK for this one as described under Case 2 above.\051)SH 6120 27958 MT (The Sender's Handling of Confirmations)SH 16387 50 6120 28158 UL 6120 30350 MT (The sender's receipt of confirmations controls the rotation of the Send-Table and normally returns the) 85 W( sender to a)86 W 6120 31546 MT (sending state. The sender's action depends on the packet checksum, the type of confirmation) 56 W( \050ACK or NAK\051, and)55 W 6120 32742 MT (whether the confirmation is within the high and low boundaries of the Send-Table.)SH 6120 35134 MT (If the checksum is bad the packet is ignored.)SH 6120 37526 MT (When the sender receives an ACK, the sequence number is examined. If the sequence number is) 120 W( outside of the)121 W 6120 38722 MT (current table boundaries, then the ACK is also) 185 W( ignored. If the sequence number is inside of the current table)184 W 6120 39918 MT (boundaries then the ACK'd bit for that packet is marked. If the entry is at the low) 193 W( boundary, this enables a)194 W 6120 41114 MT ("rotation" of the table. The low boundary is changed to the next sequential entry for) 15 W( which the ACK'd bit is not set.)14 W 6120 42310 MT (This frees space in the table to allow further transmissions.)SH 6120 44702 MT (When the sender receives a NAK, the table boundaries are checked. A NAK outside of the table boundary is)167 W 6120 45898 MT (ignored and a NAK inside the table boundary indicates that the sender must re-send the packet. The sender first)104 W 6120 47094 MT (tests the packet's retry counter against the retry threshold. If) 108 W( the threshold has been reached, then the transfer is)109 W 6120 48290 MT (stopped \050by going to the Abort state\051. Otherwise, the retry counter is incremented and the packet re-sent.)SH 6120 50682 MT (Error Handling for Both Sides)SH 12110 50 6120 50882 UL 6120 53074 MT (Three situations are discussed here: Sender timeout, Receiver timeout, and invalid packets.)SH 6120 55466 MT (If certain packets are lost, each side may "hang",) 96 W( waiting for the other. To get things moving when this happens)95 W 6120 56662 MT (each may have a "timeout limit", the longest they will wait for something from the other side.)SH 6120 59054 MT (If the sender's timeout condition) 15 W( is triggered, then it will send the oldest unACK'd packet. This will be the first one)16 W 6120 60250 MT (in the Send-Table.)SH 6120 62642 MT (If the receiver's timeout condition is triggered, then it will send) 150 W( a NAK for the "most desired packet". This is)149 W 6120 63838 MT (defined as either) 17 W( the oldest unACK'd packet, or if none are unACK'd, then the next packet to be received \050sequence)18 W 6120 65034 MT (number \051. The packet retry count is not incremented by this NAK; instead we depend)59 W 6120 66230 MT (on the timeout retry count, discussed next.)SH 6120 68622 MT (For either the sender or receiver, the timeout retry count is incremented each time) 54 W( a timeout occurs. If the timeout)55 W 6120 69818 MT (retry limit is exceeded) 58 W( then the side aborts the file transfer. Each side resets the retry count to zero whenever they)57 W 6120 71014 MT (receive a packet.)SH ES %%Page: 47 48 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 47)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (In addition, as with) 49 W( the existing Kermit, any invalid packet types received by either side will cause an Error packet)50 W 8280 9082 MT (and stop the file transfer.)SH 12 /Times-Bold AF 8280 11670 MT (Stage 4 - Send and Accept End of File Packet)SH 10 /Times-Roman AF 8280 13084 MT (There are) 211 W( several ways to end the file transfer. The first is the normal way, when the sender encounters an)210 W 8280 14280 MT (end-of-file condition when) 41 W( reading the file to get a packet for transmission. The second is because of a sender side)42 W 8280 15476 MT (user interrupt. The third is because of a receiver side user interrupt. Both) 113 W( of these cause the received file to be)112 W 8280 16672 MT (discarded. In) 836 W( addition either side may stop the transfer) 293 W( with an Error packet if an unrecoverable error is)294 W 8280 17868 MT (encountered.)SH 8280 20260 MT (Normal End of File Handling)SH 11777 50 8280 20460 UL 8280 22652 MT (When the sender reaches the end of file, it must wait until all data) 43 W( packets have been acknowledged before sending)42 W 8280 23848 MT (the End-of-File \050Z\051 packet. To do this it must be able to check the end-of-file status when it processes) 12 W( ACKs. If the)13 W 8280 25044 MT (ACK causes the Send-Table to be emptied and the end-of-file has been reached,) 119 W( then a transition is made to the)118 W 8280 26240 MT (Send_Eof state which sends the End_of_File packet.)SH 8280 28632 MT (When the) 161 W( receiver gets the End_of_File packet, it writes the contents of the Receive-Table to the file \050suitably)162 W 8280 29828 MT (decoded\051 and closes the file.) 38 W( \050If) 325 W( any entries do not have the ACK'd bit set, or if errors occur in writing the file, the)37 W 8280 31024 MT (receiver aborts the file transfer.\051 If the operation is successful, the receiver sends an ACK. It then sets) 28 W( its sequence)29 W 8280 32220 MT (number to the End_of_File packet sequence number and goes to Rcv_File state.)SH 12 /Times-Bold AF 8280 34808 MT (File Transfer Interruptions)SH 10 /Times-Roman AF 8280 36599 MT (Sender User Interrupt)SH 8664 50 8280 36799 UL 10280 37704 MT (Whenever the sender checks for input from the data communications line, it should also check for user) SH( input. If)1 W 10280 38809 MT (that indicates that the file transfer should be stopped, the sender goes) 56 W( directly to the Send_Eof state and sends)55 W 10280 39914 MT (an End_of_File packet with the Discard indication.) 166 W( It) 583 W( will not have to wait for outstanding packets to be)167 W 10280 41019 MT (ACK'd.)SH 10280 42596 MT (When the receiver gets the End_of_File packet with the Discard indication it) 25 W( discards the file, sets its sequence)24 W 10280 43701 MT (number to the End_of_File packet sequence number, and goes to RcvFile state.)SH 8280 45278 MT (Receiver User Interrupt)SH 9441 50 8280 45478 UL 10280 46383 MT (Whenever the receiver checks for input from the data communications line, it also should check for) 33 W( user input.)32 W 10280 47488 MT (If that indicates that the file transfer) 127 W( should be stopped, the receiver sets an "interrupt indication" of X \050for)128 W 10280 48593 MT ("stop this file transfer"\051 or of Z \050for "stop the batch of file transfers"\051.) 6 W( When) 260 W( the receiver later sends an ACK, it)5 W 10280 49698 MT (places an X or Z in the data field.)SH 10280 51275 MT (When the sender gets this ACK, it goes) 166 W( to the Send_Eof state and sends the End_of_File packet with the)167 W 10280 52380 MT (Discard indication, as above.)SH 10280 53957 MT (When the receiver gets the End_of_File packet with the Discard indication, it discards the file, sets its) 10 W( sequence)9 W 10280 55062 MT (number to the End_of_File packet sequence number, and goes to RcvFile state.)SH 12 /Times-Bold AF 8280 57650 MT (Low Level Protocol Requirements)SH 10 /Times-Roman AF 8280 59064 MT (The windowing protocol makes certain assumptions about the underlying transmission and reception mechanism.)SH 8280 61456 MT (First, it must provide a full-duplex channel so that messages may be sent and received simultaneously.)SH 8280 63848 MT (Second, it will prove advantageous to be able to buffer several received messages at the low level before processing)25 W 8280 65044 MT (them at the Kermit level. This is for two reasons. The first is that the Kermit windowing) 34 W( level of the protocol may)33 W 8280 66240 MT (take a while to process one input, and meanwhile several) 178 W( others may arrive. The second reason is to support)179 W 8280 67436 MT (XON/XOFF flow control. If Kermit receives an XOFF from the data communications line, it must) 9 W( wait for an XON)8 W 8280 68632 MT (before sending its packet. While it is waiting, the low level receive must be) 136 W( able to accept input. Otherwise a)137 W 8280 69828 MT (deadlock situation could arise with each side flow controlled, waiting for the other.)SH ES %%Page: 48 49 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 48)SH 46800 50 6120 5709 UL 12 /Times-Bold AF 6120 8004 MT (Kermit Windowing Protocol State Table)SH 10 /Times-Roman AF 6120 9418 MT (The following table shows the inputs expected, the actions performed, and the succeeding) 367 W( states for the)366 W 6120 10614 MT (Send_Data_Windowing and Rcv_Data_Windowing states.)SH 6120 13006 MT (If both sides agree on windowing in the Send Init exchange, then) 7 W( instead of entering the old Send_Data or Rcv_Data)8 W 6120 14202 MT (states from Send_File or Rcv_File, we enter the new Send_Data_Windowing or Rcv_Data_Windowing.)SH /Courier SF 6120 15857 MT (SEND_DATA_WINDOWING \050SDW\051)SH 6120 17512 MT (Rec'd Msg) SH( Action) 9000 W( Next) 15000 W( State)SH 5400 50 6120 17712 UL 3600 50 21120 17712 UL 6000 50 40320 17712 UL 6120 19167 MT (No input/Window closed \0501\051 Wait for input) SH( SDW)10800 W 6120 20198 MT (No input/Window open) SH( \0502\051) 1800 W( Read file, encode packet,) SH( SDW)4200 W 22920 21229 MT (Place in table, mark unACK'd,)SH 22920 22260 MT (Send packet)SH 6120 23915 MT (ACK/ X or Z) SH( \0503\051) 7200 W( set interrupt indicator \050X/Z\051 Send_Eof)SH 6120 24946 MT (ACK/outside table) SH( -ignore-) 4200 W( SDW)16200 W 6120 25977 MT (ACK/inside table) SH( \0504\051) 4200 W( mark pkt ACK'd,) SH( SDW) 4800 W( or Send_Eof)SH 22920 27008 MT (if low rotate table,)SH 22920 28039 MT (if file eof & table empty)SH 24720 29070 MT (then goto Send_Eof)SH 6120 30725 MT (NAK/outside table) SH( -ignore-) 4200 W( SDW)16200 W 6120 31756 MT (NAK/inside table) SH( \0505\051) 4200 W( test retry limit,) SH( SDW)9000 W 22920 32787 MT (re-send DATA packet)SH 6120 34442 MT (Bad checksum) SH( -ignore-) 6600 W( SDW)16800 W 6120 36097 MT (Timeout \0506\051) 9600 W( re-send oldest unACK'd pkt) SH( SDW)3600 W 6120 37752 MT (User interrupt) SH( \0507\051) 5400 W( set interrupt indicator \050X/Z\051 Send_Eof)SH 6120 39407 MT (Other \0508\051) 10800 W( send Error) SH( Quit)12600 W 6120 41062 MT (RCV_DATA_WINDOWING \050RDW\051)SH 6120 42717 MT (Rec'd Msg) SH( Action) 9000 W( Next) 15000 W( State)SH 5400 50 6120 42917 UL 3600 50 21120 42917 UL 6000 50 40320 42917 UL 6120 44372 MT (DATA/new \0501\051) 9000 W( send ACK) SH( RDW)14400 W 22920 45403 MT (if table full: file & rotate)SH 22920 46434 MT (store new pkt in table)SH 6120 47465 MT (DATA/old \0502\051) 9000 W( send ACK, store in table) SH( RDW)4800 W 6120 48496 MT (DATA/unexpected -ignore-) 4800 W( RDW)16800 W 6120 50151 MT (Z/discard \0503\051) 8400 W( discard file) SH( Rcv_File)10800 W 6120 51182 MT (Z/ \0504\051) 12600 W( write table to file & close) SH( Rcv_File)1800 W 22920 52213 MT (if OK send ACK, else Error) SH( or) 2400 W( Quit)SH 6120 53868 MT (Bad checksum) SH( \0505\051) 6600 W( send NAK for oldest unACK'd) SH( RDW)3000 W 6120 55523 MT (Timeout \0506\051) 9600 W( send NAK for most desired pkt) SH( RDW)1800 W 6120 57178 MT (User Interrupt) SH( \0507\051) 5400 W( Set interrupt indicator X or Z) SH( RDW)1200 W 6120 58833 MT (Other \0508\051) 10800 W( send Error pkt) SH( Quit)10200 W 12 /Times-Bold AF 6120 61949 MT (7.2.2. Questions and Answers about Sliding Windows)SH 10 SS 6120 63891 MT (Q.)SH /Times-Roman SF 8120 XM (What is the purpose of the "windowing" extension?)SH /Times-Bold SF 6120 65468 MT (A.)SH /Times-Roman SF 8120 XM (The object) 64 W( is to speed up file transfers using Kermit. The increase will be especially noticeable over the data)63 W 8120 66573 MT (networks \050such as Telenet) 99 W( and Tymnet\051 and over connections using satellite links. This is because there are)100 W 8120 67678 MT (long communications delays over these connections.)SH /Times-Bold SF 6120 69255 MT (Q.)SH /Times-Roman SF 8120 XM (How does it work?)SH /Times-Bold SF 6120 70832 MT (A.)SH /Times-Roman SF 8120 XM (Basically, it allows you to send several packets out in a row before getting the first) 12 W( acknowledgment back. The)11 W 8120 71937 MT (number of packets that can be sent out is set by the "window size", hence the name windowing.)SH ES %%Page: 49 50 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 49)SH 46800 50 8280 5709 UL /Times-Bold SF 8280 7886 MT (Q.)SH /Times-Roman SF 10280 XM (Could you explain in more detail?)SH /Times-Bold SF 8280 9463 MT (A.)SH /Times-Roman SF 10280 XM (Right now, a system sending a file transmits one packet of data, then does nothing) 76 W( more until it gets back an)77 W 10280 10568 MT (acknowledgment that the packet has been received. Once it) 53 W( gets an acknowledgment, it sends the next packet)52 W 10280 11673 MT (of data.) 277 W( Over) 806 W( standard direct-dial land-based phone lines, the transmission delays are relatively small.)278 W 10280 12778 MT (However, the public data networks or satellite links can introduce delays of up to several) 82 W( seconds round trip.)81 W 10280 13883 MT (As a result, the sending system ends up spending much more time waiting than actually sending data.)SH 10280 15460 MT (With the new windowing enhancement, the sending system will be able to) 133 W( keep sending data continuously,)134 W 10280 16565 MT (getting the acknowledgments) 101 W( back later. It only has to stop sending data if it reaches the end of the current)100 W 10280 17670 MT ("window" without getting an acknowledgment for the first packet in the current "window".)SH /Times-Bold SF 8280 19247 MT (Q.)SH /Times-Roman SF 10280 XM (What size is the "window"?)SH /Times-Bold SF 8280 20824 MT (A.)SH /Times-Roman SF 10280 XM (The window size can vary depending on what the two) 7 W( ends of the connection agree on. The suggested standard)8 W 10280 21929 MT (window size will be 8 packets. The maximum is 31 packets.)SH 10280 23506 MT (The Kermit sequence numbering is) 162 W( modulo 64 \050it "wraps" back to the 1st sequence number after the 64th)161 W 10280 24611 MT (sequence number\051. It is helpful) 187 W( to limit the maximum window size to 31 to avoid problems \050ambiguous)188 W 10280 25716 MT (sequence numbers\051 under certain error conditions.)SH /Times-Bold SF 8280 27293 MT (Q.)SH /Times-Roman SF 10280 XM (Is windowing in effect throughout a Kermit session?)SH /Times-Bold SF 8280 28870 MT (A.)SH /Times-Roman SF 10280 XM (No, it is only in effect during the actual data) 144 W( transfer \050data packets\051 portion of a file transfer. Windowing)143 W 10280 29975 MT (begins with the first data packet \050D packet type\051, and stops when you get an End-of-File packet \050Z packet type\051.)SH /Times-Bold SF 8280 31552 MT (Q.)SH /Times-Roman SF 10280 XM (Why does it stop when you get to the End-of-File packet?)SH /Times-Bold SF 8280 33129 MT (A.)SH /Times-Roman SF 10280 XM (This is done primarily to avoid having more than one file open at once.)SH /Times-Bold SF 8280 34706 MT (Q.)SH /Times-Roman SF 10280 XM (Why will windowing be especially helpful at higher baud rates over communications paths that have delays?)SH /Times-Bold SF 8280 36283 MT (A.)SH /Times-Roman SF 10280 XM (As you increase the baud rate,) 93 W( the transmission speed of the data increases, but you do not change the delay)94 W 10280 37388 MT (caused by the communications path. As a result, the delay becomes more and more significant.)SH 10280 38965 MT (Assume, for example, that your communications path introduces a delay of 1 second each way) 38 W( for packets, for)37 W 10280 40070 MT (a total delay of 2 seconds round trip. Assume also that your packets have 900 bits in) 83 W( them so it takes you 3)84 W 10280 41175 MT (seconds to send a packet at 300 baud \050this is roughly equivalent to a typical Kermit packet\051.)SH 10280 42752 MT (WITHOUT windowing, here is what happens:)SH 10280 44329 MT (If at 300 baud you transmitted data for 3 seconds \050sending 900 bits\051, then waited) 275 W( 2 seconds for each)274 W 10280 45434 MT (acknowledgment, your throughput would be roughly) 30 W( 180 baud. \050Total time for each transmission = 5 seconds.)31 W 10280 46539 MT (900/5 = 180\051.)SH 10280 48116 MT (However, if you went to 2400 baud, you would transmit data for 3/8 second, then wait) 183 W( 2 seconds for an)182 W 10280 49221 MT (acknowledgment. \050Total) 268 W( time for each transmission = 2 and 3/8 seconds\051.) 9 W( The) 270 W( throughput would increase only)10 W 10280 50326 MT (to about 378 baud. \050900 / 2.375 = 378\051.)SH 10280 51903 MT (The delay becomes the limiting) 41 W( factor; in this case, with this packet size, the delay sets an outside limit of 450)40 W 10280 53008 MT (baud \050900 / 2 second delay = 450\051, no matter how fast the modem speed.)SH 10280 54585 MT (WITH windowing, the) 97 W( throughput should be close to the actual transmission speed. It should be possible to)98 W 10280 55690 MT (send data nearly continuously. The exact speed will depend on the window size, length of transmission delays,)18 W 10280 56795 MT (and error rate.)SH /Times-Bold SF 8280 58372 MT (Q.)SH /Times-Roman SF 10280 XM (Are there any new packet types introduced by this extension?)SH /Times-Bold SF 8280 59949 MT (A.)SH /Times-Roman SF 10280 XM (No, the only change is) 27 W( to the contents of the Send-Init packet, to arrange for windowing if both sides can do it.)28 W 10280 61054 MT (If either side cannot, Kermit will work) 2 W( as it does now. Adding an extension such as this was provided for in the)1 W 10280 62159 MT (original Kermit definition. See section 3 of the windowing definition for details.)SH /Times-Bold SF 8280 63736 MT (Q.)SH /Times-Roman SF 10280 XM (On the receive side, in section 4.2,) 258 W( why does the definition say that writing to disk is done when the)259 W 10280 64841 MT (Receive-Table becomes full rather than as soon as you get a good packet?)SH /Times-Bold SF 8280 66418 MT (A.)SH /Times-Roman SF 10280 XM (The definition was phrased this way because it makes the) 172 W( logic of the receive side clearer and simpler to)171 W 10280 67523 MT (implement.)SH 10280 69100 MT (Actually, you could also write a packet to disk when it is a good packet and) 13 W( it is the earliest entry in the receive)14 W 10280 70205 MT (table. This) 376 W( approach has the disadvantage that you don't know at this point that the sender has received) 63 W( your)62 W 10280 71310 MT (ACK, so you have to be prepared to handle the same packet later on if the sender) 74 W( never gets the ACK, times)75 W ES %%Page: 50 51 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 50)SH 46800 50 6120 5709 UL /Times-Roman SF 8120 7886 MT (out, and sends the same packet again. Thus you have) 152 W( to be prepared to deal with packets previous to the)151 W 8120 8991 MT (current window; you will have to ACK such a packet if it has been received properly before.)SH 8120 10568 MT (By writing packets to disk only when) 129 W( the receive table becomes full, \050the oldest packet\051 you know that the)130 W 8120 11673 MT (sender has received your ACK \050otherwise the sender) 45 W( could not have rotated the window to the n+1 position to)44 W 8120 12778 MT (send the current packet, where n is the window size\051. This makes it very) 25 W( easy to stay in synch with the sender.)26 W 8120 13883 MT (The disadvantage of this approach is that) 14 W( when you receive the End-of-File packet, you have to take the time to)13 W 8120 14988 MT (write all the remaining packets in the Receive-Table to disk.)SH /Times-Bold SF 6120 16565 MT (Q.)SH /Times-Roman SF 8120 XM (Could you briefly explain what happens if a single packet gets corrupted?)SH /Times-Bold SF 6120 18142 MT (A.)SH /Times-Roman SF 8120 XM (In essence, the receiver will ignore the bad packet. When) 47 W( it gets the next good packet, it will realize \050because)48 W 8120 19247 MT (packets are numbered\051 that one or) 52 W( more packets were lost, and NAK those packets. The receiver continues to)51 W 8120 20352 MT (accept good data.)SH 8120 21929 MT (As long as the sender's window does not become "blocked", the only loss of throughput will) 119 W( be the time it)120 W 8120 23034 MT (takes to transmit the NAK'd packets.)SH /Times-Bold SF 6120 24611 MT (Q.)SH /Times-Roman SF 8120 XM (There are currently two proposals for) 12 W( Kermit extensions: the Windowing extension and a proposal for extended)11 W 8120 25716 MT (packet lengths. What are the relative advantages and disadvantages of sliding windows and extended packet)91 W 8120 26821 MT (lengths?)SH /Times-Bold SF 6120 28398 MT (A.)SH /Times-Roman SF 8120 XM (What is best depends) 20 W( on the exact conditions and systems involved in a particular file transfer. There are some)19 W 8120 29503 MT (general rules however.)SH 8120 31080 MT (Windowing helps more and more as the communications path delays get longer.)SH 8120 32657 MT (Windowing is also more and more helpful as the baud rate goes up.)SH 8120 34234 MT (Increased packet length is most helpful on circuits with low error rates. If the error rate) 66 W( is high, it is difficult)67 W 8120 35339 MT (for a long packet to get through uncorrupted. Also, it then takes longer to re-transmit the corrupted packet.)SH 8120 36916 MT (On some machines, the CPU time to process a packet is relatively constant no matter what) 9 W( the packet length, so)8 W 8120 38021 MT (longer packets can reduce CPU time.)SH /Times-Bold SF 6120 39598 MT (Q.)SH /Times-Roman SF 8120 XM (Are extended packet lengths and sliding windows mutually exlusive?)SH /Times-Bold SF 6120 41175 MT (A.)SH /Times-Roman SF 8120 XM (No, there is no real reason that they would have to be. As a practical matter, it is slightly easier to implement)48 W 8120 42280 MT (windowing if you know the maximum packet size ahead) 59 W( of time, since you can then just use an array to store)58 W 8120 43385 MT (your data. In standard Kermit, you know automactically that your maximum packet length is) 80 W( 94, so you can)81 W 8120 44490 MT (just go ahead and dimension an array at 94 by Window-size.)SH 8120 46067 MT (If you are going to use both extended) 84 W( packet length and windowing, you need to select the maximum packet)83 W 8120 47172 MT (length and window-size so that the combination does) 127 W( not exceed the available memory for each side of the)128 W 8120 48277 MT (transfer.)SH 8120 49854 MT (In addition, it is possible to see the desired relationship between packet size and windowing) 77 W( for various baud)76 W 8120 50959 MT (rates and communications delays. For the common case of an error corrected) 129 W( by one retransmission of the)130 W 8120 52064 MT (corrupted packet, the minimum window size needed for continuous throughput) 276 W( \050the window never gets)275 W 8120 53169 MT ("blocked"\051 can be calculated by:)SH /Courier SF 18120 54824 MT (4 x delay x baud rate)SH 9720 55855 MT (WS >) 600 W( 1) 1200 W( + ------------------------)SH 19920 56886 MT (packet-size x 10)SH /Times-Roman SF 35520 XM (\050this is the # of bits\051)SH 8120 58603 MT (Windowing always helps \050the minimal continuous throughput window size is always greater than 1\051.)SH 8120 60180 MT (In the above equation, the "4" derives from the fact that a corrupted packet has 4 transit times involved:)SH /Symbol SF 9910 62085 MT (\267)SH /Times-Roman SF 10620 XM (Original \050bad checksum\051 packet)SH /Symbol SF 9910 63190 MT (\267)SH /Times-Roman SF 10620 XM (NAK for the packet)SH /Symbol SF 9910 64295 MT (\267)SH /Times-Roman SF 10620 XM (Retransmission of packet)SH /Symbol SF 9910 65400 MT (\267)SH /Times-Roman SF 10620 XM (ACK for retransmission.)SH 8120 67191 MT (All of this must happen before the window becomes blocked.)SH 8120 68768 MT (The "delay" is the effective maximum one-way communications path delay, which includes any CPU delays.)SH 8120 70345 MT (Strictly speaking, the "packet-size" should have the length of the ACK packets added to it.)SH 8120 71922 MT (As an example, if you assume a 2-second \050one-way\051) 216 W( delay, at 1200 baud, with a packet size of 94, the)217 W ES %%Page: 51 52 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 51)SH 46800 50 8280 5709 UL /Times-Roman SF 10280 7886 MT (minimum window size for continuous throughput would be:)SH /Courier SF 16680 9541 MT (4 x 2 x 1200)SH 12480 10572 MT (WS > ------------ =) 600 W( 10.2)1200 W 17880 11603 MT (94 x 10)SH /Times-Roman SF 10280 13320 MT (Under these circumstances, a window size of at least 11 should be chosen, if possible.)SH 12 /Times-Bold AF 8280 16436 MT (7.2.3. More Q-and-A About Windows)SH 10 /Times-Roman AF 8280 18378 MT (While reading the following questions and) 258 W( answers, keep in mind that the Kermit windowing definiton was)257 W 8280 19574 MT (developed to handle a common situation of long circuit delays with possible moderate) 46 W( error rates. Kermit does not)47 W 8280 20770 MT (need this type) 96 W( of extension for clean lines with insignificant delays - Kermit could be left alone, or use Extended)95 W 8280 21966 MT (Packet Lengths, in such environments.)SH 8280 24358 MT (Long delays with significant error rates will occur under two obvious and common conditions:)SH 10280 26149 MT (1.)SH 11280 XM (Local phone line \050of uncertain quality\051 to Public Data Networks \050such as Telenet\051.)SH 10280 28359 MT (2.)SH 11280 XM (Satellite phone links. These often occur with the lower-priced phone services, which often) 63 W( also have)64 W 11280 29464 MT (noisier lines. In addition, satellite links will increase as more people need to transfer data overseas.)SH 8280 31255 MT (The above conditions will become) 211 W( more common, as well increased baud rates, which make the delays more)210 W 8280 32451 MT (significant.)SH 8280 34843 MT (As an aside, note that the benefit of Extended Packet) 153 W( Lengths over the Public Data Networks is limited by the)154 W 8280 36039 MT (number of outstanding bytes the) 99 W( PDN allows. \050Internally, the PDNs require end-to-end acknowledgement. They)98 W 8280 37235 MT (use their own windowing system within the network.\051 I don't currently know the exact impact of this.)SH 8280 39627 MT (Now on to the questions...)SH /Times-Bold SF 8280 41418 MT (Q.)SH /Times-Roman SF 10280 XM (Can sliding windows be done on half-duplex channels? Are any modifications to the proposal required?)SH /Times-Bold SF 8280 42995 MT (A.)SH /Times-Roman SF 10280 XM (An underlying assumption in the development of windowing was that there was a full-duplex channel.)SH 10280 44572 MT (The intent of windowing is to try to keep the sender continuously sending data. Obviously, this is not possible)29 W 10280 45677 MT (on a half-duplex channel. A better solution for half-duplex channels would be to) 172 W( use an extended packet)171 W 10280 46782 MT (length.)SH 10280 48359 MT (An attempt to) 24 W( use windowing on half-duplex really is just a way of doing extended packet lengths. The sender)25 W 10280 49464 MT (would send out a group of packets, then wait and get a group of ACKS. It would) 13 W( be better to simply send out a)12 W 10280 50569 MT (large packet, which would have less overhead.)SH /Times-Bold SF 8280 52146 MT (Q.)SH /Times-Roman SF 10280 XM (Is the cost in complexity for sliding windows worth the increase in performance?)SH /Times-Bold SF 8280 53723 MT (A.)SH /Times-Roman SF 10280 XM (Under the conditions described above \050long delays and possibly significant error rates\051 windowing) 14 W( can increase)15 W 10280 54828 MT (performance by a factor of 2, 3, or more, especially at) 80 W( higher baud rates. This increase is necessary to make)79 W 10280 55933 MT (Kermit viable under some conditions. With classic Kermit over the Public) 248 W( Data Networks, I have had)249 W 10280 57038 MT (througput as low as 250 baud over a 1200 baud circuit \050with a negligible) 34 W( error rate\051. Windowing should allow)33 W 10280 58143 MT (throughput close to the maximum baud rate.)SH 10280 59720 MT (Windowing is most helpful when the delay is significant in relation to data sending) 49 W( time. Any delay becomes)50 W 10280 60825 MT (more significant as users move to higher baud rates \0502400 baud and beyond\051.)SH 10280 62402 MT (The complexity of implementing) 91 W( windowing has yet to be fully evaluated. The first implementation \050for the)90 W 10280 63507 MT (IBM PC using C-Kermit\051 proved) 246 W( to be fairly manageable. It appears that the windowing logic can be)247 W 10280 64612 MT (implemented so that Kermit Classic uses the same code, but) 147 W( with a window size of 1, which should avoid)146 W 10280 65717 MT (having to keep separate sections of code.)SH 10280 67294 MT (The windowing definiton) 67 W( was developed with the idea of keeping changes to Kermit to a minimum. No new)68 W 10280 68399 MT (packet types were developed, ACKs and NAKS were kept the same, and windowing is in effect only) 95 W( during)94 W 10280 69504 MT (actual data transfer \050D packets\051. We tried to define the protocol so that a window) 18 W( size of 1 was the same as the)19 W 10280 70609 MT (current classic Kermit.)SH ES %%Page: 52 53 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 52)SH 46800 50 6120 5709 UL /Times-Roman SF 8120 7886 MT (These factors should help reduce the complexity of implementing windowing. We currently have) 91 W( a working)90 W 8120 8991 MT (implementation of Kermit for the IBM PC going through testing.)SH 8120 10568 MT (It's fun to see the modem "Send" light stay on constantly!)SH /Times-Bold SF 6120 12145 MT (Q.)SH /Times-Roman SF 8120 XM (Why doesn't the Windowing proposal use a "bulk ACK"?)SH /Times-Bold SF 6120 13722 MT (A.)SH /Times-Roman SF 8120 XM (There are a couple of possibilities for ways to use some) 44 W( sort of "bulk" or combined ACK. We looked at them)45 W 8120 14827 MT (when developing the Windowing definition. We did not see any advantages that outweighed the disadvantages.)SH 8120 16404 MT (Here are two possible ways of changing how ACKs would work:)SH 10120 18195 MT (1.)SH 11120 XM (An ACK for any packet would also ACK all previous packets. The) 51 W( concept that an ACK would)50 W 11120 19300 MT (also ACK all previous packets seems attractive at) 33 W( first, since it would appear to reduce overhead.)34 W 11120 20405 MT (However, it has a major drawback in that you then must re-synch when you get errors. This) 85 W( is)84 W 11120 21510 MT (because, once you have an error, you have) 364 W( to send a NAK, then stop and wait for a)365 W 11120 22615 MT (re-transmission of the NAK'd packet, before you send out any more ACKs. \050If you sent out an)72 W 11120 23720 MT (ACK for a later packet, it would imply that) 72 W( you had received the NAK'd packet. Not until you)73 W 11120 24825 MT (safely get) 104 W( the re-transmission can you go ahead.\051 This would negate one of the nicest parts of)103 W 11120 25930 MT (windowing as it is defined now,) 140 W( which is that the sender can transmit continuously, including)141 W 11120 27035 MT (during error) 52 W( recovery, as long as the window does not become blocked. It does not appear to us)51 W 11120 28140 MT (that the reduction in the number of ACKs sent is worth this penalty. In addition, this) 208 W( is a)209 W 11120 29245 MT (departure from the way ACKs in Kermit work now. It) 87 W( seemed best to make as few changes to)86 W 11120 30350 MT (Kermit as possible. If this facility turns out to be) 93 W( useful, it would be better to introduce a new)94 W 11120 31455 MT (packet type \050or other means of distinguishing regular ACKs from "Bulk ACKS"\051.)SH 10120 33665 MT (2.)SH 11120 XM (A new "Bulk ACK" packet) 53 W( type could be developed. This did not seem to us to be a good idea,)52 W 11120 34770 MT (since it required defining a new packet type. We were trying to fit) 114 W( windowing in with as few)115 W 11120 35875 MT (changes to Kermit as possible. A "Bulk ACK", in which one packet could contain) 24 W( a whole string)23 W 11120 36980 MT (of ACKs and NAKs, also seems like a good idea) 30 W( at first. The penalty here is a little more subtle.)31 W 11120 38085 MT (First, if you lose) 152 W( a "Bulk ACK" packet, you lose more information and it takes longer to get)151 W 11120 39190 MT (things flowing) 168 W( smoothly again. Second, and probably more importantly, efficient windowing)169 W 11120 40295 MT (depends on the window never becoming "blocked") 39 W( \050i.e., the sender can always keep sending\051. A)38 W 11120 41400 MT ("Bulk ACK" interferes with this to some extent, because if you have) 154 W( a long delay, the "Bulk)155 W 11120 42505 MT (ACK" with its multiple individual ACKs may not get back to the) 97 W( sender in time to prevent the)96 W 11120 43610 MT (window from becoming blocked. With the current definition of windowing,) 98 W( returning an ACK)99 W 11120 44715 MT (for each packet gets the ACKs \050or NAKs\051 to the sender as soon) 93 W( as possible. This provides the)92 W 11120 45820 MT (best chance for) 1 W( keeping the window open so that the sender can transmit continually. Once again,)2 W 11120 46925 MT (remember the) 165 W( conditions under which windowing is most useful: long delays with significant)164 W 11120 48030 MT (error rates. Under these) 43 W( conditions, individual ACKs have advantages. If these conditions don't)44 W 11120 49135 MT (apply, it may not be necessary to use windowing, or it may be better to use) 157 W( extended packet)156 W 11120 50240 MT (lengths.)SH ES %%Page: 53 54 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 53)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (8. Kermit Commands)SH 10 /Times-Roman AF 8280 10566 MT (The following list of Kermit commands and terms is suggested.) 5 W( It) 261 W( is not intended to recommend a particular style of)6 W 8280 11762 MT (command parsing, only to promote a consistent vocabulary, both in documentation and in choosing the names for)85 W 8280 12958 MT (commands.)SH 14 /Times-Bold AF 8280 16560 MT (8.1. Basic Commands)SH 10 /Times-Roman AF 8280 18678 MT (SEND)SH 12280 XM (This verb tells a Kermit program to send one or more files from its own file structure.)SH 8280 20255 MT (RECEIVE)SH 12280 21360 MT (This verb should tell a Kermit program to expect one or more files to arrive.)SH 8280 22937 MT (GET)SH 12280 XM (This verb should tell a user Kermit to send one or more files. Some Kermit implementations have separate)SH 12280 24042 MT (RECEIVE and GET commands; others use RECEIVE for both purposes, which creates confusion.)SH 8280 25833 MT (Since it can be useful, even necessary, to specify different names for source and destination files, these commands)64 W 8280 27029 MT (should take operands as follows \050optional operands in [brackets]\051:)SH 8280 28820 MT (SEND local-source-filespec [remote-destination-filespec])SH 12280 29925 MT (If the destination file specification is) 78 W( included, this will go in the file header packet, instead of the file's)79 W 12280 31030 MT (local name.)SH 8280 32607 MT (RECEIVE [local-destination-filespec])SH 12280 33712 MT (If the destination filespec is given, the incoming file will be stored under that name,) 29 W( rather than the one in)30 W 12280 34817 MT (the file header pakcet.)SH 8280 36394 MT (GET remote-source-filespec [local-destination-filespec])SH 12280 37499 MT (If the destination filespec is given, the incoming file will be stored under that name,) 29 W( rather than the one in)30 W 12280 38604 MT (the file header packet.)SH 8280 40395 MT (If a file group is being sent or received, alternate names should)181 W /Times-Italic SF 35863 XM (not)SH /Times-Roman SF 37572 XM (be used. It) 181 W( may be necessary to adopt a)180 W 8280 41591 MT (multi-line syntax for these commands when filespecs may contain characters that are also valid) 163 W( command field)164 W 8280 42787 MT (delimiters.)SH 14 /Times-Bold AF 8280 46389 MT (8.2. Program Management Commands)SH 10 /Times-Roman AF 8280 48507 MT (EXIT)SH 12280 XM (Leave the Kermit program, doing) 20 W( whatever cleaning up must be done -- deassigning of devices, closing of)19 W 12280 49612 MT (files, etc.)SH 8280 51189 MT (QUIT)SH 12280 XM (Leave the Kermit program without cleaning up, in such) 60 W( a manner as to allow further manipulation of the)61 W 12280 52294 MT (files and devices.)SH 8280 53871 MT (PUSH)SH 12280 XM (Preserve the current Kermit environment and enter the system command processor.)SH 8280 55448 MT (TAKE)SH 12280 XM (Read and execute Kermit program commands from a local file.)SH 8280 57025 MT (LOG)SH 12280 XM (Specify a log for file transfer transactions, or for terminal session logging.)SH 14 /Times-Bold AF 8280 60627 MT (8.3. Terminal Emulation Commands)SH 10 /Times-Roman AF 8280 62745 MT (CONNECT)SH 12280 63850 MT (This verb, valid only for a local Kermit, means to go into terminal emulation mode; present the illusion of)23 W 12280 64955 MT (being directly connected as a terminal) 82 W( to the remote system. Provide an "escape character" to allow the)81 W 12280 66060 MT (user to "get) 74 W( back" to the local system. The escape character, when typed, should take a single-character)75 W 12280 67165 MT (argument; the following are suggested:)SH 14280 68956 MT (0)SH 16280 XM (\050zero\051 Transmit a NUL)SH 14280 70061 MT (B)SH 16280 XM (Transmit a BREAK)SH 14280 71166 MT (C)SH 16280 XM (Close the connection, return to local Kermit command level)SH ES %%Page: 54 55 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 54)SH 46800 50 6120 5709 UL /Times-Roman SF 12120 7886 MT (P)SH 14120 XM (Push to system command processor)SH 12120 8991 MT (Q)SH 14120 XM (Quit logging \050if logging is being done\051)SH 12120 10096 MT (R)SH 14120 XM (Resume logging)SH 12120 11201 MT (S)SH 14120 XM (Show status of connection)SH 12120 12306 MT (?)SH 14120 XM (Show the available arguments to the escape character)SH /Times-Italic SF 12120 13411 MT (\050a second copy of the escape character\051)SH /Times-Roman SF (: Transmit) 250 W( the escape character itself)SH 10120 15202 MT (Lower case equivalents should be accepted. If any invalid argument is typed, issue a beep.)SH 6120 16993 MT (Also see the SET command.)SH 14 /Times-Bold AF 6120 20595 MT (8.4. Special User-Mode Commands)SH 10 /Times-Roman AF 6120 22713 MT (These commands are used only by Users of Servers.)SH 6120 24504 MT (BYE)SH 10120 XM (This command sends a message to the remote server to log itself out,) 120 W( and upon successful completion,)119 W 10120 25609 MT (terminate the local Kermit program.)SH 6120 27186 MT (FINISH)SH 10120 XM (This command causes the remote server to shut itself down gracefully without logging out its) 31 W( job, leaving)32 W 10120 28291 MT (the local Kermit at Kermit command level, allowing the user to re-CONNECT to the remote job.)SH 14 /Times-Bold AF 6120 31893 MT (8.5. Commands Whose Object Should Be Specified)SH 10 /Times-Roman AF 6120 34011 MT (Some Kermit implementations include various local) 58 W( file management services and commands to invoke them. For)57 W 6120 35207 MT (instance, an implementation might have commands to let you get directory listings,) 95 W( delete files, switch disks, and)96 W 6120 36403 MT (inquire about free disk space) 74 W( without having to exit and restart the program. In addition, remote servers may also)73 W 6120 37599 MT (provide such services. A user Kermit must be able to distinguish between commands aimed at its own system) 54 W( and)55 W 6120 38795 MT (those aimed) 91 W( at the remote one. When any confusion is possible, such a command may be prefixed by one of the)90 W 6120 39991 MT (following "object prefixes":)SH 6120 41782 MT (REMOTE)SH 10120 42887 MT (Ask the remote Kermit server to provide this service.)SH 6120 44464 MT (LOCAL)SH 10120 XM (Perform the service locally.)SH 6120 46856 MT (If the "object prefix" is omitted, the command should be executed locally. The services include:)SH 6120 48647 MT (LOGIN)SH 10120 XM (This should be used in its timesharing sense, to create) 3 W( an identity \050"job", "session", "access", "account"\051 on)2 W 10120 49752 MT (the system.)SH 6120 51329 MT (LOGOUT)SH 10120 52434 MT (To terminate a session that was initiated by LOGIN.)SH 6120 54011 MT (COPY)SH 10120 XM (Make a new copy of the specified file with the specified name.)SH 6120 55588 MT (CWD)SH 10120 XM (Change Working Directory.) 72 W( This) 393 W( is ugly, but more natural verbs like CONNECT and ATTACH are too)71 W 10120 56693 MT (imprecise. CWD) 250 W( is the ARPAnet file transfer standard command to invoke this function.)SH 6120 58270 MT (DIRECTORY)SH 10120 59375 MT (Provide a list of the names,) 64 W( and possibly other attributes, of the files in the current working directory \050or)63 W 10120 60480 MT (the specified directory\051.)SH 6120 62057 MT (DELETE)SH 10120 XM (Delete the specified files.)SH 6120 63634 MT (ERASE)SH 10120 XM (This could be a synomym for DELETE, since its meaning is clear.)SH 12120 65425 MT (\050It doesn't seem wise to include UNDELETE or UNERASE in the standard list;) 81 W( most systems)82 W 12120 66530 MT (don't support such a function, and users' expectations should not be toyed with...\051)SH 6120 68321 MT (KERMIT)SH 10120 XM (Send a command to the remote Kermit server in its own interactive command syntax.)SH 6120 69898 MT (RENAME)SH 10120 71003 MT (Change the name of the specified file.)SH ES %%Page: 55 56 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 55)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (TYPE)SH 12280 XM (Display the contents of the specified file\050s\051 at the terminal.)SH 8280 9463 MT (SPACE)SH 12280 XM (Tell how much space is used and available for storing) 199 W( files in the current working directory \050or the)200 W 12280 10568 MT (specified directory\051.)SH 8280 12145 MT (SUBMIT)SH 12280 XM (Submit the specified file\050s\051 for background \050batch\051 processing.)SH 8280 13722 MT (PRINT)SH 12280 XM (Print the specified file\050s\051 on a printer.)SH 8280 15299 MT (MOUNT)SH 12280 XM (Request a mount of the specified tape, disk, or other removable storage medium.)SH 8280 16876 MT (WHO)SH 12280 XM (Show who is) 192 W( logged in \050e.g. to a timesharing system\051, or give information about a specified user or)191 W 12280 17981 MT (network host.)SH 8280 19558 MT (MAIL)SH 12280 XM (Send electronic mail to the specified user\050s\051.)SH 8280 21135 MT (MESSAGE)SH 12280 22240 MT (Send a terminal message \050on a network or timesharing system\051.)SH 8280 23817 MT (HELP)SH 12280 XM (Give brief information about how to use Kermit.)SH 8280 25394 MT (SET)SH 12280 XM (Set various parameters relating to debugging, transmission, file mode, and so forth.)SH 8280 26971 MT (SHOW)SH 12280 XM (Display settings of SET parameters, capabilities in force, etc.)SH 8280 28548 MT (STATISTICS)SH 12280 29653 MT (Give information about the performance of the most recent file transfer -- elapsed time,) 128 W( effective baud)129 W 12280 30758 MT (rate, various counts, etc.)SH 8280 32335 MT (HOST)SH 12280 XM (Pass the given command string to the specified \050i.e. remote or local\051 host) 229 W( for execution in its own)228 W 12280 33440 MT (command language.)SH 8280 35017 MT (LOGGING)SH 12280 36122 MT (Open or close a transaction or debugging log.)SH 14 /Times-Bold AF 8280 39724 MT (8.6. The SET Command)SH 10 /Times-Roman AF 8280 41842 MT (A SET command should be provided to allow the user to tailor a connection to the peculiarities of the)341 W 8280 43038 MT (communication path, the local or remote file system, etc. Here are some parameters that should be SET-able:)SH 8280 44829 MT (BLOCK-CHECK)SH 12280 45934 MT (Specify the type of block check to be used:) 229 W( single character checksum, two-character checksum, 3-)228 W 12280 47039 MT (character CRC.)SH 8280 48616 MT (DEBUGGING)SH 12280 49721 MT (Display or log the packet traffic, packet numbers, and/or program states. Useful for debugging) 191 W( new)190 W 12280 50826 MT (versions of Kermit, novel combinations of Kermit programs, etc.)SH 8280 52403 MT (DELAY)SH 12280 XM (How many seconds a remote \050non-server\051 Kermit should wait before sending the) 24 W( Send-Init packet, to give)25 W 12280 53508 MT (the user time to escape back to the local Kermit and type a RECEIVE command.)SH 8280 55085 MT (DISPLAY)SH 12280 56190 MT (Style of file transfer display \050NONE, SERIAL, SCREEN, etc\051.)SH 8280 57767 MT (DUPLEX)SH 12280 XM (For terminal emulation, specify FULL or HALF duplex echoing.)SH 8280 59344 MT (END-OF-LINE)SH 12280 60449 MT (Specify any line terminator that must be used after a packet.)SH 8280 62026 MT (ESCAPE)SH 12280 XM (Specify the escape character for terminal emulation.)SH 8280 63603 MT (FILE attributes)SH 12280 64708 MT (Almost any of the) 37 W( attributes listed above in the Attributes section \0506.5\051. The most common need is to tell)38 W 12280 65813 MT (the Kermit program whether an incoming or outbound file is text or binary.)SH 8280 67390 MT (FLOW-CONTROL)SH 12280 68495 MT (Specify the flow control mechanism for the line, such as XON/XOFF, ENQ/ACK, DTR/CTS, etc.) 35 W( Allow)321 W 12280 69600 MT (flow control to be turned off \050NONE\051 as well as on. Flow control is done only on full-duplex connections.)SH 8280 71177 MT (HANDSHAKE)SH ES %%Page: 56 57 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 56)SH 46800 50 6120 5709 UL /Times-Roman SF 10120 7886 MT (Specify any line-access negotiation that must be used or simulated during file) 3 W( transfer. For instance, a half)4 W 10120 8991 MT (duplex system will often need to "turn) 193 W( the line around" after sending a packet, in order to give you)192 W 10120 10096 MT (permission to reply. A common handshake is XON \050)75 W /Courier SF (^Q)SH /Times-Roman SF (\051; the current user) 75 W( of the line transmits an XON)76 W 10120 11201 MT (when done transmitting data.)SH 6120 12778 MT (LINE)SH 10120 XM (Specify the line or device designator for the connection. This is for use in a Kermit program that can run)39 W 10120 13883 MT (in either) 101 W( remote or local mode; the default line is the controlling terminal \050for remote operation\051. If an)102 W 10120 14988 MT (external device is used, local operation is presumed.)SH 6120 16565 MT (LOG)SH 10120 XM (Specify a local file in which to keep a log of the transaction.) 56 W( There) 361 W( may be logs for debugging purposes)55 W 10120 17670 MT (\050packet traffic, state transitions, etc\051 and for auditing purposes \050to record the name) 26 W( and disposition of each)27 W 10120 18775 MT (file transferred\051.)SH 6120 20352 MT (MARKER)SH 10120 21457 MT (Change the start-of-packet marker from the default of SOH \050CTRL-A\051 to some other) 39 W( control character, in)40 W 10120 22562 MT (case one or both systems has problems using CTRL-A for this purpose.)SH 6120 24139 MT (PACKET-LENGTH)SH 10120 25244 MT (The maximum length for a packet. This should normally) 18 W( be no less than 30 or 40, and can be greater than)19 W 10120 26349 MT (94 only if the long-packet protocol extension is) 64 W( available, in which case it can be a much larger number,)63 W 10120 27454 MT (up to the maximum size allowed for) 73 W( the particular Kermit program \050but never greater than 9024\051. Short)74 W 10120 28559 MT (packets can be an advantage on noisy lines; they reduce the) 235 W( probabily of a particular packet being)234 W 10120 29664 MT (corrupted, as well as the retransmission overhead when corruption does) 228 W( occur. Long packets boost)229 W 10120 30769 MT (performance on clean lines.)SH 6120 32346 MT (PADDING)SH 10120 33451 MT (The number of padding characters that should) 38 W( be sent before each packet, and what the padding character)39 W 10120 34556 MT (should be. Rarely necessary.)SH 6120 36133 MT (PARITY)SH 10120 XM (Specify the parity \050ODD, EVEN, MARK, SPACE, NONE\051 of the physical connection.) 9 W( If) 267 W( other than none,)8 W 10120 37238 MT (the "8th bit" cannot be used to transmit data and must not be used by either) 255 W( side in block check)256 W 10120 38343 MT (computation.)SH 6120 39920 MT (PAUSE)SH 10120 XM (How many seconds to pause after receiving a packet before sending the next packet. Normally 0,) 131 W( but)130 W 10120 41025 MT (when a system communication processor or front end has trouble keeping up with) 8 W( the traffic, a short pause)9 W 10120 42130 MT (between packets may allow it to recover its wits; hopefully, something under a second will suffice.)SH 6120 43707 MT (PREFIX)SH 10120 XM (Change the default prefix for control characters, 8-bit characters, or repeated quantities.)SH 6120 45284 MT (PROMPT)SH 10120 46389 MT (Change the program's prompt. This is useful when running Kermit between) 10 W( two systems whose prompt is)11 W 10120 47494 MT (the same, to eliminate confusion about which Kermit you are talking to.)SH 6120 49071 MT (REPEAT-COUNT-PROCESSING)SH 10120 50176 MT (Change the default for repeat count processing. Normally, it will) 52 W( be done if both Kermit programs agree)53 W 10120 51281 MT (to do it.)SH 6120 52858 MT (RETRY)SH 10120 XM (The maximum number of times to) 152 W( attempt to send or receive a packet before giving up. The normal)151 W 10120 53963 MT (number is about 5, but the user should be able to adjust it according to the condition of the line,) 58 W( the load)59 W 10120 55068 MT (on the systems, etc.)SH 6120 56645 MT (TIMEOUT)SH 10120 57750 MT (Specify the length of the timer to set when waiting for a packet to arrive.)SH 6120 59327 MT (WINDOW-SIZE)SH 10120 60432 MT (Maximum number) 54 W( of unacknowledged packets outstanding, when the sliding window option is available,)53 W 10120 61537 MT (usually between 4 and 31.)SH ES %%Page: 57 58 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 57)SH 46800 50 8280 5709 UL 14 /Times-Bold AF 8280 8138 MT (8.7. Macros, the DEFINE Command)SH 10 /Times-Roman AF 8280 10256 MT (In addition to the individual set commands, a "macro" facility is recommended to allow users to) 192 W( combine the)193 W 8280 11452 MT (characteristics of specific systems into a single SET option. For example:)SH /Courier SF 10680 13107 MT (DEFINE IBM = PARITY ODD, DUPLEX HALF, HANDSHAKE XON)SH 10680 14138 MT (DEFINE UNIX = PARITY NONE, DUPLEX FULL)SH 10680 15169 MT (DEFINE TELENET = PARITY MARK)SH /Times-Roman SF 8280 16886 MT (This could be done) 161 W( by providing a fancy runtime parser for commands like this \050which could be automatically)160 W 8280 18082 MT (TAKEn from the user's Kermit initialization file upon program startup\051,) 3 W( or simply hardwired into the SET command)4 W 8280 19278 MT (table.)SH 8280 21670 MT (With these definitions) 90 W( in place, the user would simply type "SET IBM", "SET UNIX", and so forth, to set up the)89 W 8280 22866 MT (program to communication to the remote system.)SH ES %%Page: 58 59 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 58)SH 46800 50 6120 5709 UL ES %%Page: 59 60 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 59)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (9. Kermit Programs)SH 14 SS 8280 11874 MT (9.1. Terminal emulation)SH 10 /Times-Roman AF 8280 13992 MT (The local system must be able to act as a terminal so that the user can connect to the remote system, log in,) 15 W( and start)16 W 8280 15188 MT (up the remote Kermit.)SH 8280 17580 MT (Terminal emulation should be) 52 W( provided by any Kermit program that runs locally, so that the user need not exit and)51 W 8280 18776 MT (restart the local Kermit program in order to switch) 78 W( between terminal and protocol operation. On smaller systems,)79 W 8280 19972 MT (this is) 184 W( particularly important for various reasons -- restarting the program and typing in all the necessary SET)183 W 8280 21168 MT (commands is too inconvenient and time-consuming; in some micros, switching in and out) 131 W( of terminal emulation)132 W 8280 22364 MT (may cause carrier to drop, etc.)SH 8280 24756 MT (Only bare-bones terminal emulation need be supplied by Kermit; there is no need to emulate any particular kind) 48 W( of)47 W 8280 25952 MT ("smart" terminal. Simple "dumb" terminal emulation is sufficient to do the job. Emulation of) 71 W( fancier terminals is)72 W 8280 27148 MT (nice to have, however, to take advantage of the remote system's editing and display) 110 W( capabilities. In some cases,)109 W 8280 28344 MT (microcomputer firmware will take care of this. To build emulation for a particular type of terminal into) 213 W( the)214 W 8280 29540 MT (program, you must interpret and act upon escape sequences as they arrive at the port.)SH 8280 31932 MT (No error) 144 W( checking is done during terminal emulation. It is "outside the protocol"; characters go back and forth)143 W 8280 33128 MT ("bare". In) 250 W( this sense, terminal emulation through Kermit is no better than actually using a real terminal.)SH 8280 35520 MT (Some Kermit implementations may allow logging) 67 W( of the terminal emulation session to a local file. Such a facility)68 W 8280 36716 MT (allows "capture" of) 90 W( remote typescripts and files, again with no error checking or correction. When this facility is)89 W 8280 37912 MT (provided, it is also desirable to have a convenient way of "toggling" the logging on and off.)SH 8280 40304 MT (If the local system) 277 W( does not provide system- or firmware-level flow control, like XON/XOFF, the terminal)278 W 8280 41500 MT (emulation program should attempt to simulate it, especially if logging is being done.)SH 8280 43892 MT (The terminal emulation facility should) 112 W( be able to handle either remote or local echoing \050full or half duplex\051, any)111 W 8280 45088 MT (required handshake, and) 64 W( it should be able to transmit any parity required by the remote side or the communication)65 W 8280 46284 MT (medium.)SH 8280 48676 MT (A terminal) 40 W( emulator works by continuously sampling both console input from the local terminal and input from the)39 W 8280 49872 MT (communication line. Simple input and output functions will not suffice, however, since if you ask) 45 W( for input from a)46 W 8280 51068 MT (certain device and there is none available, you will generally block until input)33 W /Times-Italic SF 40093 XM (does)SH /Times-Roman SF 42209 XM (become available, during which)32 W 8280 52264 MT (time you will be missing input from the other device. Thus you must have a way to bounce back and) 197 W( forth)198 W 8280 53460 MT (regardless of whether input is available. Several mechanisms are commonly used:)SH /Symbol SF 10070 55365 MT (\267)SH /Times-Roman SF 10780 XM (Continuously jump back and forth) 207 W( between the port status register and the console status register,)206 W 10780 56470 MT (checking the status) 259 W( bits for input available. This is only practical on single-user, single-process)260 W 10780 57575 MT (systems, where the CPU has nothing else to do.)SH /Symbol SF 10070 59564 MT (\267)SH /Times-Roman SF 10780 XM (Issue an ordinary blocking input request for the port, but enable interrupts) 134 W( on console input, or vice)133 W 10780 60669 MT (versa.)SH /Symbol SF 10070 62658 MT (\267)SH /Times-Roman SF 10780 XM (Handle port input in one process and console input in another, parallel process.) 144 W( The) 539 W( UNIX Kermit)145 W 10780 63763 MT (program listed in this manual uses this method.)SH 8280 65554 MT (Any input at the port should be displayed immediately on the screen.) 42 W( Any) 332 W( input from the console should be output)41 W 8280 66750 MT (immediately to the port. In addition,) 24 W( if the connection is half duplex, console input should also be sent immediately)25 W 8280 67946 MT (to the screen.)SH 8280 70338 MT (The terminal emulation code must examine each console character to determine whether it is the) 19 W( "escape character".)18 W 8280 71534 MT (If so, it should take the next character as a special command, which it executes. These commands are described)107 W ES %%Page: 60 61 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 60)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (above, in section 8.3.)SH 6120 10278 MT (The terminal emulator should) 39 W( be able to send every ASCII character, NUL through DEL, and it should also be able)38 W 6120 11474 MT (to transmit a BREAK signal \050BREAK is not a character, but) 67 W( an "escape" from ASCII transmission in which a 0 is)68 W 6120 12670 MT (put on the line for) 160 W( about a quarter of a second, regardless of the baud rate, with no framing bits\051. BREAK is)159 W 6120 13866 MT (important when communicating with various systems, such as IBM mainframes.)SH 6120 16258 MT (Finally, it is sometimes necessary to) 63 W( perform certain transformations on the CR character that is normally typed to)64 W 6120 17454 MT (end a line of input. Some systems use LF, EOT, or other characters for this function.) 153 W( To) 554 W( complicate matters,)152 W 6120 18650 MT (intervening communications equipment \050particularly the public packet-switched networks\051 may) 212 W( have their own)213 W 6120 19846 MT (independent requirements. Thus if using) 12 W( Kermit to communicate over, say, TRANSPAC with a system that uses LF)11 W 6120 21042 MT (for end-of-line, it may be necessary to transform CR) 6 W( into LFCR \050linefeed first -- the CR tells the network to send the)7 W 6120 22238 MT (packet, which will contain the LF, and the host uses the LF for termination\051.) 81 W( The) 411 W( user should be provided with a)80 W 6120 23434 MT (mechanism for specifying this transformation, a command like "SET CR)SH /Times-Italic SF 35498 XM (sequence)SH /Times-Roman SF (".)SH 14 /Times-Bold AF 6120 27036 MT (9.2. Writing a Kermit Program)SH 10 /Times-Roman AF 6120 29154 MT (Before writing a) 209 W( new implementation of Kermit or modifying an old one, first be sure to contact the Kermit)210 W 6120 30350 MT (Distribution center at Columbia University to make sure that you're) 56 W( not duplicating someone else's effort, and that)55 W 6120 31546 MT (you have all the latest material to work from.) 155 W( If) 562 W( you do write or significantly modify \050or document\051 a Kermit)156 W 6120 32742 MT (program, please send it back to Columbia so that) 78 W( it can be included in the standard Kermit distribution and others)77 W 6120 33938 MT (can benifit from it.) 57 W( It) 366 W( is only through this kind of sharing that Kermit has grown from its modest beginnings to its)58 W 6120 35134 MT (present scale.)SH 6120 37526 MT (The following sections provide some hints on Kermit programming.)SH 12 /Times-Bold AF 6120 40642 MT (9.2.1. Program Organization)SH 10 /Times-Roman AF 6120 42584 MT (A basic Kermit implementation) 171 W( can usually be written as a relatively small program, self-contained in a single)170 W 6120 43780 MT (source file. However, it is often the case that a program written to run on one system will be) 8 W( adapted to run on other)9 W 6120 44976 MT (systems as well.) 101 W( In) 451 W( that case, it is best to avoid having totally divergent sources, because when new features are)100 W 6120 46172 MT (added to \050or bugs fixed) 134 W( in\051 the system-independent parts of the program -- i.e. to the protocol itself -- only one)135 W 6120 47368 MT (implementation will reap the benefits initially, and the other will require painful, error-prone) 10 W( "retrofitting" to bring it)9 W 6120 48564 MT (up to the same level.)SH 6120 50956 MT (Thus, if there is) 121 W( any chance that a Kermit program will run on more than one machine, or under more than one)122 W 6120 52152 MT (operating system,) 207 W( or support more than one kind of port or modem, etc, it is desirable to isolate the system-)206 W 6120 53348 MT (dependent parts in a way that makes) 89 W( the common parts usable by the various implementations. There are several)90 W 6120 54544 MT (approaches:)SH 8120 56335 MT (1.)SH 9120 XM (Runtime support. If possible, the program can inspect the hardware or inquire of) 120 W( the system about)119 W 9120 57440 MT (relevant parameters, and configure itself dynamically at startup time. This is hardly ever possible.)SH 8120 59650 MT (2.)SH 9120 XM (Conditional compilation \050or assembly\051. If the number) 53 W( of systems or options to be supported is small,)54 W 9120 60755 MT (the system dependent code can be enclosed) 189 W( in conditional compilation brackets \050like)188 W /Courier SF 45432 XM (IF IBMPC)188 W 9120 61860 MT (.... ENDIF)25 W /Times-Roman SF (\051. However,) 302 W( as the number of system dependencies to be supported grows, this method)26 W 9120 62965 MT (becomes unwieldy and error-prone --) 102 W( installing support for system X tends to break the pre-existing)101 W 9120 64070 MT (support for system Y.)SH 8120 66280 MT (3.)SH 9120 XM (Modular composition.) 36 W( When) 324 W( there is a potentially large number of options a program should support,)37 W 9120 67385 MT (it should be broken up into separate modules) 189 W( \050source files\051, with clearly specified, simple calling)188 W 9120 68490 MT (conventions. This) 422 W( allows people with new options to provide) 86 W( their own support for them in an easy)87 W 9120 69595 MT (way, without endangering any existing support. Suggested modules for a Kermit program are:)SH 8120 71805 MT (4.)SH ES %%Page: 61 62 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 61)SH 46800 50 8280 5709 UL /Symbol SF 13070 8000 MT (\267)SH /Times-Roman SF 13780 XM (System-Indendent protocol handling: state switching, packet formation,) 205 W( encoding \050prefixing\051)204 W 13780 9105 MT (and decoding, etc.)SH /Symbol SF 13070 11094 MT (\267)SH /Times-Roman SF 13780 XM (User Interface: the command parser. Putting this in a separate module allows plug-in of)254 W 13780 12199 MT (command parsers to suit the user's taste, to mimic) 49 W( the style of the host system command parser)48 W 13780 13304 MT (or some popular application, etc.)SH /Symbol SF 13070 15293 MT (\267)SH /Times-Roman SF 13780 XM (Screen i/o: This module would contain the screen control codes, cursor positioning routines, etc.)SH /Symbol SF 13070 17282 MT (\267)SH /Times-Roman SF 13780 XM (Port i/o: Allows support of) 201 W( various port hardware. This module can define the port status)202 W 13780 18387 MT (register location, the status bits, and so forth, and can implement the) 35 W( functions to read and write)34 W 13780 19492 MT (characters at the port.)SH /Symbol SF 13070 21481 MT (\267)SH /Times-Roman SF 13780 XM (Modem control: This module would support any kind of "intelligent" modem, which is) 191 W( not)192 W 13780 22586 MT (simply a transparent extension of the communications port.) 88 W( Such) 424 W( modems may accept special)87 W 13780 23691 MT (commands to) 7 W( perform functions like dialing out, redialing a recent number, hanging up, etc., and)8 W 13780 24796 MT (may need special initialization \050for instance, setting modem signals like DTR\051.)SH /Symbol SF 13070 26785 MT (\267)SH /Times-Roman SF 13780 XM (Console input: This module would supply the function to) 149 W( get characters from the console; it)148 W 13780 27890 MT (would know about the status register locations and bits, interrupt structure, key-to-character)192 W 13780 28995 MT (mappings, etc., and could) 134 W( also implement key redefinitions, keystroke macros, programmable)133 W 13780 30100 MT (function keys, expanded control and meta functions, etc.)SH /Symbol SF 13070 32089 MT (\267)SH /Times-Roman SF 13780 XM (Terminal Emulation: This module would interpret escape sequences in the incoming) 101 W( character)102 W 13780 33194 MT (stream \050obtained) 1 W( from the port i/o module\051 for the particular type of terminal being emulated and)SH 13780 34299 MT (interpret them by making appropriate calls the the screen) 131 W( i/o module, and it would send user)132 W 13780 35404 MT (typein \050obtained from the console input module\051) 156 W( out the serial port \050again using the port i/o)155 W 13780 36509 MT (module\051. Ideally,) 388 W( this module could be replacable by) 69 W( other modules to emulate different kinds)70 W 13780 37614 MT (of terminals \050e.g. ANSI, VT52, ADM3A, etc\051.)SH /Symbol SF 13070 39603 MT (\267)SH /Times-Roman SF 13780 XM (File i/o: This module) 82 W( contains all the knowledge about the host system's file structure; how to)81 W 13780 40708 MT (open and close files, perform "get next file" operations, read and write) 77 W( files, determine and set)78 W 13780 41813 MT (their attributes, detect the end) 197 W( of a file, and so forth, and provides the functions, including)196 W 13780 42918 MT (buffering, to get a character) 131 W( from a file and put a character to a file. This module may also)132 W 13780 44023 MT (provide file management services for local files -- directory listings,) 326 W( deleting, renaming,)325 W 13780 45128 MT (copying, and so forth.)SH /Symbol SF 13070 47117 MT (\267)SH /Times-Roman SF 13780 XM (Definitions and Data: Separate modules) 363 W( might also be kept for compile-time parameter)364 W 13780 48222 MT (definitions and for global runtime data.)SH 12 /Times-Bold AF 8280 51338 MT (9.2.2. Programming Language)SH 10 /Times-Roman AF 8280 53280 MT (The language to be used in writing a Kermit program is more than a matter of taste. The primary) 65 W( consideration is)64 W 8280 54476 MT (that the language provide the necessary functionality and speed.) 59 W( For) 369 W( instance, a microcomputer implementation of)60 W 8280 55672 MT (BASIC may not allow the kind of low-level access to device) 40 W( registers needed to do terminal emulation, or to detect)39 W 8280 56868 MT (console input) 57 W( during file transfer, or even if it can do these things, it might not be able to run fast enough do drive)58 W 8280 58064 MT (the communication line at the desired baud rate.)SH 8280 60456 MT (The second consideration in choosing a) 11 W( language is portability. This is used in two senses: \0501\051 whether the language)10 W 8280 61652 MT (is in the public domain \050or, equivalently, provided "free" as part of the basic system\051, and \0502\051 whether) 123 W( it is well)124 W 8280 62848 MT (standardized and in wide use on a variety of systems. A language that is portable in both senses is to be preferred.)SH 8280 65240 MT (Whatever programming language) 183 W( is selected, it is important that all lines in the program source be kept to 80)182 W 8280 66436 MT (characters or less \050after expansion of tabs\051. This is because Kermit material must) 92 W( often be shipped over RJE and)93 W 8280 67632 MT (other card-format communication links.)SH 8280 70024 MT (In addition, it is important) 297 W( that the names of all files used in creating and supporting a particular Kermit)296 W 8280 71220 MT (implementation be \050possibly a subset\051 of the form)150 W /Courier SF 29645 XM (NAME.TYPE)SH /Times-Roman SF (, where NAME is) 150 W( limited to six characters, and)151 W ES %%Page: 62 63 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 62)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (TYPE is limited to three, and where the NAME of each file begin with a common 2 or 3 character prefix.) 13 W( This) 274 W( is so)12 W 6120 9082 MT (that all related files) 77 W( will be grouped together in an alphabetic directory listing, and so when all of the hundreds of)78 W 6120 10278 MT (Kermit related files are placed together on a tape, all) 103 W( names will be both legal and unique, especially on systems)102 W 6120 11474 MT (\050like PDP-11 operating systems\051 with restrictive file naming conventions.)SH 12 /Times-Bold AF 6120 14590 MT (9.2.3. Documentation)SH 10 /Times-Roman AF 6120 16532 MT (A new Kermit program should be thoroughly documented; one of the hallmarks of Kermit is its documentation.) 3 W( The)257 W 6120 17728 MT (documentation should be at) 37 W( both the user level \050how to use the program, what the commands are, etc, similar to the)36 W 6120 18924 MT (documentation presently found in the)318 W /Times-Italic SF 22903 XM (Kermit Users Guide)318 W /Times-Roman SF (\051, and the) 318 W( implementation level \050describe system)319 W 6120 20120 MT (dependencies, give pointers for adapting to new systems,) 103 W( and so forth\051. In addition, programs themselves should)102 W 6120 21316 MT (contain copious commentary. Like program source, documentation should be kept within 80-character lines.)SH 6120 23708 MT (If possible, a section for the implementation should be written for the Kermit User Guide using) 129 W( the UNILOGIC)130 W 6120 24904 MT (Scribe formatting language \050subsets of which are also to) 51 W( be found in some microcomputer text processing software)50 W 6120 26100 MT (such as Perfect Writer or Final Word\051, using the) 346 W( same general conventions as the existing Scribe-format)347 W 6120 27296 MT (implementation sections.)SH 6120 29688 MT (Kermit programs should also contain a revision history, in which each change is briefly explained,) 22 W( assigned an "edit)21 W 6120 30884 MT (number", and the) 83 W( programmer and site are identified. The lines or sections comprising the edit should be marked)84 W 6120 32080 MT (with the corresponding edit number, and the Kermit program, upon) 115 W( startup, should announce its version and edit)114 W 6120 33276 MT (numbers, so that when users complain of problems we will know what version of the program is in question.)SH 6120 35668 MT (The version number changes) 22 W( when the functionality has been changed sufficiently to require major revisions of user)23 W 6120 36864 MT (documentation. The) 678 W( edit number should increase \050monotonically, irrespective of version number\051 whenever) 214 W( a)213 W 6120 38060 MT (change is made to the program. The edit numbers are very important for program management; after shipping) 22 W( out a)23 W 6120 39256 MT (version of, say, CP/M Kermit-80, we often receive many copies of it, each containing its own set of) 28 W( changes, which)27 W 6120 40452 MT (we must reconcile in some manner. Edit numbers help a great deal here.)SH 12 /Times-Bold AF 6120 43568 MT (9.2.4. Bootstrapping)SH 10 /Times-Roman AF 6120 45510 MT (Finally, a bootstrap procedure should) 32 W( be provided. Kermit is generally distributed on magnetic tape to large central)33 W 6120 46706 MT (sites; the users) 126 W( at those sites need ways of "downloading" the various implementations to their micros and other)125 W 6120 47902 MT (local systems. A simple bootstrap procedure would) 232 W( consist of precise instructions on how to accomplish an)233 W 6120 49098 MT ("unguarded" capture of the program. Perhaps a simple, short program can be written for each each end) 36 W( that will do)35 W 6120 50294 MT (the job; listings and instructions can be provided for the user to type in and run these programs.)SH ES %%Page: 63 64 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 63)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 27834 8272 MT (Appendix I)SH 23058 9680 MT (Packet Format and Types)SH 10 SS 8280 11958 MT (Basic Kermit Packet Layout)SH /Courier SF 12480 13613 MT (|<------Included in CHECK------>|)SH 12480 14644 MT (| |)18000 W 8280 15675 MT (+------+-----+-----+------+------ - - -+-------+)SH 8280 16706 MT (| MARK | LEN | SEQ | TYPE | DATA) SH( |) 3600 W( CHECK |)SH 8280 17737 MT (+------+-----+-----+------+------ - - -+-------+)SH 16080 18768 MT (| |)19200 W 16080 19799 MT (|<--------LEN-32 characters------>|)SH 8880 21516 MT (MARK)SH /Times-Roman SF 13080 XM (A real control character, usually CTRL-A.)SH /Courier SF 9480 22547 MT (LEN)SH /Times-Roman SF 13080 XM (One character, length of remainder of packet + 32, max 95)SH /Courier SF 9480 23578 MT (SEQ)SH /Times-Roman SF 13080 XM (One character, packet sequence number + 32, modulo 64)SH /Courier SF 8880 24609 MT (TYPE)SH /Times-Roman SF 13080 XM (One character, an uppercase letter)SH /Courier SF 8280 25640 MT (CHECK)SH /Times-Roman SF 13080 XM (One, two, or three characters, as negotiated.)SH /Courier SF 8280 27357 MT ()SH /Times-Roman SF 16680 XM (Any control character required for reading the packet.)SH /Times-Bold SF 8280 29749 MT (Kermit Extended Packet Layout)SH /Courier SF 12480 31404 MT (|<-------------------------Included in CHECK------------->|)SH 12480 32435 MT (| |)33600 W 12480 33466 MT (|<-------Included in HCHECK------->|) SH( |)12600 W 12480 34497 MT (| |) 19800 W( |)12600 W 8280 35528 MT (+------+-----+-----+------+-------+-------+--------+----- - - - -+-------+)SH 8280 36559 MT (| MARK |) SH( |) 2400 W( SEQ | TYPE | LENX1 | LENX2 | HCHECK | DATA) SH( |) 4200 W( CHECK |)SH 8280 37590 MT (+------+-----+-----+------+-------+-------+--------+----- - - - -+-------+)SH 13080 38621 MT (blank |) 22200 W( |)12000 W 38880 39652 MT (|<------------------->|)SH 20280 40683 MT (LX1=LENX1-32, LX2=LX2-32) SH( 95) 4800 W( x LX1 + LX2 chars)SH 8280 42338 MT (HCHECK is a single-character type 1 checksum)SH /Times-Bold SF 8280 44730 MT (Initialization String)SH /Courier SF 8880 46385 MT (1 2 3 4 5 6 7 8 9 10)3600 W 8280 47416 MT (+-------+-------+-------+-------+-------+-------+-------+-------+-------+- -)SH 8280 48447 MT (| MAXL | TIME | NPAD | PADC | EOL) SH( |) 1200 W( QCTL | QBIN | CHKT | REPT |)SH 8280 49478 MT (+-------+-------+-------+-------+-------+-------+-------+-------+-------+- -)SH 11280 51133 MT (10 CAPAS+1) 7800 W( CAPAS+2 CAPAS+3)600 W 8280 52164 MT (- --+-------+-) SH( -+--------+--------+--------+-) 2400 W( -)SH 10680 53195 MT (| CAPAS) SH( ...) 1800 W( 0| WINDO | MAXLX1 | MAXLX1 |)SH 8280 54226 MT (- --+-------+-) SH( -+--------+--------+--------+-) 2400 W( -)SH /Times-Roman SF 8280 56017 MT (MAXL)SH 12280 XM (Maximum length \0500-94\051 +32)SH 8280 57122 MT (TIME)SH 12280 XM (Timeout, seconds \0500-94\051 +32)SH 8280 58227 MT (NPAD)SH 12280 XM (Number of pad characters \0500-94\051 +32)SH 8280 59332 MT (EOL)SH 12280 XM (Packet terminator \0500-63\051 +32)SH 8280 60437 MT (QCTL)SH 12280 XM (Control prefix, literal)SH 8280 61542 MT (QBIN)SH 12280 XM (8th bit prefix, literal)SH 8280 62647 MT (CHKT)SH 12280 XM (Block check type {1,2,3}, literal)SH 8280 63752 MT (REPT)SH 12280 XM (Repeat count prefix, literal)SH 8280 64857 MT (CAPAS)SH 12280 XM (Extendable capabilities mask, ends when value-32 is even)SH 8280 65962 MT (WINDO)SH 12280 XM (Window size \0500-31\051 +32)SH 8280 67067 MT (MAXLX1)SH 12280 68172 MT (High part of extended packet maximum length \050int\050max/95\051+32\051)SH 8280 69277 MT (MAXLX2)SH 12280 70382 MT (Low part of extended packet maximum length \050mod\050max,95\051+32\051)SH ES %%Page: 64 65 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 64)SH 46800 50 6120 5709 UL /Times-Bold SF 6120 7870 MT (Packet Types)SH /Times-Roman SF 6120 9661 MT (Y)SH 8120 XM (Acknowledgment \050ACK\051. Data according to what kind of packet is being acknowledged.)SH 6120 10766 MT (N)SH 8120 XM (Negative Acknowledgment \050NAK\051. Data field always empty.)SH 6120 11871 MT (S)SH 8120 XM (Send Initiation. Data field contains) 27 W( unencoded initialization string. Tells receiver to expect files. ACK to this)28 W 8120 12976 MT (packet also contains unencoded initialization string.)SH 6120 14081 MT (I)SH 8120 XM (Initialize. Data) 644 W( field contains unencoded initialization string. Sent to server to set parameters prior to a)196 W 8120 15186 MT (command. ACK) 250 W( to this packet also contains unencoded initialization string.)SH 6120 16291 MT (F)SH 8120 XM (File Header. Indicates file data about) 22 W( to arrive for named file. Data field contains encoded file name. ACK to)23 W 8120 17396 MT (this packet may contain encoded name receiver will store file under.)SH 6120 18501 MT (X)SH 8120 XM (Text Header. Indicates screen data about to arrive. Data field contains encoded heading for display.)SH 6120 19606 MT (A)SH 8120 XM (File Attributes. Data field contains unencoded attributes.) 274 W( ACK) 796 W( may contain unencoded corresponding)273 W 8120 20711 MT (agreement or refusal, per attribute.)SH 6120 21816 MT (D)SH 8120 XM (Data Packet. Data field contains encoded) 5 W( file or screen data. ACK may contain X to interrupt sending this file,)6 W 8120 22921 MT (Z to interrupt entire transaction.)SH 6120 24026 MT (Z)SH 8120 XM (End of file. Data field may contain D for Discard.)SH 6120 25131 MT (B)SH 8120 XM (Break transmission.)SH 6120 26236 MT (E)SH 8120 XM (Error. Data) 250 W( field contains encoded error message.)SH 6120 27341 MT (R)SH 8120 XM (Receive Initiate. Data field contains encoded file name.)SH 6120 28446 MT (C)SH 8120 XM (Host Command. Data field contains encoded command for host's command processor.)SH 6120 29551 MT (K)SH 8120 XM (Kermit Command. Data field contains encoded command for Kermit command processor.)SH 6120 30656 MT (T)SH 8120 XM (Timeout psuedopacket, for internal use.)SH 6120 31761 MT (Q)SH 8120 XM (Block check error psuedopacket, for internal use.)SH 6120 32866 MT (G)SH 8120 XM (Generic Kermit Command. Data field contains a single character subcommand, followed by) 156 W( zero or more)155 W 8120 33971 MT (length-encoded operands, encoded after formation:)SH 8120 35762 MT (I)SH 10120 XM (Login [<%user[%password[%account]]>])SH 8120 36867 MT (C)SH 10120 XM (CWD, Change Working Directory [<%directory[%password]>])SH 8120 37972 MT (L)SH 10120 XM (Logout, Bye)SH 8120 39077 MT (F)SH 10120 XM (Finish \050Shut down the server, but don't logout\051.)SH 8120 40182 MT (D)SH 10120 XM (Directory [<%filespec>])SH 8120 41287 MT (U)SH 10120 XM (Disk Usage Query [<%area>])SH 8120 42392 MT (E)SH 10120 XM (Erase \050delete\051 <%filespec>)SH 8120 43497 MT (T)SH 10120 XM (Type <%filespec>)SH 8120 44602 MT (R)SH 10120 XM (Rename <%oldname%newname>)SH 8120 45707 MT (K)SH 10120 XM (Copy <%source%destination>)SH 8120 46812 MT (W)SH 10120 XM (Who's logged in? [<%user ID or network host[%options]>])SH 8120 47917 MT (M)SH 10120 XM (Send a short Message <%destination%text>)SH 8120 49022 MT (H)SH 10120 XM (Help [<%topic>])SH 8120 50127 MT (Q)SH 10120 XM (Server Status Query)SH 8120 51232 MT (P)SH 10120 XM (Program <%[program-filespec][%program-commands]>)SH 8120 52337 MT (J)SH 10120 XM (Journal <%command[%argument]>)SH 8120 53442 MT (V)SH 10120 XM (Variable <%command[%argument[%argument]]>)SH ES %%Page: 65 66 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 65)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 27523 8272 MT (Appendix II)SH 26503 9680 MT (List of Features)SH 10 /Times-Roman AF 8280 11974 MT (There's no true linear scale along) 8 W( which to rate Kermit implementations. A basic, minimal implementation provides)9 W 8280 13170 MT (file transfer in both directions, and, for microcomputers \050PC's, workstations, other single user systems\051, terminal)123 W 8280 14366 MT (emulation. Even) 250 W( within this framework, there can be variations. For instance, can the program send a)SH /Times-Italic SF 49439 XM (file group)SH /Times-Roman SF 53607 XM (in a)1 W 8280 15562 MT (single command, or must a command be issued for each file? Can it time out? Here is a list of features that may) 19 W( be)18 W 8280 16758 MT (present; for any Kermit implementation, the documentation should show whether these) 96 W( features exist, and how to)97 W 8280 17954 MT (invoke them.)SH /Symbol SF 10070 19859 MT (\267)SH /Times-Roman SF 10780 XM (File groups. Can it send a group of files with a single) 157 W( command, using "wildcard", pattern, or list)156 W 10780 20964 MT (notation? Can) 368 W( it) 59 W( successfully send or receive a group of files of mixed types? Can it recover from an)60 W 10780 22069 MT (error on a particular file and go on to the next one? Can it keep a log of the files) 34 W( involved showing the)33 W 10780 23174 MT (disposition of each?)SH /Symbol SF 10070 25163 MT (\267)SH /Times-Roman SF 10780 XM (Filenames. Can) 580 W( it take action to avoid overwriting a local file when a new) 165 W( file of the same name)166 W 10780 26268 MT (arrives? Can) 250 W( it convert filenames to and from legal or "normal form"?)SH /Symbol SF 10070 28257 MT (\267)SH /Times-Roman SF 10780 XM (File types. Can binary as well as text files be transmitted?)SH /Symbol SF 10070 30246 MT (\267)SH /Times-Roman SF 10780 XM (8th-Bit prefixing. Can) 223 W( it send and receive 8-bit data through a 7-bit channel using the prefixing)222 W 10780 31351 MT (mechanism?)SH /Symbol SF 10070 33340 MT (\267)SH /Times-Roman SF 10780 XM (Repeat-Count processing. Can it send and receive data with repeated characters) 102 W( replaced by a prefix)103 W 10780 34445 MT (sequence?)SH /Symbol SF 10070 36434 MT (\267)SH /Times-Roman SF 10780 XM (Terminal Emulation. Does it have a terminal emulation facility? Does it emulate a) 21 W( particular terminal?)20 W 10780 37539 MT (To what) 12 W( extent? Does it provide various communication options, such as duplex, parity, and handshake)13 W 10780 38644 MT (selection? Can) 588 W( it transmit all ASCII characters? Can it transmit BREAK? Can it log the remote)168 W 10780 39749 MT (session locally?)SH /Symbol SF 10070 41738 MT (\267)SH /Times-Roman SF 10780 XM (Communications Options. Can duplex, parity, handshake, and line terminator be) 192 W( specified for file)193 W 10780 42843 MT (transfer?)SH /Symbol SF 10070 44832 MT (\267)SH /Times-Roman SF 10780 XM (Block Check Options. In addition) 253 W( to the basic single-character checksum, can the two-character)252 W 10780 45937 MT (checksum and the three-character CRC be selected?)SH /Symbol SF 10070 47926 MT (\267)SH /Times-Roman SF 10780 XM (Basic Server. Can it run in server mode, accepting commands to send or receive files, and to shut itself)22 W 10780 49031 MT (down?)SH /Symbol SF 10070 51020 MT (\267)SH /Times-Roman SF 10780 XM (Advanced Server. Can it accept) 223 W( server commands to delete files, provide directory listings, send)222 W 10780 52125 MT (messages, and forth?)SH /Symbol SF 10070 54114 MT (\267)SH /Times-Roman SF 10780 XM (Issue Commands to Server. Can it send commands to a server, and handle all possible responses?)SH /Symbol SF 10070 56103 MT (\267)SH /Times-Roman SF 10780 XM (Host Commands. Can it parse and send remote "host commands"? If it) 88 W( is a server, can it pass these)89 W 10780 57208 MT (commands to the host system command processor and return the results to the local user Kermit?)SH /Symbol SF 10070 59197 MT (\267)SH /Times-Roman SF 10780 XM (Interrupt File Transfers. Can it interrupt sending or receiving a file? Can it respond to interrupt)201 W 10780 60302 MT (requests from the other side?)SH /Symbol SF 10070 62291 MT (\267)SH /Times-Roman SF 10780 XM (Local File Management Services. Are there commands to get local directory) 35 W( listings, delete local files,)36 W 10780 63396 MT (and so forth?)SH /Symbol SF 10070 65385 MT (\267)SH /Times-Roman SF 10780 XM (File Attributes. Can it send file attribute information about local files, and can deal with) 49 W( incoming file)48 W 10780 66490 MT (attribute information? Can alternate dispositions be specified. Can files be archived?)SH /Symbol SF 10070 68479 MT (\267)SH /Times-Roman SF 10780 XM (Long Packets. Is the long packet protocol extension implemented?)SH /Symbol SF 10070 70468 MT (\267)SH /Times-Roman SF 10780 XM (Sliding Windows. Is the sliding window protocol extension implemented?)SH ES %%Page: 66 67 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 66)SH 46800 50 6120 5709 UL /Symbol SF 7910 8000 MT (\267)SH /Times-Roman SF 8620 XM (Debugging Capability. Can packet traffic be logged, examined, single-stepped?)SH /Symbol SF 7910 9989 MT (\267)SH /Times-Roman SF 8620 XM (Frills. Does) 478 W( it have login scripts? Raw) 114 W( download/upload? A DIAL command and modem control?)115 W 8620 11094 MT (Phone directories?)SH ES %%Page: 67 68 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 67)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 27212 8272 MT (Appendix III)SH 23149 9680 MT (The ASCII Character Set)SH 10 /Times-Roman AF 8280 11974 MT (ASCII Code \050ANSI X3.4-1968\051)SH 12776 50 8280 12174 UL 8280 14366 MT (There are 128 characters) 70 W( in the ASCII \050American national Standard Code for Information Interchange\051 "alphabet".)69 W 8280 15562 MT (The characters are listed in order of ASCII value; the columns are labeled as follows:)SH 8280 17353 MT (Bit)SH 16280 XM (Even parity bit for ASCII character.)SH 8280 18458 MT (ASCII Dec)SH 16280 XM (Decimal \050base 10\051 representation.)SH 8280 19563 MT (ASCII Oct)SH 16280 XM (Octal \050base 8\051 representation.)SH 8280 20668 MT (ASCII Hex)SH 16280 XM (Hexadecimal \050base 16\051 representation.)SH 8280 21773 MT (EBCDIC Hex)SH 16280 XM (EBCDIC hexadecimal equivalent for Kermit translate tables.)SH 8280 22878 MT (Char)SH 16280 XM (Name or graphical representation of character.)SH 8280 23983 MT (Remark)SH 16280 XM (Description of character.)SH 8280 25774 MT (The first group consists of nonprintable 'control' characters:)SH /Courier SF 11280 27429 MT (.....ASCII.... EBCDIC)SH 8280 28460 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 8280 28660 UL 1800 50 11280 28660 UL 1800 50 14880 28660 UL 1800 50 17880 28660 UL 1800 50 20880 28660 UL 2400 50 25080 28660 UL 4200 50 28680 28660 UL 8880 29491 MT (0 000 000 00 00) 1200 W( NUL) 1800 W( ^@,) 1200 W( Null, Idle)SH 8880 30522 MT (1 001 001 01 01) 1200 W( SOH) 1800 W( ^A,) 1200 W( Start of heading)SH 8880 31553 MT (1 002 002 02 02) 1200 W( STX) 1800 W( ^B,) 1200 W( Start of text)SH 8880 32584 MT (0 003 003 03 03) 1200 W( ETX) 1800 W( ^C,) 1200 W( End of text)SH 8880 33615 MT (1 004 004 04 37) 1200 W( EOT) 1800 W( ^D,) 1200 W( End of transmission)SH 8880 34646 MT (0 005 005 05 2D) 1200 W( ENQ) 1800 W( ^E,) 1200 W( Enquiry)SH 8880 35677 MT (0 006 006 06 2E) 1200 W( ACK) 1800 W( ^F,) 1200 W( Acknowledge)SH 8880 36708 MT (1 007 007 07 2F) 1200 W( BEL) 1800 W( ^G,) 1200 W( Bell, beep, or fleep)SH 8880 37739 MT (1 008 010 08 16) 1200 W( BS ^H,) 1800 W( Backspace)SH 8880 38770 MT (0 009 011 09 05) 1200 W( HT ^I,) 1800 W( Horizontal tab)SH 8880 39801 MT (0 010 012 0A 25) 1200 W( LF ^J,) 1800 W( Line feed)SH 8880 40832 MT (1 011 013 0B 0B) 1200 W( VT ^K,) 1800 W( Vertical tab)SH 8880 41863 MT (0 012 014 0C 0C) 1200 W( FF ^L,) 1800 W( Form feed \050top of page\051)SH 8880 42894 MT (1 013 015 0D 0D) 1200 W( CR ^M,) 1800 W( Carriage return)SH 8880 43925 MT (1 014 016 0E 0E) 1200 W( SO ^N,) 1800 W( Shift out)SH 8880 44956 MT (0 015 017 0F 0F) 1200 W( SI ^O,) 1800 W( Shift in)SH 8880 45987 MT (1 016 020 10 10) 1200 W( DLE) 1800 W( ^P,) 1200 W( Data link escape)SH 8880 47018 MT (0 017 021 11 11) 1200 W( DC1) 1800 W( ^Q,) 1200 W( Device control 1, XON)SH 8880 48049 MT (0 018 022 12 12) 1200 W( DC2) 1800 W( ^R,) 1200 W( Device control 2)SH 8880 49080 MT (1 019 023 13 13) 1200 W( DC3) 1800 W( ^S,) 1200 W( Device control 3, XOFF)SH 8880 50111 MT (0 020 024 14 3C) 1200 W( DC4) 1800 W( ^T,) 1200 W( Device control 4)SH 8880 51142 MT (1 021 025 15 3D) 1200 W( NAK) 1800 W( ^U,) 1200 W( Negative acknowledge)SH 8880 52173 MT (1 022 026 16 32) 1200 W( SYN) 1800 W( ^V,) 1200 W( Synchronous idle)SH 8880 53204 MT (0 023 027 17 26) 1200 W( ETB) 1800 W( ^W,) 1200 W( End of transmission block)SH 8880 54235 MT (0 024 030 18 18) 1200 W( CAN) 1800 W( ^X,) 1200 W( Cancel)SH 8880 55266 MT (1 025 031 19 19) 1200 W( EM ^Y,) 1800 W( End of medium)SH 8880 56297 MT (1 026 032 1A 3F) 1200 W( SUB) 1800 W( ^Z,) 1200 W( Substitute)SH 8880 57328 MT (0 027 033 1B 27) 1200 W( ESC) 1800 W( ^[,) 1200 W( Escape, prefix, altmode)SH 8880 58359 MT (1 028 034 1C 1C) 1200 W( FS ^\134,) 1800 W( File separator)SH 8880 59390 MT (0 029 035 1D 1D) 1200 W( GS ^],) 1800 W( Group separator)SH 8880 60421 MT (0 030 036 1E 1E) 1200 W( RS ^^,) 1800 W( Record separator)SH 8880 61452 MT (1 031 037 1F 1F) 1200 W( US ^_,) 1800 W( Unit separator)SH /Times-Roman SF 8280 63169 MT (The last four are usually associated with the control version of backslash, right square bracket, uparrow \050or)252 W 8280 64365 MT (circumflex\051, and underscore, respectively, but some terminals do not transmit these control characters.)SH ES %%Page: 68 69 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 68)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (The following characters are printable:)SH 6120 9603 MT (First, some punctuation characters.)SH /Courier SF 9120 11665 MT (.....ASCII.... EBCDIC)SH 6120 12696 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 6120 12896 UL 1800 50 9120 12896 UL 1800 50 12720 12896 UL 1800 50 15720 12896 UL 1800 50 18720 12896 UL 2400 50 22920 12896 UL 4200 50 26520 12896 UL 6720 13727 MT (1 032 040 20 40) 1200 W( SP Space,) 1800 W( blank)SH 6720 14758 MT (0 033 041 21 5A) 1200 W( !) 1800 W( Exclamation) 2400 W( mark)SH 6720 15789 MT (0 034 042 22 7F) 1200 W( ") 1800 W( Doublequote)2400 W 6720 16820 MT (1 035 043 23 7B) 1200 W( #) 1800 W( Number) 2400 W( sign, pound sign)SH 6720 17851 MT (0 036 044 24 5B) 1200 W( $) 1800 W( Dollar) 2400 W( sign)SH 6720 18882 MT (1 037 045 25 6C) 1200 W( %) 1800 W( Percent) 2400 W( sign)SH 6720 19913 MT (1 038 046 26 50) 1200 W( &) 1800 W( Ampersand)2400 W 6720 20944 MT (0 039 047 27 7D) 1200 W( ') 1800 W( Apostrophe,) 2400 W( accent acute)SH 6720 21975 MT (0 040 050 28 4D) 1200 W( \050) 1800 W( Left) 2400 W( parenthesis)SH 6720 23006 MT (1 041 051 29 5D) 1200 W( \051) 1800 W( Right) 2400 W( parenthesis)SH 6720 24037 MT (1 042 052 2A 5C) 1200 W( *) 1800 W( Asterisk,) 2400 W( star)SH 6720 25068 MT (0 043 053 2B 4E) 1200 W( +) 1800 W( Plus) 2400 W( sign)SH 6720 26099 MT (1 044 054 2C 6B) 1200 W( ,) 1800 W( Comma)2400 W 6720 27130 MT (0 045 055 2D 60) 1200 W( -) 1800 W( Dash,) 2400 W( hyphen, minus sign)SH 6720 28161 MT (0 046 056 2E 4B) 1200 W( .) 1800 W( Period,) 2400 W( dot)SH 6720 29192 MT (1 047 057 2F 61) 1200 W( /) 1800 W( Slash)2400 W /Times-Roman SF 6120 30909 MT (Numeric characters:)SH /Courier SF 9120 32971 MT (.....ASCII.... EBCDIC)SH 6120 34002 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 6120 34202 UL 1800 50 9120 34202 UL 1800 50 12720 34202 UL 1800 50 15720 34202 UL 1800 50 18720 34202 UL 2400 50 22920 34202 UL 4200 50 26520 34202 UL 6720 35033 MT (0 048 060 30 F0) 1200 W( 0) 1800 W( Zero)2400 W 6720 36064 MT (1 049 061 31 F1) 1200 W( 1) 1800 W( One)2400 W 6720 37095 MT (1 050 062 32 F2) 1200 W( 2) 1800 W( Two)2400 W 6720 38126 MT (0 051 063 33 F3) 1200 W( 3) 1800 W( Three)2400 W 6720 39157 MT (1 052 064 34 F4) 1200 W( 4) 1800 W( Four)2400 W 6720 40188 MT (0 053 065 35 F5) 1200 W( 5) 1800 W( Five)2400 W 6720 41219 MT (0 054 066 36 F6) 1200 W( 6) 1800 W( Six)2400 W 6720 42250 MT (1 055 067 37 F7) 1200 W( 7) 1800 W( Seven)2400 W 6720 43281 MT (1 056 070 38 F8) 1200 W( 8) 1800 W( Eight)2400 W 6720 44312 MT (0 057 071 39 F9) 1200 W( 9) 1800 W( Nine)2400 W /Times-Roman SF 6120 46029 MT (More punctuation characters:)SH /Courier SF 9120 48091 MT (.....ASCII.... EBCDIC)SH 6120 49122 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 6120 49322 UL 1800 50 9120 49322 UL 1800 50 12720 49322 UL 1800 50 15720 49322 UL 1800 50 18720 49322 UL 2400 50 22920 49322 UL 4200 50 26520 49322 UL 6720 50153 MT (0 058 072 3A 7A) 1200 W( :) 1800 W( Colon)2400 W 6720 51184 MT (1 059 073 3B 5E) 1200 W( ;) 1800 W( Semicolon)2400 W 6720 52215 MT (0 060 074 3C 4C) 1200 W( <) 1800 W( Left) 2400 W( angle bracket)SH 6720 53246 MT (1 061 075 3D 7E) 1200 W( =) 1800 W( Equal) 2400 W( sign)SH 6720 54277 MT (1 062 076 3E 6E) 1200 W( >) 1800 W( Right) 2400 W( angle bracket)SH 6720 55308 MT (0 063 077 3F 6F) 1200 W( ?) 1800 W( Question) 2400 W( mark)SH 6720 56339 MT (1 064 100 40 7C) 1200 W( @) 1800 W( "At") 2400 W( sign)SH ES %%Page: 69 70 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 69)SH 46800 50 8280 5709 UL /Times-Roman SF 8280 7886 MT (Upper-case alphabetic characters \050letters\051:)SH /Courier SF 11280 9948 MT (.....ASCII.... EBCDIC)SH 8280 10979 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 8280 11179 UL 1800 50 11280 11179 UL 1800 50 14880 11179 UL 1800 50 17880 11179 UL 1800 50 20880 11179 UL 2400 50 25080 11179 UL 4200 50 28680 11179 UL 8880 12010 MT (0 065 101 41 C1) 1200 W( A)1800 W 8880 13041 MT (0 066 102 42 C2) 1200 W( B)1800 W 8880 14072 MT (1 067 103 43 C3) 1200 W( C)1800 W 8880 15103 MT (0 068 104 44 C4) 1200 W( D)1800 W 8880 16134 MT (1 069 105 45 C5) 1200 W( E)1800 W 8880 17165 MT (1 070 106 46 C6) 1200 W( F)1800 W 8880 18196 MT (0 071 107 47 C7) 1200 W( G)1800 W 8880 19227 MT (0 072 110 48 C8) 1200 W( H)1800 W 8880 20258 MT (1 073 111 49 C9) 1200 W( I)1800 W 8880 21289 MT (1 074 112 4A D1) 1200 W( J)1800 W 8880 22320 MT (0 075 113 4B D2) 1200 W( K)1800 W 8880 23351 MT (1 076 114 4C D3) 1200 W( L)1800 W 8880 24382 MT (0 077 115 4D D4) 1200 W( M)1800 W 8880 25413 MT (0 078 116 4E D5) 1200 W( N)1800 W 8880 26444 MT (1 079 117 4F D6) 1200 W( O)1800 W 8880 27475 MT (0 080 120 50 D7) 1200 W( P)1800 W 8880 28506 MT (1 081 121 51 D8) 1200 W( Q)1800 W 8880 29537 MT (1 082 122 52 D9) 1200 W( R)1800 W 8880 30568 MT (0 083 123 53 E2) 1200 W( S)1800 W 8880 31599 MT (1 084 124 54 E3) 1200 W( T)1800 W 8880 32630 MT (0 085 125 55 E4) 1200 W( U)1800 W 8880 33661 MT (0 086 126 56 E5) 1200 W( V)1800 W 8880 34692 MT (1 087 127 57 E6) 1200 W( W)1800 W 8880 35723 MT (1 088 130 58 E7) 1200 W( X)1800 W 8880 36754 MT (0 089 131 59 E8) 1200 W( Y)1800 W 8880 37785 MT (0 090 132 5A E9) 1200 W( Z)1800 W /Times-Roman SF 8280 39502 MT (More punctuation characters:)SH /Courier SF 11280 41564 MT (.....ASCII.... EBCDIC)SH 8280 42595 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 8280 42795 UL 1800 50 11280 42795 UL 1800 50 14880 42795 UL 1800 50 17880 42795 UL 1800 50 20880 42795 UL 2400 50 25080 42795 UL 4200 50 28680 42795 UL 8880 43626 MT (1 091 133 5B AD) 1200 W( [) 1800 W( Left) 2400 W( square bracket)SH 8880 44657 MT (0 092 134 5C E0) 1200 W( \134) 1800 W( Backslash)2400 W 8880 45688 MT (1 093 135 5D BD) 1200 W( ]) 1800 W( Right) 2400 W( square bracket)SH 8880 46719 MT (1 094 136 5E 5F) 1200 W( ^) 1800 W( Circumflex,) 2400 W( up arrow)SH 8880 47750 MT (0 095 137 5F 6D) 1200 W( _) 1800 W( Underscore,) 2400 W( left arrow)SH 8880 48781 MT (0 096 140 60 79) 1200 W( `) 1800 W( Accent) 2400 W( grave)SH ES %%Page: 70 71 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 70)SH 46800 50 6120 5709 UL /Times-Roman SF 6120 7886 MT (Lower-case alphabetic characters \050letters\051:)SH /Courier SF 9120 9948 MT (.....ASCII.... EBCDIC)SH 6120 10979 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 6120 11179 UL 1800 50 9120 11179 UL 1800 50 12720 11179 UL 1800 50 15720 11179 UL 1800 50 18720 11179 UL 2400 50 22920 11179 UL 4200 50 26520 11179 UL 6720 12010 MT (1 097 141 61 81) 1200 W( a)1800 W 6720 13041 MT (1 098 142 62 82) 1200 W( b)1800 W 6720 14072 MT (0 099 143 63 83) 1200 W( c)1800 W 6720 15103 MT (1 100 144 64 84) 1200 W( d)1800 W 6720 16134 MT (0 101 145 65 85) 1200 W( e)1800 W 6720 17165 MT (0 102 146 66 86) 1200 W( f)1800 W 6720 18196 MT (1 103 147 67 87) 1200 W( g)1800 W 6720 19227 MT (1 104 150 68 88) 1200 W( h)1800 W 6720 20258 MT (0 105 151 69 89) 1200 W( i)1800 W 6720 21289 MT (0 106 152 6A 91) 1200 W( j)1800 W 6720 22320 MT (1 107 153 6B 92) 1200 W( k)1800 W 6720 23351 MT (0 108 154 6C 93) 1200 W( l)1800 W 6720 24382 MT (1 109 155 6D 94) 1200 W( m)1800 W 6720 25413 MT (1 110 156 6E 95) 1200 W( n)1800 W 6720 26444 MT (0 111 157 6F 96) 1200 W( o)1800 W 6720 27475 MT (1 112 160 70 97) 1200 W( p)1800 W 6720 28506 MT (0 113 161 71 98) 1200 W( q)1800 W 6720 29537 MT (0 114 162 72 99) 1200 W( r)1800 W 6720 30568 MT (1 115 163 73 A2) 1200 W( s)1800 W 6720 31599 MT (0 116 164 74 A3) 1200 W( t)1800 W 6720 32630 MT (1 117 165 75 A4) 1200 W( u)1800 W 6720 33661 MT (1 118 166 76 A5) 1200 W( v)1800 W 6720 34692 MT (0 119 167 77 A6) 1200 W( w)1800 W 6720 35723 MT (0 120 170 78 A7) 1200 W( x)1800 W 6720 36754 MT (1 121 171 79 A8) 1200 W( y)1800 W 6720 37785 MT (1 122 172 7A A9) 1200 W( z)1800 W /Times-Roman SF 6120 39502 MT (More punctuation characters:)SH /Courier SF 9120 41564 MT (.....ASCII.... EBCDIC)SH 6120 42595 MT (Bit Dec) 600 W( Oct) 1200 W( Hex Hex Char Remarks)600 W 1800 50 6120 42795 UL 1800 50 9120 42795 UL 1800 50 12720 42795 UL 1800 50 15720 42795 UL 1800 50 18720 42795 UL 2400 50 22920 42795 UL 4200 50 26520 42795 UL 6720 43626 MT (0 123 173 7B C0) 1200 W( {) 2400 W( Left) 1800 W( brace \050curly bracket\051)SH 6720 44657 MT (1 124 174 7C 4F) 1200 W( |) 2400 W( Vertical) 1800 W( bar)SH 6720 45688 MT (0 125 175 7D D0) 1200 W( }) 2400 W( Right) 1800 W( brace \050curly bracket\051)SH 6720 46719 MT (0 126 176 7E A1) 1200 W( ~) 2400 W( Tilde)1800 W /Times-Roman SF 6120 49467 MT (Finally, one more nonprintable character:)SH /Courier SF 6720 51529 MT (0 127) 1800 W( 177) 1200 W( 7F) 600 W( 07) 1200 W( DEL) 1800 W( Delete,) 1200 W( rubout)SH ES %%Page: 71 72 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 51775 XM (Page 71)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 8280 8272 MT (Index)SH 8 /Times-Roman AF 12280 10429 MT (8th Bit) SH( 4,) 400 W( 23)SH 37480 XM (Raw Mode) SH( 7)400 W 37480 11353 MT (Records 8)400 W 12280 12277 MT (ACK 5)400 W 37480 XM (Remote 4,) 400 W( 7)SH 12280 13201 MT (ASCII 4,) 400 W( 8, 67)SH 37480 XM (Repeat Prefix) SH( 23)400 W 12280 15049 MT (Baud 7)400 W 37480 XM (Send-Init 19)400 W 12280 15973 MT (Binary Files) SH( 7,) 400 W( 8)SH 37480 XM (Sequence Number) SH( 9)400 W 12280 16897 MT (Binary Mode) SH( 7)400 W 37480 XM (Sequential Files) SH( 3)400 W 12280 17821 MT (Bit Positions) SH( 4)400 W 37480 XM (Server 4)400 W 12280 18745 MT (Block Check) SH( 15,) 400 W( 16)SH 37480 XM (Server Command Wait) SH( 24)400 W 12280 19669 MT (Bootstrap 62)400 W 37480 XM (Server Commands) SH( 27)400 W 12280 20593 MT (BREAK 60)400 W 37480 XM (Server Operation) SH( 24)400 W 37480 21517 MT (Short Reply) SH( 26)400 W 12280 22441 MT (Capabilies 20)400 W 37480 XM (Sliding Window) SH( 43)400 W 12280 23365 MT (CAPAS 20)400 W 37480 XM (SOH 7)400 W 12280 24289 MT (Checksum 15)400 W 12280 25213 MT (Control Character) SH( 5)400 W 37480 XM (Tab Expansion) SH( 8)400 W 12280 26137 MT (Control Characters) SH( 15,) 400 W( 67)SH 37480 XM (Text Files) SH( 8)400 W 12280 27061 MT (Control Fields) SH( 16)400 W 37480 XM (Timeout 5)400 W 12280 27985 MT (Ctl\050x\051 5)400 W 37480 XM (Tochar\050x\051 5)400 W 37480 28909 MT (Transaction 9)400 W 12280 29833 MT (Data Encoding) SH( 16)400 W 37480 XM (Transaction Log) SH( 12)400 W 12280 30757 MT (DEFINE 57)400 W 37480 XM (TTY 4)400 W 12280 31681 MT (Duplex 7)400 W 37480 32605 MT (Unchar\050x\051 5)400 W 12280 33529 MT (EBCDIC 7,) 400 W( 8, 67)SH 37480 XM (User 4)400 W 12280 34453 MT (Edit Number) SH( 62)400 W 12280 35377 MT (Encoding 23,) 400 W( 25)SH 37480 XM (Window 43)400 W 12280 36301 MT (End-Of-Line \050EOL\051) SH( 7,) 400 W( 16)SH 12280 37225 MT (Errors 10)400 W 37480 XM (XON/XOFF 7,) 400 W( 12, 67)SH 12280 39073 MT (Fatal Errors) SH( 10)400 W 12280 39997 MT (File Names) SH( 11)400 W 12280 40921 MT (Flow Control) SH( 7,) 400 W( 12)SH 12280 41845 MT (Full Duplex) SH( 7)400 W 12280 43693 MT (GET Command) SH( 26)400 W 12280 45541 MT (Half Duplex) SH( 7)400 W 12280 46465 MT (Host 4)400 W 12280 48313 MT (Initial Connection) SH( 19)400 W 12280 49237 MT (Interrupting a File Transfer) SH( 30)400 W 12280 51085 MT (Kermit 3)400 W 12280 52933 MT (Language, Programming) SH( 61)400 W 12280 53857 MT (Line Terminator) SH( 16)400 W 12280 54781 MT (Line Terminator \050see End-Of-Line\051)SH 12280 55705 MT (Local 4)400 W 12280 56629 MT (Logical Record) SH( 8)400 W 12280 57553 MT (Logical Records) SH( 8)400 W 12280 58477 MT (Long Packet Extension) SH( 41)400 W 12280 59401 MT (Long Reply) SH( 26)400 W 12280 61249 MT (NAK 5,) 400 W( 30)SH 12280 62173 MT (Normal Form for File Names) SH( 11)400 W 12280 64021 MT (Packet 5,) 400 W( 15)SH 12280 64945 MT (Parity 16,) 400 W( 21, 67)SH 12280 65869 MT (Prefix 23,) 400 W( 25)SH 12280 66793 MT (Prefixed Sequence) SH( 24)400 W 12280 67717 MT (Printable Files) SH( 8)400 W 12280 68641 MT (Program, Kermit) SH( 60)400 W 12280 69565 MT (Protocol 3)400 W ES %%Page: 72 73 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 49615 XM (Page 72)SH 46800 50 6120 5709 UL ES %%Page: i 74 BS 0 SI 12 /Times-Bold AF 8280 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 52497 XM (Page i)SH 46800 50 8280 5709 UL 16 /Times-Bold AF 25591 8272 MT (Table of Contents)SH 12 SS 8280 10684 MT (1. Introduction)SH 54480 XM (3)SH 10 SS 9780 12074 MT (1.1. Background)SH 54580 XM (3)SH 9780 13154 MT (1.2. Overview)SH 54580 XM (3)SH 9780 14234 MT (1.3. General Terminology)SH 54580 XM (4)SH 9780 15314 MT (1.4. Numbers)SH 54580 XM (4)SH 9780 16394 MT (1.5. Character Set)SH 54580 XM (4)SH 9780 17474 MT (1.6. Conversion Functions)SH 54580 XM (5)SH 9780 18554 MT (1.7. Protocol Jargon)SH 54580 XM (5)SH 12 SS 8280 20078 MT (2. Environment)SH 54480 XM (7)SH 10 SS 9780 21468 MT (2.1. System Requirements)SH 54580 XM (7)SH 9780 22548 MT (2.2. Printable Text versus Binary Data)SH 54580 XM (8)SH 11780 23628 MT (2.2.1. Printable Text Files)SH 54580 XM (8)SH 11780 24708 MT (2.2.2. Binary Files)SH 54580 XM (8)SH 12 SS 8280 26232 MT (3. File Transfer)SH 54480 XM (9)SH 10 SS 9780 27622 MT (3.1. Conditioning the Terminal)SH 54580 XM (9)SH 9780 28702 MT (3.2. Timeouts, NAKs, and Retries)SH 54080 XM (10)SH 9780 29782 MT (3.3. Errors)SH 54080 XM (10)SH 9780 30862 MT (3.4. Heuristics)SH 54080 XM (11)SH 9780 31942 MT (3.5. File Names)SH 54080 XM (11)SH 9780 33022 MT (3.6. Robustness)SH 54080 XM (12)SH 9780 34102 MT (3.7. Flow Control)SH 54080 XM (12)SH 9780 35182 MT (3.8. Basic Kermit Protocol State Table)SH 54080 XM (13)SH 12 SS 8280 36706 MT (4. Packet Format)SH 53880 XM (15)SH 10 SS 9780 38096 MT (4.1. Fields)SH 54080 XM (15)SH 9780 39176 MT (4.2. Terminator)SH 54080 XM (16)SH 9780 40256 MT (4.3. Other Interpacket Data)SH 54080 XM (16)SH 9780 41336 MT (4.4. Encoding, Prefixing, Block Check)SH 54080 XM (16)SH 12 SS 8280 42860 MT (5. Initial Connection)SH 53880 XM (19)SH 8280 44384 MT (6. Optional Features)SH 53880 XM (23)SH 10 SS 9780 45774 MT (6.1. 8th-Bit and Repeat Count Prefixing)SH 54080 XM (23)SH 9780 46854 MT (6.2. Server Operation)SH 54080 XM (24)SH 11780 47934 MT (6.2.1. Server Commands)SH 54080 XM (25)SH 11780 49014 MT (6.2.2. Timing)SH 54080 XM (26)SH 11780 50094 MT (6.2.3. The R Command)SH 54080 XM (26)SH 11780 51174 MT (6.2.4. The K Command)SH 54080 XM (26)SH 11780 52254 MT (6.2.5. Short and Long Replies)SH 54080 XM (26)SH 11780 53334 MT (6.2.6. Additional Server Commands)SH 54080 XM (27)SH 11780 54414 MT (6.2.7. Host Commands)SH 54080 XM (28)SH 11780 55494 MT (6.2.8. Exchanging Parameters Before Server Commands)SH 54080 XM (28)SH 9780 56574 MT (6.3. Alternate Block Check Types)SH 54080 XM (29)SH 9780 57654 MT (6.4. Interrupting a File Transfer)SH 54080 XM (30)SH 9780 58734 MT (6.5. Transmitting File Attributes)SH 54080 XM (31)SH 9780 59814 MT (6.6. Advanced Kermit Protocol State Table)SH 54080 XM (36)SH 12 SS 8280 61338 MT (7. Performance Extensions)SH 53880 XM (41)SH 10 SS 9780 62728 MT (7.1. Long Packets)SH 54080 XM (41)SH 9780 63808 MT (7.2. Sliding Windows)SH 54080 XM (43)SH 11780 64888 MT (7.2.1. Overall Sequence of Events)SH 54080 XM (43)SH 11780 65968 MT (7.2.2. Questions and Answers about Sliding Windows)SH 54080 XM (48)SH 11780 67048 MT (7.2.3. More Q-and-A About Windows)SH 54080 XM (51)SH ES %%Page: ii 75 BS 0 SI 12 /Times-Bold AF 6120 4404 MT (Kermit Protocol Manual)SH 10 /Times-Italic AF 50059 XM (Page ii)SH 46800 50 6120 5709 UL 12 /Times-Bold AF 6120 8004 MT (8. Kermit Commands)SH 51720 XM (53)SH 10 SS 7620 9394 MT (8.1. Basic Commands)SH 51920 XM (53)SH 7620 10474 MT (8.2. Program Management Commands)SH 51920 XM (53)SH 7620 11554 MT (8.3. Terminal Emulation Commands)SH 51920 XM (53)SH 7620 12634 MT (8.4. Special User-Mode Commands)SH 51920 XM (54)SH 7620 13714 MT (8.5. Commands Whose Object Should Be Specified)SH 51920 XM (54)SH 7620 14794 MT (8.6. The SET Command)SH 51920 XM (55)SH 7620 15874 MT (8.7. Macros, the DEFINE Command)SH 51920 XM (57)SH 12 SS 6120 17398 MT (9. Kermit Programs)SH 51720 XM (59)SH 10 SS 7620 18788 MT (9.1. Terminal emulation)SH 51920 XM (59)SH 7620 19868 MT (9.2. Writing a Kermit Program)SH 51920 XM (60)SH 9620 20948 MT (9.2.1. Program Organization)SH 51920 XM (60)SH 9620 22028 MT (9.2.2. Programming Language)SH 51920 XM (61)SH 9620 23108 MT (9.2.3. Documentation)SH 51920 XM (62)SH 9620 24188 MT (9.2.4. Bootstrapping)SH 51920 XM (62)SH 12 SS 6120 25712 MT (Appendix I. Packet Format and Types)SH 51720 XM (63)SH 6120 27236 MT (Appendix II. List of Features)SH 51720 XM (65)SH 6120 28760 MT (Appendix III. The ASCII Character Set)SH 51720 XM (67)SH 6120 30284 MT (Index)SH 51720 XM (71)SH ES %%Trailer %%Pages: 75 %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol Courier Courier-Oblique