
1
00:00:00,025 --> 00:00:10,700
Oh, oh hi, sorry. 
I was in, I was in the forums. 

2
00:00:10,700 --> 00:00:13,830
[SOUND] I guess it's time for this weeks 
video. 

3
00:00:14,890 --> 00:00:19,310
So this week we're moving from history to 
technology. 

4
00:00:19,310 --> 00:00:23,510
And in a sense were going to tell the 
same story again. 

5
00:00:23,510 --> 00:00:26,348
you know, we'll sort of start from the 
beginning, but we're going to start from 

6
00:00:26,348 --> 00:00:29,143
the bottom and move upwards so it sounds 
as though we're kind of taking about the 

7
00:00:29,143 --> 00:00:33,000
same things, but just from a more 
technical perspective. 

8
00:00:33,000 --> 00:00:36,100
Don't worry, you'll be fine. 
we're not going to over, there's no math, 

9
00:00:36,100 --> 00:00:39,860
I promise, there's no programming. 
Don't worry about that. 

10
00:00:39,860 --> 00:00:43,746
So of course, I appreciate IEEE Computer 
Magazine, who I write for to let me use 

11
00:00:43,746 --> 00:00:47,458
the articles that are associated with 
some of the videos, as well as the folks 

12
00:00:47,458 --> 00:00:51,940
from up in Michigan who have helped me, 
so. 

13
00:00:51,940 --> 00:00:55,150
Hang on a sec. 
Now hang on, I've got a phone call. 

14
00:00:55,150 --> 00:00:59,050
I'll be right back. 
Okay, well that's been sent. 

15
00:00:59,050 --> 00:01:02,408
Sorry for that interruption. 
again I thank everybody for the use of 

16
00:01:02,408 --> 00:01:06,862
the copyright materials. 
part of my hidden agenda in this class is 

17
00:01:06,862 --> 00:01:11,182
that you will be able to look at this 
XKCD comic and you'll understand the 

18
00:01:11,182 --> 00:01:14,560
humor. 
So, I'm going to stop for a moment and 

19
00:01:14,560 --> 00:01:16,905
let you look at it and see if you get the 
humor. 

20
00:01:16,905 --> 00:01:28,545
Okay so maybe you did, maybe you didn't. 
But hopefully by the time we're done, 

21
00:01:28,545 --> 00:01:31,380
you'll have a better chance of getting 
here. 

22
00:01:31,380 --> 00:01:36,750
So if you recall, the most academics 
throughout the 60s 70s and 80s. 

23
00:01:36,750 --> 00:01:39,974
The best they had access to was this 
store and forward networking where you 

24
00:01:39,974 --> 00:01:43,198
would send a message and it would go into 
a computer and it might sit for some 

25
00:01:43,198 --> 00:01:46,784
time. 
Then it would find its way across a 

26
00:01:46,784 --> 00:01:50,160
network and it would sit for a little 
while longer. 

27
00:01:50,160 --> 00:01:52,960
Find, and, and hop, and there are these 
multiple hops. 

28
00:01:52,960 --> 00:01:57,240
We call these hops, and each of these 
would be a couple hundred miles perhaps. 

29
00:01:57,240 --> 00:02:03,430
And to go from say Michigan to Stanford, 
there might be fifteen or twenty hops. 

30
00:02:03,430 --> 00:02:07,918
Hops are as much, defined by geography 
where we're all trying to optimized the 

31
00:02:07,918 --> 00:02:13,419
cost of these long distance connections. 
So the thing that really characterized 

32
00:02:13,419 --> 00:02:17,810
store and forward networking was that 
there wasn't a lot of sharing. 

33
00:02:17,810 --> 00:02:21,202
One message was being sent across one of 
these links at a time and all the other 

34
00:02:21,202 --> 00:02:24,570
messages just kind of waited in time, in 
line. 

35
00:02:24,570 --> 00:02:29,193
Now, that the, the, the innovation that 
happened in the research networks in the 

36
00:02:29,193 --> 00:02:33,747
60's through the 80's ultimately unbodied 
in the ARPAnet was the fact that they 

37
00:02:33,747 --> 00:02:40,928
were going to be packet networks. 
First, how do we share one link, so that 

38
00:02:40,928 --> 00:02:45,862
a long message doesn't clog it up? 
And how do we deal with outages more 

39
00:02:45,862 --> 00:02:48,960
dynamically? 
With the idea that, eventually, you could 

40
00:02:48,960 --> 00:02:53,140
send a packet across the country. 
And back into a computer and back out in 

41
00:02:53,140 --> 00:02:56,494
maybe a half of a second. 
And that was seen as something to do 

42
00:02:56,494 --> 00:03:00,245
rather than. 
Somewhere between ten minutes and a day 

43
00:03:00,245 --> 00:03:03,950
or two. 
So how to do this efficiently. 

44
00:03:03,950 --> 00:03:07,930
It was a research project. 
And it was a research project that lasted 

45
00:03:07,930 --> 00:03:13,500
almost 20 year-, well, 20 years. 
And, 20 or more years. 

46
00:03:13,500 --> 00:03:16,650
And, and it, one of the neatest things 
about this is they were able to throw it 

47
00:03:16,650 --> 00:03:21,594
away and rewrite it a bunch of times. 
So that they could put something in 

48
00:03:21,594 --> 00:03:25,752
production, see its flaws, see what was 
good about it, and they had the money 

49
00:03:25,752 --> 00:03:30,310
from Darpa to throw it away and rewrite 
it. 

50
00:03:30,310 --> 00:03:34,750
Now by the late 1970s it had 100ish 
computers on it, here's a picture, and 

51
00:03:34,750 --> 00:03:40,595
these are not the schools, these are the 
computers, these are. 

52
00:03:40,595 --> 00:03:43,270
You know, listing all of the computers 
that are there. 

53
00:03:45,650 --> 00:03:50,402
And so the engine, the, the innovation 
that they spent 20 years perfecting, was 

54
00:03:50,402 --> 00:03:55,252
the notion of packet-switching. 
So how can we simply move data 

55
00:03:55,252 --> 00:04:01,130
simultaneously across the connection? 
And the essential brilliant idea Is break 

56
00:04:01,130 --> 00:04:06,548
the message into packets. 
And again to sort of review, here I have 

57
00:04:06,548 --> 00:04:11,460
a message and I have post cards that only 
can handle 10 characters. 

58
00:04:11,460 --> 00:04:15,300
And i'm going to send this "Hello there 
have a nice day" message to Daphne in 

59
00:04:15,300 --> 00:04:20,690
California. 
And so I have 3 10 character post cards. 

60
00:04:20,690 --> 00:04:24,466
I basically put a from address and a to 
address on each postcard and a sequence 

61
00:04:24,466 --> 00:04:28,242
number on each postcard, 1, 2 and 3, and 
I put ten characters on each and I stick 

62
00:04:28,242 --> 00:04:32,950
them in my mailbox. 
I just put them in. 

63
00:04:32,950 --> 00:04:38,394
Put the sign up and then I wait. 
Now let's just say you know, that the 

64
00:04:38,394 --> 00:04:43,464
post office person comes and picks this 
first one up and it goes to Chicago from 

65
00:04:43,464 --> 00:04:48,378
Michigan than it goes to Omaha then it 
goes to Denver then the second one kind 

66
00:04:48,378 --> 00:04:57,730
of falls on the floor and it ends up 
going to Charlotte North Carolina. 

67
00:04:57,730 --> 00:05:00,691
And then they're like, Why is this here? 
And then they send it to Atlanta to get 

68
00:05:00,691 --> 00:05:02,610
checked. 
And then they make sure. 

69
00:05:02,610 --> 00:05:06,040
And, and this one goes and. 
And Number 3 ends up going to St. 

70
00:05:06,040 --> 00:05:08,220
Louis. 
And then Tulsa. 

71
00:05:08,220 --> 00:05:10,638
And then Colorado. 
And this one gets routed back to 

72
00:05:10,638 --> 00:05:15,370
Charlotte because they weren't sure why 
they sent it to them in the first place. 

73
00:05:15,370 --> 00:05:18,379
And then they send it to Memphis, 
Tennessee and then this one makes it to 

74
00:05:18,379 --> 00:05:21,556
California. 
And this other one sort of goes to 

75
00:05:21,556 --> 00:05:26,290
Phoenix and this one finally gets to 
Dallas, Texas. 

76
00:05:26,290 --> 00:05:30,160
And this other one goes finally. 
And the third one goes to Tucson, 

77
00:05:30,160 --> 00:05:34,500
Arizona, then Las Vegas Nevada and 
finally he makes it. 

78
00:05:34,500 --> 00:05:39,310
So, these poor little postcards I put in 
They have each a different journey. 

79
00:05:39,310 --> 00:05:41,344
Right? 
It's a little adventure for each of the 

80
00:05:41,344 --> 00:05:46,550
postcards that they go through. 
And, so, we don't, I don't see how this 

81
00:05:46,550 --> 00:05:49,780
works on my end. 
I put in three postcards. 

82
00:05:49,780 --> 00:05:53,410
I numbered them, one, two, three. 
But on the far end, in California, Daphne 

83
00:05:53,410 --> 00:05:57,460
opens her mailbox. 
And has scribbling all over her mailbox. 

84
00:05:57,460 --> 00:05:59,953
Oh, the shame! 
No, actually we'll get rid of the 

85
00:05:59,953 --> 00:06:02,776
scribbling. 
So Daphne opens up her mailbox, and she 

86
00:06:02,776 --> 00:06:06,327
doesn't know how these packets got there, 
I mean, postcards, how they got there, 

87
00:06:06,327 --> 00:06:09,850
out comes the first one. 
She goes, oh looks like I just got a 

88
00:06:09,850 --> 00:06:12,310
message from Chuck, but I only got part 
of it. 

89
00:06:12,310 --> 00:06:14,440
Then out comes the second one shortly 
thereafter. 

90
00:06:14,440 --> 00:06:17,307
Then after a long period of time, finally 
the third one comes out, but it's 

91
00:06:17,307 --> 00:06:21,010
actually the second one. 
And now she understands that she's got 

92
00:06:21,010 --> 00:06:24,010
the entire message, and she reassembles 
it, and away we go. 

93
00:06:24,010 --> 00:06:28,244
And so this is the basic notion of how 
all those postcards can share the 

