On 14.09.2010 12:35, Maxim Dounin wrote:
Hello!
On Tue, Sep 14, 2010 at 12:12:03PM +0200, Ian FREISLICH wrote:
Fabien Thomas wrote:
Great,
This will maybe kill the long time debate about "my loopback is slow vs
linux"
To have the best of both world what about a socket option to
enable/disable fusing:
can be useful when you need to see some connection "packetized".
To chime in, I had a "slow" loopback issue earlier this week. It
turned out the problem was caused by delayed ack on the loopback
where the client didn't need to transmit any data to the server.
It delayed each packet from the server by 100ms. After patching
the server to:
setsockopt(desc->accept_fd, IPPROTO_TCP, TCP_NODELAY,&x, sizeof(x));
It's now faster than on linux.
Perhaps this is one of the causes of "my loopback is slow vs linux".
FWIW, I couldn't find a way to turn off dealyed_ack on just loopback
interface.
AFAIK in linux delayed ack behaves a bit more gently and doesn't
delay first ack(s) in a connection. As a result linux hides some
classic delayed ack vs. Nagle problems.
Something similar probably should be adapted.
I saw something like that while glancing over the Linux code some
time ago. Couldn't make much sense out of the code snipped because
their TCP code split into a myriad of small functions and thus hard
to follow in the beginning. Not the ours is much easier on a beginner.
--
Andre
_______________________________________________
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"