You are on page 1of 62

1

00:00:00,636 --> 00:00:04,226


>> You don't have to be in the network world
very long before you start hearing people say
2
00:00:04,226 --> 00:00:07,266
things like, "It sounds like
that's a Layer 2 issue,"
3
00:00:07,606 --> 00:00:09,856
or "Did you check the Layer 3 routing table?"
4
00:00:10,366 --> 00:00:12,796
or "That's definitely a layer 8 issue."
5
00:00:13,306 --> 00:00:17,466
So all of this goes into the
concept known as the OSI model,
6
00:00:17,466 --> 00:00:22,346
which really defines networking
as we know it in today's world.
7
00:00:22,346 --> 00:00:25,706
So I want to unpack in this
nugget what is the OSI model,
8
00:00:25,706 --> 00:00:27,996
not just - not just memorizing the layers.
9
00:00:27,996 --> 00:00:32,806
Anybody can do that, but understanding the
layers, and then it's even a step beyond that,
10
00:00:32,806 --> 00:00:38,796
to be able to say, I know how those layers
impact networks and how communication works.
11
00:00:38,996 --> 00:00:42,846
And I added, "Is there a conspiracy here
too," because of the last nugget when I talk
12
00:00:42,846 --> 00:00:44,176
about Cisco inventing the router 13
00:00:44,326 --> 00:00:47,266
there's a little conspiracy here,
but I'll try to keep it low.

14
00:00:48,016 --> 00:00:52,376
Then we'll get into the layers themselves of
OSI, what adds what, where it's being added,
15
00:00:52,376 --> 00:00:57,786
and then how network devices communicate, how
does this impact what we saw in the last nugget,
16
00:00:57,786 --> 00:01:00,086
which is the switches and the
routers, where do they operate?
17
00:01:00,086 --> 00:01:00,956
How do they work?
18
00:01:01,286 --> 00:01:03,046
All of that will be exposed here.
19
00:01:04,256 --> 00:01:07,686
But let's start off with what it is first.
20
00:01:07,856 --> 00:01:09,736
So what is the OSI model?
21
00:01:10,146 --> 00:01:13,066
A standard architecture defining
network communication.
22
00:01:13,416 --> 00:01:16,886
Rewind your mind back in time
to when IBM ruled the world,
23
00:01:16,886 --> 00:01:19,696
all the computers were quote unquote
"IBM compatible" if you will.
24
00:01:19,696 --> 00:01:28,096
If it was left to vendors to come up with these
standards, IBM would say, we have the IBM model,
25
00:01:28,406 --> 00:01:32,396
and all other computers and network
devices have to follow this model,
26
00:01:32,396 --> 00:01:35,516
but let's say Dell comes along or

Apple comes along and they say,


27
00:01:35,516 --> 00:01:37,406
"We want to create an Apple model."
28
00:01:37,406 --> 00:01:41,476
And so now you've got this issue where,
Apple computers talk to Apple computers,
29
00:01:41,516 --> 00:01:46,126
and IBM talks to IBM and Dell talks to
Dell, and there's no kind of standard
30
00:01:46,126 --> 00:01:49,476
that they all can apply to to
allow cross platform communication;
31
00:01:49,826 --> 00:01:51,576
thus, the OSI model was born.
32
00:01:51,956 --> 00:01:57,486
Now, the OSI model in itself is not a standard,
like you can't go into the Control Panel
33
00:01:57,486 --> 00:02:01,396
and say, "Oh, look, there's the transport
control panel in my Windows device."
34
00:02:01,896 --> 00:02:04,336
It's a framework -- I'm going
to jump straight down here -35
00:02:05,166 --> 00:02:07,606
it's really a standard to create standards.
36
00:02:07,606 --> 00:02:10,926
And without diving into everything
we're going to explore
37
00:02:10,926 --> 00:02:13,286
through this entire series,
let me give you an example.
38
00:02:13,766 --> 00:02:16,616
The network layer defines a type of addressing.
39
00:02:16,616 --> 00:02:18,496

Actually, you know what, I'm


going to go even lower than that.
40
00:02:18,666 --> 00:02:21,956
Datalink layer also defines addressing,
41
00:02:22,036 --> 00:02:26,996
which we're going to find two different
flavors of addresses that we run into.
42
00:02:26,996 --> 00:02:32,426
In the Ethernet world, we have
something known as Mac addresses.
43
00:02:33,596 --> 00:02:39,006
Now, let's say that somebody
comes up with something new -44
00:02:39,006 --> 00:02:42,886
and let me before I go there
-- the Mac is a standard.
45
00:02:42,976 --> 00:02:48,146
I mean, there is a standard written for how Mac
addresses should look, how they should be used,
46
00:02:48,146 --> 00:02:52,236
how network cards should handle
them and be applied to them
47
00:02:52,236 --> 00:02:53,836
when they're created at the manufacturer.
48
00:02:53,836 --> 00:02:55,166
I mean, there is a whole standard.
49
00:02:55,166 --> 00:02:57,246
So it's not like there's a Datalink standard
50
00:02:57,246 --> 00:03:00,056
that all network card manufacturers
have to adhere to -no, no, no.
51
00:03:00,306 --> 00:03:03,396
There's a Mac or there's an
Ethernet standard that exists
52

00:03:03,396 --> 00:03:06,226


at the Datalink layer that
all the vendors adhere to.
53
00:03:06,226 --> 00:03:08,926
So again, this is kind of a
standard to create standards.
54
00:03:08,926 --> 00:03:12,646
But if down the road, let's say,
I'm sitting here talking to you
55
00:03:12,646 --> 00:03:14,136
and all of a sudden, I'm like, wait a second.
56
00:03:14,136 --> 00:03:16,856
I pause the recording and
I go, "I've got an idea.
57
00:03:17,356 --> 00:03:20,376
I need to create the Jeremy
standard of communication."
58
00:03:20,376 --> 00:03:24,606
I grab my paper and start scribbling
down notes - that's it, it's brilliant,
59
00:03:24,606 --> 00:03:27,186
I've got an improved network
performance 500 times over.
60
00:03:27,456 --> 00:03:30,236
Bam, and I publish my own
little standard right here.
61
00:03:30,236 --> 00:03:31,276
That's totally fine.
62
00:03:31,276 --> 00:03:34,706
I could come up with the Jer standard,
that would be able to plug-in there
63
00:03:34,706 --> 00:03:40,186
at the Datalink layer, and if the world accepts
it, and all the network card manufacturers like,
64
00:03:40,186 --> 00:03:41,556
why didn't we think of that before?

65
00:03:41,556 --> 00:03:43,906
Let's all jump on board, and they
all apply to the Jer standard -66
00:03:44,146 --> 00:03:46,716
the beauty is we can change that out.
67
00:03:47,116 --> 00:03:51,236
All the network cards could start being
remanufactured, go by the Jer standard now -68
00:03:51,626 --> 00:03:54,756
but all of these other layers
above it can stay the same.
69
00:03:54,876 --> 00:03:56,816
Now, what's up there?
70
00:03:56,816 --> 00:04:03,226
We talked about the Datalink, which is
really kind of almost network card level.
71
00:04:03,356 --> 00:04:04,046
And what's up here?
72
00:04:04,046 --> 00:04:07,226
Well, you run into things like IP or TCP -73
00:04:07,226 --> 00:04:11,416
combine them together and there's
your TCP/IP and as you go up.
74
00:04:11,416 --> 00:04:15,786
So I could change out all the network cards in
the world, but never make a change to TCP/IP
75
00:04:15,786 --> 00:04:18,066
at all, because those are
upper layers above that.
76
00:04:18,066 --> 00:04:18,886
Does that make sense?
77
00:04:18,886 --> 00:04:23,166
So again, it's not a network layer standard;
it's a framework to create standards

78
00:04:23,166 --> 00:04:25,586
and IP is one of the standards
that have been developed.
79
00:04:25,946 --> 00:04:30,736
So that's where I'll stop that discussion,
because we will really spend the rest
80
00:04:30,736 --> 00:04:36,376
of the series exploring what standards are,
what they do, and how we can best use them.
81
00:04:36,376 --> 00:04:40,266
So this is also a way to break
down network communication.
82
00:04:40,496 --> 00:04:45,306
When I first started this nugget, I said, you
won't go long without hearing something like,
83
00:04:45,306 --> 00:04:47,416
"Oh, that's a layer 2 issue,"
or "that's a layer 3."
84
00:04:47,416 --> 00:04:50,796
It really helps you figure out
where's the problem in the network?
85
00:04:50,796 --> 00:04:55,876
It helps with trouble-shooting, it helps
with a more modular way of thinking
86
00:04:55,876 --> 00:05:00,206
versus somebody coming up and
screaming, "The network's down."
87
00:05:00,206 --> 00:05:04,756
I mean, when you hear that immediately,
my mind goes to the OSI model.
88
00:05:04,866 --> 00:05:05,826
I'm like, the network's down.
89
00:05:05,826 --> 00:05:06,726
What does that mean?
90

00:05:06,726 --> 00:05:08,976


I'm going, so what do you mean?
91
00:05:08,976 --> 00:05:10,986
Can you not get on the Internet.
92
00:05:10,986 --> 00:05:15,296
Or I always love it when my family calls,
they're like, "Jeremy, the Internet's down."
93
00:05:15,296 --> 00:05:17,646
I'm like, "Oh, a panic, worldwide crisis."
94
00:05:17,646 --> 00:05:20,346
The Internet's not down, it's the
connection to the Internet down.
95
00:05:20,556 --> 00:05:24,626
So I start working through this
and I say, "Oh, okay, let's think 96
00:05:24,626 --> 00:05:26,616
so are you saying, it's a physical issue?
97
00:05:26,616 --> 00:05:29,426
Let's just take my parents if they
call me -- "Oh, the Internet's down."
98
00:05:29,426 --> 00:05:30,716
"Oh, okay.
99
00:05:30,716 --> 00:05:32,266
Check your connection.
100
00:05:32,446 --> 00:05:35,306
Is your cable - do you see lights on the back?"
101
00:05:35,486 --> 00:05:37,486
Immediately I'm going to the physical layer.
102
00:05:37,486 --> 00:05:39,706
And then I started you know, thinking through.
103
00:05:39,706 --> 00:05:44,676
I'm like, "Okay, well, wait a sec,
if your connections are good" --