94
00:06:28,244 --> 00:06:31,666
infrastructure. 
All, they can all be invited at the same 

95
00:06:31,666 --> 00:06:34,010
time. 
They can take different paths. 

96
00:06:34,010 --> 00:06:37,210
You don't have to connect them all 
together like trains, basically. 

97
00:06:37,210 --> 00:06:43,300
and, and this led to a shared network 
infrastructure. 

98
00:06:43,300 --> 00:06:47,186
And so the computers that were in a store 
and forward network, went from, sort of, 

99
00:06:47,186 --> 00:06:51,014
big powerful computers with disk drives 
to really tiny computers with a single 

100
00:06:51,014 --> 00:06:56,200
purpose of forwarding packets. 
Rather than longs term storage of 

101
00:06:56,200 --> 00:06:59,424
message. 
And so, so the, the store in forward had, 

102
00:06:59,424 --> 00:07:03,800
longs term storage of messages, in the 
routers. 

103
00:07:03,800 --> 00:07:07,300
So the, but, I mean, not in the routers. 
In long, in the store in forward, the old 

104
00:07:07,300 --> 00:07:10,200
one, long term storage was somewhere in 
the network. 

105
00:07:10,200 --> 00:07:14,130
But this is only short term, right, 
short-term storage, short-term storage. 

106
00:07:14,130 --> 00:07:18,482
And so when a packet comes out, it simply 
has to find its way through a series of 

107
00:07:18,482 --> 00:07:22,620
hops. 
It still hops and it's still connections, 

108
00:07:22,620 --> 00:07:26,750
but basically it has to find its way 
across the Internet. 

109
00:07:26,750 --> 00:07:30,284
And then we would take whole campuses 
Like University of Michigan, say, or 

110
00:07:30,284 --> 00:07:34,306
Stanford for example. 
And, then we'd have sort of various kinds 

111
00:07:34,306 --> 00:07:37,254
of local networks on those campuses, and 
computers on the campuses, and servers 

112
00:07:37,254 --> 00:07:40,909
and various things. 
And they would route all their packets, 

113
00:07:40,909 --> 00:07:43,618
all their data out to the Internet, and 
then the packets would find their way 

114
00:07:43,618 --> 00:07:46,456
across the Internet, and then we might 
have a home connection as well that might 

115
00:07:46,456 --> 00:07:52,164
connect. 
And so, the shared, shared Network 

116
00:07:52,164 --> 00:08:01,365
infrastructure focuses only on packets, 
not reliability or anything else. 

117
00:08:01,365 --> 00:08:03,440
[COUGH] So, this notion of hops didn't go 
away. 

118
00:08:03,440 --> 00:08:07,040
As a matter of fact, I don't know how 
many hops it took to get from Ann Arbor 

119
00:08:07,040 --> 00:08:12,423
to Palo Alto in using BITNET. 
I'm going to guess it might have been 16 

120
00:08:12,423 --> 00:08:16,460
or 20, in these days it takes 16 or 20 
hops. 

121
00:08:16,460 --> 00:08:19,852
The difference is in the internet, the 16 
or 20 hops happens in a hundredth of a 

122
00:08:19,852 --> 00:08:24,170
second, or a tenth of a second. 
So the ho-, notion of hops, and the 

123
00:08:24,170 --> 00:08:28,250
notion of intermediate computers is still 
present in the internet, and the TCPIP 

124
00:08:28,250 --> 00:08:33,610
networks that we use today. 
And so your, your, your message sort of 

125
00:08:33,610 --> 00:08:37,390
leaves you the host that you're in, hops 
to the first router, and then hops to 

126
00:08:37,390 --> 00:08:41,494
however many routers. 
Dot dot dot, this is more of a dot dot 

127
00:08:41,494 --> 00:08:44,232
dot thing. 
And then finally hops its way out to the 

128
00:08:44,232 --> 00:08:46,993
far host. 
And so this is sort of either your 

129
00:08:46,993 --> 00:08:50,276
computer, maybe Stanford's web server, 
and then there's this series of routers 

130
00:08:50,276 --> 00:08:55,030
in the middle that it hops through. 
Okay? 

131
00:08:55,030 --> 00:09:01,204
And so, the problem of what data goes 
between here and here is you gotta solve 

132
00:09:01,204 --> 00:09:07,264
a lot of problems, right? 
How to, all, all kinds of problems, and 

133
00:09:07,264 --> 00:09:11,294
so, in order to simplify the solution or 
break the solution into simpler, more 

134
00:09:11,294 --> 00:09:16,467
manageable parts. 
They came up with a layered network 

135
00:09:16,467 --> 00:09:20,004
model. 
Now this is a cartoon and computer people 

136
00:09:20,004 --> 00:09:25,090
love drawing cartoons and saying this is 
our architecture. 

137
00:09:25,090 --> 00:09:27,750
This is our frame work. 
This is our approach. 

138
00:09:27,750 --> 00:09:30,220
Sometimes they're helpful. 
Sometimes they're not helpful. 

139
00:09:30,220 --> 00:09:32,350
Sometimes the cartoon is just kind of a 
cartoon. 

140
00:09:33,910 --> 00:09:37,550
But what's usually being communicated in 
these kinds of pictures is they're taking 

