1
00:00:19,600 --> 00:00:22,640
all right so I don't believe that
2
00:00:22,640 --> 00:00:25,070
providing absolutely all the details of
3
00:00:25,070 --> 00:00:27,560
a system like DNS matters that much I
4
00:00:27,560 --> 00:00:28,750
want to stick with high-level principles
5
00:00:28,750 --> 00:00:32,180
so I will discuss high level DNS I will
6
00:00:32,180 --> 00:00:33,470
discuss at a high level something like
7
00:00:33,470 --> 00:00:35,390
LDAP and some other ideas but I don't
8
00:00:35,390 --> 00:00:37,670
want to go into too many details you can
9
00:00:37,670 --> 00:00:39,920
always google for details if you really
10
00:00:39,920 --> 00:00:41,210
really care about the protocol what
11
00:00:41,210 --> 00:00:43,760
matters is how do you design such things
12
00:00:43,760 --> 00:00:45,680
and how do you stick with some
13
00:00:45,680 --> 00:00:48,980
reasonable subset of of principles to
14
00:00:48,980 --> 00:00:51,440
keep the whole thing together and a DNS
15
00:00:51,440 --> 00:00:53,630
like anything else was essentially done
16
00:00:53,630 --> 00:00:54,950
in a hurry when they realize they have
17
00:00:54,950 --> 00:00:56,360
too many computers and then it
18
00:00:56,360 --> 00:00:58,430
essentially evolved right so I mentioned
19
00:00:58,430 --> 00:01:00,290
this to some of you if you believe that
20
00:01:00,290 --> 00:01:03,079
most of the things around you are the
21
00:01:03,079 --> 00:01:05,000
creation of very careful thought that's
22
00:01:05,000 --> 00:01:06,530
not necessarily the case I mean it just
23
00:01:06,530 --> 00:01:09,470
some engineers a couple of days before
24
00:01:09,470 --> 00:01:11,869
the deadline decided to do something so
25
00:01:11,869 --> 00:01:14,360
that it kind of works and then that
26
00:01:14,360 --> 00:01:17,660
influenced 34 years of stuff afterwards
27
00:01:17,660 --> 00:01:20,960
okay that definitely happens with almost
28
00:01:20,960 --> 00:01:22,550
anything related to the web for example
29
00:01:22,550 --> 00:01:25,819
all right so we talked about namespaces
30
00:01:25,819 --> 00:01:28,039
I mean naming in general and namespaces
31
00:01:28,039 --> 00:01:30,500
are supposed to put some sort of order
32
00:01:30,500 --> 00:01:32,720
in there right so you create some sort
33
00:01:32,720 --> 00:01:35,840
of a hierarchy why because people like
34
00:01:35,840 --> 00:01:38,240
hierarchies and we are hardwired to do
35
00:01:38,240 --> 00:01:41,149
hierarchies right and you can form
36
00:01:41,149 --> 00:01:42,319
hierarchies based on all kinds of
37
00:01:42,319 --> 00:01:44,119
criterion so we are gonna come when we
38
00:01:44,119 --> 00:01:46,759
talk about LDAP and especially attribute
39
00:01:46,759 --> 00:01:49,910
based naming we're gonna get closer to
40
00:01:49,910 --> 00:01:51,679
something like search that's a big story
41
00:01:51,679 --> 00:01:53,360
but when it comes to hire kids it's like
42
00:01:53,360 --> 00:01:55,640
directories right you have broad
43
00:01:55,640 --> 00:01:57,349
categories with subcategories sub
44
00:01:57,349 --> 00:01:58,789
categories subcategories until you get
45
00:01:58,789 --> 00:02:01,610
to some smaller resources now initially
46
00:02:01,610 --> 00:02:03,530
all these things were supposed to map
47
00:02:03,530 --> 00:02:05,630
some sort of an existing hierarchy but
48
00:02:05,630 --> 00:02:07,849
things got disconnected very fast right
49
00:02:07,849 --> 00:02:10,429
so for example who should be in the
50
00:02:10,429 --> 00:02:12,560
dot-com domain I mean initially dot-coms
51
00:02:12,560 --> 00:02:14,260
were just businesses in US and now
52
00:02:14,260 --> 00:02:16,880
whoever has eleven dollars can become
53
00:02:16,880 --> 00:02:18,290
domain I mean that's really the way it
54
00:02:18,290 --> 00:02:21,819
goes so
55
00:02:26,010 --> 00:02:29,819
so let's go into some details about the
56
00:02:29,819 --> 00:02:32,230
NSA I mean I'm sorry DNS and how this
57
00:02:32,230 --> 00:02:34,569
might work and this is in fact happening
58
00:02:34,569 --> 00:02:35,349
all the time
59
00:02:35,349 --> 00:02:38,489
on any device that has wireless access
60
00:02:38,489 --> 00:02:41,080
very few devices stick only would say
61
00:02:41,080 --> 00:02:43,569
idea IP addresses I mean some of them
62
00:02:43,569 --> 00:02:45,069
might actually be for example embedded
63
00:02:45,069 --> 00:02:47,230
processors into drying machines right
64
00:02:47,230 --> 00:02:49,299
maybe those I mean they start to have
65
00:02:49,299 --> 00:02:51,280
internet access or refrigerators now and
66
00:02:51,280 --> 00:02:52,480
things like this maybe you have just
67
00:02:52,480 --> 00:02:55,000
enough a low-level IP address
68
00:02:55,000 --> 00:02:55,989
implementation it's some of these
69
00:02:55,989 --> 00:02:57,430
embedded devices but for the most part
70
00:02:57,430 --> 00:03:00,220
phones and anything a port is going to
71
00:03:00,220 --> 00:03:02,980
go and use the DNS all right so the way
72
00:03:02,980 --> 00:03:05,079
this works is if you're trying to access
73
00:03:05,079 --> 00:03:09,040
some URL in this situation that URL it's
74
00:03:09,040 --> 00:03:11,019
already broken into components right so
75
00:03:11,019 --> 00:03:14,260
what's the separator in in URLs the dot
76
00:03:14,260 --> 00:03:15,489
right I mean that's conventional
77
00:03:15,489 --> 00:03:17,739
separator at least for the first part of
78
00:03:17,739 --> 00:03:19,780
the URL that's supposed to determine the
79
00:03:19,780 --> 00:03:24,430
machine all right so in this specific
80
00:03:24,430 --> 00:03:26,590
situation FTP is the protocol and the
81
00:03:26,590 --> 00:03:28,420
address was probably reversed right so
82
00:03:28,420 --> 00:03:29,980
let's write it on the board it was
83
00:03:29,980 --> 00:03:34,919
really something like FTP I'm sorry :
84
00:03:34,919 --> 00:03:37,630
you have two slashes yes : /i never
85
00:03:37,630 --> 00:03:38,230
quite remember
86
00:03:38,230 --> 00:03:41,280
so colon slash and then probably twat CS
87
00:03:41,280 --> 00:03:48,849
d you NL and then some other some other
88
00:03:48,849 --> 00:03:51,879
information this is going to be parsed
89
00:03:51,879 --> 00:03:55,629
by some middleware some library really
90
00:03:55,629 --> 00:03:57,940
ok and when it's parsed it could look
91
00:03:57,940 --> 00:04:00,970
like what do we see in there right nlnl
92
00:04:00,970 --> 00:04:03,629
is Netherlands right the textbook writer
93
00:04:03,629 --> 00:04:08,260
Tannenbaum right is faculty at the
94
00:04:08,260 --> 00:04:09,609
University of Netherlands I have to
95
00:04:09,609 --> 00:04:11,560
remember the faculty the University
96
00:04:11,560 --> 00:04:13,750
right so then all his examples are good
97
00:04:13,750 --> 00:04:16,750
Netherlands ok Netherlands then we said
98
00:04:16,750 --> 00:04:22,539
V u CS FTP ok and all of these
99
00:04:22,539 --> 00:04:25,090
components can be thought of as being
100
00:04:25,090 --> 00:04:27,250
some sort of if you want directories so
101
00:04:27,250 --> 00:04:30,580
this is a so-called top domain right we
102
00:04:30,580 --> 00:04:32,530
had a picture before of all the pop
103
00:04:32,530 --> 00:04:34,659
domains look like these are examples of
104
00:04:34,659 --> 00:04:37,840
top domains calm calm edu golf meal and
105
00:04:37,840 --> 00:04:38,480
then countries
106
00:04:38,480 --> 00:04:42,020
domains and so on and so forth vu is
107
00:04:42,020 --> 00:04:46,730
gonna be a subdomain of the top domain
108
00:04:46,730 --> 00:04:49,310
now how these domains are administered
109
00:04:49,310 --> 00:04:52,370
and managed and so on and so forth it's
110
00:04:52,370 --> 00:04:55,340
a very very complicated kind of
111
00:04:55,340 --> 00:04:57,770
procedure and to some extent nobody
112
00:04:57,770 --> 00:04:59,690
quite quite knows in the end who's doing
113
00:04:59,690 --> 00:05:02,390
what because of all the crazy setup
114
00:05:02,390 --> 00:05:05,480
right but in principle they separated
115
00:05:05,480 --> 00:05:07,100
the top domains and they have different
116
00:05:07,100 --> 00:05:08,720
management for each of the top domain
117
00:05:08,720 --> 00:05:10,820
and then you essentially have to pay or
118
00:05:10,820 --> 00:05:13,390
beg somebody to let you plug in
119
00:05:13,390 --> 00:05:15,650
translations in in a particular talk
120
00:05:15,650 --> 00:05:17,090
domain to get subdomains and then sub
121
00:05:17,090 --> 00:05:19,070
sub domains so on and so forth now an
122
00:05:19,070 --> 00:05:20,720
interesting question is okay so you have
123
00:05:20,720 --> 00:05:22,520
this domain subdomain sub sub domain and
124
00:05:22,520 --> 00:05:24,110
this is something related to the
125
00:05:24,110 --> 00:05:25,580
protocol but who's doing what here I
126
00:05:25,580 --> 00:05:26,600
mean that's the most important question
127
00:05:26,600 --> 00:05:31,190
and if you think about it this is
128
00:05:31,190 --> 00:05:34,010
related to the question of specifically
129
00:05:34,010 --> 00:05:35,600
how the translation happens and
130
00:05:35,600 --> 00:05:37,100
specifically in which ways you can
131
00:05:37,100 --> 00:05:40,070
actually have control of these details
132
00:05:40,070 --> 00:05:42,710
can in fact matter a lot especially if
133
00:05:42,710 --> 00:05:46,280
you have problems so when it works it
134
00:05:46,280 --> 00:05:48,170
works it's like any other thing right so
135
00:05:48,170 --> 00:05:50,150
for example when your car just runs it
136
00:05:50,150 --> 00:05:51,680
runs and you're happy and everything is
137
00:05:51,680 --> 00:05:52,760
fine or you're not even happy you're
138
00:05:52,760 --> 00:05:55,360
just hey but when it doesn't run right
139
00:05:55,360 --> 00:05:57,830
then you're in trouble and if you're far
140
00:05:57,830 --> 00:05:59,630
away from a mechanic you might even out
141
00:05:59,630 --> 00:06:00,920
pop up the hood and start asking
142
00:06:00,920 --> 00:06:02,330
questions about how does it work maybe
143
00:06:02,330 --> 00:06:04,370
it just needs a ham or somewhere and you
144
00:06:04,370 --> 00:06:06,020
can smack it it doesn't work that way
145
00:06:06,020 --> 00:06:07,400
most of the time it's the same thing
146
00:06:07,400 --> 00:06:09,080
with the DNS I mean when when things go
147
00:06:09,080 --> 00:06:11,690
bad you might be important to start
148
00:06:11,690 --> 00:06:13,010
looking at them and on the other hand
149
00:06:13,010 --> 00:06:15,710
you might have to do something like this
150
00:06:15,710 --> 00:06:18,680
yourselves so for example to some extent
151
00:06:18,680 --> 00:06:21,650
the Napster people had to do something
152
00:06:21,650 --> 00:06:22,790
like this I mean they had to partition
153
00:06:22,790 --> 00:06:24,380
the world into pieces because the
154
00:06:24,380 --> 00:06:26,480
servers were getting overwhelming and so
155
00:06:26,480 --> 00:06:28,340
on and so forth so the translation might
156
00:06:28,340 --> 00:06:29,420
happen in the following way
157
00:06:29,420 --> 00:06:33,710
right so you have to contact somebody so
158
00:06:33,710 --> 00:06:35,240
we are talking about a translation
159
00:06:35,240 --> 00:06:36,830
somebody has to provide a translation
160
00:06:36,830 --> 00:06:39,080
who who has to provide the translation
161
00:06:39,080 --> 00:06:41,930
some sort of a server right so in this
162
00:06:41,930 --> 00:06:43,910
world we really have only two kinds of
163
00:06:43,910 --> 00:06:45,200
ways to get things done
164
00:06:45,200 --> 00:06:48,560
one is client and who's client and who
165
00:06:48,560 --> 00:06:49,880
server we've seen it can be upside down
166
00:06:49,880 --> 00:06:50,610
when it comes
167
00:06:50,610 --> 00:06:53,520
certain protocols like X right X Windows
168
00:06:53,520 --> 00:06:55,620
protocol so the client namely the
169
00:06:55,620 --> 00:06:57,870
application that needs to is done has to
170
00:06:57,870 --> 00:07:00,120
contact the server and as the server can
171
00:07:00,120 --> 00:07:01,800
you do this for me now the server itself
172
00:07:01,800 --> 00:07:03,090
my contact at the server is another
173
00:07:03,090 --> 00:07:04,590
service and other servers if it's a
174
00:07:04,590 --> 00:07:05,760
really complicated protocol or might
175
00:07:05,760 --> 00:07:07,410
just say ah yes I know what the answer
176
00:07:07,410 --> 00:07:07,710
is
177
00:07:07,710 --> 00:07:09,810
okay so this is really what's happening
178
00:07:09,810 --> 00:07:14,070
in here in order to find to resolve the
179
00:07:14,070 --> 00:07:17,430
name this is it DNS terminology right so
180
00:07:17,430 --> 00:07:19,350
resolving the name means find the
181
00:07:19,350 --> 00:07:20,970
corresponding IP address to this name
182
00:07:20,970 --> 00:07:22,410
because that IP address then is going to
183
00:07:22,410 --> 00:07:23,910
go in all the packets that are sent to
184
00:07:23,910 --> 00:07:25,440
that specific machine now there is a
185
00:07:25,440 --> 00:07:28,260
living more beyond is namely well it's
186
00:07:28,260 --> 00:07:29,850
kind of captured by the ftp it's what's
187
00:07:29,850 --> 00:07:33,330
the port number and through essentially
188
00:07:33,330 --> 00:07:36,210
conventions global conventions that are
189
00:07:36,210 --> 00:07:37,860
de facto conventions never nobody sat
190
00:07:37,860 --> 00:07:39,390
down and made standards out of it
191
00:07:39,390 --> 00:07:41,100
eventually they do maybe standardize
192
00:07:41,100 --> 00:07:44,070
some of them FTP in fact indicates the
193
00:07:44,070 --> 00:07:48,900
port number which I don't remember what
194
00:07:48,900 --> 00:07:54,980
it is I know SSH is 22 HTTP it's 80 FTP
195
00:07:54,980 --> 00:07:58,740
2021 all right here we go right so port
196
00:07:58,740 --> 00:08:05,400
number in this case 21 why 21 it's the
197
00:08:05,400 --> 00:08:07,500
number that comes after 20 really I mean
198
00:08:07,500 --> 00:08:09,030
they've done weird stuff when they
199
00:08:09,030 --> 00:08:10,590
decided some of those things right why
200
00:08:10,590 --> 00:08:15,720
84 HTTP why 443 for HTTPS it was in the
201
00:08:15,720 --> 00:08:19,680
way I mean it's so it turns out I
202
00:08:19,680 --> 00:08:21,000
believe that it's important to
203
00:08:21,000 --> 00:08:22,110
understand that sometimes these
204
00:08:22,110 --> 00:08:24,150
decisions were purely arbitrary so
205
00:08:24,150 --> 00:08:25,530
asking too many questions about them
206
00:08:25,530 --> 00:08:28,260
it's gonna get you nowhere right in
207
00:08:28,260 --> 00:08:29,730
literally somebody had to decide at some
208
00:08:29,730 --> 00:08:31,590
point is we need the number that's not
209
00:08:31,590 --> 00:08:34,980
used any ideas in a small office okay
210
00:08:34,980 --> 00:08:37,380
let's pick this it sounds good done is
211
00:08:37,380 --> 00:08:39,539
it use no wood let's use it literally
212
00:08:39,539 --> 00:08:41,880
okay good so the way the translation can
213
00:08:41,880 --> 00:08:45,020
happen is the clients name the clients
214
00:08:45,020 --> 00:08:47,550
if you want middleware the library is
215
00:08:47,550 --> 00:08:48,950
going to break it into pieces and
216
00:08:48,950 --> 00:08:53,850
depending on those pieces it has to talk
217
00:08:53,850 --> 00:08:55,440
to some server and say can you help me
218
00:08:55,440 --> 00:08:59,190
translate this okay and what server well
219
00:08:59,190 --> 00:09:01,710
any machine and this is one of the
220
00:09:01,710 --> 00:09:03,030
problems that can happen with for
221
00:09:03,030 --> 00:09:03,340
example
222
00:09:03,340 --> 00:09:05,110
internet connections any machine any
223
00:09:05,110 --> 00:09:07,630
client any device that wants access to
224
00:09:07,630 --> 00:09:08,230
the Internet
225
00:09:08,230 --> 00:09:12,190
must have not only the actual low-level
226
00:09:12,190 --> 00:09:15,610
machinery right which is run that ARP
227
00:09:15,610 --> 00:09:16,900
protocol and what not to convince
228
00:09:16,900 --> 00:09:18,790
routers to route packages but also have
229
00:09:18,790 --> 00:09:22,720
a so-called DNS server name well it
230
00:09:22,720 --> 00:09:24,040
cannot actually be a name it must be an
231
00:09:24,040 --> 00:09:26,080
IP address so the idea is the following
232
00:09:26,080 --> 00:09:28,030
if I have the IP address of the server
233
00:09:28,030 --> 00:09:30,970
that can help me translate then I can
234
00:09:30,970 --> 00:09:32,410
talk to that server to find the mapping
235
00:09:32,410 --> 00:09:34,060
between nice names and the IP addresses
236
00:09:34,060 --> 00:09:35,440
of the rest of the universe but you you
237
00:09:35,440 --> 00:09:36,960
see if this is a bootstrapping
238
00:09:36,960 --> 00:09:40,870
strategy right I grow from one IP
239
00:09:40,870 --> 00:09:43,420
address to mapping for the entire world
240
00:09:43,420 --> 00:09:44,890
between nice names and IP addresses but
241
00:09:44,890 --> 00:09:47,800
I must know one IP address okay and that
242
00:09:47,800 --> 00:09:48,850
begs the question of how do you know
243
00:09:48,850 --> 00:09:50,320
that one IP address there is a
244
00:09:50,320 --> 00:09:51,970
counterpart problem which is not pointed
245
00:09:51,970 --> 00:09:55,300
out in this in this textbook or any
246
00:09:55,300 --> 00:09:57,220
other textbook a loss for example for a
247
00:09:57,220 --> 00:09:58,720
peer-to-peer network you must know one
248
00:09:58,720 --> 00:09:59,790
participant in a peer-to-peer network
249
00:09:59,790 --> 00:10:02,890
right and then you can bootstrap and go
250
00:10:02,890 --> 00:10:06,220
and do other things so how do you know
251
00:10:06,220 --> 00:10:08,800
the IP address so and the core of
252
00:10:08,800 --> 00:10:11,670
everything is you must know the IP of
253
00:10:11,670 --> 00:10:17,350
one or more DNS servers now of course
254
00:10:17,350 --> 00:10:19,330
the DNS servers must know other DNS
255
00:10:19,330 --> 00:10:20,770
servers and other DNS servers and other
256
00:10:20,770 --> 00:10:23,260
DNS servers to get you what you want or
257
00:10:23,260 --> 00:10:25,210
know about the entire Internet which was
258
00:10:25,210 --> 00:10:26,680
the case at the beginning when the
259
00:10:26,680 --> 00:10:28,150
internet was small they needs only one
260
00:10:28,150 --> 00:10:33,520
DNS server okay so for example do you
261
00:10:33,520 --> 00:10:36,040
know on your phone what the DNS server
262
00:10:36,040 --> 00:10:42,670
is okay so these things are so important
263
00:10:42,670 --> 00:10:45,100
that they now can get bundle up with the
264
00:10:45,100 --> 00:10:47,260
discovery protocol right so when your
265
00:10:47,260 --> 00:10:48,910
phone taken actually in class to see all
266
00:10:48,910 --> 00:10:50,260
the details but when your phone connects
267
00:10:50,260 --> 00:10:52,110
all your computer connects to a network
268
00:10:52,110 --> 00:10:55,960
because this is so annoying
269
00:10:55,960 --> 00:10:57,790
to get some administrator involved and
270
00:10:57,790 --> 00:10:59,170
so on you have automatic discovery
271
00:10:59,170 --> 00:11:00,790
protocol in which you're really saying
272
00:11:00,790 --> 00:11:02,230
hey I want to be connected on the
273
00:11:02,230 --> 00:11:04,570
network but that's not open low level
274
00:11:04,570 --> 00:11:06,520
Ethernet protocol saying hey I need some
275
00:11:06,520 --> 00:11:09,100
IP of this is not taken I'll take it ok
276
00:11:09,100 --> 00:11:11,680
and then you're you're running some low
277
00:11:11,680 --> 00:11:16,000
level protocol in which you say is there
278
00:11:16,000 --> 00:11:17,170
anybody that can
279
00:11:17,170 --> 00:11:19,450
help me bootstrap the entire system and
280
00:11:19,450 --> 00:11:25,300
this is what bootp and dhcp are all
281
00:11:25,300 --> 00:11:27,940
about these are discovery protocols and
282
00:11:27,940 --> 00:11:30,370
then presumably some sort of a DHCP
283
00:11:30,370 --> 00:11:32,139
server nowadays because bootp is really
284
00:11:32,139 --> 00:11:35,310
not used right it's gonna say hey I know
285
00:11:35,310 --> 00:11:37,449
first of all I can assign you an IP
286
00:11:37,449 --> 00:11:39,010
address so you can be part of this
287
00:11:39,010 --> 00:11:41,410
internet thing but I also can tell you
288
00:11:41,410 --> 00:11:45,550
about the DNS server right and if you
289
00:11:45,550 --> 00:11:47,290
want to do a translation of names go
290
00:11:47,290 --> 00:11:48,940
through this DNS server and go and do
291
00:11:48,940 --> 00:11:51,820
whatever thing you want now just as an
292
00:11:51,820 --> 00:11:54,010
aside for example because the DNS server
293
00:11:54,010 --> 00:11:56,320
is so crucial you actually know you can
294
00:11:56,320 --> 00:11:59,170
actually tell admonitory Internet
295
00:11:59,170 --> 00:12:02,910
activity by just logging DNS requests
296
00:12:02,910 --> 00:12:05,589
forget about the traffic and whatnot but
297
00:12:05,589 --> 00:12:07,300
just log in DNS requests you know
298
00:12:07,300 --> 00:12:08,649
exactly what's happening and how it's
299
00:12:08,649 --> 00:12:11,529
happening and whatever this is why there
300
00:12:11,529 --> 00:12:12,880
are basically two efforts and you can
301
00:12:12,880 --> 00:12:15,430
see them now one of them is to encourage
302
00:12:15,430 --> 00:12:18,339
people not to use the DNS server from
303
00:12:18,339 --> 00:12:20,949
their ISP right so there is an
304
00:12:20,949 --> 00:12:25,449
interesting project called open DNS and
305
00:12:25,449 --> 00:12:28,269
guess what this is you go and by hand
306
00:12:28,269 --> 00:12:30,490
change the DNS and override the DNS that
307
00:12:30,490 --> 00:12:32,440
your ISP wants to give you and say you
308
00:12:32,440 --> 00:12:34,990
know what I want to use this specific
309
00:12:34,990 --> 00:12:37,779
server they open DNS server one of the
310
00:12:37,779 --> 00:12:39,339
known Open DNS server so that means all
311
00:12:39,339 --> 00:12:40,959
your requests instead of going through
312
00:12:40,959 --> 00:12:44,110
your ISP as it would normally happen
313
00:12:44,110 --> 00:12:46,120
we'll go through the open DNS okay and
314
00:12:46,120 --> 00:12:48,670
another effort is so-called encrypted
315
00:12:48,670 --> 00:12:52,420
DNS right through IPSec and other things
316
00:12:52,420 --> 00:12:55,990
in which the entire lookup process
317
00:12:55,990 --> 00:12:58,420
because ultimately when you say I want
318
00:12:58,420 --> 00:13:01,810
to map nlv you see SFTP that's some sort
319
00:13:01,810 --> 00:13:03,850
of information in a packet that moves
320
00:13:03,850 --> 00:13:06,160
over the Internet which could in fact be
321
00:13:06,160 --> 00:13:07,899
intercepted and looked at and so on of
322
00:13:07,899 --> 00:13:10,390
course if it's encrypted and you usually
323
00:13:10,390 --> 00:13:11,709
some kind of a cryptographically secure
324
00:13:11,709 --> 00:13:14,170
method then only the open DNS server can
325
00:13:14,170 --> 00:13:16,089
in fact understand what you want and
326
00:13:16,089 --> 00:13:18,760
send you back up and also encrypting to
327
00:13:18,760 --> 00:13:21,430
reply now they can still see what type
328
00:13:21,430 --> 00:13:22,959
II addresses your you're accessing but
329
00:13:22,959 --> 00:13:26,079
again DNS is are so much DNS servers are
330
00:13:26,079 --> 00:13:28,870
so much more interesting okay now why is
331
00:13:28,870 --> 00:13:30,570
this even possible
332
00:13:30,570 --> 00:13:33,210
because it's all in this library in the
333
00:13:33,210 --> 00:13:35,700
clients library name DNS is like any
334
00:13:35,700 --> 00:13:39,540
other protocol and in fact uses IP I
335
00:13:39,540 --> 00:13:41,580
mean it's not built on tcp/ip because
336
00:13:41,580 --> 00:13:44,280
there's no need to do this is yet
337
00:13:44,280 --> 00:13:48,000
another protocol build on top of IP
338
00:13:48,000 --> 00:13:50,640
right so at the bottom you have the dark
339
00:13:50,640 --> 00:13:52,350
side with Ethernet and other low level
340
00:13:52,350 --> 00:13:55,650
protocols then you have IP right this is
341
00:13:55,650 --> 00:13:57,590
the protocol that allows routing of
342
00:13:57,590 --> 00:14:00,210
packages and on top of it you have TCP
343
00:14:00,210 --> 00:14:03,090
you also have UDP and we did talk about
344
00:14:03,090 --> 00:14:05,250
them and some other protocols that don't
345
00:14:05,250 --> 00:14:06,930
really need a full connection and things
346
00:14:06,930 --> 00:14:08,760
like this right
347
00:14:08,760 --> 00:14:10,980
sometimes these services will use TCP or
348
00:14:10,980 --> 00:14:12,630
will use UDP but sometimes they are
349
00:14:12,630 --> 00:14:14,010
going to do their own variant on top of
350
00:14:14,010 --> 00:14:17,580
IP right and I believe the DNS is here
351
00:14:17,580 --> 00:14:19,290
well maybe they switch actually you know
352
00:14:19,290 --> 00:14:21,540
if they switch and it's disappea they
353
00:14:21,540 --> 00:14:24,090
switch to UDP okay now there are some
354
00:14:24,090 --> 00:14:27,390
details that don't really matter there
355
00:14:27,390 --> 00:14:30,300
are more curiosities right but some
356
00:14:30,300 --> 00:14:31,980
people happen to know too much so I have
357
00:14:31,980 --> 00:14:35,040
to be careful so I asked okay all right
358
00:14:35,040 --> 00:14:36,420
but you do have a choice I mean you
359
00:14:36,420 --> 00:14:39,390
could do your own version of an IP
360
00:14:39,390 --> 00:14:42,540
protocol here right and that's actually
361
00:14:42,540 --> 00:14:45,180
happening with some of the services okay
362
00:14:45,180 --> 00:14:49,770
so client context first DNS server the
363
00:14:49,770 --> 00:14:51,630
DNS server will then try to figure out
364
00:14:51,630 --> 00:14:54,060
if you can map the address okay and at
365
00:14:54,060 --> 00:14:55,800
least if it has never seen all the
366
00:14:55,800 --> 00:14:58,770
decimal points in the address right it
367
00:14:58,770 --> 00:15:00,990
needs to in fact contact other DNS
368
00:15:00,990 --> 00:15:02,340
servers and other DNS servers and other
369
00:15:02,340 --> 00:15:05,040
DNS servers why because you would not
370
00:15:05,040 --> 00:15:06,660
expect a single server to deal with the
371
00:15:06,660 --> 00:15:08,580
entire Internet so this is in fact a
372
00:15:08,580 --> 00:15:11,550
form of hierarchical organization of a
373
00:15:11,550 --> 00:15:14,340
set of servers in order to provide in
374
00:15:14,340 --> 00:15:18,000
this case a planet planet size service
375
00:15:18,000 --> 00:15:20,700
right so in fact all the DNS servers at
376
00:15:20,700 --> 00:15:24,660
least in the non dark in the in the
377
00:15:24,660 --> 00:15:26,790
light internet right of they talk about
378
00:15:26,790 --> 00:15:27,960
for example dark internet and you can
379
00:15:27,960 --> 00:15:29,520
imagine if you can have your own private
380
00:15:29,520 --> 00:15:31,440
DNS servers you can have secure
381
00:15:31,440 --> 00:15:33,000
connections through cryptography and
382
00:15:33,000 --> 00:15:34,920
whatnot and apparently some hackers use
383
00:15:34,920 --> 00:15:37,740
that that's really a parallel universe
384
00:15:37,740 --> 00:15:40,410
and you might not even be aware it
385
00:15:40,410 --> 00:15:41,700
exists unless you do deep packet
386
00:15:41,700 --> 00:15:43,200
inspection ranking things like that but
387
00:15:43,200 --> 00:15:43,830
at least
388
00:15:43,830 --> 00:15:46,950
in the visible part of the internet all
389
00:15:46,950 --> 00:15:48,900
the DNS servers are in fact connected to
390
00:15:48,900 --> 00:15:50,430
each other through a hierarchy and that
391
00:15:50,430 --> 00:15:52,050
does make sense right so let's draw some
392
00:15:52,050 --> 00:15:55,950
kind of a picture here we have a similar
393
00:15:55,950 --> 00:15:58,500
picture in there but essentially I can
394
00:15:58,500 --> 00:16:00,480
have a DNS server to deal with a
395
00:16:00,480 --> 00:16:05,450
so-called domain this easily can have
396
00:16:05,450 --> 00:16:07,920
thousands or sometimes if tens of
397
00:16:07,920 --> 00:16:11,670
thousands hundreds of thousands of of
398
00:16:11,670 --> 00:16:14,400
client machines right or servers or
399
00:16:14,400 --> 00:16:16,950
whatever else you want but definitely
400
00:16:16,950 --> 00:16:19,320
doesn't usually grow at the level of
401
00:16:19,320 --> 00:16:22,110
millions and not the billions that we
402
00:16:22,110 --> 00:16:24,030
have now in the in the entire internet
403
00:16:24,030 --> 00:16:27,510
now these servers themselves when there
404
00:16:27,510 --> 00:16:29,430
are requests outside their core domain
405
00:16:29,430 --> 00:16:32,280
my contact high-level service and high
406
00:16:32,280 --> 00:16:34,110
level servers now what's going to happen
407
00:16:34,110 --> 00:16:35,580
is as you go high up in the hierarchy
408
00:16:35,580 --> 00:16:38,310
you only know about the level right
409
00:16:38,310 --> 00:16:39,840
below you you're not going to know all
410
00:16:39,840 --> 00:16:41,040
the details for example this server is
411
00:16:41,040 --> 00:16:41,970
not gonna know about all of this
412
00:16:41,970 --> 00:16:43,620
machines it only knows about all of
413
00:16:43,620 --> 00:16:46,170
these subdomains and might itself manage
414
00:16:46,170 --> 00:16:49,470
a large number of such subdomains right
415
00:16:49,470 --> 00:16:51,870
so in this situation you would expect to
416
00:16:51,870 --> 00:16:57,270
have an OCS subdomain and possibly any
417
00:16:57,270 --> 00:16:59,070
machine for example in our department
418
00:16:59,070 --> 00:17:00,150
that's going to happen right we have our
419
00:17:00,150 --> 00:17:02,490
own DNS server so if you go through the
420
00:17:02,490 --> 00:17:04,560
department Network they are gonna say
421
00:17:04,560 --> 00:17:06,839
hey select this DNS you could do Open
422
00:17:06,839 --> 00:17:08,250
DNS by the way but you could say select
423
00:17:08,250 --> 00:17:10,760
this DNS and then essentially we have
424
00:17:10,760 --> 00:17:13,170
Department DNS server the Department DNS
425
00:17:13,170 --> 00:17:14,849
server then is connected to the
426
00:17:14,849 --> 00:17:16,770
University dinosaur that controls what
427
00:17:16,770 --> 00:17:18,270
domain so in our case right this is
428
00:17:18,270 --> 00:17:20,670
going to be CIC what do you think is the
429
00:17:20,670 --> 00:17:25,619
domain that here UFL right so this is
430
00:17:25,619 --> 00:17:28,680
controlled by the Department you see the
431
00:17:28,680 --> 00:17:31,350
hierarchy this is the university in our
432
00:17:31,350 --> 00:17:33,720
case and it was the top domain here edu
433
00:17:33,720 --> 00:17:36,450
and this is controlled by driver
434
00:17:36,450 --> 00:17:38,400
controls the edu domain which again it's
435
00:17:38,400 --> 00:17:40,860
sometimes hard to tell right yeah of
436
00:17:40,860 --> 00:17:43,760
course edu is the University domain
437
00:17:43,760 --> 00:17:46,470
because a lot of this research a lot of
438
00:17:46,470 --> 00:17:47,850
the initial research in the internet was
439
00:17:47,850 --> 00:17:49,320
done at universities universities make
440
00:17:49,320 --> 00:17:51,900
sure they have their own domain this is
441
00:17:51,900 --> 00:17:53,430
almost unheard of right everybody else
442
00:17:53,430 --> 00:17:56,100
gets maybe a country domain if they are
443
00:17:56,100 --> 00:17:57,240
nice and that's
444
00:17:57,240 --> 00:18:00,210
all right but not in us we have a domain
445
00:18:00,210 --> 00:18:05,760
for whatever we want okay right so
446
00:18:05,760 --> 00:18:07,260
what's the for example are the
447
00:18:07,260 --> 00:18:09,950
interesting domains the golf right and
448
00:18:09,950 --> 00:18:13,260
the mill the military they have their
449
00:18:13,260 --> 00:18:15,600
own domains they are recording about how
450
00:18:15,600 --> 00:18:17,580
they actually protect and so on and so
451
00:18:17,580 --> 00:18:20,490
forth right good so at the very top of
452
00:18:20,490 --> 00:18:21,570
the Internet
453
00:18:21,570 --> 00:18:25,049
you would expect to in fact have these
454
00:18:25,049 --> 00:18:27,590
domains but then must be one or
455
00:18:27,590 --> 00:18:31,919
something at the very top now I want you
456
00:18:31,919 --> 00:18:33,570
to understand that you don't necessarily
457
00:18:33,570 --> 00:18:35,880
need all of the server's all along you
458
00:18:35,880 --> 00:18:37,770
just need to provide the illusion that
459
00:18:37,770 --> 00:18:39,750
those servers exist for example at the
460
00:18:39,750 --> 00:18:43,159
very top you might not in fact need any
461
00:18:43,159 --> 00:18:46,200
topmost DNS server and in fact it would
462
00:18:46,200 --> 00:18:48,419
be wasteful to do so all you need is to
463
00:18:48,419 --> 00:18:50,789
make sure that all the top servers keep
464
00:18:50,789 --> 00:18:54,179
in sync the information right what kind
465
00:18:54,179 --> 00:18:55,799
of information well the information is
466
00:18:55,799 --> 00:18:57,990
which are the server to ask if the
467
00:18:57,990 --> 00:18:59,309
question is not about something you know
468
00:18:59,309 --> 00:19:01,559
of so what would happen is for example
469
00:19:01,559 --> 00:19:04,529
if from my let's say from my phone I
470
00:19:04,529 --> 00:19:07,260
live in this domain right CI a see it
471
00:19:07,260 --> 00:19:09,809
and you have led you right all the top
472
00:19:09,809 --> 00:19:11,039
domains somehow know about each other
473
00:19:11,039 --> 00:19:12,870
and what would happen if I'm trying to
474
00:19:12,870 --> 00:19:14,730
go to cnn.com which is a completely
475
00:19:14,730 --> 00:19:17,419
different domain well what would happen
476
00:19:17,419 --> 00:19:20,970
presumably is I contact the local DNS
477
00:19:20,970 --> 00:19:24,149
server let's assume nobody has ever
478
00:19:24,149 --> 00:19:26,039
heard about CNN because caching makes it
479
00:19:26,039 --> 00:19:27,750
all a lot more fun I'm gonna talk about
480
00:19:27,750 --> 00:19:29,669
that separately in a second so contact
481
00:19:29,669 --> 00:19:31,710
my server and says well if not in my
482
00:19:31,710 --> 00:19:34,140
domain but I know who to ask you ask the
483
00:19:34,140 --> 00:19:37,230
UFL well we are not in the dot-com you
484
00:19:37,230 --> 00:19:41,070
ask the edu he says well we are in deal
485
00:19:41,070 --> 00:19:43,440
you're asking for something in calm but
486
00:19:43,440 --> 00:19:45,390
I know the address I know who to ask
487
00:19:45,390 --> 00:19:47,520
about the dot-com right so if you keep
488
00:19:47,520 --> 00:19:50,580
in sync the topmost DNS servers and they
489
00:19:50,580 --> 00:19:52,950
know about who to ask for another domain
490
00:19:52,950 --> 00:19:55,590
then you just jump now at the same level
491
00:19:55,590 --> 00:19:58,830
of the hierarchy to the dot-com and that
492
00:19:58,830 --> 00:20:01,740
column would say well I know about calm
493
00:20:01,740 --> 00:20:04,740
and whatever is immediately below so
494
00:20:04,740 --> 00:20:06,570
what are you looking for CNN okay good
495
00:20:06,570 --> 00:20:10,860
so I can contact the CNN DNS
496
00:20:10,860 --> 00:20:14,550
and the CNN TNS will look up www and say
497
00:20:14,550 --> 00:20:16,260
I know about it and maybe resolve it
498
00:20:16,260 --> 00:20:17,520
immediately or if you have a deeper
499
00:20:17,520 --> 00:20:19,050
hierarchy as it is the case here you go
500
00:20:19,050 --> 00:20:20,730
down you go down until you find out
501
00:20:20,730 --> 00:20:22,970
about the machine you want so in fact
502
00:20:22,970 --> 00:20:27,240
the way things are gonna go in in DNS it
503
00:20:27,240 --> 00:20:28,620
could be you do first to look up all the
504
00:20:28,620 --> 00:20:31,140
way to the top you go on piers you go
505
00:20:31,140 --> 00:20:33,600
all the way down to find who knows about
506
00:20:33,600 --> 00:20:35,100
that specific machine you could get an
507
00:20:35,100 --> 00:20:37,679
answer that says that machine is not
508
00:20:37,679 --> 00:20:39,480
mapped or you could get the proper
509
00:20:39,480 --> 00:20:40,740
answer and then the Masters comes back
510
00:20:40,740 --> 00:20:44,070
now this is already a very long way this
511
00:20:44,070 --> 00:20:45,510
is why you want to do caching on a large
512
00:20:45,510 --> 00:20:48,150
scale all right so for example when you
513
00:20:48,150 --> 00:20:51,179
go on CNN its webpage everything gets
514
00:20:51,179 --> 00:20:53,610
cnn.com one way or another with the
515
00:20:53,610 --> 00:20:56,550
decimal points right so what you might I
516
00:20:56,550 --> 00:20:58,170
mean you have to cache because otherwise
517
00:20:58,170 --> 00:21:00,600
it's exactly like the virtual memory to
518
00:21:00,600 --> 00:21:02,370
physical memory you do more work
519
00:21:02,370 --> 00:21:04,020
translating than you do actually getting
520
00:21:04,020 --> 00:21:05,400
all of the things that are on the on the
521
00:21:05,400 --> 00:21:08,520
webpage you should
522
00:21:08,520 --> 00:21:11,340
I mean browsers now support deep
523
00:21:11,340 --> 00:21:13,050
inspection of what is it that they are
524
00:21:13,050 --> 00:21:14,940
doing it's it's quite an interesting
525
00:21:14,940 --> 00:21:17,100
exercise to ask the browser to actually
526
00:21:17,100 --> 00:21:19,230
show you just how many little things it
527
00:21:19,230 --> 00:21:21,300
gets independently or not and even how
528
00:21:21,300 --> 00:21:22,950
fast it gets what order you get them
529
00:21:22,950 --> 00:21:26,550
right easily you can end up with tens to
530
00:21:26,550 --> 00:21:28,620
hundreds of independent connections to
531
00:21:28,620 --> 00:21:30,390
it to grab just something that looks
532
00:21:30,390 --> 00:21:33,330
like a normal HTML page and some of them
533
00:21:33,330 --> 00:21:34,620
go to completely different domains like
534
00:21:34,620 --> 00:21:37,110
double-click comm and whatnot okay all
535
00:21:37,110 --> 00:21:38,730
right so is it at least the high-level
536
00:21:38,730 --> 00:21:41,070
idea is it clear what's happening but
537
00:21:41,070 --> 00:21:43,290
each of these guys is in fact some sort
538
00:21:43,290 --> 00:21:45,720
of a database machine right that's gonna
539
00:21:45,720 --> 00:21:48,720
do a mapping between the name and who
540
00:21:48,720 --> 00:21:51,420
has more information or the actual IP
541
00:21:51,420 --> 00:21:54,420
address this is really the idea now in
542
00:21:54,420 --> 00:22:02,250
the good old days the IP address carving
543
00:22:02,250 --> 00:22:04,230
I mean who gets what the range of the IP
544
00:22:04,230 --> 00:22:06,870
address was also reasonably hierarchical
545
00:22:06,870 --> 00:22:09,510
right and this is why the DNS protocol
546
00:22:09,510 --> 00:22:11,429
itself is designed so that you can
547
00:22:11,429 --> 00:22:13,020
actually get ranges for such IP
548
00:22:13,020 --> 00:22:14,640
addresses and and whatnot
549
00:22:14,640 --> 00:22:16,200
things are more and more and more
550
00:22:16,200 --> 00:22:18,330
fragmented so this servers themselves
551
00:22:18,330 --> 00:22:20,340
have to get more complicated in order to
552
00:22:20,340 --> 00:22:22,410
do the mapping right on the other hand
553
00:22:22,410 --> 00:22:24,300
the computers got much faster so
554
00:22:24,300 --> 00:22:26,760
if you think about it even in a single
555
00:22:26,760 --> 00:22:29,850
machine so ask yourself the following
556
00:22:29,850 --> 00:22:31,260
question and this is maybe a question
557
00:22:31,260 --> 00:22:34,620
for the database class but with a single
558
00:22:34,620 --> 00:22:36,600
server you can buy now let's say that
559
00:22:36,600 --> 00:22:38,670
cost a couple thousand dollars how many
560
00:22:38,670 --> 00:22:40,170
names could you resolve I mean how many
561
00:22:40,170 --> 00:22:42,630
things could you know about if things
562
00:22:42,630 --> 00:22:46,620
don't change let's say well I mean even
563
00:22:46,620 --> 00:22:47,880
if you just want to keep things in
564
00:22:47,880 --> 00:22:51,480
memory you can easily keep hundreds of
565
00:22:51,480 --> 00:22:54,720
millions you can do some math if you
566
00:22:54,720 --> 00:22:56,580
want but a thousand dollars so let me
567
00:22:56,580 --> 00:22:58,740
give you just some food for thought a
568
00:22:58,740 --> 00:23:00,240
thousand dollars buys a hundred and
569
00:23:00,240 --> 00:23:03,120
twenty eight gigs of memory honey and 20
570
00:23:03,120 --> 00:23:04,890
gigs of memory is a lot of memory right
571
00:23:04,890 --> 00:23:08,940
so if you keep about 128 million let's
572
00:23:08,940 --> 00:23:10,710
say you would have one kilobyte per
573
00:23:10,710 --> 00:23:11,850
entry and there is no way you need a
574
00:23:11,850 --> 00:23:13,110
kilobyte per entry in this kind of
575
00:23:13,110 --> 00:23:14,520
circumstance so easily could keep a
576
00:23:14,520 --> 00:23:15,780
hundred million you know machine that's
577
00:23:15,780 --> 00:23:17,850
only three four four five thousand
578
00:23:17,850 --> 00:23:20,400
dollars at most right so even large
579
00:23:20,400 --> 00:23:22,380
domains might not suffer in a
580
00:23:22,380 --> 00:23:25,470
significant way I mean for example UFL
581
00:23:25,470 --> 00:23:27,120
domain probably doesn't have more than a
582
00:23:27,120 --> 00:23:30,560
million entries in it well I mean
583
00:23:30,560 --> 00:23:33,300
actually named machines you have far
584
00:23:33,300 --> 00:23:34,620
less you probably have in the order of
585
00:23:34,620 --> 00:23:36,060
ten thousand your phone could really
586
00:23:36,060 --> 00:23:37,950
resolve you could keep all the ten
587
00:23:37,950 --> 00:23:39,660
thousand your phone no you do have
588
00:23:39,660 --> 00:23:41,580
another problem which is an update
589
00:23:41,580 --> 00:23:44,070
problem things keep on changing and how
590
00:23:44,070 --> 00:23:45,060
do they change you change the
591
00:23:45,060 --> 00:23:47,070
configuration of the service so you need
592
00:23:47,070 --> 00:23:48,600
to think about and this is maybe where
593
00:23:48,600 --> 00:23:49,890
things get more subtle you need to think
594
00:23:49,890 --> 00:23:51,810
about okay you do caching that you need
595
00:23:51,810 --> 00:23:53,370
to invalidate caches and this becomes a
596
00:23:53,370 --> 00:23:54,990
very very important issue in general how
597
00:23:54,990 --> 00:23:56,430
do you in that how and when do you
598
00:23:56,430 --> 00:23:58,190
invalidate caches that's one issue and
599
00:23:58,190 --> 00:24:00,300
the other issue is how do you propagate
600
00:24:00,300 --> 00:24:03,720
the updates right because DNS is
601
00:24:03,720 --> 00:24:05,550
controlled hierarchically things are a
602
00:24:05,550 --> 00:24:08,310
little bit more ordered but a particular
603
00:24:08,310 --> 00:24:11,280
way to speed things up and this can
604
00:24:11,280 --> 00:24:12,720
actually be done at any intermittent
605
00:24:12,720 --> 00:24:15,590
point right is to do massive caching for
606
00:24:15,590 --> 00:24:18,990
example the top edu domain of course has
607
00:24:18,990 --> 00:24:20,820
to know about the Pierre domains and
608
00:24:20,820 --> 00:24:22,560
what it means me underneath but nobody
609
00:24:22,560 --> 00:24:23,730
says it should know about a lot more
610
00:24:23,730 --> 00:24:25,590
than that if it could resolve things
611
00:24:25,590 --> 00:24:27,480
faster it's not so important to do it
612
00:24:27,480 --> 00:24:28,530
here but it's very important for example
613
00:24:28,530 --> 00:24:30,150
to do it here you can significantly
614
00:24:30,150 --> 00:24:33,270
improve user experience by caching much
615
00:24:33,270 --> 00:24:37,620
more at the DNS server that you have any
616
00:24:37,620 --> 00:24:42,270
right now since the vast majority of the
617
00:24:42,270 --> 00:24:44,850
people tend to roughly I mean again you
618
00:24:44,850 --> 00:24:47,640
have the 20/80 rule probably with
619
00:24:47,640 --> 00:24:50,370
different proportions right I mean how
620
00:24:50,370 --> 00:24:52,650
many talk domains people go to maybe I
621
00:24:52,650 --> 00:24:56,100
mean you have super popular hundred to a
622
00:24:56,100 --> 00:24:58,169
thousand and then lots of little crumbs
623
00:24:58,169 --> 00:25:00,299
and then you don't necessarily quite
624
00:25:00,299 --> 00:25:01,080
hear about that
625
00:25:01,080 --> 00:25:05,760
if you cache the top domains most of the
626
00:25:05,760 --> 00:25:07,200
people would never make it for example
627
00:25:07,200 --> 00:25:10,289
to the Apple's DNS server because the
628
00:25:10,289 --> 00:25:12,090
UFL one intercepted it and already knows
629
00:25:12,090 --> 00:25:13,860
what's the top IP address for that I
630
00:25:13,860 --> 00:25:17,100
don't know apple.com let's say okay not
631
00:25:17,100 --> 00:25:21,090
to mention facebook.com ok all right so
632
00:25:21,090 --> 00:25:25,320
it's a story with this so there is some
633
00:25:25,320 --> 00:25:27,330
sort of a request that goes possibly all
634
00:25:27,330 --> 00:25:29,370
the way up to the Nina's hierarchy and
635
00:25:29,370 --> 00:25:31,950
comes down with all kinds of caching in
636
00:25:31,950 --> 00:25:33,809
between now imagine they can imagine
637
00:25:33,809 --> 00:25:36,240
that you do want to do caching on the
638
00:25:36,240 --> 00:25:38,309
client itself right and that becomes
639
00:25:38,309 --> 00:25:40,770
very important so the library itself is
640
00:25:40,770 --> 00:25:42,179
gonna do its own caching so caching
641
00:25:42,179 --> 00:25:43,710
happens at all levels of the hierarchy
642
00:25:43,710 --> 00:25:45,870
the library does caching not to keep on
643
00:25:45,870 --> 00:25:49,110
doing DNS requests then this server does
644
00:25:49,110 --> 00:25:51,480
caching this one does caching this god
645
00:25:51,480 --> 00:25:52,799
knows what this does but there's all
646
00:25:52,799 --> 00:25:55,140
kinds of things right and all the way
647
00:25:55,140 --> 00:26:02,669
down yes yes so let's think about the
648
00:26:02,669 --> 00:26:04,169
Akamai and what tech my does and how
649
00:26:04,169 --> 00:26:08,070
things are now what Akamai depends on in
650
00:26:08,070 --> 00:26:10,830
a crucial way is intercepting DNS
651
00:26:10,830 --> 00:26:12,480
requests and routing them to different
652
00:26:12,480 --> 00:26:15,090
to a different place right so I
653
00:26:15,090 --> 00:26:19,590
mentioned act might before the what they
654
00:26:19,590 --> 00:26:22,169
are trying to do is place servers that
655
00:26:22,169 --> 00:26:25,230
serve content and the ISP in order to
656
00:26:25,230 --> 00:26:28,049
cut down on the entire traffic but you
657
00:26:28,049 --> 00:26:33,090
see they have to figure out where you
658
00:26:33,090 --> 00:26:34,590
want to go and send you to the local
659
00:26:34,590 --> 00:26:36,299
server so the question is how do you do
660
00:26:36,299 --> 00:26:38,760
that one specific candidate for this is
661
00:26:38,760 --> 00:26:41,580
in fact DNS so if you actually use the
662
00:26:41,580 --> 00:26:43,860
DNS server and by the way this is one
663
00:26:43,860 --> 00:26:46,280
way to completely provide an illusion of
664
00:26:46,280 --> 00:26:49,649
parallel universe for the Internet this
665
00:26:49,649 --> 00:26:51,240
is why Open DNS was in
666
00:26:51,240 --> 00:26:53,550
creating because by doing DNS
667
00:26:53,550 --> 00:26:55,380
manipulations you can create the
668
00:26:55,380 --> 00:26:56,730
illusion that I go to CNN but they
669
00:26:56,730 --> 00:26:58,290
actually never go to CNN you're just a
670
00:26:58,290 --> 00:27:01,679
website that looks like CNN right if you
671
00:27:01,679 --> 00:27:04,679
can mess with DNS entries you can do
672
00:27:04,679 --> 00:27:06,630
fishing you know about the fishing
673
00:27:06,630 --> 00:27:09,210
security right exploit you can do
674
00:27:09,210 --> 00:27:11,490
fishing on a very large scale I mean how
675
00:27:11,490 --> 00:27:13,620
hard is it to make something that looks
676
00:27:13,620 --> 00:27:16,320
like CNN not as hard as you might think
677
00:27:16,320 --> 00:27:17,790
you dumped some of their pages you do
678
00:27:17,790 --> 00:27:19,050
some of their stuff and you can create
679
00:27:19,050 --> 00:27:21,059
the illusion that you have a CNN right
680
00:27:21,059 --> 00:27:22,650
now CNN is not interesting but Bank of
681
00:27:22,650 --> 00:27:26,250
America is right you say type your
682
00:27:26,250 --> 00:27:27,720
password because I'm gonna let you see
683
00:27:27,720 --> 00:27:32,040
your account and then say oops technical
684
00:27:32,040 --> 00:27:33,720
error but they got your password and
685
00:27:33,720 --> 00:27:34,950
cleaned up the account in the next few
686
00:27:34,950 --> 00:27:37,050
milliseconds but by the way as
687
00:27:37,050 --> 00:27:38,850
incredible as it might seem I might as
688
00:27:38,850 --> 00:27:40,350
well tell you about the site story which
689
00:27:40,350 --> 00:27:41,220
is this is one of the more incredible
690
00:27:41,220 --> 00:27:43,260
things now it's hard to do this with
691
00:27:43,260 --> 00:27:45,960
Bank of America because of the the
692
00:27:45,960 --> 00:27:47,730
security certificates which you're gonna
693
00:27:47,730 --> 00:27:49,080
get more details in a networking class
694
00:27:49,080 --> 00:27:51,090
and so on so those supposedly are
695
00:27:51,090 --> 00:27:53,130
unfortunate but apparently some people
696
00:27:53,130 --> 00:27:56,700
in Romania right lots of extremely bored
697
00:27:56,700 --> 00:27:59,220
extremely skilled people in Romania they
698
00:27:59,220 --> 00:28:02,460
in fact designed a full-fledged ATM
699
00:28:02,460 --> 00:28:05,010
machine that looked incredibly accurate
700
00:28:05,010 --> 00:28:07,350
and they placed it in various places in
701
00:28:07,350 --> 00:28:09,300
Bucharest and people went on to take
702
00:28:09,300 --> 00:28:10,890
money out the machine was basically just
703
00:28:10,890 --> 00:28:14,190
recording the pin number and account
704
00:28:14,190 --> 00:28:18,330
number for for the bank account cleaning
705
00:28:18,330 --> 00:28:20,790
purposes right so they literally took
706
00:28:20,790 --> 00:28:22,200
the trouble to have highly credible
707
00:28:22,200 --> 00:28:25,559
manuals very interactive very nice they
708
00:28:25,559 --> 00:28:27,000
probably could they have even sold the
709
00:28:27,000 --> 00:28:29,490
application but they they use it only to
710
00:28:29,490 --> 00:28:30,809
trick things in Gainesville we had
711
00:28:30,809 --> 00:28:31,620
incidents like that
712
00:28:31,620 --> 00:28:34,590
okay so DNS becomes crucial part of the
713
00:28:34,590 --> 00:28:36,270
security infrastructure you go to the
714
00:28:36,270 --> 00:28:38,790
wrong DNS server you can be routed in
715
00:28:38,790 --> 00:28:42,300
very ugly ugly places so to come back to
716
00:28:42,300 --> 00:28:44,760
Akamai what you could do is try to
717
00:28:44,760 --> 00:28:47,130
intercept it as a DNS DNS level and
718
00:28:47,130 --> 00:28:50,010
that's happening in fact quite often
719
00:28:50,010 --> 00:28:53,250
when you try to detect from what region
720
00:28:53,250 --> 00:28:54,360
people actually come there are now
721
00:28:54,360 --> 00:28:56,250
services actually you can tell by the IP
722
00:28:56,250 --> 00:28:57,780
address where they come from and route
723
00:28:57,780 --> 00:28:59,120
them in a completely different place so
724
00:28:59,120 --> 00:29:02,520
nobody says that this DNS server should
725
00:29:02,520 --> 00:29:03,580
be
726
00:29:03,580 --> 00:29:07,180
very rigid relatively straightforward
727
00:29:07,180 --> 00:29:09,790
little things I mean I want you to make
728
00:29:09,790 --> 00:29:11,080
the difference between the protocol
729
00:29:11,080 --> 00:29:12,670
itself in which you're making a request
730
00:29:12,670 --> 00:29:14,260
and you're saying please give me this
731
00:29:14,260 --> 00:29:16,120
mapping and what the server does that
732
00:29:16,120 --> 00:29:17,800
server can do whatever it wants and can
733
00:29:17,800 --> 00:29:19,210
do very sophisticated things things
734
00:29:19,210 --> 00:29:21,310
exactly like this is you know what I
735
00:29:21,310 --> 00:29:24,220
know of this Akamai server that's
736
00:29:24,220 --> 00:29:25,900
actually at your ISP and I'll give you
737
00:29:25,900 --> 00:29:27,130
the IP address of that tech my server
738
00:29:27,130 --> 00:29:28,720
and to you it looks like CNN because it
739
00:29:28,720 --> 00:29:30,430
in fact has a CNN content which is
740
00:29:30,430 --> 00:29:31,900
propagated within whatever number of
741
00:29:31,900 --> 00:29:33,520
seconds because that's why CNN pays
742
00:29:33,520 --> 00:29:36,250
Akamai a lot of money right that's one
743
00:29:36,250 --> 00:29:37,660
way to do it there are other ways to do
744
00:29:37,660 --> 00:29:38,610
it
745
00:29:38,610 --> 00:29:42,400
using some sort of much lower level
746
00:29:42,400 --> 00:29:47,950
protocols with IP forwarding right and
747
00:29:47,950 --> 00:29:50,440
stuff of that sort but the DNS is by far
748
00:29:50,440 --> 00:29:51,760
the most convenient and more reliable
749
00:29:51,760 --> 00:29:55,120
way to actually Belize okay so be
750
00:29:55,120 --> 00:29:56,560
careful with especially the napping
751
00:29:56,560 --> 00:29:59,500
between names and things this is why for
752
00:29:59,500 --> 00:30:00,580
example you might get a very different
753
00:30:00,580 --> 00:30:04,570
web page within a certain network and
754
00:30:04,570 --> 00:30:06,160
outside the network I mean probably one
755
00:30:06,160 --> 00:30:08,920
of the more notorious cases is the Best
756
00:30:08,920 --> 00:30:13,480
Buy case so in every store Best Buy
757
00:30:13,480 --> 00:30:15,400
gutting a lot has trouble for this so
758
00:30:15,400 --> 00:30:17,260
you got if you go to bestbuy.com from
759
00:30:17,260 --> 00:30:18,670
the internal network you actually get a
760
00:30:18,670 --> 00:30:20,380
completely different website and that's
761
00:30:20,380 --> 00:30:22,930
why calm and you will go to any other
762
00:30:22,930 --> 00:30:25,480
network the most important thing is not
763
00:30:25,480 --> 00:30:27,160
the looks which are identical you can
764
00:30:27,160 --> 00:30:31,690
tell is the prices right this was
765
00:30:31,690 --> 00:30:33,130
designed specifically for people that
766
00:30:33,130 --> 00:30:38,050
check prices on whatever bestbuy.com and
767
00:30:38,050 --> 00:30:40,270
so on and because every store manager
768
00:30:40,270 --> 00:30:42,490
has the ability to decide on what prices
769
00:30:42,490 --> 00:30:44,410
they have and whatnot they said hey why
770
00:30:44,410 --> 00:30:47,620
not take it all the way to DNS things
771
00:30:47,620 --> 00:30:49,180
and whatnot so they give you a special
772
00:30:49,180 --> 00:30:54,160
version of bestbuy.com right and again
773
00:30:54,160 --> 00:30:55,870
there is no way to tell unless you use
774
00:30:55,870 --> 00:30:59,530
your phone through 4G connect to Verizon
775
00:30:59,530 --> 00:31:01,930
who's not friends with Best Buy to do
776
00:31:01,930 --> 00:31:04,120
the hijacking but they could all right
777
00:31:04,120 --> 00:31:06,370
and then you see the real version also
778
00:31:06,370 --> 00:31:08,500
I'd say the best buy.com they could in
779
00:31:08,500 --> 00:31:10,600
fact then provide a complete illusion
780
00:31:10,600 --> 00:31:13,360
for other websites all you need actually
781
00:31:13,360 --> 00:31:16,060
is to watch the traffic so even if you
782
00:31:16,060 --> 00:31:17,440
have normal traffic sees you
783
00:31:17,440 --> 00:31:19,629
can intercept traffic and modify traffic
784
00:31:19,629 --> 00:31:22,470
right they do this for example to inject
785
00:31:22,470 --> 00:31:26,049
advertising then essentially what you
786
00:31:26,049 --> 00:31:28,210
can say is hey I'll increase by 10
787
00:31:28,210 --> 00:31:30,330
percent all the prices if I can detect
788
00:31:30,330 --> 00:31:32,679
how the prices are stored in the packets
789
00:31:32,679 --> 00:31:34,240
is this hard to pull off but possible
790
00:31:34,240 --> 00:31:36,970
right when you look at amazon.com I'll
791
00:31:36,970 --> 00:31:38,620
simply increase by 10 percent any price
792
00:31:38,620 --> 00:31:40,450
at amazon displays by modifying the
793
00:31:40,450 --> 00:31:45,159
numbers at um on the wire big stunts
794
00:31:45,159 --> 00:31:46,629
like this were pulled off by the hacking
795
00:31:46,629 --> 00:31:48,250
community in various circumstance it
796
00:31:48,250 --> 00:31:49,480
takes a very specific kind of
797
00:31:49,480 --> 00:31:51,399
determination but it is possible so it
798
00:31:51,399 --> 00:31:53,350
can be very dangerous to talk to the
799
00:31:53,350 --> 00:31:56,019
wrong DNS server and that becomes very
800
00:31:56,019 --> 00:31:58,720
important now this kind of things could
801
00:31:58,720 --> 00:32:00,580
be useful this hierarchical organization
802
00:32:00,580 --> 00:32:02,320
can actually be useful in circumstances
803
00:32:02,320 --> 00:32:04,289
that have nothing to do with the DNS and
804
00:32:04,289 --> 00:32:07,480
mimic what humans were doing for a very
805
00:32:07,480 --> 00:32:09,759
long time I mean think about how large
806
00:32:09,759 --> 00:32:14,950
organizations are organized right well I
807
00:32:14,950 --> 00:32:17,679
mean reasonably close to this right you
808
00:32:17,679 --> 00:32:20,049
have if you're alone low level
809
00:32:20,049 --> 00:32:21,549
programmer right you have a boss your
810
00:32:21,549 --> 00:32:23,080
boss has about your boss has a boss has
811
00:32:23,080 --> 00:32:24,789
a vault as a boss if you need to talk to
812
00:32:24,789 --> 00:32:25,870
another program and in a lot of the
813
00:32:25,870 --> 00:32:27,129
organizations you have to go all the way
814
00:32:27,129 --> 00:32:28,870
to the Train and down the chain and get
815
00:32:28,870 --> 00:32:30,309
approval for everybody and six months
816
00:32:30,309 --> 00:32:32,379
later maybe you meet the guy that could
817
00:32:32,379 --> 00:32:35,860
help you in five minutes right so this
818
00:32:35,860 --> 00:32:36,909
is the problem in any big organization
819
00:32:36,909 --> 00:32:39,340
and to some extent it looks like it's
820
00:32:39,340 --> 00:32:42,279
the same here but again you could cache
821
00:32:42,279 --> 00:32:44,649
maybe that and who can help me and then
822
00:32:44,649 --> 00:32:45,730
later you just contact that person
823
00:32:45,730 --> 00:32:48,370
that's also knowing so naming becomes
824
00:32:48,370 --> 00:32:50,850
very important in normal human
825
00:32:50,850 --> 00:32:53,490
interaction and not only through this
826
00:32:53,490 --> 00:32:55,840
obviously quite often you're gonna see
827
00:32:55,840 --> 00:32:57,279
mimicking things that we are doing
828
00:32:57,279 --> 00:32:59,769
before computers reflected in some of
829
00:32:59,769 --> 00:33:01,240
the things we do with computers but with
830
00:33:01,240 --> 00:33:06,100
some kind of added benefit ok so let's
831
00:33:06,100 --> 00:33:09,610
see very quickly I tell you you can you
832
00:33:09,610 --> 00:33:11,440
can see all the details you can I mean
833
00:33:11,440 --> 00:33:12,820
if you really want protocol details
834
00:33:12,820 --> 00:33:14,590
which I don't care about necessarily in
835
00:33:14,590 --> 00:33:16,120
the class I care about the high level
836
00:33:16,120 --> 00:33:18,429
ideas the only way Kapadia and google
837
00:33:18,429 --> 00:33:20,529
and find ok that's I mean the protocol
838
00:33:20,529 --> 00:33:22,299
it's extremely specific and there is a
839
00:33:22,299 --> 00:33:23,679
large standard that specifies exactly
840
00:33:23,679 --> 00:33:25,659
what the nsevers should do it's highly
841
00:33:25,659 --> 00:33:28,000
irrelevant in fact unless you want to
842
00:33:28,000 --> 00:33:29,960
implement your own DNS err
843
00:33:29,960 --> 00:33:33,660
so here's how things could go right so
844
00:33:33,660 --> 00:33:34,980
you're gonna have interaction with these
845
00:33:34,980 --> 00:33:36,720
nodes until somebody knows about that IP
846
00:33:36,720 --> 00:33:43,290
cast it right now in DNS you understand
847
00:33:43,290 --> 00:33:45,300
that you're gonna have types of records
848
00:33:45,300 --> 00:33:47,250
how those things are specified configure
849
00:33:47,250 --> 00:33:49,680
what do they do again if there is even a
850
00:33:49,680 --> 00:33:51,390
shift they keep on switching to
851
00:33:51,390 --> 00:33:53,910
different sub standards and things so it
852
00:33:53,910 --> 00:33:56,580
becomes not particularly important to
853
00:33:56,580 --> 00:33:58,170
memorize this so I don't want to go
854
00:33:58,170 --> 00:34:01,050
through this let's talk a little bit
855
00:34:01,050 --> 00:34:03,510
about other kinds of hierarchies for
856
00:34:03,510 --> 00:34:05,340
example LDAP but maybe even more
857
00:34:05,340 --> 00:34:06,810
interestingly I want to spend more time
858
00:34:06,810 --> 00:34:10,080
on that on attribute based or search
859
00:34:10,080 --> 00:34:17,070
based naming okay so LDAP is some sort
860
00:34:17,070 --> 00:34:22,918
of a souped up phone book so LDAP is
861
00:34:22,918 --> 00:34:24,210
about finding people not find English
862
00:34:24,210 --> 00:34:27,090
wins right we had the DNS for finding
863
00:34:27,090 --> 00:34:29,190
machines think about finding phone
864
00:34:29,190 --> 00:34:31,469
numbers for people how do you do that
865
00:34:31,469 --> 00:34:35,460
well let's ignore Search Search is to a
866
00:34:35,460 --> 00:34:37,949
large extent cheating so why do we need
867
00:34:37,949 --> 00:34:40,050
search because the normal way to find
868
00:34:40,050 --> 00:34:41,730
something is too cumbersome it takes too
869
00:34:41,730 --> 00:34:43,889
much time and then you say find some
870
00:34:43,889 --> 00:34:46,080
sort of an approximate mechanism that
871
00:34:46,080 --> 00:34:48,510
maybe gives me the right answer and we
872
00:34:48,510 --> 00:34:52,500
call it search okay but if you want for
873
00:34:52,500 --> 00:34:53,668
example to find the phone number so
874
00:34:53,668 --> 00:34:55,830
think about good old days okay in which
875
00:34:55,830 --> 00:34:58,650
everything was on paper say okay I mean
876
00:34:58,650 --> 00:35:00,030
we had phones for a hundred plus years
877
00:35:00,030 --> 00:35:02,100
and how would you find the number well
878
00:35:02,100 --> 00:35:03,300
you could
879
00:35:03,300 --> 00:35:05,250
and this actually mimics maybe even DNS
880
00:35:05,250 --> 00:35:07,020
but definitely LDAP right you could
881
00:35:07,020 --> 00:35:11,880
basically let's say you do it from the
882
00:35:11,880 --> 00:35:13,380
phone right you could call some kind of
883
00:35:13,380 --> 00:35:15,300
a special local service to say I need
884
00:35:15,300 --> 00:35:17,610
you to help me find some person they
885
00:35:17,610 --> 00:35:19,290
would say okay so where does the person
886
00:35:19,290 --> 00:35:21,840
reside if it's that town let's say okay
887
00:35:21,840 --> 00:35:23,910
we have our own book in which we look
888
00:35:23,910 --> 00:35:25,470
and give you immediately answer but if
889
00:35:25,470 --> 00:35:27,720
not I'm gonna call my counterpart in
890
00:35:27,720 --> 00:35:29,010
another town which might call the
891
00:35:29,010 --> 00:35:30,330
counterpart in another country which
892
00:35:30,330 --> 00:35:32,550
might find go up and down the hierarchy
893
00:35:32,550 --> 00:35:34,320
to find whom I know the name of that
894
00:35:34,320 --> 00:35:37,710
person of course god forbid if they
895
00:35:37,710 --> 00:35:39,450
moved from the town or you didn't know
896
00:35:39,450 --> 00:35:40,890
in what town they are in the first place
897
00:35:40,890 --> 00:35:42,780
right so these things can become very
898
00:35:42,780 --> 00:35:43,250
cumbersome
899
00:35:43,250 --> 00:35:47,930
the same thing with the DNS so I don't
900
00:35:47,930 --> 00:35:50,900
know how you feel but personally if I
901
00:35:50,900 --> 00:35:53,420
make a small mistake in the URL and I
902
00:35:53,420 --> 00:35:56,600
get no such URL I get annoyed right it's
903
00:35:56,600 --> 00:35:58,640
like hey figure it out and this is why
904
00:35:58,640 --> 00:36:01,190
Google does what did you notice almost
905
00:36:01,190 --> 00:36:03,650
anything you put in there for strikes to
906
00:36:03,650 --> 00:36:05,840
do the normal thing and if it doesn't
907
00:36:05,840 --> 00:36:07,550
find it it throws it in the search pool
908
00:36:07,550 --> 00:36:09,290
and the search it's actually much more
909
00:36:09,290 --> 00:36:11,240
robust its approximate and so on and
910
00:36:11,240 --> 00:36:13,400
they come back with did you mean the
911
00:36:13,400 --> 00:36:17,360
real URL and of course I say yes now
912
00:36:17,360 --> 00:36:20,720
that encourages very reckless URL typing
913
00:36:20,720 --> 00:36:23,570
I don't even bother to look at what I
914
00:36:23,570 --> 00:36:25,250
have here there or I don't even bother
915
00:36:25,250 --> 00:36:27,830
to format it like a URL I just thrown in
916
00:36:27,830 --> 00:36:29,210
a bunch of words that I now are Gavin
917
00:36:29,210 --> 00:36:30,770
get me close to the to the search and
918
00:36:30,770 --> 00:36:33,350
give me within 10 results and most of
919
00:36:33,350 --> 00:36:35,630
the time I just I'm feeling lucky and
920
00:36:35,630 --> 00:36:37,640
just click on the first one so you can
921
00:36:37,640 --> 00:36:41,210
see how search could actually be almost
922
00:36:41,210 --> 00:36:44,270
a full substitute for name before name
923
00:36:44,270 --> 00:36:47,590
service okay so LDAP started when
924
00:36:47,590 --> 00:36:49,580
computers were not so good at search
925
00:36:49,580 --> 00:36:51,890
before the Google times right in which
926
00:36:51,890 --> 00:36:53,300
we had Alta Vista that were not
927
00:36:53,300 --> 00:36:55,280
particularly good at searching and then
928
00:36:55,280 --> 00:36:56,870
they try to put a lot of a lot of
929
00:36:56,870 --> 00:36:59,150
structure into it right so you want to
930
00:36:59,150 --> 00:37:01,100
get some sort of a hierarchy that could
931
00:37:01,100 --> 00:37:02,720
be related to country locality
932
00:37:02,720 --> 00:37:04,370
organization organization unit so on and
933
00:37:04,370 --> 00:37:05,720
so forth and then extra information
934
00:37:05,720 --> 00:37:07,220
about people and this is essentially a
935
00:37:07,220 --> 00:37:08,840
very detailed phone record like thing
936
00:37:08,840 --> 00:37:11,110
but you associate information about
937
00:37:11,110 --> 00:37:13,340
users that so maybe not only phone
938
00:37:13,340 --> 00:37:16,340
numbers but IP addresses all kinds of
939
00:37:16,340 --> 00:37:20,090
other things right but in essence it's
940
00:37:20,090 --> 00:37:24,080
very similar to the DNS right LDAP was
941
00:37:24,080 --> 00:37:25,820
introduced for very large organizations
942
00:37:25,820 --> 00:37:27,500
and you might in fact have multiple such
943
00:37:27,500 --> 00:37:28,910
an LDAP servers talking to each other
944
00:37:28,910 --> 00:37:30,500
very much like DNS does but it's a
945
00:37:30,500 --> 00:37:32,240
different protocol that caters to a
946
00:37:32,240 --> 00:37:34,460
slightly different usage scenario right
947
00:37:34,460 --> 00:37:36,740
and first of all it's not controlled by
948
00:37:36,740 --> 00:37:38,240
the organization that controls DNS
949
00:37:38,240 --> 00:37:40,040
sometimes you need to implement almost
950
00:37:40,040 --> 00:37:41,660
the same thing just because the wrong
951
00:37:41,660 --> 00:37:43,670
people control the the thing you're
952
00:37:43,670 --> 00:37:47,450
trying to mimic okay all right details
953
00:37:47,450 --> 00:37:49,040
again don't matter that much the
954
00:37:49,040 --> 00:37:50,600
important thing is all of these lookups
955
00:37:50,600 --> 00:37:53,540
do happen and somebody that might know
956
00:37:53,540 --> 00:37:55,310
about what you're looking for is contact
957
00:37:55,310 --> 00:37:56,960
it's very much like
958
00:37:56,960 --> 00:37:58,760
what was happening with the phone
959
00:37:58,760 --> 00:38:00,440
lookups in the good old days except that
960
00:38:00,440 --> 00:38:03,530
it's much faster hopefully now LDAP was
961
00:38:03,530 --> 00:38:06,020
also introduced in order to manage
962
00:38:06,020 --> 00:38:08,150
passwords and access so you can have I
963
00:38:08,150 --> 00:38:10,160
you can specify domains and who can
964
00:38:10,160 --> 00:38:12,230
access what and other things right to
965
00:38:12,230 --> 00:38:14,270
aid in identification which is a
966
00:38:14,270 --> 00:38:15,500
completely different issue that
967
00:38:15,500 --> 00:38:18,830
networking is a class would cater to ok
968
00:38:18,830 --> 00:38:22,430
so again you could have a and you
969
00:38:22,430 --> 00:38:23,480
usually have a hierarchical
970
00:38:23,480 --> 00:38:25,130
implementation of an LDAP server in
971
00:38:25,130 --> 00:38:28,100
which as you go higher up in the
972
00:38:28,100 --> 00:38:29,660
hierarchy you contact other servers in
973
00:38:29,660 --> 00:38:31,370
to help you resolve the names but there
974
00:38:31,370 --> 00:38:35,560
is no global LDAP if you want
975
00:38:35,560 --> 00:38:37,850
infrastructure LDAP it's all always
976
00:38:37,850 --> 00:38:40,040
something that an enterprise or single
977
00:38:40,040 --> 00:38:41,480
entity does and there is no connection
978
00:38:41,480 --> 00:38:43,790
to each other of that service right it's
979
00:38:43,790 --> 00:38:45,590
then fully controlled and fully managed
980
00:38:45,590 --> 00:38:47,060
by a single large organization of course
981
00:38:47,060 --> 00:38:48,230
within the organization you can have
982
00:38:48,230 --> 00:38:49,880
many sub parts and you need multiple
983
00:38:49,880 --> 00:38:54,820
administrators to take care of this ok
984
00:38:54,820 --> 00:38:59,570
and by the way LDAP is if you want an
985
00:38:59,570 --> 00:39:02,330
open standard that tries to mimic what
986
00:39:02,330 --> 00:39:04,730
active I think active service was going
987
00:39:04,730 --> 00:39:07,630
on on Windows right so Microsoft
988
00:39:07,630 --> 00:39:10,580
introduced their own naming service that
989
00:39:10,580 --> 00:39:14,420
in spirit is the same as LDAP and it had
990
00:39:14,420 --> 00:39:15,740
a little problem that it only ran on
991
00:39:15,740 --> 00:39:17,750
Windows and then people wanted a more
992
00:39:17,750 --> 00:39:18,980
generic solution that can spend
993
00:39:18,980 --> 00:39:20,330
different operating system so on and so
994
00:39:20,330 --> 00:39:23,680
forth and then kind of a big hullabaloo
995
00:39:23,980 --> 00:39:28,280
right now when it comes to distributed
996
00:39:28,280 --> 00:39:29,840
hash tables we talked about them right
997
00:39:29,840 --> 00:39:31,250
you're you're you have this peer-to-peer
998
00:39:31,250 --> 00:39:33,650
network and it's all about naming you
999
00:39:33,650 --> 00:39:35,540
can think about placing some sort of a
1000
00:39:35,540 --> 00:39:38,750
hierarchy on top of that as well right
1001
00:39:38,750 --> 00:39:40,610
that will alleviate some of the problems
1002
00:39:40,610 --> 00:39:42,650
you might have with just knowing what
1003
00:39:42,650 --> 00:39:46,130
the hash is for a specific resource
1004
00:39:46,130 --> 00:39:47,780
you're looking for if you can take the
1005
00:39:47,780 --> 00:39:49,580
resource and connect it to a hash and
1006
00:39:49,580 --> 00:39:50,810
you can do the routing we talked about
1007
00:39:50,810 --> 00:39:52,040
this last time and that's going to be
1008
00:39:52,040 --> 00:39:54,890
fine but of course you would like to
1009
00:39:54,890 --> 00:39:56,180
have a little bit of a hierarchy to be
1010
00:39:56,180 --> 00:39:58,160
able to say you know what I know most of
1011
00:39:58,160 --> 00:40:00,530
it but I want to list what say let's say
1012
00:40:00,530 --> 00:40:01,700
it's in this director or things like
1013
00:40:01,700 --> 00:40:02,990
that and for for that you need to
1014
00:40:02,990 --> 00:40:04,490
implement some sort of a hierarchy
1015
00:40:04,490 --> 00:40:05,990
now there is an interesting paper in
1016
00:40:05,990 --> 00:40:08,030
2004 that explains how such a hierarchy
1017
00:40:08,030 --> 00:40:09,440
could be implemented on on top of
1018
00:40:09,440 --> 00:40:10,280
peer-to-peer net
1019
00:40:10,280 --> 00:40:12,140
I don't want to go into all the details
1020
00:40:12,140 --> 00:40:13,670
none of these things are deployed on a
1021
00:40:13,670 --> 00:40:14,960
large scale I hope that peers I'm sorry
1022
00:40:14,960 --> 00:40:17,120
but the disability hash table
1023
00:40:17,120 --> 00:40:19,430
however lookup is more kind of a
1024
00:40:19,430 --> 00:40:21,200
research prototype implemented by some
1025
00:40:21,200 --> 00:40:22,190
people to write a paper and not
1026
00:40:22,190 --> 00:40:24,340
necessarily something that's deployed so
1027
00:40:24,340 --> 00:40:28,160
it's interesting but knowing too much
1028
00:40:28,160 --> 00:40:29,600
too many details about it is not gonna
1029
00:40:29,600 --> 00:40:31,220
help because no organization I know if
1030
00:40:31,220 --> 00:40:32,630
it's actually deploying these things
1031
00:40:32,630 --> 00:40:34,700
okay but it's possible this is the
1032
00:40:34,700 --> 00:40:37,400
important thing now higher keys do allow
1033
00:40:37,400 --> 00:40:39,650
you to organize things better not only
1034
00:40:39,650 --> 00:40:41,480
to find things faster right because you
1035
00:40:41,480 --> 00:40:42,980
have some kind of a fan out in the tree
1036
00:40:42,980 --> 00:40:45,560
but also to organize things barring some
1037
00:40:45,560 --> 00:40:48,500
sort of logical bundles and that's one
1038
00:40:48,500 --> 00:40:50,240
reason you might want in fact to have
1039
00:40:50,240 --> 00:40:52,850
some sort of a hierarchy on top of the
1040
00:40:52,850 --> 00:41:07,460
CBD hash tables now okay let me talk
1041
00:41:07,460 --> 00:41:08,810
about another topic that somehow there
1042
00:41:08,810 --> 00:41:11,240
is no slide about it I think it's closer
1043
00:41:11,240 --> 00:41:13,160
to search right so we still have about
1044
00:41:13,160 --> 00:41:16,940
10 minutes I think right so something
1045
00:41:16,940 --> 00:41:19,000
that does become a lot more useful is
1046
00:41:19,000 --> 00:41:23,560
something guided now by some sort of
1047
00:41:23,560 --> 00:41:25,460
properties of the thing you're looking
1048
00:41:25,460 --> 00:41:28,460
for right I think in the textbook it has
1049
00:41:28,460 --> 00:41:31,580
a funky name by the way the one reason
1050
00:41:31,580 --> 00:41:33,530
I'm not insisting too much on the
1051
00:41:33,530 --> 00:41:35,540
terminology in distributed systems is
1052
00:41:35,540 --> 00:41:37,070
because it's not particularly stable
1053
00:41:37,070 --> 00:41:39,050
you'll pick another book and it talks
1054
00:41:39,050 --> 00:41:40,340
about things in a different way and
1055
00:41:40,340 --> 00:41:42,020
people in the research community can't
1056
00:41:42,020 --> 00:41:45,140
really agree how to call things right so
1057
00:41:45,140 --> 00:41:47,900
then what's the point of insisting in oh
1058
00:41:47,900 --> 00:41:50,270
you must refer to this in this way right
1059
00:41:50,270 --> 00:41:51,860
for big o-notation it's extremely
1060
00:41:51,860 --> 00:41:55,160
standardized the whole if you want
1061
00:41:55,160 --> 00:41:57,170
theory community agrees on how to put
1062
00:41:57,170 --> 00:41:58,940
the big o-notation but not for the cpu
1063
00:41:58,940 --> 00:42:00,470
systems these people don't like this
1064
00:42:00,470 --> 00:42:02,810
right so this is called I think
1065
00:42:02,810 --> 00:42:05,350
attribute
1066
00:42:07,710 --> 00:42:14,160
one second since I started well it's
1067
00:42:14,160 --> 00:42:16,579
something like attribute-based and
1068
00:42:16,579 --> 00:42:20,990
naming the idea though is the following
1069
00:42:20,990 --> 00:42:23,220
I'm gonna associate with every
1070
00:42:23,220 --> 00:42:24,839
particular resource instead of
1071
00:42:24,839 --> 00:42:26,790
associating a so-called name I'm gonna
1072
00:42:26,790 --> 00:42:31,619
associate properties right and I might
1073
00:42:31,619 --> 00:42:33,750
have usually you you do want to have a
1074
00:42:33,750 --> 00:42:35,579
mix between the hierarchy and so on no
1075
00:42:35,579 --> 00:42:37,230
if you look at the LDAP implementation
1076
00:42:37,230 --> 00:42:39,119
you can think of all the elements in out
1077
00:42:39,119 --> 00:42:42,450
there as being in fact properties right
1078
00:42:42,450 --> 00:42:44,160
so even though they do reflect some sort
1079
00:42:44,160 --> 00:42:45,569
of a hierarchy country locality
1080
00:42:45,569 --> 00:42:47,190
organization organizational unit you can
1081
00:42:47,190 --> 00:42:48,750
think of them as properties and I can
1082
00:42:48,750 --> 00:42:51,030
add other properties right for example
1083
00:42:51,030 --> 00:42:53,700
skill set now this becomes very
1084
00:42:53,700 --> 00:42:54,990
important for example I not in
1085
00:42:54,990 --> 00:42:57,510
organization right so in order to find
1086
00:42:57,510 --> 00:42:59,640
somebody you might think about and
1087
00:42:59,640 --> 00:43:01,740
contemplate having a service in which
1088
00:43:01,740 --> 00:43:04,710
you specify a set of if you want
1089
00:43:04,710 --> 00:43:06,059
features properties it's something that
1090
00:43:06,059 --> 00:43:07,349
looks similar to a query and you say
1091
00:43:07,349 --> 00:43:09,900
find me somebody who fits this query now
1092
00:43:09,900 --> 00:43:12,000
this is an indirect way to look for
1093
00:43:12,000 --> 00:43:14,579
specific resources but in fact can be a
1094
00:43:14,579 --> 00:43:17,160
lot more useful than a direct way any
1095
00:43:17,160 --> 00:43:21,270
mistake in how you specify the hierarchy
1096
00:43:21,270 --> 00:43:23,220
for example will immediately result in
1097
00:43:23,220 --> 00:43:25,170
yeah we don't know of anything like that
1098
00:43:25,170 --> 00:43:27,030
we tried it doesn't make sense you're
1099
00:43:27,030 --> 00:43:29,700
not going in the hierarchy right we
1100
00:43:29,700 --> 00:43:31,799
contacted so for example typical
1101
00:43:31,799 --> 00:43:36,210
mistakes are Ln vs NL I mean good luck
1102
00:43:36,210 --> 00:43:38,220
remembering that it's NL really for
1103
00:43:38,220 --> 00:43:40,440
Netherlands right or things of this sort
1104
00:43:40,440 --> 00:43:42,210
you make the slightest mistake like this
1105
00:43:42,210 --> 00:43:45,660
the result comes back and says never
1106
00:43:45,660 --> 00:43:48,059
heard of anything there is no vu domain
1107
00:43:48,059 --> 00:43:50,490
in Ln I don't even know what Ln is or if
1108
00:43:50,490 --> 00:43:54,780
it exists okay versus you run a search
1109
00:43:54,780 --> 00:43:56,660
especially a search that's robust
1110
00:43:56,660 --> 00:43:58,859
especially a search for example what
1111
00:43:58,859 --> 00:44:00,660
Google does now that now tries to make
1112
00:44:00,660 --> 00:44:03,559
comparison against queries they actually
1113
00:44:03,559 --> 00:44:06,510
match your query against other queries
1114
00:44:06,510 --> 00:44:07,920
to figure out what you might have meant
1115
00:44:07,920 --> 00:44:10,170
if there is no perfect match right so
1116
00:44:10,170 --> 00:44:11,790
you have complicated scoring techniques
1117
00:44:11,790 --> 00:44:13,380
to determine what the answer might have
1118
00:44:13,380 --> 00:44:14,609
been especially if no pepper
1119
00:44:14,609 --> 00:44:16,440
you should always before perfect matches
1120
00:44:16,440 --> 00:44:17,579
but if you don't have a perfect match
1121
00:44:17,579 --> 00:44:19,380
some sort of scoring could actually get
1122
00:44:19,380 --> 00:44:21,509
you much much closer right
1123
00:44:21,509 --> 00:44:24,659
in that case the search algorithm can
1124
00:44:24,659 --> 00:44:25,949
say you know what I don't have a perfect
1125
00:44:25,949 --> 00:44:28,349
match but this looks good enough now in
1126
00:44:28,349 --> 00:44:30,989
a perfect match other things can become
1127
00:44:30,989 --> 00:44:33,029
as important as what you normally
1128
00:44:33,029 --> 00:44:35,099
consider the top domain right so for
1129
00:44:35,099 --> 00:44:36,419
example in Google maybe we can try this
1130
00:44:36,419 --> 00:44:38,429
exercise if I put a URL in which I
1131
00:44:38,429 --> 00:44:40,889
invert just two letters if this is
1132
00:44:40,889 --> 00:44:43,559
something that a lot some number of
1133
00:44:43,559 --> 00:44:45,659
people were looking for Google might
1134
00:44:45,659 --> 00:44:47,549
know about such a query might have run
1135
00:44:47,549 --> 00:44:50,189
this approximate matching algorithm but
1136
00:44:50,189 --> 00:44:53,009
now that's now based on properties well
1137
00:44:53,009 --> 00:44:54,630
it's more based on kind of text search
1138
00:44:54,630 --> 00:44:58,579
and say oh there is no perfect match but
1139
00:44:58,579 --> 00:45:01,199
here is some probably a very good guess
1140
00:45:01,199 --> 00:45:03,029
of what it is actually Google does that
1141
00:45:03,029 --> 00:45:05,339
so well now that they assume by default
1142
00:45:05,339 --> 00:45:06,749
that you made a mistake they give you
1143
00:45:06,749 --> 00:45:08,069
the answer as if you type the right
1144
00:45:08,069 --> 00:45:09,539
thing and they just put a little bit of
1145
00:45:09,539 --> 00:45:11,369
a disclaimer at the top and they say did
1146
00:45:11,369 --> 00:45:13,289
you meant and then the wrong thing so
1147
00:45:13,289 --> 00:45:15,029
they don't say I'll give you the answer
1148
00:45:15,029 --> 00:45:16,679
for the wrong thing you asked for and
1149
00:45:16,679 --> 00:45:18,569
they say did you mean the good thing
1150
00:45:18,569 --> 00:45:21,599
they flip them because again they
1151
00:45:21,599 --> 00:45:23,429
realize that most people do mistakes one
1152
00:45:23,429 --> 00:45:25,229
way or another and people are annoyed if
1153
00:45:25,229 --> 00:45:26,909
the machine is not smart enough to
1154
00:45:26,909 --> 00:45:28,499
figure out that they really wanted NL
1155
00:45:28,499 --> 00:45:32,669
here ok so then interestingly enough
1156
00:45:32,669 --> 00:45:36,509
this kind of search based naming becomes
1157
00:45:36,509 --> 00:45:38,849
far more useful and far more powerful
1158
00:45:38,849 --> 00:45:40,529
than the traditional higher the naming
1159
00:45:40,529 --> 00:45:43,139
so more and more you see in fact a shift
1160
00:45:43,139 --> 00:45:45,989
towards the matching properties
1161
00:45:45,989 --> 00:45:48,089
described properties of what you want so
1162
00:45:48,089 --> 00:45:51,989
on and so forth right and once you get
1163
00:45:51,989 --> 00:45:54,630
as a user once you get kind of hooked on
1164
00:45:54,630 --> 00:45:57,329
that there is almost no going back you
1165
00:45:57,329 --> 00:45:59,159
really only need something to think
1166
00:45:59,159 --> 00:46:01,249
about it if you know of enough
1167
00:46:01,249 --> 00:46:03,269
characteristics of a certain person
1168
00:46:03,269 --> 00:46:05,399
you're looking for and if you have a
1169
00:46:05,399 --> 00:46:07,799
decent search you never really have to
1170
00:46:07,799 --> 00:46:10,619
implement to remember sorry details
1171
00:46:10,619 --> 00:46:13,739
right so if I could put the first name
1172
00:46:13,739 --> 00:46:21,299
the city approximate age and part of the
1173
00:46:21,299 --> 00:46:23,039
phone number and somehow the Machine
1174
00:46:23,039 --> 00:46:24,899
figures out who it is hey I'm just gonna
1175
00:46:24,899 --> 00:46:28,079
do that right then I don't even have to
1176
00:46:28,079 --> 00:46:31,139
bother to even have particularly good
1177
00:46:31,139 --> 00:46:33,509
notes I mean for example I personally
1178
00:46:33,509 --> 00:46:34,220
don't own any
1179
00:46:34,220 --> 00:46:36,440
and the phone I mean phone books we have
1180
00:46:36,440 --> 00:46:38,780
because they give them for free but I
1181
00:46:38,780 --> 00:46:40,880
never use them even in my phone I don't
1182
00:46:40,880 --> 00:46:43,130
necessarily need all the information
1183
00:46:43,130 --> 00:46:44,930
about the contact because I can always
1184
00:46:44,930 --> 00:46:46,910
go in Google and just throw enough words
1185
00:46:46,910 --> 00:46:49,940
of the description of that person for
1186
00:46:49,940 --> 00:46:51,890
Google to magically get me some close
1187
00:46:51,890 --> 00:46:53,840
enough within ten results of that right
1188
00:46:53,840 --> 00:46:55,490
so this can be in fact extremely
1189
00:46:55,490 --> 00:47:00,080
powerful right this is the reason for
1190
00:47:00,080 --> 00:47:01,520
example why more and more organizations
1191
00:47:01,520 --> 00:47:03,619
are not only supporting something like a
1192
00:47:03,619 --> 00:47:05,330
health at but they are buying solutions
1193
00:47:05,330 --> 00:47:07,670
for example from Google to do this kind
1194
00:47:07,670 --> 00:47:09,410
of search for the purpose of naming if
1195
00:47:09,410 --> 00:47:12,609
nothing else right
1196
00:47:12,830 --> 00:47:15,800
not to mention that and this is really
1197
00:47:15,800 --> 00:47:17,420
powerful I believe and this is all about
1198
00:47:17,420 --> 00:47:19,160
in fact naming and about guessing what
1199
00:47:19,160 --> 00:47:21,380
I'm looking for so statistical analysis
1200
00:47:21,380 --> 00:47:22,580
that can go behind the scenes can be
1201
00:47:22,580 --> 00:47:24,740
extremely powerful and I'm referring now
1202
00:47:24,740 --> 00:47:26,720
to for example the autocompletes right
1203
00:47:26,720 --> 00:47:29,690
so here is how I know if I'm asking the
1204
00:47:29,690 --> 00:47:30,890
right thing on Google it's not even
1205
00:47:30,890 --> 00:47:32,390
about naming it's not only that I look
1206
00:47:32,390 --> 00:47:33,800
for a certain resource I don't even know
1207
00:47:33,800 --> 00:47:35,090
what I'm looking for but that's I type
1208
00:47:35,090 --> 00:47:37,869
Google it's going to give me choices if
1209
00:47:37,869 --> 00:47:40,400
what I'm looking for shows up in the
1210
00:47:40,400 --> 00:47:41,599
list of choices I know is the right
1211
00:47:41,599 --> 00:47:42,920
thing and I just click on that and it
1212
00:47:42,920 --> 00:47:45,470
goes there right so especially this kind
1213
00:47:45,470 --> 00:47:49,790
of mechanisms in which you're even
1214
00:47:49,790 --> 00:47:51,140
trying to figure out what are possible
1215
00:47:51,140 --> 00:47:53,180
choices for the naming as you type as
1216
00:47:53,180 --> 00:47:54,680
long as they have done interactively
1217
00:47:54,680 --> 00:47:56,180
right at the speed of the interaction
1218
00:47:56,180 --> 00:47:58,490
can tremendously help in this issue
1219
00:47:58,490 --> 00:48:00,109
resolved the name to some sort of a
1220
00:48:00,109 --> 00:48:02,300
resource especially when you're looking
1221
00:48:02,300 --> 00:48:04,369
for programming advice you can even tell
1222
00:48:04,369 --> 00:48:05,780
how popular a particular programming
1223
00:48:05,780 --> 00:48:09,260
languages by how good google's matching
1224
00:48:09,260 --> 00:48:12,500
algorithm is as you type along right so
1225
00:48:12,500 --> 00:48:14,150
for example um I'm doing some
1226
00:48:14,150 --> 00:48:16,220
programming in angularjs now and it
1227
00:48:16,220 --> 00:48:17,990
scary how popular it is because almost
1228
00:48:17,990 --> 00:48:19,460
anything you ask the Google
1229
00:48:19,460 --> 00:48:23,780
autocompletes everything right ok now
1230
00:48:23,780 --> 00:48:26,359
this is really the universe in which all
1231
00:48:26,359 --> 00:48:28,160
the name resolution it's actually moving
1232
00:48:28,160 --> 00:48:30,650
all the way is to form some sort of
1233
00:48:30,650 --> 00:48:32,540
hierarchies the directories and one new
1234
00:48:32,540 --> 00:48:34,130
way is to piggyback on some sort of
1235
00:48:34,130 --> 00:48:36,830
search ok that now starts to be applied
1236
00:48:36,830 --> 00:48:38,960
even to local files let alone files or
1237
00:48:38,960 --> 00:48:41,030
other resources that they've live on the
1238
00:48:41,030 --> 00:48:44,240
Internet if you're considering in the
1239
00:48:44,240 --> 00:48:46,860
future to implement any such name
1240
00:48:46,860 --> 00:48:49,200
think you have to consider some sort of
1241
00:48:49,200 --> 00:48:51,510
a powerful approximate search on top of
1242
00:48:51,510 --> 00:48:54,240
forming a hierarchy because it's too
1243
00:48:54,240 --> 00:48:56,700
hard to maintain the higher kids in a
1244
00:48:56,700 --> 00:49:00,180
good enough shape so the the Lu cuts
1245
00:49:00,180 --> 00:49:02,310
don't actually fail right so the big
1246
00:49:02,310 --> 00:49:03,810
problem for example with the DNS is the
1247
00:49:03,810 --> 00:49:05,340
amount of effort required to keep
1248
00:49:05,340 --> 00:49:08,640
everything consistent so that lookups
1249
00:49:08,640 --> 00:49:10,740
don't sell even when you're in fact have
1250
00:49:10,740 --> 00:49:13,890
become the the correct names now with
1251
00:49:13,890 --> 00:49:15,630
with Google for example all they need to
1252
00:49:15,630 --> 00:49:18,540
do is rerun their approximate index
1253
00:49:18,540 --> 00:49:20,880
building whatever algorithm let's say
1254
00:49:20,880 --> 00:49:22,200
every couple of weeks or whatever it is
1255
00:49:22,200 --> 00:49:24,030
it read that they are doing and they're
1256
00:49:24,030 --> 00:49:27,150
gonna get a fresher version of of the
1257
00:49:27,150 --> 00:49:31,440
mapping itself okay right now I don't
1258
00:49:31,440 --> 00:49:33,000
want to spend more time on this anyway
1259
00:49:33,000 --> 00:49:35,520
we have only about a minute left so this
1260
00:49:35,520 --> 00:49:37,020
kind of concludes the discussion about
1261
00:49:37,020 --> 00:49:39,810
the naming in general the specific cases
1262
00:49:39,810 --> 00:49:41,640
you have seen I would encourage you to
1263
00:49:41,640 --> 00:49:43,620
do at least a little bit of Wikipedia
1264
00:49:43,620 --> 00:49:45,150
reading to kind of see more details if
1265
00:49:45,150 --> 00:49:47,820
you if you're so inclined I want to
1266
00:49:47,820 --> 00:49:51,030
switch to synchronization which is a
1267
00:49:51,030 --> 00:49:53,790
completely different kind of issue and
1268
00:49:53,790 --> 00:49:57,780
cannot be solved by just clever storage
1269
00:49:57,780 --> 00:50:00,060
so that gives you probable answers and
1270
00:50:00,060 --> 00:50:03,390
so on right very very delicate thing
1271
00:50:03,390 --> 00:50:05,430
that it's at the core in fact of
1272
00:50:05,430 --> 00:50:07,860
distributed systems right it's one of
1273
00:50:07,860 --> 00:50:09,300
the best and the worst things that
1274
00:50:09,300 --> 00:50:12,810
happened to systems in general right so
1275
00:50:12,810 --> 00:50:14,720
it's gonna be next week synchronization
1276
00:50:14,720 --> 00:50:18,570
okay we're gonna have a quiz now about
1277
00:50:18,570 --> 00:50:21,780
all the naming so I'm gonna ask
1278
00:50:21,780 --> 00:50:24,090
high-level questions in the in line with
1279
00:50:24,090 --> 00:50:27,120
what you've seen before right the kind
1280
00:50:27,120 --> 00:50:28,530
of questions you will not see things
1281
00:50:28,530 --> 00:50:30,480
like how does this tiny itty bitty thing
1282
00:50:30,480 --> 00:50:32,340
in DNS works but I might ask things like
1283
00:50:32,340 --> 00:50:35,730
what is the NS not about and then I
1284
00:50:35,730 --> 00:50:39,750
throw some weird stuff in there and and
1285
00:50:39,750 --> 00:50:42,780
things of this sort okay and when is the
1286
00:50:42,780 --> 00:50:45,080
project
1287
00:50:45,420 --> 00:50:50,220
okay Saturday I'll also by Sunday Post
1288
00:50:50,220 --> 00:50:53,340
Sunday night post a new project because
1289
00:50:53,340 --> 00:50:54,360
I want to make sure I maintain the
1290
00:50:54,360 --> 00:50:56,900
momentum and you don't stop coding right
1291
00:50:56,900 --> 00:51:00,260
that becomes important in itself and
1292
00:51:00,260 --> 00:51:02,460
good luck with the project just remember
1293
00:51:02,460 --> 00:51:03,960
the tiny details don't matter I get a
1294
00:51:03,960 --> 00:51:05,340
lot of questions about is it this is
1295
00:51:05,340 --> 00:51:06,720
this or this is there's none of them
1296
00:51:06,720 --> 00:51:09,750
matters get me a nice simulation in
1297
00:51:09,750 --> 00:51:12,090
there get some experience with how this
1298
00:51:12,090 --> 00:51:13,770
thing's big difference between various
1299
00:51:13,770 --> 00:00:00,000
topologies and you're fine okay