104
00:05:44,676 --> 00:05:49,006
so again, I'm already starting to bite my
tongue because I'm like, "well, let me 105
00:05:49,126 --> 00:05:51,636
let me take a methodical, middle layer approach.
106
00:05:51,636 --> 00:05:53,316
I'll do a ping and I'll do all this."
107
00:05:53,316 --> 00:05:58,846
So it really helps us define instead of
screaming, "The network is down," we can go oh,
108
00:05:58,896 --> 00:06:00,426
well, what about the network is down?
109
00:06:00,426 --> 00:06:01,676
Oh, a Datalink layer.
110
00:06:01,676 --> 00:06:03,706
Okay, there's something going
on with the switches.
111
00:06:03,706 --> 00:06:05,726
There's something going on with
the routers of the network layer.
112
00:06:06,026 --> 00:06:08,266
Again, really helps us to break it down.
113
00:06:08,996 --> 00:06:12,516
It's never good without leaving
with a conspiracy, right.
114
00:06:12,566 --> 00:06:17,066
It is a competing protocol to
see TCP/IP, or should I say,
115
00:06:17,396 --> 00:06:19,986
was, because the competition is over.
116
00:06:19,986 --> 00:06:21,076
And I shouldn't even say that.
117
00:06:21,376 --> 00:06:25,646

The OSM model was not competing;


the OSI protocol was.
118
00:06:26,126 --> 00:06:31,256
Most people don't know the OSI
protocol ever existed, but this model 119
00:06:32,156 --> 00:06:34,386
it wasn't just something somebody thought up.
120
00:06:34,386 --> 00:06:35,776
They're like, "Hey, let's
just think of a model."
121
00:06:36,076 --> 00:06:36,566
No, no, no.
122
00:06:36,716 --> 00:06:43,046
they thought of the model to describe
this protocol, developed in 1977,
123
00:06:43,046 --> 00:06:46,976
called the OSI protocol,
as a competition to TCP/IP.
124
00:06:47,416 --> 00:06:51,096
The irony is - you remember VHS and beta,
125
00:06:51,166 --> 00:06:55,196
the videocassettes before DVDs
came along -- which one was better?
126
00:06:55,936 --> 00:06:56,966
Beta, right.
127
00:06:56,966 --> 00:06:58,366
Which one won?
128
00:06:59,026 --> 00:07:04,396
VHS did, except in the recording studios
and movie studios and things like that,
129
00:07:04,396 --> 00:07:06,686
VHS won out in the consumer
- I don't know why that is.
130
00:07:06,686 --> 00:07:09,536

It was the lesser standard,


but the consumer shows,
131
00:07:09,536 --> 00:07:12,056
the Mafia got involved, I don't know, VHS won.
132
00:07:12,336 --> 00:07:14,256
Well, same thing back in the day.
133
00:07:14,256 --> 00:07:16,016
We had the OSI protocol and TCP/IP.
134
00:07:16,016 --> 00:07:18,746
It's kind of like, oh, which
one is it going to be?
135
00:07:18,746 --> 00:07:23,796
Well, ooh, looking at the addressing
of OSI it just was complex.
136
00:07:23,916 --> 00:07:25,206
It was hexadecimal.
137
00:07:25,206 --> 00:07:26,426
There was too many addresses.
138
00:07:26,426 --> 00:07:31,146
It was like, wow, why would we
ever need that many addresses,
139
00:07:31,246 --> 00:07:34,026
and thus, fate has a sense of humor.
140
00:07:34,336 --> 00:07:41,686
TCP/IP was chosen, and now, TCP/IP has exhausted
its IP addresses, and we need TCP/IP version 6
141
00:07:41,736 --> 00:07:48,786
to be released, which looks very similar to
the way OSI addressing looked way back in 1977.
142
00:07:48,786 --> 00:07:53,186
So the funny thing about all of
this is not only was TCP/IP chosen,
143
00:07:53,186 --> 00:07:56,056
which was the lesser protocol,

if I can say that.


144
00:07:56,236 --> 00:07:58,966
But TCP/IP had a model of its own.
145
00:07:59,616 --> 00:08:04,626
It's called the DoD model, Department
of Defense model, which people looked at
146
00:08:04,626 --> 00:08:06,916
and they said, "That just isn't very good."
147
00:08:06,916 --> 00:08:13,186
And so what they did was they took the model
of the better protocol and started using it
148
00:08:13,186 --> 00:08:16,126
to describe TCP/IP communication.
149
00:08:16,126 --> 00:08:17,556
Isn't that ironic for you?
150
00:08:18,866 --> 00:08:20,306
Now we know what it is.
151
00:08:20,396 --> 00:08:24,876
Let's take a look at what it does,
and understand this beautiful model.
152
00:08:25,676 --> 00:08:28,636
First off, isn't that weird?
153
00:08:28,816 --> 00:08:30,636
Here I am thinking, this beautiful -154
00:08:30,636 --> 00:08:36,066
most people are like, sunsets and
mountains, and I'm like ah, the OSI model.
155
00:08:36,386 --> 00:08:39,366
Wipe the tear from my eye.
156
00:08:40,016 --> 00:08:42,316
Top three layers - notice they're purple.
157
00:08:42,776 --> 00:08:44,496

Bottom three layers, notice they're red.


158
00:08:45,146 --> 00:08:48,726
The top three, the reason I changed
the color code on them a little bit is
159
00:08:48,726 --> 00:08:53,456
because these typically happen
before the data leaves the computer.
160
00:08:53,926 --> 00:08:58,116
Normally our network devices
don't care about that stuff.
161
00:08:58,116 --> 00:09:01,496
I'm saying normally, but that
is kind of a blanket statement.
162
00:09:01,496 --> 00:09:06,786
Normally our network devices are highly
focused on these bottom four layers.
163
00:09:06,996 --> 00:09:11,696
And so when you're looking at this, you
go, okay, where do I really want the depth?
164
00:09:11,696 --> 00:09:14,686
It's layers 1 through 4,
and that's the first thing.
165
00:09:14,686 --> 00:09:17,066
That's why knowing the numbers are key.
166
00:09:17,066 --> 00:09:21,066
It's numbered from the bottom
up, and if we got to get back,
167
00:09:21,066 --> 00:09:23,656
you got to memorize the layers
-- but that's just the beginning.
168
00:09:23,966 --> 00:09:30,146
The acronym I always remember is
please do not throw sausage pizza away,
169
00:09:30,516 --> 00:09:31,836
because that would be a travesty.

170
00:09:31,956 --> 00:09:36,106
So if you remember that, that will
be a good way to remember the layers.
171
00:09:37,036 --> 00:09:42,046
But it also explains my somewhat of a joke, if
you want to call it that, that at the beginning
172
00:09:42,366 --> 00:09:47,426
of the series where I said, a lot of
people might say, oh, it's a layer 8 issue.
173
00:09:47,426 --> 00:09:50,666
Well, that usually is describing
the user at the terminal.
174
00:09:50,666 --> 00:09:54,676
Layer 7 is where the OSM model stops, so there's
somebody saying, oh, it's a user problem.
175
00:09:54,676 --> 00:09:57,956
So that's - if you haven't heard
that joke, you will before long.
176
00:09:57,956 --> 00:10:00,726
So let's break it down.
177
00:10:00,726 --> 00:10:04,276
Let me first off -- I'm going
to hit this in two ways.
178
00:10:04,276 --> 00:10:07,976
One, I want to give you fly-by
description of what these layers do.
179
00:10:07,976 --> 00:10:12,016
And again, the fly-by version, because
I know if I just kind of go, okay,
180
00:10:12,016 --> 00:10:16,166
here's the laundry list, it's going to quickly
be forgotten - where I want to spend the time is
181
00:10:16,166 --> 00:10:19,616
where we watch data being sent
between clients and servers,
182

00:10:19,616 --> 00:10:21,436


and then we break it down one by one.
183
00:10:21,436 --> 00:10:23,246
So let's go piece by piece.
184
00:10:23,246 --> 00:10:25,166
First off, application layer.
185
00:10:25,166 --> 00:10:27,986
Now, again, let me set the paradigm.
186
00:10:28,246 --> 00:10:30,686
This is a standard of standards, right.
187
00:10:30,686 --> 00:10:34,496
The application layer, it's not like
when somebody builds a computer, they go,
188
00:10:34,496 --> 00:10:36,546
okay, I need to install the OSI model.
189
00:10:36,876 --> 00:10:39,446
No, no, no, they install
standards from the OSI model.
190
00:10:39,446 --> 00:10:41,596
So let's talk about the application
layer up top.
191
00:10:42,036 --> 00:10:48,436
The application layer is what the application
itself interfaces with if it's network aware.
192
00:10:49,136 --> 00:10:50,056
So let me define that.
193
00:10:50,056 --> 00:10:53,476
Let's say you have an application
like Solitaire on your computer.
194
00:10:53,856 --> 00:10:57,426
Not even going to look at the OSI
model, because you play it yourself,
195
00:10:57,426 --> 00:10:59,146
unless you're playing it online somehow.

196
00:10:59,766 --> 00:11:03,646
You're playing it yourself on the local
computer, so that's not an application
197
00:11:03,646 --> 00:11:07,316
that would interface with this
layer, but World of War Craft would.
198
00:11:07,716 --> 00:11:10,756
Half-Life, Counter- Strike -- whatever.
199
00:11:10,916 --> 00:11:13,766
I'm just thinking of online
games, but let's go productivity.
200
00:11:14,336 --> 00:11:19,976
Internet Explorer, Firefox, Google Chrome,
peer-to-peer file share transfers -201
00:11:19,976 --> 00:11:23,036
anything that is network-aware
interfaces with this.
202
00:11:23,036 --> 00:11:28,646
So when you're an application writer, let's
say I or you decide to develop an application.
203
00:11:28,646 --> 00:11:31,376
You're writing the code, this
is what my application does.
204
00:11:31,376 --> 00:11:34,006
It's a putt putt golf application
that works on the network -205
00:11:34,386 --> 00:11:40,346
you don't have to worry about here's how
my application communicates to the network,
206
00:11:40,346 --> 00:11:44,706
because there are well-known APIs -application programming interfaces -207
00:11:44,706 --> 00:11:48,626
that are written at the application
layer for Windows or for Apple or for --

208
00:11:48,626 --> 00:11:52,236
I should say OSX -- or for all the other
operating systems that are out there.
209
00:11:52,236 --> 00:11:57,506
So I write my putt putt golf application
to talk to that API which says, okay,
210
00:11:57,506 --> 00:11:59,356
I'm going to start this network communication.
211
00:11:59,616 --> 00:12:03,156
That way it saves me from having
to write all of the code of like,
212
00:12:03,156 --> 00:12:05,526
this is how you talk to the
network within Windows.
213
00:12:05,526 --> 00:12:06,166
No, no, no.
214
00:12:06,456 --> 00:12:08,516
Just let Windows do that.
215
00:12:08,516 --> 00:12:09,886
They've written the APIs for you.
216
00:12:10,156 --> 00:12:13,116
So the application layer is where the
application exists, and provides 217
00:12:13,426 --> 00:12:15,746
this provides network access
to the applications.
218
00:12:15,936 --> 00:12:16,866
Presentation layer.
219
00:12:16,866 --> 00:12:19,316
So let's say we've got an application.
220
00:12:19,316 --> 00:12:20,586
It's sending some data down here.
221
00:12:21,166 --> 00:12:24,856

The presentation layer generifies the data.


222
00:12:25,566 --> 00:12:27,856
Yes, I just made that word up.
223
00:12:27,856 --> 00:12:32,906
It turns it into well-known formats, like,
for example, if I'm communicating pictures,
224
00:12:32,906 --> 00:12:40,146
I might store them in jpeg or gif or png format,
which is a well-known format that's understood.
225
00:12:40,146 --> 00:12:47,036
So this is where a lot of our standards exist
for how to format things, htm, html, http -226
00:12:47,036 --> 00:12:51,316
those kind of things exist at
the presentation layer, html,
227
00:12:51,316 --> 00:12:55,676
a generic language of formatting
web pages online.
228
00:12:55,676 --> 00:12:58,636
You've got Java, you've got encryption -229
00:12:58,636 --> 00:13:03,906
there's a big one, encryption is
generic at the presentation layer.
230
00:13:03,906 --> 00:13:06,266
And when I say that, I know
some people are like, what?
231
00:13:06,896 --> 00:13:08,026
Generic encryption.
232
00:13:08,516 --> 00:13:09,776
Say no such thing.
233
00:13:09,776 --> 00:13:11,046
Encryption is secure.
234
00:13:11,276 --> 00:13:15,886
Well, yes, it is very secure but it is

generically secure, as in you wouldn't be able


235
00:13:15,886 --> 00:13:20,656
to surf the web securely and do online
bankings if there wasn't a generic
236
00:13:20,656 --> 00:13:24,006
or well-known industry-supported
encryption standard
237
00:13:24,006 --> 00:13:26,586
that anything could use, and it's very secure.
238
00:13:26,806 --> 00:13:29,966
Now, I'll talk about how that is later
- is that going to be the series?
239
00:13:29,966 --> 00:13:33,856
Maybe. That'd be fun to talk about -how generic encryption works really well,
240
00:13:34,166 --> 00:13:35,716
but that's all presentation layer.
241
00:13:36,186 --> 00:13:39,456
Session layer, just, this
one's probably the most bland.
242
00:13:39,456 --> 00:13:44,816
It starts and ends session, maintains to
make sure that the session is still active.
243
00:13:44,816 --> 00:13:46,696
Creates session IDs in the operating system.
244
00:13:46,696 --> 00:13:51,126
So this is all again, operating
system stuff, application stuff, okay.
245
00:13:52,516 --> 00:13:58,156
So now we come to the transport layer,
the first real layer that defines 246
00:13:58,156 --> 00:14:02,826
this is dealing with the network,
because it defines how the data is set.
247

00:14:03,416 --> 00:14:06,916


So right here your application will choose.
248
00:14:06,916 --> 00:14:10,026
Now, again, it's not you saying I want
it to be sent this way or that way -249
00:14:10,026 --> 00:14:13,656
it's the application that people who write
the application say, I want this to be sent.
250
00:14:13,656 --> 00:14:17,406
For instance, one example would
be reliably or unreliably.
251
00:14:18,096 --> 00:14:19,706
That seems like an easy decision.
252
00:14:19,706 --> 00:14:21,916
It's like, well, I want reliable.
253
00:14:22,176 --> 00:14:23,476
Well, what does that mean?
254
00:14:23,476 --> 00:14:27,846
Let me match this up to some protocols
we're going to see -- TCP versus UDP.
255
00:14:27,846 --> 00:14:30,586
And I say, well, I always
want reliability, don't I?
256
00:14:31,016 --> 00:14:31,876
Not necessarily.
257
00:14:32,216 --> 00:14:37,776
What reliability says is I'm going to send a
packet, and I want the other side to receive it,
258
00:14:37,776 --> 00:14:43,106
and to make sure that it receives it, I want it
to send an acknowledgement back to me saying,
259
00:14:43,186 --> 00:14:45,626
I got it, so I know that that packet got there.
260
00:14:46,086 --> 00:14:48,716

Well, I would say that's


huge for data applications.
261
00:14:48,716 --> 00:14:50,256
You absolutely want reliability.
262
00:14:50,666 --> 00:14:55,556
But what about applications like voice-over
IP, where you've got somebody talking
263
00:14:55,556 --> 00:14:57,596
on the phone to someone else over here?
264
00:14:57,956 --> 00:14:59,896
Well, this is real-time conversation.
265
00:14:59,896 --> 00:15:03,276
If a packet gets dropped and maybe
there's a glip in the conversation,
266
00:15:03,586 --> 00:15:07,446
there's no use in sending that at
a later time, because it's gone.
267
00:15:07,446 --> 00:15:09,886
The time is past.
268
00:15:09,886 --> 00:15:14,466
Or, like video, you're watching
video on your TV.
269
00:15:14,466 --> 00:15:18,636
Almost every TV works over a network
nowadays, as you're watching movie on Netflix
270
00:15:18,636 --> 00:15:23,256
or your cable provider's
streaming live media to you.
271
00:15:23,566 --> 00:15:25,186
And some data gets dropped.
272
00:15:25,186 --> 00:15:28,546
You might see the screen kind of get a little
jittery, if some data's dropped, but again,
273
00:15:28,546 --> 00:15:32,776

there's no sense in sending that later,


so that would be an unreliable choice.
274
00:15:32,776 --> 00:15:36,216
So for any real time communication,
unreliable's the way you want to go.
275
00:15:36,706 --> 00:15:42,546
Also with this layer you have application
separation, which really deals with ports.
276
00:15:45,456 --> 00:15:50,436
Yes, that's what it deals with, and that's
what we're going to talk about when I unpack.
277
00:15:50,436 --> 00:15:53,476
I've got a live scenario, I'm like, I
just don't even want to dive into that.
278
00:15:53,476 --> 00:15:56,836
So just remember, you run more than
one application and a time, right.
279
00:15:57,166 --> 00:15:59,506
That's the job of the transport layers,
280
00:15:59,506 --> 00:16:01,806
to keep all of that separate
for your network communication.
281
00:16:02,426 --> 00:16:03,866
Now, we come down to the network layer.
282
00:16:04,196 --> 00:16:06,946
This is where you have logical addressing.
283
00:16:08,846 --> 00:16:15,706
So logical addressing nowadays, boils down
to IP addresses, but it wasn't always so.
284
00:16:16,226 --> 00:16:20,266
Back in the day when I was in networking
and first learning networking myself,
285
00:16:20,266 --> 00:16:26,026
there was protocols like IPX/SPX,
AppleTalk, Net buoy, I mean,

286
00:16:26,026 --> 00:16:28,976
these protocols were widespread
and that was back in the day.
287
00:16:28,976 --> 00:16:31,136
I used to be -- I think I still am -288
00:16:31,136 --> 00:16:34,976
a certified Novell instructor
that I haven't taught for decades
289
00:16:34,976 --> 00:16:38,196
and I don't remember a thing about, but that's
- I mean, I remember back in the day being, dah,
290
00:16:38,196 --> 00:16:46,996
IPS/SPX -- I can't even say it -- IPS/SPX,
it's the future, TCP/IP, who needs it.
291
00:16:46,996 --> 00:16:48,266
So those were all gone.
292
00:16:48,536 --> 00:16:52,696
Those were standards that are long since
deprecated and now everything is IP.
293
00:16:52,756 --> 00:16:58,506
So a logical address to say, this
is where I want my data to go.
294
00:16:58,726 --> 00:17:00,546
Causes a lot of confusion.
295
00:17:01,156 --> 00:17:02,636
When I come down here and tell you that -296
00:17:02,636 --> 00:17:08,556
well, actually, the Datalink layer represents
the physical address, which is where I get
297
00:17:08,556 --> 00:17:12,776
to say, this is where I want my data to go.
298
00:17:14,186 --> 00:17:19,786
Wait a sec -- scratching a pad-- I will say
this, this has caused a lot of confusion

