当前位置: 首页 > article >正文

DNS是什么,有什么用(详细介绍版)

DNS是什么

DNS(Domain Name System) 是⼀种⽤于将域名(例如www.baidu.com)转换为IP地址(例如 220.181.111.188 )的分布式系统。在互联⽹上,计算机和其他⽹络设备使⽤IP地址来相互识别和通信。然⽽, IP地址是⼀串数字,不太⽅便⼈们使⽤和记忆,所以就使⽤了域名来代替复杂的IP地址。

          

对于DNS服务器若采⽤集中式的设计有以下问题

1、单点故障

如果 DNS 服务器崩溃,那么整个⽹络随之瘫痪。通信容量(traaffic volume) ,单个 DNS 服务器不得不处理所有的 DNS 查询,这种查询级别可能是上百万上千万级,⼀台服务器很难满⾜;

2、远距离集中式数据库

单个 DNS 服务器不可能 邻近 所有的⽤户,假设在美国的 DNS 服务器不可能临近让澳⼤利亚的查询使⽤,其中查 询请求势必会经过低速和拥堵的链路,造成严重的时延;

3、维护

维护成本巨⼤,⽽且还需要频繁更新

域名的层级关系

DNS 中的域名都是⽤句点来分隔的,⽐如 www.server.com ,这⾥的句点代表了不同层次之间的界限。 在域名中,越靠右的位置表示其层级越⾼。

DNS解析过程

1. 先查询浏览器缓存是否有该域名对应的IP地址。

2. 如果浏览器缓存中没有,会去计算机本地的Host⽂件中查询是否有对应的缓存。

3. 如果Host⽂件中也没有则会向本地的DNS服务器(通常由你的互联⽹服务提供商(ISP)提供, ⽐如中国移动)发送⼀个DNS查询请求。

4. 如果本地DNS解析器有该域名的ip地址,就会直接返回,如果没有缓存该域名的解析记录,它会向根DNS服 务器发出查询请求。根DNS服务器并不负责解析域名,但它能告诉本地DNS解析器应该向哪个顶级域 (.com/.net/.org)的DNS服务器继续查询。

5. 本地DNS解析器接着向指定的顶级域名DNS服务器发出查询请求。顶级域DNS服务器也不负责具体的域名解析,但它能告诉本地DNS解析器应该前往哪个权威DNS服务器查询下⼀步的信息。 6. 本地DNS解析器最后向权威DNS服务器发送查询请求。 权威DNS服务器是负责存储特定域名和IP地址映射的服务器。当权威DNS服务器收到查询请求时,它会查找"example.com"域名对应的IP地址,并将结果返回给本地DNS解析器。

7. 本地DNS解析器将收到的IP地址返回给浏览器,并且还会将域名解析结果缓存在本地,以便下次访问时更快地响应。

8. 浏览器发起连接: 本地DNS解析器已经将IP地址返回给您的计算机,您的浏览器可以使⽤该IP地址与⽬标服务器建⽴连接,开始获取⽹⻚内容。

递归查询和迭代查询

递归查询和迭代查询是在DNS解析过程中⽤于获取域名解析信息的两种不同⽅法。

1. 递归查询

在递归查询中,DNS客户端(通常是本地DNS解析器)向上层DNS服务器(如根域名服务器、顶级域名服务器)发 起查询请求,并要求这些服务器直接提供完整的解析结果。递归查询的特点是,DNS客户端只需要发送⼀个查询请 求,然后等待完整的解析结果。上层DNS服务器会⾃⾏查询下⼀级的服务器,并将最终结果返回给DNS客户端。

2. 迭代查询

在迭代查询中,DNS客户端向上层DNS服务器发起查询请求,但不要求直接提供完整的解析结果。相反,DNS客户 端只是询问上层服务器⼀个更⾼级的域名服务器的地址,然后再⾃⾏向那个更⾼级的服务器发起查询请求,以此类 推,直到获取完整的解析结果为⽌。 递归查询适合普通⽤户和客户端,⽽迭代查询适⽤于DNS服务器之间的通信。 

此图属于迭代查询。

http://www.lryc.cn/news/2416982.html

相关文章:

  • 【数模】多元线性回归分析
  • 单片机和sbit和sfr
  • 常用软件过程——RUP
  • TreeSet的使用方法总结、实现原理、使用示例
  • 语法制导的翻译总结
  • Aircrack-ng组件详解
  • 安卓屏幕分辨率及UI尺寸详解
  • 服务器配置篇 ━━ iis7配置php出现fastcgi的500错误,LocalSystem/LocalService/NetworkService/ApplicationPoolIdentity
  • 【UEFI实战】FSP简介
  • 并发——ScheduledThreadPoolExecutor 详解
  • 逻辑回归(Logistic)
  • 学习Qss--Qss的特性
  • 高并发下System.currentTimeMillis()性能问题及优化方案
  • 串口(SerialPort)的使用
  • 常用正交表(正交法编写测试用例)
  • Redis——持久化之RDB
  • rhapsody软件_Rhapsody集成引擎之日志篇(一)
  • 撞库及其危害性
  • log4net的使用步骤
  • 2的n次方对照表
  • 【Android 四大组件之Service】一文吃透Service 服务
  • Linux 文件系统挂载 INITRAMFS 与 INITRD
  • PreparedStatement 用法
  • Nginx-基本安装
  • Windows Vista 系统中的用户帐户控制和UAC远程限制 设置
  • 总线概述及常见总线
  • 基于JAVAWeb+Tomcat+Mysql开发的微电影网站
  • Java 常用代码汇总-附源码
  • C语言之文件读写——fscanf(),fprintf()详解
  • mailbox机制实例介绍(一)