WEBVTT

00:06.880 --> 00:08.440
Thank you.

00:08.440 --> 00:10.080
Thank you all for coming.

00:11.300 --> 00:15.960
This is a sort of a modification of a talk I've been giving for a while.

00:15.960 --> 00:21.340
At Usenix Lisa they refer to this as Vixie's Internet Governance Rant.

00:21.420 --> 00:29.680
But I realized I wasn't doing much good and that I needed to behave more like a bomb-tossing revolutionary and less like a politician.

00:30.120 --> 00:38.220
And Jeff gave me an opportunity to test-pilot the new talk here, where apparently bomb-tossing revolutionaries are more prevalent.

00:49.260 --> 00:50.220
Okay.

00:50.680 --> 00:54.120
One of my favorite authors, Barbara Tuchman, wrote a book.

00:54.600 --> 01:00.200
And you need to go to Amazon.com and get a copy of that book for yourselves.

01:00.520 --> 01:01.400
Trust me on this.

01:01.400 --> 01:05.780
If you hate it, then send it to me and I will give you your money back.

01:15.090 --> 01:17.350
Can I talk closer to the microphone?

01:17.350 --> 01:19.670
Yes, I'm concerned about the echo.

01:22.230 --> 01:28.970
So what Tuchman had to say about folly, of course, takes a book to say.

01:29.590 --> 01:36.210
But qualifications, as you can see on the slides, it has to be seen as counterproductive in its own time.

01:36.210 --> 01:42.430
It's very easy to look back with the benefit of history, a lot of perspective, and say, well , that was very stupid.

01:42.670 --> 01:48.690
To be folly, it has to be obviously stupid, even at the time the decisions are getting made and implemented.

01:50.470 --> 01:53.070
There had to be a feasible alternative, right?

01:53.070 --> 01:58.750
You can't really call it a decision if all you were doing was running away from some circumstance right there.

01:58.750 --> 02:05.370
There had to be some choice that you could have made, that a sensible person in your place would have made, and then it can be called folly.

02:06.170 --> 02:16.050
And lastly, it can't be the action of just one guy, one person, because that could be a simple matter of mistake, right?

02:16.050 --> 02:19.050
You don't have all the facts or you drank too much or something.

02:19.050 --> 02:30.850
But if you had a group of people together and they all sort of nod sagely at each other and say, yes, this is the right thing, but it's completely boneheaded, that, in Tuchman's definition, can be called folly.

02:32.250 --> 02:39.930
And the examples that I picked out for this slide would be Troy and the Greek horse.

02:39.930 --> 02:41.550
We call it a Trojan horse.

02:42.190 --> 02:44.210
It's actually a Greek horse.

02:44.910 --> 02:54.430
But anyway, the signs and portents, if you read the original Homer on that, are really, really obvious, right?

02:54.430 --> 03:00.890
They didn't just put a wooden horse in front of the city and disappear, as you might read in the Cliff Notes version.

03:00.890 --> 03:03.850
There were all kinds of different things.

03:03.950 --> 03:16.470
Just everything from the weather to, you know, hints and tips and so forth to really let you know that Homer was saying that the people inside the walls of Troy were morons, right?

03:16.470 --> 03:18.110
They were not simply fooled.

03:21.390 --> 03:28.710
Britain used to rule the sand where we are sitting, and they don't now.

03:28.710 --> 03:46.150
The story of how they avoided it, how they let control go away, spans decades, and it required a lot of people to do a lot of really, really stupid things when, frankly, the colonists at that time were strong.

03:46.150 --> 03:51.630
They started out that period of decades as strong British monarchists, loyalists.

03:51.830 --> 04:01.970
They just didn't feel like they wanted to pay taxes unless they had seats in Parliament, and it would have been easier to give them seats and have the British Empire be a little larger.

04:02.790 --> 04:04.750
People said that at the time.

04:06.050 --> 04:10.090
I said that Hitler invaded Russia or tried to invade Russia.

04:10.130 --> 04:14.890
What I really mean is his general staff said, Clearly this can be done.

04:14.890 --> 04:17.250
Napoleon was just incompetent.

04:17.250 --> 04:18.350
We can do it.

04:19.390 --> 04:23.250
Everyone who's ever tried to invade Russia suffered the same fate.

04:24.910 --> 04:29.470
And interestingly, oil production in this world, right?

04:29.470 --> 04:35.710
There are some countries that produce a lot more than they consume, and then there are other countries that consume a lot more than they produce.

04:35.930 --> 04:41.630
And so we have OPEC as an example of how prices are controlled by the producer side.

04:41.630 --> 04:54.590
But can you imagine how long the oil-producing countries of the world would be able to hold out if somehow the oil-consuming nations also had a union and said, We just are not going to pay more than a certain number of dollars per barrel.

04:54.810 --> 05:08.670
It turns out that it's not a one-sided, they need us more than we need them, and yet the oil-consuming nations just continue paying rather than getting some stiffness in their backbone.

05:08.810 --> 05:10.830
These are all examples of folly.

05:10.830 --> 05:16.950
These are all things that you could have known at the time that that wasn't going to work or was going to have a very bad outcome.

05:21.000 --> 05:24.240
Two quotes, and then I'll launch into the Internet side of all of this.

05:25.220 --> 05:28.020
For those of you who are vision-impaired, I shall read them aloud.

05:28.020 --> 05:34.940
Wooden-headedness, the source of self-deception, is a factor that plays a remarkably large role in government.

05:35.060 --> 05:42.800
It consists of assessing a situation in terms of preconceived fixed notions while ignoring or rejecting any contrary signs.

05:42.800 --> 05:47.460
In other words, the power to command frequently causes failure to think.

05:47.660 --> 05:52.660
You have seen this, perhaps, if you have a pointy-haired boss, especially if that boss was me.

05:52.920 --> 05:55.700
It works at any scale you want.

05:55.700 --> 06:00.260
The power to command frequently causes failure to think.

