RFC 15 UNKNOWN TELNET · ARPANET · TIME-SHARING

Network subsystem for time sharing hosts

A 1969 proposal for Telnet, a small program that lets a terminal on one host act as a terminal on another.

On rfc-editor.org ↗
PUBLISHED
September 1969
AUTHORS
C.S. Carr
STREAM
Legacy
TELNET CODE SIZE
One core page
EXAMPLE SERVING HOST
940 at SRI
EXAMPLE USER HOST
PDP-10 at Utah
DOI
10.17487/RFC0015

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                   C. Stephen Carr
Request for Comments: 15                                           UTAH
                                                      25 September 1969

                Network Subsystem for Time Sharing Hosts


Introduction

   A set of network primitives has been defined (Network Working Group
   Note 11) for inclusion in the monitor systems of the respective
   HOSTS.  These primitives are at the level of system calls: SPOP's or
   BRS's on the 940; UUO's on the PDP-10.  Presumably these UUO's are
   accessible to all user programs when executing for users whose status
   bits allow network access.

   In addition to user program access, a convenient means for direct
   network access from the terminal is desirable.  A sub-system called
   "Telnet" is proposed which is a shell program around the network
   system primitives, allowing a teletype or similar terminal at a
   remote host to function as a teletype at the serving host.

System Primitives

   G. Deloche of U.C.L.A. has documented a proposed set of basic network
   primitives for inclusion in the operating systems of the respective
   HOSTs (NWG Note:  11).  The primitives are:

      Open primary connection

      Open auxiliary connection

      Transmit over connection

      Close connection.

   The details  and terminology are defined by Deloche and others in
   previous memos.  The primitives are system calls, available to
   programmers, and are most likely a part of the resident monitor,
   rather than the swappable executive.

Basic Terminal Access

   In addition to user programming access, it is desirable to have a
   subsystem program at each HOST which makes the network immediately
   accessible from the teletype without special programming.  Subsystems
   are commonly used system components such as text editors, compilers
   and interpreters.  The first network-related subsystem should allow
   users at HOST A to connect to HOST B and appear as a regular terminal
   user to HOST B.  It is expected that more sophisticated subsystems
   will be developed in time, but this basic one will render the early
   net immediately useful.

    Teletype
    Terminal        ______                                 ________
    _________      |      |     ______          ______    |        |
   |         |     | USER |    |      |        |      |   |SERVING |
   |         |-----| HOST |----|      |---//---|      |---| HOST   |
   |_________|     |  A   |    |      |        |      |   |  B     |
                   |______|    |______|        |______|   |________|
                  University                               Stanford
                   of Utah                                 Research
                                                           Institute

   Figure 1:  User accesses distant serving HOST via shunt
              subsystem in his own Host computer.


Simple Dialogue -- PDP-10 to 940

   A user at Utah is sitting at a teletype dialed into the University's
   dual PDP-10's.  He wishes to operate the CAL sub-system on the 940 at
   SRI in Menlo Park, California.

   .LOGIN<CR>                          PDP-10 login
    ---------

   .R TELNET<CR>                       The PDP-10 run command
    ------------                       is issued to call and start
                                       the TELNET subsystem.
   *ESCAPE CHARACTER IS #<CR>          The user indicates an escape
    -------------------------          character which TELNET
                                       will watch for in subsequent
                                       input from the user.

   *CONNECT TO SRI<CR>                 The TELNET subsystem will make
    ------------------                 the appropriate system call
                                       (UUO) to establish a primary
                                       connection.  The connection
                                       will be established, provided:
                                       1.  SRI is willing to accept
                                       another foreign user;
                                       2.  The UTAH user is cleared
                                       for network access at UTAH.
                                       This is determined by a
                                       status word kept in the PDP-10
                                       monitor for each user.

   @LOGIN CARR.                        The user logs in SRI.
    --    -----

   Characters typed on the user's teletype are transmitted unaltered
   through the PDP-10 (user Host) and on to the 940 (serving HOST.)
   (The exception to this is a possible one-for-one code conversion
   required between the UCLA Sigma 7 and the PDP-10, for example).

   @CAL.                               The PDP-10 TELNET subsystem
    -  -                               switches to full duplex,
                                       character-by-character
                                       transmission, since this is
                                       required by 940's.  Characters
                                       typed by the user are
                                       underlined. Full duplex
                                       operation is allowed for by
                                       the PDP-10, though not used
                                       by most DEC subsystems.

   The user wishes to load a CAL file into 940 CAL from the file system
   on his local PDP-10.

   CAL AT YOUR SERVICE
   >READ FILE FROM NETWRK.             'NETWRK' is a predefined
    ----------------------             940 name similar to PAPER
                                       TAPE OR TELETYPE.  The 940
                                       file opening BRS is set to
                                       expect an auxiliary connection
                                       and the file from UTAH.

   #NETWRK: <- DSK:MYFILE.CAL<CR>      The user types the prescribed
    -----------------------------      escape character, followed by
                                       the TELNET command, to send
                                       the desired file to SRI on an
                                       auxiliary connection.  The
                                       user's next statement is in
                                       CAL again.

