RFC 37
Network Meeting Epilogue, etc
RFC 37: Network Meeting Epilogue, etc. π
Okay bestie, the header tea β: this is RFC 37, "Network Meeting Epilogue, etc.", from the Network Working Group π¦. It's written by S. Crocker of UCLA and dated 20 March 1970 π. The header doesn't list a category or status, and it doesn't say it obsoletes or updates anything π€·.
The Meeting πΈ
Okay so on Tuesday, March 17, 1970, Crocker hosted a Network meeting at UCLA π . About 25 people showed up, including reps from MIT, LL, BBN, Harvard, SRI, Utah, UCSB, SDC, RAND and UCLA π₯. He presented a modification of the protocol in NWG/RFC #33, and the modifications are sketchily documented in NWG/RFC #36. The main glow-up is the facility for dynamic reconnection β¨.
The protocol based on sockets and undistinguished simplex connections is very different from the older protocol documented in NWG/RFC #11 π. The push for these changes came from the network meeting on December 8, 1969, at Utah, where people seriously challenged the limits of a log-in requirement and the inability to connect arbitrary processes π. So the main reason for this recent meeting was to sample opinion on the new protocol π§.
Recollections may vary, but Crocker's opinion is that the protocol was widely accepted, and the criticism and discussion fell into two categories π:
- Questioning the complexity and usefulness of the full protocol, especially the need for dynamic reconnection.
- Other topics, particularly character set translation, higher level languages, incompatible equipment, etc.
What was notably missing? Any criticism of the basic concepts of sockets and connections π. (Some has since surfaced π.) These agreements were made:
- By April 30, Crocker would be responsible for publishing an implementable specification along the lines presented.
- Any interested party would communicate with him (at least) immediately if they wished to modify the protocol.
- If major modifications came under consideration, interested parties would meet again. This would happen in two to three weeks.
- 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 getting replaced by James Forgie π«Ά. Here's the new contact info, verbatim:
James Forgie
Mass. Institute of Technology
Lincoln Laboratory C158
P.O. Box 73
Lexington, Mass. 02173
telephone at (617) 862-5500 ext. 7173
And Professor George MEaly is being added to the list π. Here's his info, typos and all:
George Mealy
Rm. 220
Aitken Computation Lab.
Harvard University
Cambridge, Massachusetts 02138
telephone at (617) 868-1020 ext. 4355
Process π§ββοΈ
Okay the vocab moment: in all of their writing, the team uses process to mean a program that has an assigned location counter and an address space π
. A program is just a pattern of bits stored in some file π. A new process is only created by an already existing process. The previous process has to run an atomic operation (forc, attach, etc.) to make that happen π. Processes can either cause their own demise, or get terminated by another (usually superior) process π.
This matches the definition Vyssotsky, et al gave on pp. 206, 207 of "Structure of the Multics Supervisor" in the FJCC proceedings, 1965 π.
Here's the lowkey big deal: because a process can create another process, and because the two are usually indistinguishable from the outside, Crocker knows of no reasonable way for two processes to request a connection directly with each other π. That's exactly why the function of sockets is to provide a standard interface between processes πβ¨.
The Days After π¦
In the time since the meeting, Crocker had conversations with Steve Wolfe (UCLA-CCN), Bill Crowther (BBN), and John Heafner and Erick Harslem (RAND) π£οΈ. Wolf's comments will show up as NWG/RFC #38, and they fall into a class Crocker will comment on below π.
Crowther sent in the following, and it's giving clever π‘:
"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."
Crocker's take on Bill's first idea: it doesn't seem decisively better, and after some thought it isn't very different either π€. He's considering it, and he has no strong feelings yet, but he's trying to develop some π.
Bill's second idea, though? It seems to go against Crocker's whole idea of what links are for π€. One argument for decoupling connections and links is that the number of connections between two hosts might want to exceed 255. And even if it doesn't, isolating dependencies in design is just sounder practice π§ . BUT, 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 that feature in, doesn't care π.) Another objection: it seems intuitively bad to waste the chance to use the link field to carry information. (Note the conflict of gut-level feelings π« .)
Then Crocker talks about RAND. In a conversation with John Haefner and Eric Harslem of RAND, they 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 need some extended discussion to see what's actually useful, and Crocker expects that discussion will happen while implementation moves along π οΈ. But leaving room for protocol expansion and experimentation? That's best done now π .
So he suggests reserving two areas for expansion π:
- One is that only a fraction of the 256 links get used, say the first 32.
- The other is using command codes from 255 downward, with permanent codes assigned from the number of links in use up to 32. Crocker feels it's quite unlikely we'd need more than 32 for quite some time. Moreover, the network probably wouldn't handle the traffic implied by heavy link assignment. (These two things aren't necessarily strongly coupled: you 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 show up in NWG/RFC form π¨.
Immediate Interaction β°
For the next several days, Crocker is still interested in those editicisms of the current protocol that might lead to rejection or serious modification of it π§. After that, the focus shifts to refinement, implementation, extension, and utilization π. He can be reached at UCLA through his 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 ]
π¦ where this page comes from
- ietf: rfc37 1970-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms