4 ms·
IPv6 is a complicated mess because it was designed by enterprise networking people. Everything in networking is always more complex than it needs to be. Always.
by api 7y ago
IPv6 is a complicated mess because it was designed by enterprise networking people. Everything in networking is always more complex than it needs to be. Always. Network engineers love to overthink everything and they've never heard of YAGNI.
- zamadatix 7y agoNetwork hardware isn't at the point where it's something you can iterate on as needs emerge. It's largely fixed hardware with a long deprecation period which is expected to connect a bunch of fast changing clients. People/applications are also adverse to changing network abstractions vs buying something that is compatible with what they have today but enables new things. My guess is what you consider unused complexity is just something you don't see/deal with on a day to day basis so you wonder why it's there. This doesn't make it useless/inefficient it just means you don't use it (or don't interact with it directly even if it is used somewhere in the network path)
- syn0byte 7y ago"Any idiot can make a bridge that stands. It takes an engineer to build one that barely stands."
- kelnos 7y agoYAGNI only works when the cost of being wrong is low. In most software, if you do end up needing something later, you can add it without too much trouble. In hardware, it means you need to spend a ton of money on redesign, and then wait years (or decades) for people to upgrade their equipment. In hardware, if you can reasonably foresee the need for some feature in the future (where "future" could even be > 10 years), and adding it now doesn't blow out your cost budget, you should probably add it.
- azernik 7y agoNot just hardware - for the internetworking layer, you're creating a standard that everything has to follow. Extensibility is super important, but so is pre-specifying everything that a minimal implementation will have to support in 10 years.
- api 7y agoThe longevity of network stuff is a stronger argument for simplicity. The cost of being wrong in the direction of excess complexity is higher than the cost of being wrong the other way. Layers are added, never removed. A deficiency can be fixed by adding something. A misfeature or ugly hack is a boat anchor we lug around for eternity.
- Jweb_Guru 7y agoAll I hear are buzzwords. Tell me how you can "just add something" when the protocol doesn't allow you to add it.
- icedchai 7y agoBe glad network engineers think things through. These protocols are around for decades, minimum.
- mindcrime 7y agoYAGNI is a mildly useful heuristic that applies in many situations, but far from all. It's not some iron-clad law of the universe.
- systemBuilder 7y agoExactly correct! Overblown overdesign by people who don't even know the founding principle of the internet - the end to end argument in system design.