Re: UDP bugs

Jamie Lokier (lkd@tantalophile.demon.co.uk)
Sun, 13 Dec 1998 17:11:19 +0000


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.

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.

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

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