Finding the optimal packet size

Steinar H. Gunderson (sgunderson@bigfoot.com)
Mon, 13 Dec 1999 19:14:15 +0000


Hi,

(If you send answers, please Cc me, as I'm nowhere near being able
to handle the load of this list.)

I'm writing an FTP server program. Earlier versions have just sent out
1460-byte chunks (using send()) at a time, which worked perfectly well
on my machine (Ethernet, 2.2.0 through 2.2.13, MTU: 1500). But then, I
test it on another machine (Ethernet, 2.2.5, MTU: 1500), and that machine
_fragments_ the packet into 1448 and 12 byte chunks!

Now, I'm setting IP_TOS to MAX_THROUGHPUT (or whatever that constant is
called...), so I guessed the kernel would fix this for me. Not so...

Is there any portable way (both across Linux kernels, and possibly also
to other Unices, such as Solaris) I could find the `right' MTU, and have
the kernel send packets of _only_ that size? (I'd like to send only one
packet at once, if that's possible.) If not, why does one machine differ
from the other? (They're using the same glibc2 compilation, even.)

If anybody needs anything to test on, the FTP server (0.0.8pre5) can
be downloaded from http://members.xoom.com/sneeze/betaftpd.html (but
I doubt it will be useful, given the nature of the problem).

Thanks in advance for any help :-)

/* Steinar */

-- 
Homepage: http://members.xoom.com/sneeze/

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/