vulcannz:

 

PMTU needed to work on IPv4 as fragmentation breaks many protocols (especially proprietary encrypted stuff). Packets only get fragmented if they get a fragmentation required notification back, PMTU relied on that notification. So if PMTU failed then it's likely packets would not get fragmented and just flat out fail (aka a black hole router).

 

 

That is not my understanding at all about how fragmentation works.  When an overlong packet hits a router it is too big for, with IPv4 the router just fragments the packet and sends both new packets on.  It may or may not send notification back to the source - there is no requirement to do that, but I would hope good routers would do it.  A router receiving already fragmented packets does nothing extra - it will not try to join them.  When the fragmented packets get to their destination, they are buffered until both (or all) the fragments are available and then they are put back together again.

 

If the source of overlong packets gets a notification about it, it can choose to reduce the MTU it is using, but again, in IPv4, that is not required, as the packets will continue to be fragmented at any router where that needs to happen.

 

Fragmentation is a big burden on a router.  If a packet can just be passed through intact, often that is done with acceleration hardware and the router CPU never sees the packet.  But when it needs fragmentation, the hardware normally has to hand off the packet to the CPU, which will have to build two packets from that one packet and send them on.  That costs a fair bit of CPU effort, and also needs twice as much buffer space plus a bit more for the second set of headers.

 

A black hole router is either so heavily overloaded that it must drop lots of packets, or is broken and needs to be fixed.  When a packet needing fragmentation hits a router that is heavily overloaded, it may well be a good candidate for that router to drop, as the CPU burden of doing the fragmentation will likely increase the overloading, and the extra buffer space needed almost certainly will increase the overloading.  And the router may well be so overloaded that it will also drop any attempt to send back notification that it dropped the packet.  This sort of overloading can happen because of a reduced MTU causing most larger IPv4 packets to need fragmentation, and is one of the major reasons IPv6 does not allow fragmentation and requires that PMTU works.  PMTU was added to IPv4 to help prevent overloading of routers, but as it is not required to work on all IPv4 devices, it often does not succeed due to one or more devices along the path not supporting it.  When it does work, it is excellent.

 

So, fragmentation does not break any IPv4 protocols.  Enough packet loss (caused by a black hole router or any other reason) can break all IPv4 protocols, but some protocols take much more packet loss before they break.  Encrypted protocols are particularly sensitive to packet loss unless they have a mechanism that allows them to resend just an identical copy of lost packets.  If losing a packet requires a complete resend of the entire message in order for the encryption to work, protocols like that will break easily with minimal packet loss.