DNS解析流程

220 阅读2分钟

我们在浏览网页信息的时候都是通过请求服务器来返回网页信息,而每个服务器都有其确定的唯一IP地址以供我们精确查找到这台服务器,但是这些IP地址可能过于复杂,不容易让人记住,于是就出现了域名这一概念。我们平时在浏览器上输入的都是域名,那么如何通过域名找到IP呢,这就需要DNS来帮我们解析了。

DNS简介

DNS(Domain Name System)域名系统,它为了人们能更加方便的访问互联网,可以试做域名与IP地址之间相互映射的一个分布式数据库。DNS使用UDP端口53,对于每一级的域名长度限制是63个字符,域名总长度不能超过253个字符

DNS解析流程

DNS解析是一个递归的过程


假如我们在浏览器中输入www.baidu.com并按下回车键之后,浏览器会去请求本地的域名服务器中进行查找,本地域名服务器首先会去查询本地缓存,如果本地缓存中有记录则直接返回查询结果,若没有查询到,本地域名服务器就会想根域名服务器发送请求,根域名服务器若没有查到,就会想顶级域名服务器中查找,一直向上查找,直到找到IP地址并将其缓存在本地。

过程大概是

. -> .com -> baidu.com -> www.baidu.com

  • 本地DNS服务器查询流程

    img

  • 其他DNS服务器查询流程

    DNS查询

DNS优化

如上所示,在整个DNS解析并拿到IP地址的过程需要经过很多步骤,每个步骤需要发请求查找。所以要对DNS的解析流程进行优化

DNS缓存

DNS存在多级缓存,有浏览器缓存、系统缓存、路由器缓存、根域名服务器缓存、顶级域名器缓存、主域名服务器缓存

DNS负载均衡

在访问同一个大型网站时,通常会返回不同的IP地址。比如www.baidu.com,由于用户访问量大,不可能让用户去访问同一个服务器,此时DNS会根据每台服务器的负载量,据用户的距离等返回一个合适的IP让用户访问