面试题:DNS域名解析过程(超详细)
通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web
服务器。
但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。
比如我们打电话的时候,必须要知道对方的电话号码,但由于电话号码难以记忆,所以通常我们会将对方电话号 + 姓名保存在通讯录里。
所以,有一种服务器就专门保存了 Web
服务器域名与 IP
的对应关系,它就是 DNS
服务器。
域名的层级关系
DNS 中的域名都是用句点来分隔的,比如 www.server.com
,这里的句点代表了不同层次之间的界限。
在域名中,越靠右的位置表示其层级越高。
毕竟域名是外国人发明,所以思维和中国人相反,比如说一个城市地点的时候,外国喜欢从小到大的方式顺序说起(如 XX 街道 XX 区 XX 市 XX 省),而中国则喜欢从大到小的顺序(如 XX 省 XX 市 XX 区 XX 街道)。
实际上域名最后还有一个点,比如 www.server.com.
,这个最后的一个点代表根域名。
也就是,.
根域是在最顶层,它的下一层就是 .com
顶级域,再下面是 server.com
。
所以域名的层级关系类似一个树状结构:
- 根 DNS 服务器(.)
- 顶级域 DNS 服务器(.com)
- 权威 DNS 服务器(server.com)
根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。
这样一来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。
因此,客户端只要能够找到任意一台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器。
域名解析的工作流程
- 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
- 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
- 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
- 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
- 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
- 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
- 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
- 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
至此,我们完成了 DNS 的解析过程。现在总结一下,整个过程我画成了一个图。
DNS 域名解析的过程蛮有意思的,整个过程就和我们日常生活中找人问路的过程类似,只指路不带路。
那是不是每次解析域名都要经过那么多的步骤呢?
当然不是了,还有缓存这个东西的嘛。
浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。
面试题:DNS域名解析过程(超详细)相关推荐
- DNS域名解析过程(较详细版)
在互联网世界你要去访问其他主机时,你总得知道那台主机的地址吧? 这时人们就发明了IP地址,每个IP地址与一台主机一一对应,通过IP地址就可以精确找到你需要访问的主机了,IP地址是使用4个0~255的数 ...
- 多张图带你彻底搞懂DNS域名解析过程
目录 1.DNS 2.域名系统DNS 的作用 3.域名的层级关系 4.DNS域名解析过程 递归查询 迭代查询 5.高速缓存 6.DNS相关面试问题 1.DNS DNS(Domain Name Syst ...
- 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程
上一篇文章<浅析Web请求过程>讲述的是如何发起HTTP请求,对于请求发起过程中很重要的一个步骤--DNS解析过程的描述是一带而过,本篇文章将跟着DNS解析过程来分析域名是如何解析的. 一 ...
- DNS域名解析过程详解
1. DNS概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址. 2. 因特网的域名结构 由于因特网用户众多,所以命名时, ...
- [计算机网络]DNS域名解析过程
DNS域名解析过程 dns 即是 domain name system 域名系统的缩写,将域名和 ip 的映射关系保存在一个分布式数据库中. 首先我们要明确一个观点.运行浏览器或者任何应用程序的主机和 ...
- DNS配置(超详细全过程,有图有解释),各个文件的含义也有解释
DNS域名解析配置全过程(超详细,配置文件各个部分的含义都有解释) 后面也有配置http的过程: DNS所需要的软件包组为bind,端口号为53. ip地址 192.168.209.150(做实验根据 ...
- DNS域名解析过程+通俗理解
1.背景 我们知道,在网络体系中,标识一个主机会用到IP地址,由一连串数字组成的,这并不利于人们的记忆.正如我们不会在线下去用电话号码去认对方,而是通过名字去想起对方一样的道理.因此,我们才通过域名( ...
- 计算机网络笔记:DNS域名解析过程
基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议.在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互 ...
- dns域名解析过程——从浏览器输入网址到页面显示的中间过程
BEGIN: 一.域名 1.域名(domain name)也叫做网域,是英特网上的一个服务器或者一个网络系统的名字,域名具有唯一性,在传输数据时作为定位标识,全球没有重复的域名.域名的形式是由若干个字 ...
最新文章
- Proximal Algorithms 4 Algorithms
- “rm -rf”相当于Windows?
- 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
- ios打包ipa的四种实用方法
- 计算机目录读取,从项目目录中读取SQL查询文件(Read SQL query file from project directory)...
- 红黑树 删除某节点后 旋转3次 举例
- TensorFlow 全网最全学习资料汇总之TensorFlow的技术应用
- python新手入门课_Python基础视频12集入门课程
- 理一理字节对齐的那些事
- 唯快不破:Web 应用的 13 个优化步骤
- +2流水线是怎样提高性能的,会遇到什么问题,解决方法是什么
- IOI2019团体总分前十排名:美国队夺魁,中国队第三,亚洲占六席
- [SHOI2008]堵塞的交通
- VBA编程之ODBC连接数据库
- python怎么降序输出结果_按降序打印Python
- ASAM让你减肥成为一种乐趣
- Mac IntelliJ IDEA 2020.1 闪退
- Python练习题018:a+aa+aaa+……
- 一把王者的时间带你拿捏计算机中整形提升的问题
- 时间序列预测(2):AI助力精准气象和海洋预测
热门文章
- 动漫的python语言代码大全_使用Python来看看动漫中的你
- ClickOnce 不支持请求执行级别“requireAdministrator”
- 西门子博图PLC学习笔记 (1)两个输出的的振荡电路
- arcgis10.2许可服务器状态:未运行,license无法启动解决办法
- MySQL 增删查询
- 洛谷4147 玉蟾宫
- 1.查询Student表中的所有记录的Sname、Ssex和Class列(sql语句练习)
- 汉字转换字母,可以取首字母,也可以取全拼
- 开发了一款基于 Flask 框架的在线电影网站系统(附 Python 源码)
- 为什么巨头要血拼「社区团购」?