Timers are used to protect against lost packet. Each packet must have its own logical timers since only a single packet will be retransmitted after timeout. A single hardware timer can be used to mimic the function of multiple logical timers.
The SR receiver will acknowledge a correctly received packet whether or not it is in order. Out of order packets are buffered until any missing packets ( that is packets with lower sequence numbers) are received. The various actions taken by the SR receiver.
Packet with sequence number in ( rev base re base + N- 1) is correctly received. In this case the received packet falls within the receiver window and a selective ACK packet is returned to the sender.
If the packet was not previously received it is buffered. If this packet has a sequence number equal to the base of the window then this packet and any previously buffered and consecutively numbered packets are delivered to the receiver. The receiver window is them moved forward by the number of packets delivered to the receiver as in figure when a packet with a sequence number of 2 is received then packets 3, 4 and 5 can be delivered to the receiver.
Packet with sequence number in ( rev base n rev base-1) is received. In this case an ACK must be generated this is the packet which the receiver has previously acknowledge.
Otherwise ignores the packets.
To understand the functions of SR protocols lets take an example of a window size of four packets. The sender can sends packets 0 to 3. If first packet pkt 0 is lost and pkt 1 , 2 and 3 are received by the receiver instead of discarding these packets the receiver buffers the packets and send the ACK for the packets respectively. After the time out of pkt 0 the sender can retransmit this lost packet pkt 0 if the receiver receives the lost packet pkt 0 then the receiver deliver all the packets which was kept buffered by the receiver previously.