I am going to copy the notes I have from 1.1.d (iii) IPv4 and IPv6 fragmentation as I already have the relavent data there.
Path MTU discovery is a technique used by end hosts to constantly test the MTU of the path it’s packets are taking by sending packets out with the don’t fragment bit set.
The secret sauce to all of this is the don’t fragment bit in the IP header (in the flags section as discussed in 1.1.d (ii)).
When a router encounters a packet with this bit set, and it needs to fragment the packet, it will instead drop it and send back an ICMP type 3 Code 4 (as discussed in 1.1.d (i) to
the original sender of the IP packet (host). The problem with this mechanism is if any firewall or router along the path blocks these ICMP type 3 Code 4 messages, the host will never know what the issue is. They will either 1. send packets and they will be fragmented (with crappy performance) 2. dropped along the path where the IP packet is too big.
In IPv6 the same behavior exisits, meaning we send a ICMP message back to the source, except now it is an ICMPv6 Packet too Big message. Also, the Rouer has no option of EVER fragmenting the packet.
While path MTU discovery works for the IP layer (thus works for any protocol carried in IP), we also have other tricks up our sleeve to fix MTU issues.