What Vint Cerf Would Do Differently (computerworld.com)
An anonymous Slashdot reader quotes ComputerWorld:
Vint Cerf is considered a father of the internet, but that doesn't mean there aren't things he would do differently if given a fresh chance to create it all over again. "If I could have justified it, putting in a 128-bit address space would have been nice so we wouldn't have to go through this painful, 20-year process of going from IPv4 to IPv6," Cerf told an audience of journalists Thursday... For security, public key cryptography is another thing Cerf would like to have added, had it been feasible.
Trouble is, neither idea is likely to have made it into the final result at the time. "I doubt I could have gotten away with either one," said Cerf, who won a Turing Award in 2004 and is now vice president and chief internet evangelist at Google. "So today we have to retrofit... If I could go back and put in public key crypto, I probably would try."
Vint Cerf answered questions from Slashdot users back in 2011.
Trouble is, neither idea is likely to have made it into the final result at the time. "I doubt I could have gotten away with either one," said Cerf, who won a Turing Award in 2004 and is now vice president and chief internet evangelist at Google. "So today we have to retrofit... If I could go back and put in public key crypto, I probably would try."
Vint Cerf answered questions from Slashdot users back in 2011.
Is 128 bits enough? We really need to have enough bits to assign every atom in the universe an IP address.
...it works!.
Slashdot, fix the reply notifications... You won't get away with it...
I personally wouldn't have really changed much. Today, in retrospect, yes, these things are more important. But in the earlier days, adoption was the most important goal of the internet. IPv4 is a relatively easy spec to implement. This goes for routing tables, system administration, hardware support, etc. Yes, the migration to IPv6 is a pain in the ass, but the learning curve for admins and hobbyists as well as the implementation burden on manufacturers some 20-30 years ago simply wouldn't be feasible.
It seems Vint engages in self-flagellation each time someone raises the number of limited IPv4 addresses available (like "here"). At the time (40 years ago! The "640k is enough" meme is 'only' 35 y.o!), who would have anticipated the success of Internet? (and for starters, everyone would have reserved the juicy .com domains in the early 90's!). Vint Cerf did an awesome technical and visionary job and deserves a lot of credit for that.
Slashdot, fix the reply notifications... You won't get away with it...
Computationally that is, I don't think it would have flown in the early 90s and the adoption rate would have been the same it was with SSL (and TLS). It wasn't not so long ago that I actually had to provide resource impact reports on servers where everything would be encrypted. Nowadays (unless you deal with extreme large volumes), encrypting (using an symmetric key that is) doesn't have a significant impact. Web servers, load-balancers, etc can support it without breaking a sweat.
Wearing pants should always be optional.
I really hate these people who take credit for my brilliant invention. Something you peons refer to as "the internets."
Oh well, at least I can still take full credit for my hockey stick.
Sincerley,
Al Gore
So the 1992 UTF-8 specification didn't exist when the 1983 IP specification was created, but they could have done:
First 2^31: 0(31)
Next 2^59: 110(29) 10(30)
Next 2^88: 1110(28) 10(30) 10(30)
Next 2^117: 11110(27) 10(30) 10(30) 10(30)
And just declared that for now it's 0(31) - still 2 billion addresses but the sky is the limit. Heck, they might even have used shorts (16 bit) that way and declared that hardware/software should update as the need approached:
First 2^15: 0(15)
Next 2^27: 110(13) 10(14)
Next 2^40: 1110(12) 10(14) 10(14)
Next 2^53: 11110(11) 10(14) 10(14) 10(14)
(...)
Next 2^140: 1111111111111111(0) 10(14) 10(14) 10(14) 10(14) 10(14) 10(14) 10(14) 10(14) 10(14)
As for PKI, that couldn't possibly have happened. US export regulations wouldn't have allowed it at the time, this was long before Zimmerman and PGP.
Live today, because you never know what tomorrow brings
Would be enough to support even the internet of things, possibly with some very minor NATing. And spared us from the 128 bit monsters. 48 bits is what early Ethernet used, and seemed like a good number.
But I can understand that when IP was developed there were only a few thousand computers in the world likely to be connected, so 16 bits would seem adequate. Using 32 bits would have been a bit of a stretch at that time. Memory and bandwidth were expensive back then.
Remember boys and girls, always make bit fields extensible. He could have reserved the last part of the upper range (e.g. the ones presently wasted in multicast) for an extended range to be defined in the future. I.e. an address in the upper 224.0.0.0 range is followed by another 32 bits whose meaning would be IPV6 like.
that's like asking Henry Ford how he would make tesla autopilot problems go away
lucm, indeed.
There could have been an optional 32-bit client sub-address ignored by the public routing backbone.
Then, for most purposes, non-backbone routers need two routing tables: a routing table for the public network (if more complex than a few simple gateways), and an organization-local internal routing table (with 32-bit addresses, just like the public table).
The actual problem is that each TCP/IP connection would require for the connection tuple (src_IP, src_port, dst_IP, dst_port) not 12 bytes, but 20 bytes.
Probably something could have been done to mitigate that, too, as things stood long ago, but I don't feel like speculating further just now.
Even without mitigation, let's suppose you have an FTP server and you want to guarantee at least 16 kb/s for each active FTP connection (circa 14.4/28.8 modem technology). You need to provide nearly a kbit/s network bandwidth per byte of connection tuple held in system memory (we'll ignore the messy nature of FTP, much of whose ugliness could have been averted by a better original IP design).
At the same time, NAT isn't all bad. It does help to conceal the internal structure of your network from the evil public network (and makes exposing your non-firewall hosts more of a sin of commission rather than a simple sin of omission).
NAT also erects a barrier to ultimate host fingerprinting and traffic analysis, at least until HTTP came along to ruin things with user agent strings and cookies.
Some people are quick to point out that a low barrier is no barrier at all, but I like to force my adversaries to at least put on their ballet shoes before attacking my network, and then to stay alert for people with trunks full of tools good at hopping low barriers.
My proposal doesn't much complicate the backbone routing table, except for Sandvine, who would have—once we got there—been pissed in a big way (counterfactually), to much rejoicing.
You know, IPv6 AH (authentication -- forged packets are "impossible"), and IPv6 ESP (encryption, for privacy) through IPSEC were a non-optional part of the protocol until a few years ago.
But industry-wide incompetence, the interference from the usual suspects, as well as the usual shit pulled by the embedded space crowd killed it down to "optional". Yes, IPSEC can be nasty (mostly because of IKE), but it would be *something*.
For one, it would have killed DNS poisoning much better, and much earlier, than DNSSEC ever could (hint: DNSSEC has pathetic security as deployed right now).
It is not like the usual suspects had to kill AH to protect their need for mass-spying, making ESP optional would be enough (and outlaw it where required). But no, they need to actually be able to inject false traffic (which *is* against the !@#$!@#$ law everywhere, even for governments)...
and none support IPv6. I think the move from 4 to 6 has already failed.
I don't care what this Vince dude thinks. I want to hear what Bennet Haselton has to say.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Going from 32-bit addresses to 128-bit addresses at the outset would have meant the IMPs and then the NSFnet routers (Cisco AGS+s) would have had the routing tables take up 4x the space (well 257/65s but who's counting). That would have meant a more severe and quicker router memory exhaustion with backbone routes, and a quicker move to CIDR (where we specify NETWORK/NUMBER-OF-CONSECUTIVE-1-BITS instead of NETWORK/MASK).
For every choice we ever make (routers, IP design, freeway offramp selection, etc.) if the choice has no downside and an upside... we do it... because it's stupid not to. For most of the choices, however, there's a tradeoff of an upside and a downside. In the IPv4 design 32 bits was (in the late 1970s!!! long before PCs, smartphones, IoT, etc.) was assumed to be more IP addresses than anyone would want... which is why more than 1/4 of them were never made available for assignment (Class "D", Net10, Net26, Net127, etc. and RFC-1918 taken out because sysadmins left their boxes configured with mfg default IP addresses.)
I appreciate the contributions Vint Cerf made but I can tell you that running IPv4 on 9600bps modems (back then "MODEMs") meant that we tried to send LARGE packets to make the payload-to-header ratio high but then SHORT packets to make the "responsiveness" (latency) seem acceptable. If each packet header went from 40-64 bytes to 192 bytes larger... that ratio would have significantly impacted any "real-time" (low-latency) performance. That would have impacted those of us using TELNET (ssh not yet invented), accessing BBSs, BiX, Compuserve, etc.
It's wishful thinking to look at a world where our smartphones have 32GB of memory and our data communication speed are measured in 10s of Mbps and long wistfully to have designed the header structure of RFC-793 where computers had 64KBytes (not MBytes) and communication speeds of 110baud (1970s).
Ehud Gavron
Tucson AZ
http://bill.herrin.us/network/ipxl.html
A one-page solution, too simple of course for a huge committee to accept.
If only someone could have convinced a few key router manufacturers (Cisco) and Linux to adopt this, perhaps we could get critical mass and make IPv6 irrelevant. I guess it wouldn't have been enough of a make-work project though.
At the same time he was doing IPv4, CLNS/CLNP was using 20BYTE Addresses (variable lenght). And Xerox (which Cerf himself credits with inspiration to his project) was using 12Byte Addresses. So that excuse of "could not have done it" is Bollocks.
As for encryption, that's what optional headers are for! Should have defined two or three of those fron the start: Weak encription (to handle export/munitions restrictions of the time), strong encription (either for countries which are not under US influence, or when the exports/munition restrictions were lifted) and PKC encription (for the nascent field of public key crypto).
Besides, i am not sure what was his influence on the IPv6 designers, and their ill fated idea of removing the IP checksums... :-(
*** Suerte a todos y Feliz dia!
The major problem your concept would cause is the massive increase in CPU load required to process text instead of simple bit masks, it may not matter for processing a couple of requests a second, but a core router handles trillions of packets and the text comparison process would require massive CPU capacity.
IP address space was designed for very rapid and low processor load bit masking to do route matching. To decide whether a route applies to an address, the netmask is applied to get rid of the more specific parts of the address and reduce the comparison to a simple equality operation.
We see IP addresses as a string of period separated numbers, but the address is the whole 8 byte number as a whole.
Additionally, your concept prevents the multiple path topology of the internet that results in the high resilience to damage we all know and love. Your system results in a single path into any domain space and that domain space is an invisible blob to the rest of the world.
Trying to become famous by taking photos. Visit my homepage please.
Sure, security would have been nice. I do understand that it was not an issue when this came up. Here is what I would different that would affect ALL of the Internet and that is DNS.
1) First I would have done only countries and no other TLD. I can hear people scream "What about "Debian.org" and other non-profit or international companies?
Well, they all have an address, so it would have become Debian.us or they look at countries where it wouid have been cheaper or easier and it could have been debian.cc or debian.de or any other that they wanted, Each country then could have selected their respective solution, like com.au or not as they pleased.
2) Change the order So we begin with the country and then the TLD, next whatever you want. So http://us.debian.www/directory...
Or http://us.slashdot.tech/dir/fi...
Don't fight for your country, if your country does not fight for you.
Hindsight: The ability to look back at past events and state that we should have done things we didn't even dream were possible at the time.
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Why hard code the size of addresses? for just a single bit of information, the ip headers could contain either the standard address or an extensible one.
That would have been really clever from his part.
Assuming you meant Comcast, they should have v6 deployed over their entire network. Qwest are apparently doing 6rd so you should be able to get v6 with them too, albeit over a tunnel.
Can't comment on dialup though. I suspect most ISPs would rather just let their dialup platforms die rather than change anything about them.
When I pull up my cell phone ip information, it's IPv6.
Now that there's carrier-grade nat to allow ipv6-only endpoints to speak to ipv4-only hosts, it *finally* is plausible to offer most mobile/residential ipv6-only. So a lot of the people who are ipv6-only are precisely the ones that would never realize it.
For enterprise networks and internal networks, those are ipv4 and likely to stay ipv4-only (which is a bummer for software development, because IPv4/IPv6 agnostic code is still relatively rare, since there's so many subtle bugs trying to use AF_INET6 for both, and it's more complicated to have both AF_INET and AF_INET6 addresses).
XML is like violence. If it doesn't solve the problem, use more.
I personally would rather *not* have crypto at the IP or TCP layer. Reason being is that in practical terms, updates *must* be delivered through kernel updates. Given the nature of crypto updates, I'd much rather have librariers in userspace be the channel for updates.
I don't think I need a big conspiracy about AH/ESP. They were really awkward approaches, and largely redundant with higher layer strategies.
The issues with DNS/DNSSEC are more reasonably addressed in the DNS layer. There is a lack of will to tackle that problem, but that's the same lack of will that would make implementing at a lower layer impractical as well.
XML is like violence. If it doesn't solve the problem, use more.
OK, so what was a viable competitor to IPv.4 or v.anything, actually.....
Qwest are apparently doing 6rd so you should be able to get v6 with them too, albeit over a tunnel.
I have this set up, and can attest that it works reasonably well. The only real problem is that (presumably unlike native IPv6) you aren't assigned a static IPv6 prefix; it's tied to your dynamic IPv4 address. Consequently, I also have a Hurricane Electric tunnel configured with a static IPv6 prefix for use in DNS. This required some complicated source-based routing rules, though, so it's not for everyone. (You can't route HE packets out over the 6rd tunnel or vice-versa, and normal routing only looks at the destination address. To make it work you have to set up multiple routing tables ("ip route table ...") and select the proper one based on the source address ("ip rule add from ... table ...").
Of course, one could just pay extra $$$ for a static IPv4 address, which would provide a static 6rd prefix...
"The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
It is not like the usual suspects had to kill AH to protect their need for mass-spying, making ESP optional would be enough (and outlaw it where required). But no, they need to actually be able to inject false traffic (which *is* against the !@#$!@#$ law everywhere, even for governments)...
Better to kill AH now to prevent people from thinking they have a right to any unapproved and secure cryptography. Plus there is the whole wanting to inject false traffic issue.
I don't think I need a big conspiracy about AH/ESP. They were really awkward approaches, and largely redundant with higher layer strategies.
They were made really awkward by the conspiracy to prevent usage.