6.4 域名系统DNS
基本概念
-
域名的作用:用户不需要记住IP地址,只需要记住域名,通过域名解析,访问到 IP 地址。域名系统简单说,就是一个域名和IP对应的哈希表服务。
-
域名的原理:客户端访问某个域名时,先从本地的 DNS 高速缓存中查找该域名对应的 IP 地址。如果本地没有找到,那么就向 DNS 服务器发送请求,获取 IP 地址。
-
服务器数量:互联网上不可能只有一台 DNS 服务器,扛不住高并发请求。如果这一台奔溃了,整个网络就挂了。
-
服务器结构:实际上 DNS 是层级的树结构,分布式的域名系统。大部分域名在本地解析,少量需要在网络中解析,效率很高。因为是分布式,即使某个计算机出现故障,不会影响整个系统运行。
-
域名树:三级域名.二级域名.一级域名 每一级由英文字母和数字组成(不超过63个字符,不区分大小写字母,左边低右边高,完整域名不超过255个字符)DNS 不显示一个域名有多少下级域名,不限制每一级域名代表什么意思。顶级域名由ICANN管理,各级域名由上一级的域名管理机构管理(dev.jlu.edu.cn)
-
顶级域名:国家顶级域名(cn us uk)通用顶级域名(com net org edu)反向域 arpa。二级域名由国家自行确定。域名只是 逻辑概念,不代表真实的物理地址。
域名服务器分类
- 根域名服务器(13个服务器集群,不解析域名,返回该域名所属的顶级域名服务器的IP地址)
- 顶级域名服务器:负责管理在顶级域名服务器(cn)注册的全部二级域名(edu, bj)收到 DNS 查询请求时,可以回答。可能是最后的结果,也可是下一级权限域名服务器的IP
- 权限域名服务器:管理某个区的域名
- 本地域名服务器:主要是代理作用。主机发出 DNS 请求报文时,首先发送到本地域名服务器(大学或者ISP),一半不超过几个路由器。本地域名服务器的IP地址直接配置在主机中。
域名解析过程:递归查询 迭代查询
- 递归查询:从底层一直到上层查询,上层依次返回查询结果。A -> B -> C -> D -> C -> B -> A 被查询的服务器负担较大,性能不好。
- 迭代查询:主机箱本地域名服务器查询。本地先向根域名查询,上一层返回结果。如果不存在,然后底层向上两级查询,上两级返回结果。本地域名服务器 -> 根域名(cn) -> 本地, 本地 -> 顶级(edu) -> 本地, 本地 -> 权限(jlu) -> 本地。如果中间有缓存,那么直接获取缓存。
- 实际上,主机到本地域名服务器使用递归查询,其他的查询时迭代查询。
高速缓存:用来存放最近查询过得域名,以及从何处获取域名映射信息的记录。因为域名到 IP 的映射关系可能变化,域名服务器会设置计时器和过期时间(每个项目存放两天)
例题
在计算机考研中,域名解析会考察下面知识点
如果本地域名服务器无缓存,使用递归方法解析另一个网络的主机域名时,用户主机发送1条请求,本地域名服务器发送1条请求。
如果本地域名服务器有缓存,使用递归方法解析另一个网络的主机域名时,用户主机发送1条请求,本地域名服务器发送0条请求。
如果本地域名服务器有缓存,使用迭代方法解析另一个网络的主机域名时,用户主机发送1条请求,本地域名服务器发送3-4条请求。
解析 www.taobao.com.cn 时,本地域名服务器可能发出的请求最多和最少是:最少0条(本地域名服务器有缓存)最多4条(根域名服务器,顶级域名cn 权限域名com.cn 权限域名 taobao.com.cn)