Share via


3.1.1.1.4 ACK Timestamps

The ACK payload (section 2.2.1.2.1) and ACK Vector payload (section 2.2.1.2.6) include a 24-bit timestamp representing when the Receiver received the data packet being acknowledged. The unit of the timestamp is 4 microseconds. The full range timestamp can be recovered from the 24-bit timestamp using a nearby reference full range timestamp which is in the range of 64 seconds. Because the loss timeout is in the order of few seconds, the outstanding packets' pending ACK is guaranteed to be less than 64 seconds.

In this procedure, the input is the lower 24-bit timestamp in units of 4 microseconds coded on wire, and a reference full range sequence number that is nearby. The procedure consists of these steps:

  1. Convert the reference full range timestamp to units of 4 microseconds.

  2. Form a candidate full range timestamp by combining the 24-bit coded timestamp as lower 24 bits and the higher bits taken from the reference timestamp in units of 4 microseconds.

  3. Compare the candidate timestamp with the reference timestamp as follows:

    1. If the candidate timestamp is higher than the reference timestamp by more than 0x800000, subtract 0x1000000 from the candidate timestamp.

    2. If the candidate timestamp is lower than the reference timestamp by more than 0x800000, add 0x1000000 to the candidate timestamp.

  4. Multiply the candidate by 4 to form a full range timestamp in units of microseconds.

  5. If the resulting timestamp is 32 seconds more than the reference time stamp, it MUST be considered as an invalid timestamp by the sender and MUST NOT be used.