141
00:09:37,550 --> 00:09:40,618
a big problem and breaking it down into 
some subset, some set of smaller 

142
00:09:40,618 --> 00:09:45,150
problems. 
So, the whole problem they've gotta solve 

143
00:09:45,150 --> 00:09:48,790
of getting data reliability reliably 
across the whole country is that big and 

144
00:09:48,790 --> 00:09:55,296
if we can break into four pieces. 
And work separately and come up with ways 

145
00:09:55,296 --> 00:09:59,436
to let these pieces interact, work 
separately with each onem then maybe 

146
00:09:59,436 --> 00:10:05,134
we'll have a better solution, okay? 
So take a problem that's so large and so 

147
00:10:05,134 --> 00:10:08,611
complex that we might not be able to 
solve it and break it into four smaller 

148
00:10:08,611 --> 00:10:13,710
problems Gives us a better chance of 
solving the four problems. 

149
00:10:13,710 --> 00:10:18,340
Now, there's a certain art to picking how 
you break the problem up. 

150
00:10:18,340 --> 00:10:21,950
And there's more than one network model. 
The one that we use in the Internet is 

151
00:10:21,950 --> 00:10:25,214
the TCP/IP or the Internet Protocol Suite 
model, and we'll meet some of the people 

152
00:10:25,214 --> 00:10:29,280
who designed that. 
there was also a model called the 7 layer 

153
00:10:29,280 --> 00:10:32,395
OSI model, Open System Interconnection 
model. 

154
00:10:32,395 --> 00:10:38,790
So there's a model out there that has 1, 
2, 3, 4, 5, 6, 7 layers. 

155
00:10:38,790 --> 00:10:40,614
And they all have names, and they all 
have purposes, and they all have 

156
00:10:40,614 --> 00:10:43,745
definitions. 
this was not quite as po-, this was not 

157
00:10:43,745 --> 00:10:48,699
very popular. 
And I doubt that it's many places. 

158
00:10:48,699 --> 00:10:51,615
because the TCPI model is the one that 
kind of won. 

159
00:10:51,615 --> 00:10:54,440
Um, [COUGH] and so that's the one that 
we're going to study. 

160
00:10:54,440 --> 00:10:56,480
But that doesn't mean that, that has to 
be the only one. 

161
00:10:56,480 --> 00:10:59,790
But it is the one that has become popular 
on the internet. 

162
00:11:01,050 --> 00:11:04,350
So, once you break the problem down from 
a big problem into four small problems, 

163
00:11:04,350 --> 00:11:08,570
you have to develop documents about how 
these layers work together. 

164
00:11:08,570 --> 00:11:12,370
How various computers work together. 
How routers work. 

165
00:11:12,370 --> 00:11:16,594
All these things and so early in the 
process of the development of the Arpanet 

166
00:11:16,594 --> 00:11:22,190
they created an open process to build 
these specifications. 

167
00:11:22,190 --> 00:11:25,490
Where they would vite, invite engineers 
from all kinds of companies and 

168
00:11:25,490 --> 00:11:30,420
universities and who knows what any 
expertise to show up at a meeting. 

169
00:11:30,420 --> 00:11:33,670
Several times a year. 
I mention the IETF meeting when I was 

170
00:11:33,670 --> 00:11:37,422
talking about the history of the Internet 
and Tim Berners-Lee boff, that only 15 

171
00:11:37,422 --> 00:11:41,798
people showed up to. 
That's this meeting, the Internet 

172
00:11:41,798 --> 00:11:45,230
Engineering Task Force, which is just a 
bunch of engineers that get into rooms, 

173
00:11:45,230 --> 00:11:48,480
many rooms, and solve a bunch of 
problems. 

174
00:11:48,480 --> 00:11:51,270
And so the standards that come out of 
this, you can go read them, they're all 

175
00:11:51,270 --> 00:11:54,830
open documents. 
They're very throwback documents. 

176
00:11:54,830 --> 00:11:58,673
They've got this text thing that's dial 
this like, beautiful upper case, it 

177
00:11:58,673 --> 00:12:03,570
reminds me of back when printers didn't 
have a lower case. 

178
00:12:03,570 --> 00:12:07,503
and these are documents that describe how 
most components of the internet work 

179
00:12:07,503 --> 00:12:16,260
together. 
So, the layered architecture that I just 

180
00:12:16,260 --> 00:12:23,000
described where you have a computer and 
then it sends data out to back of it. 

181
00:12:23,000 --> 00:12:26,082
And then hop, hop, hop, hop, hop through 
routers, and then the data arrives at the 

182
00:12:26,082 --> 00:12:29,072
destination computer, And then it, the 
destination computer sends it back it 

183
00:12:29,072 --> 00:12:33,520
hop, hop, hop, hop, hop coming back and 
it comes to you. 

184
00:12:33,520 --> 00:12:35,120
We're going to expand on this a little 
bit. 

185
00:12:35,120 --> 00:12:42,050
So each of these hosts on the two ends is 
going to expand to this much right here. 

186
00:12:42,050 --> 00:12:44,930
So that's one host. 
That's another host. 

187
00:12:44,930 --> 00:12:47,700
And each of these routers is going to 
expand into this. 

