RFC 39

Comments on Protocol Re: NWG/RFC #36

๐Ÿ“… published March 1970, from ietf

RFC 39: COMMENTS ON PROTOCOL RE: NWG/RFC #36 ๐ŸŽ€

okay bestie, title block first ๐Ÿ’… this one's from the Network Working Group, it's RFC 39, written by E. Harslem and J. Heafner at RAND, dated 25 March 1970 ๐Ÿฆ‹ the original doesn't list a category or status, and it doesn't say what it obsoletes or updates, so I'm not making that up โœจ

We're basically giving feedback on NWG/RFC #36 ๐Ÿ’– these are suggestions for additions to the April 28th 1970 protocol grammar specifications ๐ŸŒธ

ERROR MESSAGES ๐Ÿšจ

okay so the first thing is an error message format ๐Ÿซถ it looks like this:

<ERR> <Code> <Command in error>

it's desirable to include debugging aids in the initial protocol for checking out Network Control Programs, etc. ๐Ÿ” we need that to actually debug stuff, obviously ๐Ÿ˜ญ

there are three classes of errors: content errors, status errors, and resource allocation or exhaustion ๐Ÿงš the <Code> specifies the class and the offending member of the class. the command gets returned to the sending NCP for identification and analysis ๐Ÿ’œ

status errors are things like messages sent over blocked links and attempts to unblock a link that's already unblocked ๐Ÿ™ˆ

content errors are things like an invalid RFC complete, a message sent on a link that isn't connected, closing a link that was never connected, and an attempt to unblock a link that isn't connected ๐Ÿ’€

resource errors are things like a request for a non-existent program and connection table overflow, etc. ๐Ÿ“ resource errors should be followed by a <CLS> in response to the <RFC> โœจ

QUERIES ๐Ÿ”ฎ

queries are giving extension to the <ERR> facility plus limited error recovery, which means you don't have to re-initialize an NCP ๐Ÿ™Œ very iconic ๐Ÿ‘‘

<QRY> <My   Socket>  < >

or

<QRY> <Your Socket>  <Text>

the first command asks the remote NCP to supply the status of all connections to the user specified by the user number in <My socket> ๐Ÿฆ‹ the second one is the reply, and <Text> contains the connection status information ๐Ÿ’…

if an NCP wants the status of all connections to a remote HOST, the <My Socket> is zero ๐ŸŒˆ

PROGRAM TERMINATION NOTIFICATION ๐Ÿ›‘

<TER> <My Socket>

this command supplements rather than replaces <CLS>, so it's not taking over for it ๐Ÿซถ it severs all communication between a program and those programs in a given HOST that it's connected to ๐Ÿ’ฅ

this basically does what would otherwise need multiple <CLS> commands, which is so efficient, periodt โœจ the <My Socket> contains the sender's user number ๐ŸŽ€

HOST STATUS ๐Ÿ 

<HCU>
<HGD>

these messages (HOST coming up and HOST voluntarily going down) are compatible with asynchronous, interrupt-driven programs ๐ŸŒธ that's different from the more conventional post/poll method, which is lowkey the main character move ๐Ÿ‘‘

TRANSMIT AND BROADCAST ๐Ÿ“ฃ

<TRN> <Body>
<BDC> <Body>

unlike the previous commands, these aren't sent over the control link. they go over links assigned to user programs instead ๐Ÿฆ‹ the prefix of <TRN> or <BDC> tells the receiving NCP what to do with the message body ๐Ÿ’œ

<TRN> means the message goes to a single process ๐Ÿงš <BDC> tells the destination NCP to distribute the message over all receiving connections linked to the sender ๐Ÿ“ก

when a user makes a system call to an NCP asking for <BDC>, the NCP generates one <BDC> to each HOST the sender is connected to ๐Ÿซถ

RFC AND DYNAMIC RECONNECTION ๐ŸŒ€

ngl this one's the big critique ๐Ÿ˜ญ the protocol is complex, it proliferates control messages, and it causes queues (to become associated with re-entrant procedures) that are artificially imposed via the protocol (remote AEN assignment) ๐Ÿ’€ it also discounts the situation where only controlling process "A" knows that slave process "B" should be "rung out" in a dynamic reconnection ๐Ÿ™ˆ

the <ERR>, etc., are suggestions for inclusion as additions in the April 28th protocol specifications ๐ŸŒธ the criticism above is, of course, not meant to affect modifying the RFC structure by April 28th, and it's not reflecting on the people who planned it ๐Ÿซถ we haven't studied the problem yet, though ๐Ÿ”

it's meant to voice concern about complexity and resulting response times โฑ๏ธ this is a difficult problem and deserves more study after we've exercised the current RFC specifications ๐Ÿ’… we hope to offer constructive suggestions about the RFC in the future ๐Ÿฆ‹โœจ


JFH:hs

[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Mario Vitale 08/99 ]

๐Ÿ“ฆ where this page comes from