【网络基础】DNS协议详解:从背景到解析过程及`dig`工具的使用

news2024/9/25 13:25:34

文章目录

  • DNS 协议
    • ① 前言 - 背景
    • ② 域名
    • ③ DNS解析过程
    • ④ Linux下用dig工具 分析DNS过程
    • ⑤ 浏览器中输入URL后,会有哪些过程

DNS 协议

DNS(域名系统,Domain Name System)是互联网的一个核心协议,用于将域名转换为 IP 地址,使得用户可以通过易记的域名访问网站,而不需要记住数字形式的 IP 地址。DNS 协议使得用户在浏览网页、发送电子邮件等网络活动时变得更加便利。

① 前言 - 背景

  • 我们知道:TCP/IP使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆。
  • 于是人们发明了名为主机名的东西,本身是字符串,使用hosts文件来描述主机名和IP地址的关系。
    在这里插入图片描述

起初是通过互连网信息中心(SRI-NIC)管理该hosts文件

  • 当一个新计算机要接入网络,或某个计算机IP发生变更,都需要到信息中心申请变更hosts文件。
  • 其他计算机也需要定期更新新版本的hosts文件才能正确上网。

显然这种方法并不便捷,于是就有了DNS(域名系统,Domain Name System)

  • 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系.
  • 如果新计算机接入网络, 将这个信息注册到数据库中;
  • 用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址.

② 域名

主域名 是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。

域名是互联网上的一种地址命名系统,用于标识和定位网络上的资源,如网站、服务器等。

一个典型的域名由以下几部分组成:

www.example.com
  1. 顶级域名(Top-Level Domain, TLD):“com”:顶级域名位于最右侧,是域名层级结构的最高级别,用于指示域名的类别或国家/地区代码。

  2. 二级域名(Second-Level Domain):“example”:二级域名位于顶级域名之前,是主要的域名标识部分,通常用于表示组织、企业、品牌。

  3. 子域名(Subdomain):“www.”:子域名位于二级域名之前,用于进一步细分域名的层级结构。


③ DNS解析过程

这里简单用文字解释:

  1. 用户请求:用户在浏览器输入网址,发起 DNS 查询。
  2. 本地缓存检查:浏览器和操作系统检查本地缓存是否已有对应 IP 地址。
  3. 递归查询:如果缓存中没有,递归 DNS 服务器开始查询。它首先联系根 DNS 服务器,获取顶级域名服务器的地址。
  4. TLD 服务器查询:递归 DNS 服务器向顶级域名服务器询问,然后获得权威 DNS 服务器的地址。
  5. 权威服务器查询:递归 DNS 服务器向权威 DNS 服务器请求,最终获得域名对应的 IP 地址。
  6. 结果返回:IP 地址被返回给用户的计算机,并缓存以备后续使用。

④ Linux下用dig工具 分析DNS过程

首先通过下面的命令安装dig:

ubuntu:

sudo apt update
sudo apt install dnsutils

centos:

sudo yum install bind-utils

安装完毕就可以通过dig命令进行分析:

root@wqy-virtual-machine:/home# dig csdn.com

; <<>> DiG 9.18.28-0ubuntu0.22.04.1-Ubuntu <<>> csdn.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37240
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;csdn.com.			IN	A

;; ANSWER SECTION:
csdn.com.		5	IN	A	203.107.45.167

;; Query time: 88 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Aug 26 11:35:09 CST 2024
;; MSG SIZE  rcvd: 53

执行结果分析:

查询信息:

  • ; <<>> DiG 9.18.28-0ubuntu0.22.04.1-Ubuntu <<>> csdn.com
    • DiG 是 DNS 查询工具的名称及其版本。
    • 查询的域名是 csdn.com

响应头部

  • ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37240

    • opcode: QUERY:查询操作。
    • status: NOERROR:表示没有错误,查询成功。
    • id: 37240:查询的唯一标识符。
  • ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

    • qr:查询响应标志,表示这是一个响应。
    • rd:递归查询标志,表示客户端要求递归解析。
    • ra:递归可用标志,表示服务器支持递归查询。
    • QUERY: 1:查询的数量。
    • ANSWER: 1:响应的答案数量。
    • AUTHORITY: 0:权威回答的数量(即提供权威解析的 DNS 服务器)。
    • ADDITIONAL: 1:附加信息的数量(如附加的记录)。

OPT PSEUDOSECTION

  • ;; OPT PSEUDOSECTION:
    • EDNS: version: 0, flags:; udp: 65494
      • EDNS: version: 0:扩展 DNS 的版本。
      • flags::扩展 DNS 选项标志(此处为空)。
      • udp: 65494:服务器支持的最大 UDP 数据包大小(以字节为单位)。

