home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 00s / rfc1.txt next >
Text File  |  1997-03-12  |  21KB  |  620 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                   Steve Crocker
  8. Request for Comments: 1                                          UCLA
  9.                                                          7 April 1969
  10.  
  11.  
  12.                          Title:   Host Software
  13.                         Author:   Steve Crocker
  14.                           Installation:   UCLA
  15.                           Date:   7 April 1969
  16.              Network Working Group Request for Comment:   1
  17.  
  18.  
  19. CONTENTS
  20.  
  21. INTRODUCTION
  22.  
  23.   I. A Summary of the IMP Software
  24.  
  25.      Messages
  26.  
  27.      Links
  28.  
  29.      IMP Transmission and Error Checking
  30.  
  31.      Open Questions on the IMP Software
  32.  
  33.  II. Some Requirements Upon the Host-to-Host Software
  34.  
  35.      Simple Use
  36.  
  37.      Deep Use
  38.  
  39.      Error Checking
  40.  
  41. III. The Host Software
  42.  
  43.      Establishment of a Connection
  44.  
  45.      High Volume Transmission
  46.  
  47.      A Summary of Primitives
  48.  
  49.      Error Checking
  50.  
  51.      Closer Interaction
  52.  
  53.      Open Questions
  54.  
  55.  
  56.  
  57.  
  58. Crocker                                                        [Page 1]
  59.  
  60. RFC 1                        Host Software                 7 April 1969
  61.  
  62.  
  63.  IV. Initial Experiments
  64.  
  65.      Experiment One
  66.  
  67.      Experiment Two
  68.  
  69. Introduction
  70.  
  71.    The software for the ARPA Network exists partly in the IMPs and
  72.    partly in the respective HOSTs.  BB&N has specified the software of
  73.    the IMPs and it is the responsibility of the HOST groups to agree on
  74.    HOST software.
  75.  
  76.    During the summer of 1968, representatives from the initial four
  77.    sites met several times to discuss the HOST software and initial
  78.    experiments on the network.  There emerged from these meetings a
  79.    working group of three, Steve Carr from Utah, Jeff Rulifson from SRI,
  80.    and Steve Crocker of UCLA, who met during the fall and winter.  The
  81.    most recent meeting was in the last week of March in Utah.  Also
  82.    present was Bill Duvall of SRI who has recently started working with
  83.    Jeff Rulifson.
  84.  
  85.    Somewhat independently, Gerard DeLoche of UCLA has been working on
  86.    the HOST-IMP interface.
  87.  
  88.    I present here some of the tentative agreements reached and some of
  89.    the open questions encountered.  Very little of what is here is firm
  90.    and reactions are expected.
  91.  
  92. I.   A Summary of the IMP Software
  93.  
  94. Messages
  95.  
  96.    Information is transmitted from HOST to HOST in bundles called
  97.    messages.  A message is any stream of not more than 8080 bits,
  98.    together with its header.  The header is 16 bits and contains the
  99.    following information:
  100.  
  101.            Destination     5 bits
  102.            Link            8 bits
  103.            Trace           1 bit
  104.            Spare           2 bits
  105.  
  106.    The destination is the numerical code for the HOST to which the
  107.    message should be sent.  The trace bit signals the IMPs to record
  108.    status information about the message and send the information back to
  109.    the NMC (Network Measurement Center, i.e., UCLA).  The spare bits are
  110.    unused.
  111.  
  112.  
  113.  
  114. Crocker                                                        [Page 2]
  115.  
  116. RFC 1                        Host Software                 7 April 1969
  117.  
  118.  
  119. Links
  120.  
  121.    The link field is a special device used by the IMPs to limit certain
  122.    kinds of congestion.  They function as follows.  Between every pair of
  123.    HOSTs there are 32 logical full-duplex connections over which messages
  124.    may be passed in either direction.  The IMPs place the restriction on
  125.    these links that no HOST can send two successive messages over the
  126.    same link before the IMP at the destination has sent back a special
  127.    message called an RFNM (Request for Next Message).  This arrangement
  128.    limits the congestion one HOST can cause another if the sending HOST
  129.    is attempting to send too much over one link.  We note, however, that
  130.    since the IMP at the destination does not have enough capacity to
  131.    handle all 32 links simultaneously, the links serve their purpose only
  132.    if the overload is coming from one or two links.  It is necessary for
  133.    the HOSTs to cooperate in this respect.
  134.  
  135.    The links have the following primitive characteristics.  They are
  136.    always functioning and there are always 32 of them.
  137.  
  138.    By "always functioning," we mean that the IMPs are always prepared to
  139.    transmit another message over them.  No notion of beginning or ending
  140.    a conversation is contained in the IMP software.  It is thus not
  141.    possible to query an IMP about the state of a link (although it might
  142.    be possible to query an IMP about the recent history of a link --
  143.    quite a different matter!).
  144.  
  145.    The other primitive characteristic of the links is that there are
  146.    always 32 of them, whether they are in use or not.  This means that
  147.    each IMP must maintain 18 tables, each with 32 entries, regardless of
  148.    the actual traffic.
  149.  
  150.    The objections to the link structure notwithstanding, the links are
  151.    easily programmed within the IMPs and are probably a better
  152.    alternative to more complex arrangements just because of their
  153.    simplicity.
  154.  
  155. IMP Transmission and Error Checking
  156.  
  157.    After receiving a message from a HOST, an IMP partitions the message
  158.    into one or more packets.  Packets are not more than 1010 bits long
  159.    and are the unit of data transmission from IMP to IMP.  A 24 bit
  160.    cyclic checksum is computed by the transmission hardware and is
  161.    appended to an outgoing packet.  The checksum is recomputed by the
  162.    receiving hardware and is checked against the transmitted checksum.
  163.    Packets are reassembled into messages at the destination IMP.
  164.  
  165. Open Questions on the IMP Software
  166.  
  167.  
  168.  
  169.  
  170. Crocker                                                        [Page 3]
  171.  
  172. RFC 1                        Host Software                 7 April 1969
  173.  
  174.  
  175.    1.  An 8 bit field is provided for link specification, but only 32
  176.    links are provided, why?
  177.  
  178.    2.  The HOST is supposed to be able to send messages to its IMP.  How
  179.    does it do this?
  180.  
  181.    3.  Can a HOST, as opposed to its IMP, control RFNMs?
  182.  
  183.    4.  Will the IMPs perform code conversion?  How is it to be
  184.    controlled?
  185.  
  186. II. Some Requirements Upon the Host-to-Host Software
  187.  
  188. Simple Use
  189.  
  190.    As with any new facility, there will be a period of very light usage
  191.    until the community of users experiments with the network and begins
  192.    to depend upon it.  One of our goals must be to stimulate the
  193.    immediate and easy use by a wide class of users.  With this goal, it
  194.    seems natural to provide the ability to use any remote HOST as if it
  195.    had been dialed up from a TTY (teletype) terminal.  Additionally, we
  196.    would like some ability to transmit a file in a somewhat different
  197.    manner perhaps than simulating a teletype.
  198.  
  199. Deep Use
  200.  
  201.    One of the inherent problems in the network is the fact that all responses
  202.    from a remote HOST will require on the order of a half-second or so,
  203.    no matter how simple.  For teletype use, we could shift to a
  204.    half-duplex local-echo arrangement, but this would destroy some of the
  205.    usefulness of the network.  The 940 Systems, for example, have a very
  206.    specialized echo.
  207.  
  208.    When we consider using graphics stations or other sophisticated
  209.    terminals under the control of a remote HOST, the problem becomes more
  210.    severe. We must look for some method which allows us to use our most
  211.    sophisticated equipment as much as possible as if we were connected
  212.    directly to the remote computer.
  213.  
  214. Error Checking
  215.  
  216.    The point is made by Jeff Rulifson at SRI that error checking at major
  217.    software interfaces is always a good thing. He points to some
  218.    experience at SRI where it has saved much dispute and wasted effort.
  219.    On these grounds, we would like to see some HOST to HOST checking.
  220.    Besides checking the software interface, it would also check the
  221.    HOST-IMP transmission hardware.  (BB&N claims the HOST-IMP hardware
  222.    will be as reliable as the internal registers of the HOST.  We believe
  223.  
  224.  
  225.  
  226. Crocker                                                        [Page 4]
  227.  
  228. RFC 1                        Host Software                 7 April 1969
  229.  
  230.  
  231.    them, but we still want the error checking.)
  232.  
  233. III.  The Host Software
  234.  
  235. Establishment of a Connection
  236.  
  237.    The simplest connection we can imagine is where the local HOST acts as
  238.    if it is a TTY and has dialed up the remote HOST.  After some
  239.    consideration of the problems of initiating and terminating such a
  240.    connection , it has been decided to reserve link 0 for communication
  241.    between HOST operating systems.  The remaining 31 links are thus to be
  242.    used as dial-up lines.
  243.  
  244.    Each HOST operating system must provide to its user level programs a
  245.    primitive to establish a connection with a remote HOST and a primitive
  246.    to break the connection.  When these primitives are invoked, the
  247.    operating system must select a free link and send a message over link
  248.    0 to the remote HOST requesting a connection on the selected link.
  249.    The operating system in the remote HOST must agree and send back an
  250.    accepting message over link 0.  In the event both HOSTs select the same
  251.    link to initiate a connection and both send request messages at
  252.    essentially the same time, a simple priority scheme will be invoked in
  253.    which the HOST of lower priority gives way and selects another free
  254.    link.  One usable priority scheme is simply the ranking of HOSTS
  255.    by their identification numbers.  Note that both HOSTs are aware that
  256.    simultaneous requests have been made, but they take complementary
  257.    actions: The higher priority HOST disregards the request while the
  258.    lower priority HOST sends both an acceptance and another request.
  259.  
  260.    The connection so established is a TTY-like connection in the
  261.    pre-log-in state.  This means the remote HOST operating system will
  262.    initially treat the link as if a TTY had just called up.  The remote
  263.    HOST will generate the same echos, expect the same log-in sequence and
  264.    look for the same interrupt characters.
  265.  
  266. High Volume Transmission
  267.  
  268.    Teletypes acting as terminals have two special drawbacks when we
  269.    consider the transmission of a large file.  The first is that some
  270.    characters are special interrupt characters.  The second is that
  271.    special buffering techniques are often employed, and these are
  272.    appropriate only for low-speed character at time transmission.
  273.  
  274.    We therefore define another class of connection to be used for the
  275.    transmission of files or other large volumes of data.  To initiate
  276.    this class of link, user level programs at both ends of an established
  277.    TTY-like link must request the establishment of a file-like connection
  278.    parallel to the TTY-like link.  Again the priority scheme comes into
  279.  
  280.  
  281.  
  282. Crocker                                                        [Page 5]
  283.  
  284. RFC 1                        Host Software                 7 April 1969
  285.  
  286.  
  287.    play, for the higher priority HOST sends a message over link 0 while
  288.    the lower priority HOST waits for it.  The user level programs are, of
  289.    course, not concerned with this.  Selection of the free link is done
  290.    by the higher priority HOST.
  291.  
  292.    File-like links are distinguished by the fact that no searching for
  293.    interrupt characters takes place and buffering techniques appropriate
  294.    for the higher data rates takes place.
  295.  
  296. A Summary of Primitives
  297.  
  298.    Each HOST operating systems must provide at least the following
  299.    primitives to its users.  This list knows not to be necessary but not
  300.    sufficient.
  301.  
  302.    a)  Initiate TTY-like connection with HOST x.
  303.  
  304.    b)  Terminate connection.
  305.  
  306.    c)  Send/Receive character(s) over TTY-like connection.
  307.  
  308.    d)  Initiate file-like connection parallel to TTY-like connection.
  309.  
  310.    e)  Terminate file-like connection.
  311.  
  312.    f)  Send/Receive over file-like connection.
  313.  
  314. Error Checking
  315.  
  316.    We propose that each message carry a message number, bit count, and a
  317.    checksum in its body, that is transparent to the IMP.  For a checksum
  318.    we suggest a 16-bit end-around-carry sum computed on 1152 bits and
  319.    then circularly shifted right one bit.  The right circular shift every
  320.    1152 bits is designed to catch errors in message reassembly by the IMPs.
  321.  
  322. Closer Interaction
  323.  
  324.    The above described primitives suggest how a user can make simple use
  325.    of a remote facility.  They shed no light on how much more intricate
  326.    use of the network is to be carried out.  Specifically, we are
  327.    concerned with the fact that as some sites a great deal of work has
  328.    gone into making the computer highly responsive to a sophisticated
  329.    console.  Culler's consoles at UCSB and Englebart's at SRI are at
  330.    least two examples.  It is clear that delays of a half-second or so
  331.    for trivial echo-like responses degrade the interaction to the point
  332.    of making the sophistication of the console irrelevant.
  333.  
  334.    We believe that most console interaction can be divided into two
  335.  
  336.  
  337.  
  338. Crocker                                                        [Page 6]
  339.  
  340. RFC 1                        Host Software                 7 April 1969
  341.  
  342.  
  343.    parts, an essentially local, immediate and trivial part and a remote,
  344.    more lengthy and significant part.  As a simple example, consider a
  345.    user at a console consisting of a keyboard and refreshing display
  346.    screen.  The program the user is talking typing into accumulates a
  347.    string of characters until a carriage return is encountered and then
  348.    it processes the string.  While characters are being typed, it
  349.    displays the characters on the screen.  When a rubout character is
  350.    typed, it deletes the previous non-rubout character.  If the user
  351.    types H E L L O <- <- P <CR> where <- is rubout and <CR> is
  352.    carriage-return, he has made nine keystrokes.  If each of these
  353.    keystrokes causes a message to be sent which in return invokes
  354.    instructions to our display station we will quickly become bored.
  355.  
  356.    A better solution would be to have the front-end of the remote program
  357.    -- that is the part scanning for <- and <CR> -- be resident in our
  358.    computer.  In that case, only one five character message would be
  359.    sent, i.e., H E L P <CR>, and the screen would be managed locally.
  360.  
  361.    We propose to implement this solution by creating a language for
  362.    console control.  This language, current named DEL, would be used by
  363.    subsystem designers to specify what components are needed in a
  364.    terminal and how the terminal is to respond to inputs from its
  365.    keyboard, Lincoln Wand, etc.  Then, as a part of the initial protocol,
  366.    the remote HOST would send to the local HOST, the source language text
  367.    of the program which controls the console.  This program would have
  368.    been by the subsystem designer in DEL, but will be compiled locally.
  369.  
  370.    The specifications of DEL are under discussion.  The following
  371.    diagrams show the sequence of actions.
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Crocker                                                        [Page 7]
  395.  
  396. RFC 1                        Host Software                 7 April 1969
  397.  
  398.  
  399. A.  Before Link Establishment
  400.  
  401.  
  402.          /                                                      \
  403.         |     +-----------+                    +-----------+    |
  404.         |     |           |                    |           |    |
  405.         |     |           |                    |           |    |
  406.         |     | terminal  |                    | terminal  |    |
  407.         |     |           |                    |           |    |
  408.         |     |           |                    |           |    |
  409.         |     +-----+-----+                    +-----+-----+    |
  410.         |           |                                |          |
  411.         |           |                                |          |
  412.         |           |                                |          |
  413.         |     +-----+-----+                    +-----------+    |
  414.         |     |     |     | Request connection |     |     |    |
  415.    UCLA {     |     |     | -> over link 25    |     |     |    } SRI
  416.         |     |   +-+-+   |  +-+          +-+  |   +-+-+   |    |
  417.         |     |   | OS|---+-=|I|----------|I|=-+---| OS|   |    |
  418.         |     |   +-+-+   |  +-+          +-+  |   +---+   |    |
  419.         |     |           |                    |           |    |
  420.         |     |           |                    |           |    |
  421.         |     +-----------+                    +-----------+    |
  422.         |      HOST: UCLA                        HOST: SRI      |
  423.          \                                                     /
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Crocker                                                        [Page 8]
  451.  
  452. RFC 1                        Host Software                 7 April 1969
  453.  
  454.  
  455. b.  After Link Establishment and Log-in
  456.  
  457.  
  458.          /                                                      \
  459.         |     +-----------+                    +-----------+    |
  460.         |     |           |                    |           |    |
  461.         |     |           |                    |           |    |
  462.         |     | terminal  |                    | terminal  |    |
  463.         |     |           |                    |           |    |
  464.         |     |           |                    |           |    |
  465.         |     +-----+-----+                    +-----+-----+    |
  466.         |           |                                |          |
  467.         |           |                                |          |
  468.         |           |                                |          |
  469.         |     +-----+-----+ "Please send front"+-----------+    |
  470.         |     |     |     | end control"       |     |     |    |
  471.    UCLA {     |     |     |        ->          |     |     |    } SRI ___
  472.         |     |   +-+-+   |  +-+          +-+  |  +--+---+ |    |    /   |
  473.         |     |   | OS|---+-=|I|----------|I|=-+--|OS|NLS| +----+---|    |
  474.         |     |   +-+-+   |  +-+          +-+  |  +------+ |    |   |___/
  475.         |     |           |       DEL prog.    |           |    |   |    |
  476.         |     |           |        <-          |           |    |   |____|
  477.         |     +-----------+                    +-----------+    |
  478.         |      HOST: UCLA                        HOST:SRI       |
  479.          \                                                     /
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Crocker                                                        [Page 9]
  507.  
  508. RFC 1                        Host Software                 7 April 1969
  509.  
  510.  
  511. c.  After Receipt and Compilation of the DEL program
  512.  
  513.  
  514.          /                                                     \
  515.         |     +-----------+                    +-----------+    |
  516.         |     |           |                    |           |    |
  517.         |     |           |                    |           |    |
  518.         |     | terminal  |                    | terminal  |    |
  519.         |     |           |                    |           |    |
  520.         |     |           |                    |           |    |
  521.         |     +-----+-----+                    +-----+-----+    |
  522.         |           |Trivial                         |          |
  523.         |           |Responses                       |          |
  524.         |           |                                |          |
  525.         |     +-----+------+                    +-----------+   |
  526.         |     |     |      |                    |     |     |   |
  527.    UCLA {     |     |      |  Major Responses   |     |     |   } SRI ___
  528.         |     |  +--+--+   |  +-+          +-+  |  +--+---+ |   |    /   |
  529.         |     |  |DEL  |---+-=|I|----------|I|=-+--|OS|NLS| +---+---|    |
  530.         |     |  |front|   |  +-+          +-+  |  +------+ |   |   |___/
  531.         |     |  | end |   |                    |           |   |   |    |
  532.         |     |  |prog.|   |                    |           |   |   |____|
  533.         |     |  +-----+   |                    |           |   |
  534.         |     |  | OS  |   |                    |           |   |
  535.         |     |  +-----+   |                    |           |   |
  536.         |     |            |                    |           |   |
  537.         |     +------------+                    +-----------+   |
  538.         |      HOST: UCLA                         HOST: SRI     |
  539.          \                                                     /
  540.  
  541. Open Questions
  542.  
  543.    1.  If the IMPs do code conversion, the checksum will not be correct.
  544.  
  545.    2.  The procedure for requesting the DEL front end is not yet
  546.    specified.
  547.  
  548. IV.  Initial Experiments
  549.  
  550. Experiment One
  551.  
  552.    SRI is currently modifying their on-line retrieval system which will
  553.    be the major software component on the Network Documentation Center so
  554.    that it can be operated with model 35 teletypes.  The control of the
  555.    teletypes will be written in DEL.  All sites will write DEL compilers
  556.    and use NLS through the DEL program.
  557.  
  558. Experiment Two
  559.  
  560.  
  561.  
  562. Crocker                                                       [Page 10]
  563.  
  564. RFC 1                        Host Software                 7 April 1969
  565.  
  566.  
  567.    SRI will write a DEL front end for full NLS, graphics included.  UCLA
  568.    and UTAH will use NLS with graphics.
  569.  
  570.  
  571.          [ This RFC was put into machine readable form for entry ]
  572.          [ into the online RFC archives by Celeste Anderson 3/97 ]
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Crocker                                                       [Page 11]
  619.  
  620.