RFC 394
Two Proposed Changes to the IMP-Host Protocol
Network Working Group π Request for Comments #394, also known as NIC 11856, written by John M. McQuillan at Bolt Beranek and Newman Inc. on 27 September 1972. It's filed under category B.1 and it updates RFC #381. It obsoletes nothing. π
TWO PROPOSED CHANGES TO THE IMP-HOST PROTOCOL β¨
okay so this note is about two changes to the IMP-Host communication protocol. The base protocol is described in BBN Report 1822 and was revised in RFC 381 π. The first change is about the IMP-to-Host interface and the 30-second timeout on each IMP transmission to the Host β°. The second change is about the Host-to-IMP interface and proposes a brand new timeout mechanism π₯. These changes are independent, both in what they say and how they get built π . The author wants comments on each proposal π«Ά.
Here's the plan: if no adverse comments come in, these get installed in the network on Tuesday, October 10 π¦. If serious adverse comments come in, action gets delayed until early November π.
1) Declaring an unresponsive Host as dead to the network π
Right now, a Host gets 30 seconds to accept each packet of a regular message, and it also gets 30 seconds to accept non-regular messages π. If the Host is unresponsive for that whole period, the IMP does all of this:
- a) All messages held for the Host get discarded ποΈ.
- b) The source Host for each discarded message gets a
type 9, subtype 0message (Incomplete Transmission - Destination Host Tardy) π¨. - c) The IMP ready line gets dropped and raised again π.
- d) The Host gets sent 3
type 4messages (NOP) π§. - e) The Host gets sent a
type 10message (IMP-Host Interface Reset) πΈ.
Here's the new bit π. The author proposes that the IMP also declare the Host dead to the network β οΈ. Then, when the IMP gets the next bit from the Host, it declares the Host alive again and starts the 30-second delay, while the news that the Host is alive spreads through the whole network π.
Why? Some Hosts have their ready lines up even when they can't accept bits from the IMP, and several Hosts are like this π€. Some have their ready lines wired to stay on all the time π. Terminal use and survey programs get super annoying when you have to wait 30 seconds just to learn a Host isn't responding π©. Other Hosts drop into "break-point mode" for system debugging, sometimes for several minutes at a time π. In that mode the NCP software isn't running, so messages pile up in the network and then get thrown away π. The author thinks it's better to call those Hosts dead until they send a message* to the IMP β¨. That way, any source Host trying to talk to them can be told right away that the destination Host is dead πββοΈ.
*Thus a Host should send its IMP at least two NOPs (or other messages) whenever it receives a type 10 message from its IMP. π¨
2) Timing out Host-to-IMP messages in 15 seconds β±οΈ
When the IMP gets a message from a Host, it has to grab several internal resources before it can process that message π§ . It has to assign the message a message number, make an entry in an internal table, and so on π. If any of those resources aren't free, the IMP just waits until they are π΄. It can't take in any more messages from the Host during that wait, so the interface gets stopped π. Usually this is only momentary, but sometimes the IMP can't process a message it already started accepting for many seconds π¬.
This is an especially rough situation for Hosts with half-duplex interfaces π. If the IMP takes 30 seconds to process a message, the IMP-to-Host timeout from section 1) kicks in, and the Host loses every message sent to it during the last 30 seconds π. It's also worth knowing that the half-duplex interface can cause a deadly embrace π. For example, the IMP might not be able to get the resources it needs for a message because the Host has several messages queued up that are tying up storage, message numbers, or table slots. The Host has to accept those messages before any more messages can be put into the network π. Even Hosts with full-duplex interfaces can run into this, and it might get in the way of other useful communication π.
Here's the proposal π. The IMP tells the Host when it can't keep processing a message it has started accepting. The IMP tries for 15 seconds, and then sends the Host a type 9, subtype 4 message (bits 30,31,32 = 100), defined as Incomplete Transmission - Resources Unavailable π¦. In this case, the IMP hasn't been able to send any part of the message into the network π
ββοΈ. The IMP still takes in the rest of the message π₯. After that, a Host with a half-duplex interface should start accepting messages from the IMP π. A Host with a full-duplex interface might try to send some other message instead π. And if the Host wants to, it may retransmit the incomplete message π
.
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by BBN Corp. under the ]
[ direction of Alex McKenzie. 1/97 ]
π¦ where this page comes from
- ietf: rfc394 1972-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms