[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #26349] Nagle algorithm doesn't send although segment
From: |
David Empson |
Subject: |
[lwip-devel] [bug #26349] Nagle algorithm doesn't send although segment is full |
Date: |
Sun, 26 Apr 2009 23:30:53 +0000 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9 |
Follow-up Comment #1, bug #26349 (project lwip):
I had a look at what my TCP/IP book says (Internetworking with TCP/IP, vol 1
by Comer).
"Send-Side Silly Window Avoidance: When a sending application generates
additional data to be sent over a connection for which previous data has been
transmitted but not yet acknowledged, place the new data in the output buffer
as usual, but do not send additional segments until there is sufficient data
to fill a maximum-sized segment. If still waiting to send when an
acknowledgement arrives, send all data that has accumulated in the buffer.
Apply the rule even when the user requests a push operation."
According to this description, a Nagle implementation should send when it has
accumulated a full packet, and I agree that LWIP should do this.
Not sure how this interacts with the transmit window size. For example, what
would happen if the transmit window is currently less than MSS? Should the
"send now" trigger be the lesser of the tx window size and MSS?
The original description of the algorithm is RFC0896 (by Nagle) but it isn't
an official standard and it concentrates on avoiding the problem of small
packets without explaining possible exceptions when there is no point waiting
for further data to send. I haven't spotted an RFC which goes into more detail
but I haven't done an extensive search.
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?26349>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/