Why Selective Repeat Protocol
The go-back-n protocol works well if errors are rare,
but if the line is poor it wastes a lot of bandwidth on
retransmitted frames.
An alternative strategy, the selective repeat
protocol, is to allow the receiver to accept and
buffer the frames following a damaged or lost one.
2
Selective Repeat Protocol
In this protocol, both sender and receiver maintain
a window of outstanding and acceptable
sequence numbers, respectively.
The sender’s window size starts out at 0 and grows
to some predefined maximum.
The receiver’s window, in contrast, is always fixed in
size and equal to the predetermined maximum.
The receiver has a buffer reserved for each
sequence number within its fixed window.
3
4
Associated with each buffer is a bit (arrived ) telling
whether the buffer is full or empty.
Whenever a frame arrives, its sequence number is
checked by the function between to see if it falls
within the window.
5
If so and if it has not already been received, it is
accepted and stored. This action is taken without
regard to whether or not the frame contains the
next packet expected by the network layer.
Of course, it must be kept within the data link layer
and not passed to the network layer until all the
lower-numbered frames have already been
delivered to the network layer in the correct order.
6
Note
In Selective Repeat ARQ, the size of the
sender and receiver window must be at
most one-half of 2
m
.
7
8
Note
The sender only retransmits frames, for
which a NAK is received.
This will increase the efficiency of the
protocol.
9
Advantage over Go-Back-N:
Fewer Retransmissions.
Disadvantages:
More complexity at sender and receiver
Each frame must be acknowledged individually (no cumulative
acknowledgements)
Receiver may receive frames out of sequence
10
Conclusion
Selective repeat is combination of advantages of
GO back-N and Stop-N-Wait.
Selective repeat is somewhat superior to the other
protocols
11
Example of Selective-Repeat
12
Receiver must keep
track of holes’ in
the sequence of
delivered frames.
Sender must
maintain one timer
per outstanding
packet