I am trying to comprehend the way packets fragmentation works in IPv6.
As far as I understand it, IPv6 routers never fragment packets: upon receiving a packet whose size is bigger than the MTU of the next network IPv6 router discards it, sending ICMPv6 Packet Too Big message back to the source host.
Considering this, I would like to understand the following:
- Is it correct that ICMP messages are handled by the IP protocol implementation on the source host?
- How is Packet Too Big message handled in particular?
- Is the proper way of reacting to PTB message defined in the protocol specification or is it up to the implementations to decide?
- Does handling differ depending on whether the payload is TCP or UDP?
- Is fragmentation/PTB/Path MTU Discovery handled completely in the IP layer or do upper layer protocols need to participate?
- What if ICMP traffic is filtered somewhere in between the router and the source and the PTB is never received?
What I would like to know in the end is whether IP fragmentation is something that I need to care about, being an application developer and working with TCP/UDP.