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

DNS域名解析过程

在互联网中我们通信目标是对方的IP,但是由于IP不便于记忆所以引入了域名

域名和IP是一一对应的关系,需要注意的是域名和网址是不同的概念
比如:www.csdn.net是域名,https://www.csdn.net/?spm=1001.2101.3001.4476是网址

首先了解一下域名存储的层级关系,以.划分,域名结构可以看作一个树状结构

  • 根域名服务器
    负责管理哪些字符串可以作为顶级域名,不直接管理顶级域名而是使用代理模式,存储顶级域名的IP和对应的字符串,域名后面都隐藏有一个.比如www.baidu.com.,全世界13个
  • 顶级域名服务器
    管理顶级域名及包含二级域名的IP,顶级域名分为通用顶级域名(如.com)和国家顶级域名(如.cn),一共一千来个
  • 权限域名服务器
    负责管理一个区的域名,比如:zh.baidu.comen.baidu.com可以在baidu.com权限域名服务器中,简单点说就是一个权限域名服务器负责管理一个区,对每个区内的域名由公司负责分配,归根结底域名服务器的最小单位是权限域名服务器。
  • 本地域名服务器(权威域名服务器)
    部署在本地网络中某个服务器或者路由器上,存储根域名服务器的IP及一些域名缓存,它的作用很好理解就是减少DNS请求量,windows下可以通过在cmd中输入ipconfig /all来查看
    在这里插入图片描述
    我们请求域名的策略正是由本地域名服务器控制的,常见的查询策略有
  • 递归查询,你问我:小红有对象吗,我去问小红:你有对象吗,她告诉我说:没有,我告诉你:没有,这样对我很不友好,正经点解释的话全球几十亿网民如果都要靠域名服务器之间传递消息的话根域名服务器不得累死吗?全球就13台
  • 迭代查询,你问我:小红有对象吗,我给你小红的微信,然后你去问小红她有没有对象,这种对服务器显然是比较友好一点的根域名服务器只需要面向本地域名服务器传递消息,层级之间一般不交互除非下级要换IP

这样显然还是会产生大量的DNS请求,针对域名的缓存还是挺多的

  • 浏览器DNS缓存,不同浏览器的缓存周期不同,但一般周期不长,且可以手动清理
  • 操作系统DNS缓存,由协议栈管理,一般不能手动清除,周期更长,面向整个操作系统
  • 本地域名服务器DNS缓存,面向整个局域网,周期更长些

域名解析过程

  1. 查询浏览器中是否有对应缓存
  2. 查询操作系统中是否有对应的缓存
  3. 查询本地域名服务器中是否有对应的缓存
  4. 本地域名服务器给根域名服务器发送UDP报文请求域名对应的顶级域名服务器IP
  5. 本地域名服务器给顶级域名服务器发送UDP报文请求域名对应的权限域名服务器IP
  6. 本地域名服务器给权限域名服务器发送UDP报文请求域名对应的IP
  7. 接收权限域名服务器的反馈结果,域名IP或者此域名不存在

域名解析请求一般使用UDP报文发送,如果对数据安全性要求高的话可以使用TCP,或者请求数据量大的时候也有可能自动转向TCP,整的来说使用UDP更加便捷但是不够安全可能产生DNS篡改/DNS劫持等情况

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

相关文章:

  • MySQL数据库(数据库连接池)
  • 【C#】知识点速通
  • FTP协议
  • 前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】
  • Android的硬件接口HAL-2 HIDL
  • pygame--坦克大战(二)
  • 【C语言】标准输入/输出(printf, scanf, gets, puts, getchar, putchar)
  • C、C++、C#中.vscode下json文件记录
  • 2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序
  • 使用ARCore深度API实现点云采集
  • 软考数据库
  • Echarts 自适应宽高,或指定宽高进行自适应
  • 体验报告:为什么Claude-3是码农和学者的新宠?
  • 接口自动化框架搭建(九):接入钉钉消息通知
  • 一、点击视频下载(通过视频url实现);二、点击下载视频按钮,视频以压缩包形式下载(但未实现压缩视频)
  • B树、B+树、哈夫曼树
  • 评价指标_Precision(精确率)、Recall(召回率)和Accuracy(准确率)区别和联系
  • 【React】React AJAX
  • vue 移动端弹窗带滚动效果 滚动到底的时候弹窗下的页面会跟着滑动
  • Linux-3 yum和vim
  • 什么是计算机视觉?计算机视觉:从基础到前沿
  • Java中的可变字符串
  • C++多线程:单例模式与共享数据安全(七)
  • 康耐视visionpro-CogAcqFifoTool工具详细说明
  • 静态图片如何生成gif动画?一个网站在线实现
  • Git 实战教程
  • 解决Vue中仓库持久化的问题,不借助插件用原生JS实现仓库持久化。了解仓库的插件机制、监听的时机
  • ajax的优缺点有哪些?
  • 自贡市第一人民医院:超融合与 SKS 承载 HIS 等核心业务应用,加速国产化与云原生转型
  • vue使用iview导航栏Menu activeName不生效