DNS域名解析过程

目录

    • DNS域名解析的过程
      • 什么是DNS解析
      • 解析过程
      • 递归查询和迭代查询

DNS域名解析的过程

什么是DNS解析

在学习DNS域名解析之前,我们先要弄懂几个前提概念。

  • DNS是一个应用层的协议,和HTTP、SMTP、FTP等这些协议同属于一个级别
  • DNS协议要依赖的传输层协议是UDP,其使用UDP的53号端口。

现在我们明白了DNS协议是在哪一层,有哪些层间依赖,下面我们来粗略了解一下IP地址概念。

IP地址是互联网上每一台计算机唯一的逻辑地址,通过IP地址我们可以实现不同计算机之间的互相通信,每台联网计算机都需要通过IP地址来互相联系和分别。

但是由于IP地址是由一串容易混淆的数字串构成(例如192.168.45.128),人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。

基于这种背景,人们在IP地址的基础上又发展出了一种更容易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更容易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。(例如www.baidu.com)

域名虽然更容易被用户所接受和使用,但是计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此想要达到访问效果,就需要将域名翻译成IP地址。

DNS协议承担了这个翻译责任,这个翻译过程,叫做DNS域名解析

解析过程

当我们在浏览器中输入www.bilibili.com时,DNS解析将会有10个步骤,具体的步骤过程如下

  • 浏览器缓存

首先,浏览器会检查自己的缓存中是否有目标域名对应的IP地址,如果有,解析过程结束,直接使用缓存中的IP地址访问目标网站。

浏览器缓存域名是有限制的,不仅浏览器缓存的大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长或太短都不好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间有内有一部分用户无法访问网站;如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。

  • 操作系统缓存

如果浏览器中没有缓存,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。

  • 本地DNS服务器查询

前两个过程无法解析的时候,就要用到我们网络配置中的”DNS服务器地址“了。

操作系统会把这个域名发送给这个本地DNS服务器。

大约百分之八十的域名解析到此就结束了,后续的DNS迭代和递归也是由本地DNS服务器负责。

  • 迭代查询
    • 如果本地DNS服务器仍然没有命中,就直接到根DNS服务器请求解析。
    • 根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,它是国际顶级域名服务器,如.com、.cn、.org等。
    • 本地DNS服务器再向上一步获得的顶级DNS服务器发送解析请求。
    • 接受请求的顶级DNS服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server服务器就是我要访问的网站域名提供商3的服务器,其实该域名解析任务就是由域名提供商的服务器来完成。比如我现在要访问www.bilibili.com,这个域名是从A公司注册获取的,那么A公司上的服务器就保存有这个域名的信息,可以获取到IP地址。
    • Name Server服务器会查询存储的域名和IP的映射关系表,再把查询出来的域名和IP地址等信息,连同一个TTL值返回给本地DNS服务器。
    • 返回该域名对应的IP和TTL值,本地DNS服务器会缓存这个域名和IP的对应关系,缓存时间由TTL控制。
  • 返回结果

本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据TTL值缓存在本地系统缓存中。

域名解析过程结束在实际的DNS解析过程中,可能不止这么多,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能影响域名解析过程。

递归查询和迭代查询

从请求主机到本地DNS服务器的查询是递归的,其余的查询是迭代的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/604482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS未能挂起虚拟机

问题: CentOS未能挂起虚拟机 解决方案: 1、切换到root 2、打开/etc/selinux/config 3、编辑fonfig文件SELINUXpermissive 4、重启VMware(很重要!!!简单粗暴,直接右上角x关机。) …

Android 集成vendor下的模块

