tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: BSD doesn't track window size changes correctly.



When I read my earlier reply when it came back from the list, I
see that I was less clear than I intended...

I suspect what you're seeing in the BSD code is an attempt to deal
with the issue of receiving two otherwise identical packets, with
differing window sizes advertised.

In that scenario, we can't tell which was sent first (it is not
safe to assume that the packets were not reordered during transit.)

On the other hand, a properly (well) implemented peer will not lower
the window size in that scenario, where it is entirely proper to
send a larger window (which typically happens when data is delivered
to the peer application.)   So, given those two otherwise identical
packets, it is a reasonable assumption to make that the one with the
bigger window size was sent after the one with the smaller window size,
and hence we should process them as if that were true.   That, as I
understand it, is what the code does.

If there is some other way to order the packets (differing sequence
numbers, differing ack numbers) then that is used to order them, and
window size reductions work just fine (as well as they're ever able to
work anyway.)

kre



Home | Main Index | Thread Index | Old Index