RFC 37 UNKNOWN HISTORY · META · NETWORKING

Network Meeting Epilogue, etc

Notes from an early network protocol design meeting in 1970

On rfc-editor.org ↗
PUBLISHED
March 1970
AUTHORS
S.D. Crocker
STREAM
Legacy
MEETING DATE
March 17, 1970
MEETING LOCATION
UCLA
ATTENDEES
About 25 from 10 sites
DOI
10.17487/RFC0037

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        S. Crocker
Request for Comments: 37                                           UCLA
                                                          20 March 1970

                     Network Meeting Epilogue, etc.

The Meeting
-----------

  On Tuesday, March 17, 1970, I hosted a Network meeting at UCLA.
  About 25 people attended, including representatives from MIT, LL,
  BBN, Harvard, SRI, Utah, UCSB, SDC, RAND and UCLA.  I presented a
  modification of the protocol in NWG/RFC #33; the modifications are
  sketchily documented in NWG/RFC #36.  The main modification is the
  facility for dynamic reconnection.

  The protocol based on sockets and undistinguished simplex
  connections is quite different from the previous protocol as
  documented in NWG/RFC #11.  The impetus for making such changes came
  out of the network meeting on December 8, 1969, at Utah, at which
  time the limitations of a log-in requirement and the inability to
  connect arbitrary processes was seriously challenged.  Accordingly,
  the primary reason for the recent meeting was to sample opinion on
  the new protocol.

  Recollections may vary, but it is my opinion that the protocol was
  widely accepted and that the criticism and discussion fell into two
  categories:

  1.  Questioning the complexity and usefulness of the full protocol,
      especially the need for dynamic reconnection.

  2.  Other topics, particularly character set translation, higher
      level languages, incompatible equipment, etc.

  Notably lacking was any criticism of the basic concepts of sockets
  and connections.  (Some have since surfaced.)  The following
  agreements were made:

  1.  By April 30, I would be responsible for publishing an
      implementable specification along lines presented.

  2.  Any interested party would communicate with me (at least)
      immediately if he wished to modify the protocol.

  3.  If major modifications come under consideration, interested
      parties would meet again.  This would happen in two to three
      weeks.

  4.  Jim Forgie of Lincoln Labs tentatively agreed to host a meeting
      on higher level network languages, probably near Spring Joint
      time.

Mailing List Changes
--------------------

  Paul Rovner of LL is replaced by

                   James Forgie
                   Mass. Institute of Technology
                   Lincoln Laboratory C158
                   P.O. Box 73
                   Lexington, Mass. 02173

                   telephone at (617) 862-5500 ext. 7173

  Professor George MEaly is added

                   George Mealy
                   Rm. 220
                   Aitken Computation Lab.
                   Harvard University
                   Cambridge, Massachusetts 02138

                   telephone at (617) 868-1020 ext. 4355

Process
-------

  In all of our writing we have used the term process, to mean a
  program which has an assigned location counter and an address space.
  A program is merely a pattern of bits stored in some file.  A new
  process is created only by an already existing process.  The
  previous process must execute an atomic operation (forc, attach,
  etc.) to cause such a creation.  Processes may either cause their
  own demise or be terminated by another (usually superior) process.

  The above definition corresponds to the definition given by
  Vyssotsky, et al on pp.  206, 207 of "Structure of the Multics
  Supervisor" in the FJCC proceedings, 1965.

  Because a process may create another process, and because in general
  the two processes are indistinguishable when viewed externally, I
  know of no reasonable way for two processes to request connection
  directly with each other.  The function of sockets is to provide a
  standard interface between processes.

