Ip – Confusion about data fragmentation/MTUs – why was it introduced in the first place

fragmentationiplayer2layer3mtu

I am currently studying networking as a part of my bachelors and I am a bit confused about why fragmentation/MTUs are necessary. In my lecture slides, it only says "Fragmenting if necessary" under the "Functions of the Network Layer" and when re-listening to the lecture recording, the lecturer does not really expand on it much. Our course textbook is Tanenbaum's "Computer networking" which also provides no extra information.

I read the Wikipedia article on MTUs and I now understand the core concept, however, I fail to understand why were fragmentation and MTUs introduced in the first place. Intuitively, I can understand how if there is a huge chunk of data and a small error occurs, you would have to re-send the whole enormous packet which is wasteful. Is this correct? And what are the other reasons why fragmentation is used? What would happen in a hypothetical network that does not fragment data/have MTUs – is it even possible for the physical layer to handle that?

Best Answer

One of the two basic functions for IPv4 is packet fragmentation (the other is addressing). IP is designed to send packets from one network to another network. Each network can have a different maximum packet size.

For example. the original serial WAN connections could have maximum packet sizes of greater than 4000 bytes, but ethernet specifies a maximum packet size of 1500 bytes. If a host on a network sends a 4000 byte packet to an ethernet network where the maximum packet size is 1500 bytes, without fragmentation, the router would need to simply drop the packet. With fragmentation, the router can fragment the packet into smaller packets that can be sent on the ethernet network.

RFC 791, Internet Protocol explains about fragmentation:

The internet protocol also provides for fragmentation and reassembly of long datagrams, if necessary, for transmission through "small packet" networks.

-and-

The internet protocol implements two basic functions: addressing and fragmentation.

-and-

The internet modules use fields in the internet header to fragment and reassemble internet datagrams when necessary for transmission through "small packet" networks.

-and-

In the routing of messages from one internet module to another, datagrams may need to traverse a network whose maximum packet size is smaller than the size of the datagram. To overcome this difficulty, a fragmentation mechanism is provided in the internet protocol.

and so on...



Remember that IPv4 was a government/academic experiment that escaped the lab and got out of control. It was never envisioned to be the Internet we have today. After seeing the strengths and weaknesses in IPv4, the IETF designed IPv6, which has eliminated packet fragmentation in the path (requiring the use of PMTUD to determine the smallest maximum packet size in the path prior to sending), among other improvements to IP.


Edit for your clarification of MTU:

The MTU was not "introduced" as you have implied. The MTU is a function of the maximum payload size of a layer-2 protocol. Each protocol must have a maximum payload size. For ethernet, it was determined that 1500 octets struck a good balance on the amount of data that can be transferred without monopolizing the medium. Other designers of layer-2 protocols make their own determinations as to the maximum payload size for a frame for their layer-2 protocols.

IP, as a layer-3 protocol (the payload of a layer-2 protocol), must simply live with the MTU of the layer-2 protocols used to carry it. IP has no idea which layer-2 protocol is carrying it, or which other layer-2 protocols may be used in the path to the destination of the IP packet.


Remember that IP was designed by a government program in conjunction with universities and the telco, but that program had nothing to do with the designs of the layer-2 protocols in use today. IP was designed to be carried by any layer-2 protocol.