域名解析协议-DNS
DNS(Domain Name System)是互联网上非常重要的一项服务,我们每天上网都要依靠大量的DNS服务。在Internet上,用户更容易记住的是域名,但是网络中的计算机的互相访问是通过 IP 地址实现的。DNS 最常用的功能是给用户提供域名解析服务,将用户的域名解析成网络上能够访问的IP地址。
DNS报文格式
如下图所示,DNS报文由12B长的首部和4个长度可变的字段组成。标识字段由客户端程序设置并由服务器返回结果,客户端通过标识来确定响应与查询是否匹配。

下面我们结合 DNS 查询报文和响应报文的抓包信息来理解报文格式中的几个关键字段。
DNS查询报文的抓包,如下所示。

关键字段如下:
-
UDP:DNS查询是基于UDP传输数据的。DNS服务器支持TCP和UDP两种协议的查询方式。
-
Destination port:目的端口默认是53。
-
QR:0表示查询报文;1表示回应报文。
-
TC:表示“可截断”。使用UDP时,当应答报文超过512Byte时,只返回前512Byte。
通常情况下,DNS查询都是使用UDP,返回响应中TC位设置为1时,就意味着响应的长度超过512Byte,而仅返回前512个字节。这种情况下,客户端通常采用TCP重发,将重发原来的查询请求,并允许返回的响应报文超过512Byte。 -
Queries:表示DNS请求的域名和类型。
-
Name:DNS查询中的请求域名。
-
Type:每一个查询都有一个查询类型,每一个响应也都有一个响应类型。这个类型大约有20多种,但是很多现在已经过时了。最常用的查询类型是A类型,它表示期望获得查询域名的IP地址。查询类型也可以是CNAME(别名记录)。
-
TTL:生存时间,表示客户端保留该解析资源记录的时间。
DNS回应报文如下图所示

通过返回报文可看到,域名递归路径为:ntp.msn.cn➡msn-cn.a-0032.a-msedge.net➡msn-china.bing123.com➡202.89.233.96 ;客户端保留该解析资源记录的时间为1分36秒。
DNS交互
假设一个用户要去华为商城买一部手机,那么从他在浏览器上输入华为商城的域名,到打开商城网页的一瞬间,其实发出的DNS请求报文已经经历了下图所示的查询过程。

为了便于理解,我们可以简化一下DNS报文交互的流程。暂且把递归服务器这种有官方域名授权的服务器,统一归类为“授权服务器”。这样DNS 服务就可以被分为两大类:一种是授权存储域名和 IP 地址映射关系的授权服务;另一种是临时存放域名和IP地址映射关系的缓存服务。简化后查询流程如下图所示。

