For noisy links, there is another mechanism that does not resend N frames when just one frame is damaged; only the damaged frame is resent. This mechanism is called Selective Repeat ARQ.
It is more efficient for noisy links, but the processing at the receiver is more complex.
Windows:
- The Selective Repeat Protocol also uses two windows: a send window and a receive window.
- However, there are differences between the windows in this protocol and the ones in Go-Back-N.
Send Window:
- First, the size of the send window is much smaller; it is 2^m-1. Second, the receive window is the same size as the send window. The send window maximum size can be 2^m-1. For example, if m = 4, the sequence numbers go from 0 to 15, but the size of the window is just 8 (it is 15 in the Go-Back-N Protocol).
- The smaller window size means less efficiency in filling the pipe, but the fact that there are fewer duplicate frames can compensate for this.
- The protocol uses the same variables as we discussed for Go-Back-N. The Selective Repeat send window in Figure 1.
Receive window:
- The receive window in Selective Repeat is totally different from the one in Go-Back-N. First, the size of the receive window is the same as the size of the send window $(2^m-1)$.
- The Selective Repeat Protocol allows as many frames as the size of the receive window to arrive out of order and be kept until there is a set of in-order frames to be delivered to the network layer. Because the sizes of the send window and receive window are the same, all the frames in the send frame can arrive out of order and be stored until they can be delivered. Figure 2 shows the receive window.