0:14
So this week we're moving from history to technology.
And in a sense were going to tell the same story again.
you know, we'll sort of start from the beginning, but we're going to start from
the bottom and move upwards so it sounds as though we're kind of taking about the
same things, but just from a more technical perspective.
Don't worry, you'll be fine. we're not going to over, there's no math,
I promise, there's no programming. Don't worry about that.
So of course, I appreciate IEEE Computer Magazine, who I write for to let me use
the articles that are associated with some of the videos, as well as the folks
from up in Michigan who have helped me, so.
Hang on a sec. Now hang on, I've got a phone call.
I'll be right back. Okay, well that's been sent.
Sorry for that interruption. again I thank everybody for the use of
the copyright materials. part of my hidden agenda in this class is
that you will be able to look at this XKCD comic and you'll understand the
humor. So, I'm going to stop for a moment and
let you look at it and see if you get the humor.
Okay so maybe you did, maybe you didn't. But hopefully by the time we're done,
you'll have a better chance of getting here.
So if you recall, the most academics throughout the 60s 70s and 80s.
The best they had access to was this store and forward networking where you
would send a message and it would go into a computer and it might sit for some
time. Then it would find its way across a
network and it would sit for a little while longer.
Find, and, and hop, and there are these multiple hops.
We call these hops, and each of these would be a couple hundred miles perhaps.
And to go from say Michigan to Stanford, there might be fifteen or twenty hops.
Hops are as much, defined by geography where we're all trying to optimized the
cost of these long distance connections. So the thing that really characterized
store and forward networking was that there wasn't a lot of sharing.
One message was being sent across one of these links at a time and all the other
messages just kind of waited in time, in line.
Now, that the, the, the innovation that happened in the research networks in the
60's through the 80's ultimately unbodied in the ARPAnet was the fact that they
were going to be packet networks. First, how do we share one link, so that
a long message doesn't clog it up? And how do we deal with outages more
dynamically? With the idea that, eventually, you could
send a packet across the country. And back into a computer and back out in
maybe a half of a second. And that was seen as something to do
rather than. Somewhere between ten minutes and a day
or two. So how to do this efficiently.
It was a research project. And it was a research project that lasted
almost 20 year-, well, 20 years. And, 20 or more years.
And, and it, one of the neatest things about this is they were able to throw it
away and rewrite it a bunch of times. So that they could put something in
production, see its flaws, see what was good about it, and they had the money
from Darpa to throw it away and rewrite it.
Now by the late 1970s it had 100ish computers on it, here's a picture, and
these are not the schools, these are the computers, these are.
You know, listing all of the computers that are there.
3:45
And so the engine, the, the innovation that they spent 20 years perfecting, was
the notion of packet-switching. So how can we simply move data
simultaneously across the connection? And the essential brilliant idea Is break
the message into packets. And again to sort of review, here I have
a message and I have post cards that only can handle 10 characters.
And i'm going to send this "Hello there have a nice day" message to Daphne in
California. And so I have 3 10 character post cards.
I basically put a from address and a to address on each postcard and a sequence
number on each postcard, 1, 2 and 3, and I put ten characters on each and I stick
them in my mailbox. I just put them in.
Put the sign up and then I wait. Now let's just say you know, that the
post office person comes and picks this first one up and it goes to Chicago from
Michigan than it goes to Omaha then it goes to Denver then the second one kind
of falls on the floor and it ends up going to Charlotte North Carolina.
And then they're like, Why is this here? And then they send it to Atlanta to get
checked. And then they make sure.
And, and this one goes and. And Number 3 ends up going to St.
Louis. And then Tulsa.
And then Colorado. And this one gets routed back to
Charlotte because they weren't sure why they sent it to them in the first place.
And then they send it to Memphis, Tennessee and then this one makes it to
California. And this other one sort of goes to
Phoenix and this one finally gets to Dallas, Texas.
And this other one goes finally. And the third one goes to Tucson,
Arizona, then Las Vegas Nevada and finally he makes it.
So, these poor little postcards I put in They have each a different journey.
Right? It's a little adventure for each of the
postcards that they go through. And, so, we don't, I don't see how this
works on my end. I put in three postcards.
I numbered them, one, two, three. But on the far end, in California, Daphne
opens her mailbox. And has scribbling all over her mailbox.
Oh, the shame! No, actually we'll get rid of the
scribbling. So Daphne opens up her mailbox, and she
doesn't know how these packets got there, I mean, postcards, how they got there,
out comes the first one. She goes, oh looks like I just got a
message from Chuck, but I only got part of it.
Then out comes the second one shortly thereafter.
Then after a long period of time, finally the third one comes out, but it's
actually the second one. And now she understands that she's got
the entire message, and she reassembles it, and away we go.
And so this is the basic notion of how all those postcards can share the
infrastructure. All, they can all be invited at the same
time. They can take different paths.
You don't have to connect them all together like trains, basically.
and, and this led to a shared network infrastructure.
And so the computers that were in a store and forward network, went from, sort of,
big powerful computers with disk drives to really tiny computers with a single
purpose of forwarding packets. Rather than longs term storage of
message. And so, so the, the store in forward had,
longs term storage of messages, in the routers.
So the, but, I mean, not in the routers. In long, in the store in forward, the old
one, long term storage was somewhere in the network.
But this is only short term, right, short-term storage, short-term storage.
And so when a packet comes out, it simply has to find its way through a series of
hops. It still hops and it's still connections,
but basically it has to find its way across the Internet.
And then we would take whole campuses Like University of Michigan, say, or
Stanford for example. And, then we'd have sort of various kinds
of local networks on those campuses, and computers on the campuses, and servers
and various things. And they would route all their packets,
all their data out to the Internet, and then the packets would find their way
across the Internet, and then we might have a home connection as well that might
connect. And so, the shared, shared Network
infrastructure focuses only on packets, not reliability or anything else.
[COUGH] So, this notion of hops didn't go away.
As a matter of fact, I don't know how many hops it took to get from Ann Arbor
to Palo Alto in using BITNET. I'm going to guess it might have been 16
or 20, in these days it takes 16 or 20 hops.
The difference is in the internet, the 16 or 20 hops happens in a hundredth of a
second, or a tenth of a second. So the ho-, notion of hops, and the
notion of intermediate computers is still present in the internet, and the TCPIP
networks that we use today. And so your, your, your message sort of
leaves you the host that you're in, hops to the first router, and then hops to
however many routers. Dot dot dot, this is more of a dot dot
dot thing. And then finally hops its way out to the
far host. And so this is sort of either your
computer, maybe Stanford's web server, and then there's this series of routers
in the middle that it hops through. Okay?
And so, the problem of what data goes between here and here is you gotta solve
a lot of problems, right? How to, all, all kinds of problems, and
so, in order to simplify the solution or break the solution into simpler, more
manageable parts. They came up with a layered network
model. Now this is a cartoon and computer people
love drawing cartoons and saying this is our architecture.
This is our frame work. This is our approach.
Sometimes they're helpful. Sometimes they're not helpful.
Sometimes the cartoon is just kind of a cartoon.
9:33
But what's usually being communicated in these kinds of pictures is they're taking
a big problem and breaking it down into some subset, some set of smaller
problems. So, the whole problem they've gotta solve
of getting data reliability reliably across the whole country is that big and
if we can break into four pieces. And work separately and come up with ways
to let these pieces interact, work separately with each onem then maybe
we'll have a better solution, okay? So take a problem that's so large and so
complex that we might not be able to solve it and break it into four smaller
problems Gives us a better chance of solving the four problems.
Now, there's a certain art to picking how you break the problem up.
And there's more than one network model. The one that we use in the Internet is
the TCP/IP or the Internet Protocol Suite model, and we'll meet some of the people
who designed that. there was also a model called the 7 layer
OSI model, Open System Interconnection model.
So there's a model out there that has 1, 2, 3, 4, 5, 6, 7 layers.
And they all have names, and they all have purposes, and they all have
definitions. this was not quite as po-, this was not
very popular. And I doubt that it's many places.
because the TCPI model is the one that kind of won.
Um, [COUGH] and so that's the one that we're going to study.
But that doesn't mean that, that has to be the only one.
But it is the one that has become popular on the internet.
11:01
So, once you break the problem down from a big problem into four small problems,
you have to develop documents about how these layers work together.
How various computers work together. How routers work.
All these things and so early in the process of the development of the Arpanet
they created an open process to build these specifications.
Where they would vite, invite engineers from all kinds of companies and
universities and who knows what any expertise to show up at a meeting.
Several times a year. I mention the IETF meeting when I was
talking about the history of the Internet and Tim Berners-Lee boff, that only 15
people showed up to. That's this meeting, the Internet
Engineering Task Force, which is just a bunch of engineers that get into rooms,
many rooms, and solve a bunch of problems.
And so the standards that come out of this, you can go read them, they're all
open documents. They're very throwback documents.
They've got this text thing that's dial this like, beautiful upper case, it
reminds me of back when printers didn't have a lower case.
and these are documents that describe how most components of the internet work
together. So, the layered architecture that I just
described where you have a computer and then it sends data out to back of it.
And then hop, hop, hop, hop, hop through routers, and then the data arrives at the
destination computer, And then it, the destination computer sends it back it
hop, hop, hop, hop, hop coming back and it comes to you.
We're going to expand on this a little bit.
So each of these hosts on the two ends is going to expand to this much right here.
So that's one host. That's another host.
And each of these routers is going to expand into this.
13:29
That's kind of the plug. It might be WiFi which means it's kind of
like air but If you have a wire like this, then it's a little more tangible,
and there's something on the other end of that wire.
This is a very short wire, but there would be a router on the other end of
that wire. [COUGH] The router takes the data off the
wire and then forwards it just like a post office, intermediate post office
would do, onto the next link. On to the next one.
And this would be multiple hops in here, they're only showing 2 hops.
And finally it's on the last link going to that computer at Stanford.
And then it goes up through these 4 layers of software and then goes and does
whatever it's going to do. Now when they send you the response back
it kind of goes the other way. And back up and back to you.
So if this was you in a web browser, you know and then here's me.
And here's a slide I've got, right. This web browser and you moving your
cursor in the web browser is sending stuff back and forth to the [UNKNOWN]
servers right here. And that's what's happening, alright.
So If as you look at this picture over here, this left colmn is the host you're
coming from. The right column is the host you're going
to, and the riders are these things in the middle, okay?
Okay. So let's start looking at all four
layers. We are going to start at the bottom, at
the link layer, then we're going to move up.
15:36
It's a complex enough problem but, we don't worry about the whole world.
We worry about this one link layer and so the link layer is sort of like the
connection out of one computer and into another computer.
And, and this might be fiber optic, might be, you know, 40 miles or it might be 40
feet for all we know. But it's one link, okay?
And then, a router pulls it off that link and then forwards it onto another link.
If you go to the post office, you could think of the, the person who picks your
mail up from your house, with the thing on their shoulder, that's one link And
they put it in a truck which takes it to a place that puts it in a semi truck.
And then it puts it to another place that puts it on a train.
And the semi truck and the train and the postman or postwoman are these little
link layers. Each person or semi truck is not taking
it all the way, they're just getting a little farther.
So that's the link layer So the link layer doesn't worry about the rest of
this stuff. It really, the stuff that is defined on
this wire, it doesn't even care if there's a world wide web or anything.
Its job is to get data across one foot. That's what its job is.
Is it up, is it down, how do we share? It doesn't care.
It's got a very narrow view. So.
What it means is we can zoom in on this problem, right.
We can zoom in and focus and ignore everything else.
18:44
And so, these numbers are not the numbers for this to get across the world, all the
number, all these serial numbers at the link layer are good for are to get across
one connection, in case that connection is shared.
And if you were to plug this into a hub, and you're plugging other computers into
that same hub. Well then you're sharing that connection.
And this computer might see the traffic for that other computer.
And so we use the physical addresses so that this computer knows which of the
packets belong to it on the piece of wire.
So, wired ethernet or wifi certainly if you're sitting in a room with a bunch of
wifi computers. You're sharing the air.
So let's come up with rules how to share this, how to share nicely and how to
behave. So the way it works, ccc, is you
could...the ethernet could easily have a bunch of computers hooked to it right.
Cause its really shared, and so they're all sitting here, they're all talking
simultaneously. No.
But, we have a com, we have a pair of computers that want to talk.
So, it's not just one. It's got a bunch of folks sitting here.
[SOUND] Just draw a bunch of em. Bunches of folks.
They're all talking or all potentially talking [SOUND] and we gotta figure out
how in the shared medium. Like this is, think of this as a hub and
they're all connected into this hub including the two we want to talk.
They're all connected in the hub, including the two that we want to talk.
And how can these two make sure that the data goes, is, is the data that's sent
with the intention of going to this computer, this router.
How can it make sure that it gets there? Well, if it knows the address of the
sending and receiving unit It just encodes that, in the packet.
20:29
And that way, it sort of goes by all these folks.
Let me change colors here. The packet we send goes by all these
folks, and even if they all heard every one of the packets, they all know that it
doesn't belong to them because they all have a different number and this is the
only one that responds to it. So that allows them to share the wireless
or the wire, and, share the wireless to the wire and have it all work out for
them. So, [COUGH] so that's the idea, the link
layer. Now, again, remember this might only be
fifty feet, or fifty yards, or fifty meters.
And they can be meters. It's only 50 meters, but you still have
to share the network in that 50 meters. And then your router takes it off of that
and forwards it on a different link. And that's how we get across the country.
But that's the next layer up, and let's not worry about that for now.
So, the idea is think about one link, whether it's fiber optic or cable, or
wireless, or wifi. And so what are the kind of problems that
you have to solve on this link layer? Well, so one of the things that's cool
about many link layers is, like wireless and ethernet, is they can be shared, and
it makes it real easy just plug new computers in.
So you just sort of like, here's a hub, and you just plug another computer in,
and it's on the network. But they have to come up with a way to
avoid the chaos when they're sharing. And so, the way Ethernet does this is
with a technique called, Carrier Sense Media Access with Collision Detection.
And as you'll see, a lot of things we do on the internet have a lot to do with
courtesy. Meaning that we're just nice.
And if everybody's nice, it all works out.
kind of like driving in a car. Just everyone can't run through the stop
sign at the same time. Some of you gotta stop, got a green
light, your turn, my turn, whatever. This probably wouldn't work so well with
cars, because sometimes you do have a collision of packets.
You just have to wait. Packet collisions don't crush your car.
They just slow your data down. So, here we go.
This is basically carrier sense media access with collision detection.
The first thing you do if you want to send some data, say we got some data
inside our little computer and we want to send it out, knowing that there might be
other data going by The first thing we do is listen.
24:10
[NOISE] I want to introduce you to the person who invented Ethernet, Ethernet.
Hmm, This is Robert Melcalf and he was working at Xerox, Palo Alto research
center, PARC, everyone calls it PARC. And they had, they were building what is
most considered the first computer, the Alto computers.
They were connecting line printers, or, fast printers to these.
Pate, Xerox was building the first, laser printers.
And they needed something faster. And so they just started building, and
they built this thing called Ethernet. Now it's a little different than the
Ethernet that we see, the first Ethernet that they built is a little different,
you can see a picture of it down here. If you ever go to Xerox Park and get in,
you'll go see this little museum they have.
it used a single piece of cable that ran along, they just ran it down the hallway,
and they would connect a tap in And then they would use that to send the data.
So it would go down the hallway and a tap come out at each office, and they were
truly sharing the media. This comment is not shared, except when
you plug it into a hub. That's what makes the shared.
it was inspired by an earlier wireless network where they were doing not
collision detection, but retransmission called Aloha, and a lot of early network,
packet network inspiration comes from the Alohanet in Uni-, comes from University
of Hawaii. And because they didn't have anything
except wireless, but they did have wireless, they did a lot of really cool
early research on wireless. And so let's go ahead and meet Bob
Metcalfe the inventor, one of the inventors of ethernet.