7 ms·
Cerf: "I'm serious, the decision to put a 32-bit address space on there was the result of a year's battle among a bunch of engineers who couldn't make up their
by em3rgent0rdr 3y ago
Cerf: "I'm serious, the decision to put a 32-bit address space on there was the result of a year's battle among a bunch of engineers who couldn't make up their minds about 32, 128 or variable length. And after a year of fighting I said -- I'm now at ARPA, I'm running the program, I'm paying for this stuff and using American tax dollars -- and I wanted some progress because we didn't know if this is going to work. So I said 32 bits, it is enough for an experiment, it is 4.3 billion terminations -- even the defense department doesn't need 4.3 billion of anything and it couldn't afford to buy 4.3 billion edge devices to do a test anyway. So at the time I thought we were doing a experiment to prove the technology and that if it worked we'd have an opportunity to do a production version of it. Well -- [laughter] -- it just escaped! -- it got out and people started to use it and then it became a commercial thing. So, this [IPv6] is the production attempt at making the network scalable. Only 30 years later."
[1] https://youtu.be/mZo69JQoLb8?t=815 https://youtu.be/mZo69JQoLb8?t=815 "Google IPv6 Conference 2008: What will the IPv6 Internet look like?"
- checkyoursudo 3y agoThis is a good lesson. I've done a lot of pilot studies, prototypes, proof-of-concept experiments. It is scary^1 how many times "let's just get this tested and see if it even works" turns into "welp, that worked and we don't have time or funding to do another one, so that's the final version." The constraint is often time. Gotta get a product out, or run an follow-on experiment that depended on the first, or submit a paper or funding application, or whatever. Test the thing you want to test! 1. Not scary like fear, just like, I don't know, astonishing.
- Dalewyn 3y agoAn old Russian proverb goes: There is nothing more permanent than a temporary solution.
- contingencies 3y agoNice. Added to https://github.com/globalcitizen/taoup https://github.com/globalcitizen/taoup
- pmarreck 3y agooooh, it's on nix! done and done
- justinclift 3y agoYeah, I've heard the same thing in several contexts before too. Without any mention of nationality. :)
- toyg 3y agoIn Italy we have "temporarily permanent" laws. I wish I were kidding.
- _the_inflator 3y agoIn hindsight. ;) To me this sounds like the winner's bias: in hindsight. It is hard to balance a prototype against a "works under all conditions no matter what they are" production-ready solution without growing into a hard to handle monster solution. On the other side I know off quite some overhyped apps, that rest on a overpowered machine, because the specs did not account for one thing: no one cares about the product. Extensibility is the key to balance certain weaknesses in a spec.
- rinka_singh 3y ago:-P ChatGPT?
- chrisfosterelli 3y agoOn the flip side, how many times do we hear about projects that failed because the dev team was stuck building things that were never needed or never used? It's hard to see the future.
- ajross 3y agoThat's it. The causality analysis in the grandparent is exactly backwards. We don't live in a world of "productized prototypes" because people are too lazy to do things right. We live in the world of prototypes because prototypes are the only products that reach market. Even where beautiful works of engineering exist, then tend to be beaten to the punch by the competing prototype anyway. You don't treat this by whining that the prototypes are winning. You treat it by finding ways to cleanly evolve prototypes[1], and by collecting intuition (c.f. the linked article) about common mistakes and how to avoid them. [1] Once upon a time in an age lost to history, this was the idea behind something called "agile". The thing we call "agile" today is pretty much the opposite.
- pmarreck 3y agoRight. In that vein, it wasn't the 32 bit limitation that was the real problem. It was the inescapable 32 bit limitation built into the design that was the problem. They could have spent a few bits to version the packet format, for example, which would have at least provided an escape hatch. Or heck, a single bit: Value of 0, known original format. Value of 1, unknown format (or known future format, to be parsed by some future IP packet decoder, but which errors out old decoders). And they repeated the same mistake with the IPv6 design by not making it an evolution of or backwards-compatible with IPv4. Literally neither of these was built with scalability in mind.
- gizmo686 3y agoThe first 4 bits of both IPv4 and IPv6 packets are a version field.
- 3y ago
- saghm 3y agoIf by doing things the way I need them to work now rather than the future lets me achieve the success, longevity, and ubiquity of TCP, I think I'm, fine with waiting until later to figure out things that don't matter right away.
- makeitdouble 3y agoThat's always the bind. - If it fails: welp, we were right to not spend months on this discussion. - If it wildly succeeds: welp, it's now too costly to change for so many users. Having a mild and steady usage growing curve is a blessing that's too often overlooked.
- jandrese 3y agoIt's always frustrating and amusing to read an anecdote about a design flaw in something where the creator goes "Yeah, we discovered that X was a bad idea, but there were already almost 10 people using it so it was too late to change."
- amoss 3y agoTabs in makefiles is another classic.
- kjs3 3y agoExcept tabs in makefiles only require ones to acknowledge 'makefiles use tabs and here are the rules'. It's otherwise only something for pedants to obsess over. IPV4 address contention has a bit more real-world impact.
- pmarreck 3y agoNo one and I mean NO ONE had any clue how widely deployed IPv4 would end up being. It went literally beyond everyone's wildest expectations who was alive at the time of its inception.
- kjs3 3y agoI don't think anything I wrote disagrees. As someone who started implementing IP networks just a couple of years after RFC791 was published, I'd say that was completely correct. But more than 40 years later, the fact that it has gone beyond everyone's wildest expectations means some of those early design decisions are starting to bite. Unlike tabs in makefiles, which is just something certain types of people like to complain about.
- em-bee 3y agoKlingon software is not released. Klingon software escapes, leaving a bloody trail of design engineers and quality assurance testers in its wake.
- mixmastamyk 3y agoNever have gotten a good answer to this, “why is 64 bits not enough?” Here, why not an option? It’s astronomically larger than 32, not double.
- pmarreck 3y agoHeck, just adding another byte to it to make it 2^40 would have given us 1,099,511,627,776 or 1 trillion+ possible addresses.
- JohnFen 3y agoMy answer to that is that there's no way to know in advance if 64 (or any other #) of bit is enough or not. Tech history is full of examples of arbitrary limits being defined thinking that there's no possible way anyone would need to exceed them, only to find that everyone needs to exceed them later on. Is 64 bits enough? Maybe. Maybe not. But if you're wanting to future-proof, then setting an arbitrary limit is not the way to go.
- mixmastamyk 3y agoI'd agree, but the historical computing restrictions were usually hitting ceilings over 8, 12, or 16 bits when those things were very expensive. 32bits is just about large enough (within an order of magnitude sense) if the space was used more efficiently. 128bits I've heard described is like "every atom in the universe" big. If so, then 64 is probably enough for every atom on Earth. Now I've just thought of another angle, similar to UUIDs. They are used because they can be assigned randomly without worry of collision. But I don't think IP6 addresses are being assigned randomly, hmm.
- labcomputer 3y ago> 32bits is just about large enough (within an order of magnitude sense) if the space was used more efficiently. Well, not really. Between just the populations of the US, Europe and China (places with high levels of internet connectivity), you have over 2 billion people (this site claims over 5 billion internet users: https://www.statista.com/topics/1145/internet-usage-worldwide/#topicOverview https://www.statista.com/topics/1145/internet-usage-worldwid...). > But I don't think IP6 addresses are being assigned randomly, hmm That is, in fact, exactly how IPv6 addresses are assigned using SLACC with Prefix Delegation. Your ISP assigns you a prefix, and your computer randomly picks an address within it. You can also self-assign a (non-routable, like 10...*) prefix from the fc00::/7 ULA block by randomly filling in the remaining 57 bits to form a /64 subnet.
- hn_throawlles 3y ago> even the defense department doesn't need 4.3 billion of anything uhm. counterexample: they need more dollars than that
- couchand 3y agoneed?
- hn_throawlles 3y agothey are able to create the need.
- agumonkey 3y agoit's hard to make a bill communicate over copper wire though
- account42 3y agoNot that hard really, smart cards are a thing and the chips themselves can be tiny.
- em3rgent0rdr 3y agoEvery bullet gets its own address.
- cryptonector 3y agoCNLP had variable-length addresses. I wonder what the world would look like with variable-length addresses.
- p_l 3y agoIt had variable length addressing "up to 20 bytes", which IIRC was done so that it could easily accommodate different addressing systems into one. Unfortunately, variable length fields make for really annoying hardware implementations. TUBA (replacement of IP with CLNP, running TCP and UDP on top) mandated use of max size addresses always, to make it simpler to decode, as part of "Internet Profile CLNP".
- pdimitar 3y agoA prominent example of: nothing more permanent than a temporary solution.
- tzs 3y agoFor experiments it is often a good idea to purposefully limit them so that if they do escape they can't become too entrenched. In this case probably the right number of address bits would have been 16. That would be big enough to to build test networks (real or simulated) with more hosts than were currently on ARPANET, but small enough that it would not take too long for ARPANET growth to hit the limit. With 32 bits the running out of addresses problem is far enough in the future that someone choosing to go ahead and put the experiment in production is not making a problem for themselves. They are making a problem for whoever has their job long after they are retired. With 16 bits the running out of addresses problem is soon enough that they can see that it might be something they might have to deal with.
- deleted 3y ago[deleted]