域名系统(DNS)的起源与发展、原理及解析流程 |
您所在的位置:网站首页 › serdes协议的起源和历史背景 › 域名系统(DNS)的起源与发展、原理及解析流程 |
域名系统(DNS)的起源与发展、原理及解析流程
一、域名系统的起源与历史局限
20世纪60年代末,美国国防部高级研究计划局(即ARPA,也是后来的DARPA),开始资助建立ARPAnet——一个试验性的计算机网络,用以连接美国各重要研究部门。 在20世纪70年代,ARPAnet是一个只有几百台主机的小型、友好的社区。所以只需要HOSTS.TXT这一个文件,就可以包含连接到ARPAnet的每台主机的名称到地址的解析。HOSTS.TXT文件由SRI的网络信息中心(NIC)负责维护,并且由一台单独的主机SRI-NIC来负责分发。ARPAnet的管理员通常将改动通过电子邮件传达给NIC,并定期通过FTP的方式连接到SRI-NIC,以获取最新的HOSTS.TXT文件。 随着ARPAnet的成长,这种方案就不可行了。HOSTS.TXT文件的大小随着ARPAnet上主机数量的增长而不断变大,此外,更新过程所造成的网络流量也增加得越来越快:每新增一台主机不仅仅意味着在HOSTS.TXT文件中增加一行,还意味着其他主机需要通过SRI-NIC获取更新。 当ARPAnet采用了TCP/IP协议后,网络用户出现了激增。这让使用HOSTS。TXT的主机面临以下诸多问题。 ①流量和负载 由于分发HOSTS.TXT文件所引起的网络流量和处理器负载,使得SRI-NIC的文件分发变得让人难以容忍。 ②名称冲突 在HOSTS.TXT文件中不应该出现两台名称相同的主机。然而,NIC虽然能够在分配地址时确保其唯一性,但是却没有管理主机名称的权利。NIC无法防止有人添加一台使用重复名称的主机,从而打乱整个机制。例如添加一台与邮件中心(mail hub)同名的主机将会破坏ARPAnet上的大部分邮件服务。 ③一致性 在一个不断扩展的网络上,维持HOSTS.TXT文件的一致性变得越来越困难。在新的HOSTS.TXT文件传达到庞大的ARPAnet的最远角落之前,可能某台主机的地址已经发生了改变,或者又有一台新的主机出现了。 二、DNS简述 1、什么是DNSDNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。 2、域名体系结构如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如baidu.com、taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,这里不多赘述。总体概括来说域名是由整体到局部的倒置树状结构。其中,树的深度最多可达127层。每个节点都有一个最长为63个字符的文本标签(不包括“.”号)。 3、DNS解析流程①名称服务器 存储域名空间信息的程序被称做名称服务器。名称服务器分为权威名称服务器(master):从其主机上的文件中读取区域数据和辅名称服务器(slave):从该区域的权威名称服务器上读取区域数据。需要注意的是一个区域的master和slave服务器都是该区域的权威。 ②root名称服务器 root名称服务器知道每个顶级区域的权威名称服务器的位置。 ③递归服务器 递归服务器在正常情况下,初始的时候里面没有任何域名解析数据,里面所有的域名解析数据都来自于它到权威解析服务器的查询结果,一旦查询完毕,递归服务器就会根据TTL时间在本地形成一条缓存记录,并为用户提供DNS解析的查询服务,这是递归服务器的功能。 ④解析流程 如上图所示,我们将详细阐述DNS解析流程。 (1)首先客户端位置是一台电脑或手机,在打开浏览器以后,比如输入www.zdns.cn的域名,它首先是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记录的都是各个顶级域所在的服务器的位置,当向根请求www.zdns.cn的时候,根服务器就会返回.cn服务器的位置信息。 (2)递归服务器拿到.cn的权威服务器地址以后,就会寻问cn的权威服务器,知不知道www.zdns.cn的位置。这个时候cn权威服务器查找并返回zdns.cn服务器的地址。 (3)继续向zdns.cn的权威服务器去查询这个地址,由zdns.cn的服务器给出了地址:202.173.11.10。 (4)最终才能进行http的链接,顺利访问网站。 (5)这里补充说明,一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存了,这个时候就直接把www.zdns.cn的A记录返回给客户端就可以了。 4、DNS资源记录记录一条域名信息映射关系,称之为资源记录(RR)。当我们查询域名www.zdns.cn的时候,查询结果得到的资源记录结构体中有如下数据: TTL,就是生存周期,是递归服务器会在缓存中保存该资源记录的时长。 网络/协议类型,它的代表的标识是IN,IN就是internet,目前DNS系统主要支持的协议是IN。 type,就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址)。 rdata是资源记录数据,就是域名关联的信息数据。 注:下面列出几种常用的资源记录类型: A :Address地址, IPv4 AAAA:Address地址 IPv6 NS :Name Server域名服务器 SOA:Start of Authority起始授权机构 MX:Mail Exchanger邮件交换 CNAME:Canonical Name规范名 PTR:Pointer指针,地址到名称的映射 TXT:Text SRV:Service 5、DNS缓存①什么是DNS缓存 在 DNS 查询服务过程中,为了提高查询的效率引入了缓存机制,在本地计算机中,DNS缓存分两种,一种是浏览器缓存,一种是操作系统缓存。 ②生存时间(TTL) 生存时间就是名称服务器允许数据在缓存中存放的时间。生存时间一到期,名称服务器就丢弃原有的缓存数据并从权威名称服务器获取新的数据。这也同样适用于否定的缓存数据:名称服务器必须每隔一段时间让否定应答过期,以防权威名称服务器上增加了新的数据。 数据生存时间的长短主要取决于性能和一致性两者之间的平衡。较短的TTL值有助于保证区域数据在网络上的一致性,因为远程名称服务器的数据保存时间到期很快,被迫频繁地询问权威名称服务器以获取新的数据。不过这样一来,名称服务器的负载就增加了,同时区域中数据的平均解析时间也变长了。 较长的TTL值,缩短了区域中数据的平均解析时间,因为数据能在缓存中存在较长的时间。缺点是如果名称服务器上的数据发生了变更,数据不一致的时间也会变长。 ③DNS解析流程(包含缓存版) (1)浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束。浏览器缓存域名也是有限制的,包括缓存的时间、大小,可以通过TTL属性来设置。 (2)如果用户的浏览器缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 (3)如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 (4)如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 (5)如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 (6)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找域名域服务器,重复上面的动作,进行查询,直至找到域名对应的主机。 (7)如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |