3.1.1.2.3 Loss Detection
A loss detection logic is implemented by the Sender to declare any possible packet loss. It implements two ways for such detection:
Packet loss due to reordering: A packet with Pending state is declared to be lost if its sequence number is smaller by a set amount than the largest sequence number of another packet that has a state of Received. The set amount is either fixed or dynamically variable, based on the type of the network conditions encountered.
Packet loss due to timeout: A packet with Pending state is declared to be lost if a set time has passed since the sending of the packet. This timeout can be dynamically variable, depending on the current network conditions, to avoid excessive declaration of the timeout losses.
When a packet is declared to be lost, any other packets with a Pending state within the active range of the Sender Window Buffer that is circularly lower should be declared as lost too. In addition, an AckOfAcks packet SHOULD be sent to the Receiver to allow it to update the active range of the Receiver Window Buffer.