文章目录
- 一、什么是DNS
- 二、DNS的作用
- 三、DNS作用
- 四、DNS为什么用UDP
- 五、如果打开一个网站很慢,要如何排查
- 六、网页解析的全过程
一、什么是DNS
DNS是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络。
二、DNS的作用
DNS建立一个域名和IP地址相互映射的分布式数据库,能够使人更加方便地访问互联网。
三、DNS作用
DNS采用了一种树状的层次结构:
从上到下依次为根域名服务器,顶级域名服务器和权威域名服务器。
根域名服务器在全世界一共有13个,大部分位于北美洲。
DNS的工作原理如下:
假设主机A(abc.xyz.com)想知道主机B(def.mn.edu)的IP地址,如下图所示,主机A会首先向他的本地DNS服务器发送一个DNS查询报文。该报文包括被转换的主机名def.mn.edu,随后本地服务器先将该报文转发到根DNS服务器,根DNS服务器注意到查询的IP地址前缀为edu后向本地DNS服务器返回负责edu的顶级域名服务器的IP地址列表。该本地DNS服务器则再次向这些顶级域名服务器(下图指权威DNS服务器) 发送查询报文。该顶级域名服务器注意到 mn.edu 的前缀,并用权威域名服务器的 IP 地址进行响应。通常情况下,顶级域名服务器并不总是知道每台主机的权威 DNS 服务器的 IP 地址,而只知道中间的某个服务器,该中间 DNS 服务器依次能找到用于相应主机的 IP 地址,在经过若干个中间DNS服务器后,最终找到了负责主机B的IP地址的权威服务器的IP地址。 之后,本地IP服务器直接向该服务器发送查询报文从而获得主机B的IP地址。
事实上,域名解析查询有两种方式: 1. 递归查询。 2. 迭代查询
四、DNS为什么用UDP
其实DNS是同时使用了TCP和UDP。
在进行区域传送的时候,DNS会使用TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而TCP允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的TCP。
当客户端向DNS服务器查询域名的时候,一般返回的内容不会超过UDP报文的最大长度,即512字节。用UDP进行传输的时候速度更快,因此这个时候会使用UDP协议。
五、如果打开一个网站很慢,要如何排查
- 查看本地网速是否正常。
- ping命令查看网站服务器是否正常
- 网页的布局和内容设置是否合理:比如如果是table布局的网站是否嵌套次数太多,网页中是否存在很多尺寸大的图片或者flash。
- 如果使用了CDN,CDN节点网络质量差也会导致网速差。
- CDN的解析IP跨网。
- CDN的服务器负载高
- DNS的解析耗时。
六、网页解析的全过程
- DNS解析: 当用户输入一个网址并按下回车键的时候,浏览器获得一个域名,在实际通信过程中,由于我们需要一个IP地址,因此我们需要把域名转换为一个IP地址。
- TCP连接: 浏览器通过DNS获取到服务器真正的IP地址后,需要通过三次握手建立TCP连接。
- 发送HTTP请求: 建立好TCP连接之后,浏览器向web服务器发送一个http请求,这个时候可能会涉及到负载均衡等技术。
- 处理请求并返回: 当服务器获取到客户端的http请求后,会根据http请求的内容来决定如何获取相应的文件,并将文件发送给浏览器。
- 浏览器渲染: 当浏览器接收到服务器发送的响应之后,浏览器根据响应来渲染页面。首先解析 HTML 文件构建 DOM 树,然后解析 CSS 文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。
- 断开连接: 客户端和服务器四次挥手终止连接。