什么是DNS?
网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,但IP地址是一串32位的数字,DNS可以帮助我们解析DNS就是域名系统,是用于实现域名和IP地址相互映射的一个分布式数据库,
域名结构
如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如http://baidu.com、http://taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,
DNS解析过程
- 当客户端输入域名,客户端解析器会发送解析域名的请求,如果递归域名服务器本地缓存服务器没有资源记录,首先向根权威服务器找,根服务器会返回顶级域名服务器的参考信息,然后向顶级域权威服务器里找,顶级域权威服务器会返回二级域名的参考信息;
- 以此类推,直到找到对应域名的权威服务器,然后返回域名对应的IP地址,在TTL范围内,递归域名服务器中都会存储这个域名的查询结果;
- 浏览器拿到返回的IP地址,访问相应的web服务器进行数据交换
- 补充:一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存了
资源记录(RR)
记录一条域名信息映射关系,也就是存储在递归DNS中的,称之为资源记录(RR)。
当我们查询域名的时候,查询结果得到的资源记录结构体中有如下数据:
-
TTL,就是生存周期,是递归服务器会在缓存中保存该资源记录的时长。
-
网络/协议类型,它的代表的标识是IN,IN就是internet,目前DNS系统主要支持的协议是IN。
-
type,就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址)。
-
rdata是资源记录数据,就是域名关联的信息数据。