加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

网络协议:从理论到实践,全方位认识DNS(理论篇)

发布时间:2019-06-18 08:06:34 所属栏目:教程 来源:Java从算法到架构
导读:对付 DNS(Domain Name System) 各人必定不生疏,不就是用来将一个网站的域名转换为对应的IP吗。当我们发明可以上QQ但不能赏识网页时,我们会想到也许是域名处事器挂掉了;当我们用别人提供的hosts文件赏识到一个不存在的网页时,我们会相识到域名理会体系的
副问题[/!--empirenews.page--]

对付 DNS(Domain Name System) 各人必定不生疏,不就是用来将一个网站的域名转换为对应的IP吗。当我们发明可以上QQ但不能赏识网页时,我们会想到也许是域名处事器挂掉了;当我们用别人提供的hosts文件赏识到一个"不存在"的网页时,我们会相识到域名理会体系的懦弱。

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

然而关于DNS尚有一大堆故事值得我们去谛听,去思索。

DNS源起

要想会见收集上的一台计较机,我们必必要知道它的IP地点,可是这些地点(好比243.185.187.39)只是一串数字,没有纪律,因此我们很难记着。而且假如一台计较机改观IP后,它必需关照全部的人。

显然,直接行使IP地点是一个愚笨的方案。于是人们想出了一个更换的要领,即为每一台计较机起一个名字,然后成立计较机名字到地点的一个映射相关。我们会见计较机的名字,剩下的名字到地点的转换进程则由计较机自动完成。

早期,名字到地点的转换进程异常简朴。每台计较机生涯一个hosts文件,内里列出全部计较机名字和对应的IP地点,然后按期从一个维护此文件的站点更新内里的记录。当我们会见某个计较机名字时,先在hosts文件找到对应的IP,然后就可以成立毗连。

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

hosts 打点主机

早期的ARPANET就是这样做的,可是跟着收集局限的扩大,这种要领徐徐吃不用了。首要有以下三个缘故起因:

1:hosts文件变得很是大;

2:主机名字会斗嘴;

3:齐集的维护站点会不堪重负(必要给几百万呆板提供hosts文件,想想就可骇)。

为了办理上面的题目,1983年Paul Mockapetris提出了域名体系(DNS, Domain Name System),这是一种条理的、基于域的定名方案,而且用一个漫衍式数据库体系加以实现。当我们必要会见一个域名(着实就是前面说的计较机的名字)时,应用措施会向DNS处事器提倡一个DNS哀求,DNS处事器返回该域名对应的IP地点。通过下面三种本领办理了上面的题目:

1:用户计较机上并没有存储全部的名字到IP的映射,这样停止了hosts文件过于复杂(此刻各操纵体系中hosts文件默认都是空的)。

2:划定了域名的定名法则,担保主机名字不会一再。

3:DNS处事器不再是单一的一台呆板,而是一个条理的、公道组织的处事器集群。

这样会见一个域名的进程可以简化为下图:

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

域名hosts理会进程

DNS协议

那么怎样详细实现这个所谓的域名体系呢,要知道打点一个超大型而且不绝变革的域名到IP的映射荟萃可不是一个简朴的事,何况还要去应付成千上万的DNS查询哀求。人们最终想出了一套不错的协议,划定怎样来实现这个体系,下面我们一路来看看吧。

起首我们必要拟定一套定名法则,防备域名呈现一再。DNS关于域名的法则和我们糊口中的快递体系相同,行使条理的地点布局。快递体系中要给或人邮寄物品,地点也许是这样:中国、广东省、广州市、番禺区、中山西路12号 XXX。而一个域名看起来则是这样的groups.google.com(为什么不是com.google.groups?我猜也许和老外写地点的风俗有关)。

对付Internet来说,域名条理布局的顶级(相等于国际快递地点中的国度部门)由ICANN(互联网名称与数字地点分派机构)认真打点。今朝,已经有高出250个顶级域名,每个顶级域名可以进一步划为一些子域(二级域名),这些子域可被再次分别(三级域名),依此类推。全部这些域名可以组织成一棵树,如下图所示(图片来自Computer Networks: 7-1 ):

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

域名空间树

DNS计划之初是用来成立域名到IP地点的映射,理论上对付每一个域名我们只必要在域名处事器上生涯一笔记录即可。这里的记录一样平常叫作域名资源记录,它是一个五元组,可以用以下名目暗示:

  1. Domain_name Time_to_live Class Type Value 

个中:

Domain_name:指出这笔记录合用于哪个域名;

Time_to_live:用来表白记录的保留周期,也就是说最多可以缓存该记录多长时刻(后头会讲到缓存机制);

Class:一样平常老是IN;

Type:记录的范例;

Value:记录的值,假如是A记录,则value是一个IPv4地点。

我们看到域名资源记录有一个Type字段,用来表白记录的范例。这是为什么呢?由于对付一个域名来说,凡是并非只记录其IP地点,还也许必要一些其他种类的记录,一些常见的记录范譬喻下:

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

我们知道不能只用一台域名处事器来相应全部的DNS查询,由于没有一台呆板可以或许给环球的用户提供查询处事,计较手段、存储、带宽都不应承。只能公道组织一个域名处事器集群,使他们协同事变,配合提供域名理会处事。接下来起主要面临的一个题目是怎样公道地将全部的域名资源记录存储到差异的域名处事器上。

前面说过域名的名字空间可以组织为一棵树,这里我们可以进一步将其分别为不重叠的地区(DNS zone),针对上图的域名空间,一种也许的域名分别如下图:

收集协议:从理论到实践,全方位熟悉DNS(理论篇)

域名分别

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读