299
00:17:19,786 --> 00:17:21,586
for a lot of people learning networking.
300
00:17:21,586 --> 00:17:22,496
Well, what do you mean?
301
00:17:22,496 --> 00:17:24,056
So this is telling your data where to go?
302
00:17:24,266 --> 00:17:27,026
Uh-huh. And - and this is
telling your data where to go?
303
00:17:27,576 --> 00:17:30,086
Uh-huh. But it's different.
304
00:17:30,596 --> 00:17:38,816
There's a way of communicating within a network
that's different than communicating end to end.
305
00:17:39,156 --> 00:17:42,476
Let me give you a brief example that
I think will really demystify it.
306
00:17:42,856 --> 00:17:44,806
I've got my computer right here.
307
00:17:45,486 --> 00:17:48,666
I want to talk to that server over there.
308
00:17:49,386 --> 00:17:55,586
The way networks work, I can't just -- let's
say I want to send a message over that -309
00:17:55,586 --> 00:17:59,486
I don't know, add an entry to a
database or something like that.
310
00:17:59,486 --> 00:18:02,026
I'm saying 50 people showed
up for a conference today.
311
00:18:02,026 --> 00:18:04,966
So I type in 50 and hit the enter key,
so it's going to send the number 50.
312

00:18:05,236 --> 00:18:06,676


Well, that's the payload.
313
00:18:06,676 --> 00:18:08,366
That's the data that's actually being sent.
314
00:18:08,506 --> 00:18:13,946
But I can't just -- it's not like you know,
finding Nemo, where I just take 50 and I'm like,
315
00:18:13,946 --> 00:18:17,456
okay, go, Nemo, go, find your home.
316
00:18:17,606 --> 00:18:20,736
I have to tell it where to go, so I'm going
to have to say, well, you're going to go
317
00:18:20,736 --> 00:18:24,036
to the destination IP address of that server.
318
00:18:25,036 --> 00:18:28,186
But unfortunately, it doesn't work that way.
319
00:18:28,186 --> 00:18:31,986
Again, it's not like the fish where I
can just say, okay, now, go find you way.
320
00:18:32,436 --> 00:18:36,956
No, no, no, I actually have to say, I
want you to go right here to this router,
321
00:18:37,186 --> 00:18:40,846
because that router will know
how to get to that IP address.
322
00:18:41,266 --> 00:18:43,536
Ah, okay, now we have a problem -- wait a sec.
323
00:18:43,536 --> 00:18:47,346
I have to tell this number
50, we had 50 people show up.
324
00:18:47,346 --> 00:18:50,616
I'm typing that in my database
program, 50, hit the enter key.
325
00:18:50,866 --> 00:18:54,246

I have to tell it to go to this router,


because this router will know how to get
326
00:18:54,246 --> 00:18:59,136
to the IP address of where I'm really going,
thus, now, we're starting to see the need.
327
00:18:59,136 --> 00:19:03,966
Okay, wait a sec, we have two addresses,
one of them -- circle, circle -328
00:19:04,576 --> 00:19:09,496
has the ability to show me where
I go on my local area network -329
00:19:10,556 --> 00:19:14,906
the other one tells me where I go end-to-end.
330
00:19:16,286 --> 00:19:19,776
So think of the logical addressing
is this is going to be how you get
331
00:19:19,776 --> 00:19:23,406
to your final destination,
and that should never change.
332
00:19:23,716 --> 00:19:28,926
That's my destination; that's where I'm
going to -- that needs to stay the same.
333
00:19:28,926 --> 00:19:32,086
However, when we come to this
one, that's going to tell me how
334
00:19:32,086 --> 00:19:34,036
to get there from this network's perspective.
335
00:19:34,566 --> 00:19:37,856
But also remember, we have a network
here and we have a network here.
336
00:19:38,176 --> 00:19:41,116
So this one may change quite
a bit on our little journey.
337
00:19:41,116 --> 00:19:43,826
Again, more on that as we
start breaking this down.

338
00:19:43,876 --> 00:19:48,426
Physical layer, this is where
we have electrical signals.
339
00:19:48,426 --> 00:19:49,696
You get shocked.
340
00:19:49,696 --> 00:19:52,396
This is where ones and zeros prevail.
341
00:19:52,396 --> 00:19:54,576
We're actually sending data across the network.
342
00:19:54,576 --> 00:19:58,836
If you hear somebody say, oh, it's a physical
layer problem, I mean, where does your mind go?
343
00:19:58,836 --> 00:20:02,466
Something's broken, right, like
the cable is not plugged in,
344
00:20:02,466 --> 00:20:06,396
or somebody kicks the network cord -or I found this more times than once -345
00:20:06,606 --> 00:20:12,186
I have a network cable on the floor in my
office and I have a rolling chair and I just go,
346
00:20:12,186 --> 00:20:15,176
[rolling sound], roll right over that
network cable, destroy the network cable.
347
00:20:15,176 --> 00:20:19,976
So physical layer issues happen all the time,
so physical layer is just what it sounds like.
348
00:20:19,976 --> 00:20:24,586
So now let's talk about this
from a practical sense.
349
00:20:25,776 --> 00:20:34,486
I've got an online bank account, and let's
just say it is with BankofArizona.com -350
00:20:34,486 --> 00:20:37,406

I don't even know if there is such


a thing, but we'll make it up.
351
00:20:37,406 --> 00:20:43,416
So I'm going to go to my online bank account
and transfer $50 from my checking account
352
00:20:43,416 --> 00:20:45,756
to my savings account because
that's what I'd like to do.
353
00:20:45,916 --> 00:20:49,476
So I log into the -- let's kind
of fast forward a little bit -354
00:20:49,476 --> 00:20:53,106
I log into the website, my user name, password
-- I get to the point where I say, okay,
355
00:20:53,106 --> 00:20:59,266
transfer $50, so $50 is my transfer
-- from checking to savings.
356
00:20:59,656 --> 00:21:02,346
And I type in the 50 and I click submit.
357
00:21:02,346 --> 00:21:03,346
Okay, what happens?
358
00:21:03,346 --> 00:21:06,866
First things first, I am using a browser.
359
00:21:07,346 --> 00:21:14,316
It could be Internet Explorer, it could be
Firefox, it could be Chrome, down the list we go
360
00:21:14,316 --> 00:21:16,406
through all the different web
browsers that I could be using.
361
00:21:16,766 --> 00:21:21,336
those web browsers interface directly with
the application layer API, which says,
362
00:21:21,336 --> 00:21:24,856
I have data to send across the network.
363

00:21:24,856 --> 00:21:25,666


This is the data.
364
00:21:25,836 --> 00:21:29,416
This is the payload, if you will, that
I'm saying, this is my $50 transfer.
365
00:21:29,416 --> 00:21:33,006
So the first thing you know, this is
before it even leaves the application -366
00:21:33,166 --> 00:21:38,276
I'm going to format that into the
language that the web server understands.
367
00:21:38,276 --> 00:21:40,466
I mean, over here, we have a web server.
368
00:21:40,466 --> 00:21:42,846
I mean, it could be running IIS for Microsoft.
369
00:21:42,846 --> 00:21:48,706
Could be running Apache from -- well,
it's Open Source -- Linux community.
370
00:21:48,706 --> 00:21:52,426
It could be running Websphere from IBM.
371
00:21:52,426 --> 00:21:56,306
There's all these different web servers that
are out there, and you might be saying, okay,
372
00:21:56,306 --> 00:21:57,606
Jeremy, my God, what's your point?
373
00:21:57,736 --> 00:21:59,086
Well, my point is look at this.
374
00:21:59,366 --> 00:22:01,226
We've got all kinds of different web browsers,
375
00:22:01,706 --> 00:22:03,706
and we've got all kinds of
different web servers.
376
00:22:04,106 --> 00:22:06,616
What's to say that if I'm

using Chrome and looking


377
00:22:06,616 --> 00:22:09,066
at an IIS-supported website that it looks right?
378
00:22:09,376 --> 00:22:13,406
Or what's to say that if I'm using Firefox
looking at an Apache website, it looks right?
379
00:22:13,566 --> 00:22:16,866
Well, that's because there's standards
that are created to presentation layer.
380
00:22:17,076 --> 00:22:20,056
As a matter of fact, Microsoft is
the biggest bender of the rules -381
00:22:20,056 --> 00:22:24,746
not to throw them under the bus -- but with
Internet Explorer you'll come to some sites
382
00:22:24,746 --> 00:22:27,546
with Chrome or Firefox and it's like -- an -383
00:22:27,546 --> 00:22:30,826
sorry, this is an Internet
Explorer only website.
384
00:22:31,136 --> 00:22:37,076
Why? Because Microsoft has written
IIS in such a way for some languages
385
00:22:37,076 --> 00:22:39,376
that only Internet Explorer supports it.
386
00:22:39,376 --> 00:22:42,976
Now, those are becoming less and less and less,
because these other browsers are becoming more
387
00:22:42,976 --> 00:22:46,306
and more popular where Internet
Explorer used to rule the world.
388
00:22:46,516 --> 00:22:49,056
But all of this is handled
by the presentation layer.
389

00:22:49,576 --> 00:22:52,746


We've got standards that things
should be written to on this side,
390
00:22:52,816 --> 00:22:57,256
standards like active server pages,
standards like Java, standards like html,
391
00:22:57,256 --> 00:22:59,936
standards like blah, blah, blah, blah
-- this list could go on and on -392
00:22:59,936 --> 00:23:02,776
jpeg pictures, generic -- we're at a bank.
393
00:23:02,776 --> 00:23:05,176
This is obviously encrypted,
right, so encryption standards.
394
00:23:05,176 --> 00:23:11,516
So right now, our web program is taking our $50
transfer and let's just say it's encrypting it.
395
00:23:11,696 --> 00:23:16,896
It's formatting it in whatever the
web server has suggested that it uses,
396
00:23:16,896 --> 00:23:19,216
to send that $50 transfer back over.
397
00:23:19,546 --> 00:23:22,036
So moves down to session layer.
398
00:23:22,036 --> 00:23:24,946
Now, session layer doesn't have much to
do here because it's already started.
399
00:23:24,946 --> 00:23:28,436
We went to the website at some point, it stated
the session, maintains that session and so on.
400
00:23:28,436 --> 00:23:30,506
Okay, now we come down to the transport layer.
401
00:23:31,126 --> 00:23:34,506
Major action happening here
from the network perspective.

