Linux Large Datagram Problem
Kevin Zablonski
kzablonski at ll.mit.edu
Wed Nov 10 15:04:25 EST 2004
I am having a rather strange problem when it comes to UDP datagrams in
linux. I have found that when running software on linux that listens
for multicast traffic on a given address, linux is having trouble
receiving large UDP datagrams. I know what everyone is thinking, I must
be loosing packet fragments along the way due to maybe a busy network,
but this is not the case. When I run ethereal on the machine, I can see
that all of the fragments are getting to the machine, but to the
application. It is like they are't even there. To make things worse,
when running the same software on windows(EEEK), everything works fine.
To test out the problem, I have written two very basic java classes.
One class sends out generic packets of a given size and the other class
simply listens over the network and notifies you once a packet has been
received. I then ran the receiving class on several versions of linux
to determine the size boundary of each system. By slowly adjusting the
size of the packets sent I have determined that Redhat 9 has a boundary
of 41,433 bytes. If you were to send data in the size of 41,432 bytes,
everything is fine, but not 41,433. The boundary information for each
other version of linux can be found below.
Now to me, I would assume that each OS would be able to handle packet
sizes up until the industry standard 65k. I am puzzled as to why this
would be happening. It looks as if Fedora Core 2 is no longer having
this issue and Slackware 10.1 also does not experience this problem. I
will eventually need to be able to receive packets of up to 57000 kb,
but I would like to avoid running fedora core 2 if I can avoid it.
Has anyone seen this before or possibly know what I could do to fix it?
Do I need to adjust an OS setting? Any help or ideas would be greatly
appreciated. Thank You.
More information about the Discuss
mailing list