计算机网络应用层(二):DNS协议详解

2023-10-30

前言

DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现在来学习一下DNS协议,来了解为什么DNS被劫持之后,我们便不能访问互联网的原因。

DNS协议概述

我们在网络上看到的url格式可能是这样的:

www.google.com

google十分适合我们人类记忆,因为其是一个简单易记的单词形式。
因特网上的主机可以用多种方式进行标识,常见的有两种:

  1. 利用主机名进行标识,例如www.google.com
  2. 利用IP地址进行标识,例如www.36.158.123.192.com

我们可以很自然的发现,人类相较于用IP地址进行标识,更喜欢用便于记忆的主机名进行标识;但是路由器喜欢定长的、有层次结构的IP地址。为了折中这两种方式,就需要一种协议完成这两种不同的标识之间的转换,即主机名到IP地址转换的目录系统,这就是域名系统(DNS)的主要功能。

DNS:

  1. 一个由分层的DNS服务器实现的分布式数据库。
  2. 一个使得主机能够查询分布式数据库的应用层协议。

DNS的域名解析过程(以www.google.com示例):

  1. 同一台用户主机上运行着DNS应用的客户端。
  2. 从URL中抽出主机名www.google.com,并传给DNS应用的客户端。
  3. DNS客户向DNS服务器发送一个包含主机名的请求。
  4. DNS客户端收到DNS服务器解析的IP地址。
  5. 向该IP地址的80端口的HTTP服务器发起一个TCP进程。

DNS工作原理

DNS是一个分布式、层次数据库,DNS使用了大量的DNS服务器,以层次方式组织。没有一台DNS服务器拥有因特网上所有主机的映射。DNS服务器大致可以分为以下三种:

  1. 根DNS服务器(全世界只有13个)
  2. 顶级域(TLD)DNS服务器(com,cn等)
  3. 权威DNS服务器

例如解析一个为www.google.com的url的域名,遵循以下步骤:

  1. 客户与根服务器联系,解析.,返回顶级域名com的TLD服务器的IP地址
  2. 客户与该TLD服务器联系,其返回google.com权威服务器的IP地址
  3. 客户与该权威服务器联系,返回www.google.com主机名的IP地址

其中还有一种重要的DNS服务器,称为本地DNS服务器,起着代理的作用,相当于管理一篇区域内的主机。

DNS缓存

众所周知,一般对于速率较低的操作,我们通常可以进行缓存技术的应用,DNS协议中也应用了该项技术,这就是DNS缓存。

DNS记录和报文

资源记录

所有DNS服务器存储了资源记录(RR),其提供主机名到IP地址的映射,每个DNS回答报文包含一条或者多条资源记录。
资源记录的存储格式如下

(Name,Value,Type,TTL)

TTL指的是该条资源记录的生存时间,之后的例子是忽略TTL,Name和Value的值取决于Type。

常见的Type的种类有以下几种:

  • Type=A;Name为主机名,Value为该主机名对应的IP地址,所以类型为A的资源记录提供了标准的主机名到IP地址的映射
  • Type=NS;Name为一个域,Value为一个知道如何获得该域中主机IP地址的权威DNS服务器的主机名。
  • Type=CNAME;Value是别名为Name的主机对应的规范主机名,提供一个主机名对应的规范主机名。
  • Type=MX;Value是一个别名为Name的邮件服务器的规范主机名。

DNS报文

DNS只有两种报文:DNS查询回答报文。并且两种报文有着相同的格式。
DNS报文
上图的详细解释如下:

  • 首部区域中。标识符为16比特的数,用以标识该查询,匹配发送的请求和接收到的回答。标志字符中有1比特的查询回答标志位。当某DNS服务器是所请求名字的权威DNS服务器时,1比特的“权威的标志位”放置在回答报文中。还有“希望递归”比特位与“递归可用”比特位。最后还有4个有关数量的字段,标识后续的字段出现次数。
  • 问题区域包含正在查询的信息。包括:(1)名字字段,正在被查询的主机名;(2)类型字段,标识正在被询问的问题类型。
  • 在来自DNS服务器的回答中,包含对最初请求名字的资源记录,回答报文可以包含多条RR,因此一个主机名可以有多个IP地址。
  • 权威区域包含其他权威服务器的记录。
  • 附加区域包含其他有帮助的记录。

总结