402
00:23:35,636 --> 00:23:41,116
We have to send this $50
transfer across the wire.
403
00:23:42,096 --> 00:23:43,186
First things first.
404
00:23:43,636 --> 00:23:48,266
Do you think that this would be a good
one for reliability or unreliable?
405
00:23:48,876 --> 00:23:55,786
All hands go up -- reliability, which would
be using -- choosing to use the TCP protocol.
406
00:23:55,786 --> 00:23:57,926
I want to know when I click the Submit button
407
00:23:57,926 --> 00:24:00,836
that that $50 transfer got
there, and it's happening.
408
00:24:00,836 --> 00:24:04,016
Like I need those $50 to go into savings.
409
00:24:04,016 --> 00:24:06,036
Maybe the crisis should be the other way.
410
00:24:06,036 --> 00:24:07,136
I need it in my checking.
411
00:24:07,136 --> 00:24:08,016
I need to buy something.
412
00:24:08,066 --> 00:24:12,306
So we're going to choose the TCP
protocol, but then we go one step further.
413
00:24:12,736 --> 00:24:23,806
TCP actually has a series of ports, matter
of fact 1 through 65,530, oh, is it 5 or 6?
414
00:24:24,416 --> 00:24:26,066
It's 5. I had to check.
415
00:24:26,066 --> 00:24:28,346

There's some things that are


6, some things that are 5.
416
00:24:28,696 --> 00:24:31,466
So 65,000 ports.
417
00:24:31,466 --> 00:24:33,016
Now, what does this mean?
418
00:24:33,156 --> 00:24:40,356
Well, the port defines what applications -- kind
of think of it like a tag for your application.
419
00:24:40,786 --> 00:24:42,856
So let's say it this way.
420
00:24:43,396 --> 00:24:46,156
This server might be running the web server.
421
00:24:47,536 --> 00:24:50,166
It might also be an e-mail server.
422
00:24:51,136 --> 00:24:55,836
It might also be an online gaming server.
423
00:24:56,176 --> 00:24:58,246
We don't know -- I mean,
Bank of Arizona, who's that?
424
00:24:58,376 --> 00:25:00,696
Who knows what they could be running over there.
425
00:25:00,696 --> 00:25:02,726
They could be running all kinds
of different services on there.
426
00:25:02,726 --> 00:25:09,486
So I want to know, when my $50 transfer goes
across the wire, that it's going to be going
427
00:25:09,486 --> 00:25:12,576
to the correct application on this side -428
00:25:12,576 --> 00:25:15,666
IIS or Apache or whatever web server
they're actively running over there.

429
00:25:15,796 --> 00:25:18,336
And it doesn't end up going to their
e-mail server, which would say,
430
00:25:18,336 --> 00:25:20,646
what am I doing with a $50 transfer?
431
00:25:21,126 --> 00:25:25,266
The way I designate that -- and I keep
saying "I," I being the application
432
00:25:25,266 --> 00:25:29,876
or I being the computer -- is by
putting a destination port on there.
433
00:25:29,876 --> 00:25:35,706
So it just so happens that web servers
use two very common destination ports.
434
00:25:35,786 --> 00:25:39,796
Port 80 is known as http.
435
00:25:39,796 --> 00:25:43,516
Every time you go to a website, your
web browser is actually squeezing it -436
00:25:43,516 --> 00:25:49,786
like you type in Google.com, your web
browser's actually doing behind the scenes,
437
00:25:49,786 --> 00:25:55,026
put a little :80 on there, so that when we go
to Google, we're accessing the web services
438
00:25:55,026 --> 00:26:00,426
on the Google server, not email services
or any of the other services I rattled out,
439
00:26:00,426 --> 00:26:02,676
but the web browser does that for
you; you don't have to know that.
440
00:26:02,926 --> 00:26:08,946
The other one that it uses is Port 443, which
is https, which is what it would do in our case,
441
00:26:08,946 --> 00:26:14,036

because we have a secure session,


encrypted session here with this web server,
442
00:26:14,276 --> 00:26:21,006
so I would actually tag onto the front of
this, destination port 443, destination.
443
00:26:21,006 --> 00:26:27,426
By the way, what I'm doing here, this
is a process -- notice encapsulation.
444
00:26:28,086 --> 00:26:33,686
So when I'm sending this $50 transfer,
behind the scenes it's actually adding data
445
00:26:33,686 --> 00:26:36,436
to the front of my little payload,
this is what I want to send.
446
00:26:36,436 --> 00:26:37,446
But again, it's not Nemo.
447
00:26:37,446 --> 00:26:39,036
We can't just say, go find your home.
448
00:26:39,166 --> 00:26:42,316
We have to add all this stuff to tell
it where it's going and how it's going
449
00:26:42,316 --> 00:26:44,206
and what it's going to do when it gets there.
450
00:26:44,466 --> 00:26:48,406
That's all -- remember I said in the previous
nugget when I was talking about the speed
451
00:26:48,406 --> 00:26:51,146
of the network -- this is the
overhead stuff that's being added
452
00:26:51,146 --> 00:26:54,566
to every single packet that's
being sent -- it's encapsulation.
453
00:26:54,566 --> 00:26:56,136
Now, wait a sec.
454

00:26:56,306 --> 00:26:59,736


That tells it where to go on this
computer or this server over here,
455
00:26:59,736 --> 00:27:03,576
but there's an often forgotten
piece, which is where it came from.
456
00:27:03,906 --> 00:27:07,136
I'm not talking the IP address,
like oh, that's you, Mr. Computer -457
00:27:07,336 --> 00:27:10,406
I'm talking about the application
on that computer.
458
00:27:10,866 --> 00:27:12,946
Chances are if you're like me,
you've got that ADD thing going
459
00:27:12,946 --> 00:27:15,816
to where you've got the web browser going
to where you've got the web browser going
460
00:27:15,816 --> 00:27:19,116
to your bank but you have
Pandora's open streaming music.
461
00:27:19,116 --> 00:27:22,576
You've got the little -- what do they call it
-- the waste of time bar in Windows on the right
462
00:27:22,576 --> 00:27:24,146
with the stock quotes, the weather -463
00:27:24,586 --> 00:27:28,866
all of these are network applications
that are constantly receiving data.
464
00:27:29,086 --> 00:27:32,776
So when I send my $50 transfer to
this web server over here, saying,
465
00:27:32,776 --> 00:27:39,966
I want $50 in my savings, and it comes back to
me, I want to make sure that my web browser,
466
00:27:39,966 --> 00:27:42,436

Chrome or Internet Explorer, says, success!


467
00:27:42,436 --> 00:27:46,406
Your $50 was transferred, and it's
not Pandora going $50 has been -468
00:27:46,406 --> 00:27:47,916
I mean, it wouldn't even understand it.
469
00:27:47,916 --> 00:27:49,086
I want to make sure it comes
from the right thing.
470
00:27:49,086 --> 00:27:52,746
So again, the application
adds a source port as well.
471
00:27:53,316 --> 00:27:54,756
It's a dynamic port.
472
00:27:54,756 --> 00:27:56,356
These are considered well-known.
473
00:27:57,686 --> 00:28:02,676
Matter of fact, ports 1 through
1024 are all considered well-known.
474
00:28:02,676 --> 00:28:03,686
Like, you can't touch those.
475
00:28:03,686 --> 00:28:07,196
Nobody touches those ports for new applications
476
00:28:07,196 --> 00:28:10,316
that they create unless they do all
these sophisticated applications,
477
00:28:10,316 --> 00:28:12,326
because those are all well-known.
478
00:28:12,496 --> 00:28:15,976
Up here, these are considered
dynamic ports, that Windows,
479
00:28:15,976 --> 00:28:19,806
when I open Internet Explorer,
it's going to generate for me.

480
00:28:19,876 --> 00:28:22,836
Matter of fact, I'm having a spontaneous moment.
481
00:28:22,936 --> 00:28:24,076
Let's do this for a second.
482
00:28:24,966 --> 00:28:28,086
I'm going to open a web browser on my computer.
483
00:28:28,086 --> 00:28:31,356
Let-s just -- I've got Google
Chrome, right there.
484
00:28:31,866 --> 00:28:36,796
And you know what, my home page is cbtnuggets,
which is what everybody's page should be.
485
00:28:37,146 --> 00:28:43,576
Just by doing that, I opened Google Chrome,
it created a session with cbtnuggets.com.
486
00:28:43,836 --> 00:28:44,926
Let's check the results.
487
00:28:44,926 --> 00:28:50,736
I'm going to go here and go to a command
prompt and type in the command netstat.
488
00:28:52,326 --> 00:28:56,716
netstat shows all the open
connections coming from my computer.
489
00:28:56,716 --> 00:29:01,636
Now, I'm looking here, I'm
going, whoa, wait a sec.
490
00:29:01,986 --> 00:29:09,426
I've got ec2 such and such,
I've got 80, going http -- what?
491
00:29:10,366 --> 00:29:11,906
Huh? What is this?
492
00:29:11,906 --> 00:29:13,056
How am I going to read this?