188
00:12:48,870 --> 00:12:54,160
So this bottom picture is just an 
expanded version of this upper picture. 

189
00:12:54,160 --> 00:12:57,590
So that we can see how the Internet 
layers work together. 

190
00:12:59,060 --> 00:13:04,082
So when you send a message in on your 
computer, it's -- this is all software, 

191
00:13:04,082 --> 00:13:09,910
application, transport, Internet link. 
So this is all software, and then it all 

192
00:13:09,910 --> 00:13:12,855
comes out the little plug on the back of 
your computer. 

193
00:13:12,855 --> 00:13:17,494
Right. 
[SOUND] So, maybe your computer has a 

194
00:13:17,494 --> 00:13:19,960
little plug like this on the back of it. 
Right? 

195
00:13:19,960 --> 00:13:23,184
That's an ethernet plug and here's an 
ethernet wire and I plug my local area 

196
00:13:23,184 --> 00:13:25,280
network in. 
Right? 

197
00:13:25,280 --> 00:13:27,780
And so, this right here is that right 
there. 

198
00:13:29,520 --> 00:13:32,747
That's kind of the plug. 
It might be WiFi which means it's kind of 

199
00:13:32,747 --> 00:13:35,736
like air but If you have a wire like 
this, then it's a little more tangible, 

200
00:13:35,736 --> 00:13:39,520
and there's something on the other end of 
that wire. 

201
00:13:39,520 --> 00:13:42,710
This is a very short wire, but there 
would be a router on the other end of 

202
00:13:42,710 --> 00:13:46,514
that wire. 
[COUGH] The router takes the data off the 

203
00:13:46,514 --> 00:13:50,672
wire and then forwards it just like a 
post office, intermediate post office 

204
00:13:50,672 --> 00:13:55,740
would do, onto the next link. 
On to the next one. 

205
00:13:55,740 --> 00:13:58,780
And this would be multiple hops in here, 
they're only showing 2 hops. 

206
00:13:58,780 --> 00:14:03,690
And finally it's on the last link going 
to that computer at Stanford. 

207
00:14:03,690 --> 00:14:07,286
And then it goes up through these 4 
layers of software and then goes and does 

208
00:14:07,286 --> 00:14:11,176
whatever it's going to do. 
Now when they send you the response back 

209
00:14:11,176 --> 00:14:16,300
it kind of goes the other way. 
And back up and back to you. 

210
00:14:16,300 --> 00:14:20,615
So if this was you in a web browser, you 
know and then here's me. 

211
00:14:20,615 --> 00:14:24,780
And here's a slide I've got, right. 
This web browser and you moving your 

212
00:14:24,780 --> 00:14:28,135
cursor in the web browser is sending 
stuff back and forth to the [UNKNOWN] 

213
00:14:28,135 --> 00:14:31,920
servers right here. 
And that's what's happening, alright. 

214
00:14:31,920 --> 00:14:37,590
So If as you look at this picture over 
here, this left colmn is the host you're 

215
00:14:37,590 --> 00:14:41,998
coming from. 
The right column is the host you're going 

216
00:14:41,998 --> 00:14:45,425
to, and the riders are these things in 
the middle, okay? 

217
00:14:45,425 --> 00:14:53,482
Okay. 
So let's start looking at all four 

218
00:14:53,482 --> 00:14:56,022
layers. 
We are going to start at the bottom, at 

219
00:14:56,022 --> 00:14:58,670
the link layer, then we're going to move 
up. 

220
00:15:00,130 --> 00:15:04,550
So if you recall when I talked about the, 
the, the basic reason why we even have a 

221
00:15:04,550 --> 00:15:10,520
layered architecture at all, is to 
simplify the problem. 

222
00:15:10,520 --> 00:15:14,260
To simplify the problem. 
So the idea of the link layer. 

223
00:15:14,260 --> 00:15:19,151
Is, the link layer is a, it, it on-, only 
worries about getting the data across one 

224
00:15:19,151 --> 00:15:23,495
hump, right? 
Only worries about getting the data from, 

225
00:15:23,495 --> 00:15:27,940
across one piece of wire. 
White like voltage goes on these little 

226
00:15:27,940 --> 00:15:32,170
wires, and. 
How we send the stuff and if more than 

227
00:15:32,170 --> 00:15:35,370
one computer's using the same wire, how 
do we share? 

228
00:15:36,700 --> 00:15:40,400
It's a complex enough problem but, we 
don't worry about the whole world. 

229
00:15:40,400 --> 00:15:44,420
We worry about this one link layer and so 
the link layer is sort of like the 

230
00:15:44,420 --> 00:15:50,040
connection out of one computer and into 
another computer. 

231
00:15:50,040 --> 00:15:54,330
And, and this might be fiber optic, might 
be, you know, 40 miles or it might be 40 

232
00:15:54,330 --> 00:15:58,900
feet for all we know. 
But it's one link, okay? 

233
00:15:58,900 --> 00:16:03,452
And then, a router pulls it off that link 
and then forwards it onto another link. 

234
00:16:03,452 --> 00:16:07,027
If you go to the post office, you could 
think of the, the person who picks your 

235
00:16:07,027 --> 00:16:10,547
mail up from your house, with the thing 
on their shoulder, that's one link And 