06:07.680 --> 06:18.400
So, this Internet thing that has taken the world, pretty much taken over the world, started as a research and engineering project.

06:18.560 --> 06:29.060
It was built by the academic people, people who had government contracts, and it was built for other people who had government contracts to use.

06:29.940 --> 06:35.360
And they made a number of design decisions that were appropriate for the community that they were building it for.

06:37.660 --> 06:50.820
The traditional example is, they were telnetting back and forth from host to host, and typing their passwords in the clear, not because they were stupid, but because it was a totally trusted network.

06:50.820 --> 06:53.800
That was a completely safe, sane thing to do.

06:54.580 --> 07:08.340
But, they kept saying in the early days, and if you go read any history of the Internet, you're going to see some marketing terminology along the lines of, we always intended this to be a global domination force.

07:08.420 --> 07:10.400
Well, I don't know if that can be true.

07:11.240 --> 07:22.480
For example, John Postel, who was a friend and whom I miss very much, once wrote that you ought to be liberal in what you accept, and conservative in what you generate.

07:22.640 --> 07:28.840
And he thought that that would lead to a kinder, gentler Internet, where implementations could be robust.

07:28.840 --> 07:31.940
But if you're liberal in what you accept, you'll get more spam.

07:32.180 --> 07:36.660
And if you're conservative in what you generate, you will make less money from phishing.

07:37.140 --> 07:48.460
And so, I don't think there's any evidence that anyone involved early on ever thought that this would really be a global dominating force the way that we know it today.

07:49.520 --> 07:52.240
And that underlies most of what I have to say today.

07:56.980 --> 08:03.440
First thing they did, they only let research and engineering and contractors people connect.

08:04.540 --> 08:11.320
The DCA's job early on was to keep people off the network, because there was a lot of interest.

08:11.320 --> 08:25.780
And I'm sure a number of you can tell stories, as I can tell, of being at some company where you really wanted to be able to go FTP files from somewhere on the then ARPANET or NSFNET, but you weren't allowed to get a connection.

08:26.260 --> 08:34.720
And please realize, these were 9600 VOD analog leased line circuits connected to an IMP somewhere, but every IMP port was controlled by the DCA.

08:34.800 --> 08:39.660
And if you didn't have a contract, and they couldn't do a background check on you, you weren't going to get connected.

08:39.900 --> 08:46.060
It's almost as though they knew their network was very fragile, and if they let any bad people on it, then the whole thing would fall down and go boom.

08:47.120 --> 08:49.400
Although that's not the excuse they used.

08:51.720 --> 09:02.700
What they could have done is to build a network that was expecting to grow, instead of building a network that was expecting to sort of reach a certain size and then stop.

09:02.820 --> 09:07.360
They could build a network that was expecting to have strangers on it and not just friends.

09:07.920 --> 09:10.020
And they could certainly have thought about scale.

09:10.020 --> 09:12.340
What if 6 billion people used this?

09:12.340 --> 09:15.020
How would that change the design decisions we're making today?

09:15.020 --> 09:27.420
Now I'm not suggesting that they should have adopted a boil the ocean strategy and said we're not going to do anything until we have a complete design in our head as to how it could scale globally.

09:27.420 --> 09:29.060
That's not what I'm asking for.

09:29.060 --> 09:32.460
What I'm asking for is just ask us a couple of questions.

09:34.360 --> 09:41.280
How will the decisions we're making today limit this from being acceptable to 6 billion people?

09:41.280 --> 09:44.580
I think that they didn't need to spend more money.

09:44.580 --> 09:48.040
They just needed to spend the time and money they spent a little more wisely.

09:51.530 --> 09:52.690
What happened?

09:53.350 --> 09:54.870
It's a matter of history.

09:54.870 --> 09:59.990
A bunch of other networks started up and started connecting to each other.

09:59.990 --> 10:02.990
Eventually it was commercialized and privatized.

10:02.990 --> 10:20.230
And most of the problems that we face today in terms of high cost to go with the high benefit of Internet use is traced to what happened instead of the right thing at this early, early moment.

10:23.370 --> 10:26.190
Let's talk about SMTP.

10:28.110 --> 10:37.670
I once sent Eric Allman, what amounts to a flame, saying, look, this send-mail policy that you have about being an open relay is bad.

10:37.670 --> 10:39.250
And there are spammers out there.

10:39.250 --> 10:51.350
And they're going to systematically find all of these open relays and use them to sort of send things that they could never send from their own T1 because people would refuse to accept traffic from them.

10:51.690 --> 10:55.730
And Eric said, well, you know, you've got to be liberal in what you accept and so forth.

10:55.730 --> 10:58.210
A year later, he sent me an apology.

10:58.210 --> 11:06.770
And he put in logic in send-mail to lock out relay by default unless you were on some trusted list of hosts or networks or whatever.

11:07.790 --> 11:12.490
But it's worth noting that send-mail was not the first SMTP implementation.

11:12.510 --> 11:16.890
It was the most widely popular in the early years, but it was not the first one.

11:16.890 --> 11:20.530
They all did this because it was a reasonable thing to do.

11:20.590 --> 11:22.870
For that matter, LPD used to do this.

11:22.870 --> 11:28.770
You could print on other people's printers and use other people for your print queue and they would send the stuff back to you.

11:28.770 --> 11:32.270
And it all just worked because we were all friends, I guess.

11:33.950 --> 11:50.570
Some of you, this is not on the slide, but some of you will recall our login D hole where you just made the assumption that whatever the PTR value was associated with someone else's address could be looked up in your .rhosts file and if it matched, then it was okay.

11:50.570 --> 11:57.530
The fact that the other person, the owner of the IP address, was in control of that string just didn't occur to people.

11:58.270 --> 11:59.990
So, I don't know.

12:00.830 --> 12:02.230
What were they thinking?

12:02.230 --> 12:03.370
Where were they thinking?

12:04.710 --> 12:09.890
None of the headers have really ever been validated by most of the implementations.

