00:01
大家好,欢迎大家继续收看上硅谷的links云计算视频,我是刘川老师。我们上节课呢,讲了一下关于。DNS的一个介绍的内容,那关于DNS介绍内容当中呢,我们讲了一下关于什么叫域名,了解了一下域名的作用和域名的对应的格式,讲了一下DNS的什么功能啊。比如说DNS的正反向解析,以及域名的组成和域名的一个分类,重点呢是需要大家记一下关于我们域名的。四个等级啊。根域,顶级域,二级域,三级域,以及他们之间的一个关系啊,以及他们之间关系OK。那这是我们上节课所讲的一个内容,那么本节课呢,来讲一下关于域名解析的一个过程,那我们需要呢,来了解一下我们的这个个人电脑,以及和对应的要访问的网站,以及还有DNS服务器之间的这么一个关系。在这之前,我们先不看这个图,我们先来看PPT里边的这个图。
01:03
这个图当中呢,我一共画了这么几个设备,首先左侧是一个客户机,你可以理解为是手机或个人电脑,或台式机或笔记本都可以。然后呢,中间有个路由器,路由器的功能是。帮助我们连接到互联网,并且访问到指定的服务器。那其次呢,在互联网当中呢,我们。专门的标志了一台叫做3W点。At硅谷点。一个服务器。还有一个是关于我们的DNS服务器,那这个DNS服务器,其实我们常见的一个叫114的这么一个服务器,OK,那有了这么几个设备之后呢,我把这几个设备啊给它有机到。通过这样一个图像以及箭头连接到了一起。那其中的步骤呢,是这样的。首先。客户端在能满足能够连接互联网的前提之下,他要去通过浏览器访问某一个网站,假如说我们的客户端使用它的浏览器去访问了一个叫3w.at硅谷点com的这么一个网站。
02:08
那这个时候。发生了这么几件事,首先,浏览器在接收到这个3W点艾特硅谷点。com这个网址之后,会自动在这个网址的结尾加一个点。并且呢。会在我们对应的这个网址后边再加上一个冒号八零啊,我给大家写一下对应的格式。插入一个文本框吗。我们的第一个步骤是客户端去访问一个叫3W点。At。硅谷。Com点。点可以不用写,可以省略,然后呢,后边是个冒号。然后是八零,那我们写呢,我们肯定直接写对应的一个网址就可以了。但是浏览器在帮我们来进行。
03:03
访问的时候,它是会自动在域名后边补齐一个冒号八零的。浏览器。浏览器。自动补齐。冒号八零。冒号八零对应的其实就是我们的web服务器。端口。外部服务器端口。它会自动补齐外部服务器对应的端口。端口这个东西是定义资源的所在位置的,这个是比较好理解的。那就说浏览器帮我们,嗯。通过对应的这个域名,并且访问对应的这个域名的八零端口,但是大家都知道,域名这个东西呢,并不能够作为在我们。互联网进行数据传输的这么一个什么,这么一个地址。它呢,只是一个我们IP地址的,你可以理解为是别名。
04:04
你可以将域名理解为是IP地址的别名,只是为了我们人们方便记忆的这么一个名字。那么为了能够访问的具体的某服务器,我们还是要。知道对应的这个叫3W点艾特硅谷点com的这么一个IP地址,那这个时候就需要干什么,这个时候就需要进行域名解析了,那域名解析呢,注意这个时候并不是客户端直接去找我们的DNS。啊,虽然我们客户端里边有DNS地址,但并不是直接去找。而是我们来看第二步骤。第二个步骤的一个发生是。客户端。首先。先查询。自己的。Hosts。文件列表文件。查看。该文件内。是否有3W点。
05:01
At硅谷点。解析记录。这个地方涉及到了一个叫hosts的文件。那简单来说一下这个文件,这个文件啊。就是说在我们没有DNS这个系统的时候。就是之前我们用来进行记录域名和IP地址映射关系的一个配置文件。你可以这样理解,就是早期在没有DNS服务器的时候,我们呢,是通过一个叫hosts的文件来进行记录域名和IP的解析关系的。但是呢,这个文件有一个很大的缺陷,就是这个文件啊,只能啊。被自己的那个服务器所识别,那你可以这样理解,就是每一个服务器里都有自己的一个叫host文件,而且每一个只能访问自己的。比如说A服务器里的hosts里边的解析记录,B服务器是用不了的。
06:02
只能由A服务器自己来使用。这个文件呢,和我们的这个DNS服务器呢,之间的一个关系就是它的优先级更高,为什么他在我们服务器内部本地,如果我们将解析记录写在这里边,查询的速度和效率是不是更高呀?所以说这个文件虽然现在我们一般情况下不用来进行域名解析了,但是它的功能。还保留着。并且我们把它的优先级设置的比我们的DNS更高一些,因为它效率更高嘛。那这个是我们会查看这里边是否有解析记录,如果有则直接返回浏览器。啊,如果有,然后我写一下。如果有。解析记录。则直接返回给。浏览器。那如果没有,则第三个步骤开始发生了。
07:01
那第三个步骤开始发生了。那第三个步骤呢,是这样的。由于本机比如客户机查询四后侧没有发现对应的一个解析过程。要继续解析关系。怎么办呢?这个时候我们客户端还是在自己本机里找。还是在自己背上找?客户端。继续。本机内。查询什么呢?查询。DNS的解析。村,比如说查一查。之前访问过的有没有一个缓存记录,比如说可能半小时之前我刚访问过这个网站。那这个时候这个网站的对应解析的IP地址可能已经存在了里边了。比如说这个时候可能还会有一个什么叫。缓存的这么一个东。
08:02
DNS的解析缓存。查看是否有解析的缓存,如果有缓存,则将反缓存交给我们的浏览器啊。若有。则直接返回给。浏览器。然后浏览器就可以进行一个。这是第三个过程。那如果说。自己的hosts文件里边也没有。自己的DNS缓存当中也没有或者失效了。缓存里边也失效了。第三,第四个步骤发生,第四个步骤是什么?第四个步骤就是。客户端。查看。网卡上。设置的。DNS服务器地址。然后呢,访问。
09:00
DNS服务器。然后。查询。查询域名的。解析解。啊,查询信息结果,这个时候如果在自己的后色文件里边没有问到,DNS缓存里面没有问到,则就按照网卡上所填写的DNS服务器的地址,通过互联网连接到DNS上。为什么问一下这个3W点硅谷点com。IP地址是多少?问,这个电服务器?那DNS服务器通过检查自己的数据库。然后从里边找到了对应的这个什么。网站对应的IP地址,然后再将结果返回给客户机。结果。弱。DNS服务器有。解析记录。
10:00
则将。IP地址。返回给。这个时候客户已经拿到了对应服务器IP地址,那客户端是不是就可以拿着IP地址去访问这个服务器了,也就是说你可以这样理解,对,呃,其实我们客户端和服务器端和网站服务器端之间的一个数据连接和交互还是通过IP地址。但是为了方便人们记忆。我们将这个IP地址。对吧,给他设置了一个别名,也就是对应的域名,然后每次访问时呢,需要客户端使用。那个。别名,也就是说域名去访问,但是呢,域名由于没法通信,则必须要先将域名解析成IP,而干这个活的就是我们的DNS服务器。那这个就是一个如果。客户机想连接啊。某网战时的一个过程。
11:02
当然,中间还有可能会存在什么,存在着。DNS服务器,如果不知道我们对应的一个。解析记录怎么办?诶,OK,那这就涉及到我们接下来要讲的一个相对比较完整的一个解析过程了,OK。刚才那个图相对比较简单一些啊,我们来看下这个图。这个地方呢,有一个叫3w.k.org的这么一个地址,这个地址就是我们的雷尼克斯的内核的官网。然后呢?这个客户经啊,想要访问这个。那想要访问这个网址?根据刚才我们的那个理解,就是客户端想要访问网址,肯定是在自己浏览器上输入这个网址,并且回车也去访问。首先同样还是客户机,第一个步骤发生,先找自己的hosts文件,看一下自己的hosts文件里边有没有一个。对于。这个3WRG这个域名的一个解析结果。
12:00
首先查看host文件。如果有则返回,否则进行下一步,有说没有进行下一步,下一步就第二步,客户及查看本地缓存,本机缓存是否存有本解析记录的一个缓存信息,如果有,则返回给浏览器访问,没有则下一步第三步。第三步就变成了一个客户机和DNS服务器之间的一个交互过程了。注意,这个步骤呢,会发生四和五两个动作。当客户机访问DNS服务器时,先说第四个步骤。会先从DNS服务器里的解析库内进行查询。查询对应的。域名的解析IP地址,若有则告诉客户机,客户机拿着IP去访问。若没有,则再找缓存。这个地方呀。这个文档很多人说你是不是写错了啊。地方没有啊,我需要说一下这个地方关于解析库和缓存的这么一个。那这个地方的缓存呢,并不是我们平常意义上那个说访问的次数最多的,或者说访问的最近的那一次缓存的那个缓存。
13:09
而是指的是没有记录在解析库当中的。从别人那儿询问过来的解析结果。这种缓存信息呢,有一个问题,就是它的权威性啊。它的权威性那。我们放在解析库里的是经过确认的这种解析过程和解析信息,它的权威性相对比较高一些,所以我们的客户机在进行域名解析时,优先找解析库的权威答案。如果解析库当中没有对应的,注意啊,如果解析库当中没有对应的域名和IP的解析过程,解析关系。则再。也就你可以这样理解,也就是说解析库的权威性要大于缓存的。所以优先找解析。
14:00
那就说那这样的话呢,DNS服务器的那个压力不就会非常大啊,不就非常大吗?注意啊,首先我们来说一下关于客户机和服务器之间的一个数据传输什么协议。注意,它并不像我们平常所说的那个使用TCP的连接,需要三次握手等等等等等等,而是我们客户端和服务器端使用的是udp的。Udp的。然后呢?客户端通过udp协议连接到我们的服务器上,并且服务器只需要快速的检索一下解析库里有没有就可以了。然后呢,迅速的断开对应的一个连接星球,所以说它的首先是他的一个,呃,工作压力并没有想象中那么大,其次呢,就是权威性的一个问题。啊,全屏的问题,那至于有人说为了提高它的一个解析效率,为它设置缓存这个事儿,这个呀,我们下边会有一个专门的啊。DNS的缓存服务器的一个实验,我们会来讲这个内容啊。
15:03
我们会围绕着如何来降低DNS服务器的一个查询压力,如何来提高它的一个效率,围绕着这个来讲我们其中的我们几个实验。那再来说一下。如果。客户去问了这个DNS服务器,还没有问到IP地址。还没有问到对应的域名IP怎么办?这个时候就开始出现了根预服务器,顶级预服务器,二级预服务器,比如说有没有三级服务器,没有,为什么?三级域名已经被保存到二级域里边了。OK,那么来看一下,如果本地DNS服务器当中没有可用的。或者没有能够解析到对应的域名的IP地址怎么办?那这个时候就成了DNS服务器和我们的这些什么。网站的。顶级域跟呃,顶级域根域和二级域服务器这样的一个。
16:05
一个查询过程嘛。大家会发现我这个图上标记了有两个查询过程。第一个叫递归查询,第二个叫迭代查询。所谓的递归,就是客户机和DNS服务器之间的一个查询过程。所谓的就是。DNS服务器和我们的这些。根玉顶级域,二级域这样的一个产品过程。你假如说。DNS服务器上并没有3w.K2G的一个ipd的一个解析记录,怎么办呢?这个时候本地DNS变成了一个。查询的发起者。他的查询对象是什么?是根据辅警。根于父亲,他会不会根予父亲?你知道3w.KORG这个域名的解析结果吗?首先干预服务器。这个东西他只知道自己的直属下级服务器的地址,你可以这样理解。
17:02
根预服务器只知道顶级域服务器的所在地址。方向都来看下上面这个图。干预服务器只知道点。com.hongkong点。点cn.edu等等这些顶级预服务器所在位置,比如说你去问他,你只能问到点cn.com之类的这些预服务器的IP地址,只能问到这个,其他的你是问不到了。你说为什么这样?减少对根域服务器的访问,降低根域服务器的访问压力。这就是我们。客户机查询根域服务器时所查询的对象查询什么?查询org的位置问那个你知道。org这个顶级域的IP地址吗?根预服务器肯定知道的,所以说根预服务器顺利的将。org的IP地址告诉了本地DNS服务器,那本地DNS服务器在拿到了or这个域的。
18:05
服务器的IP地址后呢?再去访问。org,问,你知道3w.k.org这个域名的IP地址吗?那同样。顶级域所知道的也只是二级域对应的X1值还是这个图。比如说点。com只知道点com下的什么艾特硅谷呀,百度呀,QQ啊,阿里云只知道这个,至于这个之前的什么3WBBS这些他是不知道的。那同样。你去问他3W克的org。这个东西的时候,你去问RG的时候,Org只会告诉你kel这个二级域服务器的地址。注意,Org只能告诉你kerel org这个二级域服务器台地准。他解析完了之后,把二级服务器,可这个。服务器的地址忘了,然后你再查课呢,问客呢。那个你知道3W点这一点这个。
19:02
的IP地址吗?那由于它就是二级域,它下边保存着三级域对应的IP地址的映射关系,所以他是知道的,因为它一定是能问到整个3w.KORG地址的。那当你从二级域服务器上问到了一个域名和IP地址映射关系之后,这个时候。这个IP地址不就返回到了DNS服务器上?然后DNS服务器再把问的结果再告诉客户端,那是不是客户端拿到了3W坑的地址,那他再去访问对应的。Web服务器。不就可以了。注意,这个过程其实没完,为什么?费了这么大劲。本地DNS将。3W克org的地址问来了,并且告诉了他。如果是过了一会儿,又有一个人又问3WRD这个域名的IP地址,那是不是这个本地DS服务器得再访问一遍,是不是得再来一遍?这个过程不是这样的。
20:06
一般情况下,我们的本地DNS服务器如果。有一次解析了一个自己从来没解析过的一个记记录,他会把这个解析记录保存在自己的。身上一份首先会保存到缓存里,其次呢会保存自己的解析库里,这样呢,当有人再次来访问对应的这个域名时,就可以直接从自己的解析库里进行查询了,这样就节省了本地服务器。像什么。向根域、顶级域、二级域服务器的查询次数。节省了我们想他们之间的一个查询次数。是这样的一个过程啊,是这样。那下边呢,我们。对这个关于DNS查询过程进行了一个描述。客户端。首先访问。本地的后侧存进。
21:03
客户端。首先,访问。首先,访问。自己的文件。优先级最高。若有直接访问。若没有找Z的缓存。缓存里如果也没有,则找DNS服务器。DNS服务器不知道问。根预告他。再去点。顶级告诉他二级采访二级,最终问到自己保存一份给客户端一份。这样的一个过程。下边是一个关于我们查询过程的一个。这个呢,需要大家能够完整的叙述出来。注意啊,这个关于DNS的一个查询过程,是需要大家能够顺利的叙述出来的。啊,希望大家能够顺利的叙述出来的。因为如果你对这个对应的DNS查询过程叙述不出来啊,那对吧,肯定对这个东西的理解不是特别通畅。
22:06
并且呢,需要大家充分的去理解和记一下关于。递归查询和迭代查询的一个关系。递归查询的客户端就是我们的客户端了。而服务器端就是DNS服务器了。而迭代查询的客户端变成了DNS服务器。而服务器端变成了我们的。跟于定居。这些父亲。注意一下我们的递归查询和迭代查询,递归查询是客户端和DNS服务器之间的一个过程。而迭代查询是DNS服务器和顶级域根域服务器之间的一个查询。这是我们的一个DNS的查询过程的这么一个梳理。咱们本节课先讲到这儿没。
我来说两句