Edwin W. Meyer, Jr.
MIT Project MAC
27 June 1970
The method of flow control described in RFC 54, prior allocation of buffer space by the use of ALL network commands, has one particular advantage. If no more than 100% of an NCP's buffer space is allocated, the situation in which more messages are presented to a HOST then it can handle will never arise.
[Page 1]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
The flow control argument is based on the following premises:
[Page 2]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
(7) Under cases of extreme input load, if an NCP has large amounts of data buffered for input to a local process, AND that process has not read data over that connection for more than a minute, the NCP may delete that data to make space for messages from the IMP. This is expected to happen extremely rarely, except in cases where the process is the main contributor to the overload by maintaining several high volume connections which it is not reading.
[Page 3]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
(4) Inflexibility Under Increasing Load Conditions - Not only is this plan inflexible as to different kinds of load conditions on a sin- gle link, there is potential inflexibility under increasing total load. The key problem here is that an allocation can not be arbi- trarily revoked. It can be taken back only if it is used. As an example of the problem that can be caused, assume the case of a connection made at 9 AM. The HOST controlling the receiving socket senses light load, and gives the connection a moderately large allocation. However, the process attached to the send socket intends to use it only to report certain special events, and doesn't normally intend to send much at all down this connection. Comes 12 noon, and this connection still has 90% of its original allocation left. Many other processes are now using the network, and the NCP would dearly love to reduce its allocation, if only it could. Of course it can't. If the NCP is to keep its part of the flow control bargain, it must keep that space empty waiting for the data it has agreed to receive.
[Page 4]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
One would expect very good performance under light and moderate load, and I won't belabor this point.
[Page 5]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
Once the NCP's buffers are filled it must stop taking all messages from its IMP. This is serious because now the NCP can no longer receive con- trol messages sent by other NCP's, and because the IMP may soon be forced to stop accepting messages from the NCP. (Fortunately, the NCP already has sent out "cease on link" messages for virtually all of the high volume connections before it stopped taking data from the IMP.)
[Page 6]
NWG/RFC 59 Flow Control - Fixed Versus Demand Allocation
[ This RFC was put into machine readable form for entry ]