from the net.inet.tcp.inflight.enable dept.
We got the comment, that our new groupdrive server is much slower from a MacOS X client compared with the old one. A short test showed, that the difference is about 100 times while browsing through a large directory containing pictures. The solution took several hours and we allow us to document it in the following article.
An application sending data over a tcp session simply talks to a socket sending a stream of bytes. The TCP stack packs thoses bytes into IP packets and delivers them through the IP stack to the target. Both parts gave TCP/IP its name.
TCP was designed to operate on slow links. Even packet radio with a delay of several seconds and throughput of less then 100 bytes per second is good enough for TCP. In todays gigabit networks, different approaches are necessary. One idea is TCP Bandwidth Delay. TCP sends out packets only as fast as the target may accept. Using this technique, the underlying IP stack will not be overflowed with packets. FreeBSD 5.3 has enabled this feature by default.
Connecting a MacOS X Tiger (aka 10.4) or Panther (aka 10.3) client to a FreeBSD >= 5.3 server, the server assumes a very slow link and nails down the connection speed. The result is a really poor performance to network drives.
The reason why will be subject of much deeper analysis. We have just a workaround and this meens to set a syscontrol variable in /etc/sysctl.conf:
< | >