IP Fragments - Worth doing, testing strategies?

Michael B. Brutman mbbrutman-cctalk at brutman.com
Wed Sep 29 20:24:53 CDT 2010

I have been working on my TCP/IP stack for DOS, adding IP fragmentation 
support.  There are not too many more features that I want to add to 
make it 'complete' before I open source the code and IP fragment support 
was a big one.

I am having a terrible time testing it though.  It seems that IP 
fragments out in the wild are pretty rare.  I tried connecting to a slew 
of remote FTP sites hoping to find one that was behind a really bad 
network, and thus would have fragments coming from it.  No joy.

It seems that there are a lot of tricks out there to prevent fragments 
from being created, especially when using TCP.  The only way I can test 
the code is to send myself oversized UDP packets.  If it works for UDP 
then it should work for TCP too, but I'd really like to test the TCP 
path explicitly.  Combine the tricks with modern broadband and getting 
fragments is really difficult.

Even on the home network I am having a hard time getting fragments.  I 
put a Linux box between the DOS PC and a Windows machine, and set one of 
the Ethernet MTUs to 576.  Well, that didn't force fragments because the 
Windows box is too clever.  I could start turning everything off in the 
registry, but I really don't want to get that involved.

Off the top of my head I think I am going to have to get another Linux 
box and dumb that down, if it is possible.  Dumbing Linux down to turn 
off the features and then restoring it to a good state is probably 
safer/easier than doing it with Windows.

Does anybody have a good technique for setting up a simple network that 
will result in IP fragments of TCP?

On a related note, is this even worth it?  I don't know of anything that 
needs to send fragments except for NFS over UDP.  There might be other 
applications that send big packets over UDP but those would be the only 
class of applications that absolutely require fragment support.  With 
TCP it is nice, but a user should be able to get around any problem by 
setting the local MTU to 576.


More information about the cctalk mailing list