Large files transfers on the Internet

Jasun -

Transferring a single large file (1GB for example ) is not an accurate way to test available bandwidth over the Internet. Yes, it works great on a LAN with low latency, but on the Internet, latency is much higher.

The reason being is that transferring a file using only 1 TCP session on the stack will hit the max buffer waiting for ACK's.

A technical summary can be found here:


To get higher large file transfer speeds you have to increase the buffer size of your TCP stack.

On Joyent SmartOS:

ndd -set /dev/tcp tcp_max_buf 16777216 
ndd -set /dev/tcp tcp_cwnd_max 8388608
ndd -set /dev/tcp tcp_xmit_hiwat 2048576
ndd -set /dev/tcp tcp_recv_hiwat 2048576


The above is giving more RAM to each TCP session to facilitate the transfer of large files.  This is very inefficient if you are not regularly transferring +100MB files and will reduce performance of your overall system by reducing RAM available.

Have more questions? Submit a request


Article is closed for comments.