域名系统DNS (Domain Name System)

早在1983年,因特网就开始采用层次结构的命名树作为主机的名字(即域名),并使用分布式的域名系统DNS。

DNS使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高。

由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。

因特网采用层次树状结构的域名结构

域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。

···.三级域名.二级域名.顶级域名

域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。

各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。

顶级域名TLD (Top Level Domain)分为以下三类:

国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为jp的日本,将其教育和企业机构的二级域名定为ac和co,而不用edu和com。

我国则将二级域名划分为以下两类:

举例:因特网的域名空间

这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点。

域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。

域名服务器可以划分为以下四种不同的类型:

域名解析的过程

由于递归查询对于被查询大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询,而其余的查询是迭代查询。

为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。

不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和IP地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。

例题:假设所有域名服务器均采用迭代查询方式进行域名解析,当H4访问规范域名为www.abc.xyz.com的网站时,域名服务器201.1.1.1在完成该域名解析过程中,可能发出DNS查询的最少和最多次数分别是

A.0,3 B.1,3 C.0,4 D.1,4

解析:

若主机H4的DNS高速缓存中有该域名的DNS信息时,不需要查询任何域名服务器。这样,H4无需向图中的默认域名服务器(本地域名服务器)发出DNS查询,该域名服务器也无需发出DNS查询。

题目给定采用迭代查询进行域名解析,在最坏的情况下,需要图中的本地域名服务器依次向以下域名服务器发出共4次DNS查询:

选C