Android 集成vendor下的模块 ,只需要在 PRODUCT_PACKAGES 加上对应的模块名,编译的时候就会执行对应模块的bp文件,集成到系统中 PRODUCT_PACKAGES \WallpaperPicker \Launcher3 \com.nxp.nfc Android11 Framework Vendor下自定义系统…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第三天-Linux进程(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

二叉树算法题(一)

根据二叉树创建字符串 根据二叉树创建字符串 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省…

linux seq_file 文件编程步骤

在上面我们介绍了使用 seq_file 需要实现的一些函数和相关结构体,现在我们把它们组合起来,介绍以下 通过 proc 来使用 seq_file 的一般步骤,而 seq_file 在其他方面的应用方法也是一样的。 (1) 实现 seq_operations ,也就是前面我…

springMvc向request作用域存储数据的4种方式

文章目录 目录1、springmvc使用ServletAPI向request作用域共享数据(原生态)2、springmvc使用ModelAndView向request作用域共享数据3、springmvc使用Model向request作用域共享数据4、springmvc使用map向request作用域共享数据5、springmvc使用ModelMap向r…

VMware Workstation——快照

目录 一、为什么要使用快照 二、拍摄快照 三、快照管理 1、克隆 2、转到 ​3、删除 一、为什么要使用快照 VMware虚拟机的快照是一个很重要的功能。 简单点说它相当于某个时刻虚拟的备份,并且可以快速还原至原来的状态。但是它和备份还是有区别的。 【快照…

Java集合框架深度解析:HashMap

Java中的HashMap是一种基于哈希表的实现,提供了快速的查找性能。在这篇深度解析中,我们将深入探讨HashMap**的实现原理、适用场景、潜在问题以及并发控制策略。 1. HashMap的实现原理 1.1 哈希表 HashMap内部基于哈希表实现,通过散列函数将…

基于移动群智感知的网络信号图谱构建系统

一.项目研究内容 本项目基于移动群智感知技术的群体感知特性,利用手机的GSM/3G/4G/5G/WiFi等通信模块可以采集不同位置的移动蜂窝网络基站等网络基础设施的信号覆盖数据,充分发动人民群众,携带安装有感知功能软件的智能手机在环境…

软件装一送三了!还附带弹窗资讯,你确定不试一下?

前言 前几天一个朋友向我吐槽,说电脑太卡了。自己好像都没安装什么软件,怎么就那么多弹窗广告。 我看了一下他的电脑,笑了一下说:你的电脑真好,都会只能给你推荐美女看,这资讯来之不易啊,好好享…

数据库开发与设计过程中的问题分析总结

数据库设计的过程是将数据库系统与现实世界密切地、有机地、协调一致地结合起来的过程。数据库的设计质量与设计者的知识、经验和水平密切相关。作为数据库应用系统的重要组成部分,数据库设计的成败往往直接关系到整个应用系统的成败。以数据库为基础的数据库应用系…

【JaveWeb教程】(8)Web前端基础:Vue组件库Element之Table表格组件和Pagination分页组件 详细示例介绍

目录 1 Table表格组件1.1 组件演示1.2 组件属性详解 2 Pagination分页2.1 组件演示2.2 组件属性详解2.3 组件事件详解 接下来我们来学习一下ElementUI的常用组件,对于组件的学习比较简单,我们只需要参考官方提供的代码,然后复制粘贴即可。本节…

WebStorm 创建一个Vue项目

一、下载并安装WebStorm 步骤一 步骤二 选择激活方式 激活码: I2A0QUY8VU-eyJsaWNlbnNlSWQiOiJJMkEwUVVZOFZVIiwibGljZW5zZWVOYW1lIjoiVU5JVkVSU0lEQURFIEVTVEFEVUFMIERFIENBTVBJTkFTIiwiYXNzaWduZWVOYW1lIjoiVGFvYmFv77yaSkVU5YWo5a625qG25rAIOa0uW3peS9nOWup…

docker安装 mysql

一、安装docker# windows 和 mac 版可以直接到官网下载 docker desktop linux 的安装方法可以参考 https://www.cnblogs.com/myzony/p/9071210.html 可以在shell中输入以下命令检查是否成功安装: sudo docker version 二、建立镜像# 拉取官方镜像(我…

0.9uA 低功耗低压差稳压器

一、基本概述 FM6215 系列采用 CMOS 工艺制造的高精度、低功耗低压差稳压器。该系列具有极低的静态电流, 输出电压 3.3v的产品静态功耗仅为 0.9uA(TYP),最大输出电流可达到 300mA。 产品采用 SOT23-5 封装,因此,该系列适用于需要高密度安装的应用场合&a…

【git使用】历史commit的分割(git rebase和 git reset的联合使用)

参考 [译] 分割一个已存在的 git commit - 掘金Git - 重写历史idea git如何撤回提交 - PingCodegit 工作原理与撤销操作图解 | Shall We Code? 分割一个已存在的 git commit Git 与其他版本控制系统的主要区别之一,在于其允许用户重写历史。实现这一目的的主要途…

【算法】和为K的连续子数组

牛客链接:https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11?tpId196&&tqId37127&rp1&ru/ta/job-code-total&qru/ta/job-code-total/question-ranking 使用【前缀法】,把所有连续和合索引存进哈希表&#xff0c…

2024阿里云服务器可用区选择方法

阿里云服务器地域和可用区怎么选择?地域是指云服务器所在物理数据中心的位置,地域选择就近选择,访客距离地域所在城市越近网络延迟越低,速度就越快;可用区是指同一个地域下,网络和电力相互独立的区域&#…

Dockerfile的EXPOSE

文章目录 环境总结测试使用EXPOSE测试1:不做端口映射测试2:-p 8080:80测试3:-P测试4:--networkhost 不使用EXPOSE 参考 环境 RHEL 9.3Docker Community 24.0.7 总结 如果懒得看测试的详细信息,可以直接看结果&#…

使用is跳转页面的几种方法

1&#xff0c;open() 打开一个新的浏览器窗口 <input type"button" value"去往新窗口按钮" onclick"fun1()">function fun1() {window.open("https://blog.csdn.net/daxiang12092205/article/details/11878477/")} 2&#xff…