 sender continuously sends a number of packets (determined by the duration of transmission window) without receiving an ACK signal from the receiver. The receiver process keeps track of the sequence number of the next packet it expects to receive, and sends the sequence number with every ACK it sends. The receiver will ignore any packet that does not have the exact sequence number it expects whether that packet is a duplicate of a packet it has already acknowledged or a packet with a sequence number higher than the one expected. Once the sender has sequentially sent all the packets in its transmission window, it will check whether all of the packets are acknowledged and will resume sequential transmission of the packets starting with the next sequence number to the one that was last acknowledged. Selective Repeat ARQ is a form of the ARQ protocol for transmission and acknowledgement of packets or fragments of a packet where the sending process continues to send a number of packets specified by a window size even after a packet is lost. Unlike Go-Back-NARQ, the receiving process will continue to accept and acknowledge packets sent after an initial error. The receiver process keeps track of the sequence number of the earliest packet it has not received, and sends that number with every ACK it sends. If a packet from the sender does not reach the receiver, the sender continues to send subsequent packets until it has emptied its window. The receiver continues to fill its receiving window with the subsequent packets, replying each time with an ACK containing the sequence number of the earliest missing packet. Once the sender has sent all the packets in its window, it re- sends the packet number given by the ACKs, and then continues where it stopped. Figure 7-2 provides an example illustration of the ARQ variants. It shows how efficiently different ARQ schemes utilize the communication channel, and use of the ARQ buffer in the transmitter and receiver. The major advantage of ARQ over Forward Error Correction (FEC) sche