DNS解析过程
DNS解析过程
前置概念
1、 什么是DNS?
DNS,全称为Domain Name Server,作用就是将域名解析为IP地址
DNS依赖的传输层是UDP协议,无需建立连接,十分快速。
默认端口号为53
2、域名的组成
- www是三级域名,像本网站的图片域名就是
img.yesmylord.cn
- yesmylord是二级域名,在域名网站购买的多是二级域名
- cn是顶级域名,代表中国,常见的还有com、en、us等等
- cn后面其实还有一个
.
代表根域名,不需要输入
3、 域名服务器都有哪些?
本地域名服务器:最先接收我们主机的DNS查询,是当地的域名服务器
- 比如说一个大学就有一个域名服务器、一个ISP也有一个本地域名服务器
根域名服务器:最高层次的域名服务器
- 上面的例子的
xxx.cn.
,最后面的点就是根域名,一般不需要写 - 根域名服务器管理所有的顶级域名
- 上面的例子的
顶级域名服务器:顶级域名服务器管理在该服务器注册的所有二级域名
- 即
.cn
- 顶级域名服务器管理注册在此的二级域名
- 即
权限域名服务器:负责管理一个区(区的范围小于等于域,是DNS服务器的管理单位)
- 当一个权威域名服务器还不能够给出最后的额查询回答时,就会告知发出查询请求的DNS客户,下一步应当找哪一个权威域名服务器
4、DNS的递归查询与迭代查询
如图所示:
递归查询:图中的1和10
- 主机访问本地DNS服务器并且没有查到IP时,本地服务器就会代替我们访问其他域名服务器。
- 递归查询的特点是:本地DNS服务器代替我们查询,直到找到答案或确定答案不存在
迭代查询:图中2~9
- 本地DNS服务器向较高级别的DNS服务器(如根DNS服务器、顶级域DNS服务器、权威DNS服务器等)发起查询时,它执行的是迭代查询。
- 迭代查询的特点是:DNS服务器之间相互协作,每个DNS服务器都只提供有限的信息,而不负责完成整个查询过程
5、DNS域名服务器只使用UDP协议吗?
在域名查询时使用UDP协议,但在区域传送(即主域名服务器向辅助域名服务器同步数据时)会使用TCP
6、访问一个HTTPs网址有几个大过程?
- 首先会进行DNS查询
- 得到IP后,才能进行TCP三次握手
- 握手成功后,进行TLS握手,才能建立安全通信
一个域名的解析之路
当我们输入一个网址,比如
www.yesmylord.cn
(我的博客),DNS都做了什么?
你在浏览器地址栏输入了www.yesmylord.cn
:
- 查询浏览器缓存(浏览器缓存会缓存最近浏览过的网页的域名与IP地址)
- 如果没有,查询系统缓存(即hosts文件)
- 如果没有,去路由器缓存查找
- 如果没有,去本地DNS服务器查
- 本地DNS服务器会代替我们,向根域名服务器发送请求(这里叫递归查询:因为DNS是代替我们进行的查询,而不是我们主机发起的查询)
- 本地DNS服务器访问根域名服务器,根域名服务器返回顶级域名服务器IP地址(解析出顶级域名
.cn
的地址) - 本地DNS服务器访问
.cn
的顶级域名服务器的地址,返回其管理的权威域名服务器IP地址(解析出.yesmylord
) - 权威域名服务器A不知道IP是什么,他告诉我们访问权威域名服务器B
- 权限域名服务器B返回真正的IP地址(解析出
www
)
- 本地DNS服务器访问根域名服务器,根域名服务器返回顶级域名服务器IP地址(解析出顶级域名
- 本地DNS服务器查到结果后,得到了
www.yesmylord.cn
的地址,告知我们 - 得到IP就可以进行TCP握手了
- TCP建立连接后,如果是HTTPS协议,还需要TLS握手
- 此后就可以进行HTTP通信了
值得注意的是,DNS查到的可能是CDN服务器的地址
CDN服务器可以缓存一个网站的静态资源,达到快速响应的目的
注意:
- 缓存的是静态资源,动态资源不能缓存
总结
查询过程:
- 浏览器缓存
- 系统hosts文件
- 路由器缓存
- 本地DNS服务器缓存
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器(有的也叫权威域名服务器)