The Telnet Subsystem

   The Telnet subsystem coding should fit easily into one core page, for
   it does very little.  It effectively establishes a shunt in the user
   HOST between the remote user and the serving HOST.  Telnet commands
   are:

   ESCAPE CHAR IS ___________<CR>      Declares a character which
                                       Telnet will watch for.
                                       Subsequent strings typed
                                       between this character and
                                       a carriage return are not
                                       shunted through to the serving
                                       host, but sent instead to the
                                       Telnet program in the user's
                                       local HOST.

   This escape character is not the same as the user's host
   rubout character.

   CONNECT TO __________________<CR>   The official site name of the
                                       desired serving HOST is typed
                                       (i.e.: SRI, UTAH, UCLA, UCSB).
                                       Telnet attempts to establish a
                                       connection.  If the attempt is
                                       successful, the following
                                       characters are shunted through
                                       the user's local machine.  The
                                       connection places the user in
                                       the pre-logged in state at
                                       the serving HOST.

   LOGOUT<CR>                          Telnet issues the logout command
                                       sequence to the serving HOST.
                                       If the user simply rubs out and
                                       kills his PDP-10 job, the
                                       PDP-10 will indicate to the 940
                                       that the connection is closed.
                                       The 940 system primitives do
                                       whatever they do when a normal
                                       dataphone connection is
                                       suddenly broken.

   COPY FILE                           A file copying command is
                                       available in TELNET to
                                       move data along on auxiliary
                                       connections from the
                                       user's HOST file system
                                       to the serving HOST.

        On the 940 this is:

   COPY <file name> TO NETWRK.
   -                   -     -

        On the PDP-10:

   NETWRK <- DSK: <file name>
   --------------------------

   These TELNET commands are accepted when the TELNET subsystem is first
   entered or following the declared escape character.

CONCLUSION

   Given the basic system primitives, the TELNET subsystem at the user
   host and a manual for the serving host, the network can be
   profitably employed by a remote user.  TELNET subsystem constitutes a
   "level 0" network program which will quickly be surpassed.  It is,
   however, simple enough to be working fairly soon.

   [Editor's note: <CR> has been used in this document to indicate end-
   of-line, in place of the original handwritten arrows.]





         [ This RFC was put into machine readable form for entry ]
         [ into the online RFC archives by Sergio Kleiman  9/00  ]

AI ELI5

On this page
PROBLEMTime-sharing hosts would have network primitives for programs, but users also needed a convenient way to reach a remote host directly from a terminal.
MECHANISMA subsystem called Telnet wraps the network system primitives so a teletype at one host acts as a teletype at the serving host, with a few commands such as CONNECT, LOGOUT and COPY FILE.
WHY IT MATTERSThe author calls Telnet a level 0 network program that will quickly be surpassed, but simple enough to be working fairly soon.

§1Primitives and the Need for Telnet

RFC 15 by C. Stephen Carr (University of Utah) builds on a set of network primitives proposed by G. Deloche of UCLA in NWG Note 11, to be included in each host's monitor system as system calls (SPOPs or BRSs on the 940, UUOs on the PDP-10). The primitives are: open primary connection, open auxiliary connection, transmit over connection and close connection.

In addition to program access, a convenient terminal route is wanted. The proposed subsystem, Telnet, is a shell program around those primitives that lets a teletype or similar terminal at one host function as a teletype at the serving host.

Programs already get a set of simple buttons. Telnet adds a way for a person at a keyboard to use them.

§2The Telnet Subsystem

The Telnet code should fit in one core page, because it does very little. It sets up a shunt in the user host between the remote user and the serving host, and the connection leaves the user in the pre-logged-in state at the serving host. The commands are:

  • ESCAPE CHAR IS declares a character Telnet will watch for, so that text typed after it goes to Telnet instead of the serving host.
  • CONNECT TO takes the official site name (SRI, UTAH, UCLA, UCSB).
  • LOGOUT issues the logout sequence to the serving host.
  • COPY FILE moves a file over an auxiliary connection to the serving host.

Commands are accepted when Telnet is first entered or after the escape character.

Telnet is a tiny pipe. It passes your typing along, except for a few special words you can say to Telnet itself.

§3A Dialogue from Utah to SRI

The example has a user at Utah, logged in to the PDP-10, who wants the CAL subsystem on the 940 at SRI. They run Telnet, set an escape character, and connect to SRI. The connection is made provided SRI will accept another foreign user and the Utah user is cleared for network access. After logging in at SRI, characters are sent through the PDP-10 unchanged, and Telnet switches to full-duplex, character-by-character transmission because the 940 requires it.

The user then reads a CAL file from the pre-defined 940 name NETWRK, and, using the escape character and Telnet command, sends a PDP-10 file over an auxiliary connection.

A person at one computer dials into a faraway one, logs in, and even sends a file across without leaving their chair.

§4Conclusion

The author concludes that, given the basic system primitives, a Telnet subsystem at the user host and a manual for the serving host, the network can be employed profitably by a remote user. Telnet is described as a level 0 network program that will quickly be surpassed.

It is a simple first version. Better ones can come later.

§5References