相关文章:
域名解析协议-DNS
DNS(Domain Name System)是互联网上非常重要的一项服务,我们每天上网都要依靠大量的DNS服务。在Internet上,用户更容易记住的是域名,但是网络中的计算机的互相访问是通过 IP 地址实现的。DNS 最常用的功能是给用户提供…...
分享:包括 AI 绘画在内的超齐全免费可用的API 大全
AI 绘画已经火出圈了,你还不知道哪里可以用嘛?我给大家整理了超级齐全的免费可用 API,包括 AI 绘画在内,有需要的小伙伴赶紧收藏了。 AI 绘画/AI 作画 类 AI 绘画:通过AI 生成图片,包括图生文、文生图等。…...
虹科新闻 | 虹科与Overland-Tandberg正式建立合作伙伴关系
虹科Overland-Tandberg 近日,虹科与美国Overland-Tandberg公司达成战略合作,虹科正式成为Overland-Tandberg公司在中国区域的认证授权代理商。未来,虹科将携手Overland-Tandberg,共同致力于提供企业数据管理和保护解决方案。 虹科…...
架构设计三原则
作为程序员,很多人都希望成为一名架构师,但并非简单地通过编程技能就能够达成这一目标。事实上,优秀的程序员和架构师之间存在一个明显的鸿沟——不确定性。 编程的本质是确定性的,也就是说,对于同一段代码,…...
Android 性能优化——ANR监控与解决
作者:Drummor 1 哪来的ANR ANR(Application Not responding):如果 Android 应用的界面线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框。ANR 对话框会为用户提供强制退出应用的选项…...
Machine Learning-Ex3(吴恩达课后习题)Multi-class Classification and Neural Networks
目录 1. Multi-class Classification 1.1 Dataset 1.2 Visualizing the data 1.3 Vectorizing Logistic Regression 1.3.1 Vectorizing the cost function(no regularization) 1.3.2 Vectorizing the gradient(no regularization&#…...
【Java】SpringBoot事务回滚规则
SpringBoot事务回滚规则SpringBoot事务回滚规则SpringBoot事务回滚规则 在SpringBoot中,如果一个方法被声明为Transactional,则会开启一个事务。如果这个方法中的任何一个步骤失败了(比如抛出了异常),则该事务将会回滚…...
使用cocopod就那么容易
第一节、配置coopod 打开终端替换ruby镜像源,系统自带的镜像源(gem sources --remove https://rubygems.org/)被墙挡住了或者(https://ruby.taobao.org/)已过期。需替换成新的镜像源。 1).先查看已有的镜像是否是:ht…...
第14届蓝桥杯C++B组省赛
文章目录A. 日期统计B. 01 串的熵C. 冶炼金属D. 飞机降落E. 接龙数列F. 岛屿个数G. 子串简写H. 整数删除I. 景区导游J. 砍树今年比去年难好多 Update 2023.4.10 反转了,炼金二分没写错,可以AC了 Update 2023.4.9 rnm退钱,把简单的都放后面…...
面向对象编程(进阶)3:方法的重写
目录 3.1 方法重写举例 Override使用说明: 3.2 方法重写的要求 3.3 小结:方法的重载与重写 (1)同一个类中 (2)父子类中 3.4 练习 父类的所有方法子类都会继承,但是当某个方法被继承到子类…...
2023年第十四届蓝桥杯Java_大学B组真题
Java_B组试题 A: 阶乘求和试题 B: 幸运数字试题 C: 数组分割试题 D: 矩形总面积试题 E: 蜗牛试题 F: 合并区域试题 G: 买二赠一试题 H: 合并石子试题 I: 最大开支试题 J: 魔法阵【考生须知】 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解…...
APIs --- DOM事件进阶
1. 事件流 事件流指的是事件完整执行过程中的流动路径 任意事件被触发时总会经历两个阶段:【捕获阶段】和【冒泡阶段】 事件捕获 概念:从DOM的根元素开始去执行对应的事件(从外到里) 捕获阶段是【从父到子】的传导过程 代码&…...
awk命令详解以及使用方法
awk命令详解以及使用方法 awk 是一种文本处理工具,它可以逐行扫描文本文件,根据用户指定的规则进行匹配和处理,并输出结果。awk 的名称来自于三位创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的首字母缩写。 awk 通常用于处理以…...
vue-router3.0处理页面滚动部分源码分析
在使用vue-router3.0时候,会发现不同的路由之间来回切换,会滚动到上次浏览的位置,今天就来看看这部分的vue-router中的源码实现。 无论是基于hash还是history的路由切换,都对滚动进行了处理,这里分析其中一种即可。 无…...
走心Python实战应用:【requests+re 模块】快速下载原shen图片
人生苦短,我用python 这次给大家带来的是模块实战 以便大家理解学习 觉得写的好的话,可以给我多多点赞鸭~ 走心Python实战应用:【requestsre 模块】快速下载原shen图片一、理解Python requests 模块二、requests 方法三、ruqusets 模块实战…...
Comparable和Comparator的使用
在Java中,Comparable和Comparator都是用来实现对象排序的接口。 Comparable Comparable是一个内部比较器接口,它允许在类定义时对该类进行自然排序。当实现了Comparable接口的类的对象列表被传递给Collections.sort()方法时,该方法将使用该…...
【OJ每日一练】1121 - 耐摔指数
文章目录 一、题目🔸题目描述🔸输入输出🔸样例二、思路解析三、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🍂个人博客首页: KJ.JK 💖系列专栏:OJ每日一练 一、题目 🔸题目描述 x星球的居民脾气不太好,但好在他…...
vue项目Agora声网实现一对一视频聊天Demo示例(Agora声网实战及agora-rtc-vue使用,新增在线预览地址)
最终效果 在线预览地址 一、声网简介---->请查看官网 二、声网注册---->请自行百度(创建音视频连接需要在Agora注册属于您的appid) 三、具体实现视频聊天步骤 1、 实现音视频通话基本逻辑 1、创建对象 调用 createClient 方法创建 AgoraRTCCli…...
集成时间序列模型提高预测精度
使用Catboost从RNN、ARIMA和Prophet模型中提取信号进行预测 集成各种弱学习器可以提高预测精度,但是如果我们的模型已经很强大了,集成学习往往也能够起到锦上添花的作用。流行的机器学习库scikit-learn提供了一个StackingRegressor,可以用于…...
(详细)《美国节日》:某月的第几个星期几
目录 一、题目描述: 二、思路: 1、给定 年月日,如何知道这天是星期几? 2、已知这个月的第一天是星期几,如何知道第三个星期一是几号? 3、最后一个星期一 三、思路总结 四、代码 一、题目描述…...
UI-TARS-desktop效果实测:内置Qwen3-4B模型响应速度有多快
UI-TARS-desktop效果实测:内置Qwen3-4B模型响应速度有多快 在当今AI应用日益普及的背景下,响应速度已成为衡量模型实用性的关键指标。本文将带您实测UI-TARS-desktop内置的Qwen3-4B-Instruct-2507模型在实际使用中的响应表现,通过多场景测试…...
电气工程优化调度Matlab代码优化与注释那些事儿
优化调度修改、注释、matlab代码,主要为但不限于电气工程优化调度相关方向 主要包括,但不限于: 1、在原有程序基础上替换算法; 2、修改优化调度程序yalmip求解器ipopt; 3、新买的代码没注释,可以注释并可以…...
PvZ Toolkit:突破植物大战僵尸限制的终极修改器
PvZ Toolkit:突破植物大战僵尸限制的终极修改器 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 副标题:面向全阶段玩家的游戏体验增强工具,让每一场攻防战尽在掌…...
Crypto-JS实战指南:如何构建可靠的浏览器端加密验证体系
Crypto-JS实战指南:如何构建可靠的浏览器端加密验证体系 【免费下载链接】crypto-js JavaScript library of crypto standards. 项目地址: https://gitcode.com/gh_mirrors/cr/crypto-js 在Web应用开发中,加密功能的正确性直接关系到用户数据安全…...
大麦抢票自动化终极指南:5分钟快速上手教程
大麦抢票自动化终极指南:5分钟快速上手教程 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 您是否曾因热门演唱会门票秒光而遗憾&#x…...
解决Qt中使用qmqtt连接ONENet MQTT服务端的版本兼容性问题
1. 问题背景:当qmqtt遇上ONENet 最近在做一个物联网项目,需要用Qt开发一个MQTT客户端连接ONENet平台。按照官方文档,我选择了emqx/qmqtt这个第三方库,结果连接时直接报错。代码明明照着示例写的,参数也都检查过&#x…...
别再只防SSH了!给OpenWRT的Web管理后台LuCI也加上fail2ban防护(附日志配置避坑指南)
OpenWRT安全加固:为LuCI管理界面部署fail2ban防护的完整方案 路由器作为家庭网络的入口,其安全性往往被严重低估。大多数用户会记得给SSH服务配置fail2ban防护,却忽略了同样暴露在公网的Web管理界面——LuCI。这种安全防护的"偏科"…...
SDMatte新手入门:交互式点选,让复杂抠图变简单
SDMatte新手入门:交互式点选,让复杂抠图变简单 1. 什么是SDMatte? SDMatte是一款基于扩散模型的交互式图像抠图工具,由vivoCameraResearch团队开发。它通过简单的点选操作,就能实现专业级的图像抠图效果,…...
应对维普AIGC史诗级升级:2026降重急救包!5款工具基准测试 x 4大手改重构技巧
论文初稿快要交了,维普却突然搞了个大动作,把系统给升级了。说实话,这事真挺让人头疼的,有人前两天查还是绿的,以为稳了,结果升级完再一测,AI率直接飙红。 但别慌,也别怀疑自己是不…...
手把手教你解决MMLab中ImportError: cannot import name ‘set_random_seed‘错误
深度解析MMLab中set_random_seed导入错误的本质与系统化解决方案 当你第一次在MMLab生态中遇到ImportError: cannot import name set_random_seed from mmdet.apis这个错误时,可能会感到困惑和沮丧。这个看似简单的导入错误背后,实际上反映了开源计算机视…...
