本文引用图片均来自 高军: 计算机网络
域名系统
通过前面文章的学习我们知道主机之间想要通信需要知道对方的IP地址
,但是IP地址是一串数字并不易于
记忆,因此人们发明了域名作为IP地址的助记符
。但是,域名只是相对人类而言的,计算机需要的仍然是IP地址。为了将域名转换成计算机需要的IP地址,域名系统DNS(Domain Name System)
应用而生
以打开网页为例,用户在浏览器中输入域名,主机首先查询本地的DNS高速缓存
看是否有记录该域名对应的IP地址。如果没有,则向DNS服务器
发送查询请求,DNS服务器查询数据库
并返回相应的IP地址
。主机从DNS服务器获得目的主机的IP地址后即可和目的主机进行通信
域名系统以层次树状结构
形式组织,每个域名具有以下特点:
- 由若干个
分量
组成,分量之间以点号
分隔代表不同级别的域名 - 每一级的域名都由
英文字母和数字
组成,不超过63个
字符,不区分
大小写 - 级别
最低
的域名写在最左
边,级别最高
的写在最右
边 - 完整的域名不超过
255个
字符
域名系统既不规定
一个域名需要包含多少个下级域名,也不规定
每一级域名代表什么意思。各级域名由其上一级
的域名管理机构管理,顶级域名则由ICANN
管理
顶级域名TLD(Top Level Domain)
分为以下三类:
- 国家顶级域名:cn表示中国、us表示美国、uk表示英国等
- 通用顶级域名:最常见的通用顶级域名有7个,分别是com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)和mil(美国军事部门)
反向域(arpa)
:用于将IP地址转换为域名
在国家顶级域名下注册的二级域名由该国家自行确定
,例如我国将二级域名分为以下两类:
- 类别域名:ac(科研机构)、com(工、商和金融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)和org(非营利性组织)
- 行政区域名:一共34个,适用于省、自治区和直辖市,例如bj(北京市)、sh(上海市)
显然,因特网上有数量众多的DNS服务器,DNS服务器可以划分为以下四类:
- 根域名服务器:根域名服务器是
最高层次
的域名服务器,每个根域名服务器都知道所有顶级域名服务器
的域名及其IP地址
,因特网上共有13个
不同IP地址的根域名服务器。尽管我们将13个根域名服务器中的每一个都视为
单个服务器,但“每台服务器”实际上是由许多分布在世界各地的计算机构成的服务器集群
。根域名服务器通常并不直接
对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址 - 顶级域名服务器:它们负责管理在该顶级域名服务器注册的所有
二级域名
,当收到DNS查询请求时就给出相应的回答
(可能是最后结果,也可能是下一级域名服务器的IP地址) - 权限域名服务器:它们负责管理
某个区
的域名,每一个主机的域名都必须
在某个权限域名服务器
上注册,因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器
的地址 - 本地域名服务器:这类域名服务器
不属于
上述域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文首先
被送往本地域名服务器。本地域名服务器起着代理
的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器一般作为默认域名服务器
,其IP地址
需要配置
在需要域名解析的主机中
域名解析
域名解析主要有递归查询
和迭代查询
两种方式
递归查询:
如下例,主机向本地DNS服务器
发起递归查询委托
,想要知道y.abc.com
的IP地址。本地DNS服务器收到递归查询委托后,向某个根DNS服务器
发起递归查询委托。根DNS服务器向某个顶级DNS服务器
发起递归查询委托,顶级DNS服务器则向某个权限DNS服务器
发起递归查询委托。当从权限DNS服务器中查询到结果后,该结果一步步逆着查询链
返回到用户主机
迭代查询:
如下例,主机向本地DNS服务器
发起递归查询委托
,想要知道y.abc.com
的IP地址。本地DNS服务器收到递归查询委托后,向某个根DNS服务器
发起迭代查询委托。根DNS服务器收到请求后则返回下次应查询
的顶级DNS服务器的IP地址
。本地DNS服务器接着向顶级DNS服务器
发起迭代查询委托,顶级DNS服务器则返回下次应查询
的权限DNS服务器的IP地址
。本地DNS服务器接着向权限DNS服务器
发起迭代查询委托,权限DNS服务器查询到结果后将其返回给本地DNS服务器
,最终由本地DNS服务器将结果返回给用户主机
另外,为了提高查询效率、减轻根DNS服务器的压力以及减少网络中的DNS查询报文数量
,域名服务器通常使用高速缓存
将最近查询过的域名以及从何处获得域名映射信息等元素保存起来。当然,因为域名和IP地址都是可能发生变化的,所以记录的保存是有时效
的(通常为2天),超过时效的记录会被删除
同理,用户主机中
也有域名相关的高速缓存,缓存内容是从本地DNS服务器中获取的
参考文献
- 【1】高军: 计算机网络