This preview shows page 1. Sign up to view the full content.
Unformatted text preview: recent.
3. Whenever a timestamp option is sent, tsrecent is sent as the timestamp echo reply
field and the sequence number field is saved in lastack.
This algorithm handles the following two cases:
1. If ACKs are delayed by the receiver, the timestamp value returned as the echo
value will correspond to the earliest segment being acknowledged.
For example, if two segments containing bytes 1-1024 and 1025-2048 arrive, both
with a timestamp option, and the receiver acknowledges them both with an ACK
2049, the timestamp in the ACK will be the value from the first segment
containing bytes 1-1024. This is correct because the sender must calculate its
retransmission timeout taking the delayed ACKs into consideration.
2. If a received segment is in-window but out-of-sequence, implying that a previous
segment has been lost, when that missing segment is received, its time-stamp will
be echoed, not the timestamp from the out-of-sequence segment.
For example, assume three segments, each containing 1024 bytes, are received in
the following order: segment 1 with bytes 1-1024, segment 3 with bytes 20493072, then segment 2 with bytes 1025-2048. The ACKs sent back will be ACK
1025 with the timestamp from segment 1 (a normal ACK for data that was
expected), ACK 1025 with the timestamp from segment 1 (a duplicate ACK in
response to the in-window but the out-of-sequence segment), then ACK 3073 with
the timestamp from segment 2 (not the later timestamp from segment 3). This has
the effect of overestimating the RTT when segments are lost, which is better than
underestimating it. Also, if the final ACK contained the timestamp from segment
3, it might include the time required for the duplicate ACK to be returned and
segment 2 to be retransmitted, or it might include the time for the sender's
retransmission timeout for segment 2 to expire. In either case, echoing the
timestamp from segment 3 could bias the sender's RTT calculations.
Although the timestamp option allows for better RTT calculations, it also provides a way
for the receiver to avoid receiving old segments and conside...
View Full Document
- Spring '12