1. A method for determining between a sender and receiver a data packet from the sender to retransmit to the receiver, the method comprising: maintaining, by a receiver, a sorted list comprising an index of consecutive sets of continuous ranges of sequence numbers identifying data packets received by the receiver; and generating, by the receiver responsive to receiving a landing data packet, a selective acknowledgment (SACK) packet identifying: (i) a first continuous range of sequence numbers and a second continuous range of sequence numbers, the second continuous range subsequent to the first continuous range in the sorted list and one or more sequence numbers between the first continuous range and the second continuous range identifying one or more data packets that have not been received, and (ii) a third continuous range of sequence numbers, the third continuous range including the sequence number of the landing data packet, and not subsequent to the first continuous range or second continuous range in the sorted list.