Jason Hellenthal wrote:
On Sat, Mar 31, 2012 at 01:22:27AM +1100, Darren Reed wrote:
I've been tracking down some problems with FreeBSD's sending
of TCP packets and seem to have come to the conclusion that
in FreeBSD 8.2-RELEASE, when the system is working with a
TCP connection that has a moderate delay in it, FreeBSD's
TCP ignores the other end telling it that the window size
is now 0 and continues to send data. I suspect that this is
meant to make sense because it is expecting that the ACK
that will open up the window is already in transit. But that
only accounts for the condition where the TCP on FreeBSD can
compute and decide that the remote TCP will have its buffer
full. What I find harder to accept is that when FreeBSD's
TCP receives a TCP packet from the remote end advertising
a window of 0, FreeBSD's response is to send more data and
not a window probe or is that now the expected behaviour?
And whilst you might say "ok" for a packet of data, I'm
somewhat hard pressed to explain why FreeBSD's TCP sends
multiple packets with data in them after receiving a TCP
packet from the other end advertising a zero window size.

However this causes a problem with firewalls (;_) that are
close to the FreeBSD end because for them, it appears that
FreeBSD is sending data outside of its window.

Is this a known problem?
If so, has it been fixed in a later version of FreeBSD?
(No, I haven't tested anything other than 8.2)

In the packet flow below, 192.168.1.1 is FreeBSD and 10.1.1.1
is the other end.

Darren

Hi Darren,

I do believe this is the following bug at first glance that was patched
after 8.2-RELEASE. and has to do more with x64 systems more than x32.

See: "A Tale of a TCP Bug" for details...

http://blogmal.42.org/tidbits/tcp-bug.story

http://lists.freebsd.org/pipermail/freebsd-net/2011-April/028466.html

That patch alone is not enough to fix the problem - I still see FreeBSD 8.2
sending out data after it has received a TCP packet with a window size of 0.

Next I'll try adding Andre's.

Darren

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to