💾 Archived View for gemini.bortzmeyer.org › rfc-mirror › rfc206.txt captured on 2021-11-30 at 20:18:30.
-=-=-=-=-=-=-
Network Working Group J. White Request for Comments: 206 Computer Research Lab, UCSB NIC: 7176 9 August 1971 A User TELNET Description of an Initial Implementation PREFACE The User TELNET described in this document has been implemented within UCSB's Online System by Mark Krilanovich and makes teletype- compatible time-sharing systems in the Net accessible to Online System users. Contents Page I. Function................................................... 1 II. Invoking TELNET............................................ 2 III. The Virtual Teletype....................................... 5 IV. Returning to TELNET........................................ 11 V. Breaking TELNET Connections................................ 12 VI. Abnormal Network Conditions................................ 12 FIGURES Page Figure 1. Network Sites........................................ 4 Figure 2. TELNET Character Set................................. 6 Figure 3. Connect Error Codes.................................. 13 Figure 4. Input Error Codes.................................... 13 Figure 5. Output Error Codes................................... 14 I. Function This document describes a program whose function is to make an Online System terminal _appear_ to any teletype-compatible, time-sharing system in the Network _as if it were directly connected to that system_. By invoking this program from his terminal, an OLS user can effectively dial up a system at another site and use it as if he were a local user of that system. The program performs the following major functions: 1) it resolves keyboard and display device incompatibilities 2) performs character set transformations, and White [Page 1] RFC 206 A User TELNET August 1971 3) makes its presence and that of the Network transparent to the user. The program which performs these functions is called a _User TELNET_. It operates in conjunction with another program called a _Server TELNET_ executing at the site whose system is being used. A Server TELNET exists at each site whose system is accessible from the Net. Similarly, a User TELNET must exist at a site before users at that site have access to remote systems. User and Server TELNETs access the Net through their respective NCPs, and operate under a Network-standard protocol which specifies the hand-shaking procedure by which the two parties connect themselves to one another, as well as the format of data sent over a pair of Network connections established between them. A User TELNET makes such protocol considerations transparent to its users. The TELNET protocol is based upon the notion of a virtual teletype, employing a 7-bit ASCII character set. The primary function of a User TELNET, then, is to provide the means by which its users can 'hit' all the keys on that virtual teletype. If the user's keyboard happens in fact to actually be a teletype, then the mapping procedure is a very simple one. However, in UCSB's case, where a user's input device is an OLS keyboard (a device very different from a teletype), the mapping is more complex. The primary function of a Server TELNET is to map the keys on the virtual teletype into that set of keys _its_ local users can push on _their_ keyboards. Again, if those keyboards are teletypes, the mapping done by the Server TELNET is straightforward. In other cases, the task may be very complex. A similar set of mappings transforms ouput generated by the remote system into a form displayable on the user's output device (in UCSB's case, this device is normally a storage scope). II. Invoking TELNET This and succeeding sections describe a preliminary version of a User TELNET (hereafter referred to simply as TELNET) currently implemented within the Online System. This initial implementation does not provide all of the services that a final version must provide, nor does it provide all the conveniences that the next version will offer. It's a first pass which will be upgraded in the near future. White [Page 2] RFC 206 A User TELNET August 1971 TELNET is accessible from NET, a subsystem (like MOLSF and COL) of OLS. A user is by default prohibited from loading NET. To have access to NET enabled fro his user number, a user need only contact the Computer Center. Assuming the foregoing, Net can be loaded with the key sequence: KEYBOARD ENTRY OLS QUERY/RESPONSE SYST WORK AREAS UPDATED LOAD NET LOAD NET RETURN FILE LOADED or by specifying the system name 'NET' at login. Once in NET, TELNET is invoked by going to Level II Real and hitting _LOG_. TELNET responds with a query for site number. The user should enter in decimal the number of the site (as indicated in Figure 1) to which he desires access, followed by _RETURN_. TELNET will then query the user for the Server TELNET's socket_number. By convention, this number is normally 1, but in certain cases some other socket may be appropriate. In any case, the user should enter the socket number in decimal and hit _RETURN_. The dialogue, then, goes like this: KEYBOARD ENTRY OLS QUERY/RESPONSE II LOG FOREIGN SITE NO. = (site number) site number RETURN FOREIGN SCK NO. = 1 1 RETURN When the second RETURN is depressed, TELNET will attempt to contact the designated Server TELNET and establish a duplex connection for the user. Once the connection has been established, TELNET will erase the tube and position the carriage to the upper left-hand corner of the screen. From this point on, the user is effectively connected to the remote system. TELNET enters a mode in which keys pushed by the user are mapped into their virtual-teletype equivalents and incoming text similarly transformed and displayed on the scope. If the remote system to which the user is connected normally issues a login message, that message will be the first to be displayed. In any case, the user should proceed by logging in to the remote system according to the conventions appropriate to that system. White [Page 3] RFC 206 A User TELNET August 1971 Figure 1. Network Sites Institution Location Computer Site Site # Site # Name (HEX) (DEC) ------------------------------------------------------------------------ UCLA Los Angeles Sigma-7 UCLA 01 1 UCLA Los Angeles IBM 360/91 UCL1 41 65 Stanford Research Institute Menlo Park PDP-10 SRI0 02 2 Stanford Research Institute Menlo Park PDP-15 SRI1 42 66 UCSB Santa Barbara IBM 360/75 UCSB 03 3 University of Salt Lake City, Utah Utah PDP-10 UTAH 04 4 Bolt, Beranek, Cambridge, and Newman Mass. PDP-10 BBN0 05 5 Bolt, Beranek, Cambridge, and Newman Mass. DDP-516 BBN1 45 69 MIT Cambridge, Mass. GE 645 MIT0 06 6 MIT Cambridge, Mass. PDP-10 MIT1 46 70 Rand Corporation Santa Monica IBM 1800 RAND 07 7 (IBM 360/65) System Development Corporation Santa Monica DDP-516 SDC 08 8 (IBM 360/67) Harvard Cambridge, University Mass. PDP-10 HRV0 09 9 Harvard Cambridge, University Mass. PDP-1 HRV1 49 73 White [Page 4] RFC 206 A User TELNET August 1971 Lincoln Lexington, Laboratory (MIT)Mass. IBM 360/67 LINO 0A 10 Lincoln Lexington, Laboratory (MIT)Mass. TX2 LIN1 4A 74 Stanford University Stanford PDP-10 STAN 0B 11 University of Urbana, Ill. PDP-11 ILl 0C 12 Illinois Case Western Resevrve Cleveland, University Ohio PDP-10 CASE 0D 13 Carnegie-Mellon Pittsburgh, University Pa. PDP-10 CARN 0E 14 Burroughs Paoli, Pa. B-6500 BURR 0F 15 (Illiac IV) III. The Virtual Teletype The algorithm by which TELNET maps the OLS keyboard into the virtual teletype's character set, and by which it maps that same character set into the set of characters which can be displayed on the user's storage scope is defined in Figure 2. A line of that figure reads as follows: For line 11: The key labeled 'LF' (meaning 'Line Feed') on the virtual teletype, sometimes referred to as 'control-J', is struck by pressing either _SUB_, _CASE J_, or [1] on an OLS keyboard. TELNET sends to the remote system an 8-bit character with the value X'0A'. Whenever 'LF' is received from the foreign system, TELNET displays it by rolling the carriage down one line. As indicated in the figure, _CASE_ substitutes for the CNTRL key on a teletype. Hence, for example, 'control-C' is represented by the key pair 'CASE C'. Note, however, that _CASE_ and 'C' are hit in sequence, whereas on a teletype the CNTRL key is held down while 'C' is struck. 'CASE A' - 'CASE Z' each have an equivalent on the upper keyboard, and the position of that key on the upper keyboard corresponds to that of its counterpart on the lower keyboard. Hence, LS equivalent to CASE A. White [Page 5] RFC 206 A User TELNET August 1971 Although TELNET provides the user with the means for transmitting both upper- and lower-case alphabetics (hitting 'A' sends a lower- case 'A'; holding down _SHIFT_ and hitting 'A' sends upper-case 'A'), there is no provision in OLS for displaying lower-case characters on the storage scope. Hence, TELNET maps lower-case alphabetics into upper-case before displaying them. The four virtual teltype keys 'ENQ', 'ACK', 'BEL', and 'NAK' are displayed by TELNET in a special manner. Two lines are reserved for these characters at the top of the display area, and whenever TELNET receives such a character from the remote system, it displays it in its assigned position within the two-line field. TELNET always positions those four characters at the top of the display area, regardless of the user's current position on the scope, then returns to it. A storage scope has both positive and negative attributes relative to a teletype. Display is much quieter on a scope than on a teletype. However, the noise made by the return of a teletype carriage is often a valuable cue to the user, frequently signifying that the previous line of input from the user has been accepted by the system. As a substitute for this particular cue, TELNET displays an underline ('_') at the left edge on the next line whenever it receives a carriage return (CR) from the remote system. Figure 2. TELNET Character Set To | | Also |Push | Or |Code Sent |Upon receipt Send| (Explanation)| Known as |Either| |is (in hex)|Displayed as ----+--------------+----------+------+---------+-----------+------------ NUL |NULL | ^@ | [2] | | 00 | | | | | | | SOH |Start of | [3]^A | LS |[4]CASE A| 01 | | Heading | | | | | | | | | | | STX |Start of Text | ^B | ATAN | CASE B | 02 | | | | | | | ETX |End of Text | ^C | LOG | CASE C | 03 | | | | | | | EOT |End of | | | | | | Transmission| ^D | REFL | CASE D | 04 | | | | | | | ENQ |Enquiry | ^E | [4] | CASE E | 05 | [5] <ENQ> | | | | | | ACK |Acknowledge | ^F | UP | CASE F | 06 | <ACK> | | | | | | BEL |Bell | ^G | DOWN | CASE G | 07 | <BELL> White [Page 6] RFC 206 A User TELNET August 1971 BS |Backspace | ^H | EVAL | CASE H | 08 | | | | | | | HT |Horizontal | | | | | |Tab. | ^I | INV | CASE I, | 09 | | | | | TAB | | | | | | | | LF |Line Feed | ^J | SUB | CASE J, | 0A | Carriage | | | | [1] | | rolled down | | | | | | VT |Vertical Tab. | ^K | MAX | CASE K | 0B | | | | | | | FF |Form Feed | ^L | MOD | CASE L | 0C | | | | | | | CR |Carriage | | | | | | Return | ^M | DEL | CASE M, | 0D |[6]Carriage | | | | RETURN| | returned | | | | | | SO |Shift Out | ^N | ARG | CASE N | 0E | | | | | | | SI |Shift In | ^O | DIFF | CASE O | 0F | | | | | | | DLE |Data Link | | | | | | Escape | ^P | SUM | CASE P | 10 | | | | | | | DC1 |Device | | | | | | Control 1 | ^Q | [7] | CASE Q | 11 | | | | | | | DC2 |Device | | | | | | Control 2 | ^R | [8] | CASE R | 12 | | | | | | | DC3 |Device | | | | | | Control 3 | ^S | RS | CASE S | 13 | | | | | | | DC4 |Device | | | | | | Control 4 | ^T | SQ | CASE T | 14 | | | | | | | NAK |Negative | | | | | | Acknowledge | ^U | CONJ | CASE U | 15 | <NAK> | | | | | | SYN |Synchronous | | | | | | Idle | ^V | EXP | CASE V | 16 | | | | | | | ETB |End of | | | | | | Transmission| | | | | | Block | ^W | [9] | CASE W | 17 | | | | | | | CAN |Cancel | ^X | COS | CASE X | 18 | White [Page 7] RFC 206 A User TELNET August 1971 EM |End of Medium | ^Y | SQRT | CASE Y | 19 | | | | | | | SUB | Substitute | ^Z | SIN | CASE Z | 1A | | | | | | | ESC | Escape |Alt Mode, | NEG | | 1B | | | ^[ | | | | | | | | | | FS | File | ^ | PROD | | 1C | | Separator | | | | | | | | | | | GS | Group | ^] | SORT | | 1D | | Separator | | | | | | | | | | | RS | Record | ^^ | CONV | | 1E | | Separator | | | | | | | | | | | US | Unit | ^<- | PWR | | 1F | | Separator | | | | | | | | | | | SP | Space | |SPACE | | 20 |blank | | | | | | ! | Exclamation | | ! | | 21 | ! | Point | | | | | | | | | | | " | Quotation |Diaeresis | " | | 22 | " | Marks | | | | | | | | | | | # | Number Sign | | # | | 23 | # | | | | | | $ | Dollar Sign | | $ | | 24 | $ | | | | | | % | Percent | | % | | 25 | % | | | | | | & | Ampersand | | & | | 26 | & | | | | | | ' | Apostrophe |Acute | ' | | 27 | ' | | Accent, | | | | | | Closing | | | | | | Single | | | | | | Quote | | | | | | | | | | ( | Opening | | | | 28 | ( | Parenthesis| | ( | | | | | | | | | ) | Closing | | | | 29 | ( | Parenthesis| | ( | | | | | | | | |