【网络&通信协议系列(一)】DNS解析详解

相关名词

域名

维基百科:是用一串由点分隔的名字组成的Internet上某个计算机或计算机组的名称,用于在数据传输时标志计算机的电子方位;
其实就是日常说的网址,如:www.google.com、www.baidu.com

IP地址

维基百科:网络协议地址(Internet Protocol Address),是分配给网络上使用网络协议设备的数字标签,分为IPv4、IPv6;
接入互联网的每一台设备都有唯一的IP地址

概念

维基百科:域名系统(Domain Name System)是互联网的一项服务,是一个将域名与ip地址相互映射的分布式数据库,使用UDP和TCP的53端口通信;

最开始的域名系统是一个很大的hosts文本文件,与开发人员经常对ip定义别名的/etc/hosts文件配置相同。随着互联网的发展,原来的文本文件肯定是满足不了的,于是就一步步的演变为现在的分布式数据库系统。

DNS解析过程就是通过域名去保存有 域名-IP地址 映射关系的分布式数据库中找到对应的IP地址的过程

查找使用UDP协议的53端口通信,保存映射关系的服务器叫做根域名服务器

查询方式有:递归与迭代。客户端通过配置的DNS服务器查询由服务器递归的方式完成查询后返回结果给客户端,域名服务器之间通过迭代的方式查询最终结果。

解析过程详解

以最常见的在 浏览器输入网址访问网页 的过程为例:
1. 浏览器查询自身dns缓存中是否有这个域名以及是否过期,查询命中则返回完成解析。以Chrome为例,可以使用chrome://net-internals/#dns浏览器自身dns缓存,总共1000条且只有1分钟有效期。
2. 查询操作系统DNS缓存是否存在且未过期,命中则返回完成解析。Windows可以使用ipconfig /displaydns查看缓存的dns信息。
3. 操作系统匹配hosts文件,如果存在自定义配置,则返回完成解析。Win下配置路径为:C:\Windows\System32\drivers\etc\hosts,Linux、Mac下:/etc/hosts
4. 根据配置的DNS服务器地址,使用UDP协议查询53端口,客户端只管请求和获取响应,如果目标DNS服务器存在当前域名的缓存信息且未过期,直接返回结果完成解析。如果不存在缓存或已过期,目标服务器会有一个递归与迭代的查询过程。以www.xxx.com解析过程为例,目标DNS服务器首先向.com域名服务器发送查询请求,.com域名服务器返回xxx.com域名服务器的地址;再继续向xxx.com域名服务器发送查询请求,xxx.com服务器返回www.xxx.com的域名服务器地址;再向www.xxx.com服务器发送查询请求,获取到域名对应的IP地址,查询完成

上述步骤是一次完整的DNS解析过程,当服务器返回解析结果后,各级会缓存映射关系然后返回给上一级。

其它细节

为什么需要缓存?而缓存时间普遍又很短?
通过上面的详细步骤不难发现,DNS解析过程其实是需要耗费时间与资源的,如果每次都需要去根域名服务器去查询必然会极大的影响效率。有过配置域名解析经验的开发者会知道,添加解析是有一个生效过程的,就是将你的配置添加到DNS系统的一个过程。缓存时效性也是考虑到互联网中域名与ip的解析关系时刻在发生变动,缓存时间越长可能导致出错的概率越大。
缓存的一个直接影响是在实际运用中如果需要将更改后的域名解析实时生效,可能需要手动刷新操作系统的DNS缓存。

资源记录类型的概念
还是从添加域名解析出发,选择解析结果时会让选择是记录类型,常见的有A记录、CNAME记录、AAAA记录,所有记录类型如下图(截取自阿里云域名解析^_^):
记录类型
记录类型2

参考资料

维基百科:域名
维基百科:IP地址
维基百科:域名系统

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值