Re: UDP bugs

Richard Gooch (rgooch@atnf.csiro.au)
Mon, 14 Dec 1998 12:41:42 +1100


Jamie Lokier writes:
> AFAIK, the maximum *IP* packet size is 65535 bytes.
> IP header is 20 bytes (with no options); UDP header is 8 bytes.
>
> That means the largest UDP packet you can have is 65507 bytes long.

Yes. I pull out my copy of Stevens last night and learned that 65535
is the total packet size, headers+payload.

> On Sun, Dec 13, 1998 at 01:50:25PM +1100, Richard Gooch wrote:
> > Linux 2.0.36 -> Solaris 2.5.1 65507
> >
> > Linux 2.1.126 -> Linux 2.1.126 65476
> > Linux 2.1.126 -> Solaris 2.5.1 65507
> >
> > Linux 2.1.131 -> Linux 2.1.131 65476
> > Linux 2.1.131 -> Solaris 2.5.1 65507
> >
> > Solaris 2.5.1 -> Linux 2.0.36 51792
> > Solaris 2.5.1 -> Linux 2.1.126 65476
> > Solaris 2.5.1 -> Linux 2.1.131 65476
> >
> > Solaris 2.5.1 -> Solaris 2.5.1 65535 (what you expect)
> >
> > From this it appears Linux 2.1.x has an output limit of 65507 bytes
> > and an input limit of 65476 bytes. Further, Linux 2.0.36 has an output
> > limit of 65507 bytes (same as 2.1.x) and an input limit of 51792
> > bytes.
>
> Looks like Linux gets the transmit size right, and the receive size
> wrong.

Yep.

> > Packets which exceed the maximum size go to the big bit bucket in the
> > sky. RIP. This is a problem for programmes which "know" that they can
> > send 65535 byte packets over UDP.
>
> 65535? Do you mean including the UDP and IP header, or 65535 bytes of
> application data.

I (incorrectly) meant 65535 bytes of application data.

Regards,

Richard....

-
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/