什么是DNS?
其实就是域名系统(英文:Domain Name System 缩写:DNS),域名与IP地址相互映射的分布式数据库,让人便捷的访问互联网。
注意:DNS使用的UDP端口53,每一级域名程度限制63个字符,总长度不能超过253个字符
在互联网中我们通过域名访问某个网站,但解析的时候要把域名转换成Ip地址,也就是说,我们就需要进行域名转换IP地址的这个过程,这个过程其实就是DNS域名解析过程;
域名结构树
常规的域名 www.baidu.com
www其实就是主机名,但这样的主机名还有mail member space等,都隶属于baidu统一管理,类似QQ也是关于.com .cn .net等等,那么是谁在统一管理这些域名呢?
其实域名是以.来划分的 (www.baidu.com.) ,域名结构树类似下图。
域名服务器
域名结构树是需要域名服务器来维护管理的,总共有13个根域名,并且是由12个独立机构运营
根域名服务器会管理以下顶级域名服务器(Top Level Domain (TLD))
- com
- cn
- net
- gov
然后以上顶级域名服务器会分别管理各自的域名服务器(baidu bilili qq)
然后这些权威域名服务器会自己进行管理各自的主机
域名解析过程
- 浏览器首先需要看看自己浏览器缓冲有没有对应的IP记录
同时需要查询一下主机本地文件里有没有对应记录
如果此时内部有记录,那就可以通过缓存直接完成解析过程
- 浏览器要进行解析,是需要调用解析器(也就是一段通过域名获取IP地址的代码getHostByName("www.baidu"))这个解析器其实也就是DNS客户端
- DNS客户端对DNS服务器发送请求
这个DNS服务器一般是最近接我们本地DNS地址的服务器
本地DNS服务器一般由LSP负责管理(联通 电信 )
- 本地DNS服务器会查看缓存,如果有就直接返回IP地址,并标注非权威non-authoritative
- 接下来的步骤就由本地DNS服务器来独立完成,我们只需等待解析返回即可
本地DNS服务器解析过程
本地DNS服务器采用迭代方式传输,通过三层服务器获取到IP地址
- 把IP地址返回给解析器
- 缓存起来IP地址
- 解析器把地址给浏览器,浏览器就可以通过这个IP地址进行网页的链接了
注意:
1.解析器与本地DNS服务器之间用的是递归的方式传输,意思是发送数据以后最终返回结果给我就可以了;
2.而本地DNS服务器和三层服务器之间用的是迭代的方式传输,也就是第一步得到什么,然后接着第三步;