Hi Everyone,
I am studying the Linux 2.4.19 TCP code. I have a question on the RTT
estimation.
In the function tcp_clean_rtx_queue (tcp_input.c), all the packet before
snd_una is checked:
1. When a packet was not SACKed before, we can calculate the seq_rtt
from its skb's timestamp (now - scb->when).
2. When a packet was SACKed but not retransmitted, the linux also
calculate the seq_rtt from it when there is no unSACKed packet in the queue.
I cannot understand the second situation: The packet was SACKed before,
that means it arrived the receiver and triggered a SACK sometime before. The
interval between when packet is sent and when the SACK is received should be
the RTT for experienced this packet. Even now the packet is ACKed, I don't
think this ACK is triggered by this packet. Why is it used to calculate the
RTT?
Thanks.
-David
Xiaoliang (David) Wei Graduate Student in CS@Caltech
http://www.cs.caltech.edu/~weixl
====================================================
|