应用层协议 --- DNS协议

2023-11-17

DNS(Domain Name Service 域名服务)

       DNS协议基于UDP,使用端口号53。由数字组成的 IP 地址很难记忆,所以我们上网使用网站 IP 地址的别名——域名。实际使用中,域名与 IP 地址是对应的,这种对应关系保存在DNS 服务器之中。

       在浏览器中输入一个域名后,会有 DNS 服务器将域名解析为对应的 IP 地址。注意这和网络层的 ARP 协议的不同之处:DNS 提供的是域名与 IP 地址的对应关系,而 ARP 提供的是 IP 地址和 MAC 地址的对应关系。

DNS 服务器

DNS 服务器是个分层次的系统:

  • 根 DNS 服务器 :全世界共有 13 台根域名服务器,编号 A 到 M,其中大部分位于美国。

  • 顶级(TLD)DNS 服务器 :负责如 com 、org 、edu 等顶级域名和所有国家的顶级域名(如 cn 、uk 、jp )。

  • 权威 DNS 服务器 :大型组织、大学、企业的域名解析服务。

  • 本地 DNS 服务器 :通常与我们主机最近的 DNS 服务器。

域名解析过程:

首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:

(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;

(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;

(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级域查找二级域,二级域查找三级,

         直至找到解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后出现缓存中存储,

         然后,将解析结果发给客户机。

(4)若没有找到,则返回错误信息。

而域名解析的过程,有迭代查询和递归查询两种方式:

图片来源:实验楼网站

host 命令:

        在 linux 系统中,可以用 host 命令 进行 DNS 查询,查看一个指定域名的 IP,比如要查询 mirrors.aliyuncs.com 的 IP 地址:

DNS 报文:

       主机向 DNS 服务器发出的查询叫做DNS 报文,大致结构:

图片来源:实验楼网站

      DNS 问答报文的内容,都是 IP 和域名的对应信息,关于 DNS 首部和内容 各字段这里不做详细介绍。深入了解,可以先 host 一个域名,再使用 tcpdump 抓取报文并解读。

DNS 缓存和 hosts 文件:

       DNS 解析查询过程的图中,共发出了 8 份 DNS 报文,这是非常消耗时间的,所以实际应用上使用 DNS 缓存 :当一个 DNS 服务器接收到一个 DNS 回答后,会将其信息缓存一段时间,当再有一个对相同域名的查询时,便可直接回复。通过 DNS 缓存,其实很多查询都只需要本地 DNS 服务器便可完成。

使用命令打开 hosts 文件:

sudo gedit /etc/hosts

查看文件内容,可以发现里面全是类似下图中的 IP 和域名对应记录:

图片来源:实验楼网站

       在实际上网过程中,域名解析的的优先顺序是:先在 DNS 缓存查询,若没有找到记录,再查询 hosts 文件,若还是没找到记录,再向 DNS 服务器发出 DNS 查询报文。

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

应用层协议 --- DNS协议 的相关文章

随机推荐

  • Lua代码提示和方法跳转

    前言 当在一个大型工程中编写大量的lua脚本时 代码提示和方法跳转等功能很实用 据我所了解的目前除LuaStudio之外 似乎还没有一个很好的编辑器 但今天讲述的是Idea EmmyLua插件 达到很强大的功能 我的使用环境 idea 20
  • shell 用ip获取网络接口

    一 line expr ifconfig grep ip n awk F print 1 1 ifconfig sed n line p awk print 1 二 ifconfig awk ip print a a 1 以上命令中 ip用
  • 挂马方式研究、挂马检测技术研究

    1 挂马定义 所谓的挂马 就是黑客通过各种手段 包括SQL注入 网站敏感文件扫描 服务器漏洞 网站程序0day 等各种方法获得网站管理员账号 然后登陆网站后台 通过数据库 备份 恢复 或者上传漏洞获得一个webshell 利用获得的webs
  • Java Socket聊天室

    Socket聊天室 1 创建登录判断类UserLogin 2 创建登录服务器LoginServer 3 创建聊天服务器ChatServer 4 创建客户端Client 5 创建服务器用于处理聊天的线程类ChatThread 6 创建客户端C
  • ABAP排序

    SORT
  • RK Android G-EC 调试指南

    RK Android G EC 调试指南 在开发和调试 RK Android G EC General Engine Controller 时 有几个关键的步骤和技巧 本文将介绍这些步骤 并提供相关的源代码示例 环境设置 在开始调试之前 确
  • linux内核使用的一些算法和思想(个人总结)

    这里只罗列一些算法 其中有些在我之前的博文中有所涉及 有些没有 后续有时间再详细分析每一个算法 排名不分先后 1 trie算法 linux网络子系统中取代了之前哈希算法的新路由算法 适合有大 超大规模路由项的应用场景 2 CFS compl
  • tomcat参数调优

    参数调优 tomcat有4个调优参数 分为3个方向 配置项 默认 建议 注意 ConnectionTimeout 20s 减少 maxThreads处理连接的最大线程数 200 增加 不是越大越好 acceptCount backlog 等
  • 数据结构:ArrayList类和顺序表

    文章目录 1 前言 2 ArrayList常见的操作 3 模拟实现ArrayList 3 1模拟实现add方法 3 2模拟实现indexOf方法 3 3模拟实现 get 和 set 方法 3 4模拟实现remove方法 3 5模拟实现 si
  • 没有DOI,只有卷期号时的IEEE期刊论文查找方法

    未给出DOI时的IEEE论文查询方法 登录IEEE 选择期刊查询 寻找对应期刊 寻找对应年份 卷 期 页 登录IEEE 首先登录IEEE官网 使用校园网登录才可以直接查看下载论文 链接 IEEE官网 选择期刊查询 寻找对应期刊 寻找对应年份
  • 2023荣耀校招机试 解数独

    题目描述 数独根据9 9盘面上的已知数字 推理出所有乘余空格的的数字并满足每一行 每一列 每一个格子内数字均含1 9 不重复 每一道合格的数独谜题都有且仅有唯一答案 推理方法也以此为基础 任何无解或多解的题目都是不合格的 即所有空格的数据只
  • SpeedTree导入Unity解决方案

    微软的Note笔记 和网页编辑不能很好复制 这里没有图 建议查看另一个链接 https onenote com webapp pages token KxEyAkijcfJZgzOF30PAPkVySHIcjsPyhrE5wkJoK9KTI
  • 计算机必知必会:进程process与线程thread

    进程和线程这对概念的理解也是很难的 至今网络上可查的资料对其的理解出入都挺大 在不同的操作系统中 如linux和windows中 其概念和实现都是有出入的 因此 我在这里结合我自己的理解谈下这两个概念 讲的都是一般性的概念 并且主要是基以W
  • pandas报错:columns overlap but no suffix specified

    使用pandas的join连接两张表 例如表1是left 表2是right 这两张表都有共同的字段user name 我就以user name这个字段连接这两张表 left join right how left on user name
  • 2018.09.29 学习笔记 // 前端Javascript // 日期、Math、数组与对象API

    题目 答案见后面 获取2018 09 29格式的日期 获取随机数 要求是长度一直的字符串格式 写一个能遍历对象的数组的通用forEach函数 日期和Math var a Date now 获取当前时间毫秒数 从1970年到现在走了多少毫秒
  • 使用Matlab实现基于计算机视觉的DIP芯片缺陷检测系统附带GUI界面

    使用Matlab实现基于计算机视觉的DIP芯片缺陷检测系统附带GUI界面 计算机视觉在工业生产中的应用越来越广泛 其中一项重要的应用是对芯片制造过程中的缺陷进行检测 本文将介绍如何使用Matlab实现一个基于计算机视觉的DIP芯片缺陷检测系
  • pythonnone赋值-【零基础学Python】def语句,参数和None值

    像之前的print input 和len 功能 Python提供了一些类似的内置函数 另外也可以自己编写自定义函数 示例 def hello print Howdy print Howdy print Hello there hello 第
  • 刷脸支付商户流水不断服务商收益不断

    刷脸支付的管道红利 刷脸支付是获利的其实刷脸支付的商业模式本质上也是一种管道收入 通过一家商户的流水得到佣金 十家商户 N家商户 开通刷脸支付的商户越多 佣金就越多 可以赚取的收益也就越多 就正如管道一样 只要商家在营业 那么你的收入就源源
  • 初识数据库-mysql

    初识数据库 不同的数据库 sql语句不一样 总体大致差不多 数据存储的简短回顾 在内存中临时存储数据所需 变量 数组 长度不可变 类型太单一 对象 对象数组 近乎解决了数组类型太单一的问题 集合 解决了数组长度不可变 持久存储数据 I O
  • 应用层协议 --- DNS协议

    DNS Domain Name Service 域名服务 DNS协议基于UDP 使用端口号53 由数字组成的 IP 地址很难记忆 所以我们上网使用网站 IP 地址的别名 域名 实际使用中 域名与 IP 地址是对应的 这种对应关系保存在DNS