493
00:29:13,466 --> 00:29:20,416
Well, first off, when I went to cbtnuggest.com,
which is my home page, this is not a website
494
00:29:20,416 --> 00:29:21,986
that is just sitting on a server.
495
00:29:22,546 --> 00:29:26,096
Everything from this is probably
spread across many different servers.
496
00:29:26,096 --> 00:29:30,806
What you're actually coming to, if I could
draw -- and this is how most websites are.
497
00:29:31,056 --> 00:29:35,676
When you go to a website -- actually,
here, this will help show it even better.
498
00:29:35,676 --> 00:29:39,386
Let's go to the biggest waste of
time website in the world -- MSN.com.
499
00:29:39,386 --> 00:29:41,486
Holy cow, the iPhone 5 is out!
500
00:29:42,506 --> 00:29:43,756
That's something I have to look at.
501
00:29:43,756 --> 00:29:49,666
I'm not going to pause the recording; I'm
going to finish this, because let's look at -502
00:29:49,776 --> 00:29:51,676
this is news of the day, by the way.
503
00:29:51,676 --> 00:29:54,576
So MSN.com, I come here and I look, I go, okay,
504
00:29:54,576 --> 00:29:56,946
this little butterfly, MSN,
this came from a server.
505
00:29:56,946 --> 00:30:02,306
Matter of fact, if I go back here, and I hit the
up arrow, this thing will just scroll and scroll

506
00:30:02,306 --> 00:30:03,816
and scroll and scroll and scroll, scroll for -507
00:30:03,866 --> 00:30:06,666
it's kind of hanging, trying to figure
out what name these are and all that,
508
00:30:06,666 --> 00:30:11,026
but it will continue to scroll through all
kinds of different servers all over the place,
509
00:30:11,026 --> 00:30:16,766
because we've got this Buy Stocks, this
little pop star joining XFactor, gossip -510
00:30:16,766 --> 00:30:19,476
this image -- these all came
from a different server.
511
00:30:19,476 --> 00:30:23,556
If I scroll down, we've got the
NFL rookie, something or another.
512
00:30:23,556 --> 00:30:27,376
This really -- MSN.com, if you
want to know, is just a framework.
513
00:30:27,376 --> 00:30:30,216
Like the first server that
you hit, says, okay, this one,
514
00:30:30,396 --> 00:30:32,566
this picture comes from this server over here.
515
00:30:32,566 --> 00:30:34,686
This ad came from this server over here.
516
00:30:34,916 --> 00:30:38,386
And oh, by the way, these scrolling
pictures on here, that was actually fed
517
00:30:38,386 --> 00:30:42,536
by three different servers over here, so when
my Internet Explorer came here, it's like,
518
00:30:42,536 --> 00:30:44,406
hey, I'm just wanting one session.

519
00:30:44,586 --> 00:30:47,916
It got the feedback, no, you need to go
here and here and here and here and here,
520
00:30:47,916 --> 00:30:51,476
and that's why we come here to the
command prompt, and it's still going.
521
00:30:51,686 --> 00:30:55,306
It's still trying to find all the different
sessions that I'm using, because it's saying,
522
00:30:55,306 --> 00:30:59,566
okay, well, I was sent to this server to
get a web page using http and this server
523
00:30:59,566 --> 00:31:05,486
and this server and this server and this ser
-- notice, they all have this IP address:http.
524
00:31:05,576 --> 00:31:11,646
Now, Windows is very kind in that it
hides -- it should actually say, port 80,
525
00:31:11,646 --> 00:31:15,036
or right here it would say port 443 https,
526
00:31:15,036 --> 00:31:17,176
but you can see that we're
just getting spider-webbed
527
00:31:17,436 --> 00:31:19,456
to all of these different locations.
528
00:31:19,456 --> 00:31:26,246
Now, that's the foreign address, that's the
destination, so that's where we're going.
529
00:31:26,796 --> 00:31:30,266
On this side of things, I can see my computer.
530
00:31:30,266 --> 00:31:30,956
This is me.
531
00:31:31,056 --> 00:31:36,076
I have the IP address, 1723100.72.

532
00:31:36,076 --> 00:31:41,156
Notice I've got :490, :49, :50, :50 -- all
of these are different source port numbers,
533
00:31:41,536 --> 00:31:47,166
so when my web browser went to those websites
it actually got sent to many different websites,
534
00:31:47,166 --> 00:31:50,166
and generated all of these different
unique source port numbers -535
00:31:50,226 --> 00:31:55,546
each packet would have one
unique source port number,
536
00:31:55,546 --> 00:32:01,496
so when these web servers responded back,
my computer knows exactly where to put them.
537
00:32:01,956 --> 00:32:05,766
So if we were to look - if we were to
talk to this computer and somehow be able
538
00:32:05,766 --> 00:32:10,036
to peel this web page back, this tiger
right here would be able to say -539
00:32:10,036 --> 00:32:14,116
the tiger wouldn't say anteing but if we
could peel it back it would actually say,
540
00:32:14,116 --> 00:32:22,926
65.55.239.146:http is where this came from.
541
00:32:23,046 --> 00:32:28,366
And it came from the source in here of
this, so when tiger image got sent back,
542
00:32:28,596 --> 00:32:33,126
my web browser knew exactly what application to
send it to and where to put it on the web page.
543
00:32:33,126 --> 00:32:34,666
That comes into the web page formatting.
544

00:32:34,666 --> 00:32:37,366


So that's the idea of port numbers.
545
00:32:37,366 --> 00:32:42,466
So every single packet, my $50 transfer to the
bank, goes to a destination on the web server
546
00:32:42,696 --> 00:32:46,546
but always has a source that
the web server talks back to.
547
00:32:46,856 --> 00:32:47,836
Big layer, huh?
548
00:32:48,156 --> 00:32:49,436
That's the transport layer.
549
00:32:49,606 --> 00:32:55,456
Huge. The network layer deals with
the addressing, the IP addressing.
550
00:32:55,766 --> 00:32:59,656
So I went to Bank of Arizona -- I
don't even know if there is one.
551
00:32:59,656 --> 00:33:08,136
I went to Bank of Arizona -- oh, there is
one, great, Bankofarizona.com, nice and easy.
552
00:33:08,466 --> 00:33:17,986
But behind the scenes, my command prompt is
freezing here, so let's open another one.
553
00:33:18,016 --> 00:33:19,926
My computer used something called DNS.
554
00:33:21,026 --> 00:33:27,916
www.bankofarizona.com, because
we work in terms of names
555
00:33:28,196 --> 00:33:30,586
but computers work in terms of IP addresses.
556
00:33:30,586 --> 00:33:34,306
So when I went to Bankofarizona.com
and got this whole thing going,
557

00:33:34,466 --> 00:33:40,906


my computer found out that Bank of Arizona has
the IP address 21660188, and it filled that in
558
00:33:40,906 --> 00:33:43,226
as the destination IP address
of where I'm going.
559
00:33:43,226 --> 00:33:50,106
It said, I'm going to have the source IP
address of -- I forgot my IP, 172.3100.72 -560
00:33:50,106 --> 00:33:51,806
that's going to be where I came from.
561
00:33:51,976 --> 00:33:55,496
So that will be one layer of
addressing, where I originally started
562
00:33:55,496 --> 00:33:57,156
from and where I'm finally going.
563
00:33:58,006 --> 00:34:01,316
But you remember, my computer realizes
564
00:34:01,316 --> 00:34:04,336
that I'm not plugged right into
the Bank of Arizona server.
565
00:34:04,336 --> 00:34:08,896
Bank of Arizona is not sitting
on my home network.
566
00:34:09,506 --> 00:34:15,166
I need to go to my router, because it's the one
that knows the path to get to that IP address.
567
00:34:15,586 --> 00:34:21,406
So I use a different source and destination
address, and that's going to be a Mac address.
568
00:34:21,716 --> 00:34:26,336
So again, encapsulating this packet further, I
have the source IP address, which I'll just put,
569
00:34:26,336 --> 00:34:31,626
I think it was .172 or .72 or something
-- destination IP address, so what was it.

570
00:34:31,626 --> 00:34:36,696
It was .8 -- I'll just put dadadada.8.
571
00:34:36,696 --> 00:34:38,936
I do have the full address, I just
can't squeeze it all in there.
572
00:34:38,936 --> 00:34:45,596
So now I need a source and destination -source and destination Mac address as well,
573
00:34:45,996 --> 00:34:50,716
which is going to be my physical
computer -- it's still describing me -574
00:34:50,766 --> 00:34:55,016
I'm the original source of this -- but now
I'm going to say I need to get to the router,
575
00:34:55,016 --> 00:35:02,056
I need to get to my network because I
realize Bank of Arizona is not on my network.
576
00:35:02,296 --> 00:35:05,256
Those of you analysts are
going, how did the computer know
577
00:35:05,256 --> 00:35:07,346
that Bank of Arizona's not on its network?
578
00:35:07,346 --> 00:35:12,046
That's when we get into IP addressing, and
subnet masks and all of that kind of stuff,
579
00:35:12,046 --> 00:35:14,706
but for now I'm just going to say, it knows.
580
00:35:14,846 --> 00:35:20,046
So the computer knows and it realizes I have to
send it to my router, so what it's configured
581
00:35:20,046 --> 00:35:22,526
with -- take a look at this;
I'm going to do an IPconfig.
582
00:35:23,986 --> 00:35:30,896

My computer says this is my IP address but


I also know the IP address of my Gateway.
583
00:35:30,896 --> 00:35:31,826
This is my router.
584
00:35:31,826 --> 00:35:36,516
This is where I go if I want to get off my
network, so behind the scenes, when he realizes,
585
00:35:36,516 --> 00:35:39,326
I need to go to Bank of Arizona,
I need to get off of my network,
586
00:35:39,326 --> 00:35:44,986
he's going to do something called an
ARP, an Address Resolution Protocol -587
00:35:45,496 --> 00:35:49,956
to find out what is the Mac address,
what is the physical address,
588
00:35:49,956 --> 00:35:54,286
Datalink address of this router
so I can add that to the packet.
589
00:35:54,286 --> 00:36:00,156
Matter of fact, digging a little bit here,
I'm going to type in the command arp-a,
590
00:36:00,156 --> 00:36:05,366
which shows I figured this IP address,
which is my gateway, my router,
591
00:36:05,606 --> 00:36:10,036
has the physical address, a/k/a
Datalink address, of this.
592
00:36:10,036 --> 00:36:11,236
This is its Mac address.
593
00:36:11,546 --> 00:36:12,246
What is mine?
594
00:36:12,416 --> 00:36:19,886
I can do an IPconfig/all, and I
can say my address is right here.

