DNS知识小结

更多知识,请移步我的小破站:http://hellofriend.top

概述

DNS:Domain Name System
通过域名去寻找到主机的真实IP地址,就是所谓的DNS服务。

域名解析系统DNS
  • 多层命名服务器构成的分布式数据库
  • 应用层协议:完成名字的解析
    Internet核心功能,用应用层协议实现
    网络边界复杂

DNS服务

  • 域名向IP地址的翻译
  • 主机别名
  • 邮件服务器别名
  • 负载均衡:Web服务器

它是一种分布式层次式数据库的方式,从根目录开始,逐层往下查询的。例如www.baidu.com,会先找根服务器,找到com域名解析的服务器,然后从com域名解析的服务器,找到baidu.com解析的服务器。然后又从baidu.com找到访问网站的主机IP地址。
在这里插入图片描述

DNS根域名服务器

当本地域名解析服务器无法解析域名时,访问根域名服务器。目前全球共有13个根域名服务器,从权威的域名服务器中获取到映射后,返回给本都域名解析服务器。

TLD和权威域名解析服务器

顶级域名服务器(TLD, top-level domain): 负责com, org, net,edu等;

Network Solutions维护com顶级域名服务器

Educause维护edu顶级域名服务器

权威(Authoritative)域名服务器:组织的域名解析服务器,提供组织内部服务器的解析服务

本地域名解析服务器

  • 不严格属于层级体系
  • 每个ISP有一个本地域名服务器
    默认域名解析服务器
  • 当主机进行DNS查询时,查询被发送到本地域名服务器
    作为代理(proxy),将查询转发给(层级式)域名解析服务器系统

DNS查询示例

迭代查询

迭代查询会不断的与联系的服务器获取下一个要联系的对象,然后把请求在发送过去,通常需要发送多次请求。
迭代查询

递归查询

递归查询一般只发送一次请求然后将剩下的事情交给发送的服务器去完成,只需要接收最后的结果即可。
在这里插入图片描述

DNS优化

DNS这个过程中存在多个请求(同时存在UDP和TCP请求)。如果每次都经过这么多步骤,是否太耗时间?如何减少该过程的步骤呢?那就是DNS缓存。

DNS缓存

DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

  • 在你的chrome浏览器中输入:chrome://dns/,你可以看到chrome浏览器的DNS缓存。
  • 系统缓存主要存在/etc/hosts(Linux系统)中:
    在这里插入图片描述
DNS负载均衡

不知道大家有没有思考过一个问题: DNS返回的IP地址是否每次都一样?如果每次都一样是否说明你请求的资源都位于同一台机器上面,那么这台机器需要多高的性能和储存才能满足亿万请求呢?其实真实的互联网世界背后存在成千上百台服务器,大型的网站甚至更多。但是在用户的眼中,它需要的只是处理他的请求,哪台机器处理请求并不重要。DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向。大家耳熟能详的CDN(Content Delivery Network)就是利用DNS的重定向技术,DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章