当我们在浏览器输入一个url地址时,需要获取到这个url的域名,本篇文章主要介绍了关于DNS查找解析域名的过程的一些东西。

关于DNS

不清楚DNS的小伙伴可以点这里:关于域名系统DNS解析IP地址的一些总结

查找域名 && 域名解析

DNS查找:

浏览器查找域名的IP地址。

浏览器DNS查找顺序一般是这样的:浏览器缓存→系统缓存→路由器缓存→ISP DNS 缓存→递归搜索。

详细过程如下:

a. 浏览器缓存,浏览器会缓存DNS记录一段时间。

操作系统没有设定浏览器存储DNS记录的时间长短,不同的浏览器会存储各自的一个固定时间,时长为2~30分钟不等。

b. 系统缓存

如果浏览器缓存里没有找到需要的记录,浏览器会做一个操作系统调用(windows里是gethostname),这样子,就可以获得系统缓存里的记录啦。

c. 路由器缓存

接下来,如果还是没有找到需要的缓存,将前面的查询请求发给路由器,它一般会有自己的DNS缓存。

d. 如果还是没有,那么就去检查ISP有没有吧~

每一个ISP(网络服务提供商),或一个大学,甚至是一个大学里的系都会有一个自己的本地域名服务器,他会在url第一次访问时缓存该域名的指向。下次再访问时,他会从缓存里把这个url曾经指向的IP调出来。

e. 递归搜索

还是没有需要的缓存~ 就只能放大招啦~
        你的ISP的DNS服务器会从根域名开始进行递归查询。

递归查询

主机向本地域名服务器的查询一般都是采用递归查询

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

迭代查询

本地域名服务器向根域名服务器的查询通常是采用迭代查询

当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么返回给本地域名服务器所要查询的IP地址,要么返回给本地域名服务器下一步应当查询的域名服务器的IP地址。

举个栗子:假设的主机想知道另一个主机(域名为 my.xxsilence.net)的IP地址。具体步骤如下:

① 主机先向其本地域名服务器进行递归查询,如果缓存中没有,继续下一步。

② 本地域名服务器采用迭代查询,先向一个根域名服务器查询。

③ 根域名服务器告诉本地域名服务器,下一次查询的顶级域名服务器 dns.net。

④ 本地域名服务器向顶级域名服务器 dns.net。

⑤ 顶级域名服务器 dns.net,下一次应查询的权限域名服务器dns.xxsilence.net的IP地址。

⑥ 本地域名服务器向权限域名服务器dns.xxsilence.net进行查询。

⑦ 权限域名服务器dns.xxsilence.net告诉本地域名服务器,所查询的主机的IP地址。

⑧ 本地域名服务器最后把查询结果告诉主机。

本文链接:http://www.cnblogs.com/xsilence/p/6035559.html

转载于:https://www.cnblogs.com/xsilence/p/6035559.html

DNS查找域名的过程相关推荐

  1. DNS解析域名的过程

    一.DNS解析域名的过程 1.大的过程可分为三步: (1).在缓存中查找是否之前解析过 (2).在windows系统的host文件中查找 (3).请求DNS服务器 2.小的过程可分为十步: (1).浏 ...

  2. DNS 的一些基础知识,以及 DNS 转换域名的过程

    DNS(Domain Name System),主要作用是将域名转成 IP,本文主要讲解了 DNS 的一些基础知识,以及 DNS 转换域名的过程. DNS 是什么 dig命令 绝大多数网络通信都是基于 ...

  3. python获取域名对应的ip_09python实现DNS查找域名对应的IP地址

    # DNS:是一个UDP层上边的协议,用于将域名转换成IP地址,在我们平时浏览网页的时候, # 这个我们平时用到的特别多的,在我们打开浏览器进行搜索网页的时候,不是填入IP地址进行 # 搜索的,而只是 ...

  4. linux检验dns的命令,使用dig、nslookup、host命令在Linux中检查反向DNS查找(rDNS)

    本文介绍在Linux系统中检查反向DNS查找(rDNS)的三种方法,可用dig.nslookup.host命令完成.rDNS代表反向DNS查找或反向DNS解析,通常,DNS用于确定与域名关联的IP地址 ...

  5. 简述DNS进行域名正向解析的过程。

    简述DNS进行域名正向解析的过程. 参考答案: 首先,客户端发出DNS请求翻译IP地址或主机名.DNS服务器在收到客户机的请求后: (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出 ...

  6. java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之计网_Part_2(在浏览器中输入www.baidu.com后执行的全部过程、DNS的域名<->IP地址、OS协议栈的样子、CDN)整起

    可以说计算机网络,就是玩那几层中的那些协议们,本层玩,本层玩完了跨层玩,跨层玩,跨层玩完了本层玩- PART1:在浏览器中输入网站网址后执行的全部过程? 0.服务器在 80 端口等待客户的请求. se ...

  7. DNS协议及域名解析过程(每个域名服务器都负责管理下一级域名服务器,保证域名的唯一性)

    DNS协议 我们之前已经了解过ARP协议. 如果说ARP协议是用来将IP地址转换为MAC地址,那么DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址). 我们都知道,TCP/ ...

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

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

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

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

最新文章

  1. 基于LightGBM算法实现数据挖掘!
  2. 大数据分布式集群搭建(插曲)
  3. 来自95后的天池中间件大赛总结
  4. oracle数组元素所在key,oracle可变数组(VARRAY)
  5. adas技术实现途径_未来实现100%清洁电力的途径,带来巨大的健康和工作
  6. Yii抛出的各种异常
  7. 微软Build 2017首日主角AI 同时发布.NET Core 2.0 Preview 1
  8. 可怕的DefaultAbstractHelperImpl
  9. 王道计算机网络 应用层整理 超详细版
  10. svn php 与 apache 的关系 思维导图
  11. python中index方法详解_Python中的index()方法使用教程
  12. mysql 闪回查询 sql_利用闪回查看Oracle表历史时刻数据
  13. 20_python基础—面向对象-私有属性和私有方法
  14. JS实现表单多文件上传样式美化支持选中文件后删除相关项
  15. 惠普HP CM1312nfi彩色激光打印机硒鼓替代方案
  16. mybatis plus(包米豆)json存储Mysql数据库
  17. 你及格了吗?史上最难云原生冷知识大挑战真题解析
  18. 互联网已到中年,下一个产业革命是?
  19. 1418. 点菜展示表
  20. LTR|怎么理解基于机器学习“四大支柱”划分的学习排序方法

热门文章

  1. Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序
  2. struts2源码阅读
  3. AMD连发四款OpenCL加速计算开发工具
  4. python使用smtp库发送邮件
  5. 绕安全狗mysql_Mysql注入绕过安全狗
  6. 大学总结以及研究生的规划
  7. java web创意_javaweb有什么能做的项目,最好比较有创意一点
  8. 【软考 系统架构设计师】英语高频词汇
  9. python r语言 结合 部署_Win10 下安装R,rpy2,Rstudio 安装与配置 并实现Python 调用 R语言...
  10. Python基于tkinterGUI的冒险交互小游戏项目总结