236
00:16:10,547 --> 00:16:17,310
they put it in a truck which takes it to 
a place that puts it in a semi truck. 

237
00:16:17,310 --> 00:16:20,340
And then it puts it to another place that 
puts it on a train. 

238
00:16:20,340 --> 00:16:24,884
And the semi truck and the train and the 
postman or postwoman are these little 

239
00:16:24,884 --> 00:16:29,272
link layers. 
Each person or semi truck is not taking 

240
00:16:29,272 --> 00:16:33,100
it all the way, they're just getting a 
little farther. 

241
00:16:33,100 --> 00:16:36,820
So that's the link layer So the link 
layer doesn't worry about the rest of 

242
00:16:36,820 --> 00:16:39,900
this stuff. 
It really, the stuff that is defined on 

243
00:16:39,900 --> 00:16:43,625
this wire, it doesn't even care if 
there's a world wide web or anything. 

244
00:16:43,625 --> 00:16:48,740
Its job is to get data across one foot. 
That's what its job is. 

245
00:16:48,740 --> 00:16:51,600
Is it up, is it down, how do we share? 
It doesn't care. 

246
00:16:51,600 --> 00:16:54,210
It's got a very narrow view. 
So. 

247
00:16:54,210 --> 00:16:57,000
What it means is we can zoom in on this 
problem, right. 

248
00:16:57,000 --> 00:17:01,300
We can zoom in and focus and ignore 
everything else. 

249
00:17:02,740 --> 00:17:06,100
So the link layer basically asks 
questions like, you know, I've got some 

250
00:17:06,100 --> 00:17:10,660
data inside the computer and I want to 
send it out. 

251
00:17:10,660 --> 00:17:13,870
How do I encapsulate it? 
What if this is shared? 

252
00:17:13,870 --> 00:17:17,958
How do I deal with that? 
And common Link technologies that we see 

253
00:17:17,958 --> 00:17:23,780
are like Ethernet or WiFi or cable modem, 
DSL, satellite or optical. 

254
00:17:23,780 --> 00:17:28,320
These are all links layers of one form or 
another. 

255
00:17:28,320 --> 00:17:31,335
So if you're going back to this Ethernet 
link layer, which is one of our favorites 

256
00:17:31,335 --> 00:17:35,696
cause it's kind of ubiquitous. 
Other than wireless it is probably 

257
00:17:35,696 --> 00:17:37,880
Ethernet is the most ubiquitous link 
layer. 

258
00:17:41,240 --> 00:17:46,000
[SOUND] So, when the manufacturer builds 
an ethernet or a wireless adapter, they 

259
00:17:46,000 --> 00:17:50,700
actually build into it, which is probably 
right here. 

260
00:17:50,700 --> 00:17:55,620
No, it could be right here, they build 
into it a serial number. 

261
00:17:55,620 --> 00:17:58,660
So, they, they mark this as having a 
serial number. 

262
00:17:58,660 --> 00:18:01,884
And you can actually whether you're on 
Windows or Mac, you can work your way 

263
00:18:01,884 --> 00:18:07,470
down to find the serial number for your 
actual manufacturer piece of equipment. 

264
00:18:07,470 --> 00:18:09,830
So there's mine on the Mac. 
That's an example one on the Mac. 

265
00:18:09,830 --> 00:18:14,100
And that's an example one on the PC. 
They tend to be six two digit numbers 

266
00:18:14,100 --> 00:18:18,650
concatonated together often with colons 
or in this case with Windows it shows 

267
00:18:18,650 --> 00:18:23,630
dashes. 
And so this is a raspberry pie and all 

268
00:18:23,630 --> 00:18:27,726
the raspberry pies are going to actually 
have similar prefixes and then serial 

269
00:18:27,726 --> 00:18:32,820
numbers within that prefix. 
And so the raspberry pies get 

270
00:18:32,820 --> 00:18:35,920
manufactured, they come out of the 
manufacturing line with this sequence 

271
00:18:35,920 --> 00:18:39,672
number just kind of going chug chug chug, 
up up up up up. 

272
00:18:39,672 --> 00:18:43,020
And, then they get shipped to all corners 
of the world. 

273
00:18:44,440 --> 00:18:49,197
And so, these numbers are not the numbers 
for this to get across the world, all the 

274
00:18:49,197 --> 00:18:53,883
number, all these serial numbers at the 
link layer are good for are to get across 

275
00:18:53,883 --> 00:18:59,975
one connection, in case that connection 
is shared. 

276
00:18:59,975 --> 00:19:02,945
And if you were to plug this into a hub, 
and you're plugging other computers into 

277
00:19:02,945 --> 00:19:06,080
that same hub. 
Well then you're sharing that connection. 

278
00:19:06,080 --> 00:19:10,110
And this computer might see the traffic 
for that other computer. 

279
00:19:10,110 --> 00:19:14,142
And so we use the physical addresses so 
that this computer knows which of the 

280
00:19:14,142 --> 00:19:17,800
packets belong to it on the piece of 
wire. 

281
00:19:17,800 --> 00:19:21,050
So, wired ethernet or wifi certainly if 
you're sitting in a room with a bunch of 

282
00:19:21,050 --> 00:19:24,270
wifi computers. 
You're sharing the air. 

283
00:19:24,270 --> 00:19:28,113
So let's come up with rules how to share 
this, how to share nicely and how to 

284
00:19:28,113 --> 00:19:32,840
behave. 
So the way it works, ccc, is you 

285
00:19:32,840 --> 00:19:39,450
could...the ethernet could easily have a 
bunch of computers hooked to it right. 

286
00:19:39,450 --> 00:19:42,245
Cause its really shared, and so they're 
all sitting here, they're all talking 

287
00:19:42,245 --> 00:19:45,040
simultaneously. 
No. 

288
00:19:45,040 --> 00:19:47,820
But, we have a com, we have a pair of 
computers that want to talk. 

289
00:19:47,820 --> 00:19:50,900
So, it's not just one. 
It's got a bunch of folks sitting here. 

290
00:19:50,900 --> 00:19:53,728
[SOUND] Just draw a bunch of em. 
Bunches of folks. 

291
00:19:53,728 --> 00:19:57,622
They're all talking or all potentially 
talking [SOUND] and we gotta figure out 

292
00:19:57,622 --> 00:20:01,348
how in the shared medium. 
Like this is, think of this as a hub and 

293
00:20:01,348 --> 00:20:05,285
they're all connected into this hub 
including the two we want to talk. 

294
00:20:05,285 --> 00:20:09,800
They're all connected in the hub, 
including the two that we want to talk. 

295
00:20:09,800 --> 00:20:13,076
And how can these two make sure that the 
data goes, is, is the data that's sent 

296
00:20:13,076 --> 00:20:17,580
with the intention of going to this 
computer, this router. 

297
00:20:17,580 --> 00:20:22,214
How can it make sure that it gets there? 
Well, if it knows the address of the 

298
00:20:22,214 --> 00:20:27,690
sending and receiving unit It just 
encodes that, in the packet. 

299
00:20:29,360 --> 00:20:32,165
And that way, it sort of goes by all 
these folks. 

300
00:20:32,165 --> 00:20:36,143
Let me change colors here. 
The packet we send goes by all these 

301
00:20:36,143 --> 00:20:39,198
folks, and even if they all heard every 
one of the packets, they all know that it 

302
00:20:39,198 --> 00:20:42,253
doesn't belong to them because they all 
have a different number and this is the 

303
00:20:42,253 --> 00:20:48,495
only one that responds to it. 
So that allows them to share the wireless 

304
00:20:48,495 --> 00:20:53,935
or the wire, and, share the wireless to 
the wire and have it all work out for 

305
00:20:53,935 --> 00:20:58,726
them. 
So, [COUGH] so that's the idea, the link 

306
00:20:58,726 --> 00:21:01,913
layer. 
Now, again, remember this might only be 

307
00:21:01,913 --> 00:21:05,560
fifty feet, or fifty yards, or fifty 
meters. 

308
00:21:05,560 --> 00:21:08,228
And they can be meters. 
It's only 50 meters, but you still have 

309
00:21:08,228 --> 00:21:12,765
to share the network in that 50 meters. 
And then your router takes it off of that 

310
00:21:12,765 --> 00:21:17,890
and forwards it on a different link. 
And that's how we get across the country. 

311
00:21:17,890 --> 00:21:20,040
But that's the next layer up, and let's 
not worry about that for now. 

312
00:21:20,040 --> 00:21:24,493
So, the idea is think about one link, 
whether it's fiber optic or cable, or 

313
00:21:24,493 --> 00:21:28,566
wireless, or wifi. 
And so what are the kind of problems that 

314
00:21:28,566 --> 00:21:33,425
you have to solve on this link layer? 
Well, so one of the things that's cool 

315
00:21:33,425 --> 00:21:37,110
about many link layers is, like wireless 
and ethernet, is they can be shared, and 

316
00:21:37,110 --> 00:21:41,080
it makes it real easy just plug new 
computers in. 

317
00:21:41,080 --> 00:21:43,663
So you just sort of like, here's a hub, 
and you just plug another computer in, 

318
00:21:43,663 --> 00:21:47,446
and it's on the network. 
But they have to come up with a way to 

319
00:21:47,446 --> 00:21:52,400
avoid the chaos when they're sharing. 
And so, the way Ethernet does this is 

320
00:21:52,400 --> 00:22:00,485
with a technique called, Carrier Sense 
Media Access with Collision Detection. 

321
00:22:00,485 --> 00:22:04,985
And as you'll see, a lot of things we do 
on the internet have a lot to do with 

322
00:22:04,985 --> 00:22:10,360
courtesy. 
Meaning that we're just nice. 

323
00:22:10,360 --> 00:22:11,935
And if everybody's nice, it all works 
out. 

324
00:22:11,935 --> 00:22:15,781
kind of like driving in a car. 
Just everyone can't run through the stop 

325
00:22:15,781 --> 00:22:18,770
sign at the same time. 
Some of you gotta stop, got a green 

326
00:22:18,770 --> 00:22:23,972
light, your turn, my turn, whatever. 
This probably wouldn't work so well with 

327
00:22:23,972 --> 00:22:27,160
cars, because sometimes you do have a 
collision of packets. 

328
00:22:27,160 --> 00:22:30,980
You just have to wait. 
Packet collisions don't crush your car. 

