RFC 210

Improvement of Flow Control

πŸ“… published August 1971, from ietf

Request for Comments # 210: Improvement of Flow Control πŸŽ€

  • Author: W. Conrad, Harvard πŸ’…
  • Category: C.4
  • NIC: 7189
  • Date: 16 August 71 πŸ“…

Okay bestie, the current "give back" - "return" scheme is literally putting the cart before the horse πŸ΄πŸ›’ The "return" command tells you how much space the sending host is returning, when what we actually need is how much space it has left after subtracting the "give back" amount. Allocation counters at the sending and receiving hosts can totally get out of sync, and the receiving host has preemptive priority over its own resources, so it's only logical that it can find out exactly how much of its buffer space the sending host thinks it can claim 🫢

If "return" is gonna accurately reflect a sending host's current allocation, and successive "give backs" are gonna produce "return" commands that can be properly interpreted, we have to avoid certain race conditions 😭 A "give back" must be answered by a "return", and no more "give backs" can be issued until that "return" is received. Honestly, a "return" like this is really a give back reply, so it maybe should be implemented under that name πŸŽ€ On the sending side, the "return" must not be issued as long as a data RFNM is awaited on the link the "return" refers to. As soon as the net is clear of data messages, the "return" may be sent, and data transmission may continue once the RFNM for this message containing the "return" command is received ✨

The current "give back" uses fractions and has a format different from the "allocate" and "return" commands, which makes processing unnecessarily complicated πŸ™„ By adopting the convention that allocations can not be decremented below zero, you can safely specify absolute decrements in a format like the "allocate" command. If the receiving host's estimate of a suitable decrement is inaccurate, no harm is done, and the "return" in response to the "give back" gives immediate corrective information πŸ’œ

Summary πŸ’–

          Proposal                       Advantage

1    "Return" specifies amount       Provides more pertinent
     of space left after             information and a means
     decrementing.                   of resynchronization other
                                     than closing connection.

2    "Give Back" must get            Provide more accurate
     "return" in reply and           allocation information
     "return" must not be            by eliminating race
     sent with data on the           conditions.
     link.

3    Eliminate fractions             Eliminate messy math
     from "give back".               and provide symmetry
                                     to allocation commands
                                     making processing easier.

[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Gunnar Reichert 6/97 ]

πŸ“¦ where this page comes from