DNS 协议是一个应用层协议,它建立在 UDP 或 TCP 协议之上,默认使用 53 号端口。该协议的功能就是将人类可读的域名 (如,www.qq.com) 转换为机器可读的 IP 地址 (如,119.147.15.13)。

DNS协议默认通过 UDP 协议进行通讯,但是由于广域网中不适合传输过大的 UDP 数据包,因此规定当报文长度超过了 512 字节时,应转换为使用 TCP 协议进行数据传输。所以,DNS 协议是少有的既可以用 UDP 协议,又可以用 TCP 协议作为底层协议的应用层协议。

DNS解析过程

在进行DNS解析时,会经历以下步骤:

(1)浏览器缓存
浏览器会先检查是否在缓存中(浏览器会缓存之前拿到的DNS 2-30分钟时间),没有则调用系统库函数进行查询。

(2)操作系统缓存
操作系统也有自己的 DNS 缓存,但在这之前,会先检查域名是否存在于本地的 Hosts 文件里,没有则向 DNS 服务器发送查询请求。

(3)路由器缓存
如果(1),(2)步都查询无果,则需要借助网络,路由器一般都有自己的DNS缓存,将前面的请求发给路由器,查找ISP服务商缓存的DNS的服务器,如果查找到IP则直接返回,没有的话继续查找。

(4)ISP DNS 缓存
ISP DNS 就是在客户端电脑上设置的首选 DNS 服务器,它们在大多数情况下都会有缓存。

(5)根域名服务器查询
在前面所有步骤都没有缓存的情况下,本地 DNS 服务器会将请求转发到互联网上的根域。

我们熟悉的,www.baidu.com
1. com: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(⾮非盈利组织) 等。
2. baidu: 二级域名,指公司名。
3. www: 只是一种习惯用法。

域名的分级

域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
如下图所示:

其中顶级域名分为:国家顶级域名、通用顶级域名、反向域名。

国家顶级域名    中国:cn, 美国:us,英国uk…
通用顶级域名    com公司企业,edu教育机构,gov政府部门,int国际组织,mil军事部门 ,net网络,org非盈利组织…
反向域名    arpa,用于PTR查询(IP地址转换为域名)

分类

作用

根域名服务器

最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助

顶级域名服务器

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

权限域名服务器

负责一个区的域名解析工作

本地域名服务器

当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器

注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区
我们需要注意的是:
1. 每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
2. 每一级域名服务器都知道下级域名服务器的IP地址
3. 为了容灾, 每一级至少设置两个或以上的域名服务器

