DNS系统
一 关于DNS
1.1 DNS协议是什么
概念: DNS 是域名系统 (Domain Name System) 的缩写,提供的是一种主机名到 IP 地址的转换服务,就是我们常说的域名系统。它是一个由分层的 DNS 服务器组成的分布式数据库,是定义了主机如何查询这个分布式数据库的方式的应用层协议。能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
作用: 将域名解析为IP地址,客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求,DNS服务器告知客户机Web服务器的 IP 地址。
1.2 域名是什么
- 其实就是区域的名字
- 每个域名背后都对应一个 IP 地址
- 虽然每次访问网站都是输入域名,但都是访问这个域名对应 IP 地址的网络服务器来打开网站的
- 其实就是将一串难以记忆的 IP地址,变成域名,这样就很好记了
从语法上讲,每一个域名都由标号序列组成,而各标号之间用点隔开。例如下面的域名:
顶级域名:一个域名由两个以上的词段构成,最右边的就是顶级域名。顶级域名又分为国家顶级域和国际顶级域名;
- 国家顶级域名(national top-level domainnames,简称 nTLDs):200多个国家都按照 ISO3166 国家代码分配了顶级域名,例如中国是 CN,美国是 US,日本是 JP 等;
- 国际顶级域名(international top-level domain names,简称 iTDs):例如表示工商企业的 .Com .Top,表示网络提供商的.NET,表示非盈利组织的.org,表示教育的.edu,表示销售公司或企业的.store,表示提供信息服务的单位的.info 以及没有限制的中性域名如.xyz 等 。
二级域名:二级域名是指顶级域名之下的域名。
在国际顶级域名下,它是指域名注册者的网上名称,例如 IBM、Yahoo、Microsoft 等;
在国家顶级域名下,它是表示注册企业类别的符号,例如 Top、Com、EDU、Gov、Net 等。
三级域名:三级域名用字母( A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过 20 个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。
二 DNS完整的查询过程
DNS服务器解析域名的过程:
- 首先会在浏览器的缓存中查找对应的IP地址,如果查找到直接返回,若找不到继续下一步
- 将请求发送给本地DNS服务器,在本地域名服务器缓存中查询,如果查找到,就直接将查找结果返回,若找不到继续下一步
- 本地DNS服务器向根域名服务器发送请求,根域名服务器会返回一个所查询域的顶级域名服务器地址
- 本地DNS服务器向顶级域名服务器发送请求,接受请求的服务器查询自己的缓存,如果有记录,就返回查询结果,如果没有就返回相关的下一级的权限域名服务器的地址
- 本地DNS服务器向权限域名服务器发送请求,域名服务器返回对应的结果
- 本地DNS服务器将返回结果保存在缓存中,便于下次使用
- 本地DNS服务器将返回结果返回给浏览器
比如要查询 www.baidu.com 的 IP 地址:
- 首先会在浏览器的缓存中查找是否有该域名的缓存,如果不存在就将请求发送到本地的 DNS 服务器中。
- 本地DNS服务器会判断是否存在该域名的缓存,如果不存在,则向根域名服务器发送一个请求,根域名服务器返回负责 .com 的顶级域名服务器的 IP 地址的列表。
- 然后本地 DNS 服务器再向其中一个负责 .com 的顶级域名服务器发送一个请求,负责 .com 的顶级域名服务器返回负责 .baidu 的权限域名服务器的 IP 地址列表。
- 然后本地 DNS 服务器再向其中一个权限域名服务器发送一个请求,最后权威域名服务器返回一个对应的主机名的 IP 地址列表。
三 迭代查询与递归查询
实际上,DNS解析是一个包含迭代查询和递归查询的过程。
- 递归查询指的是查询请求发出后,域名服务器代为向下一级域名服务器发出请求,最后向用户返回查询的最终结果。使用递归 查询,用户只需要发出一次查询请求。
- 迭代查询指的是查询请求后,域名服务器返回单次查询的结果。下一级的查询由用户自己请求。使用迭代查询,用户需要发出 多次的查询请求。
一般我们向本地 DNS 服务器发送请求的方式就是递归查询,因为我们只需要发出一次请求,然后本地 DNS 服务器返回给我们最终的请求结果。而本地 DNS 服务器向其他域名服务器请求的过程是迭代查询的过程,因为每一次域名服务器只返回单次查询的结果,下一级的查询由本地 DNS 服务器自己进行。
|