Flow Control

Flow control is an important attribute of a communication protocol for any DRTS, as it defines how the protocol detects nonreceipt of messages and what is done in case of a nonreceipt. Nonreceipt may arise because of a number of causes including buffer overflow at either the sender or the receiver. Flow control may be explicit or implicit. In explicit flow control, the sender and the receiver are each associated with a client at each end, which is the application. The sender end server sets up two counters: a time-out counter and a maximum attempt counter. The sending end server, or simply the sender, sends the message and waits for acknowledgment after starting the time-out counter. If the receiving end server, or simply the receiver, receives the data, it sends an acknowledgment to the sender only; else it does nothing. If the sender receives the acknowledgment, it informs its client that the send is complete and resets the time-out counter; otherwise it waits for the time-out value to be reached and retries send setting up the maximum attempt counter. Each time the time-out value is reached, the counter is reset until the number of retries equals the maximum attempt count. The error detection, in this case, is only done by the sending end process. On the contrary, in implicit flow control, the receiver is programmed to receive messages from the sender at some predesignated instants only. No explicit acknowledgment is sent and the error detection is only by the receiving end processes.

< Prev   CONTENTS   Source   Next >