DNS实现原理

DNS (Domain Name System)城名系统的英⽂缩写,是⼀种组织成域层次结构的计算机和⽹络服务命名系统,它⽤于TCP/IP⽹络,它从事将主机名或域名转换为实际IP地址的⼯作。DNS就是这样的⼀ 位“翻译官,它的基本⼯作原理可⽤下图来表示。

DNS解析过程

  • 浏览器中输⼊域名,操作系统会先检查⾃⼰本地的hosts⽂件是否有这个⽹络映射关系,如果有就先调⽤这个IP地址映射,完成域名解析。
  • 如果hosts没有域名,查找本地DNS解析器缓存,如果有直接返回,完成域名解析。
  • 如果还没找到,会查找TCP/IP参数中设置的⾸选DNS服务器,我们叫它本地DNS服务器,此服务收到查询时,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
  • 如果要查询的域名,不由本地DNS服务器区域解析,但该服务已经缓存了地址映射关系,则调⽤这IP地址映射,完成域名解析,此解析不具有权威性。
  • 如果上述过程失败,则根据本地DNS服务器的设置进⾏查询,如果未⽤转发模式,则把请求发给根服务器,根服务器返回⼀个负责该顶级服务器的IP,本地DNS服务器收到IP信息后,再连接该服务器进⾏解析,如果仍然⽆法解析,则发送下⼀级DNS服务器,重复操作,直到找到。
  • 如果是转发模式则把请求转发⾄上⼀级DNS服务器,假如仍然不能解析,再转发给上上级。不管是否转发,最后都把结果返回给本地DNS服务器上述⼀个是迭代查询,⼀个是递归查询。递归查询的 过程是查询者发⽣了更替,⽽迭代查询过程,查询者不变。
通过上⾯的步骤,我们最后获取的是IP地址,也就是浏览器最后发起请求的时候是基于IP来和服务器做
信息交互的。
举个例⼦来说,你想知道某个⼀起上法律课的⼥孩的电话,并且你偷偷拍了她的照⽚,回到寝室告诉⼀个很仗义的哥们⼉,这个哥们⼉⼆话没说,拍着胸脯告诉你,甭急,我替你查( 此处完成了一 次递归查询,即,问询者的⻆⾊更替) 。然后他拿着照⽚问了学院⼤四学⻓,学⻓告诉他,这姑娘是 xx 系的;然后这哥们⼉⻢不停蹄⼜问了xx 系的办公室主任助理同学,助理同学说是 xx yy 班的,然后很仗义的哥们⼉去xx yy 班的班⻓那⾥取到了该⼥孩⼉电话。 ( 此处完成若千次迭代查询,即,问询者⻆⾊不变,但反复更替问询对象) 最后,他把号码交到了你⼿⾥。完成整个查询过程。

猜你喜欢

转载自blog.csdn.net/m0_38004619/article/details/106733042