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