DNS是应用层中常见的协议之一,其主要是起到了解析域名的作用,本质是一个分布式数据库,类似于树存储节点,解析域名。我们在平时日常生活中,经常会碰到DNS被劫持的情况,此时就是因为网络无法解析域名,但是QQ可以进行正常使用的原因是因为QQ是直接通过IP连接的软件,所以并不会受到影响,后续将会写一篇新的博客,专门解析大厂面试中的有关DNS的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络应用层(二):DNS协议详解 的相关文章

  • 计算机网络(1)——概念、组成、功能和分类

    文章目录 0 总揽全局 1 计算机网络的概念 2 计算机网络的功能 3 计算机网络的组成 4 计算机网络的分类 视频来源 https www bilibili com video BV19E411D78Q p 1 0 总揽全局 1 计算机网
  • 计算机网络系列五 -- 运输层详解

    1 运输层 1 1 运输层的定义 运输层是 OSI 七层参考模型的第四层 主要功能为应用层提供通信服务 它即是面向通信的最高层 也是用户功能的最底层 在计算机网络中 真正进行数据通信的是两个主机的进程 由于一个主机中有多个进程同时在通信 而
  • Euromap 63协议认识

    Euromap 63协议认识 一 用途 Euromap 63是欧洲塑料和橡胶机械制造商协会颁布的专用于注塑机和上位计算机进行数据交互的协议 全称 Euromap 63 SPI SPI 塑料工业协会 Euromap 63的目标是为不同制造商的
  • 数据包的传输过程详解及TCP沾包问题

    目录 TCP沾包问题 5个基本知识点 封装报文是从上层到下层 应用层 gt 传输层 gt 网络层 gt 数据链路层 gt 物理层 解封装报文是从下层到上层 数据包传输的过程中 源IP和目标IP不会变 除非遇到NAT SNAT或DNAT 源M
  • tcp三次握手和四次挥手的过程

    TCP是面向连接的 无论哪一方向另一方发送数据之前 都必须先在双方之间建立一条连接 在TCP IP协议中 TCP 协议提供可靠的连接服务 连接是通过三次握手进行初始化的 三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信
  • 【计算机网络13】网络安全

    文章目录 1 HTTP协议的安全问题 2 单向散列函数 One way hash function 2 1 单向散列函数的特点 2 2 常见的几种单向散列函数 2 3 防止数据被篡改 2 4 几个网站 3 对称加密 Symmetric Cr
  • 2.6.1 ADSL技术

    ADSL技术 即 非对称数字用户线技术 利用 数字技术 对 现有的 模拟电话用户线 进行改造 使其能够承载宽带数字业务 标准模拟电话信号的 频带 被限制在 300 3400 Hz 的范围内 无法承载宽带数字业务 但 用户线本身 可通过的 信
  • 根据子网掩码算出 IP 地址 的网络号和主机号

    我们如何根据子网掩码算出 IP 地址 的网络号和主机号呢 举个例子 比如 10 100 122 0 24 后面的 24表示就是 255 255 255 0 子网掩码 255 255 255 0 二进制是 11111111 11111111
  • 网络基础知识

    网络编程 2 网络的体系结构 七层模型 四层模型 因为网络通信比较麻烦 所以网络采用分层思想 OSI开放系统互联网模型 七层模型 高层 应用层 表示层 会话层 低层 传输层 网络层 数据链路层 物理层 驱动 网卡 仅仅是一种理想状态 现实中
  • IP组播 —— IP组播的概念和地址

    一 IP数据报的三种传输方式 二 IP组播地址的范围及特点 三 硬件组播
  • windows修改远程端口

    windows修改远程端口 一 修改注册表 关于远程桌面的注册表的位置 由于系统版本的不同 文件存在的位置也不同 核心是寻找名称类似CurrentControlSet的目录下的PortNumber文件 其是远程桌面端口的端口配置 1 按 w
  • 【王道·计算机网络】第一章 计算机网络基本体系

    一 计算机网络概述 1 概念 计算机网络是一个将分散的 具有独立功能的计算机系统 通过通信设备与线路连接起来 由功能完善的软件实现资源共享和信息传递的系统 简而言之 计算机网络就是一些互联的 通过通信链路互联互通 自治的计算机系统的集合 2
  • 计算机网络那些事之 MTU 篇

    哈喽大家好 我是咸鱼 今天我们来聊聊计算机网络中的 MTU Maximum Transmission Unit 什么是 MTU MTU Maximum Transmission Unit 是指数据链路层中的最大传输单元 通俗点来讲 MTU
  • LWIP学习笔记(2)---IP协议

    IP首部 最高位在左边记为 bit 最低位在右边 记为31 bit 传输顺序 先0 7bit 在8 15bit 然后16 13 最后24 31bit 这种方式称为 big endian 也叫网络字节序 版本 ipv4 或 6 ipv6 首部
  • 计算机网络 | 物理层下 传输媒介、信道复用技术,带宽接入技术

    文章目录 3 物理层下面的传输媒介 3 1 导引型传输媒介 3 2 非导引型传输媒介 4 信道复用技术 5 数字传输系统 5 1 旧的数字系统 5 2 新数字系统 6 带宽接入技
  • 计算机网络扫盲(3)——网络核心

    一 概述 在之前的文章中 我们已经介绍了计算机网络的边缘 本文我们将继续介绍网络核心部分 即由互联因特网系统的分组交换机和链路构成的网状网络 二 分组交换 在各种网络应用中 端系统彼此交换 报文 message 报文能够包含协议设计者需要的
  • 【计算机网络概述】第一章:概论 1.2什么是网络边缘

    学习目标 网络结构 端系统的客户 服务器模式与对等模式 两种面向网络实施的服务 前言 在第一章 我们学习了什么是 Internet 网络 计算机网络和互联网的知识点 但是由于计算机网络的知识点非常的抽象 内容又多 所以我们要反复的练习 记忆
  • P2P应用

    目录 一 P2P的简介 二 P2P的工作方式 1 具有集中目录服务器的P2P工作方式 2 具有全分布式结构的P2P文件共享程序 一 P2P的简介 P2P 对等连接 是指两台主机在通信时 并不区分哪一个是服务请求方和哪一个是服务提供方 只要两
  • 【2023最新版】黑客入门教程|三分钟手把手教会,非常简单

    前言 你知道在每天上网时 有多少黑客正在浏览我们计算机中的重要数据吗 黑客工具的肆意传播 使得即使是稍有点计算机基础的人 就可以使用简单的工具对网络中一些疏于防范的主机进行攻击 在入侵成功之后 对其中的数据信息为所欲为 当用户发现密码被盗
  • 【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么挖洞致富的?

    19岁 很多人正是上大学 仍伸手向父母要生活费的年纪 可有一位 00 后阿根廷少年 Santiago Lopez 靠自学成才 赚取了 100 万美元 折合人民币约 670 万元 的 Bug 赏金 成为世界上第一个白帽黑客的百万富翁 美元 少

