DNS解析过程及工作原理
看了一些相关文章,总感觉每篇文章在论述过程的时候都缺了些东西,要不就是没说清楚迭代查询和递归查询,要不就是没说缓存,要不就是缓存没说全。当然看了这么多文章,确实让我收获了很多知识,所以在自己的理解上,拾人牙慧,写一篇文章记录一下,如有错误,恳请批评指正~
什么是DNS?
DNS是一种按层次结构组织的分布式数据库系统,它由分布在全世界的成千上万个DNS服务器中的数据库组成。每个DNS的数据库中包含若干条资源记录,每条资源记录为其所管辖的区域中的DNS域名到某种数据(如IP地址)的映射,它提供主机名和IP地址之间的转换及有关电子邮件的选路信息。
DNS的作用
一句话概括:将域名解析为IP地址
DNS的查询方法
【递归查询】:DNS服务器代表请求客户端查询或联系其他DNS服务器,以便完全解析该域名,并将应答返回至客户端。
【迭代查询】:尝试联系其他的DNS服务器来解析名称,然后根据DNS服务器的应答,使用其他的独立查询。
以上,是比较官方的解释,比较抽象。
形象地来讲
递归查询就是:我让你去查找,你查找不到,你就去找其他人,我不管了。你只要把结果发给我就好了:要不找到了,要不找不到。这就是最终结果。
而迭代查询是:我让你去查找,如果你找到了就把结果给我,如果找不到,你告诉我下一步找谁,我再去向这个人去查找,直至查找到目标为止,或最终还是查找不到。
通过上面的分析,就能很好理解在DNS解析中是如何应用这两个查询的:
1. 主机向本地域名服务器的查询,属于递归查询,(主机就坐等结果返回了,只发一次请求,让本地域名服务器帮我做事吧~)
接下来本地域名服务器就开始工作了
2. 本地域名服务器向根域名服务器的查询,属于迭代查询。(每次都要本地域名服务器去请求,不懂的可以看看下面的解析过程,看看本地DNS服务器是不是超忙的!)
DNS的解析过程
1. 首先,主机在请求查询之前,先查找本地DNS缓存,有则返回给主机
2. 如果缓存中没有,则查看操作系统中有没有相关的映射记录(如host记录),有则返回,结束
3. 如果也没有,则主机向本地DNS服务器发送请求进行递归查询
4. 本地DNS服务器接收到请求后,查看自己的缓存记录,有则返回给主机
5. 如果没有,本地DNS服务器向根域名服务器发送查询请求
6. 根域名服务器返回给本地DNS服务器一个负责该区域的顶级域名服务器的IP
7. 本地DNS服务器根据这个IP,向顶级域名服务器去请求查询,如果有则返回给本地DNS服务器,本地DNS服务器再将内容返回给主机。
8. 如果没有,顶级域名服务器返回下一步应查询的权威服务器的IP
9. 本地DNS服务器根据这个IP,向权威域名服务器去请求查询,如果有则返回给本地DNS服务器,本地DNS服务器再将内容返回给主机。如果没有,代表查询不到
10. 本地DNS服务器就把查询结果记录在缓存区中,以供之后快速使用
以上过程中需要注意:
根域名服务器用来管理互联网的主目录,不存储域名,而是存储负责每个域的解析的域名服务器的地址信息,互联网上所有将域名转化为IP地址的请求,理论上都要经过根服务器。
DNS解析过程及工作原理相关推荐
- DNS解析过程及欺骗原理
什么是DNS DNS即地址解析协议,域名系统以分布式数据库的形式将域名和IP地址相互映射. 解析过程: 假如我们要访问 www.baidu.com ,首先要向本地DNS服务器发出DNS请求,查询 ww ...
- CDN工作过程及工作原理
CDN(Content Delivery Network)即内容分发网络,CDN的作用是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度.本文介绍CDN的工作 ...
- DNS解析过程中不得不知道的那些事
DNS解析过程中不得不知道的那些事 0x01 定义 0x02 域名结构 0x03 DNS查询方式 1.从查询方式分类 2.从查询内容: 0x04 常见的DNS资源记录 1.A/AAAA记录 2.CNA ...
- DNS那些事——从浏览器输入域名开始分析DNS解析过程
我们就从在浏览器输入域名开始分析. 文章目录 1. DNS服务器有哪些? 2. 从浏览器输入https://abc13.ban2.lcy0000.top/,DNS如何解析? 3. hosts文件是什么 ...
- K8S DNS解析过程和延迟问题
一.Linux DNS查询解析原理(对于调用glibc库函数gethostbyname的程序) 我们在浏览器访问www.baidu.com这个域名,dns怎么查询到这台主机呢? 1.在浏览器中输入ww ...
- DNS 解析过程详解
1. DNS解析过程 1).在浏览器中输入www.magedu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2).如果 ...
- 自举升压电路解析(电荷泵工作原理)
图中自举升压电路解析(电荷泵工作原理): 1.上电时:电源+11V流过D1.D2向C3充电,C3上的电压很快升至接近11V: 2.如果Q6导通,C1负极被拉低,C1形成充电回路,会很快C1充电至11V ...
- Android DNS解析过程
前言 一次排查接口404问题,引伸的Android DNS解析过程,简单分析总结一下 1.首先明白DNS解析流程 操作系统检查自身本地的hosts文件是否有这个网址的映射关系,如果有,直接返回完成域名 ...
- dns解析过程_DNS原理总结及其解析过程
点击上方蓝色字体,关注我们 前言 域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,使人更方便地访问互联网.DN ...
最新文章
- arc_loss训练手写数字分类
- LeetCode-数组-35. 搜索插入位置
- python_文件处理
- [Android] Android开发优化之——使用软引用和弱引用
- Altera之VIP TPG学习笔记
- 第三章:3.2 get 请求
- WebSocket + Spring消息推送服务的快速实现
- C语言一趟冒泡交换最小值,C语言单链表冒泡排序为啥以下代码实现不了?
- Android 自动扫描歌曲,Android扫描本地音乐文件开发案例分享
- mysql 5.6 没死_MySQL 5.6不删空用户的影响
- gcc oracle mysql_[转]Windows下用GCC连接MySQL数据库
- mysql查询时间提前五天_mysql选择月份查询该月有付款的数据(间隔x月并提前5天付款)...
- 【渝粤题库】 广东开放大学 劳动和社会保障法 形成性考核
- Super超图,GIS软件
- 爬梯:Docker全解析(二)
- Python学习第二章:变量和简单类型
- 扫荡倾斜摄影单体化难题
- Linux+conda+R+Rstudio下载安装环境全方面配置
- Gunicorn配置详解
- libusb使用指南
热门文章
- 成功解决numpy.ndarray size changed
- Robot Framework(三):RIDE工具简介
- Nginx证书配置:tomcat证书jks文件转nginx证书.cet和key文件
- CAD之设置坐标原点
- FFmpeg:‘UINT64_C‘ was not declared in ths scope
- Unity Loading转场学习笔记
- 美年旅游_自由行_编辑自由行
- 【Verilog】加法器减法器的设计
- 念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注
- c语言入门题目:输出两行短句