Disclosed are methods and systems for a receiver to autonomously allocate
bandwidth among its incoming communications flows. The incoming flows are assigned
priorities. When it becomes necessary to alter the allocation of bandwidth among
the flows, the receiver selects one of the lower priority flows. The receiver then
causes the selected flow to delay sending acknowledgements of messages received
to the senders of the messages. In most modern protocols, senders are sensitive
to the time it takes to receive acknowledgements of the messages they send. When
the acknowledgement time increases, the sender assumes that the receiver is becoming
overloaded. The sender then slows down the rate at which it sends messages to the
receiver. This lowered sending rate in turn reduces the amount of bandwidth used
by the flow as it comes into the receiver. This frees up bandwidth which can then
be used by higher priority flows.