Friday, 7 December 2007

Pipelined protocols

Pipelining is a network technique where the sender allows multiple, “in-flight” or yet-to-be-acknowledged packets to be sent before requiring an acknowledgement. The range of sequence numbers must be increased for this to work due to the number of outstanding packets. There is also an increased requirement for buffering at the sender and/or receiver.
Pipelining allows greater bandwidth.
There are two generic forms of pipelined protocols:

Go-back-N protocol
With an understanding of sequence numbers and sliding window it is possible to quickly understand the Go-back-N protocol.

The receiver sends an ACK for each frame as it is received. If a corrupted frame, F(n), is received or F(n)is missing (the packet failed to arrive) then the receiver sends a special N.ACK(n) to request that the sender start retransmitting from frame F(n).

Selective repeat protocol
This protocol can be executed using one of two methods:

  • The receiver sends only ACK's and the sender implicitly retransmits frames, or the receiver transmits ACK's to explicitly request a frame retransmission.
  • The sender buffers out-of-order frames until the missing frames are retransmitted.

As is suggested by the name, the receiver can “selectively” request retransmission of a frame. When using ACK's only, the absence of an ACK triggers the retransmission.

No comments: