因为只要我们输入百度、腾讯、淘宝的名字,无论它们的服务器在哪里,历经多少轮查询,我们都能找到并访问之。这就是计算机网络中著名的域名系统DNS(Domain Name System),它能实现把一个网站的域名解析为对应的IP地址。有了IP就能和目标建立连接。这一看似简单的过程,却隐含多个步骤和小概念。

下面大家一起来动一动脑、扫一扫盲,当浏览器里输入http://www.baidu.com回车后,怎样能解析到它的IP呢?

a) 我们会先检查浏览器的缓存中有没有http://www.baidu.com对应的IP地址

b) 如果没有,再检查电脑操作系统的缓存中有没有http://www.baidu.com的IP地址

[小贴士] 一般来说,当电脑第一次成功访问一个网站后,在一定时间内,浏览器或操作系统会缓存有它的IP地址(DNS解析记录) 。

查看操作系统上已缓存的所有DNS解析记录 (本例有2条):

Time To Live (TTL) 表示这条记录还能缓存在操作系统内的剩余时间。比如第一条,2119s后,它将不再有效。

这时如果网站的IP发生变化,但我们系统的DNS缓存未到期,这就会导致仍使用旧的IP去访问而出错。

所以这种情况下,需要清除一把操作系统的DNS缓存:

c) 如果浏览器和操作系统的缓存都没有http://www.baidu.com的IP记录,我们会接着检查C:WindowsSystem32driversetc的hosts文件,因为这个文件能直接指定域名对应某个IP地址。

如果以上3步都没找到对应的IP。恭喜~接下来我们将正式进入请求域名服务器DNS(Domain Name Server)帮忙解析域名的阶段了。。。