595
00:36:21,966 --> 00:36:25,896
This is the IP -- sorry, the
Mac address of my network card.
596
00:36:26,236 --> 00:36:27,986
So let's put these two pieces together.
597
00:36:28,276 --> 00:36:31,196
I'm going to -- good grief,
this is just getting messy.
598
00:36:31,306 --> 00:36:38,456
Hang on. I'm going to this server right here.
599
00:36:38,456 --> 00:36:40,116
I'm coming -- I lost my $50.
600
00:36:40,606 --> 00:36:41,296
It's gone, man.
601
00:36:41,516 --> 00:36:43,856
Add all the headers there that we're tacking on.
602
00:36:44,056 --> 00:36:47,006
But I get to the point where I'm
saying the source IP address is me,
603
00:36:47,246 --> 00:36:51,006
and the destination IP address
is that server over here.
604
00:36:51,246 --> 00:36:52,126
That's where I'm going.
605
00:36:52,316 --> 00:36:55,066
But I know that I can't just
say Go Fish, Find your home.
606
00:36:55,066 --> 00:37:00,566
I'm going to say the source Mac address for
my local communication on this switch is
607
00:37:00,566 --> 00:37:06,166
that nice Mac address that I
highlighted and showed right here.
608

00:37:06,166 --> 00:37:11,126


That's going to be me, so I'll just
put 32 is the source Mac address.
609
00:37:11,126 --> 00:37:13,486
And the destination Mac address
is going to be here.
610
00:37:13,486 --> 00:37:15,076
That's going to be the router that it gets to.
611
00:37:15,496 --> 00:37:22,196
Now, the router is the ultimate bummer
job, because from there, comes down
612
00:37:22,196 --> 00:37:26,266
and physically sends my $50 transfer,
switch looks at it, sends it to the router.
613
00:37:26,556 --> 00:37:28,846
The router's like, oh, oh, I got some mail.
614
00:37:28,846 --> 00:37:32,656
It has my destination MAC
address in this header.
615
00:37:32,826 --> 00:37:33,556
It's for me.
616
00:37:33,756 --> 00:37:38,636
It opens it up and looks at the destination
IP address, which was somewhere around here,
617
00:37:38,966 --> 00:37:43,056
looks at the destination IP address,
it's like oh, this isn't for me.
618
00:37:43,566 --> 00:37:47,966
This is going to some server far, far away,
and by the way, that's the job of the router.
619
00:37:48,396 --> 00:37:52,856
The job of the router, its number one
goal, is to maintain a routing table.
620
00:37:53,376 --> 00:37:56,666
So it knows how to get around
the world at large.

621
00:37:56,666 --> 00:37:59,196
It knows where to send stuff
based on its IP address.
622
00:37:59,196 --> 00:38:00,796
So it goes, oh, it's not for me.
623
00:38:01,016 --> 00:38:05,086
It's going to the bank, so I'm going to
send it to this router, because I'm looking
624
00:38:05,086 --> 00:38:08,886
at my routing table, and it says,
your next destination is right here.
625
00:38:09,996 --> 00:38:14,176
Now, keep in mind, when it did
that, it totally changed networks.
626
00:38:14,436 --> 00:38:18,476
Instead of saying, it came from this source
MAC address and went to this destination,
627
00:38:18,666 --> 00:38:21,386
now it says, oh, okay, we're now coming from me.
628
00:38:21,426 --> 00:38:23,626
I'm the new source and you're the destination.
629
00:38:23,846 --> 00:38:25,516
And then every time we have a network change,
630
00:38:25,776 --> 00:38:28,146
this is the new source and
this is the new destination.
631
00:38:28,336 --> 00:38:31,336
And by the way, there's quite a
few routers in between these two.
632
00:38:31,546 --> 00:38:40,716
If I do a trace route -- I'm going to do -g,
it just goes faster -- www.bankofarizona.com.
633
00:38:40,786 --> 00:38:45,686
It goes through my router, it goes out my

ISP and each one of these represents a router


634
00:38:45,686 --> 00:38:46,926
that it's going through along the way.
635
00:38:46,926 --> 00:38:49,376
Say I'm going here, I'm going
there, I'm going here.
636
00:38:49,536 --> 00:38:54,326
So think of this, every single one of these
lines that come out, represent a router
637
00:38:54,326 --> 00:38:57,756
that I'm passing through on
my way to the Bank of Arizona.
638
00:38:58,046 --> 00:38:59,356
Isn't it amazing?
639
00:38:59,356 --> 00:39:00,026
Look at that.
640
00:39:00,316 --> 00:39:05,536
17 routers, and then it blocked
me, because they're like, okay,
641
00:39:05,536 --> 00:39:07,886
you've gone far enough, buddy, this is a bank.
642
00:39:07,886 --> 00:39:09,936
We're not going to let you
see beyond this point,
643
00:39:09,936 --> 00:39:12,556
so we don't even know how
many routers are past 17.
644
00:39:12,556 --> 00:39:14,116
That's actually surprising to me.
645
00:39:14,116 --> 00:39:18,816
That's a lot of routers that it's going through,
all the way over here to this Bank of Arizona.
646
00:39:19,056 --> 00:39:25,756
Every single time this happens, takes that

Datalink address, rips it off, and replaces it.


647
00:39:25,756 --> 00:39:27,366
Isn't that amazing?
648
00:39:27,366 --> 00:39:29,326
$50 is coming right here.
649
00:39:29,556 --> 00:39:31,146
IP addresses don't change.
650
00:39:31,146 --> 00:39:32,896
Now, I know some of you are
going, what about NAT?
651
00:39:32,896 --> 00:39:34,206
We'll talk about NAT later on.
652
00:39:34,486 --> 00:39:38,046
But every single one of these hops is
going to say, I'm going to go here first.
653
00:39:38,046 --> 00:39:41,606
Okay, rip off that source and
destination MAC address, replace it.
654
00:39:41,726 --> 00:39:44,086
Okay, now I'm going to go
here, rip off, replace.
655
00:39:44,326 --> 00:39:45,976
Now I'm going to go here, rip off, replace.
656
00:39:46,136 --> 00:39:55,516
17 minimum times it's going through this story
all the way to finally reach this destination.
657
00:39:56,386 --> 00:40:00,426
That's how the OSI model
is used in practical use.
658
00:40:00,426 --> 00:40:03,956
Now, on this side, he receives
it, the final server.
659
00:40:03,956 --> 00:40:08,036
He goes, okay, this is my MAC address --

looking at the header -- this is for me.


660
00:40:08,036 --> 00:40:11,626
It looks at the IP address and
he goes, oh, this is for me, too.
661
00:40:11,626 --> 00:40:13,686
It's not a router; it's going directly to him.
662
00:40:13,836 --> 00:40:15,286
He goes, great, that's fantastic.
663
00:40:15,286 --> 00:40:18,556
He then looks and goes, okay, it
looks like he's coming to Port 443.
664
00:40:18,696 --> 00:40:22,146
I'm going to pass that to Apache or
IIS because it's easier to write,
665
00:40:22,496 --> 00:40:25,886
and I'm now going to do my
application layer stuff.
666
00:40:25,886 --> 00:40:30,666
The database says take that $50, move
it from that field to that field,
667
00:40:30,666 --> 00:40:34,026
so now it's added to the savings
account, and I'm going to send
668
00:40:34,026 --> 00:40:36,566
that acknowledgement back saying
I got that, and then I'm going
669
00:40:36,566 --> 00:40:39,956
to send some information refreshing the
web page saying, "Successful transfer."
670
00:40:40,516 --> 00:40:41,596
Isn't this crazy?
671
00:40:43,056 --> 00:40:47,146
We're sitting here -- we go to
websites all the time, right?
672

00:40:47,146 --> 00:40:51,256


I click on Bank of Arizona, and I'm
greeted here by this fall money makeover
673
00:40:51,256 --> 00:40:53,436
and all this kind of data that's on the screen.
674
00:40:53,766 --> 00:40:59,086
There were probably 50, 60 different packets
used to generate this web page that went
675
00:40:59,086 --> 00:41:02,896
through 17 different routers that had -- every
single one of those packets had its source
676
00:41:02,896 --> 00:41:07,156
and destination MAC address changed,
and we have the audacity to be
677
00:41:07,156 --> 00:41:10,226
at some point, oh, this is so slow.
678
00:41:10,226 --> 00:41:13,586
You know, I'm clicking on collection
-- oh, man, that took awhile.
679
00:41:13,686 --> 00:41:17,836
It didn't really, but it's like
-- wow, that's not as fast as -680
00:41:17,836 --> 00:41:21,776
okay, this is a lot faster than I was
hoping it would be, but you get the point.
681
00:41:21,776 --> 00:41:23,086
A lot of times we're like, man, it's slow,
682
00:41:23,086 --> 00:41:27,156
but if you think about the behind the
scenes, what's really happening -- wow.
683
00:41:27,716 --> 00:41:32,046
It's surprising it's not taking a
good full day for that thing to show
684
00:41:32,046 --> 00:41:33,486
up with the amount of work that's happening.

685
00:41:33,826 --> 00:41:35,926
That's the OSI model in action.
686
00:41:35,926 --> 00:41:38,106
That's what's really happening
behind the scenes.
687
00:41:39,446 --> 00:41:42,736
Okay, last thing I want to
add to this before we wrap up,
688
00:41:43,086 --> 00:41:49,006
is we've seen some core network
devices -- primarily switches, routers,
689
00:41:49,006 --> 00:41:54,256
and I think on the opening nugget we saw the
wireless access points and clients and servers.
690
00:41:54,616 --> 00:41:56,876
Where do these work in the OSI model?
691
00:41:57,736 --> 00:42:00,896
Well, the switches, if you want
to know their primary role,
692
00:42:00,896 --> 00:42:03,086
they sit right here at the Datalink layer.
693
00:42:03,526 --> 00:42:04,146
Their goal?
694
00:42:04,766 --> 00:42:07,436
Learn physical addresses.
695
00:42:07,676 --> 00:42:09,266
Learn MAC addresses.
696
00:42:09,946 --> 00:42:13,656
They are committed -- when I plug
in a network cable into that switch,
697
00:42:13,786 --> 00:42:17,596
I will identify exactly what
physical address exists on there.
698

