lwIP - A Lightweight TCP/IP stack - Bugs: bug #27771, Silly-window-avoidance decreases...
You are not allowed to post comments on this tracker with your current authentication level.
bug #27771: Silly-window-avoidance decreases window unnecessarily
Submitter: | Simon Goldschmidt <goldsimon> | ||
Submitted: | Wed 21 Oct 2009 05:23:07 PM UTC | ||
Category: | TCP | Severity: | 3 - Normal |
Item Group: | None | Status: | Invalid |
Privacy: | Public | Assigned to: | None |
Open/Closed: | Closed | Planned Release: | None |
lwIP version: | 1.3.1 |
Jump to the original submission
Fri 23 Oct 2009 07:10:15 AM UTC, comment #8: |
Simon Goldschmidt <goldsimon> |
Thu 22 Oct 2009 03:29:44 PM UTC, comment #7: No, the test in tcp_update_rcv_ann_wnd should look like this (second clause added):
|
Kieran Mansley <kieranm> |
Thu 22 Oct 2009 03:20:10 PM UTC, comment #6:
|
Simon Goldschmidt <goldsimon> |
Thu 22 Oct 2009 02:17:34 PM UTC, comment #5: So it seems that both the summary of this bug as well as the bug itself is invalid? Let's wait to close this until we change the algorithm... |
Simon Goldschmidt <goldsimon> |
Thu 22 Oct 2009 10:52:21 AM UTC, comment #4: Imagine that the 10 bytes was just the first 10 bytes of a longer transfer, and that the sender has in fact got the other 502 possible bytes in flight. If we advertised the 10 bytes of new window after receiving it, the server would then get an ACK that allows it to send 10 more bytes. In reality it might want to send much more, but would be limited by the window, and so send just 10 bytes. This would result in a situation where the network descended to lots of small packets. If instead we batch up the window updates and give it a window updates of 1 MSS or more, the sender will always be able to send a full segment (when it is able to send at all) and so will result in a situation there the network sticks to MSS-sized frames: this is much more efficient.
|
Kieran Mansley <kieranm> |
Thu 22 Oct 2009 10:38:19 AM UTC, comment #3: What's happening in Jan's trace is:
|
Simon Goldschmidt <goldsimon> |
Thu 22 Oct 2009 08:28:47 AM UTC, comment #2: I think the current behaviour is right. I'd like to see a packet capture showing lwIP moving the right edge of the advertised window to give less to the sender. I think at the moment that it will keep this right edge constant instead of increasing it by small amounts, which is the correct behaviour. Once the small amounts add up to a sizeable increase (> 1 MSS) it will advertise that all in one go. |
Kieran Mansley <kieranm> |
Wed 21 Oct 2009 08:44:04 PM UTC, comment #1: The reason seems to be that tcp_update_rcv_ann_wnd() shrinks the window when called from tcp_receive(), but does not grow it when called from tcp_recved(). The reason is this line:
|
Simon Goldschmidt <goldsimon> |
Wed 21 Oct 2009 05:23:07 PM UTC, original submission:
[This has been reported on lwip-users today (together with summaries "TCP payload is doubled" and "TCP problem" in the last days).]
|
Simon Goldschmidt <goldsimon> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 3 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2009-10-23 | goldsimon | Status | None | Invalid | |
Open/Closed | Open | Closed | |||
2009-10-22 | goldsimon | Summary | Silly-window-avoidance shrinks window unnecessarily | Silly-window-avoidance decreases window unnecessarily |
Powered by Savane 3.13-caa5.
Corresponding source code
Closed as invalid after opening bug #27783: Silly window avoidance for small window sizes