3.1.5.2 Flow Control Algorithm

SMP provides a means for the receiver to govern the amount of data sent by the sender. This is achieved by returning a window with every ACK or DATA packet. The returned window indicates a range of acceptable sequence numbers beyond the last DATA packet that is successfully received. The window indicates an allowed number of DATA packets that the sender can transmit before receiving further permission.

Flow control involves the use of the following sender variables:

  • Session.SeqNumForSend

  • Session.HighWaterForSend

Flow control also involves the use of the following receiver variables:

  • Session.SeqNumForRecv

  • Session.HighWaterForRecv

  • LastHighWaterForRecv

The sections that follow show the relationships of these variables in the sequence number space. The sequence number is a 32-bit unsigned integer that is allowed to wrap.