DNS详解

DNS介绍

将ip和域名相互映射的分布式数据库。使用TCP和UDP端口53,每一级域名长度的限制是63个字符,域名总长度不能超过253个字符

DNS基于的UDP/TCP

一般意义上的域名解析都是基于UDP的,这样可以提高dns解析网络的负载能力和响应速度,而事实上dns区域内的服务器之间的同步操作是使用tcp的。一方面域名解析的报文长度不超过udp的最大长度512字节,而tcp是流式传输且能够保证传输的可靠性所以用来大规模的域名数据的同步更适合;另一方面同步本身是区域服务器定时完成的,时机上对于时延的要求并不高,相反对准确性要求更高

DNS的分层解析机制

image.png

DNS的服务类型

  • 授权型DNS:一种DNS的更新机制,开发人员可以管理公用DNS名称及其解析,然后响应DNS查询。授权型DNS对域有最终授权且提供递归型DNS服务器对ip地址信息的响应。阿里云就是一例
  • 递归型DNS:客户端一般不会对授权型dns服务直接进行查询。而是通常连接到称为解析程序的其他类型dns服务。递归型DNS拥有缓存dns参考,它会提供源或者ip信息来相应的dns查询。如果没有会传递一个或多个授权型dns服务器以查找信息

域名解析

  • 静态映射:本机配置域名和IP的映射,比如hosts文件
  • 动态映射:建立一套域名解析系统,通过源服务器的查询请求获取域名对应的IP地址

解析过程举例

  1. 浏览器输入www.xxx.com,enter
  2. 请求被路由到本机的dns解析程序,查询本地dns域名缓存,如果有直接返回,如果没有路由至网络服务提供商的dns解析程序
  3. ISP将解析程序再次转发www.xxx.com的解析请求到根域名服务器
  4. 根域名解析服务器转发给顶级域的名称服务器,服务器返回四个阿里云名称服务器的名称响应
  5. 解析程序选择一个服务器转发请求,获取域名对应的ip值返回
  6. 缓存此条解析记录,并指定记录时长

解析过程详解

  1. 用户首先在本地计算机的缓存中查找,如果没有就向本地域名服务器进行递归查询
  2. 首先客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则进行此记录进行解析,如果没有区域信息可以满足查询要求,服务器在本地缓存中查找,向一个根域名服务器进行查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP 地址
  4. 本地域名服务器向顶级域名服务器进行查询
  5. 顶级域名服务器 告诉本地域名服务器,下一步查询权限服务器的 IP 地址
  6. 本地域名服务器向权限服务器进行查询
  7. 权限服务器告诉本地域名服务器所查询的主机的 IP 地址
  8. 本地域名服务器最后把查询结果告诉 用户

这里的本地服务器指的是本地配置的服务器,可以是google的8.8.8.8

协议报文格式

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 12,598评论 3 34
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 3,052评论 0 7
  • 前言 本文开始介绍应用层,传输层为应用进程提供了端到端的通信服务,但不同的网络应用的应用进程之间,还需要有不同的通...
    HRADPX阅读 2,020评论 2 5
  • 1、前言 在当下互联网时代,我们日常生活和工作基本都离开不域名和 DNS ,如通过一个网址打开一个网站进行购物、使...
    cinder_lv阅读 3,713评论 1 27
  • 2019 iOS面试题大全---全方面剖析面试 2019 iOS面试题-----网络相关之HTTP协议 2019 ...
    Theendisthebegi阅读 8,025评论 2 20