lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [task #13757] Investigate whether fast rexmit should restar


From: Joel Cunningham
Subject: [lwip-devel] [task #13757] Investigate whether fast rexmit should restart RTO timer
Date: Tue, 08 Mar 2016 23:25:12 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0

Follow-up Comment #3, task #13757 (project lwip):

Spent some time looking this up and I found no mention of how to handle the
RTO timer from RFC 5681 after entering recovery mode and performing the fast
retransmit.

I looked at Linux and FreeBSD next.

FreeBSD appears to be clearing then starting the RTO timer.  Here is the
appropriate function that handles duplicate ACKs:
https://svnweb.freebsd.org/base/head/sys/netinet/tcp_input.c?view=markup#l2577

Here we can see if the number of duplicate ACKs equals tcprexmtthresh, it
calls tcp_timer_activate(tp, TT_REXMT, 0); which stops the timer.  Then it
calls tfb_tcp_output which is a function pointer mapped to tcp_output(), where
I believe the timer is restarted

For Linux, I found a research paper describing the behavior of TCP RTO timer
management.  http://people.cs.clemson.edu/~westall/853/linuxtcp.pdf On page
6-7, section 3.3.1 "Retransmission timer calculation"

"The RTO timer is reset every time an acknowledgement advancing
the window arrives at the sender. The RTO timer is also reset when the sender
enters the Recovery state and retransmits the first segment. During the rest
of the Recovery state the RTO timer is not reset, but a packet is marked lost,
if more than RTO's worth of time has passed from the first transmission of
the
same segment"

I think as far as LwIP is concerned, we can easily restart the timer when
entering recovery mode.  This would ensure we don't have an early
retranmission after the fast retransmit and shouldn't cause any functional
problems as we will continue the timer based retranmits after the RTO period
following the fast retransmit

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?13757>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]