计算机网络基础【应用层】——域名系统DNS
DNS的概念
域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
我们知道当一台主机要访问另一台主机的时候首先需要他的IP地址。比如说我们要访问百度的网页,在浏览器中输入202.108.22.5即可访问他的主页。但是如果通过IP地址访问的话,很难记住他的地址。因此有了域名,比如说百度的域名是www.baidu.com 那么我们在浏览器中输入这个域名就可以访问,而DNS就是将www.baidu.com翻译成202.108.22.5的一个系统。
域名存储
理论上:
我们可以只使用一个域名服务器存储所有的域名和与之对应的IP地址。因为互联网的规模巨大,这个域名服务器一定会因为过负荷而无法正常工作。而且如果出现故障,整个互联网将进入瘫痪状态。实际上:
DNS被设计成联机分布式数据库系统,并采用C/S方式。因此即使单个计算机出现故障也不会影响整个互联网的正常运行。
域名结构
起初:
采用了非等级名字空间。
优点:名字简短好记。
缺点:难以管理较多的域名。如今:
采用了层次树状的命名方法。
如图:
顶级域名:
国家顶级域名
cn(中国) us(美国) uk(英国) ···通用顶级域名
com(公司企业) net(网络服务机构) org(非营利性组织) int(国际组织)
edu(美国专用的教育机构) gov(美国的政府部门) mil(美国的军事部门) name(个人)
aero(航空运输企业) asia(亚太地区) biz(公司和企业) travel(旅游业)
coop(合作团体) info(各种情况) jobs(人力资源管理者)
museum(博物馆) pro(有证书的专业人员) tel(Telnic股份有限公司)
mobi(移动产品与服务的用户和提供者)- 基础结构域名
arpa(反向域名) 用于反向域名解析
二级域名
类别域名
com(工、商、金融等企业) ac(科研机构) edu(中国教育机构 gov(中国政府机构)
net(提供互联网络服务的机构) mil(中国国防机构) org(非营利性的组织)行政区域名
bj(北京) js(江苏) sx(山西) ···
域名服务器结构
理论上
在理论上来说,按照上面的域名的结构可以对照出域名服务器的结构,但是如果这样的话会有许多的域名服务器,这样导致了效率变低。实际上
实际上DNS采用了划分区的方法来解决效率低的问题。
DNS服务器管辖的范围是区而不是 域 ,每一个区设置相应的权限域名服务器来保存该区中所有主机的域名到IP地址的映射。
如图所示是与域名结构对应的域名服务器的结构。
例如mail.cctv.com 和 www.cctv.com 可以属于同一个cctv.com权限域名服务器。也可以分属于两个权限域名服务器:mail.cctv.com权限域名服务器和www.cctv.com权限域名服务器。
域名服务器的分类和作用
- 根域名服务器
- 知道所有顶级域名服务器的域名和IP地址。
- 至2016年2月,全世界有588个地点安装了根域名服务器(数量仍然在增加)。
- 只有13个域名,多台服务器使用同一个IP地址。
- 本地域名服务器无法解析时,首先要求助根域名服务器。
- 顶级域名服务器
- 管理所有在该顶级域名服务器中注册的二级域名。
- 权限域名服务器
- 负责一个区的域名服务器。
- 本地域名服务器
- 不属于域名服务器层级结构
- 在我们电脑中的本地连接中的属性中里面的Internet 协议版本4(TCP/IPv4)中填写的DNS即本地域名服务器。一般情况先会自动获取。获取的是运营商在当地假设的DNS服务器,存储着常用的域名映射,从提供更快的域名解析服务。
- 每一个互联网服务提供者ISP,或者一个大学,甚至一个大学里的一个系,都可以拥有一个本地域名服务器。
域名解析过程
对于用户来说,域名解析过程只有一步,将域名向本地域名服务器查询,本地域名服务器返回查询结果。但是对于本地域名服务器来说就没这么简单了,查询方法有如下两种:
- 迭代查询
1 用户向本地域名服务器查询。
2 本地域名服务器向根域名服务器查询。
3 根域名服务器告诉本地域名服务器下一次查询的顶级域名服务器的IP地址。
4 本地域名服务器向顶级域名服务器查询。
5 顶级域名服务器告诉本地域名服务器下一次查询的权限域名服务器的IP地址。
6 本地域名服务器向权限域名服务器查询。
7 权限域名服务器将最终的IP地址告诉本地域名服务器。
8 本地域名服务器将最终的IP地址告诉用户。
- 递归查询
1 用户向本地域名服务器查询。
2 本地域名服务向根域名服务器查询。
3 根域名服务器向顶级域名服务器查询。
4 顶级域名服务器向权限域名服务器查询。
5 权限域名服务器将IP地址告诉顶级域名服务器。
6 顶级域名服务器将IP地址告诉根域名服务器。
7 根域名服务器将IP地址告诉本地域名服务器。
8 本地域名服务器将IP地址告诉用户。
提高域名服务器可靠性方法
DNS服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器 其他是辅助域名服务器 ,当主域名服务器出现故障,辅助域名服务器可以保证DNS查询工作的正常运行。主域名服务器会定期把数据复制到辅助域名服务器中。而修改数据只需要在主域名服务器操作即可保证数据的一致性。
提高查询效率的方法
在域名服务器中使用高速缓存(高速缓存域名服务器) 用来存放最近查询过的域名以及从何处获取域名映射信息的记录。例如:
如果不久前已经查询过www.baidu.com的IP地址,那么再次向本地域名服务器发出查询申请的时候,本地域名服务器并不需要向根域名服务器发出查询申请,而是直接把高速缓存中上次查询的结果告诉用户。