查询部分

  • ;; QUESTION SECTION:
    • ;csdn.com. IN A
      • csdn.com.:查询的域名。
      • IN:互联网类。
      • A:查询的记录类型(A 记录,用于解析域名到 IPv4 地址)。

响应部分

  • ;; ANSWER SECTION:
    • csdn.com. 5 IN A 203.107.45.167
      • csdn.com.:查询的域名。
      • 5:记录的生存时间(TTL,单位是秒),表示此记录在 DNS 缓存中有效的时间。
      • IN:互联网类。
      • A:记录类型(A 记录)。
      • 203.107.45.167:域名 csdn.com 对应的 IPv4 地址。

其他信息

  • ;; Query time: 88 msec

    • 查询的响应时间,单位是毫秒。
  • ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)

    • 使用的 DNS 服务器地址和端口号(127.0.0.53 是本地 DNS 解析器,端口号为 53)。
  • ;; WHEN: Mon Aug 26 11:35:09 CST 2024

    • 查询的时间和日期。
  • ;; MSG SIZE rcvd: 53

    • 响应消息的大小,单位是字节。

⑤ 浏览器中输入URL后,会有哪些过程

  1. DNS 解析:浏览器通过 DNS 解析获取 URL 对应的 IP 地址。
  2. 建立连接:使用 IP 地址,浏览器与目标服务器建立 TCP 连接。
  3. 发送请求:浏览器发送 HTTP/HTTPS 请求到服务器。
  4. 服务器响应:服务器处理请求并返回 HTML 文档及其他资源。
  5. 页面渲染:浏览器解析 HTML,加载 CSS、JavaScript,并渲染页面。

过程执行下来,确保了用户输入的 URL 被正确地转换成可视的网页内容。

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

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

相关文章

有一种“穷人性格”,大事拎不清,小事算太精

在生活的舞台上,人们各自演绎着不同的人生故事。而有一种性格特征,常常被视为与经济困境紧密相连,那就是“大事拎不清,小事算太精”的所谓“穷人性格”。这种性格不仅在个体层面影响着人们的生活轨迹,也在一定程度上反映了社会现象背后的深层次问题。 一、“穷人性格”的表…

读软件开发安全之道:概念、设计与实施10安全设计审查

1. 安全设计审查 1.1. Security Design Review&#xff0c;SDR 1.2. 将安全性融入软件设计的最佳方法之一是戴上“安全帽”进行单独的设计审查 1.3. 安全审查员是熟悉软件运行的系统和环境&#xff0c;以及知道如何使用它的人&#xff0c;但他们不参与设计工作&#xff0c;这…

【SpringCloud】(一文通) 统一服务入口-Gateway

目 录 一. 网关介绍1.1 问题1.2 什么是 API 网关1.3 常见网关实现 二. Spring Cloud Gateway2.1 快速上手2.1.1 创建网关项目2.1.2 引入网关依赖2.1.3 编写启动类2.1.4 添加Gateway的路由配置2.1.5 测试 2.2 Route Predicate Factories2.2.1 Predicate2.2.2 Route Predicate Fa…

<数据集>脑肿瘤识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;5249张 标注数量(xml文件个数)&#xff1a;5249 标注数量(txt文件个数)&#xff1a;5249 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Glioma, Meningioma, No Tumor, Pituitary] 序号类别名称图片数框数1…

【RabbitMQ】概述

目 录 一. RabbitMQ 概述什么是 MQMQ的作用为什么选择 RabbitMQRabbitMQ 介绍 一. RabbitMQ 概述 前言 Rabbit, 兔子的意思 互联网行业很多公司, 都喜欢用动物命名产品, 或者作为公司的logo, 吉祥物. 比如: 腾讯的企鹅, 京东的狗, 美团的袋鼠, 携程的海豚,阿里就更多了, 蚂蚁…

原生JS实现下滑到当前模块时左右滑动到位

效果图&#xff1a; ​​​​​​​ 源码&#xff1a; <div style"height: 1500px;"></div><div class"software-box"><div class"software-container" style"display: flex;"><div class"software-…

MapBox Android版开发 2 本地化

MapBox Android版开发 2 本地化 前言MapBox V9 本地化示例1示例2示例3运行效果图 MapBox V11 本地化示例运行效果图 前言 前文介绍了MapBox V9和 V11 两个版本配置和显示地图。默认MapBox地图语言为英文&#xff0c;本文重点介绍如何将地图语言设置为中文。 MapBox V9 本地化…

52 mysql 启动过程中常见的相关报错信息

