[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [patch #9384] Partial SACK (RFC 2018) support
From: |
Jakub Schmidtke |
Subject: |
[lwip-devel] [patch #9384] Partial SACK (RFC 2018) support |
Date: |
Mon, 26 Jun 2017 12:26:58 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 |
Follow-up Comment #3, patch #9384 (project lwip):
I saw this improve the performance while downloading files over a high
bandwidth link with somewhat higher latency (around 100ms).
By "downloading" I mean that lwIP is on the receiving end, and it receives
most of the data over the connection.
I'm not sure about the timers, but from monitoring the traffic it looks like
the speed goes up, until something gets lost.
Then there are thousands of duplicate ACKs being sent by lwIP which keeps
getting out of order packets.
Eventually wireshark signals "end of receive window", and the transfer slows
down to 1 packet each RTT.
It is able to recover, after a while, until there are more losses and the
scenario repeats itself.
I have actually seen the similar behaviour of the native TCP stack with SACKs
disabled.
This patch adds support for lwIP to include SACKs in outgoing ACK packets.
So it improves the way it reports back to the sender.
For now it only includes SACKs in empty ACK packets, and not in data packets.
However, I'm pretty sure I know how to add SACKs to data packets as well.
I think that there should be a bit more data reserved for headers while TCP
segments are created,
and while they are being sent back and SACKs need to be added (or removed),
the TCP header
at the beginning of the packet could be moved (to create more space for SACK
options,
or to remove SACK options that are no longer needed).
It also does not add support for lwIP to handle SACKs received from the other
side,
but I haven't looked into that yet.
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/patch/?9384>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/21
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Simon Goldschmidt, 2017/06/21
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Joel Cunningham, 2017/06/26
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support,
Jakub Schmidtke <=
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Simon Goldschmidt, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Simon Goldschmidt, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Joel Cunningham, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/27
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Joel Cunningham, 2017/06/28
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/28
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Simon Goldschmidt, 2017/06/28
- [lwip-devel] [patch #9384] Partial SACK (RFC 2018) support, Jakub Schmidtke, 2017/06/28