I was experiencing the occasional weird behaviour on downloading large files in Leopard: the download would stall, but after stopping/restarting (which can be done in Safari and iTunes), the download would continue. It was not very consistent, and I suspected the NAT router or even Rogers - some sites were occasionally having this problem, while other sites would not.

While playing with JRuby over the weekend, this happened again and pretty much prevented the gem installation - because the multi-megabyte gem index would not download from http://gems.rubyforge.org/. Strangely enough, same download would work on Tiger, on Linux and on Windows using same router - which pretty much excluded router as a cause.

I found simple fix here - big thanks to Chris D Searle. Run the following:

[sourcecode language='ruby']
sudo sysctl -w net.inet.tcp.rfc1323=0[/sourcecode](it replaces the default value of 1)

I do not know all the details of the fix - it switches off some TCP window optimization which may have been the cause of the problem. More on the parameter and how to set it in variety of OS-es can be found in the TCP tuning handbook.

To make change permanent, create (or edit) the file /etc/sysctl.conf with the content:

[sourcecode language='ruby']