12:09.890 --> 12:21.870
I know I've gotten mail from various robots running on big mainframes saying, syntax error in the received header you added to this mail message as it was going through, so we're bouncing it.

12:22.130 --> 12:25.910
But for the most part, you can put anything anywhere and it just goes through.

12:27.390 --> 12:37.230
So, spammers are currently allowed to add a lot of extra received headers with or without funky time zones in order to frustrate our desires to find out where things come from.

12:38.150 --> 12:41.850
There was an assumption that every host would have a postmaster mailbox.

12:41.850 --> 12:47.850
After all, what host would be on the internet and send mail without wanting to hear complaints about it?

12:48.490 --> 12:49.890
What host, indeed.

12:51.270 --> 12:52.930
There was a turn command.

12:52.930 --> 12:53.790
Very interesting.

12:53.790 --> 12:59.690
You could connect to somebody, use the hello command in the SMTP protocol to tell it who you were.

12:59.690 --> 13:02.990
It probably wouldn't compare that to your PTR or anything else.

13:02.990 --> 13:04.830
It would just say, okay, that's who you are.

13:04.830 --> 13:14.630
And when you got to the end of sending your mail to it, you could use the turn command and it would dump its entire mail queue toward you on the basis of what you had put into the hello command.

13:16.050 --> 13:17.610
Fascinating logic.

13:19.650 --> 13:21.510
What could they have done differently?

13:21.510 --> 13:30.670
Well, frankly, IBM Profs, which was junk by today's standards, had a pretty large user base.

13:30.670 --> 13:42.030
They had attachments, they were multilingual, they didn't do a lot in terms of one host sending mail to another, but they had a good user base.

13:42.030 --> 13:48.290
They dominated what was then the Fortune 500 in terms of all the email in the world.

13:48.570 --> 13:56.010
And if they had just looked at the feature list and said, you know, if we're going to present this as better, let's make sure it's at least as good.

14:01.440 --> 14:04.800
Let's talk about classful IP addressing.

14:05.880 --> 14:16.820
In 1989, I was a network administrator at Digital Equipment Corporation, and we had two class B networks.

14:17.500 --> 14:27.920
And I was responsible for handing out address blocks to other people anywhere in the world, and DEC at that time was still a major corporation.

14:27.920 --> 14:32.800
We had like 130,000 employees in a lot of time zones.

14:32.840 --> 14:42.160
So it was getting a little bit cramped, and I was about to ask for a couple of more class Bs, and my boss said, oh, what the hell, go ask for a class A.

14:42.160 --> 14:44.300
And I said, but we don't need a class A.

14:44.300 --> 14:46.880
We're never going to have 16 million hosts here.

14:47.680 --> 14:51.120
And my boss said, well, you know, just ask.

14:51.120 --> 14:52.440
Maybe they'll give it to us.

14:52.440 --> 14:55.380
It will sure be a lot more convenient for us if they say yes.

14:55.380 --> 14:56.420
And they did.

14:57.920 --> 15:05.740
So net16 is currently the property of HP, along with a couple of other class As that have come into their possession over the years.

15:06.940 --> 15:24.380
If you want to know sort of why the people around the world, especially in China, where they would like to get enough addresses to deploy billions of DSL lines, they're a little bit concerned about the way we wasted address space early on in IPv4, and they want to keep that from happening again in IPv6.

15:24.380 --> 15:26.080
And who can blame them?

15:31.060 --> 15:33.340
So what could they have done differently?

15:34.740 --> 15:51.540
They might have asked the question, look, on this whole class C thing, where you get a slash 24 network block capable of handling about 250 hosts, if we gave out all the ones that are in the allocation plan, that would call for a global routing table of two million entries.

15:51.560 --> 15:53.100
How would we route that?

15:53.940 --> 16:01.840
And then they might have said, well, you know, over a backbone of 9,600 bought analog links, we're probably not going to be able to send that much routing material.

16:01.920 --> 16:05.680
So let's come up with a plan that we could actually do something about, right?

16:05.680 --> 16:06.920
It's 20 years later.

16:06.920 --> 16:10.780
We still don't know how to route two million different destinations.

16:10.940 --> 16:19.100
Right around 100,000, you start to hit some hard limits on the way that BGP and other sorts of global routing protocols work.

16:19.300 --> 16:22.840
So they didn't need to be rocket scientists.

16:22.840 --> 16:24.600
Unfortunately, they were rocket scientists.

16:24.600 --> 16:25.960
Maybe that was the problem.

16:26.680 --> 16:30.040
What they needed to do was just ask some simple, straightforward questions.

16:30.040 --> 16:33.620
How would we route this if this allocation plan filled up?

16:34.580 --> 16:38.300
They could also have asked, you know, Stanford is a university.

16:38.300 --> 16:39.320
They have one campus.

16:39.320 --> 16:43.780
What are they going to do with a net block capable of supporting 16 million hosts?

16:44.800 --> 16:48.560
And they could certainly have wondered, how's this going to scale?

16:53.780 --> 17:02.300
So the rescue for classful IP addressing, class A, class B, class C, was classless IP addressing, so-called CIDR.

17:04.140 --> 17:05.800
And it works.

17:05.800 --> 17:07.160
It's what we're using today.

17:07.420 --> 17:12.380
But it's important to note that the people who designed it were the stakeholders.

17:12.380 --> 17:14.360
They were the owners of the routers.

17:14.620 --> 17:27.080
And it seemed obvious to all of us that the people who had the routers that had to run this code ought to have a strong hand in determining sort of how much complexity and cost and whatnot they would be bearing.

17:28.140 --> 17:34.180
What we didn't quite realize was that they would design something that would have a lock-in effect.

17:34.180 --> 17:44.440
In other words, since renumbering these address blocks is very tough, we now have a system where you have to get your address blocks from your provider.

17:44.860 --> 17:59.980
And if your provider is not responding well to market pressures or your own pressures and is, for example, overcharging you for transit and giving you poor service, you can't leave that provider unless you are willing to pay a renumbering penalty.

