The world in which IPv6 was a good design (2017)
I have several times cited it as a key article, more insightful than almost anything else I've ever read about IPv6, but I concede it is overlong and unclear and needs more illustrations. (Which, as a technical writer myself, I generally regard as a crutch.)I think the core argument can be summarised as this:1. IPv6 is flawed because it has 2 main layers, but it needed 3.2. It understands physical addresses, and it has its own logical addresses.3. But it really needed another layer in between them: a virtual translation/mapping layer.4. Crucially, it lacks this. As such it is not better enough than IPv4 to ever totally replace IPv4.5. But apenwarr proposes that it is, in essence, possible to fake this using QUIC.https://en.wikipedia.org/wiki/QUIC 6. Using this, it's possible to fake what IPv6 should have had but didn't, and get some of the benefits at the cost of more work.7. However IPv6 remains doomed to never totally replace IPv4.Boiling that down to 2 key points:Point A: IPv6 is broken because it didn't go far enough; its mapping model is fundamentally inadequate.Point B: It's OK, here's how we can work around that, but it doesn't fix the problem & never will.And generalising from that argument, my take is this:Butler Lampson said: "All problems in computer science can be solved by another level of indirection."David Wheeler pointed out: "… except for the problem of too many layers of indirection."The corollary of this is: it is imperative to closely track how many layers of indirection you have.Too many is bad, but arguably, not enough is worse.With too many, you get inefficiency, but you can nonetheless get the job done. But with too few, you might not usefully be able to do the job at all.IPv6 did not have enough, and so failed to achieve its primary goal.