I read this about IPv4 on page 440 of Computer Networks:

The Total length includes everything in the datagram—both header and data. The maximum length is 65,535 bytes. At present, this upper limit is tolerable, but with future networks, larger datagrams may be needed.

Why would we need larger datagrams?

I thought that the current IPv4 could be used to send essentially anything through the Internet. Would it be anything more than just a performance improvement?


Each packet that passes through a packet switched network requires a forwarding decision to be made at every hop. That means that as networks get faster either the hardware making the forwarding decisions has to get faster or the average packet size has to increase.

In practice so-far we have mostly relied on the former, as network speeds have got faster the hardware (either dedicated hardware or general purpose hardware used to run software implementations) has had to get faster to keep up.

Increasing the maximum packet size on the Internet is a herculean task for three reasons.

  1. The internet is a network of networks. The maximum size of a packet is limited by the smallest limit along it's route.
  2. Ethernet has no mechanism for negotiating maximum packet size. So if you want to increase it you have to manually reconfigure every device on the Ethernet network, miss one out and packets will get silently dropped.
  3. The mechanisms available for handling MTU changes mid-network frankly suck, especially for short communication sessions.

So in practice while some people thought packets above 64K were useful enough to write up an IPv6 extension specification (RFC 2675) for them in practice such packet sizes are rarely if ever seen in the real world. Most of the Internet uses a 1500 byte MTU (the default MTU for Ethernet).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.