18:01.800 --> 18:07.880
So this was really kind of the fox guarding the chicken house as far as design was concerned.

18:07.880 --> 18:10.280
What could they have done differently?

18:11.620 --> 18:15.780
Okay, so Class A and Class B were too granular.

18:15.780 --> 18:22.900
Having to choose between 16 million hosts or 65,000 hosts or 250 hosts was clearly too granular.

18:22.900 --> 18:29.540
But that doesn't mean that we needed to have every possible bit boundary be a network block.

18:30.120 --> 18:41.140
It's possible that we could have just come up with less granular classes and come up with something that fit the size of the community and fit the size of what routing table we thought we could support.

18:41.140 --> 18:43.880
And then we would still have address portability.

18:44.020 --> 18:50.680
Not that it would have been in the interests of the designers of this that we would all have address portability.

18:50.740 --> 18:59.000
So maybe there would have needed to be some reform as to how these things get decided in addition to some new thoughts as to how to make this decision.

19:05.280 --> 19:06.720
But wait!

19:07.180 --> 19:08.840
IPv6 is going to save us, right?

19:08.840 --> 19:17.660
It doesn't matter that classless routing was bad because it was only a placeholder to keep the internet growing until we could get IPv6.

19:20.140 --> 19:25.520
But I ran out of room on this slide when I was trying to come up with the things they did wrong.

19:26.720 --> 19:31.280
They widened the address space by a factor of four.

19:31.460 --> 19:40.900
So instead of four billion, which is 2 to the 32nd power, we have some other number I can't pronounce, which is 2 to the 128th power of possible addresses.

19:41.180 --> 19:45.620
And that's because they thought the problem they had was that they didn't have enough addresses.

19:45.940 --> 19:49.920
Okay, well, we're still not out of IPv4 address space.

19:49.920 --> 19:55.480
The original Address Lifetime Extension Project said that by 2005 we'd be out.

19:55.480 --> 20:02.620
And so we had to rush this IPv6 thing through because the world will end if we run out of IPv4 space.

20:03.660 --> 20:06.420
We didn't run out of IPv4 space.

20:06.960 --> 20:10.480
And so, clearly, they solved a problem we weren't having.

20:11.000 --> 20:15.780
But in addition to that, they failed to solve some problems that we were having and are still having.

20:15.880 --> 20:18.400
In fact, they made some of those problems worse.

20:20.900 --> 20:23.860
They did not put any kind of automatic renumbering in.

20:23.860 --> 20:27.420
There was a lot of pressure to do that, but they just said, oh, that's too complicated.

20:27.420 --> 20:31.700
That'll make it take too long to get this protocol out the door, so we're not going to support that.

20:31.700 --> 20:38.560
So once you get your provider-assigned addresses in IPv6, you'll be just as locked in as you were in IPv4.

20:39.700 --> 20:44.300
They assumed that once we had IPv6, that NAT would die.

20:44.300 --> 20:56.060
They thought NAT was only being used to expand the address space and make it possible for people to have address space who couldn't get enough from their provider or from the Internet or Internet or whoever.

20:56.160 --> 21:09.380
They didn't realize that NAT would work its way into the world's consciousness as kind of an adjunct to firewalls in terms of how we provision things and how we do access control.

21:09.680 --> 21:14.900
And so now there is a proposal to do NAT for IPv6.

21:14.960 --> 21:20.720
Not because people are out of addresses, as you can see, but because they need NAT.

21:20.720 --> 21:21.820
They just need NAT.

21:21.820 --> 21:23.800
It's not an addressing thing anymore.

21:26.220 --> 21:29.800
They really wanted to keep using provider-assigned addressing.

21:29.800 --> 21:40.180
I don't know if that's because they had corruption and they knew that somehow they needed to keep letting bad Internet providers lock their customers in, or if they were just dolts.

21:40.180 --> 21:41.380
I don't know.

21:41.840 --> 21:46.320
But I know that they gave each LAN a slash 64.

21:47.740 --> 21:55.280
So every Ethernet segment, every VLAN you have, is able to have 18 billion billion hosts on it.

21:57.840 --> 22:06.300
Every house that gets a DSL connection gets a slash 48, which is 1.2 million billion billion addresses.

22:06.300 --> 22:09.020
My house is large, but it's not that large.

22:10.960 --> 22:24.360
And every multi-homed enterprise, for example, my employer, or ISP, starts out with a slash 32, which is 79 billion billion billion addresses.

22:24.720 --> 22:28.060
There are 6 billion people on the planet.

22:28.060 --> 22:46.000
If you gave each one of them an IP address for every light switch in their house, assuming they have electricity, and gave them 10 cell phones and 10 laptops and so forth, it is potentially going to be necessary that each one of them might have 20 addresses and,

22:46.000 --> 22:48.720
you know, 16 times, or 6 times 20.

22:49.080 --> 22:51.620
180 billion would have been enough.

22:52.840 --> 23:01.260
And I just don't know what they were thinking, except they thought the problem that they were having is that they didn't have enough address space.

23:01.260 --> 23:03.940
And, boy, that's not the problem we were having.

23:04.560 --> 23:08.780
But now we're having all the same problems we were having before, except they're bigger.

23:10.940 --> 23:12.860
What could they have done?

23:13.000 --> 23:18.880
They could have asked a simple question, what else is wrong with V4 besides the address space?

23:18.880 --> 23:21.740
What are the other things that people complain about?

23:24.080 --> 23:26.020
And they just didn't.

23:26.300 --> 23:36.540
And I was there, and I tried to raise a number of these issues, and perhaps they all put me into their kill files because they're tired of listening to me rant about stuff.

23:36.540 --> 23:38.320
But I wasn't the only one.

23:39.040 --> 23:42.500
These questions were asked, but they were dismissed.

23:46.730 --> 23:48.870
Let's talk about TCP.

23:51.050 --> 23:57.430
TCP assumes that all the other flows that you share your path with are going to be fair.