The Days After
--------------

  In the time since the meeting I have had conversations with Steve
  Wolfe (UCLA-CCN), Bill Crowther (BBN), and John Heafner and Erick
  Harslem (RAND).  Wolf's comments will appear as NWG/RFC #38 and fall
  into a class I will comment on below.

  Crowther submitted the following:

  "A brief description of two ideas for simplifying the host protocol
  described at the March meeting.  These ideas have not been carefully
  worked out.

  Idea 1. To Reconnect.
  --------------------

  "A NCP wanting to Reconnect tells each of his neighbors "I want to
  reconnect".  They wait until there are no messages in transit and
  respond "OK".  He then says "Reconnect as follows" and they do it.
  In the Rare condition, the NCP gets back an "I want to reconnect
  instead of an "OK", then one must go and one must stop.  So treat a
  "reconnect" from a higher Host user etc. as an ok and from a lower
  as a "No-wait until I reconnect you" and do the connection.

  Idea 2
  ------

  "Decouple connections and links.  Still establish connections, but
  use any handy link for the messages.  Don't send another message on
  a connection until a FRNM comes back.  Include source and
  destination socket numbers in the packet.

  "To reconnect, say to each of neighbors "please reconnect me as
  follows...".  Hold onto the connect for a short time (seconds) and
  send both packets and connection messages along toward their
  destinations.  I haven't worked out how to keep the in-transit
  messages in order, but probably everything works if you don't send
  out a reconnect when RFNM's are pending."

  Bill's first idea does not seem to me to be either decisively better
  or (after some thought) very different, and I am considering it.  I
  have no strong feelings about it yet, but I am trying to develop
  some.

  Bill's second idea seems contrary to my conception of the role of
  links.  An argument in favor of decoupling connections and links
  that the number of connections between two hosts might want to
  exceed 255, and that even if not, it is sounder practice to isolate
  dependancies in design.  On the other hand, the newly provided Cease
  on Link facility* (page 22 of the soon to be released BBN report
  #1822 revised Febuary 1970) becomes useless.  (Bill, who just put
  the feature in, doesn't care.)  Another objection is that it seems
  intuitively bad to waste the possibility of using the link field to
  carry information.  (Note the conflict of gut level feelings).

  In a conversation with John Haefner and Eric Harslem of RAND, the
  pointed out that the current protocol makes no provision for error
  detection and reporting, status testing and reporting, and expansion
  and experimentation.  Error detection and status testing will
  require some extended discussion to see what is useful, and I expect
  that such discussion will take place while implementation proceeds.
  Leaving room for protocol expansion and experimentation, however, is
  best done now.

  I suggest that two areas for expansion be reserved.  One is that
  only a fraction of the 256 links be used, say the first 32.  The
  other area is to use command codes from 255 downward, with permanent
  codes assigned from the number of links in use to 32, I feel that it
  is quite unlikely that we would need more than 32 for quite some
  time, and moreover, the network probably wouldn't handle traffic
  implied by heavy link assignment.  (These two things aren't
  necessarily strongly coupled:  one can have many links assigned but
  only a few carrying traffic at any given time.)

  Some of Heafner's and Harslen's other ideas may appear in NWG/RFC
  form.

  Immediate Interaction
  ---------------------

  During the next several days, I will still be interested in those
  editicisms of current protocol which might lead to rejection or
  serious modification of it.  Thereafter, the focus will be a
  refinement, implementation, extension, and utilization.  I may be
  reached at UCLA through my secretary Mrs. Benita Kristel at (213)
  825-2368.  Also, everyone is invited to contribuet to the NWG/RFC
  series.  Unique numbers are assigned by Benita.

  * The Cease on Link facility is a way a receiving host modifies
    RFNM's so as to carry a flow-quenching meaning.  An alternative
    proceedure is to use a host-to-host control command.

       [ This RFC was put into machine readable form for entry ]
        [ into the online RFC archives by Ron Fitzherbert 1/97 ]

AI ELI5

On this page
PROBLEMEarly ARPANET developers needed to coordinate on protocol design and share feedback after meetings.
MECHANISMRFC 37 documents a March 1970 network meeting discussing protocol modifications including dynamic reconnection, and records follow-up conversations.
HISTORICAL RECORDThis artifact captures the early design discussions that shaped network protocol development, including debates about sockets, connections, and links.

§1Meeting Record

On March 17, 1970, Steve Crocker hosted a network meeting at UCLA with about 25 people from sites across the ARPANET, including MIT, BBN, Harvard, SRI, Utah, UCSB, and others. The meeting discussed modifications to the host protocol based on work documented in earlier RFCs, with a focus on adding dynamic reconnection capabilities.

Computer scientists from different places met to discuss how to make the network protocol better and more flexible.

§2The Protocol Debate

The main topic was moving from a login-based protocol to one based on sockets and simplex connections, as documented in RFC 33 and RFC 36. The new protocol made it possible to connect any two processes without requiring login. The group broadly accepted the approach, though some questioned the complexity, particularly around dynamic reconnection.

After the meeting, Crocker received follow-up suggestions from other sites, including ideas from Bill Crowther at BBN about alternative approaches to reconnection and whether connections and links should be decoupled. These discussions would influence ongoing protocol design.

They argued about how computers should reconnect to each other: should connections and the actual communication links be separate ideas, or tied together?

§3Defining Process

RFC 37 formally defines what a process means in the network context: a program with an assigned location counter and address space, distinct from a passive program stored in a file. A process is created by an existing process and can terminate itself or be terminated by another process. This definition clarifies that sockets serve as a standard interface between processes, because processes cannot directly request connection with each other in a well-defined way.

A 'process' is a running program with its own memory and identity. Sockets are like mailboxes that let different processes send messages to each other.

§4References