Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
0
00:00:00,000 --> 00:00:05,152
1
00:00:05,152 --> 00:00:07,360
DOUG LLOYD: If you watched our internet primer video,
2
00:00:07,360 --> 00:00:10,020
I left a bit of a cliffhanger by talking about the internet
3
00:00:10,020 --> 00:00:11,857
and how it's a system of protocols.
4
00:00:11,857 --> 00:00:14,190
Well, let's talk about the first of those protocols that
5
00:00:14,190 --> 00:00:15,710
actually comprises the internet.
6
00:00:15,710 --> 00:00:18,490
And interestingly enough, it's called the Internet Protocol,
7
00:00:18,490 --> 00:00:20,960
which we usually refer to as IP.
8
00:00:20,960 --> 00:00:24,810
>> So the internet, as I said, is an interconnected network, an internet,
9
00:00:24,810 --> 00:00:28,990
which is really just several networks woven together and agreeing somehow
10
00:00:28,990 --> 00:00:31,490
to communicate with one another.
11
00:00:31,490 --> 00:00:33,220
What is this somehow I'm talking about?
12
00:00:33,220 --> 00:00:34,720
Well, this is the Internet Protocol.
13
00:00:34,720 --> 00:00:39,190
This dictates how information is transmitted from point A to point B.
14
00:00:39,190 --> 00:00:43,410
And this is sort of a condition of joining the network of the internet
15
00:00:43,410 --> 00:00:45,830
is agreeing to follow this protocol when information needs
16
00:00:45,830 --> 00:00:49,330
to be moved from point A to point B.
17
00:00:49,330 --> 00:00:51,700
>> So at the very end of that internet primer video,
18
00:00:51,700 --> 00:00:55,320
I showed this image of what the internet was.
19
00:00:55,320 --> 00:00:58,649
And on a small scale, this is actually probably pretty accurate.
20
00:00:58,649 --> 00:01:01,190
This might be how three networks actually talk to each other.
21
00:01:01,190 --> 00:01:02,570
But it's a bit misleading.
22
00:01:02,570 --> 00:01:04,845
And the reason it's a bit misleading is because-- if I
23
00:01:04,845 --> 00:01:07,220
just number the networks for the sake of convenience here
24
00:01:07,220 --> 00:01:10,350
and we get rid of everything else and just focus on the networks--
25
00:01:10,350 --> 00:01:13,750
it's a bit misleading because it implies that all three network have
26
00:01:13,750 --> 00:01:15,280
a connection to one another.
27
00:01:15,280 --> 00:01:16,365
>> One is connected to two.
28
00:01:16,365 --> 00:01:17,610
Two is connected to three.
29
00:01:17,610 --> 00:01:18,990
And three is connected to one.
30
00:01:18,990 --> 00:01:20,823
And when I talk about a connection here, I'm
31
00:01:20,823 --> 00:01:23,920
talking about a physical, wired connection.
32
00:01:23,920 --> 00:01:25,170
We do have wireless.
33
00:01:25,170 --> 00:01:28,390
But it's really impractical for data to be transmitted wirelessly
34
00:01:28,390 --> 00:01:29,440
over a large scale.
35
00:01:29,440 --> 00:01:35,200
And so at some point, we really do rely on wired technology-- telephone wires,
36
00:01:35,200 --> 00:01:39,980
fiber optic wires, various technologies that are physically connecting
37
00:01:39,980 --> 00:01:41,560
point A to point B.
38
00:01:41,560 --> 00:01:44,110
>> And on a small scale like this-- this might be accurate,
39
00:01:44,110 --> 00:01:46,480
but as the image gets a little bigger, let's now
40
00:01:46,480 --> 00:01:49,410
imagine we have six different networks.
41
00:01:49,410 --> 00:01:52,740
If that's true, now we have something like this for every network
42
00:01:52,740 --> 00:01:55,100
to be connected to every other network.
43
00:01:55,100 --> 00:01:58,540
And if you look, every network has five arrows connected to it.
44
00:01:58,540 --> 00:02:01,450
So everything is connected to every other network.
45
00:02:01,450 --> 00:02:05,840
>> We only have six networks here, and already look at how much wiring
46
00:02:05,840 --> 00:02:08,630
we have to employ, right?
47
00:02:08,630 --> 00:02:12,650
And the internet consists of a lot more than six networks.
48
00:02:12,650 --> 00:02:17,410
We can't afford to wire each network to each other network,
49
00:02:17,410 --> 00:02:20,940
especially considering some of these networks span oceans, right?
50
00:02:20,940 --> 00:02:23,810
If we're trying to connect to a network in Asia or in Europe,
51
00:02:23,810 --> 00:02:27,502
we're going to have to span an entire ocean.
52
00:02:27,502 --> 00:02:29,460
We're going to need to use wires at some point,
53
00:02:29,460 --> 00:02:33,900
but we want to minimize the number of wires we actually use.
54
00:02:33,900 --> 00:02:36,690
We don't want to send a million wires across the ocean,
55
00:02:36,690 --> 00:02:40,700
because they cost millions of dollars apiece to lie down.
56
00:02:40,700 --> 00:02:44,430
And so rapidly, we wouldn't be able to afford the internet anymore.
57
00:02:44,430 --> 00:02:47,080
So we have to have another way for every network
58
00:02:47,080 --> 00:02:49,730
to talk to every other network or else we
59
00:02:49,730 --> 00:02:51,784
have pieces of the internet that are disconnected
60
00:02:51,784 --> 00:02:53,200
from other pieces of the internet.
61
00:02:53,200 --> 00:02:55,150
And that's not what we want.
62
00:02:55,150 --> 00:02:57,890
But we don't want to have them all wired together.
63
00:02:57,890 --> 00:03:00,760
>> And this is where routers come back into play.
64
00:03:00,760 --> 00:03:02,870
We can use routers in the following way.
65
00:03:02,870 --> 00:03:05,150
What if instead of every network being physically
66
00:03:05,150 --> 00:03:09,700
connected to every other network, we had these intermediary pieces, where
67
00:03:09,700 --> 00:03:12,460
the networks were connected to these intermediaries, which
68
00:03:12,460 --> 00:03:14,840
are connected to a few networks.
69
00:03:14,840 --> 00:03:19,290
So instead of having one connect to two, three, four, five, six, maybe one
70
00:03:19,290 --> 00:03:21,360
connects to a router, which maybe connects
71
00:03:21,360 --> 00:03:23,840
to one or two of those networks, but also
72
00:03:23,840 --> 00:03:25,850
maybe connects to other routers, which also
73
00:03:25,850 --> 00:03:28,510
will connect to those other networks.
74
00:03:28,510 --> 00:03:31,160
>> And the router's job is-- it contains information
75
00:03:31,160 --> 00:03:34,620
called a routing table that dictates where do
76
00:03:34,620 --> 00:03:37,250
I go if I see a particular IP address?
77
00:03:37,250 --> 00:03:41,080
If I see an IP address starting with four, I'm going to go this way.
78
00:03:41,080 --> 00:03:45,250
If I seen IP address starting with a 12, I'm going to go that way.
79
00:03:45,250 --> 00:03:49,230
We don't need to be connected physically to network number four
80
00:03:49,230 --> 00:03:52,010
or network number 12 in this example.
81
00:03:52,010 --> 00:03:53,941
We just know generally where we want to go.
82
00:03:53,941 --> 00:03:57,190
And if you think about it, this is sort of similar to the concept of recursion
83
00:03:57,190 --> 00:03:59,445
that we talked about when we were talking about it
84
00:03:59,445 --> 00:04:04,060
in C. I'm not going to connect you to exactly where you want to go.
85
00:04:04,060 --> 00:04:08,130
I'm just going to move you one step closer to where you want to go.
86
00:04:08,130 --> 00:04:11,739
And I'll let somebody else deal with solving the rest of the problem.
87
00:04:11,739 --> 00:04:14,780
I'll just solve this little piece of the problem and defer the rest of it
88
00:04:14,780 --> 00:04:15,940
to somebody else.
89
00:04:15,940 --> 00:04:19,240
So routing information is actually kind of similar to recursion.
90
00:04:19,240 --> 00:04:24,010
If that's a concept that you understand well, maybe that analogy would help.
91
00:04:24,010 --> 00:04:26,950
>> So let's take a look at this networking example
92
00:04:26,950 --> 00:04:30,130
again and assume that, again, we're going to use those same six
93
00:04:30,130 --> 00:04:31,470
networks, one through six.
94
00:04:31,470 --> 00:04:34,220
So let's just say that every IP address on network one
95
00:04:34,220 --> 00:04:36,200
starts with one dot something.
96
00:04:36,200 --> 00:04:38,800
And we'll say that there's some other thing that
97
00:04:38,800 --> 00:04:42,110
deals with how all the systems are connected to network one.
98
00:04:42,110 --> 00:04:46,000
We just care about connecting all of those networks together in an internet.
99
00:04:46,000 --> 00:04:49,350
So every device that is connected to network one
100
00:04:49,350 --> 00:04:53,460
has an IP address that starts with one dot and then three other numbers.
101
00:04:53,460 --> 00:04:56,300
>> This is a generalization of the way things actually work.
102
00:04:56,300 --> 00:04:58,260
It's quite a bit more precise than this.
103
00:04:58,260 --> 00:05:00,760
But this should give you a general idea of what the Internet
104
00:05:00,760 --> 00:05:02,637
Protocol is actually doing.
105
00:05:02,637 --> 00:05:04,220
So this was the diagram we had before.
106
00:05:04,220 --> 00:05:06,410
This was the system that was not sustainable.
107
00:05:06,410 --> 00:05:07,760
Even six, this might be OK.
108
00:05:07,760 --> 00:05:11,990
But if we get to 10 or 20 or 50, we're going to be lying a lot of wires.
109
00:05:11,990 --> 00:05:15,139
And 50 is still also not even the tip of the iceberg
110
00:05:15,139 --> 00:05:16,680
as to the number of networks we have.
111
00:05:16,680 --> 00:05:18,510
So this model is unsustainable.
112
00:05:18,510 --> 00:05:20,660
We can't stick with this.
113
00:05:20,660 --> 00:05:23,200
>> So let's instead adopt this model where we get rid
114
00:05:23,200 --> 00:05:28,030
of all the wires between the networks and we add routers.
115
00:05:28,030 --> 00:05:30,210
So these yellow boxes represent routers.
116
00:05:30,210 --> 00:05:32,550
And their job is to move information generally
117
00:05:32,550 --> 00:05:36,040
closer to where it's supposed to go.
118
00:05:36,040 --> 00:05:40,330
And maybe these are the connections that these networks have.
119
00:05:40,330 --> 00:05:43,670
And maybe these are the tables that are built into the routers.
120
00:05:43,670 --> 00:05:47,870
>> So if we just start by looking at network one, for example,
121
00:05:47,870 --> 00:05:50,450
basically what it says is if I ever see an address that
122
00:05:50,450 --> 00:05:54,300
doesn't start with a one-- that's what the exclamation point one or the bang
123
00:05:54,300 --> 00:05:58,550
one there, not one-- I'm going to pass it off to a router.
124
00:05:58,550 --> 00:06:00,680
And from there, the router can make a decision.
125
00:06:00,680 --> 00:06:04,570
The router says if I see a one, I'm going to move to network number one.
126
00:06:04,570 --> 00:06:07,610
That's the green arrow heading to the left out of that top left box.
127
00:06:07,610 --> 00:06:09,660
>> If I see a two-- that's the arrow sort of heading
128
00:06:09,660 --> 00:06:11,950
to the top right towards the purple network--
129
00:06:11,950 --> 00:06:14,920
if I see an IP address starting with a two,
130
00:06:14,920 --> 00:06:16,920
I'm going to go towards the two network.
131
00:06:16,920 --> 00:06:21,250
If I see a three, a four, a five, or a six-- that's that red arrow coming out
132
00:06:21,250 --> 00:06:25,800
of the top left router-- I'm not connected to three, four, five, or six.
133
00:06:25,800 --> 00:06:28,897
But I know somebody who is or who's a little bit closer to there.
134
00:06:28,897 --> 00:06:31,230
So I'm just going to say, every time I see an IP address
135
00:06:31,230 --> 00:06:33,810
starting with three, four, five, or six, I'm just
136
00:06:33,810 --> 00:06:35,250
going to send it to that router.
137
00:06:35,250 --> 00:06:38,090
So I'll move it a little closer to where it's supposed to go and let
138
00:06:38,090 --> 00:06:39,830
that router deal with the problem.
139
00:06:39,830 --> 00:06:42,980
>> And as you can see-- if you wanted to pause here and trace--
140
00:06:42,980 --> 00:06:47,600
you can get to every other point in the network from wherever you are.
141
00:06:47,600 --> 00:06:50,190
All six networks can still connect to every other network
142
00:06:50,190 --> 00:06:52,250
but they're not physically connected anymore.
143
00:06:52,250 --> 00:06:54,046
They're now these intermediate steps.
144
00:06:54,046 --> 00:06:56,170
Now, of course there's a trade off of speed, right?
145
00:06:56,170 --> 00:06:58,240
If one was directly connected to six, we wouldn't
146
00:06:58,240 --> 00:07:00,390
have to go through two routers along the way.
147
00:07:00,390 --> 00:07:03,377
So we may be able to get the connection a little bit faster.
148
00:07:03,377 --> 00:07:05,210
But maybe that trade-off is worth it, right?
149
00:07:05,210 --> 00:07:09,850
If it's going to be so expensive in terms of actual cost, dollars
150
00:07:09,850 --> 00:07:13,150
and cents, to physically wire all these networks together,
151
00:07:13,150 --> 00:07:16,150
maybe a little bit of a slowdown in speed is OK.
152
00:07:16,150 --> 00:07:18,530
We can tolerate that.
153
00:07:18,530 --> 00:07:22,490
>> So again, in that example we were just talking about, none of the networks
154
00:07:22,490 --> 00:07:24,086
directly connect to each other all.
155
00:07:24,086 --> 00:07:25,960
There could have been-- maybe in that example
156
00:07:25,960 --> 00:07:28,659
we could have made it so that maybe network one and two were
157
00:07:28,659 --> 00:07:29,450
directly connected.
158
00:07:29,450 --> 00:07:30,410
And that would be OK.
159
00:07:30,410 --> 00:07:33,040
Some networks are physically connected to other networks.
160
00:07:33,040 --> 00:07:34,940
But they're not all connected to each other.
161
00:07:34,940 --> 00:07:37,360
They rely on the routers-- in this particular example--
162
00:07:37,360 --> 00:07:40,899
to distribute the communication from point A to point B.
163
00:07:40,899 --> 00:07:43,190
On a small scale-- like what we're talking about here--
164
00:07:43,190 --> 00:07:45,850
this configuration actually might be more inefficient than just
165
00:07:45,850 --> 00:07:47,420
having direct connections.
166
00:07:47,420 --> 00:07:52,547
But on a large scale, we can scale the system a lot better.
167
00:07:52,547 --> 00:07:55,130
It's really going to reduce our cost of network infrastructure
168
00:07:55,130 --> 00:07:59,450
to have intermediary routers whose job it is to move traffic from the sender
169
00:07:59,450 --> 00:08:03,500
to the receiver, from point A to point B, as opposed to wiring everybody
170
00:08:03,500 --> 00:08:05,320
together.
171
00:08:05,320 --> 00:08:07,380
>> So let's take a look at an example of information
172
00:08:07,380 --> 00:08:09,220
traveling using this Internet Protocol.
173
00:08:09,220 --> 00:08:15,250
Let's say that I am physically located at IP 1.208.12.37
174
00:08:15,250 --> 00:08:17,450
so I exist somewhere on the one network.
175
00:08:17,450 --> 00:08:19,260
And I want to send a message to you.
176
00:08:19,260 --> 00:08:23,085
And you're on the five network at 5.188.109.14.
177
00:08:23,085 --> 00:08:26,210
Your IP address specifically doesn't matter, but in this particular example
178
00:08:26,210 --> 00:08:29,740
we're talking about this generalization of what the internet protocol is all
179
00:08:29,740 --> 00:08:30,429
about.
180
00:08:30,429 --> 00:08:32,720
You're on the five network, and I'm on the one network.
181
00:08:32,720 --> 00:08:36,309
As you can see, we're not connected to each other at all.
182
00:08:36,309 --> 00:08:37,335
>> So I start out.
183
00:08:37,335 --> 00:08:38,710
And I want to send you a message.
184
00:08:38,710 --> 00:08:41,650
And so somehow I communicate that message to the router.
185
00:08:41,650 --> 00:08:44,039
The router is the one that actually has the IP address.
186
00:08:44,039 --> 00:08:45,955
And it's looking at where it's supposed to go.
187
00:08:45,955 --> 00:08:47,655
We're going to five dot something.
188
00:08:47,655 --> 00:08:49,780
So now I'm going to start using my-- or the router,
189
00:08:49,780 --> 00:08:53,370
rather, is going to start using its router table to pass information along.
190
00:08:53,370 --> 00:08:59,149
It sees that five is not one, so it says I'm going to pass it to this guy.
191
00:08:59,149 --> 00:09:00,690
Then this guy has to make a decision.
192
00:09:00,690 --> 00:09:01,520
Where am I going to go?
193
00:09:01,520 --> 00:09:03,705
Well, it's not a one, so I'm not going to move to the one network.
194
00:09:03,705 --> 00:09:04,770
And it's not a two.
195
00:09:04,770 --> 00:09:06,478
I'm not going to move to the two network.
196
00:09:06,478 --> 00:09:07,410
It starts with a five.
197
00:09:07,410 --> 00:09:09,500
I'm not connected to five, this router says.
198
00:09:09,500 --> 00:09:12,950
And so I'm just going to pass it off to-- I'm going to go down this path.
199
00:09:12,950 --> 00:09:15,462
This is where threes and fours and fives and sixes go.
200
00:09:15,462 --> 00:09:16,920
And I'll let that guy deal with it.
201
00:09:16,920 --> 00:09:18,710
I'll get it a little closer to where it's supposed to go.
202
00:09:18,710 --> 00:09:21,350
I know it's supposed to go in that general direction.
203
00:09:21,350 --> 00:09:23,110
But maybe that guy can deal with it.
204
00:09:23,110 --> 00:09:23,840
OK.
205
00:09:23,840 --> 00:09:24,650
So that guy looks.
206
00:09:24,650 --> 00:09:27,580
He says, OK, this IP address starts with a five.
207
00:09:27,580 --> 00:09:31,590
Well, I'm connected to three and to six, so I can't get the message directly
208
00:09:31,590 --> 00:09:32,780
where it needs to go.
209
00:09:32,780 --> 00:09:36,970
But that other router over there, I know if I send it fours and fives,
210
00:09:36,970 --> 00:09:38,430
it can handle those.
211
00:09:38,430 --> 00:09:41,269
>> So it passes it along down the path.
212
00:09:41,269 --> 00:09:44,310
And then this router says, well, I'm connected to networks four and five.
213
00:09:44,310 --> 00:09:45,727
So, yes, I can help you.
214
00:09:45,727 --> 00:09:47,810
I'll take your IP address that starts with a five.
215
00:09:47,810 --> 00:09:49,450
I'll give it to the five network.
216
00:09:49,450 --> 00:09:53,220
The five network will do some work on its end and give the message to you.
217
00:09:53,220 --> 00:09:56,580
And now we've successfully transmitted a message from me
218
00:09:56,580 --> 00:09:58,930
to you using the Internet Protocol.
219
00:09:58,930 --> 00:10:03,020
>> Again, very generalized for purposes of illustration as to what's happening.
220
00:10:03,020 --> 00:10:05,840
But that's pretty much how the Internet Protocol works.
221
00:10:05,840 --> 00:10:08,050
The routers know generally where to send it
222
00:10:08,050 --> 00:10:11,170
and will send it one step along the way, getting it closer and closer
223
00:10:11,170 --> 00:10:15,130
to its destination until one router is physically connected
224
00:10:15,130 --> 00:10:17,990
to the network or the address or whatever
225
00:10:17,990 --> 00:10:21,600
in question and gives it there.
226
00:10:21,600 --> 00:10:28,780
>> Now, in general, except for really, really small, small messages,
227
00:10:28,780 --> 00:10:31,830
it's not going to send it as one big chunk of data.
228
00:10:31,830 --> 00:10:34,870
If I'm sending you an email-- a very long email,
229
00:10:34,870 --> 00:10:37,270
say-- it's not going to take that entire email,
230
00:10:37,270 --> 00:10:40,660
bundle it up in a ball or a package or whatever,
231
00:10:40,660 --> 00:10:43,460
and send that entire thing down the network.
232
00:10:43,460 --> 00:10:46,580
>> First of all, sending information along the network is expensive.
233
00:10:46,580 --> 00:10:47,560
It does add up.
234
00:10:47,560 --> 00:10:49,760
And the larger the chunk, the more costly
235
00:10:49,760 --> 00:10:53,240
it is to move every step of the way.
236
00:10:53,240 --> 00:10:55,260
And if there's somehow a slowdown and then
237
00:10:55,260 --> 00:10:58,010
there's this giant-- sort of like if you're driving on the highway
238
00:10:58,010 --> 00:11:00,246
and there's this giant truck kind of blocking the way
239
00:11:00,246 --> 00:11:03,370
and you can't get around it on either lane because it's kind of spread out.
240
00:11:03,370 --> 00:11:05,227
It slows everybody else down behind it.
241
00:11:05,227 --> 00:11:07,060
But small cars, if they were all small cars,
242
00:11:07,060 --> 00:11:10,290
they might be able to move around, if that analogy sort of helps
243
00:11:10,290 --> 00:11:11,650
a little bit.
244
00:11:11,650 --> 00:11:17,170
>> So one big block in the system can really slow everybody else down.
245
00:11:17,170 --> 00:11:20,570
And so what IP is going to do is split this data into packets.
246
00:11:20,570 --> 00:11:26,560
It's going to take this big email or FTP transfer or a file transfer,
247
00:11:26,560 --> 00:11:28,700
or maybe I'm making a request to a web browser
248
00:11:28,700 --> 00:11:30,205
because I want a picture of cat.
249
00:11:30,205 --> 00:11:33,570
And it's going to take that request or that email or that file
250
00:11:33,570 --> 00:11:37,950
and break it up into many pieces and send all of the pieces separately.
251
00:11:37,950 --> 00:11:41,120
So in fact, I'm filling the highway with a lot of small cars, which can all
252
00:11:41,120 --> 00:11:47,320
move instead of a big truck that might, if something goes wrong,
253
00:11:47,320 --> 00:11:49,970
throttle the traffic for everybody else.
254
00:11:49,970 --> 00:11:51,850
>> Another side effect of this is if there's
255
00:11:51,850 --> 00:11:57,170
some sort of catastrophic failure and something goes wrong
256
00:11:57,170 --> 00:11:58,890
and the packet gets dropped.
257
00:11:58,890 --> 00:12:01,670
Something is failed and the message can't be communicated.
258
00:12:01,670 --> 00:12:04,090
The router maybe had too much stuff going in.
259
00:12:04,090 --> 00:12:05,340
It couldn't juggle everything.
260
00:12:05,340 --> 00:12:06,840
And so it just literally dropped it.
261
00:12:06,840 --> 00:12:08,630
That's sort of the analogy, right?
262
00:12:08,630 --> 00:12:10,046
>> It's got a lot of things going on.
263
00:12:10,046 --> 00:12:12,010
It's passing information from point A to point
264
00:12:12,010 --> 00:12:14,090
B. We're not the only two people on the internet,
265
00:12:14,090 --> 00:12:16,264
so it has to process a lot of traffic.
266
00:12:16,264 --> 00:12:19,430
And if it doesn't have enough hands and it can't figure out what it's doing,
267
00:12:19,430 --> 00:12:21,350
it might just drop something.
268
00:12:21,350 --> 00:12:23,570
So it can do something else.
269
00:12:23,570 --> 00:12:25,390
It's got too much going on.
270
00:12:25,390 --> 00:12:29,560
>> If we had our message as one huge block and that was what got dropped,
271
00:12:29,560 --> 00:12:31,770
now we have to send the message again.
272
00:12:31,770 --> 00:12:34,500
And we are now possibly causing traffic again.
273
00:12:34,500 --> 00:12:37,640
And we run the risk of that huge block being dropped again.
274
00:12:37,640 --> 00:12:41,060
But if the data's been broken up into packets and we drop one of those,
275
00:12:41,060 --> 00:12:45,100
it's a lot less costly to send that packet one more time as opposed
276
00:12:45,100 --> 00:12:47,220
to the entire thing one more time.
277
00:12:47,220 --> 00:12:51,680
So IP is responsible for getting information from point A to point B
278
00:12:51,680 --> 00:12:54,500
and also breaking the information into small pieces
279
00:12:54,500 --> 00:12:57,880
so that the network isn't overly taxed.
280
00:12:57,880 --> 00:13:00,760
>> IP is also known as a connectionless protocol.
281
00:13:00,760 --> 00:13:05,350
There's not necessarily a defined path from the sender to the receiver or vice
282
00:13:05,350 --> 00:13:05,850
versa.
283
00:13:05,850 --> 00:13:08,808
Now, in this example we've talked about, there actually is only one way
284
00:13:08,808 --> 00:13:11,020
to get to every network.
285
00:13:11,020 --> 00:13:13,110
So in this particular illustration, there actually
286
00:13:13,110 --> 00:13:15,560
is a defined path from point A to point B.
287
00:13:15,560 --> 00:13:19,270
But we can change that by just making one modification to the two routers
288
00:13:19,270 --> 00:13:22,640
on the left by adding this condition to the router tables.
289
00:13:22,640 --> 00:13:24,960
>> Now notice that from the top left router,
290
00:13:24,960 --> 00:13:29,340
there are actually two ways to deal with a four or a five IP address.
291
00:13:29,340 --> 00:13:33,100
It can go down to the lower left router, or can go to the right,
292
00:13:33,100 --> 00:13:34,090
to the right router.
293
00:13:34,090 --> 00:13:35,532
It has multiple options.
294
00:13:35,532 --> 00:13:37,240
And this is actually kind of a good thing
295
00:13:37,240 --> 00:13:39,690
because it makes our network more responsive.
296
00:13:39,690 --> 00:13:42,510
>> If for example-- it's sort of like a GPS.
297
00:13:42,510 --> 00:13:44,760
If you've ever been driving on the highway
298
00:13:44,760 --> 00:13:49,610
and suddenly your GPS warns you that traffic is ahead,
299
00:13:49,610 --> 00:13:51,230
you want to avoid it if you can.
300
00:13:51,230 --> 00:13:53,710
And so you can recalculate your route.
301
00:13:53,710 --> 00:14:00,330
And a router network, in addition to having information
302
00:14:00,330 --> 00:14:05,110
about where packets should go or where data should go,
303
00:14:05,110 --> 00:14:09,140
there's also sort of this general pulse on the state of its local network.
304
00:14:09,140 --> 00:14:13,930
What's going to happen if I send it down this path versus this path?
305
00:14:13,930 --> 00:14:19,640
>> And so in light of heavy traffic situations on the network, maybe
306
00:14:19,640 --> 00:14:22,630
things will get routed a more inefficient way or a more generally
307
00:14:22,630 --> 00:14:24,939
inefficient way, because if we go the regular way,
308
00:14:24,939 --> 00:14:26,480
there's going to be a lot of traffic.
309
00:14:26,480 --> 00:14:28,470
The highway is completely jammed.
310
00:14:28,470 --> 00:14:30,880
So maybe what we'll do is instead take side roads, which
311
00:14:30,880 --> 00:14:33,070
ordinarily would take a lot more time, but no one's
312
00:14:33,070 --> 00:14:34,320
really using those side roads.
313
00:14:34,320 --> 00:14:37,300
And so we can route our packets that way.
314
00:14:37,300 --> 00:14:40,190
>> So not every packet of a big chunk of data
315
00:14:40,190 --> 00:14:42,620
might take the same path from the beginning to the end.
316
00:14:42,620 --> 00:14:45,080
And our network becomes a lot more responsive
317
00:14:45,080 --> 00:14:49,720
if our router tables allow for there to be multiple options for where to go.
318
00:14:49,720 --> 00:14:53,054
We're not depending on that one truck moving out of the way.
319
00:14:53,054 --> 00:14:55,970
We can get off the highway at the next exit and take a different path.
320
00:14:55,970 --> 00:15:01,250
And so the Internet Protocol sort of does a little bit of that, too.
321
00:15:01,250 --> 00:15:05,110
>> So that's the basics of the Internet Protocol.
322
00:15:05,110 --> 00:15:07,780
But there's one more issue to deal with, which
323
00:15:07,780 --> 00:15:10,810
is what happens if we do drop a packet?
324
00:15:10,810 --> 00:15:14,490
How do we know we're going to send that packet again?
325
00:15:14,490 --> 00:15:15,750
Right?
326
00:15:15,750 --> 00:15:18,632
Well, Internet Protocol doesn't guarantee delivery.
327
00:15:18,632 --> 00:15:20,590
We're going to be depending on another protocol
328
00:15:20,590 --> 00:15:25,027
to deal with that called Transmission Control Protocol, TCP.
329
00:15:25,027 --> 00:15:27,110
And we're going to talk about Transmission Control
330
00:15:27,110 --> 00:15:29,470
Protocol in the next video.
331
00:15:29,470 --> 00:15:30,460
I'm Doug Lloyd.
332
00:15:30,460 --> 00:15:32,350
This is CS50.
333
00:15:32,350 --> 00:15:34,253
28298
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.