On Sun, Nov 24, 2013 at 5:40 PM, Andreas Veithen <[email protected]> wrote: > What I still don't understand completely is why this causes such a > slowdown. The effect of the issue in httpcore-nio is that the peer > sees the TCP window size gradually drop from 43690 to 8192. Would that > trigger some mechanism in the TCP stack of the peer that delays the > transmission of TCP segments (even if the window is not 0)?
After reviewing some aspects of TCP, I think that the most likely candidate to explain this behavior is actually the "silly window syndrome" avoidance algorithm. Since the problem occurs in an integration test, all communication goes over the loopback interface where MSS=65495. This means that the window size gets much smaller than both the MSS and the initial/maximum window size. Probably Linux considers this as "silly" small and starts delaying transmission in an attempt to allow the window to grow to a more reasonable size (which of course never happens). Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