23:57.430 --> 24:00.230
They're going to do their own fair share scheduling.

24:00.470 --> 24:06.050
It has no provision for what I'm calling a congestive flow that will be bursty.

24:06.050 --> 24:10.030
Like, for example, voice over IP or NFS or something like that.

24:12.030 --> 24:18.410
They assume that nobody between you and your destination will put any restrictions on ICMP.

24:18.810 --> 24:25.910
In other words, they designed path MTU discovery without looking at what providers were doing even in that day.

24:26.270 --> 24:34.530
A number of providers are now putting private RFC 1918 addresses on their core routers.

24:34.530 --> 24:39.910
If they wanted to send you an ICMP, they couldn't because it would be coming from an address space you couldn't reach.

24:42.710 --> 24:46.310
The initial sequence number used to start out at zero.

24:46.310 --> 24:47.330
Now it's random.

24:47.330 --> 24:49.690
And the reason is spam.

24:49.690 --> 24:52.830
It turned out that you could script a TCP session.

24:52.830 --> 25:01.670
You could figure out which segments you needed to send and each segment you send has to include some kind of an ACK for what they will send you.

25:02.130 --> 25:08.030
And you can script the whole thing if you know what the other guy's initial sequence number will be.

25:08.050 --> 25:09.670
And spammers were doing that.

25:09.670 --> 25:18.830
They were emitting a stream of TCP segments from an address that was not their own so they would not have received your ACKs had you sent any.

25:18.830 --> 25:21.410
And they were successfully getting spam out.

25:21.430 --> 25:27.430
And then there was a big scare about that and so now everyone uses a random initial sequence number.

25:27.690 --> 25:33.710
If you were a Linux user and you saw devrandom come into existence that was the year and that was the reason.

25:36.590 --> 25:43.150
So, basically they assumed everyone else would do a good job and would be on the same side.

25:43.630 --> 25:44.730
And they're not.

25:44.850 --> 25:59.490
There are a lot of people out there who are stupider than you or malevolent and even it's bizarre to see this protocol and it's what most traffic on the internet is.

25:59.490 --> 26:00.430
It's TCP.

26:00.510 --> 26:03.830
And it's bizarre to see this protocol even still in use.

26:04.170 --> 26:10.870
It's very easy for, in fact, I remember some marketing literature back in maybe mid 90s.

26:10.910 --> 26:19.770
Somebody was offering a TCP stack for probably Windows , I don't know, whose claim to fame was that it was more aggressive.

26:20.030 --> 26:24.690
It would get more than its fair share of the path bandwidth.

26:24.730 --> 26:30.890
And it would cause other TCP flows that were sharing the same path to back off.

26:32.790 --> 26:39.750
And, you know, naturally some people actually paid for that, bought it, installed it, got some benefit out of it, I assume.

26:39.750 --> 26:46.150
But we know that if everybody acts that way, then actually you'll end up overflowing all the lines and everybody will get less.

26:46.150 --> 26:48.210
This is kind of like the prisoner's dilemma.

26:49.470 --> 26:53.790
But still, you have to wonder what was in the minds of the designers of this protocol.

26:54.630 --> 26:57.850
Building things that work in a lab is an achievement.

26:57.850 --> 27:03.630
Building things that can make it from the lab into the real world and still be useful is a greater achievement .

27:04.410 --> 27:07.130
And we should strive for the greater achievement .

27:09.190 --> 27:20.190
There are a number of codecs that you can use for voice over IP and a couple of them are fixed in the amount of bandwidth that they use.

27:20.190 --> 27:28.730
In other words, whether you're talking or not, they are sending the same number of packets and the packets have the same size and the same inter packet gap.

27:28.850 --> 27:40.350
And the reason is if they only send packets when you're talking and if they turn your silence into a lack of packets , then they will end up competing with TCP when you do finally start talking.

27:40.410 --> 27:45.030
So what they want to do is compete with TCP the whole time , even when you're not talking.

27:45.730 --> 27:46.350
Okay ?

27:46.350 --> 27:52.350
I understand everybody wants to adapt to other people's mistakes, but could this not have been foreseen ?

27:57.380 --> 28:03.480
There is a mantra in the ivory tower of the IETF that stateless is good.

28:03.920 --> 28:06.100
They don't want to put state in the routers in the middle .

28:06.100 --> 28:09.980
That was something X25 and the rest of the ISO protocols did.

28:09.980 --> 28:11.000
They didn't want to do that.

28:11.000 --> 28:13.760
They wanted to keep all state at the end points.

28:13.760 --> 28:26.880
Now, it turns out that with route caching and all the other things that modern routers have to do in order to run at 10 gigabit line rates, you have state in those routers anyway.

28:27.320 --> 28:41.080
And so it might have been worthwhile to get somebody to come in and try and separate out religion from engineering requirements in the original design of all of this stuff.

28:46.460 --> 28:50.400
This is near and dear to the hearts of many in this room.

28:52.540 --> 29:09.920
For most DSL customers or cable modem customers or other sort of high bandwidth full-time fully connected people from data centers to houses to whatever, you can put any source address you want on your outgoing packets.

29:10.060 --> 29:22.040
You can make them come from net 10, you can make them come from the loopback address, you can make them come from net zero, or most appropriately you can make them come from some victim who you would like to destroy.

29:22.480 --> 29:26.580
And then you can send them to a lot of people and then the replies all go back to the victim.

29:27.840 --> 29:30.800
And this is hard to fix, as it turns out.

29:30.800 --> 29:51.180
It sounds simple and there are fixes in various routers and there are all sorts of online documents exhorting people to turn those things on, but it turns out that the equipment most providers are using doesn't quite have the ability to do this and still run at line rate.

29:51.460 --> 29:58.940
And the ones that do can't turn it on, because there are some beneficial flows, benevolent flows that depend on this.

29:58.940 --> 30:04.020
Third-party TCP that has a satellite leg going in one direction would be an example .

30:04.160 --> 30:06.460
It is sometimes necessary to spoof .