前言 我们这里主要是看一下 service mysql start, service mysql stop 的过程中的一些常见的错误问题 这些 也是之前经常碰到, 但是 每次都是 去搜索, 尝试 1, 2, 3, 4 去解决问题 但是 从来未曾思考过 这个问题到底是 怎么造成的 The server quit without updating PID fil…

【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类

文章目录 1.QMap 详解1.1 QMap 的介绍1.2 QMap 的具体用法如下1.3 QmultiMap类 2.QHash 详解3. QMap 和 QHash 的对比4. QVector 详解 1.QMap 详解 1.1 QMap 的介绍 &#x1f427;① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常&#xff0c;QMap存储的…

sheng的学习笔记-AI-半监督SVM

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 svm: sheng的学习笔记-AI-支持向量机&#xff08;SVM&#xff09;-CSDN博客 半监督学习&#xff1a; sheng的学习笔记-AI-半监督学习-CSDN博客 什么是半监督svm 半监督支持向量机&#xff08;Semi-Supervised Support Ve…

重邮计算机网络803-(3)数据链路层

目录 一.数据链路两种类型 二.使用点对点信道的数据链路层 1. 数据链路和帧 2.数据链路层传送的是帧 三.三个基本问题 1.封装成帧 2.透明传输 ①字节填充法 ②其他方法&#xff1a;字符计数法&#xff0c;比特填充法&#xff0c;违规编码 3. 差错检测 &#xff08;1…

容器存储接口--CSI

文章目录 一、背景二、CSI 是什么三、CSI 系统架构1、CSI 如何与 k8s 组件相互通信2、CSI 由哪些组件组成3、CSI 的工作原理4、k8s 存储中涉及的组件及其作用4.1、Sidecar Containers4.1.1、[external-attacher](https://kubernetes-csi.github.io/docs/external-attacher.html…

3.1ER图

ER 最后总结以下E-R图的设计原则。 1&#xff09;尽量减少实体集数量&#xff0c;能作为属性时不要作为实体集。 2&#xff09;“属性”不能再具有需要描述的性质。必须时不可分割的数据项。不能时其他属性的聚集。3&#xff09;“属性”不能与其他实体具有联系 4)综合局部E-…

XDMA原理

目录 1. PCIe to AXI Lite Master1.1. BAR Address to AXI Address 2. PCIe to AXI Memory Mapped Master3. PCIe to DMA Interface3.1. Descriptor3.2. Transfer for H2C 4. MSI-X Vector Table and PBA5. AXI Lite Slave 介绍XDMA IP核的功能及原理。 根据pg195&#xff0c;…

AI生3D:从草图到交互式3D游戏场景

随着人工智能技术的进步,3D内容生成变得越来越容易。AI生3D是一种创新的技术框架,它允许用户仅使用简单的草图和文本描述就能创建出复杂的3D游戏场景。这项技术不仅降低了3D内容创作的门槛,还极大地扩展了创意表达的可能性。 技术框架概述 AI生3D利用先进的机器学习模型来…

p2p、分布式,区块链笔记:基于IPFS实现的数据库orbitdb笔记

orbitdb orbitdb &#xff1a;Peer-to-Peer Databases for the Decentralized Web 特性说明特点无服务器、分布式、p2p编程语言JavaScript对其他语言的支持A python client for the Orbitdb HTTP API&#xff0c;go-orbit-db&#xff0c; 让我们了解一下谁在使用 js-ipfs&…

【国产游戏的机遇与挑战】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

在多云生态下,如何实现跨云的自动化身份管理?

在多云环境下实现跨云的自动化身份管理是一个重要的课题&#xff0c;因为这可以帮助企业确保用户和应用程序能够在不同云服务提供商之间无缝地访问资源&#xff0c;同时保持高度的安全性和合规性。以下是一些关键技术和实践方法&#xff0c;用于实现跨云环境下的自动化身份管理…

jenkins 开启控制台详细日志

1、开启控制台详细日志&#xff0c;查看真正报错原因 开启后生成流水线语句&#xff1a; 2、根本问题 使用jenkins再次构建&#xff0c;查看控制台日志 报错&#xff1a; 意思是在执行ssh命令的时候&#xff0c; /root/apps/jenkins/portal/portal-server/Dockerfile 路径下没…

树链剖分——从入门到入坟

树链剖分的思想及能解决的问题 树链剖分用于将树分割成若干条链的形式&#xff0c;以维护树上路径的信息。 具体来说&#xff0c;将整棵树剖分为若干条链&#xff0c;使它组合成线性结构&#xff0c;然后用其他的数据结构维护信息。 树链剖分&#xff08;树剖/链剖&#xff…