Flow Control and Error Control
Flow Control
Ensure sending entity does not overwhelm receiving entity
By preventing buffer overflow
Influenced by:
Transmission time time taken to emit all bits into medium Propagation time time for a bit to traverse the link
Assume here no errors but varying delays
Stop and Wait
Source transmits frame Destination receives frame and replies with acknowledgement (ACK) Source waits for ACK before sending next Destination can stop flow by not send ACK Works well for a few large frames Stop and wait becomes inadequate if large block of data is split into small frames
Stop and Wait Link Utilization
Sliding Windows Flow Control
Allows multiple numbered frames to be in transit Receiver has buffer W long Transmitter sends up to W frames without ACK
ACK includes number of next frame expected
Receiver can ack frames without permitting
further transmission (Receive Not Ready) Must send a normal acknowledge to resume If have full-duplex link, can piggyback ACks
Error Control
Detection and correction of errors such as:
Lost frames Damaged frames Common techniques use: Error detection Positive acknowledgment Retransmission after timeout Negative acknowledgement & retransmission
Automatic Repeat Request (ARQ)
Collective name for such error control
mechanisms, including: Stop and wait Go back N Selective reject (selective retransmission
Stop and Wait
Source transmits single frame Wait for ACK If received frame damaged, discard it
Transmitter has timeout If no ACK within timeout, retransmit If ACK damaged,transmitter will not recognize it Transmitter will retransmit Use alternate numbering and ACK0 / ACK1
Go Back N
Based on sliding window If no error, ACK as usual Use window to control number of
outstanding frames If error, reply with rejection Discard that frame and all future frames until error frame received correctly Transmitter must go back and retransmit that frame and all subsequent frames
Go Back N - Handling
Damaged Frame
Error in frame i so receiver rejects frame i Transmitter retransmits frames from i Lost Frame Frame i lost and either Transmitter sends i+1 and receiver gets frame i+1 out of seq and rejects frame i Or transmitter times out and send ACK with P bit set which receiver responds to with ACK i Transmitter then retransmits frames from i
Go Back N - Handling
Damaged Acknowledgement
Receiver gets frame i, sends ack (i+1) which is lost Acks are cumulative, so next ack (i+n) may arrive before transmitter times out on frame i If transmitter times out, it sends ack with P bit set Can be repeated a number of times before a reset procedure is initiated Damaged Rejection Reject for damaged frame is lost Handled as for lost frame when transmitter times out
Selective Reject
Also called selective retransmission Only rejected frames are retransmitted Subsequent frames are accepted by the receiver
and buffered Minimizes retransmission Receiver must maintain large enough buffer More complex logic in transmitter Hence less widely used Useful for satellite links with long propagation delays
Buffer Requirement of ARQ
Stop-and-Wait:
1 Go-back-N: W+1 Selective Reject: 2W