DNS解析过程

为什么要使用DNS

由于我们想要取得web资源,需要和另外一台机器进行通信,通信使用ip+端口号

又因为ip太长太难记,就将ip和容易记忆的名字相对应起来

以后访问web资源只用输入名字就行,名字向ip的转换就由DNS服务器来执行

DNS如何解析名字转换成ip地址

解决这个问题先要了解DNS服务器是怎么分布的,因为本地进行DNS解析是通过给DNS服务器发送请求来得到结果的

按照最简单的原则,一个服务器中使用域名和ip一一对应的方式,这样有什么缺点?

很显然网站的数量是庞大的,服务器既无法处理也无法存储那么庞大的数据量

所以依照域名这个名字的划分形式,以树形的层级结构划分了DNS服务器

DNS服务器的划分

以一个自底向上的形式描述,首先是DNS本地服务器

DNS本地服务器是作为DNS查询的第一站,本地域名服务器离用户比较近,能能够快速响应用户的请求,同时他会动态的缓存那些新查询的域名对应的ip地址

在往上一层是区域名服务器,也称为权限域名服务器,权限域名服务器他掌管一个区,区的划分需要根据实际情况来设定。

再往上一层是顶级域名服务器,顶级域名服务器举个简单的例子就是.cn,.com之类的,他管理这所有在顶级域名注册下的二级域名

最上面就是根域名服务器,根域名服务器是最为重要的一个环节,他掌管这所有顶级域名的ip地址,同时也是所有的DNS查询的起点,如果根域名服务器都挂掉了(域名服务器是分布式架设的),那么全球的DNS解析可能都不能进行

DNS查询过程

域名解析有两个过程,一个称为递归查询一个称为迭代查询

查询方式的名称不是重点,重点是查询的主体

对于递归查询,查询的主体一直是在改变的,一开始由用户发送请求给本地域名服务器,本地域名服务器没有,则发送给根域名服务器,根域名服务器就开始顺着查询路径开始发送报文

得到的 报文级级回送,最终回到了用户手上,可以看到如果没有查询结果的话,用户在此期间是一直等待的,而且整个过程很是繁琐。

所以DNS查询通常采用迭代查询的方式,迭代查询的方式区别在于查询的主体不在发生变化,一直都是本地DNS服务器,他对根域名服务器发送请求,根域名服务器要么回送ip地址,要么指示他去查询根域名服务器下属的顶级域名服务器,顶级域名服务器也是执行同样的动作,直到找到相应的ip地址,或者返回错误信息

DNS高速缓存

DNS高速缓存,高速缓存存储着最近查询过的域名和ip的映射,以及从何处得到的域名映射。

采用这种形式减少了本地域名服务器发送报文数和网络上的回送报文数,节省了网络资源加快了响应速度。

但是采用了告诉缓存需要是一定的存储空间,存储空间有限,需要使用一定置换策略置换出相应的内容

另一方面,高速缓存的内容存在时效性,需要不断去维护,如果设定的重更新时间过长的,能够减少网络开销,过短,能够保证时效性

最后在主机中也可以保存一份本地域名服务器高速缓存的副本,这样可以现在本地中查找相应的域名,找不到了再去请求本地服务器。

对于本地来说只需要定时维护和本地域名服务器的一致性就行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值