1、DNS系统的简介:

DNS是一套从域名到IP的映射系统。
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆。于是人们发明了一种叫主机名的东西是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。 用户可以简单的输入主机名xxxx,这样就可以简单的得到主机名和IP地址的映射关系,它存储在hosts文件中。

最初通过互连网信息中心(SRI-NIC)来管理这个hosts文件的:如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件。其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。

但是这样做太过麻烦了,所以就产生了域名解析系统DNS:

  • 一个组织的系统管理机构,维护系统内的每个主机IP和主机名的对应关系
  • 如果新计算机接入网络,将这个信息注册到数据库中

  • 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库, 得到对应的IP地址。

注:我们的计算机上仍然保留了hosts文件,在域名解析的过程中仍然会优先查找host文件的内容。

2、互联网中的的域名

从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。

这是中央电视台用于手法电子邮件的计算机的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。

下面是域名的基本结构

3、DNS服务器(域名服务器)

如果采用上述的树状结构,每一个节点都采用一个域名服务器,这样会使得域名服务器的数量太多,使域名服务器系统的运行效率降低。所以在DNS中,采用划分区的方法来解决。

一个服务器所负责管辖(或有权限)的范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机到域名IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。区 <= 域。

下图是区的不同划分方法的举例。假定abc公司有下属部门x和y,部门x下面有分三个分布们u,v,w,而y下面还有下属部门t。图a表示abc公司只设一个区abc.com。这是,区abc.com和域abc.com指的是同一件事。但图b表示abc公司划分为两个区:abc.com和y.abc.com。这两个区都隶属于域abc.com,都各设置了相应的权限域名服务器。不难看出,区是域的子集。

从下图可以看出,因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为下面四种不同的类型。

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限(权威)域名服务器:负责一个“区”的域名服务器。

本地域名服务器:本地服务器不属于下图的域名服务器的层次结构,但是它对域名系统非常重要,一般由ISP(Internet Service Provider),互联网服务提供商提供。作为代理,将查询转发到(层级式)域名解析服务器系统。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

4、域名的解析过程

注意:

一、主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

二、本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

下面举一个例子演示整个查询过程:
假定域名为m.xyz.com的主机想知道另一个主机y.abc.com的IP地址。例如,主机m.xyz.com打算发送邮件给y.abc.com。这时就必须知道主机y.abc.com的IP地址。下面是上图a的几个查询步骤:
1、主机m.abc.com先向本地服务器dns.xyz.com进行递归查询。
2、本地服务器采用迭代查询。它先向一个根域名服务器查询。
3、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
4、本地域名服务器向顶级域名服务器dns.com进行查询。
5、顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。
6、本地域名服务器向权限域名服务器dns.abc.com进行查询。
7、权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
8、本地域名服务器最后把查询结果告诉m.xyz.com。
整个查询过程共用到了8个UDP报文。
为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

例如,在上面的查询过程中,如果在m.xyz.com的主机上不久前已经有用户查询过y.abc.com的IP地址,那么本地域名服务器就不必向根域名服务器重新查询y.abc.com的IP地址,而是直接把告诉缓存中存放的上次查询结果(即y.abc.com的IP地址)告诉用户。

由于名字到地址的绑定并不经常改变,为保持告诉缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项(例如每个项目两天)。当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器绑定信息。当权限服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的正确性。

不仅在本地域名服务器中需要高速缓存,在主机中也需要。许多主机在启动时从本地服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到名字时才使用域名服务器。维护本地域名服务器数据库的主机应当定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删除无效的项。由于域名改动并不频繁,大多数网点不需花精力就能维护数据库的一致性。

DNS原理和解析过程相关推荐

  1. DNS原理及其解析过程 精彩剖析

    DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如"202.96.134.133"之类的I ...

  2. DNS原理及其解析过程(转)

    转自(http://369369.blog.51cto.com/319630/812889) 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如 ...

  3. DNS原理及解析过程详解

    目录 1 域名系统概述 2 因特网的域名结构 3 域名服务器 4 域名的解析原理过程 4.1 DNS解析原理 4.2 域名解析过程 5 查询过程 5.1 演示整个查询过程 5.2 关于DNS解析的TT ...

  4. DNS原理及其解析过程

    1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则 ...

  5. 域名(DNS)原理及解析过程详解

    相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程.下面我们将详细的给大家讲解 ...

  6. 一篇让你彻底了解DNS原理及其解析过程

    1.序 TCP/IP网络中要求每一个互连的计算机都具有其唯一的IP地址,如39.1xx.20.58.并基于这个IP地址进行通信.然而,直接使用IP地址有很多不便之处.例如,在进行应用操作时,用户必须指 ...

  7. DNS工作原理及解析过程

    1.何为DNS? DNS( Domain Name System)是"域名系统"的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务 ...

  8. DNS域名详细解析过程

    最近需要搭建一个网站,需要域名解析和备案了,租了一个很便宜的服务器,而且服务超级好,有兴趣私聊我. 什么是DNS域名解析 我们首先要了解域名和IP地址的区别.IP地址是互联网上计算机唯一的逻辑地址,通 ...

  9. DNS的详细解析过程

    DNS解析又称域名解析.目的是将域名解析成对应的ip地址,去相对应的ip地址服务器上获取请求资源. 从输入网址到看到界面的整个流程: 1.浏览器中输入网址 ==> 2.域名解析(DNS),找到I ...

最新文章

  1. 海尔推“智能服务”标准 家电产业迎来“互联网+”
  2. python语言实战-别找了,这是 Pandas 最详细教程了
  3. python面试-Python面试常问的10个问题
  4. “代理”那点事儿-使用代理和搭建简单代理服务
  5. OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力
  6. 查看docker运行状态_docker商业版受限?请了解下crio
  7. php中删除文件夹内容吗,如何使用PHP删除包含内容的文件夹
  8. 程序员是向左走,还是向右走!
  9. Datetime数据类型之datetime2和datetimeoffset数据类型
  10. 题目1008:最短路径问题(SPFA算法)
  11. java 开发ocx控件_Java调用ocx控件以及dll
  12. ROS2中的行为树 BehaviorTree
  13. 决策树模型及案例(Python)
  14. 单应性矩阵的理解及求解
  15. win10连接win7共享打印机(win10连接win7共享打印机)
  16. Spring源码解析之AOP篇(三)----Spring开启AOP的两种方式
  17. 【格式化文档】ISO27001控制措施+ISO27002实施指南 【上】
  18. 使用Jquery制作精美的图片展示效果
  19. 1.【Windows图标点击无反应修复
  20. 求生之路怎么显示所有服务器,求生之路2怎么屏蔽rpg服务器 求生之路2屏蔽rpg服务器方法_游侠网...

热门文章

  1. S7-300PLC顺序控制指令与程序编写实例
  2. 当单片机遇上状态机(二) 为什么QP难以入门?
  3. 25 openEuler管理网络-使用nmcli命令配置ip
  4. spring mvc get 请求 对于 “Sun Sep 29 00:28:16 CST 2019”格式日期的处理
  5. 分布式文件系统之GPFS
  6. 软工大作业·倾物语(二)
  7. bnu1079 BNUEP的球迷 C语言版
  8. 漫谈智能工厂的控制系统
  9. 彧吉他官网改造计划(二)
  10. python爬取知乎话题广场_用于爬取知乎某个话题下的精华问题中所有回答的爬虫...