1. 电脑客户端会发出一个DNS请求 (http://www.baidu.com的IP是啥啊) 给它的本地域名服务器 (本地DNS)。

本地域名服务器 (本地DNS) 是什么鬼?我们通过网络属性看一看↓↓↓

如果设置在左图自动获取模式下,本地DNS由你的网络服务商(ISP) 如电信,移动等自动分配,它通常在你网络商的某个机房。

如果设置在右图,我们将不服从ISP分配。明确指定用Google (8.8.8.8) 或者我们国内网络商(114.114.114.114) 提供的免费DNS服务器作为这台电脑连接的本地DNS。

[小贴士] 一般如果ISP提供的DNS出现问题而导致域名解析失败不能访问网页时,我们可以按右图手工定义本地DNS的地址。

2. 本地DNS收到来自客户端的请求。大家可以想象这台服务器上缓存了一张各域名与之对应IP地址的大表格。如果能找到www.baidu.com,它直接就返回IP地址。如果没有,本地DNS会去问他的老大哥Root:嗨,能告诉我http://www.baidu.com的IP地址吗?

老大哥Root就是根域名服务器,它是最高层次的,全球共有13套。它不直接用于域名解析,但能指明一条道路。

3. Root DNS收到来自本地DNS的请求说:哦,http://www.baidu.com啊,这个域名是由.com区域管理,我给你我小弟Top的地址,你去问问他吧。

4. 本地DNS:Hi Top哥,你能告诉我http://www.baidu.com的IP地址吗?

小弟Top其实就是顶级域名服务器 (比如.com, .net, .org…一级区域),它负责管理二级域名(比如baidu.com, qq.com...),所以它能提供一条更清晰的方向。

5. Top说:我给你负责http://www.baidu.com区域的权威人士小A的地址,你去问她应该能问到了。

6. 本地DNS:喂,小A,http://www.baidu.com对应的IP是啥呀?

小A就是baidu的权威域名服务器,它是域名解析结果的原出处。就通俗上“这个域名我说了算”的服务器。

7. 小A查询后将对应的IP地址X.X.X.X告诉本地DNS

8-9. 本地DNS再将IP地址返回客户端,客户端和目标建立连接。

至此,我们我们完成了DNS的解析过程。总结一下,整个过程就是:

站在客户电脑角度,这是一次DNS递归查询过程,因为由本地DNS全权为它效劳,它坐等结果即可;另一种是DNS迭代查询,它需要客户端亲历亲为,各域名服务器只指明下一步方向。

PS~~最后一起来享受一把一条命令获取DNS解析的快感吧。比如我们解析http://www.qq.com的IP地址

在命令结尾处加上IP地址,表示指定它作为这次查询的本地DNS

以上。

如果说网络的本质是连接一切,那域名为“一切”提供了身份标识,IP则为“一切”提供了联系的可能。

现实生活不会因为我记住了你的名字,而再次相遇。但在网络的世界,知道你的名字,已是足矣。

转载于:https://www.cnblogs.com/heiyizixia/p/10623011.html

1-趣味解读DNS工作原理——转载疯猫网络科技相关推荐

  1. 深入解读RabbitMQ工作原理及简单使用

    深入解读RabbitMQ工作原理及简单使用 RabbitMQ系列目录 RabbitMQ在Ubuntu上的环境搭建 深入解读RabbitMQ工作原理及简单使用 Rabbit的几种工作模式介绍与实践 Ra ...

  2. 计算机dns的工作原理,解析DNS工作原理

    DNS是互连网核心协议之一,不管是上网浏览,还是编程开发,都需要了解一点它的知识.本文就来学习DNS工作原理,希望您读完本文也对它有所了解. DNS(Domain Name System)是" ...

  3. 域名服务器(DNS)工作原理

    域名服务器工作原理 引言 只要您在互联网上发送电子邮件或浏览Web,您就会用到域名服务器,而您自己可能都不知道您在使用它们.域名服务器(即DNS)是互联网的相当重要且完全隐藏的部分,并且很神奇.域名服 ...

  4. DNS工作原理及解析过程

    1.何为DNS? DNS( Domain Name System)是"域名系统"的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务 ...

  5. DNS工作原理及过程讲解

    0x00前言 想必大家都知道当今上网浏览web页面或访问其他服务一般都是用域名来访问的,这是由于IP地址不容易记住而且使用不方便,这时候科学家们就发明了域名,从而衍生出了各种大大小小的域名解析服务器( ...

  6. 三极管工作原理(转载)

    参考文章 : 1.三极管工作原理详解 2.图说三极管的三个工作状态 3.图解三极管基本知识及电子电路图 半导体三极管,又称为双极结型晶体管(bipolar junction transistor, B ...

  7. jQuery UI Widget(1.8.1)工作原理--转载

    先看下代码的相关注释: /*!* jQuery UI Widget 1.8.1** Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) ...

  8. DNS工作原理及其过程

    DNS服务器所提供的服务是完成将主机名或域名转换为IP地址的工作.为什么需要将主机名或域名转换为IP地址的工作呢?这是因为,当网络上的一台客户机访问某一服务器上的资源时,用户在浏览器地址栏中输入的是便 ...

  9. DNS关键词:DNS工作原理、A记录、CNAME记录、MX记录、PTR记录、SOA记录、NS记录

    一.DNS基础:什么是DNS?DNS域名称空间的组织方式?DNS服务的工作过程. http://369369.blog.51cto.com/319630/812889 二.DNS关键词:A记录.CNA ...

最新文章

  1. 2020年“3D视觉工坊”视频号最受欢迎视频 Top 10!
  2. Css的filter常用滤波器属性及语句大全
  3. java 模式匹配算法_用Java匹配模式
  4. 近世代数--整环的商域--整环D扩充为域Q
  5. UpdateLayeredWindow 绘制异型窗口
  6. mysql 配置分区_Mysql的分区配置实验
  7. 5、VTK在图像处理中的应用
  8. php dede 发布时间_dede 采集到数据后,发布日期变为本地日期解决方法
  9. SAP CRM和Hybris Commerce里关于价格折扣的一些配置
  10. java this关键字的使用_老大:我去,你竟然还不会用 this 关键字
  11. 【树莓派】给树莓派安装中文输入法Fcitx及Google拼音输入法
  12. 01-二维数组中的查找
  13. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.23
  14. mt6765和骁龙665哪个好_华为都把骁龙850用在了自家的win10设备上了,麒麟还会远吗?...
  15. H5的sessionStorage 和 localStorage
  16. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_03 过滤器_1_FileFilter过滤器的原理和使用...
  17. 手机组态软件 APP监控台达PLC C#全套源代码,C#开发上位机手机APP
  18. 【转】GB2312 编码
  19. 简述整车级电子电器架构开发内容
  20. 《区块链底层设计Java实战》之第一章区块链简介

热门文章

  1. 数据库01-范式总结
  2. 简单配置Mdeamon邮件服务程序。
  3. Python之sort()函数详解
  4. [转]json2.js 源码解读
  5. DataV 支持 token 验证啦!
  6. Bootstrap 手风琴搭配导航条实现常用菜单栏
  7. VMware Workstation安装64位操作系统遇到的小问题
  8. 将外部知识整合到群体智能中,以获得更具体的知识
  9. 机器学习笔记(七)贝叶斯分类器
  10. Java生成CRC16数据校验码