30:06.460 --> 30:11.280
Well, okay, in my opinion, you can, as a provider, you're a slacker if you use that excuse.

30:11.280 --> 30:18.460
You need to find the customers that need that and give them a little bit more latitude and anybody who doesn't need it needs to get no latitude at all .

30:19.240 --> 30:33.980
I spend a fair amount of my time tracking down denial of service attacks against DNS servers and my job gets a lot easier when I know that a given flow really does have valid source addresses.

30:34.600 --> 30:36.540
What could they have done differently ?

30:37.380 --> 30:45.600
Well , it all needed to be done on day one because once you sort of let this genie out of the bottle, then it can dictate terms to you.

30:45.640 --> 30:52.440
But on day one, they needed to fix it so that source addresses had to be right from the moment they entered your network.

30:52.440 --> 30:57.700
At every edge, you know what destination addresses would possibly reach that customer.

30:57.700 --> 31:01.540
You could just demand that they only use source addresses that are in the same range.

31:01.580 --> 31:02.680
It's not that hard.

31:02.680 --> 31:05.940
Even in 1980, it was not that hard.

31:06.420 --> 31:21.280
You can also make sure at every core router on the internet that, well, maybe you don't know where it came from because by that time you don't know which edge it started at, but you could just demand that the source address be in the routing table somewhere.

31:21.720 --> 31:30.400
Just drop it as soon as possible inside the core if it has net zero as its source address or net 10 or what have you.

31:30.740 --> 31:32.020
This is not hard.

31:32.020 --> 31:34.120
It would not have been hard in 1980.

31:34.640 --> 31:37.600
As to why they didn't do it, it's a mystery.

31:45.520 --> 31:49.460
Okay, this is my special area.

31:50.000 --> 31:57.040
I can rant longer and harder about DNS than any other topic I can think of and maybe more than any other person you can meet.

31:58.140 --> 32:00.500
A lot has been done wrong here.

32:03.600 --> 32:10.060
They said that .mil and .gov were for military and government, but they really meant their own military and government.

32:10.140 --> 32:20.500
Probably meant that com, edu and net were also for American companies, universities and network providers too, but they failed to get that out.

32:20.500 --> 32:26.540
This has a distinctly American feel to it, in the same way the telephone system does .

32:26.540 --> 32:31.540
I don't know about most of you , but the country code for my cell phone is one.

32:32.440 --> 32:43.200
They needed to get ITU involved early, so they were not trying to legislate things that affected national sovereignty.

32:43.240 --> 32:59.320
They needed to get the existing organization that had already had that power delegated to them by all those sovereign nations, get them involved early, so the whole argument could be moved to the other guy's backyard instead of having them come visit us.

33:00.800 --> 33:04.620
They needed a much better plan for adding new TLDs.

33:04.620 --> 33:17.520
Right now, it's ICANN, but for many years, there was an RFC that said that IETF was responsible for determining when a new top-level domain would exist.

33:17.520 --> 33:29.380
Well, the E in IETF stands for engineering, and the creation of top-level domains and the selection of which ones ought to exist and who they ought to belong to is not an engineering decision.

33:30.140 --> 33:45.320
And you can't say , you know, dot black hat or dot Microsoft or whatever, but I think there ought to be more.

33:45.320 --> 33:54.780
I think that this ought to be a more open vehicle , and we ought to be trying a lot of things, and if some of them don't work out, we should say , okay, that didn't work out, we'll delete it now.

33:55.560 --> 34:04.780
Had they done that, then the current food fight over who controls the top-level domain space would be, I think, a lot more polite than it is.

34:06.640 --> 34:22.980
They also allowed Network Solutions, which is a predecessor of Verisign, to begin charging for domains back when it was still a Navy contract, and there was no provision at all for what we have now, which is the registry-registrar split.

34:23.060 --> 34:40.880
And so they let NSI collect $30 a year per domain for years, while the whole white-paper process and the whole RRP and EPP and the rest of that stuff got done, we're going to be stuck with Verisign forever as a result of this decision.

34:43.080 --> 34:44.880
What could they have done?

34:48.020 --> 34:54.580
How did we decide to do, I don't know, international telephony?

34:54.580 --> 34:57.220
How did we decide to do international post?

34:57.700 --> 35:07.260
Who decided what the settlements would be for, gee, I bought a stamp in this country, but you're delivering it in that country, and vice versa, and I sent you more mail than you sent me.

35:07.260 --> 35:09.280
How did we carve up Antarctica?

35:09.820 --> 35:11.860
How will we carve up the moon?

35:11.860 --> 35:15.400
Well, we're going to get diplomats involved and say, go handle it.

35:15.920 --> 35:20.620
For this, we didn't do that, we said, oh, we're engineers, we know how to get this done.

35:20.800 --> 35:23.320
The evidence to date suggests otherwise.

35:32.150 --> 35:52.350
I have been a member of the IETF, which is to say I'm on some of their mailing lists and I attend some of their meetings for, I think 12 years, and I've seen a lot of bad stuff come and go .

35:54.290 --> 35:59.850
They built a standards organization originally that was 50 friends and a white board.

36:00.630 --> 36:14.190
And I think you can imagine, you know, if you could pick 50 people on a white board and you could come up with some pretty cool stuff and it would work and it would be successful in the market and so on .

36:15.090 --> 36:21.570
And so they did that because they knew that it would work and it would be successful and it would be fun and they had many fine lunches and dinners around it.

36:22.410 --> 36:26.350
They planned for global domination.

36:26.350 --> 36:29.630
They wanted it to be the case that IP would beat ISO.

36:29.850 --> 36:35.790
They did not ever want to have to run TP4 or X25 or anything like that in their enterprise or ATM.

36:36.250 --> 36:42.610
So they really thought hard about how to make sure this would be the dominant technology.

36:42.610 --> 36:52.790
But what they didn't realize is if you span the globe, then people from all over the globe are going to want to come and help with this protocol development process.

