home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / pdp11 / k11art.rno < prev    next >
Text File  |  2020-01-01  |  12KB  |  235 lines

  1. .rm 66
  2. .c;The Kermit protocol and the PDP-11
  3. .s 2
  4. .c;Brian Nelson   4-OCT-1985 14:10
  5. .s 2
  6. Abstract
  7. .s 1
  8. #This article will describe the author's implementation of the Kermit
  9. file transfer protocol for the PDP-11 series under RSTS/E, RSX11M/M+, P/OS
  10. RT11 and TSX+.  This protocol allows many (if not most) types of computer
  11. systems to effect, at minimum, error free file transfer with other systems
  12. and microcomputers over asynchronous lines.
  13. .s 1
  14. The first obvious use of any program or protocol designed to accomplish
  15. file transfer
  16. is to be able to provide the
  17. ability to support file uploads and downloads from superminis such as the
  18. VAX and PDP-11 to remote personal computers, such as the PC and Rainbow.
  19. Since as of this date (03-Oct-1985)
  20. there are available over 160 versions of Kermit available for numerous
  21. micro, mini and mainframe configurations, Kermit addresses this need
  22. quite well.
  23. .s 1
  24. Other uses of Kermit are quite numerous. I routinely use Kermit
  25. for transfering software developed for the PRO/350 on a RSTS/E 11/23+ host as
  26. well as using the PDP-11/44 and VAX 11/785 I run at the University of Toledo
  27. for dialing out to other systems, such as the LCG Tops 20 system and
  28. the LDP public domain library.
  29. Considering that there exists a Kermit for almost any DEC configuration
  30. one can even use Kermit as a poor man's Decnet. In my case, I have a DMF
  31. modem port from the 11/785 and a DZ11 port from the 11/44 connected to the
  32. Gandalf PACX front end switch, which allows me to connect either system to
  33. any of the other systems on the PACX, which includes an IBM 370 compatible
  34. system as well as connecting the VAX to the PDP-11.
  35. .s 1
  36. With the knowledge that
  37. there are Kermit implementations for most personal computers in use
  38. it becomes apparent that the Kermit standard is well worth looking in to.
  39. A list of versions running
  40. on Digital hardware follows the article.
  41. .br
  42.  
  43. .s 1
  44. The Kermit protocol
  45. .s 1
  46. The Kermit protocol is designed to operate over normal asynchronous terminal
  47. lines. All data and commands are transferred with a packet oriented protocol,
  48. basically consisting of a start of packet character (normally SOH), followed
  49. by length, control, data and checksum fields.
  50. Communications is half duplex, in that for every packet sent, the sender
  51. must wait for either an acknowledgement packet (ACK) or a negative
  52. acknowledgement packet (NAK). Transmission is in ascii, with no requirements
  53. needed for the transmission of eight bit characters or control characters
  54. other than the choice of control-A for marking the start of a packet.
  55. All 'control' characters imbedded in the data are prefixed to convert them
  56. to printable characters, the same applying to eight bit characters if
  57. required by the characteristics of the line.  Since there are many
  58. different implementations of Kermit, the protocol provides a mechanism
  59. by which the capabilities of two connected Kermits can be negotiated to
  60. allow for differences in the level of protocol support.  Examples of
  61. protocol features that not all Kermits understand include data
  62. compression and transfer of file attributes.
  63. .br
  64. #Rather than to go into more detail about the the Kermit protocol, the reader
  65. should consult the references listed at the end of this article.
  66. .s 1
  67. The PDP-11 Kermit-11 implementation
  68. .s 1
  69. #The author's version of Kermit-11 is written in Macro-11 and can run on
  70. RSTS/E, RSX11M, RSX11M Plus, P/OS and RT11.  The RSTS and RSX file system
  71. interface is via RMS11 version 2, while the RT11 interface attempts to
  72. emulate the RMS11 subsystem. The choice of Macro-11 for the implementation
  73. language was made for several reasons, one being the availability of the
  74. assembler on all systems and another being speed and compactness of the
  75. code.
  76. .br
  77. #RMS11 was used for RSTS/E and RSX to provide a common i/o interface to
  78. the host file system. Additionally, Bob Denny of Alisa Systems further
  79. extended the RMS interface to support remote file access over DECNET with
  80. Kermit, allowing commands such as SEND NODENAME::[BRIAN.FUBAR]FILE.TYPE
  81. and other remote file accesses over DECNET. RMS11 version 2 also provides a very
  82. simple and powerfull means of doing wildcard searching, file renames and
  83. file deletion via the $PARSE, $SEARCH, $RENAME and $DELETE
  84. macros. Points against RMS basically amount to it's size, RMS is quite
  85. large even if overlayed. This is helped by using the segmented RMSRES
  86. available on RSTS/E and RSX11M Plus, though there is no remote file
  87. access for RMSRES in the current release of Kermit-11. The other objection
  88. to RMS will come from RSTS/E users, who are used to using files that normally
  89. lack file attributes. This is overcome by the ability of RMS v2 to create
  90. stream ascii files. 
  91. .s 1
  92. The RSTS/E Kermit, while it does 'run' under RSX emulation, does NOT use any
  93. RSX directives (apart from GTSK$S) to interface to the executive, as (one) the
  94. RSX directive emulation under RSTS/E is only a small subset of 'real' RSX
  95. and (two) there is no need to go
  96. though an additional layer of overhead to make RSTS/E map RSX calls to native
  97. calls. The 'multiple private delimiters' feature is used to avoid losing
  98. read pass all (binary) mode on read timeouts, as well as setting the link
  99. to '8-bit' mode to keep the terminal driver from stripping the high bit from
  100. data received.
  101. .s 1
  102. The RSX11M/M+ and P/OS versions of Kermit-11, like the RSTS/E and RT versions,
  103. receive eight bit data assuming no parity is used. Where parity is a must,
  104. Kermit-11 has to use a prefixing scheme for eight bit binary data. Like the
  105. RSTS/E version, binary files are created as FIXED no carriage control files
  106. such as used for task images. Note that parity generation is done by software
  107. in Kermit-11. The P/OS version runs under control of DCL. The next release
  108. of Kermit-11, which will be 2.37, will include support for the PRO TMS
  109. (Telephone Management System) option.
  110.  
  111. .s 1
  112. #The RT11 and TSX+
  113. version of Kermit-11 maintains source module compatability with the
  114. RSTS/E and RSX versions. Each version of Kermit-11 has it's own source file
  115. to deal with the operating system, for RSX it is K11M41.MAC, for RSTS/E they
  116. are K11E80.MAC and K1180S.MAC, and for RT11 they are called K11RT*.MAC.
  117. Apart from these specific files, all other source
  118. files are shared. The RT11 Kermit-11 can use either the version 5.x XL and
  119. XC handler for high throughput, or it can use multiple terminal service to do
  120. all its terminal i/o. This second option allows the use of any
  121. interface supported,
  122. including the PDT150 modem port, DL/DLV11's and DZ/DZV11's. The drawback is
  123. overhead, the RT11 MT service can't sustain a rate much past 1200 baud at most.
  124. This is not a problem for Kermit, however, due to it's half duplex nature and
  125. the fact that no packet received is ever longer than the ring buffer size.
  126. The only problem is in when Kermit-11 is running as a terminal emulator
  127. (the Kermit CONNECT command) where the data coming from the remote host can
  128. easily overrun the executive's buffer. A SET RT11 [NO]FLOW command was added
  129. to force Kermit-11 to send its own flow control to the host via XON and XOFF.
  130. TSX+ users can connect to CL: for dialing out, the exact means is documented
  131. in the Kermit-11 users guide.
  132. The disk i/o emulates the RSTS/E and RSX RMS11 version, and each executive
  133. directive has its error codes mapped into an unique global error code, with
  134. the symbolic names corresponding to the nearest RMS11 error name. Wildcarding
  135. is handled, of course, by non file-structured access to the directory on
  136. the desired volume, and supports full RT11 wildcard filenames.
  137. .s 1
  138. Transmission of file attributes
  139. .s 1
  140. One of the optional features of the Kermit protocol is the ATTRIBUTE packet.
  141. The attribute packets allow a Kermit program to send to a receiving Kermit
  142. information regarding the file organization, size, cluster/retrieval size,
  143. protection and so forth. There is even a system dependant attribute packet type
  144. that can be used to transfer things like the RMS11 IFAB 
  145. (the RMS/FCS attributes). One of the things that two Kermits exchange
  146. before any file transfer is an information packet, this packet tells the
  147. receiving Kermit about itself. The last field in this packet, the CAPAS mask,
  148. tells Kermit if the other one can process attribute packets. If two Kermit-11's
  149. are communicating, they will find that each can do so, and the sender of a file
  150. will then send over attribute packets indicating the need (or lack of)
  151. for binary transmission, based on the file organization, filetype and protection
  152. code (for RSTS/E).
  153.  If the sending Kermit-11 is running on RSTS/E, RSX11M/M+ or P/OS
  154. it will also send a copy of the RMS/FCS attributes so the received file will
  155. be identical (to FCS and/or RMS) to the copy on the sender's system. Since
  156. other implementations of Kermit may use this special system attribute packet,
  157. Kermit-11 always sends an attribute packet telling the receiver what hardware
  158. and operating system it is running on, and thus will only use such data if
  159. they are compatible.
  160. Of course, there will be times when a file may be binary and Kermit-11 can't
  161. tell so, many Kermit's have a SET FILE BINARY and SET FILE ASCII to allow the
  162. user to override defaults. Kermit-11 also has a SET FILE AUTO/NOAUTO to disable
  163. it from trying to determine a file's binary status.
  164. .s 1
  165. Future directions
  166. .s 1
  167. With the advent of packet switched networks and satellite communications
  168. the Kermit protocol will likely be extended to increase efficiency over
  169. such links. The main problem is the half duplex nature of Kermit, the
  170. packet acknowledgements can take up to several seconds in transit thus
  171. drastically reducing the throughput. There are several possibilities under
  172. discussion and a standard should be appearing shortly.
  173. .page
  174. Summary
  175. .s 1
  176. #This article describes only the PDP-11 Kermit-11 implementation, for further
  177. reading see:
  178. .lit
  179.  
  180.  
  181. Kermit: A File-transfer Protocol for Universities 
  182. Frank da Cruz and Bill Catchings
  183. BYTE Magazine, June/July 1984
  184.  
  185. The Kermit Protocol Manual, version 5
  186. Frank da Cruz   April 1984
  187. Columbia University Center for Computing Activities
  188.  
  189. Information on obtaining Kermit:
  190.  
  191. KERMIT Distribution
  192. Columbia University Center for Computing Activities 
  193. 7th Floor, Watson Laboratory
  194. 612 West 115th Street
  195. New York, N.Y.  10025
  196.  
  197. Kermit is also usually found on the Decus symposia SIG tapes.
  198. Kermit-11 is available from DECUS as number 11-731
  199.  
  200. Digital hardware that Kermit is currently available for:
  201.  
  202.          Operating  Program   
  203. Machine          System     Language     Contributor
  204.      
  205. DEC PDP-11       MUMPS-11   MUMPS-1982   Cornell U
  206. DEC PDP-11       RSTS/E     Macro-11     U of Toledo
  207. DEC PDP-11       RSX-11/M   Macro-11     U of Toledo
  208. DEC PDP-11       RSX-11/M+  Macro-11     U of Toledo
  209. DEC PDP-11       RT-11      Macro-11     U of Toledo
  210. DEC PDP-11       RT-11      OMSI Pascal  U of Toronto
  211. DEC PDP-11       TSX+       Macro-11     U of Toledo
  212. DEC PDP-11       Unix 2xBSD C            Columbia U
  213. DEC PDP-11, ...  Unix V7    C            Columbia U
  214. DEC PDP-8        OS8, RTS8  PAL-8        R. Hippe
  215. DEC Pro-3xx      P/OS       Bliss, Macro Stevens I.T.
  216. DEC Pro-3xx      P/OS       Macro-11     U of Toledo
  217. DEC Pro-3xx      Pro/RT     Macro-11     U of Toledo
  218. DEC Pro-3xx      Venix V1   C            Columbia U
  219. DEC Pro-3xx      Venix V2   C            Columbia U
  220. DEC Rainbow      CPM86      ASM86        Columbia U
  221. DEC Rainbow      MS-DOS     MASM         Columbia U
  222. DEC Rainbow      QNX 1.x    C            Merrell-Dow
  223. DEC VAX          Ultrix-32  C            Columbia U
  224. DEC VAX          VMS        Bliss,Macro  Stevens I.T.
  225. DEC VAX          VMS        C (VAX-11 C) Columbia U
  226. DEC VAX          VMS        Pascal       U of Toronto
  227. DEC VAX, ...     Unix 4xBSD C            Columbia U
  228. DEC VT-180 Robin CPM80      Turbo Pascal Jeff Duncan
  229. DEC VT-180 Robin CPM80 2.2  M80,LASM     ACC
  230. DECmate-II,III   CPM80 2.2  M80,LASM     ACC
  231. DECsystem-10     TOPS-10    Bliss, Macro Stevens I.T.
  232. DECSYSTEM-20     TOPS-20    MACRO-20     Columbia U
  233.      
  234. .eli
  235.