通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web 服务器。但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。

比如我们打电话的时候,必须要知道对方的电话号码,但由于电话号码难以记忆,所以通常我们会将对方电话号 + 姓名保存在通讯录里。

所以,有一种服务器就专门保存了 Web 服务器域名与 IP 的对应关系,它就是 DNS 服务器。

域名的层级关系

DNS 中的域名都是用句点来分隔的,比如 www.server.com,这里的句点代表了不同层次之间的界限。

在域名中,越靠右的位置表示其层级越高。

毕竟域名是外国人发明,所以思维和中国人相反,比如说一个城市地点的时候,外国喜欢从小到大的方式顺序说起(如 XX 街道 XX 区 XX 市 XX 省),而中国则喜欢从大到小的顺序(如 XX 省 XX 市 XX 区 XX 街道)。

实际上域名最后还有一个点,比如 www.server.com.,这个最后的一个点代表根域名。

也就是,. 根域是在最顶层,它的下一层就是 .com 顶级域,再下面是 server.com。

所以域名的层级关系类似一个树状结构:

  • 根 DNS 服务器(.)

  • 顶级域 DNS 服务器(.com)

  • 权威 DNS 服务器(server.com)

根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。这样一来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。

因此,客户端只要能够找到任意一台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器。

域名解析的工作流程

  1. 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。

  1. 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。

  1. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”

  1. 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”

  1. 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。

  1. 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。

  1. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。

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

DNS 域名解析的过程蛮有意思的,整个过程就和我们日常生活中找人问路的过程类似,只指路不带路。

那是不是每次解析域名都要经过那么多的步骤呢?

当然不是了,还有缓存这个东西的嘛。

浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。

数据包表示:“DNS 老大哥厉害呀

真实地址查询——DNS相关推荐

  1. Linux中DNS服务器地址查询命令nslookup使用教程

    这篇文章主要介绍了Linux中DNS服务器地址查询命令nslookup使用教程,是Linux服务器运维的必备知识,需要的朋友可以参考下 nslookup 程序是DNS 服务的主要诊断工具,它提供了执行 ...

  2. cmd显示服务器对区域没有权威,查询dns解析服务器地址cmd命令

    查询dns解析服务器地址cmd命令 内容精选 换一换 一次完整的HTTP请求包括域名解析.建立TCP连接.发起请求.服务器接收到请求进行处理并返回处理结果.浏览器对HTML代码进行解析并请求其他资源, ...

  3. java获取dns_Java 根据网址查询DNS/IP地址的方法

    说明: 本文不涉及底层的 DNS 协议, 直接使用Java平台提供的API进行操作. DNS也就是 Domain Name Service,即 域名服务. 我们知道, Java中与网址有关的类包括 j ...

  4. 服务器mac地址查询修改,服务器mac地址查询修改

    服务器mac地址查询修改 内容精选 换一换 OBS Browser+是一款用于访问和管理对象存储服务的图形化工具,支持通过配置内网DNS服务器地址的方式,使在华为云上的Windows ECS通过内网直 ...

  5. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 )

    文章目录 一.CE 找出子弹数据内存地址是临时地址 二.挖掘真实的子弹数据内存地址 1.找出哪些指令访问了子弹数据地址 0x21160114 2.查看 0x21160114 地址是如何计算出来的 ( ...

  6. 实现一个域名对应多个IP地址和DNS优缺点详解!

    实现一个域名对应多个IP地址和DNS优缺点详解! 1.DNS定义: DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访 ...

  7. 子域名查询DNS记录查询

    目录 子域名信息查询 Layer子域名爆破机 subDomainBrute 利用google查询 HTTP证书查询 DNS记录查询脚本 IP转换为经纬度 利用网页获取对方经纬度信息 首先关于DNS域名 ...

  8. PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS

    PC和服务器的IP地址信息DNS 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访 ...

  9. 常见的DNS记录类型有哪些?如何查询DNS解析记录?

    当搭建一个新网站时,DNS查询工具对查询网站DNS解析记录方面很有帮助.除了在设置新网站时有用外,正确的DNS对于更新现有网站的记录以及检查邮件服务器(如公司内部邮件网络)的设置也是必不可少的. DN ...

最新文章

  1. FORMS变量类型和消息提示
  2. java活动安排_贪心法求解活动安排(java实现)
  3. SAP Business ByDesign 和支付宝与钉钉集成的一个原型开发案例
  4. [html] 实现一个居中半透明的模态窗
  5. outlook客户端接收邮件报错0x80040600
  6. 知名互联网公司系统架构图[第2期]
  7. 【情感识别】基于matlab GUI SVM语音情感识别(带面板)【含Matlab源码 876期】
  8. mybatis如何防止SQL注入?
  9. 基于tensorflow的RBF神经网络案例
  10. 故障:Outlook 收发邮件时的 0x800CCC1A 错误
  11. 年会抽奖程序,开箱即用
  12. excel冻结窗口_excel怎么冻结窗口?excel冻结窗口怎么设置?
  13. Chrome 插件篇-Unsplash插件:浏览器背景桌面设置,漂亮的背景桌面插件,时时更新
  14. 【genius_platform软件平台开发】第七十三讲:linux系统驱动开发之-中断处理之DSB指令
  15. python 通过selenium 定位图片后获取src属性
  16. mysql中图书编号类型_练习1答案-数据库设计
  17. 江苏扬州|2021年起,高支模须用盘扣式钢管支架!
  18. 漫威电影宇宙的正确观影顺序
  19. Java值传递与引用传递的区别
  20. 第一章:渗透测试的本质信息收集

热门文章

  1. MTTR、MTBF、MTTF、MTTD
  2. 互联网+智慧医疗:基于Python打造智慧医院项目之智能分诊
  3. 微信公众号开发之生成并扫描带参数的二维码
  4. 2020计算机专业保研夏令营面经:北大信科计算机
  5. 五子棋对弈程序c语言,五子棋程序纯C语言版.doc
  6. 软件测试之BUG的提交注意事项
  7. matlab中的poisspdf,poisspdf(so also poisscdf, poissfit, poissinv, poissrnd, poisstat, pdf.)
  8. 分治法求众数和重数(含文件输入输出)
  9. 什么是非对称加密?非对称加密概念
  10. 文件夹无法打开怎么办?