lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [bug #50837] TCP: zero window probe doesn't timeout


From: Joel Cunningham
Subject: [lwip-devel] [bug #50837] TCP: zero window probe doesn't timeout
Date: Sun, 2 Jul 2017 12:41:33 -0400 (EDT)
User-agent: Mozilla/5.0 (iPad; CPU OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.0 Mobile/14F89 Safari/602.1

Follow-up Comment #39, bug #50837 (project lwip):

Simon,

I spent some time investigating how NetBSD uses its persist timer and have
found some similar behavior to the proposed delayed small send. It takes some
spinning up, but the logic is contained within the Sender Silly Window check:

https://github.com/jsonn/src/blob/trunk/sys/netinet/tcp_output.c#L996

When the connection is idle (i.e. no in-flight data) and the window doesn't
allow a full segment and Nagles is on AND there is more data in the socket
buffer, rather than sending a small segment, sending is skipped and the
persist timer is started (follow down to line 1075). 

When persist timer fires
(https://github.com/jsonn/src/blob/trunk/sys/netinet/tcp_timer.c#L435) , it
sets tp->t_force to 1 and calls tcp_output(), which will now forces sending of
the small segment. See
https://github.com/jsonn/src/blob/trunk/sys/netinet/tcp_output.c#L819 for
logic of t_force being 1 and window being zero vs small

So while there isn't behavior indefinitely treating the window as closed,
delaying sending in this case and using the persist timer is done by at least
NetBSD

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?50837>

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




reply via email to

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