36:52.790 --> 37:01.570
They will have their own ideas and you will have to have a standards organization that is capable of letting all those people in but not turning the discussion to mud.

37:01.990 --> 37:03.930
They had no such plan.

37:03.930 --> 37:05.290
They still have no such plan.

37:05.290 --> 37:09.510
They periodically reform it based on hindsight.

37:10.970 --> 37:15.950
In other words, they say how can we avoid the problems of recent years in what we do next.

37:16.290 --> 37:20.610
But they never asked the question how can we get back to the good old days.

37:20.610 --> 37:31.270
How could something like DNS or SMTP possibly survive the current IETF process or the one we plan to have after the next reform.

37:31.310 --> 37:32.810
That's not a litmus test they use .

37:32.810 --> 37:37.650
All they're trying to do is fix whatever they think is wrong looking at the previous year or two .

37:37.910 --> 37:41.570
As a result , the reform is continuous and ineffective.

37:49.800 --> 37:58.480
The Internet activities board is logically separate from the IETF although it is the titular head of IETF.

37:58.500 --> 38:03.460
There's a whole hairball of organizations starting with I.

38:03.620 --> 38:08.320
IAB is where the architectural vision is supposed to come from.

38:08.420 --> 38:14.940
These people are selected by a nominations committee of the IETF body .

38:14.940 --> 38:18.580
I've been asked to be on that committee a couple of times and have said no .

38:20.280 --> 38:25.460
In other words , it is selected by people like me who said yes , I will help make those selections .

38:26.140 --> 38:30.500
The IAB has in the past said that firewalls were an unnecessary evil.

38:30.500 --> 38:35.320
And that hosts just ought to be hardened.

38:35.480 --> 38:39.020
Well, okay, you can say that, but that's not what people are doing.

38:39.540 --> 38:56.660
They said that NAT was an unnecessary evil and that rather than promote NAT and come up with firewall traversal protocols and just make everybody use NAT and only have real addresses in the core which worked, they said, no, we just think NAT is a bad design and we're going to come up with IPv6 and that will kill NAT .

38:56.960 --> 39:01.900
And once again , I have to say that is a fine philosophy to have, but that's not what people are doing.

39:05.880 --> 39:13.680
Tony Lee, who was then at that time a Cisco employee, made the famous comment about IPv6, he said it's too little too soon.

39:14.040 --> 39:27.600
We don't need it yet and the things we need are way bigger and the list is way longer than what people are planning on providing, but that's what the IAV decided on and it was there that the decision was made.

39:28.980 --> 39:33.140
And those of you in business know what the feasible alternative is in this case.

39:33.140 --> 39:43.180
You find out who the customer is, ask them what they want and build it for them, rather than saying yes, we are in the ivory tower and we will tell you whether you need NAT or not.

39:45.000 --> 39:46.540
Foolishness on its face.

39:47.040 --> 39:49.240
And yet they're still defending that policy.

39:53.860 --> 39:58.380
ICANN, and I'm down to my last ten minutes, so we'll be doing Q&A out in the hall perhaps.

39:59.020 --> 40:09.100
They should never have taken any money from the Department of Commerce, NTIA being the part of the Department of Commerce that faces ICANN, should never have taken money.

40:09.100 --> 40:11.960
Once you take money from somebody, they can tell you what to do.

40:12.280 --> 40:15.580
They needed to cherish their independence from day one.

40:17.100 --> 40:21.160
They also let NTIA guide the charter and the initial board.

40:21.800 --> 40:23.680
And, you know, what's up with that?

40:23.820 --> 40:26.420
Where did these people come from and why should we be listening to them?

40:26.420 --> 40:28.280
That's a question they failed to ask .

40:28.860 --> 40:32.280
They used to have a bottom -up at -large sort of representation .

40:32.660 --> 40:35.080
They would let people like us vote for who was on their board.

40:35.080 --> 40:39.680
They don't do that anymore because they got a board member they didn't like listening to .

40:42.320 --> 40:45.720
They needed to see this as a transnational entity, not a U .S .

40:45.720 --> 40:47.460
government entity, from day one .

40:48.360 --> 40:52.900
The governments they did not include on day one are now forming up their own thing through the I.T.U.

40:52.960 --> 40:54.080
mechanism.

40:54.280 --> 40:56.560
And it's toothless, but it's going to be a mess .

40:59.240 --> 41:03.760
True representative democracy is terrible .

41:03.820 --> 41:06.480
And the only thing worse is everything else .

41:06.500 --> 41:08.360
And they chose something else .

41:12.790 --> 41:17.550
So , I .T.U., I've mentioned several times , we should have gone to them earlier.

41:17.550 --> 41:20.410
That doesn't mean that they had the wisdom and they would have done the right thing.

41:20.430 --> 41:24.150
What that really means is they could have been helped.

41:24.330 --> 41:31.030
And instead they were allowed to go do their own thing, which was fun to watch when it was foolishness.

41:31.750 --> 41:34.810
But it means that we didn't have their help.

41:36.150 --> 41:45.950
They should not have allowed Panama to turn telecom access fees into the major source of gross domestic product.

41:45.950 --> 41:57.610
But most of Panama's government and services are paid for by people in this country who pay heavy-duty international dialing rates to reach Panama.

41:57.610 --> 42:06.390
The result is it's illegal in Panama to run an ISP without a license , and that license dictates that you will block all voice-over IP port numbers .

42:07.630 --> 42:15.570
This is kind of incompatible with the way we do things on the Internet , and the ITU needed to be told early on that's crap.

42:15.570 --> 42:16.930
Just don't do it.

42:17.730 --> 42:20.330
They needed to see telecom as a type of data .

42:20.330 --> 42:23.050
Instead , they saw data as a type of telecom .

42:23.270 --> 42:25.410
We needed to invert their mindset.

42:26.690 --> 42:35.770
They needed to understand that the Internet was a force for democracy, and it wasn't just another way to enrich their members.

42:39.070 --> 42:42.130
I'm going to race through some of this.