随机推荐

  • STM32组合设备实现USB转双串口

    USB转双串口 核心技术就在于组合设备 USB Composite 的实现 组合设备的实现 其核心技术在于描述符的实现 下面我们先给出描述符 设备描述符 C 纯文本查看 复制代码 00001 00002 00003 00004 00005
  • IDEA 获取类的相对路径和绝对路径

    1 相对路径 结果 action HelloAction 2 绝对路径 结果 E javaProject JavaEEProject day08 Struts2 test01 src action HelloAction java 转载于
  • 登录注册与Cookie

    很多时候 我们登录一个网站的第一步是注册用户 然后登录 这个高频次的操作前端与后端是如何交互完成登录成功页面跳转的呢 今天我们来聊一聊登录注册的那些事 登录注册的流程 如上图 第一步 用户在注册页面将自己的账号密码邮箱等等信息传给服务器 第
  • 小熊派STM32-OTA+IOT教程

    近期在准备一个物联网课程 主要是针对STM32OTA升级 这次使用的是小熊派物联网开发板 项目地址 https gitee com wenzhengclub bearpi iot ota 其实这个开发板去年我就拿到手了 只是一直没有机会和时
  • Colaboratory下载Kaggle数据

    快捷链接 Colaboratory网址 Kaggle网址 Kaggle获取不了验证码的可以留言 进入Kaggle的账户 新建一个API Token 就会下载一个kaggle json文件 同时出现下面提示 这个在本地运行的时候 需要将kag
  • SQL: STUFF()和FOR XML PATH的使用

    STUFF param1 startIndex length param2 将param1中自startIndex SQL中都是从1开始 而非0 起 删除length个字符 然后用param2替换删掉的字符 示例 select STUFF
  • Gcov/Lcov生成覆盖率遇到的一系列问题(ubuntu18.04)

    1 lcov安装 sudo apt get install lcov 此时安装的lcov版本号是1 13 2 lcov使用 生成覆盖率关联的库在编译时需要加上以下标志位 set CMAKE CXX FLAGS CMAKE CXX FLAGS
  • Docker 使用及常用命令(一)

    一 Docker 基本概念 Docker 是一个开源的应用容器引擎 依赖于已存在并运行的 Linux 内核环境 它允许开发者将应用及其依赖包打包到一个轻量级 可移植的容器中 发布到任何流行的 Linux 机器上 容器相互之间不存在任何接口
  • 稳压二极管串联电阻计算

    稳压二极管是稳压电路的一种方式 但是提供负载的动力与二极管自身的功率有关 例如ZMM 5V 功率1W 最小的反向稳压管的电流5mA 最大的反向稳压管电流 Izmax P U 1W 5v 200mA 当稳压管流向最大电流200mA 则流过串联
  • 自动驾驶仿真平台Carla从入门到放弃

    一 Carla的基本概念 人工智能 5G和V2X技术的不断发展使得自动驾驶成为可能 近几年 自动驾驶发展迅速 在科技新闻上经常可以看到自动驾驶的身影 而从事自动驾驶相关软 硬件研究的高效研究所和公司也越来越多 既有传统的汽车巨头 也有新兴的
  • Angular4.0_环境搭建

    1 百度Node js下载并安装 2 检查npm版本 npm v 3 安装angular cli sudo npm install g angular cli 4 检查版本 ng v 5 在当前目录下创建angular项目 ng new a
  • 【AIGC】2、Visual ChatGPT

    文章目录 一 背景 二 Visual ChatGPT 2 1 对系统规则的提示管理 2 2 基础模型的提示管理 2 3 用户提问的提示管理 2 4 基础模型输出的提示管理 三 实验 3 1 实验设置 3 2 多轮对话的完整案例 3 3 Ca
  • MDK在链接时提示空间不够(No space in execution regions with .ANY selector... )的解决方案总结

    RealView MDK具有强大的编译 链接功能 嵌入式设备拥有的资源往往有限 如果一个程序编译 链接之后的可执行文件大小略大于存储大小时 则不能生成可执行文件进行调试或固化到Flash中 在这种情况下我们一般不去从硬件上调整存储空间的大小
  • 2021-10-10 at32f403a iap

    1 flash page 和 stm103 一样 2 启动偏移重映射说明 在对STM32F1 F2 F3 F4 F0几个系列的芯片作IAP应用时 F0系列跟其它系列不一样 它没有中断矢量定义寄存器SCB VTOR 所以在相应的用户APP代码
  • Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by se...

    背景 今天在写一个数据处理程序的时候 我打算优化一下我的程序 本来是直接用Mapper层进行单行记录保存的 也就是调用的Mapper的insert函数 过程 然后我就写了一个Service 但是我没有写接口 是直接写了一个具体的实现类 Se
  • python3(9)---去掉字符串中的英文字符和数字

    方法一 使用punctuation punctuation其中定义的是所以英文的标点符号 add punc相当于是自定义的 如果只要去掉英文 那么if判断的地方 只保留add punc即可 如果英文的标点符号也想去掉 就使用punctuat
  • 数学建模常用算法—灰色关联分析法(GRA)

    解决问题 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密 曲线越接近 相应序列之间的关联度就越大 反之就越小 一般的抽象系统 如社会系统 经济系统 农业系统 生态系统 教育系统等都包含有许多种 多种因素共同作用的
  • 理解stm32当中旋转编码器左转或者右转的联系和区别

    在这里判断左转右转的代码为 判断左转时 K2下降沿 如果这个时候K3为0 那么就可以判断是左转 所以代码为 接下来是中断的中断函数 void EXTI0 IRQHandler void 检查一下中断标志位 if EXTI GetITStat
  • plsql字体修改

    在win10操作系统上面 使用plsql9 编辑器中和查询结果的字体过小 导致看的不清楚 一开始以为是操作系统分辨率的原因 修改了不起作用 如图 解决办法如下 工具 首选项 字体 表格 选择 修改查询结果表格的字体大小 编辑器 选择 修改编
  • 计算机网络应用层(二):DNS协议详解

    DNS协议详解 前言 DNS协议概述 DNS工作原理 DNS缓存 DNS记录和报文 资源记录 DNS报文 总结 前言 DNS是计算机网络中应用层的一个协议 可能很多同学碰到过DNS被劫持的情况 我们现在来学习一下DNS协议 来了解为什么DN