Current flow-control scheme for IMPSYS
RFC 442

Document Type RFC - Unknown (January 1973; No errata)
Updated by RFC 449
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 442 (Unknown)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                            V. Cerf
Request for Comments: 442                                24 January 1973
NIC: 13774

               The Current Flow-Control Scheme for IMPSYS

   BB&N quarterly report #13 outlines part of the current flow control
   scheme in the IMP operating system.  A meeting held March 16, 1972,
   at BB&N was devoted to the description of this new scheme for the
   benefit of interested network participants.

   This note represents my understanding of the flow control mechanism.
   The essential goal is to eliminate unnecessary retransmissions when
   the load is heavy, eliminate the retransmission time-out period when
   the load is light, increase bandwidth, prevent re-assembly lock-up,
   control traffic from HOSTS into the net more strictly than the
   earlier link blocking method, and secure the rights of life, liberty,
   and the pursuit of happiness for ourselves and our posterity,...oops.

Source IMP-to-Destination IMP Protocol

   There are two different protocols depending on message length (i.e.
   single or multi-packet).  We illustrate first the single packet case.

          Source Imp                        Destination Imp
          ----------                        ---------------

case 1)   message (1) + implicit req (1)--->
                                        <--- RFNM (arrived ok)
          [discard copy of msg]

case 2)   message (1) + implicit req (1)---> no room, don't respond
                                        <--- All (1)  (room available)
          message (1)                   --->
          [discard copy of msg]         <--- RFNM (arrived ok)

   In the first case, a single packet message is sent to the destination
   IMP.  This message acts as an implicit request for single packet
   buffer space.  If there is room, as in case 1, the destination IMP
   responds with a RFNM.  The source IMP, which has retained a copy of
   the message, deletes its copy and goes on.

   The second case illustrates what happens when the source IMP sends a
   message to a destination IMP at which there is no room for the one-
   packet message.  The arrival of the single packet message constitutes
   a request for single packet buffer space, and is recorded as such by
   the destination IMP in a first-come-first-served buffer reservation

Cerf                                                            [Page 1]
RFC 442        The Current Flow-Control Scheme for IMPSYS   January 1973

   request queue.  When space is available, the destination IMP will
   transmit an ALL (1) to the requesting source IMP which can then send
   the single packet message again, this time knowing that space has
   been reserved at the destination.

   For multi-packet messages, the procedure is somewhat different.  When
   a message enters an IMP from a HOST, and the "last bit" flag is not
   set when the number of bits in a maximum length single packet have
   arrived, the IMP halts the HOST->IMP transmission line while it
   determines whether space has been reserved at the dest. IMP.  If
   space (8 packets worth) has been reserved, the HOST->IMP line is re-
   opened, and the message is sent out normally.  If space has not been
   reserved, the HOST->IMP line is kept closed while the source IMP
   makes a request for multi-packet buffer storage at the destination
   IMP.  When 8 buffers are available, the destination IMP responds with
   an ALL (8).  The source IMP then transmits the message, and waits for
   a combination RFNM and ALL (8) from the destination IMP.  The
   destination IMP will delay its RFNM, if necessary, until it has
   another 8 buffers available for the next multipacket message.

   This sequence is illustrated below:

            Source IMP                   Destination IMP
            ----------                   ---------------

H-> I line
----------> First packet of multipacket
            arrives. Halt H->I line and
            send REQ (8)  -------------->
            start 30 sec. Time-out

            If time-out, resend
            REQ (8) and restart -------->
            time-out.
                                <--------ALL (8) when available. Start
                                         long term (2 min.) time-out.
                                         On time-out, reset all
                                         outstanding reservations.

            Send the message:
                        |   ----------->
            Start 30 sec. time-out
            for INComplete transmission.
            If time-out, send INC?----->

Cerf                                                            [Page 2]
RFC 442        The Current Flow-Control Scheme for IMPSYS   January 1973

                                  <------On recept of message, send
                                         RFNM + implicit ALL (8). On
                                         receipt of INC? send RFNM +
                                         ALL(8) if MSG(8) received,
Show full document text