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.
I want to believe that's a real C-level title at Google, just so I have another reason to hate them.
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.
We all know that there were a lot of things that were not thought of when IP was new. For example, people having access to packet sniffers was very rare when one machine was used by hundreds of people, as opposed to one person having tons of devices all phoning home.
There are a lot of things that would be nice to have when the Net changed from NCP to IP:
1: Some L2 based encryption mechanism that is built in, and not added on.
2: A protocol like DHCP "baked in".
3: An ability to have NAT masquerading, but still access a machine behind a NAT with ease. Perhaps instead of just IP:port, something like IP:port:additional_number, which would be parsed by the NAT gateway to route packets to the right machine. This would allow an outside party access to services at a site, but they wouldn't be able to figure out your network topology.
4: Similar to #1, but hooks for encryption, and the ability to be protocol agnostic, so DES could be replaced by AES, etc.
5: Maybe some encryption at the signal layer, so that a NIC's traffic would be unreadable to anyone but the destination. Of course, there is the issue of key management, but at least having it would have helped things.
6: A push to get CPU makers to help offload packetization and depacketization in hardware. This would have been useful for NFS.
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.
For simpler manipulation it would probably have been better to encode the address as plain text, .e.g amsh35y, 7 characters would give you 10 billion, but more importantly the null terminator terminates the address so that it can be padded with however many spaces are needed as the address space increases.
Once you've done that, you could have made that the routing name too. So no more DNS to convert from name to address, the name is the address is the name.
Routing? Do it from right end to front, so bigbob.co.uk is routed by bigbob.co.uk if known, if not the server at .co.uk is handed it, if .co.uk is not known the .uk server handles it.
On the LAN side, the addresses continue to extend to the left. So bigbob.co.uk might be the public server, but it in turn can add more as needed. e.g. fred.bigbob.co.uk is server fred on my LAN or 20984.bigbob.co.uk is the server for session id 20984 if hiding computers behind a firewall.
You could even add extra stuff to the address, e.g. a public key required to send to that address.
927u48d83763@bigbob.co.uk has a public key on the front. Since every router caches the address routing, it also has the public key.
Since the name is freeform, multiple encrypted layers can be added as needed. e.g. 3234234234@999487hd@874783534@bigbob.co.uk routes to bigbob, but after that only big bob knows the next part, which then goes to another server and so on TOR like.
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 manage the connections in nearly six hundred restaurants, and as far as I know not a one supports IPv6. I think 6 is dead and 4 will live forever.
This. I can't even get Qwest or Comcat to talk about IPv6 connections. Of course since we're mainly in the Seattle area, most locations are still stuck with dialup.
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."
Do you use copper.net? They're great but don't support IPv6 with their dialup.
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.
Why would dialup need IPv6? I know my ISDN at home and at work here in Seattle don't have it.
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!
He would have addressed the need for better handling of dropped wireless frames. Right now exponential backoff for dropped frames. Not too smart.
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.
What is done is done. Too late now. Yes, incorporating encryption from the start would have been nice but I don't see governments taking it nicely. They would have had the upper hand and either weakened or struck it down. Ultimately nothing could have prevented the centralization process that is taking us from the Open Web to the Walled Gardens and the internet becoming essentially the private property of a few megacorps. The dream is over: Zuckerberg has triumphed.
The internet started in early 1960s... The 16 bit IMP processor had to handle double precision for the addressing as it was.
https://en.wikipedia.org/wiki/Interface_Message_Processor
https://en.wikipedia.org/wiki/Honeywell_316
PKI didn't get a good generation until the RSA publication (1977) AND was patented. Thus the internet processing could NOT have used it in the 60s. And could NOT have used it even after publication - it was labeled munitions until 1997, and could not be used. An equivalent algorithm was developed in England in 1973 - but was classified by the military until 1997. In either case, had they been used the Internet would have been a military only network. The US didn't even allow the hooks for any encryption to exist in code (Kerberos had all its encryption stripped out other than the use of hashes - and not very useful - as "Auxiliary Military Equipment" on the US Munitions List and non-exportable).
https://en.wikipedia.org/wiki/RSA_(cryptosystem)
https://en.wikipedia.org/wiki/Kerberos_(protocol)
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.
"Vint Cerf is considered a father of the internet..."
Damn I get so tired of hearing that. One of the fathers perhaps.
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.