“DNS”这个单字,想必那些经常使用计算机,尤其是经常手动配置IP和DNS服务器的人是非常熟悉的。也许其中的大部分人并没有深入了解过它的具体意义,只是对它有个简单的了解,然后习惯性地将主DNS服务器和备DNS服务器配置成 114.114.114.114 和 8.8.8.8 (因为比较好记忆~~)。
什么是DNS?
DNS 的全称是 Domain Name System(域名系统,或者常称为域名解析系统)。
我们在上网的时候,经常要通过浏览器去访问一些网站,实际上就是访问网站所在的服务器IP地址,但是让用户记住设备的IP地址是非常困难的。我们常用的方式就是在浏览器中输入要访问的网址链接(例如 www.example.com),然后浏览器就会通过解析这个域名地址,找到要访问的服务器,从而读取到需要访问的网站的数据。所以我们在因特网上,构建了域名和IP地址互相映射的分布式数据库,在IP地址和域名之间形成一种转换和查询机制。
所以,DNS工作的过程可以简单描述为:域名地址经过DNS服务器解析后,得到对应的IP地址,通过该IP地址访问到服务器获取我们要访问的内容。
DNS通信主要使用UDP,TCP为辅,使用端口号53。当然,端口号可以修改,但是默认是使用53端口;在某些情况下,也会采用TCP协议。DNS是网络分层里的应用层协议,事实上他是为其他应用层协议工作的。
如果上面通俗的解释让你理解了DNS是什么的话,那么再读一读下面比较官方的说法,也许你就能形成更加准确的认识。
以下是百度百科对DNS的定义:
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
实际上网时域名的解析过程
1. 当用户在地址栏输入一个URL之后,浏览器首先查询浏览器的缓存;
2. 找不到就去查询Hosts文件和本地DNS缓存,如果hosts和本地DNS缓存都没有找到域名对应的IP,则自动进入路由器的缓存中检查;
3. 以上均为客户端DNS缓存,若在客户端DNS缓存还是没找到,则进入ISP DNS缓存中查询;
4. 还是找不到,最终才向根DNS 服务器发出 DNS 查询报文,再找不到就报错。
原文:https://blog.csdn.net/sinat_36645384/article/details/79129962