DNS域名系统-因特网的目录服务

首先人类喜欢以很多方式来标识自己或熟知的事物,因特网上的主机和人一样,也可以使用多种方式表示一台主机,例如人类喜欢用“张三,李四”这种容易区分又好记的标识,但主机却喜欢以唯一的IP地址来标识自己和其他主机,计算机要与人进行交互,就需要一个方法来解决将人类通俗易懂的标识(域名/主机名如www.baidu.com)映射到计算机容易理解的标识(32位IPv4地址甚至128位IPv6地址),这个方法就是使用域名系统DNS(Domain Name System),总计看,DNS就是一种能进行主机名到IP地址转换的目录服务

我们先来看一下互联网

一、域名结构

首先我们看一个中央电视台用于收发电子邮件的计算机域名

mail.cctv.com

可以看出这个域名由三部分组成,其中com是顶级域名,cctv是二级域名,而mail是三级域名。

注意:
DNS规定:域名中符号均有英文字母和数字组成,
每个标号不超过63(一般不超过12字符),
且不区分大小写,标号中唯一能使用是“-”连字符,
且从左向右域名级别愈来愈高,
总的来看,完整域名长度不能超过255个字符。

而域名只是个逻辑概念,为了人们容易记忆。

上面提到.com是一个顶级域名(在中国,com用于工、商、金融等企业),事实上,这类顶级域名还有很多,如
.ac表示科研机构,
.gov表示中国政府机构,
.mil是中国国防机构,
.net表示提供互联网络服务的机构,
.org表示非营利性的组织…
这类域名由根域名服务器统一管理,下面我们将了解到的域名查询就是从顶级域名开始查询的,需要向根域名服务器请求服务,根域名服务器不会直接告诉你这个域名的IP地址,例如上面的mail.cctv.com这个域名,根域名服务器只会告诉你.com的域名应该去哪个顶级域名服务器去查,依次类推。
这里我们就要看一张互联网域名空间的倒树结构,如下
在这里插入图片描述

二、域名服务器

①DNS是一个由分层的DNS服务器实现的分布式数据库 ,并采用客户/服务器模式
②是一个使得主机能够查询到分布式数据库的应用层协议
③运行在UDP协议上,端口号为53

说它是数据库是因为DNS需要存储大量的域名到IP地址的映射关系数据,DNS查询就是在这个数据库中查询索要访问的域名对应的主机的IP地址。

原本,DNS的一种简单设计是在因特网使用一个DNS服务器,包含所有的映射关系,但因特网中主机数量巨大并增长速度飞快,显然这是不适用的,试想:
①如果出现单点故障,即该DNS服务器崩溃,整个因特网随之瘫痪。
②单个服务器处理全球所有的DNS查询这是不现实的。
③如果只有一个DNS服务器,那全球的主机势必由远有近,这将导致个主机访问服务的严重不均衡。
④单个DNS服务器需要不停的进行维护更新,事实上这种集中式数据库完全没有可扩展能力。

所以DNS使用大量的DNS服务器并以层次方式组织,分布在全世界范围,没有一台主机拥有因特网上所有主机的映射,这些映射分布在所有的DNS服务器上。
前面了解完互联网的域名结构,我们知道了互联网的树形域名结构,我们知道mail.cctv.com从根到顶级域名再到下级域名的查询,但这一工作是谁来完成的呢,这就是我们需要了解的DNS域名服务器,我们需要知道的是DNS域名服务器也是树形结构来划分的,
在这里插入图片描述

①这棵树的根部就是根域名服务器,它是最高层次的域名服务器,它知道所有顶级域名服务器的域名(如刚才例子的.com)和对应的IP地址,根域名服务器是最重要的域名服务器。
根域名服务器在全球只有13个不同的IP地址的域名,即a.rootservers.net-m.rootservers.net,注意这里的意思不是只有13台机器,可以理解为有13组,而每组又有若干台机器,全球范围目前已有400多个跟域名服务器并还在不断增加,这样主机进行DNS域名解析服务时就可以就近找到一个根域名服务器来请求服务。(中国仅有3台且都在北京)

顶级TLD域名服务器:每个顶级域名(如com、org、edu和gov等)都有顶级域名服务器,顶级域名服务器管理着它后一层所有已注册的二级域名,如cctv、www等,当根域名服务器查询到.com所在的服务器并将请求转给.com顶级域名服务时,TLD服务器要做的就是查找对应顶级域名(如.com)下的二级域名(如cctv),如果查到,则这个查询将转到三级域名(mail)那里进行继续查询。

权限域名服务器(又称权威/授权域名服务器):如上图所示,当查询进行到顶级域名服务器还未完成(如mail.cctv.com),查询将会转到权限域名服务器(其实这里就已经进入到一个专门的区来查询了,一个域名服务器所管辖的或者说有权限的范围就叫做区,如一个公司或者一个大学或某个组织机构)
tips:权限域名服务器可以将其管辖的主机名转换为主机的IP地址

从上图可以看出,DNS的层次域名服务器结构到这已经结束了,但其实还有一类重要的域名服务器称为本地域名(DNS)服务器,每个ISP(如一个居民区或一个机构的ISP)都有一台本地DNS服务器,本地域名服务器和权限的域名服务器的范围界限都不是那么明显划分的,但在下面我们要说的查询中可以看出,本地域名服务器好像是在权限域名服务器下层的。
tips:对某机构ISP,本地DNS服务器可能与主机在同一局域网中,
又如对某居民区ISP来说,本地DNS通常与主机像个不超过几台路由器。
注意,如果索要查询的主机域名同属于一个本地ISP时,该本地域名服务器可以立即查询到它的IP地址,而不需要经过根顶级权限等。

三、DNS两种查询方式(迭代/递归)

在这里插入图片描述
从上图可以看出,递归和迭代的查询方式的工作原理,但实际使用时一般使用主机到本地域名服务器为递归查询方式,如果查询不到,本地域名服务器作为客户又使用迭代查询依次向根->顶级->权限域名服务器进行查询。

至此,我们还要熟悉一些关于DNS缓存的知识。

实际上为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用缓存技术。

例如:例如当某DNS服务器接收到一个DNS回答(包含的是某主机名到IP地址的映射)时,他可以将映射缓存在本地存储器中,此时,另一个对相同主机名的查询到达该DNS放服务器时,该DNS服务器就可以直接提供所要求的IP地址(注意,即使它不是该主机名的权威服务器)。
但主机和IP地址之间的映射关系并不是永久的,一段时间后(通常设置为2天)这些缓存信息将会被丢弃。

这时,你就会发现,因为有了缓存技术,除了少量必要特殊的DNS查询,许多次的DNS查询并不需要从根->顶级->权限走这样一个完整的流程,根服务器是被绕过了,这样就达到了改善时延性能并减少在因特网上到处传输的DNS报文数量

参考文献:
计算机网络自顶向下-原书第七版
计算机网络-谢希仁 第七版

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值