That's all true, but David's and Jan's recent problem was that the window was changed although tcp_recved() was called right away. This is not an RFC-violating problem but a problem in lwIP (when and how it calculates the window changes).
However, adding a bug entry for your comments below would be best, I guess. Simon David Empson wrote: > Kieran Mansley wrote: > > I was a bit wrong there. I've taken another look at the code and this > > change in behaviour is intentional. There were two changes in 1.3.1: > > - only send an explicit window update if the change is greater than > > TCP_WND_UPDATE_THRESHOLD. > > - only change the window advertised (including in normal ACKs) if the > > change is greater than 1 MSS. This is silly window avoidance, and > > designed to prevent the sender getting small amounts of window and then > > sending small packets. > > The description of silly window avoidance in RFC1122 (section 4.2.3.3) > says > that there is supposed to be a second test. > > The threshold to advertise an increase in window size should be the lesser > of MSS and WND/2 (assuming the recommended fraction of 1/2). This would > allow the use of window sizes smaller than MSS*2. The absolute minimum > (but > horribly inefficient) value of WND would be 2. > > Assuming WND is set equal to MSS: > > 1. If the application is reading data slowly a few bytes at a time with a > sender able to supply data continuously, then the typical pattern should > be > to get an initial transmit burst of the full window size, followed by > half-full segements (WND/2 = MSS/2) once the receiver has processed half > the > initial data. > > 2. If the sender is delivering small packets at a moderate pace and the > receiver is able to keep up, the expected pattern should be to see the > window size decreasing in each ACK until just after half the window is > gone, > then it should advertise an almost full window again. > > It seems reasonable for LWIP to recommend that users set WND to at least > MSS*2, but unless LWIP enforces this minimum, the silly window avoidance > code should allow for small windows by checking WND/2 as well as MSS. > > > > _______________________________________________ > lwip-users mailing list > [email protected] > http://lists.nongnu.org/mailman/listinfo/lwip-users -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