42:43.470 --> 42:48.470
So, here's the hard part, because it involves you.

42:51.090 --> 42:58.950
Revolutions come about because people who had the land and the money and the power before you have deals with each other about how they're going to keep it.

42:59.810 --> 43:02.890
That's true of revolutions throughout history.

43:04.350 --> 43:09.450
It's always about land reform or it's about governance reform or whatever.

43:11.250 --> 43:13.310
ICANN is stuck with NTIA.

43:13.310 --> 43:19.730
NTIA is stuck with Verisign, but I'm starting to see that that's not our problem.

43:20.950 --> 43:22.690
We're not stuck with ICANN.

43:22.690 --> 43:24.670
We're not stuck with NTIA.

43:26.510 --> 43:33.850
The Internet has done for the world the same thing the fax machine did after Tiananmen Square.

43:33.850 --> 43:38.170
It has made it much harder for people to oppress other people.

43:38.170 --> 43:39.950
It's made anonymity possible.

43:39.950 --> 43:42.370
It's made freedom of speech possible.

43:43.010 --> 43:45.010
It is a huge thing.

43:45.010 --> 43:47.330
It's not just a technological toy.

43:49.370 --> 43:57.090
There are some people out there who are trying to pry this toy as they see it away from ICANN and monetize it.

44:02.410 --> 44:10.630
But I guarantee if you go to these people's houses there will be trailers in the woods and right under the kitchen window there will be a pile of Kentucky fried chicken boxes .

44:10.630 --> 44:26.070
And what we need is something a lot better than that, maybe even different from DNS , a different way of allocating and using names and addresses that does not rely on governance because the quality of governance in the world seems to be so low.

44:28.990 --> 44:39.810
I mentioned on the slide the technology counterculture .

44:39.810 --> 44:43.870
Guys in suits don't come up with stuff that's quite that innovative.

44:44.970 --> 44:48.850
It comes from rooms like this one full of people like us.

45:08.800 --> 45:24.980
Last year I built a barn and it came about several times that one of us on the construction team would come around the corner with some bleeding body part and declare that rule number one had been violated.

45:30.400 --> 45:37.020
So humans are animals and most of my best friends are humans.

45:37.140 --> 45:39.120
But we have our dark side.

45:40.160 --> 45:46.460
We spend a hellacious amount of time trying to figure out how to make other people work so that we won't have to.

45:47.620 --> 45:53.500
If we're not doing that, we're probably spending a hellacious amount of time trying to keep other people from doing that to us.

45:55.660 --> 46:08.720
And I'm looking forward to a day when we have some other mode of operation, some other thing that is driving us, and I think that the Internet is a wonderful potential tool toward that end.

46:11.040 --> 46:32.680
I could ask for a show of hands and a bunch of you would say yes, I started an Internet consulting business in my house, and because I was able to get a domain name and get some bandwidth and whatnot, I was equal to everyone else in that business, and the only thing that mattered was whether I was any damn good at what I did and how much I charged .

46:33.320 --> 46:35.100
That's not generally true .

46:35.260 --> 46:40.720
I own the land that you would need for that factory, so you have to pay me my tithe.

46:40.720 --> 46:42.400
I've been holding on to it for you.

46:43.100 --> 46:46.480
The Internet works differently, and it could make humanity work differently.

46:48.320 --> 46:51.660
And I love things like free and open source software.

46:51.660 --> 46:55.980
I've been doing open source software since before that name was coined.

46:56.160 --> 46:59.280
I'm glad that somebody finally came up with a name for what I was doing .

46:59.280 --> 47:00.240
That's good.

47:00.640 --> 47:02.260
I love the onion router.

47:02.260 --> 47:08.320
I'd like to see voice over IP come along and destroy the existing voice dial market.

47:08.720 --> 47:20.500
Not because I hate the voice dial market, although frankly it tends not to work well, but because it's an instance of old power structures self-perpetuating themselves at the cost of all of us and our children.

47:23.120 --> 47:36.840
And before the Internet can be that force for improving human nature and being that intermediator that I'd like it to be, we have got to get the governance of the Internet out of the hands of the existing power structure.

47:37.160 --> 47:38.320
Thank you.

47:47.060 --> 47:49.660
I can take a couple of questions .

47:57.980 --> 48:00.540
We're exiting on that side.

48:00.540 --> 48:01.700
I have a question here .

48:07.900 --> 48:13.360
I see OASIS as a competitive standards body for W3C .

48:13.800 --> 48:15.700
And I think OASIS is a wonderful thing.

48:15.700 --> 48:19.320
For that matter, I think W3C with all its warts is a wonderful thing .

48:19.560 --> 48:28.600
If you can imagine what the web standards would look like had they been left in the hands of the IETF , then you should be thanking Tim Berners -Lee for doing what he did .

48:30.920 --> 48:32.300
More questions?

48:34.620 --> 48:35.500
Here.

48:40.310 --> 48:46.570
I think that in Tunis , the WSIS people will say, you know that cat?

48:46.570 --> 48:48.030
That cat's a pain in the butt .

48:48.030 --> 48:50.370
And us mice , we need to do something about it .

48:50.370 --> 48:52.650
One of us needs to go put a bell on that cat .

48:52.730 --> 48:56.550
And they're going to look at each other and wonder who's going to do that.

48:56.550 --> 49:03.150
But the fact is the United States is the largest payer of dues into the United Nations.

49:03.270 --> 49:08.910
And if they say as they did, three weeks ago, we're going to keep the root zone.

49:09.230 --> 49:11.550
If they say that, then they mean it.

49:11.550 --> 49:14.870
And it doesn't really matter what the UN thinks they can do about it.

49:16.230 --> 49:18.450
I don't like it, but that's the fact.

49:22.250 --> 49:23.750
Any more questions?

49:25.170 --> 49:26.570
Thank you very much.

49:28.790 --> 49:31.730
You can see me in the hallway if you have more questions.

49:31.730 --> 49:32.830
Thank you.

