Hi Alexey,
This question comes up every few years. The short answer is:
- The vast majority of Internet traffic rides over TCP or UDP
- Generally speaking, traffic that rides over TCP does not rely on IP
fragmentation
- However, traffic the rides over UDP absolutely relies on IP
fragmentation
So, as things stand, IP fragmentation is required to support UDP. However, the
conversation doesn’t end at that.
Operational experience has taught us that IPv6 fragmentation does not work so
well. Unlike IPv4, IPv6 encodes fragmentation information in an IPv6 extension
header. Sadly, many operators discard packets containing that extension header.
So, as specified, IPv6 provides fragmentation services, but as deployed, it
does not.
Many end-stations work around this problem by sending packets no longer that
the IPv6 minimum MTU (1280 bytes). This ensures that IPv6 fragmentation
services will never be required. However, it also prevents applications and
networks from realizing the benefits of larger packets.
So, the internet community has the following options:
1) Live with the status quo / Send only packets < 1280 bytes
a. Say nothing in the standards about the issue, beyond what has already
been said
b. Write an RFC informing developers of UDP applications of the problem
and advising them not to rely on protocol MTU > 1280
c. Deprecate IPv6 fragmentation
2) Fix the problem / Allow end-stations to send larger packets
a. Convince operators not to drop fragmented packets
b. Design a UDP replacement that provides fragmentation service and
migrate UPD applications to the replacement protocol
Options 2a and 2b may not achievable, because they require action on the part
of many, many parties. So, we seem to be stuck with Options 1a, 1b and 1c.
In light of this, your original question is not only appropriate, it is telling.
Ron
From: ietf [mailto:ietf-bounces(_at_)ietf(_dot_)org] On Behalf Of Alexey
Eromenko
Sent: Sunday, February 07, 2016 7:47 AM
To: ietf <ietf(_at_)ietf(_dot_)org>
Subject: Is Fragmentation at IP layer even needed ?
Hi All,
I'm re-evaluating TCP/IP stack again with my ongoing IP-FF research.
My question: Is packet fragmentation at IP layer even needed ?
Basically here are few possibilities:
1. Fragmentation-and-reassembly at every hop. (I don't know if anybody
implements it)
2. IPv4 style-fragmentation -- fragmentation per every hop, reassembly at
destination end.
3. IPv6-style-fragmentation -- fragmentation only at source end, reassembly at
destination end.
4. No fragmentation at all (the advantage here: faster Router processing vs #1
or #2 and less implementation bugs); Assuming standard packet size is defined
at 1280 bytes, like in IPv6
5. MTU path discovery via ICMP -- RFC-1981
6. MTU path discovery via TCP (or other Transport) -- RFC-4821 (or other way)
I'm leaning towards 4 + 6 solution in my own protocol, IP-FF.
What do you think ?
Should IP layer provide fragmentation ?
--
-Alexey Eromenko "Technologov"