域名解析过程
域名解析总体可分为一下过程:
(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
具体可描述如下:
1. 主机先向本地域名服务器进行递归查询
2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
4. 本地域名服务器向顶级域名服务器进行查询
5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
6. 本地域名服务器向权限服务器进行查询
7. 权限服务器告诉本地域名服务器所查询的主机的IP地址
8. 本地域名服务器最后把查询结果告诉主机

递归查询和迭代查询
(1)递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
(2)迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

通俗地说,递归就是把一件事情交给别人,如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。
迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。

区别

  1. 递归查询时返回的结果只有两种:查询成功或查询失败迭代查询返回的是最佳的查询点或者主机地址

DNS(域名解析系统)协议相关推荐

  1. 中科大 计算机网络15 DNS域名解析系统

    DNS的必要性 DNS域名解析系统:不是直接给人使用的,而是给其他应用使用的 域名到IP地址的转换[使用:web应用,FTP应用...] 在应用层跑的基础设施,为其他应用而使用 网络层的工作的设备使用 ...

  2. 计算机网络之应用层:2、DNS域名解析系统

    应用层:2.DNS系统 DNS系统: 域名: 域名服务器: 域名解析过程: 递归查询和迭代查询: DNS系统: 就是将域名解析成相对应的IP地址,例如当你访问http://www.baidu.com时 ...

  3. 计网 - DNS 域名解析系统

    文章目录 Pre 统一资源定位符(URL) 域名系统 DNS 根域名服务器 域名分级和数据分区 DNS 查询过程 关于缓存 DNS 记录 DNS 记录的类型 CNAME AAAA 记录 MX 记录(M ...

  4. 【计算机网络】应用层 : DNS 域名解析系统 ( 域名 | 域名服务器 | 域名解析过程 | 递归查询 | 迭代查询 | 高速缓存 )

    文章目录 一.域名 二.域名服务器 三.域名解析过程 四.递归查询 五.迭代查询 六.高速缓存 一.域名 域名 : ① 域名表示方法 : 字母 , 数字 , "-" 符号 , &q ...

  5. 计算机网络系列(十)dns域名解析系统

    当你在浏览器中输入一个 URL,或者用curl请求一个网址--域名系统(Domain Name System)就开始工作了.作为互联网的一个重要成员,域名系统是将互联网资源和地址关联起来的一个分布式数 ...

  6. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

  7. 我国域名***日均58起 高安全DNS防御系统建设刻不容缓

    日前,国家互联网应急中心发布的<2013年中国互联网网络安全报告>显示,作为互联网运行的关键基础设施,我国域名系统面临安全漏洞和拒绝服务***等多种威胁,是影响网络稳定运行的薄弱环节.中心 ...

  8. 王道考研 计算机网络20 应用层 客户端/服务器C/S模型 P2P模型 DHCP协议 域名解析系统DNS 文件传送协议FTP 万维网 超文本传输协议HTTP

    应用层概述 FTP:文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议. SMTP:是一种提供可靠且有效的电子邮件传输的协议. POP3 ,全名为&q ...

  9. Google推出了一个名为“Google Public DNS”的域名解析系统

    据Google官方博客报道,Google推出了一个名为"Google Public DNS"的域名解析系统,允许用户免费使用Google的服务器解析网络域名,以加快上网速度,改善网 ...

  10. 计算机网络DNS域名解析协议详解

    DNS域名解析协议 由于采用了统一的IP地址,使得网络上任意两台主机的应用程序都可以很当变使用IP地址进行通信.但IP地址是一个具有32比特长的二进制数,即便使用4个十进制数来表示,对于一般用户来说, ...

最新文章

  1. 32岁健身教练转行程序员,拿到年薪76万offer
  2. 腾讯工作心得:原型该画到什么程度?
  3. 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
  4. windchill开发之创建对象
  5. 树型列表结构宽度调整_Material Design 网格列表
  6. 学习汇编图文. 寄存器的特殊用法
  7. 使用纯粹的ABAP位操作实现两个整数相加
  8. GPU Gems1 - 8 衍射的模拟
  9. 在Idea中测试各JVM语言的交互性
  10. android 文本后图标_如何在Android中更改文本,图标等的大小
  11. CF961G Partitions
  12. 安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo
  13. mysql查到库怎么进入表_mysql如何进入数据库查看所有表
  14. [转]java 中的序列化是什么意思?有什么好处?
  15. mxonline实战14,全局搜索,修改个人中心页面个人资料信息
  16. java api es_中间件系列之ElasticSearch-3-Java API操作ES
  17. Qt 绘制南丁格尔玫瑰图
  18. rtx服务器消息监控,rtx服务器消息监控
  19. 【修电脑】每次关机提示rundll32.exe程序没有响应,修改注册表解决问题
  20. spring boot跳过maven test

热门文章

  1. HTML写一首简单的居中唐诗,韩愈写的诗最简单的10篇
  2. java循环引用 垃圾回收,深入解析Java垃圾回收机制
  3. S4 HANA MRP LIVE
  4. Linux查看文件内容的方法
  5. 通关《Diablo2》12遍纪念
  6. SPA(单页面应用)的基本实现原理
  7. Java URI 和 android Uri 中的 getSchemeSpecificPart() 方法
  8. 计算机网络学习-应用层笔记
  9. Android客户端通过TCP接收服务器端发送的数据
  10. SpringBoot+OAuth2+Google关联登录