329
00:22:30,980 --> 00:22:34,470
They just slow your data down. 
So, here we go. 

330
00:22:34,470 --> 00:22:39,170
This is basically carrier sense media 
access with collision detection. 

331
00:22:39,170 --> 00:22:42,020
The first thing you do if you want to 
send some data, say we got some data 

332
00:22:42,020 --> 00:22:45,370
inside our little computer and we want to 
send it out, knowing that there might be 

333
00:22:45,370 --> 00:22:49,660
other data going by The first thing we do 
is listen. 

334
00:22:51,600 --> 00:22:54,920
We listen to what's on there. 
If it's not silent we just wait until it 

335
00:22:54,920 --> 00:22:59,622
goes silent and then we start sending. 
So if someone's already using it, why 

336
00:22:59,622 --> 00:23:02,742
crash into their data and crush their 
data? 

337
00:23:02,742 --> 00:23:05,060
Because there's, it's shared, there's 
only one. 

338
00:23:05,060 --> 00:23:07,649
You can't both be sending at the same 
time. 

339
00:23:08,660 --> 00:23:12,776
So first you listen. 
Once it's silent you begin transmitting 

340
00:23:12,776 --> 00:23:16,000
data. 
[COUGH] And then what you do is you also 

341
00:23:16,000 --> 00:23:21,120
listen to your own data and if your own 
data is coming back, then it's sounding 

342
00:23:21,120 --> 00:23:29,680
pretty good. 
and And then if, if you. 

343
00:23:29,680 --> 00:23:32,956
If there is a collision, because there's 
a chance that two computers will want to 

344
00:23:32,956 --> 00:23:36,022
send at the same time and they'll 
collide. 

345
00:23:36,022 --> 00:23:39,850
Then what they have to do is back off.. 
And they have a sophisticated random 

346
00:23:39,850 --> 00:23:44,380
number calculation, so that they back off 
not always the same amount. 

347
00:23:44,380 --> 00:23:47,380
Each computer backs off a different 
amount, and they make it so that it's 

348
00:23:47,380 --> 00:23:50,255
fair. 
So that one computer's not always backing 

349
00:23:50,255 --> 00:23:52,100
the most off. 
So it's very fair. 

350
00:23:52,100 --> 00:23:59,150
So it's, when you detect a collision, you 
retransmit after a random backup. 

351
00:23:59,150 --> 00:24:03,395
First, you avoid collisions. 
But in the, in the rare case that you 

352
00:24:03,395 --> 00:24:07,994
have a collision, then you do this. 
And so, 

353
00:24:10,390 --> 00:24:18,312
[NOISE] I want to introduce you to the 
person who invented Ethernet, Ethernet. 

354
00:24:18,312 --> 00:24:23,520
Hmm, This is Robert Melcalf and he was 
working at Xerox, Palo Alto research 

355
00:24:23,520 --> 00:24:29,855
center, PARC, everyone calls it PARC. 
And they had, they were building what is 

356
00:24:29,855 --> 00:24:34,320
most considered the first computer, the 
Alto computers. 

357
00:24:34,320 --> 00:24:38,290
They were connecting line printers, or, 
fast printers to these. 

358
00:24:38,290 --> 00:24:46,050
Pate, Xerox was building the first, laser 
printers. 

359
00:24:46,050 --> 00:24:49,018
And they needed something faster. 
And so they just started building, and 

360
00:24:49,018 --> 00:24:52,580
they built this thing called Ethernet. 
Now it's a little different than the 

361
00:24:52,580 --> 00:24:54,956
Ethernet that we see, the first Ethernet 
that they built is a little different, 

362
00:24:54,956 --> 00:24:58,679
you can see a picture of it down here. 
If you ever go to Xerox Park and get in, 

363
00:24:58,679 --> 00:25:01,195
you'll go see this little museum they 
have. 

364
00:25:01,195 --> 00:25:06,025
it used a single piece of cable that ran 
along, they just ran it down the hallway, 

365
00:25:06,025 --> 00:25:12,850
and they would connect a tap in And then 
they would use that to send the data. 

366
00:25:12,850 --> 00:25:16,630
So it would go down the hallway and a tap 
come out at each office, and they were 

367
00:25:16,630 --> 00:25:20,540
truly sharing the media. 
This comment is not shared, except when 

368
00:25:20,540 --> 00:25:23,540
you plug it into a hub. 
That's what makes the shared. 

369
00:25:23,540 --> 00:25:28,160
it was inspired by an earlier wireless 
network where they were doing not 

370
00:25:28,160 --> 00:25:33,060
collision detection, but retransmission 
called Aloha, and a lot of early network, 

371
00:25:33,060 --> 00:25:38,380
packet network inspiration comes from the 
Alohanet in Uni-, comes from University 

372
00:25:38,380 --> 00:25:44,038
of Hawaii. 
And because they didn't have anything 

373
00:25:44,038 --> 00:25:47,027
except wireless, but they did have 
wireless, they did a lot of really cool 

374
00:25:47,027 --> 00:25:52,149
early research on wireless. 
And so let's go ahead and meet Bob 

375
00:25:52,149 --> 00:25:56,580
Metcalfe the inventor, one of the 
inventors of ethernet. 