00:42:17,866 --> 00:42:20,226


So when this guy sends a message and says,
699
00:42:20,226 --> 00:42:22,866
I want to talk to that router,
the switch already knows.
700
00:42:22,866 --> 00:42:27,396
It says, oh, he's right at this port,
let me forward you over, because my job,
701
00:42:27,606 --> 00:42:32,706
my resume says I learn MAC addresses, and I
already have learned where that MAC address is.
702
00:42:33,026 --> 00:42:37,436
And before switches were, there was
this lovely device known as a hub.
703
00:42:38,516 --> 00:42:42,756
A hub actually worked at the
physical layer of the OSI model.
704
00:42:43,086 --> 00:42:47,436
It serves the same purpose of a switch,
which was to connect everything together
705
00:42:47,436 --> 00:42:52,026
and allow LAN-based communication, but it
didn't have the ability to learn MAC addresses.
706
00:42:52,026 --> 00:42:57,056
So anytime somebody would send something,
the hub just sent it out every single port.
707
00:42:57,436 --> 00:43:03,216
So when I sent my $50 transfer to the bank,
all of the different computers and servers
708
00:43:03,216 --> 00:43:05,216
and everything else plugged
into my local network here,
709
00:43:05,396 --> 00:43:08,586
would get my $50 transfer,
they would just ignore it.
710
00:43:08,806 --> 00:43:12,796

Now, if I had somebody malicious over here


-- this is my evil user in the cubicle -711
00:43:13,116 --> 00:43:17,126
with a program called Wire Shark on his
hand, he could start capturing that data.
712
00:43:17,336 --> 00:43:21,076
Now, it would be encrypted thanks to the
presentation layer, but he could you know,
713
00:43:21,076 --> 00:43:23,756
try and start working it, see if
he could break the encryption.
714
00:43:23,756 --> 00:43:28,576
There's a lot of dangerous stuff if you're using
hubs, which is why we don't use hubs anymore.
715
00:43:28,576 --> 00:43:31,666
Everything that we use is switches,
which are Datalink layer devices.
716
00:43:32,236 --> 00:43:34,456
Routers, if you said, what
layer do they work at?
717
00:43:34,456 --> 00:43:35,846
They work at multiple layers.
718
00:43:35,846 --> 00:43:39,686
I mean, but I would say their
specialty is right here.
719
00:43:40,326 --> 00:43:45,376
They sit right at the network layer, and
if you had like a drag and drop example
720
00:43:45,376 --> 00:43:47,306
where I was okay, where do we drag that device?
721
00:43:47,306 --> 00:43:48,426
He's a network device.
722
00:43:48,426 --> 00:43:49,696
He looks at IP addresses.
723

00:43:49,696 --> 00:43:53,336


That's his primary function, look at IP
addresses and figures out what to do with them.
724
00:43:53,566 --> 00:43:57,246
Says, I'm going to move that one from
here to here based on my routing table,
725
00:43:57,426 --> 00:43:59,196
which tells me where to send everything.
726
00:43:59,846 --> 00:44:05,336
Now, these devices, I mean, you can really
set these guys up with the application layer.
727
00:44:05,336 --> 00:44:10,436
Now, debatably so you could say,
well, doesn't this guy do -728
00:44:10,436 --> 00:44:13,066
put IP addresses on there and
doesn't he have a MAC address?
729
00:44:13,376 --> 00:44:14,166
Yes, he does.
730
00:44:14,166 --> 00:44:18,576
All of these devices, in some realm,
function at every layer of the OSI model.
731
00:44:18,576 --> 00:44:23,256
I'm just talking where they would specialize,
where you would know these devices to exist,
732
00:44:23,396 --> 00:44:26,376
it would be primarily -- I would
say the applications running
733
00:44:26,376 --> 00:44:30,516
on that computer are working primarily at
the application layer, but also remembering,
734
00:44:30,516 --> 00:44:34,496
it has an IP address, it communicates on
the network just like any device does.
735
00:44:34,836 --> 00:44:37,366
One more piece, I mentioned Wi-Fi.

736
00:44:38,956 --> 00:44:39,716
Where does that fit?
737
00:44:39,716 --> 00:44:41,826
It's an alternative right here.
738
00:44:41,886 --> 00:44:43,806
It serves the same function as a switch.
739
00:44:43,806 --> 00:44:48,156
Its goal is to connect devices to the
network and to learn MAC addresses;
740
00:44:48,156 --> 00:44:52,746
it just does so through airwaves rather than
physical network cables that are coming in.
741
00:44:53,516 --> 00:44:57,016
There's so much more to say here, but
remember, this is where it begins.
742
00:44:57,016 --> 00:44:59,176
This is the foundations of the OSI model.
743
00:44:59,546 --> 00:45:02,316
So let me hit the high points
of what we've discussed,
744
00:45:02,316 --> 00:45:06,116
but then give you a specific direction of
what I want you to do with this information.
745
00:45:06,826 --> 00:45:08,626
Number one, we saw what the OSI model was,
746
00:45:08,626 --> 00:45:11,156
a standard of standards,
allowing network communication.
747
00:45:11,286 --> 00:45:15,596
We saw the conspiracy behind it, which I
know a few high-level politicians claiming
748
00:45:15,596 --> 00:45:18,916
to invent the Internet were involved
in, but they chose TCP/IP instead.

749
00:45:18,916 --> 00:45:24,346
We saw getting to know the layers, what adds
what, what are the functions for each one
750
00:45:24,346 --> 00:45:26,926
of these layers, encapsulating
the packet all the way through.
751
00:45:27,536 --> 00:45:31,626
And then we saw how network devices
communicate using OSI and also
752
00:45:31,626 --> 00:45:35,456
where those network devices fit, where
does the switch fit in the stack,
753
00:45:35,456 --> 00:45:36,866
where does the router fit in the stack.
754
00:45:36,936 --> 00:45:39,346
So here's what I want you to do.
755
00:45:39,346 --> 00:45:42,566
I always like wrapping up each
nugget giving you an action plan,
756
00:45:42,566 --> 00:45:45,926
just because there's so much information.
757
00:45:46,016 --> 00:45:48,526
What's to say this doesn't just
evaporate out of your mind.
758
00:45:49,326 --> 00:45:51,836
I want you to find a friend.
759
00:45:52,596 --> 00:45:56,156
This is a weird goal I have for yoyu right now.
760
00:45:56,376 --> 00:46:00,376
I want you to find a friend, maybe
it's a wife, a husband, a friend,
761
00:46:00,376 --> 00:46:04,466
a dog, somebody you meet on the street.

762
00:46:04,466 --> 00:46:07,336
Just pull them aside and be like,
I want to show you something.
763
00:46:07,336 --> 00:46:12,536
Bring your phone, bring your iPad, bring your
computer, bring him to your computer and pull
764
00:46:12,536 --> 00:46:17,386
up a web browser and go to Google,
and say, you see that web page?
765
00:46:17,606 --> 00:46:19,646
I want to tell you how it got there.
766
00:46:19,806 --> 00:46:25,666
And then sit there and explain to them -- I
know, they're going to be like, I've got -- no.
767
00:46:25,666 --> 00:46:27,606
I'm sorry, I've handcuffed you to the chair.
768
00:46:27,606 --> 00:46:30,616
I don't know if you noticed that when
I said I have something to show you,
769
00:46:30,616 --> 00:46:32,306
but there was a snapping sound; you can't move.
770
00:46:32,536 --> 00:46:37,386
And I'm going to show you how this PC
communicates with that Google server,
771
00:46:37,386 --> 00:46:42,576
or whatever web page you went to, and describe
to them this OSI process the entire way through.
772
00:46:42,826 --> 00:46:45,716
I know you're going, he's joking.
773
00:46:45,886 --> 00:46:47,146
I am dead serious.
774
00:46:47,146 --> 00:46:51,566
This is one of those things that
will quickly evaporate your mind.

775
00:46:51,566 --> 00:46:55,146
I know this is kind of clich,
but one of the best ways
776
00:46:55,386 --> 00:46:58,096
to learn something is to teach it to somebody.
777
00:46:58,316 --> 00:47:02,936
I guarantee if you -- first, maybe
do a presentation to yourself.
778
00:47:02,936 --> 00:47:07,206
Make sure that you've got it down, because when
you try to explain it, you're going to go, ooh,
779
00:47:07,206 --> 00:47:09,126
wait a second, how did that work?
780
00:47:09,296 --> 00:47:10,066
Wait a second.
781
00:47:10,066 --> 00:47:16,956
Hang on. A lot of times -- because I've seen it
for many different students when I've taught,
782
00:47:16,956 --> 00:47:19,546
people go, oh, okay, that
make sense, great, I got it.
783
00:47:19,826 --> 00:47:24,436
But it didn't really soak in far enough to
where they really got it until they were put
784
00:47:24,436 --> 00:47:28,896
into a position where they had to display
that knowledge, and at that point,
785
00:47:28,896 --> 00:47:32,536
having to display the knowledge didn't
work because they never really confirmed
786
00:47:32,536 --> 00:47:33,686
that they got it in the first place.
787
00:47:33,686 --> 00:47:39,656
So seriously, find a friend and explain this
to them, then move on to the next nugget.

788
00:47:39,656 --> 00:47:42,816
I hope this has been informative for you,
and I'd like to thank you for viewing.